SlideShare a Scribd company logo
1 of 25
Download to read offline
Системы типизации лямбда-исчисления

Лекция 10. Лямбда-куб и логические системы

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




                15.05.2011

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




                                         1
Высказывания-как-типы (1)

Два способа представления логических систем в системах
типов:


 • Прямое представление:
   одна система типов одна логика;


 • Logical Framework:
   одна система типов    много логик.


Логические связки и их правила введения и удаления:
  Прямое представление: из системы типов;
  Logical Framework: из предзаданного контекста.
                                                      2
Высказывания-как-типы (2)


Пусть A   высказывание некоторой логики L, [[A]]   его ин-
терпретация (тип) в некоторой системе типов.

Основные мета-вопросы:


 • корректность (soundness):
   Если A  доказуемо в L, то [[A]]   обитаем.


 • полнота (completness):
   Если [[A]] обитаем, то A     доказуемо в L.

                                                     3
Высказывания-как-типы в системах λ-куба




Корректность.
 Имеет место для всех вершин куба.

Полнота.
 Имеет место для левой грани куба.
 При некоторых оговорках выполняется для λP.
 Не имеет места для λPω.

Подробнее [LCWT 5.4].



                                                4
Прямое представление логики в λ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. R x x ⇒ P x ∼ Πx : A. R x x → P x
Правила введения и удаления              это лямбда-абстракция и
аппликация.
                                                                       5
Прямое представление логики в λP (2)



                        A:∗      A→∗ :
Если A это тип, рассматриваемый как множество, то A → ∗
представляет собой кайнд предикатов над A.


                A : ∗, P : A → ∗, a : A    Pa : ∗
Если a ∈ A, и P предикат над A, то P a это тип, рассмат-
риваемый как высказывание (истинное, если тип населен, и
ложное в противном случае).
Различие между множествами и предикатами можно ввести
явно:
               A : ∗s, P : A → ∗p, a : A   P a : ∗p
                                                      6
Прямое представление логики в λP (3)




               A : ∗, R : A → A → ∗     Πa : A. R a a : ∗
Если R бинарный предикат над A, то ∀a ∈ A. R a a                высказы-
вание.



          A : ∗, P : A → ∗, Q : A → ∗   Πa : A. P a → Q a : ∗
Это высказывание утверждает, что предикат P, рассматри-
ваемый как множество, вложен в предикат Q.


                                                                   7
Прямое представление логики в λ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 : Pa
            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
Прямое представление логики в λ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 (g a0)
                 :   Π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
Прямое представление логики в λP2



Напомним, что ⊥ ≡ ΠA : ∗. A ≡ ∀A. A.

Пусть Γ ≡ A : ∗, R : A → A → ∗, тогда

     Γ     (Πa : A. Πb : A. R a b → R b a → ⊥) → (Πa : A. R a a → ⊥) : ∗
Это высказывание утверждает, что асимметричное бинарное
отношение иррефлексивно

         (∀a, b ∈ A. R a b ⇒ R b a ⇒ ⊥) ⇒ (∀a ∈ A. R a a ⇒ ⊥)


Докажите это утверждение, приведя терм такого типа.

                                                                       10
Прямое представление логики в λω

В λ2 было:

                   σ + τ ≡ Πα : ∗. (σ → α) → (τ → α) → α
               σ : ∗, τ : ∗           σ+τ :∗
В λω можно ввести

                              ∨   :    ∗→∗→∗
                              ∨ ≡ λσ : ∗. λτ : ∗. σ + τ
Тогда σ → ∨ σ τ       тавтология:

           σ : ∗, τ : ∗        λ xσ α∗ fσ→α gτ→α. f x : σ → ∨ σ τ


Докажите, что ∧ σ τ → σ и ∧ σ τ → τ               тавтологии.
                                                                    11
Прямое представление логики в λPω


В λP можно       диагонализовать            имеющийся бинарный пре-
дикат

          A : ∗, P : A → A → ∗, a : A       Paa : ∗ :
                 A : ∗, P : A → A → ∗       λa : A. P a a : A → ∗ :
В λPω можно задать оператор                диагонализации , абстраги-
руясь по предикату

    A:∗       λP : A → A → ∗. λa : A. P a a : (A → A → ∗) → (A → ∗) :
