20110306 systems of_typed_lambda_calculi_moskvin_lecture03

35
Системы типизации лямбда-исчисления Лекция 3. Редукция Денис Москвин 06.03.2011 CS Club при ПОМИ РАН 1

Transcript of 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Page 1: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Системы типизации лямбда-исчисления

Лекция 3. Редукция

Денис Москвин

06.03.2011

CS Club при ПОМИ РАН

1

Page 2: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Асимметрия β-конверсии

Мы строили λ-исчисление как теорию о равенстве термов.

Рассмотрим, однако, примеры:

K I ≡ (λ xy. x) (λ z. z) = λy z. z

I I K∗ ≡ (λ x. x) I K∗ = I K∗ ≡ (λ x. x) (λy z. z) = λy z. z

Видно, что процесс носит односторонний характер: термыпри конверсиях «упрощаются». Для исследования подобно-го вычислительного аспекта вводят понятие редукции:

• K I →β K∗ — редуцируется за один шаг;• I I K∗ β K∗ — редуцируется;• K I =β I I K∗ — конвертируемо (равно).

2

Page 3: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Редексы

Терм вида (λx.M)N называется β-редексом.

Терм M[x := N] называется его сокращением.

Например, терм I (K I) содержит два редекса

(λx. x) ((λy z.y) (λp.p))

(λx. x) ((λy z.y) (λp.p))

Может ли сокращение увеличить число редексов?

3

Page 4: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Понятие редукции

1. Бинарное отношение R над Λ называют совместимым(с операциями λ-исчисления), если

M R N ⇒ (ZM) R (ZN),

(MZ) R (NZ),

(λx .M) R (λx .N).

для любых M,N,Z ∈ Λ.

2. Совместимое отношение эквивалентности называют от-ношением конгруэнтности над Λ.

3. Совместимое, рефлексивное и транзитивное отношениеназывают отношением редукции над Λ.

4

Page 5: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Редукция за один шаг →βБинарное отношение β-редукции за один шаг →β над Λ:

(λx.M)N →β M[x := N]

M→β N ⇒ ZM→β ZNM→β N ⇒ MZ→β NZM→β N ⇒ λx.M→β λx.N

Примеры:

(λx. x) ((λy z.y) (λp.p)) →β (λy z.y) (λp.p) →β λ z p.p

(λx. x) ((λy z.y) (λp.p)) →β (λx. x) (λ z p.p) →β λ z p.p

По определению →β является совместимым (с операциямиλ-исчисления).

5

Page 6: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Многошаговая редукция β

Бинарное отношение β-редукции β над Λ определяетсяиндуктивно:

(a) MβM

(b) M→β N ⇒ Mβ N

(c) Mβ N,Nβ L ⇒ Mβ L

Примеры:

(λx. x) ((λy z.y) (λp.p)) β (λx. x) ((λy z.y) (λp.p))

(λx. x) ((λy z.y) (λp.p)) β (λy z.y) (λp.p)

(λx. x) ((λy z.y) (λp.p)) β λ z p.p

Отношение β является транзитивным рефлексивным за-мыканием →β и, следовательно, отношением редукции.

6

Page 7: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Отношение конвертируемости =β (1)

Бинарное отношение =β над Λ определяются индуктивно:

(a) Mβ N ⇒ M =β N

(b) M =β N ⇒ N =βM

(c) M =β N,N =β L ⇒ M =β L

Отношение =β является отношением конгруэнтности.

Утверждение. M =β N ⇔ λ `M = N.

Доказательство. (⇐) Индукция по генерации `. (⇒) По ин-дукции показывается

M→β N ⇒ λ `M = N;

Mβ N ⇒ λ `M = N;

