20110313 systems of_typed_lambda_calculi_moskvin_lecture06
-
Upload
computer-science-club -
Category
Technology
-
view
237 -
download
0
Transcript of 20110313 systems of_typed_lambda_calculi_moskvin_lecture06
![Page 1: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/1.jpg)
Системы типизации лямбда-исчисления
Лекция 6. Просто типизированная система:разрешимость, нормализация, расширения
Денис Москвин
13.03.2011
CS Club при ПОМИ РАН
1
![Page 2: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/2.jpg)
Проблемы разрешимости
Есть ли алгоритм, который позволяют решить задачу?
`M :σ? Задача проверки типа ЗПТType Checking Problem TCP
`M : ? Задача синтеза типа ЗСТType Synthesis (or Assgnment) Problem TSP, TAP
` ? :σ Задача обитаемости типа ЗОТType Inhabitation Problem TIP
Для λ→ (и в стиле Чёрча, и в стиле Карри) все эти задачиразрешимы.ЗПТ выглядит проще ЗСТ, но обычно они эквивалентны:проверка (MN) :σ? требует синтеза N : ?.
2
![Page 3: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/3.jpg)
Проблемы разрешимости (2)
ЗПТ `M :σ? и ЗСТ `M : ?.Для λ→ а ля Чёрч — тривиально: строим дерево вывода ти-па.Для λ→ а ля Карри: ЗСТ разрешается с помощью алгорит-ма PT , ЗПТ — проверкой, что тип σ может быть полученподстановкой в результат PT .
ЗОТ ` ? :σ.Разрешим, поскольку соответствует доказуемости в PROP,для которой факт разрешимости известен.
Например, @M ` M : (α → β) → β, поскольку ` (α → β) → β
не является тавтологией минимальной пропозициональнойлогики.
3
![Page 4: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/4.jpg)
Слабая и сильная нормализация(Weak and Strong Normalization)
I Терм называют слабо нормализуемым (WN), если име-ется последовательность редукций, приводящих его к нор-мальной форме.
I Терм называют сильно нормализуемым (SN), если лю-бая последовательность редукций, приводит его к нормаль-ной форме.
Пример. Терм K I K — SN, терм K I Ω — WN, терм Ω — ненормализуем.
4
![Page 5: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/5.jpg)
Слабая и сильная нормализация
I Систему типов называют слабо нормализуемой если всееё допустимые термы — WN.
I Систему типов называют сильно нормализуемой есливсе её допустимые термы — SN.
Обе системы λ→ (и Карри, и Чёрча) сильно нормализуемы.
Доказательство не является тривиальным.
5
![Page 6: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/6.jpg)
Что мешает нормализации?
I Терм может увеличиваться.
(λf x. f (f x))M→β λx.M (Mx)
I Редекс может размножиться.
(λf x. f (f x)) ((λy.M)N) →β λx. ((λy.M)N) (((λy.M)N) x)
I Могут появиться новые редексы.
(λf x. f (f x)) (λy.M) →β λx. (λy.M) ((λy.M) x)
Идея для док-ва WN: выбирать стратегию, которая на каж-дом шаге: или делает терм короче или не создаёт новыхредексов.Увы, это не проходит.
6
![Page 7: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/7.jpg)
WN: лемма о появлении редексов
При β-редукции редексы могут образовываться только сле-дующими способами:
I Создание.
(λx. · · · (xN) · · · ) (λy.M) →β · · · ((λy.M)N) · · ·I Размножение.
(λx. · · · x · · · x · · · ) ((λy.M)N) →β · · · ((λy.M)N) · · · ((λy.M)N) · · ·I Спрятанный редекс.
(λx. (λy.M))NP →β (λy.M[x := N])P
I Редукция тождества.
(λx. x) (λy.M)N→β (λy.M)N
7
![Page 8: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/8.jpg)
WN: меры типа
Длиной типа σ называют число len(σ) стрелок в нём.
Порядком типа σ называют число ord(σ)I ord(α) = 0;I ord(σ1→ . . .→σn→α) = max(ord(σ1), . . . ord(σn)) + 1.Эквивалентное определение (докажите это):I ord(α) = 0;I ord(σ→τ) = max(ord(σ) + 1, ord(τ)).Примеры.
ord(α→β) = 1;
ord(α→β→γ) = 1;
ord((α→β)→γ) = 2;
ord((γ→ε)→((γ→ε)→ε)→ε) = ?
8
![Page 9: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/9.jpg)
WN: мера терма
Высотой редекса назовём длину типа его левого аппли-канда. Для M :τ, N :σ имеем
h ((λx :σ.M)N) = len(σ→τ)
Введём для терма M меру µ(M) = (hr(M), ]M), гдеI hr(M) — максимальная высота редекса в M;I ]M — число редексов такой высоты в M.
Зададим для меры лексикографический порядок:
(h1,n1) < (h2,n2) | (h1 6≡ h2) = h1 < h2(h1,n1) < (h2,n2) | (h1 ≡ h2) = n1 < n2
9
![Page 10: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/10.jpg)
WN: Теорема о слабой нормализации λ→Теорема. Если M — типизируемый терм в λ→, то для негоимеется завершающаяся редукционная стратегия.
Доказательство. Выберем редекс максимальной высоты hr(M),не содержащий другого такого же редекса.Сократим этот редекс: M →β N. При этом не возникнет но-вых редексов высоты hr(M).Имеем µ(N) < µ(M). Поскольку этот процесс не может про-должаться бесконечно, мы придём к терму без редексов.
Осталось проверить утверждение о новых редексах.
10
![Page 11: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/11.jpg)
WN: используем лемму о появлении редексов
I Создание. Был редекс высоты h0 = h((σ→ τ)→ρ), возник сh(σ→τ) < h0.
(λxσ→τ. · · · (xNσ) · · · ) (λyσ.Mτ) →β · · · ((λyσ.Mτ)Nσ) · · ·
I Размножение. Был редекс высоты h0 = h(τ→ρ), по условиюh0 > h(σ→τ) (иначе бы сокращали не его).
(λxτ. · · · x · · · x · · · ) ((λyσ.Mτ)Nσ) →β · · · ((λyσ.Mτ)Nσ) · · · ((λyσ.Mτ)Nσ) · · ·
I Спрятанный редекс. h0 = h(σ→τ→ρ), возник с h(τ→ρ) < h0.
(λxσ. (λyτ.Mρ))Nσ Pτ →β (λyτ.M[x := N])Pτ
I Редукция I. h0 = h((σ→τ)→σ→τ), возник с h(σ→τ) < h0.
(λxσ→τ. x) (λyσ.Mτ)Nσ →β (λyσ.Mτ)Nσ
11
![Page 12: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/12.jpg)
Сильная нормализация для λ→-Карри
Введём SN — множество термов, для которых все последо-вательности редукций завершаются нормальной формой.Наша задача — показать, что
Γ `M :σ ⇒ M ∈ SN
Для этого каждого типа σ определим логический предикатPσ над термами этого типа.
Цель. Если для предиката Pσ выполняетсяI Γ `M :σ влечёт Pσ(M);I Pσ(M) влечёт M ∈ SN,то SN доказана.
12
![Page 13: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/13.jpg)
SN: определение предиката Pσ
Определим логический предикат Pσ так
Pα(M) := M ∈ SN
Pσ→τ(M) := ∀N Pσ(N) ⇒ Pτ(MN)
Предикат для стрелки верен, если он верен для всех апплика-ций соответствующего терма к любым термам, для которыхверен такой предикат.
Иногда пишут [[σ]] ≡ M | Pσ(M) и говорят про интерпретациютипов.
Полезное замечание: (MN) ∈ SN ⇒ M ∈ SN ∧N ∈ SN, но ненаоборот (приведите пример!).
13
![Page 14: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/14.jpg)
Лемма: если Pσ, то SN
Лемма 1. Для каждого σ и k > 0 верно:I (1) Если (xM1 . . . Mk) :σ и ∀i Mi ∈ SN, то Pσ(xM1 . . . Mk);I (2) Если Pσ(M), то M ∈ SN.
Доказательство. Индукция по структуре типа.Для α (1) тривиально; (2) по определению Pσ.Для σ→τ.(1) Пусть (x
−→M) :σ→ τ и ∀i Mi ∈ SN; берём ∀N Pσ(N). По (IH2)
для σ имеем N ∈ SN. По (IH1) для τ имеем Pτ(x−→MN). Отсюда
Pσ→τ(xM1 . . . Mk), поскольку N — произвольное.(2) Берём ∀M Pσ→τ(M) и x : σ. По (IH1) Pσ(x), откуда Pτ(Mx).По (IH2) имеем Mx ∈ SN, что даёт M ∈ SN, поскольку беско-нечная редукция во втором даст её и в первом.
14
![Page 15: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/15.jpg)
Сильная нормализация
Лемма 2. Для каждого σ для предиката Pσ верно:I Для любого N ∈ SN если Pσ(M[x := N]
−→L ), то Pσ((λx.M)N
−→L ).
Доказательство. Индукция по структуре типа. Проведитееё.
Утверждение. Пусть дан контекст Γ = x1 : τ1, . . . , xk : τk итермы N1, . . . ,Nk, такие что ∀i Pτi(Ni). Тогда
Γ `M :σ ⇒ Pσ(M[x1 := N1, . . . , xk := Nk])
Доказательство. Индукция по выводу Γ ` M : σ, используялемму 2. Проведите её.
Следствие. λ→ является SN.Доказательство. Положим Ni = xi.
15
![Page 16: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/16.jpg)
Интерпретации λ→Как можно интерпретировать стрелочный тип?
Теоретико-множественная модель
[[σ→ τ]] := [[τ]][[σ]]
Она слишком «большая».
Наша модель
[[α]] := SN
[[σ→τ]] := M | ∀N ∈ [[σ]] (MN) ∈ [[τ]]
Иначе говоря
[[σ→ τ]] := f : [[σ]]→ [[τ]] | f λ− определима
16
![Page 17: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/17.jpg)
Расширения λ-исчисления
Можно расширить множество λ-термов константами:
Λ(C) ::= C | V | Λ(C)Λ(C) | λV.Λ(C)
Например, C = true, false?
Но нам ещё нужно уметь их использовать. Поэтому лучше
C = true, false,not,and, iif
И всё равно, помимо констант нужны дополнительные пра-вила, описывающие работу с ними. Какие?
17
![Page 18: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/18.jpg)
δ-редукция: пример
Всем известные:
not true →δ false
not false →δ true
and true true →δ true
and true false →δ false
and false true →δ false
and false false →δ false
iif true →δ TRU = λ t f. t
iif false →δ FLS = λ t f. f
«Внешние» функции над константами порождают новые пра-вила редукции.
18
![Page 19: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/19.jpg)
δ-редукция: обобщение
Если на множестве термов X (обычно X ⊆ C) задана «внеш-няя» функция f : Xk → Λ(C), то для неё добавляем δ-правило:I выбираем константу δf;I для M1, . . . ,Mk ∈ X добавляем правило сокращения
δf M1 . . . Mk →δ f(M1, . . . ,Mk)
Для одной f — не одно правило, а целая схема правил.
Например, для Z = . . . ,−2,−1, 0, 1, 2, . . . схемы правил:
plus m n →δ m+ n
mult m n →δ m× nequal n n →δ true
equal m n →δ false, если m 6= n
19
![Page 20: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/20.jpg)
Типизация расширенной системы
Расширим и типы константами T ::= B | V | T → T, под-ходящими для типизации термовых констант, и аксиомамитипизации вида
c :σ
Например, B = B,Z с аксиомами
true :B, false :B, n :Z,
not :B→B, or :B→B→B,
iif :B→σ→σ→σ,
plus :Z→Z→Z,
mult :Z→Z→Z,
equal :Z→Z→B.
20
![Page 21: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/21.jpg)
Вывод типа для расширенной системы
Типизируем λxy.mult y (plus xy).
mult :Z→Z→Z [y :Z]1
mult y :Z→Z
plus :Z→Z→Z [x :Z]2
plus x :Z→Z[y :Z]1
plus x y :Z
mult y (plus x y) :Z
λy.mult y (plus x y) :Z→Z(1)
λxy.mult y (plus x y) :Z→Z→Z(2)
21
![Page 22: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/22.jpg)
Система λYδ
Типизация для системы с числами обладает свойством силь-ной нормализации.
Это не всегда так.
Определим расширение с одной термовой константой C = Y,правилом редукции:Y f →δ f (Y f)
и одной схемой аксиом типизации:Y : (σ→σ)→σ.
22
![Page 23: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/23.jpg)
Свойства системы λYδ
I Система λYδ обладает свойством Чёрча-Россера.
I Нормальная редукционная стратегия приводит терм си-стемы λYδ к нормальной форме, если у него она есть.
I Система λYδ→ обладает свойством редукции субъекта.
I В системе λYδ представимы все вычислимые функции.
23
![Page 24: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/24.jpg)
Домашнее задание
Докажите эквивалентность двух определений порядка типа.
24
![Page 25: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/25.jpg)
Литература (1)
LCWT гл. 4.4, 4.3Henk Barendregt, Lambda calculi with types,Handbook of logic in computer science (vol. 2), Oxford UniversityPress, 1993
ITT гл. 4.3, 4.4Herman Geuvers, Introduction to Type TheoryAlfa Lernet Summer school 2008, Uruguay
http://www.cs.ru.nl/H.Geuvers/Uruguay2008SummerSchool.html
25
![Page 26: 20110313 systems of_typed_lambda_calculi_moskvin_lecture06](https://reader033.fdocuments.net/reader033/viewer/2022052621/5583300fd8b42ac4048b4d86/html5/thumbnails/26.jpg)
Литература (2)
TAPL гл. 12Benjamin C. Pierce, Types and Programming Languages, MITPress, 2002
http://www.cis.upenn.edu/~bcpierce/tapl
ОЯП гл. 8.3.2Дж.Митчелл, Основания языков программирования,М.-Ижевск, НИЦ РХД, 2010
26