и по домену

    λA : ∗. λP : A → A → ∗. λa : A. P a a : ΠA : ∗. ΠP : A → A → ∗. Πa : A. ∗ :

                                                                           12
Logical Framework (LF)



 • Система типов используется как метасистема.


 • Объектная логическая система задаётся в контексте, в
   том числе там задаются и правила вывода.


 • Сигнатура логики также задаётся контексте.


Logical Framework позволяет вложить различные логические
системы в одну систему типов.

                                                   13
PROP через LF в λP (1)


Минимальная пропозициональная логика PROP.

Вводится специальный тип имён высказываний prop:

                            prop : ∗
Импликация   связывает       два высказывания

                   ⇒ : prop → prop → prop


Импликацию будем записывать инфиксно

               x : prop, y : prop   x ⇒ y : prop

                                                   14
PROP через LF в λP (2)

Конструктор типа (типовый оператор)

                           T : prop → ∗
 поднимает имя высказывания p : prop в тип его доказа-
тельства T p : ∗.

Населенность типа T p соответствует доказуемости высказы-
вания p.

Введение и удаление импликации

      imp intr : Πa : prop. Πb : prop. (T a → T b) → T (a ⇒ b)
      imp elim : Πa : prop. Πb : prop. T (a ⇒ b) → T a → T b
                                                                 15
PROP через LF в λP (3)



Например, доказательство, что из a следует a:


  Представление логики   Формула     Доказательство


  Прямое кодирование     a→a         λx : a. x


  LF-вложение            T (a ⇒ a)   imp intr a a (λx : T a. x)



                                                            16
PROP через LF в λP (4)

Контекст        сигнатура для PROP:
    ΣPROP ≡ prop : ∗,
            T : prop → ∗,
            ⇒ : prop → prop → prop,
            imp intr : Πa : prop. Πb : prop. (T a → T b) → T (a ⇒ b)
            imp elim : Πa : prop. Πb : prop. T (a ⇒ b) → T a → T b

Теорема. LF-кодирование PROP в λP корректно, то есть

 PROP p ⇒ ∃ M, a1 , . . . , an [ΣPROP , a1 : prop, . . . , an : prop   λP M : T p]


Теорема. LF-кодирование PROP в λP полно, то есть
         ΣPROP , a1 : prop, . . . , an : prop λP M : T p ⇒     PROP p
                                                                           17
PROP через LF в λP (5)

Пример. Докажем, что a ⇒ (b ⇒ a).

Пусть Γ ≡ ΣPROP , a : prop, b : prop, тогда
   Γ, x:T a    (λy : T b. x) : T b → T a
   Γ, x:T a    imp intr b a (λy : T b. x) : T (b ⇒ a)
          Γ    λx : T a. imp intr b a (λy : T b. x) : T a → T (b ⇒ a)
          Γ    imp intr a (b ⇒ a) (λx : T a. imp intr b a (λy : T b. x))
                  : T (a ⇒ (b ⇒ a))
         Γ     imp intr [ ] [ ] (λx : T a. imp intr [ ] [ ] (λy : T b. x))
                  : T (a ⇒ (b ⇒ a))