M =β N ⇒ λ `M = N.

7

Page 8: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Отношение конвертируемости =β (2)

Интуитивно: два терма M N связаны отношением =β, еслиесть связывающая их цепочка →β-стрелок:

M

N

~~• •

••

Пример. K I =β I I K∗:

I I K∗xx

K I

##

I K∗zz

K∗8

Page 9: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Нормальная форма (1)

• λ-терм M находится в β-нормальной форме (β-nf), еслив нем нет подвыражений, являющихся β-редексами.

• λ-терм M имеет β-нормальную форму, если для некото-рого N выполняется M =β N и N находится в β-nf.

Терм λxy.y (λz. x) находится в β-нормальной форме.

Терм (λx. x x)y не находится в β-нормальной форме, но имеетв качестве β-nf терм yy.

9

Page 10: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Нормальная форма (2)

Лемма о редукции NF. ПустьM находится в β-нормальнойформе. Тогда

Mβ N ⇒ N ≡M.

Док-во. Если терм M находится в β-нормальной форме,то он не содержит редексов. Поэтому невозможно M →β N.Поэтому, поскольку M β N, это должно иметь место из-зарефлексивности.

10

Page 11: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Нормальная форма (3)

Не все термы имеют β-нормальную форму:

Ω ≡ ωω

≡ (λx. x x) (λx. x x)→β (λx. x x) (λx. x x)→β . . .

Это пока не доказательство! Может быть существует термN в β-nf, такой что Ω =β N, например, так

M

!! !!

Ω N

11

Page 12: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Нормальная форма (4)

Бывают термы, «удлинняющиеся» при редукции:

Ω3 ≡ ω3ω3

≡ (λx. x x x) (λx. x x x)→β (λx. x x x) (λx. x x x) (λx. x x x)→β (λx. x x x) (λx. x x x) (λx. x x x) (λx. x x x)→β . . .

С какой скоростью будет расти Ω4 ≡ ω4ω4?

12

Page 13: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Нормальная форма (5)

Не все последовательности редукций приводят β-нормальнойформе:

K I Ω ≡ K I ((λx. x x) (λx. x x))→β K I ((λx. x x) (λx. x x))→β . . .

K I Ω ≡ (λxy. x) I Ω→β (λy. I)Ω→β I

(синим отмечен сокращаемый редекс)

13

Page 14: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Редукционные графы (1)

Редукционный граф терма M ∈ Λ, обозначаемый Gβ(M), —это ориентированный мультиграф с вершинами в

N |Mβ N

и дугами →β.

Gβ (I (I x)) = • ++33 • // • Gβ (Ω) = •

Gβ ((λx. I)Ω) = • // • Gβ (K I Ω) = • // • // •

Gβ (Ω3) = ??? Gβ ((λx. I)Ω3) = ???

14

Page 15: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Редукционные графы (2)

Gβ (Ω3) = • // • // • // • // . . .

Не все редукционные графы конечны.

Gβ ((λx. I)Ω3) = •

// •

// •ww

// •tt

// . . .

•Не все бесконечные редукционные графы не имеют нормаль-ной формы.

15

Page 16: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Теорема Чёрча-Россера

Теорема. [Чёрч-Россер] Если Mβ N, Mβ K, то суще-ствует L, такой что Nβ L и Kβ L.

Иначе говоря, β-редукция обладает свойством ромба:

M

N

!! !!

K

~~~~

L

Иногда используют термин сходимость.

16

Page 17: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Теорема Чёрча-Россера (доказательство)

Лемма полоски (Strip lemma)

••

••

А затем из полосок составляем «ромб». [см. LCWT, 2.3]

17

Page 18: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Лемма полоски (доказательство) (1)

Лемма полоски доказывается через расширенное λ-исчисление(Λ) c дополнительным правилом:

M,N ∈ Λ ⇒ (λx.M)N ∈ Λ

При этом на процесс одношаговой редукции подчёркиваниене влияет:

(λx.M)N →β M[x := N]

(λx.M)N →β M[x := N]

Задаются два отображения:I | · | : Λ→ Λ — стирающее подчёркивание;I ϕ : Λ→ Λ — редуцирующее подчёркнутые редексы.

18

Page 19: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Лемма полоски (доказательство) (2)

Три леммы: задний и нижний прямоугольники и переднийтреугольник.

•β

__

|·| β

)) ))

• oo ϕ

β

)) ))

β

)) ))

β

__

|·|

• oo ϕ •

Лемма полоски — передний прямоугольник.19

Page 20: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Следствия теоремы Чёрча-Россера (1)

Существование общего редукта. Если M =β N, то суще-ствует L, такой что, Mβ L и Nβ L.

Доказательство. Индукция по генерации =β.Случай 1. M =β N, поскольку Mβ N. Возьмем L ≡ N.Случай 2. M =β N, поскольку N =βM. По гипотезе индукцииимеется общий β-редукт L1 для N, M. Возьмем L ≡ L1.Случай 3. M =β N, поскольку M =β N

′, N ′ =β N. Тогда

M

"" ""

(IH) N ′

|||| "" ""

(IH) N

L1

## ##

CR L2

L

20

Page 21: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Следствия теоремы Чёрча-Россера (2)

Редуцируемость к NF. Если M имеет N в качестве β-nf,то Mβ N.

Док-во. Пусть M =β N, причем N находится в β-nf. По След-ствию о существовании общего редукта имеем M β L иN β L для некоторого L. Но тогда N ≡ L по Лемме о ре-дукции NF, поэтому Mβ N.

Теперь мы можем доказать отсутствие NF у Ω. Иначе вы-полнялось бы

Ωβ N, N является β-nf.

Но Ω редуцируется лишь к себе и не является β-nf.21

Page 22: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Следствия теоремы Чёрча-Россера (3)

Единственность NF. λ-терм имеет не более одной β-nf.

Док-во. ПредположимM имеет два β-nf N1 и N2. Тогда N1 =βN2(=β M). По Следствию о существовании общего редуктаN1 β L и N2 β L для некоторого L. Но тогда N1 ≡ L ≡ N2 поЛемме о редукции NF.

Теперь мы можем доказывать «неравенства», напримерλ 0 TRU = FLS.Иначе было бы TRU =β FLS, но это две разные NF, что проти-воречит единственности.

22

Page 23: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Стратегии редукции (1)

Как мы можем редуцировать терм?I Переменная: v — редукция завершена.I Абстракция: λx.M — редуцируем M.I Аппликация: MN. Все варианты отсюда.

Разбираем аппликацию до не-аппликации (обычно влево):I (. . . ((vN1)N2) . . . Nk) — редуцируем отдельно все Ni (обычнослева направо).I (. . . (((λx.M)N1)N2) . . . Nk). Все варианты отсюда.

Нормальная стратегия: сокращаем редекс (λx.M)N1.Аппликативная стратегия: редуцируем отдельно все Ni (обыч-но слева направо) до нормальной формы N ′i, затем сокраща-ем редекс (λx.M)N ′1.

23

Page 24: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Стратегии редукции (2)

Удобно изображать терм в виде дерева.Например, для ((λx.M)N1)N2 дерево имеет вид:

@

@ N2

λ N1

x M

Вершины @ задают аппликацию, вершины λ — абстракцию.

Вершины @ могут задавать редекс (@) или нет (@).В первом случае при поиске редекса – кандидата на сокра-щение есть три варианта (нашли, влево, вправо), во втором— два (влево, вправо).

24

Page 25: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Аппликативная структура терма

Лямбда-терм может иметь одну из двух форм:

λ−→x .y−→N ≡ λx1 . . . xn.yN1 . . .Nk, n > 0,k > 0

λ−→x . (λz.M)−→N ≡ λx1 . . . xn. (λy.M)N1 . . .Nk, n > 0,k > 0

Первая форма называется головной нормальной формой.

Переменная y называется головной переменной, а редекс(λz.M)N1 — головным редексом.

25

Page 26: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Операционная семантика нормальной стратегии

Синтаксические категории:I Нормальные формы: NF ::= λx. NF | NANF.I Нормальные формы – не абстракции: NANF ::= v | NANF NF.I Не абстракции: NA = v | MN.

Операционная семантика нормальной стратегии:

NA → NA ′

NA N → NA ′ N(Аппл1)

N → N ′

NANF N → NANF N ′(Аппл2)

M → M ′

λx.M → λx.M(Абстр) (λx.M)N → M[x := N] (Редук)

Нормальная стратегия всегда сокращает самый левый внеш-ний редекс (leftmost outermost)

26

Page 27: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Операционная семантика аппликативной стратегии

Синтаксические категории:I Нормальные формы: NF ::= λx. NF | NANF.I Нормальные формы – не абстракции: NANF ::= v | NANF NF.I Не абстракции: NA = v | MN.

Операционная семантика аппликативной стратегии:

NA → NA ′

NA N → NA ′ N(Аппл1)

N → N ′

NANF N → NANF N ′(Аппл2)

N → N ′

(λx.M) N → (λx.M) N ′(Аппл3)

M → M ′

λx.M → λx.M(Абстр) (λx.M) NF → M[x := NF] (Редук)

27

Page 28: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Теорема о нормализации

Теорема о нормализации. [Карри] Если терм M имеетнормальную форму, то последовательное сокращение самоголевого внешнего редекса (leftmost outermost redex) приводитк этой нормальной форме.

То есть нормальная стратегия нормализует нормализуемое.

Можем доказывать отсутствие NF. Например, K Ω I.

28

Page 29: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Свойства стратегий

Недостаток нормальной стратегии — возможная неэффек-тивность. Пусть N — «большой» терм

(λx. F x (Gx) x)N→β FN (GN)N

В процессе дальнейших редукций редексы в N придётся со-кращать три раза. Зато в

(λxy.y)N→β λy.yнормальная стратегия не вычисляет N ни разу.

Аппликативная стратегия в обоих примерах вычислит N одинраз.

29

Page 30: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Стратегии редукции и ЯП

Аппликативная стратегия похожа на стратегию вычисленийбольшинства языков программирования. Сначала вычисля-ются аргументы, затем происходит применение функции (вы-зов по значению).

Нормальная стратегия похожа на способ вычисления в «ле-нивых» языках (Haskell, Clean). Для решения указанных про-блем с эффективностью используют механизм «вызова понеобходимости».

30

Page 31: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Y- и Θ-комбинаторы

Хотя Y F =β F (Y F), но неверно ни Y F β F (Y F), ни F (Y F)βY F:

Y F ≡ (λf. (λx. f (x x))(λx. f (x x))) F→β (λx. F (x x))(λx. F (x x))→β F((λx. F (x x))(λx. F (x x))) →β . . .

Нужным свойством обладает комбинатор неподвижной точ-ки Тьюринга Θ: A = λxy.y (x xy), Θ = AA. Действительно

Θ F ≡ AAF→β (λy.y (AAy)) F→β F(AAF)

≡ F(Θ F)

31

Page 32: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Применение Θ-комбинатора

Θ-комбинатор позволяет решать рекурсивные редукционныеуравнения.

Найти G, такой что ∀X GX X (XG).

∀X GX X (XG) ⇐ G λx. x (xG)⇐ G (λg x. x (x g))G⇐ G ≡Θ (λg x. x (x g))

32

Page 33: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Домашнее задание

Покажите что для любого терма M существует такой N, на-ходящийся в нормальной форме, что N IβM.

Изобразите редукционные графы следующих термов:I I (I I I);WWW, где W ≡ λxy. xyy;(λx. I x x)(λx. I x x).

33

Page 34: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Литература (1)

TAPL гл. 5Benjamin C. Pierce, Types and Programming Languages, MITPress, 2002http://www.cis.upenn.edu/ bcpierce/tapl

LCWT гл. 2.3Henk Barendregt, Lambda calculi with types,Handbook of logic in computer science (vol. 2), Oxford UniversityPress, 1993

34

Page 35: 20110306 systems of_typed_lambda_calculi_moskvin_lecture03

Литература (2)

ЛИСС гл. 3, 11–15Х. Барендрегт, Ламбда-исчисление, его синтаксис и семан-тика, М:Мир, 1985

I2FP гл. 3John Harrison, Introduction to Functional Programminghttp://www.cl.cam.ac.uk/teaching/Lectures/funprog-jrh-1996/русский перевод: http://code.google.com/p/funprog-ru/

35