Системы типизации лямбда-исчисления, весна 2011: Чистые...

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

Upload: cs-center

Post on 13-Apr-2017

166 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

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

Лекция 11. Чистые системы типов

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

22.05.2011

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

1

Page 2: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Чистые системы типов (PTS): введение (1)

Чистые системы типов (Pure Type Systems) задают абстракт-ную инфраструктуру, позволяющую унифицированно описы-вать конкретные системы типов:

• интерпретация «высказывания-как-типы» приобретает про-стую форму

• легко сравнивать свойства разных систем

• многие свойства доказываются для целых групп систем

Берарди [1989] и Терлов [1989]2

Page 3: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Чистые системы типов (PTS): введение (2)

Обобщения систем λ-куба, формирующие системы PTS:

• количество сортов становится произвольным(на кубе их два ∗ и �);

• набор аксиом тоже может быть расширен(на кубе аксиома одна ∗ :�);

• сорт Π-типа может отличаться от сорта возвращаемогозначения

3

Page 4: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Определение PTS (1)

Множество (пред)выражений

Λ := V | C | ΛΛ | λV :Λ.Λ | ΠV :Λ.Λ

где V — множество переменных, а C — констант.

Высказывания M :A, объявления x :A, (пред)контексты Γ —как на λ-кубе.

4

Page 5: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Определение PTS (2)

Спецификация конкретной PTS задаётся тройкой S = (S,A,R)

• S — подмножество C, его элементы называют сортами

• A — множество аксиом вида c :s, причём c ∈ C и s ∈ S

• R — множество правил вида (s1, s2, s3), причём s1, s2, s3 ∈ S

V — объединение непересекающихся подмножеств

V = ∪s∈SVs, Vs1 ∩ Vs2 = ∅, Vs = {sx, sy, sz, . . .}

«Греко-латинская» система: ∗x, ∗y, ∗z, �α,�β,�γ.5

Page 6: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Аксиомы и правила для Γ `λSM : A (1)

Нотация присваивания типов Γ `λSM : A задаётся так

Аксиомы` c : s

, если (c :s) ∈ A

Начальное правилоΓ ` A :s

Γ , x :A ` x :A, если x ≡ sx 6∈ Γ

Правило ослабленияΓ `M :A Γ ` B :sΓ , x :B `M :A

, если x ≡ sx 6∈ Γ

Здесь s ∈ S, c ∈ C, x ∈ V и A,B,M ∈ Λ.

(продолжение далее...)6

Page 7: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Аксиомы и правила для Γ `λSM : A (2)

Правило произведенияΓ ` A :s1 Γ , x :A ` B :s2

Γ ` (Πx :A.B) : s3, (s1, s2, s3) ∈ R

Правило примененияΓ `M : (Πx :A.B) Γ ` N :A

Γ `MN :B[x := N]

Правило абстракцииΓ , x :A `M :B Γ ` (Πx :A.B) :s

Γ ` (λx :A.M) : (Πx :A.B)

Здесь s, s1, s2, s3 ∈ S, x ∈ V и A,B,M,N ∈ Λ.

(продолжение далее...)7

Page 8: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Аксиомы и правила для Γ `λSM : A (3)

Правило преобразованияΓ ` A :B Γ ` B ′ :s B =β B

Γ ` A :B ′

Здесь s ∈ S и A,B,B ′ ∈ Λ.

Посылка B =β B′ может быть неразрешима; её можно заме-

нить на

B→β B′ ∨ B ′ →β B

8

Page 9: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Примеры PTS (1)

Принято обозначение (s1, s2) ≡ (s1, s2, s2).

λ→ S ∗,�A ∗ :�R (∗, ∗)

λ2

S ∗,�A ∗ :�R (∗, ∗), (�, ∗)

λω

S ∗,�A ∗ :�R (∗, ∗), (�, ∗), (�,�)

λP

S ∗,�A ∗ :�R (∗, ∗), (∗,�)

9

Page 10: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Примеры PTS (2)

λC = λPωS ∗,�A ∗ :�R (∗, ∗), (∗,�), (�, ∗), (�,�)

λC ′S ∗t, ∗p,�A ∗t :�, ∗p :�R S2

λC∞ S ∗, {�i}i∈NA ∗ :�0, �i :�i+1R (∗, ∗), (∗,�), (�, ∗), (�i,�j,�max(i,j))

10

Page 11: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Примеры PTS (3)

λ∗S ∗A ∗ :∗R (∗, ∗)

λU

S ∗,�,∆A ∗ :�,� :∆R (∗, ∗), (�, ∗), (�,�), (∆, ∗), (∆,�)

Две последние системы «неконсистентны» в том смысле,что в них все типы являются обитаемыми (парадокс Жира-ра).

11

Page 12: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Свойства PTS (1)

Пусть Γ — предконтекст, а A — предвыражение.

