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

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

Upload: cs-center

Post on 15-Apr-2017

266 views

Category:

Documents


0 download

TRANSCRIPT

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

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

Лекция 12. Рекурсивные типы и типы-пересечения

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

22.05.2011

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

1

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

Рекурсивные типы: предварительные замечания

Хотим в λ→ определить списки, деревья и пр.Идея: предзаданный контекст

Γ0 ≡ I : >, PAIR : σ→τ→σ× τ, INJL : σ→σ+ τ, INJR : τ→σ+ τ

Тогда конструкторы списка

NIL ≡ INJL I

NIL : >+ ??? (= List)

CONS e l ≡ INJR (PAIR e l)

CONS e l : ??? + σ× List (= List)

Имеем рекурсивное уравнение на типы:

List ≈ >+ σ× List

List ≡ µα.>+ σ× α

2

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

Рекурсивные типы: система λµ

Задаётся отношение эквивалентности между типами ≈

Если M :σ и σ ≈ τ, то M :τ, и наоборот.

Например, рекурсивный тип σ0 ≈ σ0→σ0

x :σ0 ` x :σ0→σ0

x :σ0 ` x x : σ0` λx :σ0. x x : σ0→σ0

` λx :σ0. x x : σ0` (λx :σ0. x x) (λx :σ0. x x) : σ0

(подходит для типизации любого терма M ∈ Λ)

Оператор µ для конструирования: σ0 ≡ µα.α→α

3

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

Cистема λµ: формальности

Термы: Λ ::= V | ΛΛ | λV.Λ

Типы: T ::= V | T→T | µV.T

Для σ ∈ T определяют дерево типа T(σ):

T(α) = α

T(σ→τ) = →T(σ) T(τ)

T(µα.α) = ⊥T(µα.µβ1. . . . µβn.α) = ⊥

T(µα.σ) = T(σ[α := µα.σ])

Эквивалентность: σ ≈ τ ⇔ T(σ) = T(τ)

4

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

Cистема λµ: присваивание типов

(начальное правило)(x :σ) ∈ ΓΓ ` x :σ

(удаление →)Γ `M :σ→τ Γ ` N :σ

Γ ` (MN) :τ

(введение →)Γ , x :σ `M :τ

Γ ` (λx.M) :σ→τ

(≈-правило)Γ `M :σ σ ≈ τ

Γ `M :τ

5

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

Cистема λµ: пример

Для τ ≡ µα.α→ γ имеем по правилу T(µα.σ) = T(σ[α := µα.σ])

дерево

T(τ) = →T(τ) γ

= →→ γ

→ γ

. . . γ

Эквивалентность τ ≈ τ→γ следует по определению из равен-ства деревьев.

6

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

Cистема λµ: свойства подстановки

Утверждение. Для любых σ выполняется:

µα.σ ≈ σ[α := µα.σ]

Док-во: Для σ 6= µβ1. . . . µβn.α следует из

T(µα.σ) = T(σ[α := µα.σ])

Если же σ ≡ µβ1. . . . µβn.α, то так и так ⊥.

Примеры:

µα.α→γ ≈ (µα.α→γ)→γ ≈ ((µα.α→γ)→γ)→γ ≈ . . .

µα.α→α ≈ (µα.α→α)→(µα.α→α) ≈ . . .

7

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

Cистема λµ: пример с ⊥

Для σ ≡ (µα.α→γ)→µδ.µβ.β имеем дерево

T(σ) = →T(τ) ⊥

= →→ ⊥

→ γ

. . . γ

Здесь τ ≡ µα.α→γ и использовалось правило T(µα.α) = ⊥.

8

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

Cистема λµ: типизируем Y-комбинатор

Рассмотрим произвольный σ.Пусть τ ≡ µα.α→σ, тогда τ ≈ τ→σ и

Y ≡ λf. (λx. f (x x))(λx. f (x x)) : (σ→σ)→σ

x :τ ` x :τ→σ

x :τ ` x x : σf : σ→σ, x :τ ` f (x x) : σf : σ→σ ` λx. f (x x) : τ→σ

f : σ→σ ` λx. f (x x) : τf : σ→σ ` (λx. f (x x))(λx. f (x x)) : σ

` λf. (λx. f (x x))(λx. f (x x)) : (σ→σ)→σ

Докажите, что в λµ верно Ω ≡ (λx. x x)(λx. x x) : σ

9

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

Cистема λµ: редукция субъекта и SN

Теорема о редукции субъектаПусть Mβ N. Тогда

Γ `λµM :σ ⇒ Γ `λµ N :σ

Поскольку в системе типизируемы все термы SN не имеетместа.

10

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

Cистема λµ: проблемы разрешимости

ЗПТ `M :σ?

Разрешима. (Следует из разрешимости T(σ) = T(τ))

ЗСТ `M : ?

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

