Upload
cs-center
View
170
Download
4
Embed Size (px)
Citation preview
Системы типизации лямбда-исчисления
Лекция 3. Редукция
Денис Москвин
06.03.2011
CS Club при ПОМИ РАН
1
Асимметрия β-конверсии
Мы строили λ-исчисление как теорию о равенстве термов.
Рассмотрим, однако, примеры:
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
Редексы
Терм вида (λx.M)N называется β-редексом.
Терм M[x := N] называется его сокращением.
Например, терм I (K I) содержит два редекса
(λx. x) ((λy z.y) (λp.p))
(λx. x) ((λy z.y) (λp.p))
Может ли сокращение увеличить число редексов?
3
Понятие редукции
1. Бинарное отношение R над Λ называют совместимым(с операциями λ-исчисления), если
M R N ⇒ (ZM) R (ZN),
(MZ) R (NZ),
(λx .M) R (λx .N).
для любых M,N,Z ∈ Λ.
2. Совместимое отношение эквивалентности называют от-ношением конгруэнтности над Λ.
3. Совместимое, рефлексивное и транзитивное отношениеназывают отношением редукции над Λ.
4
Редукция за один шаг →βБинарное отношение β-редукции за один шаг →β над Λ:
(λ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
Многошаговая редукция β
Бинарное отношение β-редукции β над Λ определяетсяиндуктивно:
(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
Отношение конвертируемости =β (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
Отношение конвертируемости =β (2)
Интуитивно: два терма M N связаны отношением =β, еслиесть связывающая их цепочка →β-стрелок:
M
•
•
N
~~• •
••
Пример. K I =β I I K∗:
I I K∗xx
K I
##
I K∗zz
K∗8
Нормальная форма (1)
• λ-терм M находится в β-нормальной форме (β-nf), еслив нем нет подвыражений, являющихся β-редексами.
• λ-терм M имеет β-нормальную форму, если для некото-рого N выполняется M =β N и N находится в β-nf.
Терм λxy.y (λz. x) находится в β-нормальной форме.
Терм (λx. x x)y не находится в β-нормальной форме, но имеетв качестве β-nf терм yy.
9
Нормальная форма (2)
Лемма о редукции NF. ПустьM находится в β-нормальнойформе. Тогда
Mβ N ⇒ N ≡M.
Док-во. Если терм M находится в β-нормальной форме,то он не содержит редексов. Поэтому невозможно M →β N.Поэтому, поскольку M β N, это должно иметь место из-зарефлексивности.
10
Нормальная форма (3)
Не все термы имеют β-нормальную форму:
Ω ≡ ωω
≡ (λx. x x) (λx. x x)→β (λx. x x) (λx. x x)→β . . .
Это пока не доказательство! Может быть существует термN в β-nf, такой что Ω =β N, например, так
M
!! !!
Ω N
11
Нормальная форма (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
Нормальная форма (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
Редукционные графы (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
Редукционные графы (2)
Gβ (Ω3) = • // • // • // • // . . .
Не все редукционные графы конечны.
Gβ ((λx. I)Ω3) = •
// •
// •ww
// •tt
// . . .
•Не все бесконечные редукционные графы не имеют нормаль-ной формы.
15
Теорема Чёрча-Россера
Теорема. [Чёрч-Россер] Если Mβ N, Mβ K, то суще-ствует L, такой что Nβ L и Kβ L.
Иначе говоря, β-редукция обладает свойством ромба:
M
N
!! !!
K
~~~~
L
Иногда используют термин сходимость.
16
Теорема Чёрча-Россера (доказательство)
Лемма полоски (Strip lemma)
•
•
••
•
•
•
•
••
•
•
А затем из полосок составляем «ромб». [см. LCWT, 2.3]
17
Лемма полоски (доказательство) (1)
Лемма полоски доказывается через расширенное λ-исчисление(Λ) c дополнительным правилом:
M,N ∈ Λ ⇒ (λx.M)N ∈ Λ
При этом на процесс одношаговой редукции подчёркиваниене влияет:
(λx.M)N →β M[x := N]
(λx.M)N →β M[x := N]
Задаются два отображения:I | · | : Λ→ Λ — стирающее подчёркивание;I ϕ : Λ→ Λ — редуцирующее подчёркнутые редексы.
18
Лемма полоски (доказательство) (2)
Три леммы: задний и нижний прямоугольники и переднийтреугольник.
•β
__
|·| β
)) ))
• oo ϕ
β
)) ))
•
β
)) ))
•
β
__
|·|
• oo ϕ •
Лемма полоски — передний прямоугольник.19
Следствия теоремы Чёрча-Россера (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
Следствия теоремы Чёрча-Россера (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
Следствия теоремы Чёрча-Россера (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
Стратегии редукции (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
Стратегии редукции (2)
Удобно изображать терм в виде дерева.Например, для ((λx.M)N1)N2 дерево имеет вид:
@
@ N2
λ N1
x M
Вершины @ задают аппликацию, вершины λ — абстракцию.
Вершины @ могут задавать редекс (@) или нет (@).В первом случае при поиске редекса – кандидата на сокра-щение есть три варианта (нашли, влево, вправо), во втором— два (влево, вправо).
24
Аппликативная структура терма
Лямбда-терм может иметь одну из двух форм:
λ−→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
Операционная семантика нормальной стратегии
Синтаксические категории: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
Операционная семантика аппликативной стратегии
Синтаксические категории: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
Теорема о нормализации
Теорема о нормализации. [Карри] Если терм M имеетнормальную форму, то последовательное сокращение самоголевого внешнего редекса (leftmost outermost redex) приводитк этой нормальной форме.
То есть нормальная стратегия нормализует нормализуемое.
Можем доказывать отсутствие NF. Например, K Ω I.
28
Свойства стратегий
Недостаток нормальной стратегии — возможная неэффек-тивность. Пусть N — «большой» терм
(λx. F x (Gx) x)N→β FN (GN)N
В процессе дальнейших редукций редексы в N придётся со-кращать три раза. Зато в
(λxy.y)N→β λy.yнормальная стратегия не вычисляет N ни разу.
Аппликативная стратегия в обоих примерах вычислит N одинраз.
29
Стратегии редукции и ЯП
Аппликативная стратегия похожа на стратегию вычисленийбольшинства языков программирования. Сначала вычисля-ются аргументы, затем происходит применение функции (вы-зов по значению).
Нормальная стратегия похожа на способ вычисления в «ле-нивых» языках (Haskell, Clean). Для решения указанных про-блем с эффективностью используют механизм «вызова понеобходимости».
30
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
Применение Θ-комбинатора
Θ-комбинатор позволяет решать рекурсивные редукционныеуравнения.
Найти 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
Домашнее задание
Покажите что для любого терма M существует такой N, на-ходящийся в нормальной форме, что N IβM.
Изобразите редукционные графы следующих термов:I I (I I I);WWW, где W ≡ λxy. xyy;(λx. I x x)(λx. I x x).
33
Литература (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
Литература (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