I Γ называется (допустимым) контекстом, если∃A,B ∈ Λ Γ ` A : B.

I A ∈ Λ называется (допустимым) выражением, если∃Γ ,B ∈ Λ

[Γ ` A : B ∨ Γ ` B : A

].

12

Page 13: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Свойства PTS (2)

Пусть Γ — предконтекст, а A — предвыражение.

I A называется Γ-термом, если∃B ∈ Λ

[Γ ` A : B ∨ Γ ` B : A

].

I A называется Γ-типом (сорта s), если∃s ∈ S Γ ` A : s.

I A называется Γ-элементом (типа B сорта s), если∃B ∈ Λ ∃s ∈ S Γ ` A : B : s.

13

Page 14: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Свойства PTS (3)

Лемма подстановки для PTSПусть

Γ , x :A,∆ `M : B

и

Γ ` N : A

тогда

Γ ,∆[x := N] `M[x := N] : B[x := N]

Лемма thinning для PTSПусть Γ и ∆ — допустимые контексты, причём Γ ⊆ ∆, тогда

Γ `M : A ⇒ ∆ `M : A

14

Page 15: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Свойства PTS: Лемма генерации (1)

Для Γ ` P : Q по известной структуре выражения P

Λ := C | V | ΛΛ | λV :Λ.Λ | ΠV :Λ.Λ

представляет свойства Γ и Q.

Лемма генерации для PTS

Γ ` c : Q ⇒ ∃s ∈ S[Q =β s ∧ (c :s) ∈ A

]Γ ` x : Q ⇒ ∃s ∈ S ∃B =β Q[

Γ ` B : s ∧ (x :B) ∈ Γ ∧ x ≡ sx]

(продолжение далее...)15

Page 16: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Свойства PTS: Лемма генерации (2)

Лемма генерации для PTS (продолжение)

Γ ` (Πx :A.B) : Q ⇒ ∃(s1, s2, s3) ∈ R[Γ ` A :s1 ∧ Γ , x :A ` B :s2 ∧ Q =β s3

]Γ ` (λx :A.M) : Q ⇒ ∃s ∈ S ∃B[

Γ ` (Πx :A.B) : s ∧ Γ , x :A `M :B ∧ Q =β Πx :A.B]

Γ ` (MN) : Q ⇒ ∃A,B[Γ `M : (Πx :A.B) : s ∧ Γ ` N :A ∧ Q =β B[x := N]

]16

Page 17: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Следствия леммы генерации (1)

I

Γ `M : A ⇒ ∃s ∈ S[A ≡ s ∨ Γ ` A : s

]I

Γ `M : (Πx :B1.B2) ⇒ ∃s1, s2 ∈ S[Γ ` B1 : s1 ∧ Γ , x :B1 ` B2 :s2

]

I Если A является Γ-термом, то A — это сорт, или Γ-тип илиΓ-элемент.

I Если A допустим и B — его подтерм, то B допустим.17

Page 18: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Следствия леммы генерации (2)

Классы сортов, Γ-типов и Γ-элементов могут пересекаться.

Например,

α :∗ ` (λx :α. x) : (α→α) : ∗α :∗ ` (α→α) : ∗ : �

Выражение α→α выступает в роли и Γ-типа или Γ-элемента.

Есть здесь ещё смешение ролей?

18

Page 19: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Свойства PTS: редукция субъекта

Теорема о редукции субъекта для PTS

Γ `M : A ∧ M�βM′ ⇒ ∆ `M ′ : A

Следствия

I [Γ `M : B ∧ B�β B

′] ⇒ Γ `M : B ′

(в правиле преобразования ещё требуется B ′ : s!)

I Если A является Γ-термом и A�β A ′, то A ′ тоже являетсяΓ-термом.

19

Page 20: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Свойства PTS: Лемма конденсации

Лемма конденсации для PTS (Condensing, Strengthening)

Γ , x :A, ∆ ` M : B ∧ x 6∈ FV(∆) ∪ FV(M) ∪ FV(B) ⇒ Γ ,∆ ` M : B

20

Page 21: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Свойства PTS: Теорема единственности типа

Определение. PTS называется функциональной или еди-носортной (singly sorted), если

1. (c :s1), (c :s2) ∈ A ⇒ s1 ≡ s2;

2. (s1, s2, s3), (s1, s2, s4) ∈ R ⇒ s3 ≡ s4.

Все рассматриваемые нами ранее системы функциональны.

Теорема Для функциональной PTS

Γ `M : A ∧ Γ `M : A ′ ⇒ A ≡β A ′

21

Page 22: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Степень терма на λ-кубе

Имеется полезная классификация предтермов, полезная дляанализа допустимых термов в системах λ-куба. Задаётся отоб-ражение ] : Λ→ {0, 1, 2, 3}:

](�) = 3

](∗) = 2

](�x) = 1

](∗x) = 0

](λx :A.B) = ](Πx :A.B) = ]B

](MN) = ]M