ЗОТ ` ? :σ

Тривиально разрешима: все типы населены.

11

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

Типы-пересечения

Идея: разрешить терму иметь два типа σ и τ одновременно:

x : σ ∩ τ

Это порождает специальный (ad hoc) полиморфизм, вотличие от параметрического полиморфизма λ2.

На множестве типов задают предпорядок:Если M :σ и σ 4 τ, то M :τ.

Например, x :σ ∩ τ и σ ∩ τ 4 σ, откуда x :σ.

12

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

Система λ∩: формальности

Типы: T ::= > | V | T→T | T ∩ TОпределение отношения «является подтипом» 4

(refl) σ 4 σ

(trans) σ 4 τ, τ 4 ρ⇒ σ 4 ρ

(incl) σ ∩ τ 4 σ σ ∩ τ 4 τ(glb) σ 4 τ,σ 4 τ ′ ⇒ σ 4 τ ∩ τ ′

(>) σ 4 >(>→) > 4 >→>(→∩) (σ→τ) ∩ (σ→τ ′) 4 σ→τ ∩ τ ′

(→) σ ′ 4 σ, τ 4 τ ′ ⇒ σ→τ 4 σ ′→τ ′

Можно ввести эквивалентность: σ ∼ τ⇔ σ 4 τ∧ τ 4 σ

13

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

Система λ∩: свойства 4

Поскольку > 4 >→> и σ 4 >, то

> ∼ >→>то есть «выше» > иерархия не поднимается.

Покажите, что

(σ→τ) ∩ (σ ′→τ) 4 σ ∩ σ ′→τ

14

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

Cистема λ∩: присваивание типов

. . . . . .

(удаление ∩) Γ `M :σ ∩ τΓ `M :σ Γ `M :τ

(введение ∩) Γ `M :σ Γ `M :τ

Γ `M :σ ∩ τ

(введение >)Γ `M :>

(4-правило)Γ `M :σ σ 4 τ

Γ `M :τ

Начальное правило, введение и удаление → опущены.15

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

Cистема λ∩: примеры

Для самоприменения λx. x x имеем

x : (σ→τ) ∩ σ ` x :σ→τ

x : (σ→τ) ∩ σ ` x :σx : (σ→τ) ∩ σ ` x x : τ

` λx. x x : (σ→τ) ∩ σ→τ

Очевидно, что

Ω : >

Утверждение. Терм M не имеет заголовочной NF тогда итолько тогда, когда > является единственным типом для M.

16

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

Cистема λ∩: конверсия субъекта

Теорема о редукции субъектаПусть Mβ N. Тогда

Γ `λ∩M :σ ⇒ Γ `λ∩ N :σ

Более того для λ∩, верна иТеорема о конверсии субъектаПусть M=βN. Тогда

Γ `λ∩M :σ ⇒ Γ `λ∩ N :σ

17

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

Cистема λ∩: экспансия субъекта

Пусть P ≡ . . . x . . . x . . . x . . . и

` P[x := Q] : τ ` . . .Q . . .Q . . .Q . . . : τ

Каждое вхождение Q может требовать своего типа σ1,σ2,σ3Но мы можем приписать λx.P тип σ1 ∩ σ2 ∩ σ3→τ

То есть β-экспансия (λx.P)Q тоже будет иметь тип τ.

Если же вхождений x в P нет,то мы можем приписать λx.P тип >→τ

(пустое пересечение); но по-прежнему

` (λx.P)Q : τ

18

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

Cистема λ∩: экспансия субъекта (пример)

Хотя S Kβ K∗, но `λ→ S K : (σ→τ)→σ→σ, а K∗ : τ→σ→σ

В λ∩ ситуацию можно исправить: `λ∩ S K : τ→σ→σ

«Потеря» типа в λ→ в редукции λg z. (λy. z) (g z) →β λg z. z

Сравним вывод в λ→ и λ∩:

[y :τ]1 [z :σ]2

λy. z : τ→σ1

[z :σ]2 [g :σ→τ]3

g z : τ

(λy. z) (g z) : σλz. (λy. z) (g z) : σ→σ

2

λg z. (λy. z) (g z) : (σ→τ)→σ→σ3

[y :>]1 [z :σ]2 [g :τ]3

λy. z : >→σ1

g z : >(λy. z) (g z) : σ

λz. (λy. z) (g z) : σ→σ2

λg z. (λy. z) (g z) : τ→σ→σ3

19

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

Cистема λ∩: SN

Поскольку в системе λ∩ типизируемы все термы SN не имеетместа.

Однако для системы λ∩− (λ∩ без типовой константы >) вернаТеорема [van Bakel, Krivine]

M может быть типизирован в λ∩− ⇔ M сильно нормализуем

20

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

Cистема λ∩: проблемы разрешимости

ЗПТ `M :σ?

Неразрешима. `λ∩ I : α→ α, несложно показать, что 6`λ∩ K :

α→α. То есть множество

M | `λ∩M : α→α

нетривиально и замкнуто относительно =β. Тогда оно нере-курсивно (теорема Скотта).

ЗСТ `M : ?

Тривиально разрешима: каждый терм имеет тип (>).(Для λ∩− неразрешима, из-за эквивалентности SN)

ЗОТ ` ? :σ

Неразрешима. Доказали в конце 1990-х.21

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

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

Постройте дерево типа дляI τ ≡ µα.α→α

I τ ≡ µα.α→α→α

I τ ≡ µα.α→γ→α

I τ ≡ µα.α→(µβ.β→γ)

Докажите, что для Ω ≡ (λx. x x)(λx. x x) и произвольного σ вы-полняется `λµ Ω : σ

22

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

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

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

TAPL гл. 20,21Benjamin C. Pierce, Types and Programming Languages, MITPress, 2002

http://www.cis.upenn.edu/~bcpierce/tapl

23

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

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

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

24