20110522 systems of typed lambda_calculi_moskvin_lecture12

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

Upload: computer-science-club

Post on 05-Dec-2014

360 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

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

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

22.05.2011

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

1

Page 2: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

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

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

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

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

Если 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: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

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

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

Γ ` (MN) :τ

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

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

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

Γ `M :τ

5

Page 6: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

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

дерево

T(τ) = →T(τ) γ

= →→ γ

→ γ

. . . γ

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

6

Page 7: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

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

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

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

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

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

Примеры:

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

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

7

Page 8: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

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

T(σ) = →T(τ) ⊥

= →→ ⊥

→ γ

. . . γ

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

8

Page 9: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

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

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

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

10

Page 11: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

ЗПТ `M :σ?

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

ЗСТ `M : ?

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

ЗОТ ` ? :σ

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

11

Page 12: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

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

x : σ ∩ τ

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

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

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

12

Page 13: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

Типы: 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: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

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

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

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

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

14

Page 15: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

. . . . . .

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

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

Γ `M :σ ∩ τ

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

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

Γ `M :τ

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

Page 16: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

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

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

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

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

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

Ω : >

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

16

Page 17: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

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

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

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

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

17

Page 18: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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: 20110522 systems of typed lambda_calculi_moskvin_lecture12

Cистема λ∩: SN

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

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

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

20

Page 21: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

ЗПТ `M :σ?

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

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

M | `λ∩M : α→α

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

ЗСТ `M : ?

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

ЗОТ ` ? :σ

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

Page 22: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

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

I τ ≡ µα.α→α→α

I τ ≡ µα.α→γ→α

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

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

22

Page 23: 20110522 systems of typed lambda_calculi_moskvin_lecture12

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

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

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

24