20110522 systems of typed lambda_calculi_moskvin_lecture11

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

Upload: computer-science-club

Post on 14-Dec-2014

306 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 20110522 systems of typed lambda_calculi_moskvin_lecture11

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

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

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

22.05.2011

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

1

Page 2: 20110522 systems of typed lambda_calculi_moskvin_lecture11

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

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

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

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

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

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

Page 3: 20110522 systems of typed lambda_calculi_moskvin_lecture11

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

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

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

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

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

3

Page 4: 20110522 systems of typed lambda_calculi_moskvin_lecture11

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

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

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

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

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

4

Page 5: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Определение 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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Аксиомы и правила для Γ `λ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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Аксиомы и правила для Γ `λ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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Аксиомы и правила для Γ `λ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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Примеры PTS (1)

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

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

λ2

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

λω

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

λP

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

9

Page 10: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Примеры 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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Примеры PTS (3)

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

λU

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

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

11

Page 12: 20110522 systems of typed lambda_calculi_moskvin_lecture11

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

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

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

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

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

].

12

Page 13: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Свойства 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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Свойства 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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Свойства 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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Свойства 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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Следствия леммы генерации (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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

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

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

Например,

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

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

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

18

Page 19: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Свойства 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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

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

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

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

20

Page 21: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Свойства 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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

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

Имеется полезная классификация предтермов, полезная дляанализа допустимых термов в системах λ-куба. Задаётся отоб-ражение ] : Λ→ {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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

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

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

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

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

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

23

Page 24: 20110522 systems of typed lambda_calculi_moskvin_lecture11

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

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

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

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

24

Page 25: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Проверка типов для λ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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Проверка типов для λ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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Проверка типов для λ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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Проверка типов для λ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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

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

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

Γ ` 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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Литература (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: 20110522 systems of typed lambda_calculi_moskvin_lecture11

Литература (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