Для M ∈ Λ значение ](M) называют степенью M.

Утверждение. Для всех систем λ-куба

Γ `M : A ⇒ ](M) + 1 = ](A)

22

Page 23: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Свойства PTS: нормализуемость.

Определение. PTS называется сильно нормализуемой,если все её допустимые термы сильно нормализуемы, то есть

Γ `M : A ⇒ SN(M) ∧ SN(A)

Утверждение. Все системы λ-куба сильно нормализуемы.

Теорема. Разрешимость TCP и TSP для нормализуе-мой PTS. Если PTS с конечным числом сортов сильно илислабо нормализуема, то TCP и TSP разрешимы.

23

Page 24: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Населённость ⊥

Утверждение. Пусть λS — это PTS, расширяющая λ2. Тогда

`λSM : ⊥ ⇒ M не имеет NF

То есть ⊥ = Πα :∗.α может быть населён только термами, неимеющими нормальной формы. Отсюда следует, что еслисистема нормализуема, то ⊥ не населён.

24

Page 25: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Проверка типов для λP

Одновременно задаются два алгоритма:

OK : PreContext→Bool

TY : PreContext→PreTerm→Term

OK Γ проверяет допустимость контекста ΓTY Γ M возвращает тип M в контексте Γ(и ⊥, если M — нетипизируемое предвыражение)

Теорема. Алгоритм TY корректен и полон:

∀Γ ,M TY Γ M = A ⇒ Γ `M : A∀Γ ,M,A Γ `M : A ⇒ TY Γ M =βη A

(полнота осмысленна, если имеется единственность типа)(из полноты следует, что алгоритм завершается на допусти-мых термах; хотим большего)

25

Page 26: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Проверка типов для λP: алгоритм

OK 〈〉 = TRUE

OK (Γ , x :A) = if TY Γ A ∈ {∗,�} then OK Γ else FALSE

TY Γ x = if OK Γ ∧ x :A ∈ Γ then A else ⊥TY Γ ∗ = if OK Γ then � else ⊥TY Γ (MN) = if TY Γ M = C 6= ⊥ ∧ TY Γ N = D 6= ⊥

then if C�β Πx :A.B ∧ A =β Dthen B[x := N] else ⊥

else ⊥TY Γ (λx :A.M) = if TY (Γ , x :A) M = B 6= ⊥

then if TY Γ (Πx :A.B) ∈ {∗,�}then Πx :A.B else ⊥

else ⊥TY Γ (Πx :A.B) = if TY Γ A = ∗ ∧ TY (Γ , x :A) B = s

then s else ⊥26

Page 27: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Проверка типов для λP: завершимость (1)

Рекурсивный вызов без уменьшения меры:

TY Γ (λx :A.M) = if TY (Γ , x :A) M = B 6= ⊥then if TY Γ (Πx :A.B) ∈ {∗,�}

then Πx :A.B else ⊥else ⊥

Но в λP можно заменить

TY Γ (Πx :A.B) ∈ {∗,�}

на

TY Γ A = ∗

(проверьте это!)

27

Page 28: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Проверка типов для λP: завершимость (2)

β-редукция и β-эквивалентность неразрешимы для предтермов!

TY Γ (MN) = if TY Γ M = C 6= ⊥ ∧ TY Γ N = D 6= ⊥then if C�β Πx :A.B ∧ A =β D

then B[x := N] else ⊥else ⊥

К счастью, они вызываются над гарантированно допусти-мыми термами, и известно, что λP является SN и CR.

Теорема. Aлгоритмы TY Γ M и OK Γ завершаются для любогопредтерма M и предконтекста Γ .

28

Page 29: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

Экстенсиональность и интенсиональность

Правило преобразования интенсионально и разрешимо:

Γ ` A :B Γ ` B ′ :s B =β B′

Γ ` A :B ′

Можно ввести в теорию экстенсиональность, добавив пра-вила

Γ `M,N : A→B Γ ` p : (Πx :A.Mx = Nx)

Γ ` (M = N) : A→B

Γ ` P :A Γ ` (A = B) :s

Γ ` P :B

TCP станет неразрешимым, поскольку сведётся к TIP.29

Page 30: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

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

ITT2007Herman Geuvers, Introduction to Type TheoryTypes Summer School, August 2007, Bertinoro, Italy

http://typessummerschool07.cs.unibo.it/courses/geuvers-4.pdf

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

30

Page 31: Системы типизации лямбда-исчисления, весна 2011: Чистые системы типов

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

ATTAPL гл. 2Benjamin C. Pierce, editor.Advanced Topics in Types and Programming Languages, MIT,2005

ITT гл. 6Herman Geuvers, Introduction to Type TheoryAlfa Lernet Summer school 2008, Uruguay

http://www.cs.ru.nl/H.Geuvers/Uruguay2008SummerSchool.html

31