для справки
         imp intr : Πa : prop. Πb : prop. (T a → T b) → T (a ⇒ b)
                                                                       18
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. (T a → T b) → T (a ⇒ b),
         imp elim : Πa : prop. Πb : prop. T (a ⇒ b) → T a → T b,
         ∀ : (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
PRED через LF в λP (2)

Пример. Докажите, что
                     ∀z ∈ A.(∀x, y ∈ A. R x y) ⇒ R z z
Решение. Тип этого утверждения в LF:
           T (∀(λz : A. (∀(λx : A. (∀(λy : A. R x y)))) ⇒ (R z z)))
Терм этого типа:
    ∀ intr [ ](λz : A. imp intr [ ] [ ] (λf : T (∀(λx : A. (∀(λy : A. R x y)))).
                    ∀ elim [ ] (∀ elim [ ] f z) z))
для справки
       imp intr : Πa : prop. Πb : prop. (T a → T b) → 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
Домашнее задание (1)




Для прямого представления логики в λP найдите контекст и
терм, доказывающий утверждения

        (∀x ∈ A. P x ⇒ Q x) ⇒ (∀x ∈ A. P x) ⇒ (∀x ∈ A. Q x)

    (∀x ∈ A. P x ⇒ ∀z ∈ A. R z z) ⇒ (∀x ∈ A. P x) ⇒ (∀z ∈ A. R z z)


Докажите первое из этих утверждений в λP, рассматривае-
мой как LF для минимальной логики предикатов PRED.



                                                                  21
Домашнее задание (2)

  В λω определим σ × τ ≡ Πα : ∗. (σ → τ → α) → α и

                     ∧       :       ∗→∗→∗
                     ∧ ≡ λσ : ∗. λτ : ∗. σ × τ
Для прямого представления логики в λω докажите, что ∧ σ τ →
σ и ∧ σ τ→τ  тавтологии.

  В λω определим

                         ¬       :    ∗→∗
                         ¬ ≡ λα : ∗. α → ⊥
Для прямого представления логики в λω докажите, что (σ →
τ) → (¬ τ → ¬ σ) тавтология.
                                                     22
Домашнее задание (3)



  В λP2 найдите терм M, такой что для Γ ≡ A : ∗, R : A → A → ∗

    Γ    M : (Πa : A. Πb : A. R a b → R b a → ⊥) → (Πa : A. R a a → ⊥)
Иными словами докажите (в прямом представления логики
в λP2), что асимметричное бинарное отношение иррефлек-
сивно.

   В λP, рассматриваемой как LF для минимальной пропози-
циональной логики, докажите, что (a ⇒ b) ⇒ ((b ⇒ c) ⇒ (a ⇒
c)), то есть сконструируйте терм типа T ((a ⇒ b) ⇒ ((b ⇒ c) ⇒
(a ⇒ c))) в контексте a : prop, b : prop, c : prop.

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



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

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

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


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




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




                                                   25

More Related Content

What's hot

20081109 structuralcomplexitytheory lecture07-08
20081109 structuralcomplexitytheory lecture07-0820081109 structuralcomplexitytheory lecture07-08
20081109 structuralcomplexitytheory lecture07-08
Computer Science Club
 
20091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture1020091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture10
Computer Science Club
 
20110327 systems of_typed_lambda_calculi_moskvin_lecture07
20110327 systems of_typed_lambda_calculi_moskvin_lecture0720110327 systems of_typed_lambda_calculi_moskvin_lecture07
20110327 systems of_typed_lambda_calculi_moskvin_lecture07
Computer Science Club
 
20110306 systems of_typed_lambda_calculi_moskvin_lecture04
20110306 systems of_typed_lambda_calculi_moskvin_lecture0420110306 systems of_typed_lambda_calculi_moskvin_lecture04
20110306 systems of_typed_lambda_calculi_moskvin_lecture04
Computer Science Club
 
Обработка коллекций наизнанку: как применить много функций к одному аргументу...
Обработка коллекций наизнанку: как применить много функций к одному аргументу...Обработка коллекций наизнанку: как применить много функций к одному аргументу...
Обработка коллекций наизнанку: как применить много функций к одному аргументу...
corehard_by
 
20111015 inroduction to_combinatorics_on_words_frid_lecture01
20111015 inroduction to_combinatorics_on_words_frid_lecture0120111015 inroduction to_combinatorics_on_words_frid_lecture01
20111015 inroduction to_combinatorics_on_words_frid_lecture01
Computer Science Club
 
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Nikolay Grebenshikov
 
20100923 proof complexity_hirsch_lecture02
20100923 proof complexity_hirsch_lecture0220100923 proof complexity_hirsch_lecture02
20100923 proof complexity_hirsch_lecture02
Computer Science Club
 

What's hot (20)

20081109 structuralcomplexitytheory lecture07-08
20081109 structuralcomplexitytheory lecture07-0820081109 structuralcomplexitytheory lecture07-08
20081109 structuralcomplexitytheory lecture07-08
 
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
 
язык работы с КМАС (Yafoll сообщение 1)
язык работы с КМАС (Yafoll сообщение 1)язык работы с КМАС (Yafoll сообщение 1)
язык работы с КМАС (Yafoll сообщение 1)
 
Математическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповМатематическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принципов
 
Slides3
Slides3Slides3
Slides3
 
20091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture1020091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture10
 
20110327 systems of_typed_lambda_calculi_moskvin_lecture07
20110327 systems of_typed_lambda_calculi_moskvin_lecture0720110327 systems of_typed_lambda_calculi_moskvin_lecture07
20110327 systems of_typed_lambda_calculi_moskvin_lecture07
 
лекция 16
лекция 16лекция 16
лекция 16
 
Quantum universal enveloping algebras with idempotents and the Pierce decompo...
Quantum universal enveloping algebras with idempotents and the Pierce decompo...Quantum universal enveloping algebras with idempotents and the Pierce decompo...
Quantum universal enveloping algebras with idempotents and the Pierce decompo...
 
20110306 systems of_typed_lambda_calculi_moskvin_lecture04
20110306 systems of_typed_lambda_calculi_moskvin_lecture0420110306 systems of_typed_lambda_calculi_moskvin_lecture04
20110306 systems of_typed_lambda_calculi_moskvin_lecture04
 
Обработка коллекций наизнанку: как применить много функций к одному аргументу...
Обработка коллекций наизнанку: как применить много функций к одному аргументу...Обработка коллекций наизнанку: как применить много функций к одному аргументу...
Обработка коллекций наизнанку: как применить много функций к одному аргументу...
 
20111015 inroduction to_combinatorics_on_words_frid_lecture01
20111015 inroduction to_combinatorics_on_words_frid_lecture0120111015 inroduction to_combinatorics_on_words_frid_lecture01
20111015 inroduction to_combinatorics_on_words_frid_lecture01
 
Урок 6. Чистое лямбда-исчисление.
Урок 6. Чистое лямбда-исчисление. Урок 6. Чистое лямбда-исчисление.
Урок 6. Чистое лямбда-исчисление.
 
Kuznecova 9klass
Kuznecova 9klassKuznecova 9klass
Kuznecova 9klass
 
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
 
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
 
Functional Programing
Functional ProgramingFunctional Programing
Functional Programing
 
20100923 proof complexity_hirsch_lecture02
20100923 proof complexity_hirsch_lecture0220100923 proof complexity_hirsch_lecture02
20100923 proof complexity_hirsch_lecture02
 
Slides2
Slides2Slides2
Slides2
 
2016-12-03 03 Евгений Тюменцев. DSL на коленке
2016-12-03 03 Евгений Тюменцев. DSL на коленке2016-12-03 03 Евгений Тюменцев. DSL на коленке
2016-12-03 03 Евгений Тюменцев. DSL на коленке
 

Similar to 20110515 systems of typed lambda_calculi_moskvin_lecture10

20110313 systems of_typed_lambda_calculi_moskvin_lecture05
20110313 systems of_typed_lambda_calculi_moskvin_lecture0520110313 systems of_typed_lambda_calculi_moskvin_lecture05
20110313 systems of_typed_lambda_calculi_moskvin_lecture05
Computer Science Club
 
20110327 systems of_typed_lambda_calculi_moskvin_lecture08
20110327 systems of_typed_lambda_calculi_moskvin_lecture0820110327 systems of_typed_lambda_calculi_moskvin_lecture08
20110327 systems of_typed_lambda_calculi_moskvin_lecture08
Computer Science Club
 
20110313 systems of_typed_lambda_calculi_moskvin_lecture06
20110313 systems of_typed_lambda_calculi_moskvin_lecture0620110313 systems of_typed_lambda_calculi_moskvin_lecture06
20110313 systems of_typed_lambda_calculi_moskvin_lecture06
Computer Science Club
 
20110522 systems of typed lambda_calculi_moskvin_lecture12
20110522 systems of typed lambda_calculi_moskvin_lecture1220110522 systems of typed lambda_calculi_moskvin_lecture12
20110522 systems of typed lambda_calculi_moskvin_lecture12
Computer Science Club
 
04 классическая логика предикатов
04 классическая логика предикатов04 классическая логика предикатов
04 классическая логика предикатов
Julia Gorbatova
 

Similar to 20110515 systems of typed lambda_calculi_moskvin_lecture10 (8)

20110313 systems of_typed_lambda_calculi_moskvin_lecture05
20110313 systems of_typed_lambda_calculi_moskvin_lecture0520110313 systems of_typed_lambda_calculi_moskvin_lecture05
20110313 systems of_typed_lambda_calculi_moskvin_lecture05
 
20100926 ontology konev_lecture03
20100926 ontology konev_lecture0320100926 ontology konev_lecture03
20100926 ontology konev_lecture03
 
20110327 systems of_typed_lambda_calculi_moskvin_lecture08
20110327 systems of_typed_lambda_calculi_moskvin_lecture0820110327 systems of_typed_lambda_calculi_moskvin_lecture08
20110327 systems of_typed_lambda_calculi_moskvin_lecture08
 
20110313 systems of_typed_lambda_calculi_moskvin_lecture06
20110313 systems of_typed_lambda_calculi_moskvin_lecture0620110313 systems of_typed_lambda_calculi_moskvin_lecture06
20110313 systems of_typed_lambda_calculi_moskvin_lecture06
 
Скорость роста функций
Скорость роста функцийСкорость роста функций
Скорость роста функций
 
Кванторные операции над предикатами. Формула логики предикатов. Тавтологии ло...
Кванторные операции над предикатами. Формула логики предикатов. Тавтологии ло...Кванторные операции над предикатами. Формула логики предикатов. Тавтологии ло...
Кванторные операции над предикатами. Формула логики предикатов. Тавтологии ло...
 
20110522 systems of typed lambda_calculi_moskvin_lecture12
20110522 systems of typed lambda_calculi_moskvin_lecture1220110522 systems of typed lambda_calculi_moskvin_lecture12
20110522 systems of typed lambda_calculi_moskvin_lecture12
 
04 классическая логика предикатов
04 классическая логика предикатов04 классическая логика предикатов
04 классическая логика предикатов
 

More from Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
Computer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
Computer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
Computer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
Computer Science Club
 

More from Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

Recently uploaded

СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 

Recently uploaded (9)

СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 

20110515 systems of typed lambda_calculi_moskvin_lecture10

  • 1. Системы типизации лямбда-исчисления Лекция 10. Лямбда-куб и логические системы Денис Москвин 15.05.2011 CS Club при ПОМИ РАН 1
  • 2. Высказывания-как-типы (1) Два способа представления логических систем в системах типов: • Прямое представление: одна система типов одна логика; • Logical Framework: одна система типов много логик. Логические связки и их правила введения и удаления: Прямое представление: из системы типов; Logical Framework: из предзаданного контекста. 2
  • 3. Высказывания-как-типы (2) Пусть A высказывание некоторой логики L, [[A]] его ин- терпретация (тип) в некоторой системе типов. Основные мета-вопросы: • корректность (soundness): Если A доказуемо в L, то [[A]] обитаем. • полнота (completness): Если [[A]] обитаем, то A доказуемо в L. 3
  • 4. Высказывания-как-типы в системах λ-куба Корректность. Имеет место для всех вершин куба. Полнота. Имеет место для левой грани куба. При некоторых оговорках выполняется для λP. Не имеет места для λPω. Подробнее [LCWT 5.4]. 4
  • 5. Прямое представление логики в λ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. R x x ⇒ P x ∼ Πx : A. R x x → P x Правила введения и удаления это лямбда-абстракция и аппликация. 5
  • 6. Прямое представление логики в λP (2) A:∗ A→∗ : Если A это тип, рассматриваемый как множество, то A → ∗ представляет собой кайнд предикатов над A. A : ∗, P : A → ∗, a : A Pa : ∗ Если a ∈ A, и P предикат над A, то P a это тип, рассмат- риваемый как высказывание (истинное, если тип населен, и ложное в противном случае). Различие между множествами и предикатами можно ввести явно: A : ∗s, P : A → ∗p, a : A P a : ∗p 6
  • 7. Прямое представление логики в λP (3) A : ∗, R : A → A → ∗ Πa : A. R a a : ∗ Если R бинарный предикат над A, то ∀a ∈ A. R a a высказы- вание. A : ∗, P : A → ∗, Q : A → ∗ Πa : A. P a → Q a : ∗ Это высказывание утверждает, что предикат P, рассматри- ваемый как множество, вложен в предикат Q. 7
  • 8. Прямое представление логики в λ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 : Pa 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
  • 9. Прямое представление логики в λ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 (g a0) : Π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
  • 10. Прямое представление логики в λP2 Напомним, что ⊥ ≡ ΠA : ∗. A ≡ ∀A. A. Пусть Γ ≡ A : ∗, R : A → A → ∗, тогда Γ (Πa : A. Πb : A. R a b → R b a → ⊥) → (Πa : A. R a a → ⊥) : ∗ Это высказывание утверждает, что асимметричное бинарное отношение иррефлексивно (∀a, b ∈ A. R a b ⇒ R b a ⇒ ⊥) ⇒ (∀a ∈ A. R a a ⇒ ⊥) Докажите это утверждение, приведя терм такого типа. 10
  • 11. Прямое представление логики в λω В λ2 было: σ + τ ≡ Πα : ∗. (σ → α) → (τ → α) → α σ : ∗, τ : ∗ σ+τ :∗ В λω можно ввести ∨ : ∗→∗→∗ ∨ ≡ λσ : ∗. λτ : ∗. σ + τ Тогда σ → ∨ σ τ тавтология: σ : ∗, τ : ∗ λ xσ α∗ fσ→α gτ→α. f x : σ → ∨ σ τ Докажите, что ∧ σ τ → σ и ∧ σ τ → τ тавтологии. 11
  • 12. Прямое представление логики в λPω В λP можно диагонализовать имеющийся бинарный пре- дикат A : ∗, P : A → A → ∗, a : A Paa : ∗ : A : ∗, P : A → A → ∗ λa : A. P a a : A → ∗ : В λPω можно задать оператор диагонализации , абстраги- руясь по предикату A:∗ λP : A → A → ∗. λa : A. P a a : (A → A → ∗) → (A → ∗) : и по домену λA : ∗. λP : A → A → ∗. λa : A. P a a : ΠA : ∗. ΠP : A → A → ∗. Πa : A. ∗ : 12
  • 13. Logical Framework (LF) • Система типов используется как метасистема. • Объектная логическая система задаётся в контексте, в том числе там задаются и правила вывода. • Сигнатура логики также задаётся контексте. Logical Framework позволяет вложить различные логические системы в одну систему типов. 13
  • 14. PROP через LF в λP (1) Минимальная пропозициональная логика PROP. Вводится специальный тип имён высказываний prop: prop : ∗ Импликация связывает два высказывания ⇒ : prop → prop → prop Импликацию будем записывать инфиксно x : prop, y : prop x ⇒ y : prop 14
  • 15. PROP через LF в λP (2) Конструктор типа (типовый оператор) T : prop → ∗ поднимает имя высказывания p : prop в тип его доказа- тельства T p : ∗. Населенность типа T p соответствует доказуемости высказы- вания p. Введение и удаление импликации imp intr : Πa : prop. Πb : prop. (T a → T b) → T (a ⇒ b) imp elim : Πa : prop. Πb : prop. T (a ⇒ b) → T a → T b 15
  • 16. PROP через LF в λP (3) Например, доказательство, что из a следует a: Представление логики Формула Доказательство Прямое кодирование a→a λx : a. x LF-вложение T (a ⇒ a) imp intr a a (λx : T a. x) 16
  • 17. PROP через LF в λP (4) Контекст сигнатура для PROP: ΣPROP ≡ prop : ∗, T : prop → ∗, ⇒ : prop → prop → prop, imp intr : Πa : prop. Πb : prop. (T a → T b) → T (a ⇒ b) imp elim : Πa : prop. Πb : prop. T (a ⇒ b) → T a → T b Теорема. LF-кодирование PROP в λP корректно, то есть PROP p ⇒ ∃ M, a1 , . . . , an [ΣPROP , a1 : prop, . . . , an : prop λP M : T p] Теорема. LF-кодирование PROP в λP полно, то есть ΣPROP , a1 : prop, . . . , an : prop λP M : T p ⇒ PROP p 17
  • 18. PROP через LF в λP (5) Пример. Докажем, что a ⇒ (b ⇒ a). Пусть Γ ≡ ΣPROP , a : prop, b : prop, тогда Γ, x:T a (λy : T b. x) : T b → T a Γ, x:T a imp intr b a (λy : T b. x) : T (b ⇒ a) Γ λx : T a. imp intr b a (λy : T b. x) : T a → T (b ⇒ a) Γ imp intr a (b ⇒ a) (λx : T a. imp intr b a (λy : T b. x)) : T (a ⇒ (b ⇒ a)) Γ imp intr [ ] [ ] (λx : T a. imp intr [ ] [ ] (λy : T b. x)) : T (a ⇒ (b ⇒ a)) для справки imp intr : Πa : prop. Πb : prop. (T a → T b) → T (a ⇒ b) 18
  • 19. 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. (T a → T b) → T (a ⇒ b), imp elim : Πa : prop. Πb : prop. T (a ⇒ b) → T a → T b, ∀ : (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
  • 20. PRED через LF в λP (2) Пример. Докажите, что ∀z ∈ A.(∀x, y ∈ A. R x y) ⇒ R z z Решение. Тип этого утверждения в LF: T (∀(λz : A. (∀(λx : A. (∀(λy : A. R x y)))) ⇒ (R z z))) Терм этого типа: ∀ intr [ ](λz : A. imp intr [ ] [ ] (λf : T (∀(λx : A. (∀(λy : A. R x y)))). ∀ elim [ ] (∀ elim [ ] f z) z)) для справки imp intr : Πa : prop. Πb : prop. (T a → T b) → 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
  • 21. Домашнее задание (1) Для прямого представления логики в λP найдите контекст и терм, доказывающий утверждения (∀x ∈ A. P x ⇒ Q x) ⇒ (∀x ∈ A. P x) ⇒ (∀x ∈ A. Q x) (∀x ∈ A. P x ⇒ ∀z ∈ A. R z z) ⇒ (∀x ∈ A. P x) ⇒ (∀z ∈ A. R z z) Докажите первое из этих утверждений в λP, рассматривае- мой как LF для минимальной логики предикатов PRED. 21
  • 22. Домашнее задание (2) В λω определим σ × τ ≡ Πα : ∗. (σ → τ → α) → α и ∧ : ∗→∗→∗ ∧ ≡ λσ : ∗. λτ : ∗. σ × τ Для прямого представления логики в λω докажите, что ∧ σ τ → σ и ∧ σ τ→τ тавтологии. В λω определим ¬ : ∗→∗ ¬ ≡ λα : ∗. α → ⊥ Для прямого представления логики в λω докажите, что (σ → τ) → (¬ τ → ¬ σ) тавтология. 22
  • 23. Домашнее задание (3) В λP2 найдите терм M, такой что для Γ ≡ A : ∗, R : A → A → ∗ Γ M : (Πa : A. Πb : A. R a b → R b a → ⊥) → (Πa : A. R a a → ⊥) Иными словами докажите (в прямом представления логики в λP2), что асимметричное бинарное отношение иррефлек- сивно. В λP, рассматриваемой как LF для минимальной пропози- циональной логики, докажите, что (a ⇒ b) ⇒ ((b ⇒ c) ⇒ (a ⇒ c)), то есть сконструируйте терм типа T ((a ⇒ b) ⇒ ((b ⇒ c) ⇒ (a ⇒ c))) в контексте a : prop, b : prop, c : prop. 23
  • 24. Литература (1) ITT гл. 6 Herman Geuvers, Introduction to Type Theory Alfa Lernet Summer school 2008, Uruguay http://www.cs.ru.nl/H.Geuvers/Uruguay2008SummerSchool.html LCWT гл. 5.4 Henk Barendregt, Lambda calculi with types, Handbook of logic in computer science (vol. 2), Oxford University Press, 1993 24
  • 25. Литература (2) ATTAPL гл. 2 Benjamin C. Pierce, editor. Advanced Topics in Types and Programming Languages, MIT, 2005 25