20110515 systems of typed lambda_calculi_moskvin_lecture10
TRANSCRIPT
![Page 1: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/1.jpg)
Системы типизации лямбда-исчисления
Лекция 10. Лямбда-куб и логические системы
Денис Москвин
15.05.2011
CS Club при ПОМИ РАН
1
![Page 2: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/2.jpg)
Высказывания-как-типы (1)
Два способа представления логических систем в системахтипов:
• Прямое представление:одна система типов — одна логика;
• Logical Framework:одна система типов — много логик.
Логические связки и их правила введения и удаления:I Прямое представление: из системы типов;I Logical Framework: из предзаданного контекста.
2
![Page 3: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/3.jpg)
Высказывания-как-типы (2)
Пусть A — высказывание некоторой логики L, [[A]] — его ин-терпретация (тип) в некоторой системе типов.
Основные мета-вопросы:
• корректность (soundness):Если A — доказуемо в L, то [[A]] — обитаем.
• полнота (completness):Если [[A]] — обитаем, то A — доказуемо в L.
3
![Page 4: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/4.jpg)
Высказывания-как-типы в системах λ-куба
Корректность.I Имеет место для всех вершин куба.
Полнота.I Имеет место для левой грани куба.I При некоторых оговорках выполняется для λP.I Не имеет места для λPω.
Подробнее [LCWT 5.4].
4
![Page 5: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/5.jpg)
Прямое представление логики в λP (1)
В λP можно вложить минимальную логику предикатов пер-вого порядка.
Домены и формулы логики представляются типами, сигна-тура задается в контексте:
Γ ≡ A :∗, a :A, f :A→A, P :A→∗, Q :A→∗, R :A→A→∗Связки: импликация представляется как →, а квантор ∀ какΠ:
∀x ∈ A.P x ∼ Πx :A.P x
∀x ∈ A.Rx x⇒ P x ∼ Πx :A.Rx x→P x
Правила введения и удаления — это лямбда-абстракция иаппликация.
5
![Page 6: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/6.jpg)
Прямое представление логики в λP (2)
A :∗ ` A→∗ : �Если A это тип, рассматриваемый как множество, то A→ ∗представляет собой кайнд предикатов над A.
A :∗, P :A→∗, a :A ` P a : ∗
Если a ∈ A, и P — предикат над A, то P a — это тип, рассмат-риваемый как высказывание (истинное, если тип населен, иложное в противном случае).Различие между множествами и предикатами можно ввестиявно:
A :∗s, P :A→∗p, a :A ` P a : ∗p
6
![Page 7: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/7.jpg)
Прямое представление логики в λP (3)
A :∗, R :A→A→∗ ` Πa :A.Raa : ∗
Если R бинарный предикат над A, то ∀a ∈ A.Raa — высказы-вание.
A :∗, P :A→∗, Q :A→∗ ` Πa :A.P a→Qa : ∗
Это высказывание утверждает, что предикат P, рассматри-ваемый как множество, вложен в предикат Q.
7
![Page 8: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/8.jpg)
Прямое представление логики в λP (4)
A :∗, P :A→∗ ` Πa :A.P a→P a : ∗
Это высказывание утверждает рефлексивность вложения.
«Доказательство» рефлексивности вложения.
A :∗, P :A→∗ ` λa :A. λx :P a. x : Πa :A.P a→P a : ∗
Дерево вывода:
A :∗, P :A→∗, a :A, x :P a ` x : P a
A :∗, P :A→∗, a :A ` λx :P a. x : P a→P a
A :∗, P :A→∗ ` λa :A. λx :P a. x : Πa :A.P a→P a
8
![Page 9: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/9.jpg)
Прямое представление логики в λP (5)
В контексте
Γ ≡ A :∗, P :A→∗, Q :∗
имеем
Γ ` (Πa :A.P a→Q)→(Πa :A.P a)→Q : ∗
Γ , a0 :A ` λf : (Πa :A.P a→Q). λg : (Πa :A.P a). f a0 (ga0)
: Πf : (Πa :A.P a→Q).Πg : (Πa :A.P a).Q ≡(Πa :A.P a→Q)→(Πa :A.P a)→Q
Это высказывание «доказывает», что
(∀a ∈ A.P a⇒ Q) ⇒ (∀a ∈ A.P a) ⇒ Q
является истинным для непустых структур A.9
![Page 10: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/10.jpg)
Прямое представление логики в λP2
Напомним, что ⊥ ≡ ΠA :∗.A ≡ ∀A.A.
Пусть Γ ≡ A :∗, R :A→A→∗, тогдаΓ ` (Πa :A.Πb :A.Rab→Rba→⊥)→(Πa :A.Raa→⊥) : ∗
Это высказывание утверждает, что асимметричное бинарноеотношение иррефлексивно
(∀a,b ∈ A.Rab⇒ Rba⇒ ⊥) ⇒ (∀a ∈ A.Raa⇒ ⊥)Докажите это утверждение, приведя терм такого типа.
10
![Page 11: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/11.jpg)
Прямое представление логики в λω
В λ2 было:
σ+ τ ≡ Πα :∗. (σ→α)→(τ→α)→α
σ :∗, τ :∗ ` σ+ τ : ∗
В λω можно ввести
∨ : ∗→∗→∗∨ ≡ λσ :∗. λτ :∗.σ+ τ
Тогда σ→∨στ — тавтология:
σ :∗, τ :∗ ` λ xσα∗ fσ→α gτ→α. f x : σ→∨στ
Докажите, что ∧στ→σ и ∧στ→τ — тавтологии.11
![Page 12: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/12.jpg)
Прямое представление логики в λPω
В λP можно «диагонализовать» имеющийся бинарный пре-дикат
A :∗, P :A→A→∗, a :A ` P aa : ∗ : �A :∗, P :A→A→∗ ` λa :A.P aa : A→∗ : �
В λPω можно задать оператор «диагонализации», абстраги-руясь по предикату
A :∗ ` λP :A→A→∗. λa :A.P aa : (A→A→∗)→(A→∗) : �и по домену
` λA :∗. λP :A→A→∗. λa :A.P aa : ΠA :∗.ΠP :A→A→∗.Πa :A. ∗ : �12
![Page 13: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/13.jpg)
Logical Framework (LF)
• Система типов используется как метасистема.
• Объектная логическая система задаётся в контексте, втом числе там задаются и правила вывода.
• Сигнатура логики также задаётся контексте.
Logical Framework позволяет вложить различные логическиесистемы в одну систему типов.
13
![Page 14: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/14.jpg)
PROP через LF в λP (1)
Минимальная пропозициональная логика PROP.
Вводится специальный тип имён высказываний prop:
prop : ∗
Импликация «связывает» два высказывания
⇒ : prop→prop→prop
Импликацию будем записывать инфиксно
x :prop, y :prop ` x⇒ y : prop
14
![Page 15: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/15.jpg)
PROP через LF в λP (2)
Конструктор типа (типовый оператор)
T : prop→∗«поднимает» имя высказывания p : prop в тип его доказа-тельства Tp : ∗.
Населенность типа Tp соответствует доказуемости высказы-вания p.
Введение и удаление импликации
imp intr : Πa :prop.Πb :prop. (Ta→Tb)→T (a⇒ b)
imp elim : Πa :prop.Πb :prop. T (a⇒ b)→Ta→Tb
15
![Page 16: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/16.jpg)
PROP через LF в λP (3)
Например, доказательство, что из a следует a:
Представление логики Формула Доказательство
Прямое кодирование a→a λx :a. x
LF-вложение T (a⇒ a) imp intr aa (λx :Ta. x)
16
![Page 17: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/17.jpg)
PROP через LF в λP (4)
Контекст — сигнатура для PROP:
ΣPROP ≡ prop : ∗,T : prop→∗,⇒ : prop→prop→prop,
imp intr : Πa :prop.Πb :prop. (Ta→Tb)→T (a⇒ b)
imp elim : Πa :prop.Πb :prop. T (a⇒ b)→Ta→Tb
Теорема. LF-кодирование PROP в λP корректно, то есть
`PROP p ⇒ ∃ M,a1, . . . ,an [ΣPROP,a1 :prop, . . . ,an :prop `λP M : Tp]
Теорема. LF-кодирование PROP в λP полно, то есть
ΣPROP,a1 :prop, . . . ,an :prop `λP M : Tp ⇒ `PROP p
17
![Page 18: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/18.jpg)
PROP через LF в λP (5)
Пример. Докажем, что a⇒ (b⇒ a).
Пусть Γ ≡ ΣPROP,a :prop,b :prop, тогда
Γ , x :Ta ` (λy :Tb. x) : Tb→Ta
Γ , x :Ta ` imp intr ba (λy :Tb. x) : T (b⇒ a)
Γ ` λx :Ta. imp intr ba (λy :Tb. x) : Ta→T (b⇒ a)
Γ ` imp intr a (b⇒ a) (λx :Ta. imp intr ba (λy :Tb. x))
: T (a⇒ (b⇒ a))
Γ ` imp intr [ ] [ ] (λx :Ta. imp intr [ ] [ ] (λy :Tb. x))
: T (a⇒ (b⇒ a))
для справки
imp intr : Πa :prop.Πb :prop. (Ta→Tb)→T (a⇒ b)
18
![Page 19: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/19.jpg)
PRED через LF в λP (1)
Минимальная логика предикатов (над доменом A) PRED.
ΣPRED ≡ prop : ∗, T : prop→∗, A : ∗, f : A→A, R : A→A→prop,⇒ : prop→prop→prop,
imp intr : Πa :prop.Πb :prop. (Ta→Tb)→T (a⇒ b),
imp elim : Πa :prop.Πb :prop. T (a⇒ b)→Ta→Tb,
∀ : (A→prop)→prop,
∀ intr : ΠP :A→prop. (Πx :A. T (P x))→T (∀P),∀ elim : ΠP :A→prop. T (∀P)→Πx :A. T (P x)
Квантификация ∀x ∈ A.P x представляется как ∀(λx :A.P x).Предикаты теперь обычные функции, а не типовые операто-ры!
Теорема. LF-кодирование PRED в λP корректно и полно.19
![Page 20: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/20.jpg)
PRED через LF в λP (2)
Пример. Докажите, что
∀z ∈ A.(∀x,y ∈ A.Rxy) ⇒ R z z
Решение. Тип этого утверждения в LF:
T(∀(λz :A. (∀(λx :A. (∀(λy :A. Rxy)))) ⇒ (R z z)))
Терм этого типа:
∀ intr [ ](λz :A. imp intr [ ] [ ] (λf :T (∀(λx :A. (∀(λy :A. Rxy)))).∀ elim [ ] (∀ elim [ ] f z) z))
для справки
imp intr : Πa :prop.Πb :prop. (Ta→Tb)→T (a⇒ b)
∀ intr : ΠP :A→prop. (Πx :A. T (P x))→T (∀P)∀ elim : ΠP :A→prop. T (∀P)→Πx :A. T (P x)
20
![Page 21: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/21.jpg)
Домашнее задание (1)
Для прямого представления логики в λP найдите контекст итерм, доказывающий утверждения
(∀x ∈ A.P x⇒ Qx) ⇒ (∀x ∈ A.P x) ⇒ (∀x ∈ A.Qx)
(∀x ∈ A.P x⇒ ∀z ∈ A.R z z) ⇒ (∀x ∈ A.P x) ⇒ (∀z ∈ A.R z z)
Докажите первое из этих утверждений в λP, рассматривае-мой как LF для минимальной логики предикатов PRED.
21
![Page 22: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/22.jpg)
Домашнее задание (2)
I В λω определим σ× τ ≡ Πα :∗. (σ→τ→α)→α и
∧ : ∗→∗→∗∧ ≡ λσ :∗. λτ :∗.σ× τ
Для прямого представления логики в λω докажите, что ∧στ→σ и ∧στ→τ — тавтологии.
I В λω определим
¬ : ∗→∗¬ ≡ λα :∗.α→⊥
Для прямого представления логики в λω докажите, что (σ→τ)→(¬ τ→¬σ) — тавтология.
22
![Page 23: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/23.jpg)
Домашнее задание (3)
I В λP2 найдите терм M, такой что для Γ ≡ A :∗, R :A→A→∗Γ ` M : (Πa :A.Πb :A.Rab→Rba→⊥)→(Πa :A.Raa→⊥)
Иными словами докажите (в прямом представления логикив λP2), что асимметричное бинарное отношение иррефлек-сивно.
I В λP, рассматриваемой как LF для минимальной пропози-циональной логики, докажите, что (a ⇒ b) ⇒ ((b ⇒ c) ⇒ (a ⇒c)), то есть сконструируйте терм типа T ((a ⇒ b) ⇒ ((b ⇒ c) ⇒(a⇒ c))) в контексте a :prop, b :prop, c :prop.
23
![Page 24: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/24.jpg)
Литература (1)
ITT гл. 6Herman Geuvers, Introduction to Type TheoryAlfa Lernet Summer school 2008, Uruguay
http://www.cs.ru.nl/H.Geuvers/Uruguay2008SummerSchool.html
LCWT гл. 5.4Henk Barendregt, Lambda calculi with types,Handbook of logic in computer science (vol. 2), Oxford UniversityPress, 1993
24
![Page 25: 20110515 systems of typed lambda_calculi_moskvin_lecture10](https://reader033.vdocuments.net/reader033/viewer/2022052621/558865f3d8b42a590e8b4690/html5/thumbnails/25.jpg)
Литература (2)
ATTAPL гл. 2Benjamin C. Pierce, editor.Advanced Topics in Types and Programming Languages, MIT,2005
25