SlideShare a Scribd company logo
Системы типизации лямбда-исчисления

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

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




                  22.05.2011

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




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

Хотим в λ→ определить списки, деревья и пр.
Идея: предзаданный контекст
 Γ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
Рекурсивные типы: система λµ

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

Если 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
Cистема λµ: формальности



              Термы:      Λ ::= V | Λ Λ | λV. Λ
               Типы:      T ::= V | T → T | µV. T
Для σ ∈ T определяют дерево типа T (σ):
                              T (α) = α
                         T (σ → τ) =            →

                                       T (σ)         T (τ)
                           T (µα. α) = ⊥
          T (µα. µβ1. . . . µβn. α) = ⊥
                           T (µα. σ) = T (σ[α := µα. σ])

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

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




                      (x : σ) ∈ Γ
(начальное правило)
                       Γ x:σ
                      Γ   M:σ→τ       Γ   N:σ
(удаление →)
                            Γ (M N) : τ

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

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



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



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

         T (τ) =           →       =                 →

                   T (τ)       γ                 →       γ

                                             →       γ

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


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


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

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

                      T (µα. σ) = T (σ[α := µα. σ])
Если же σ ≡ µβ1. . . . µβn. α, то так и так ⊥.

Примеры:

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

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




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

         T (σ) =           →       =                 →

                   T (τ)       ⊥                 →       ⊥

                                             →       γ

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



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


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

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

       x:τ                x:τ→σ
       x:τ                xx : σ
       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
Cистема λµ: редукция субъекта и SN




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

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


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




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




ЗПТ M : σ?
Разрешима. (Следует из разрешимости T (σ) = T (τ))

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

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



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



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

                              x:σ∩τ


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

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

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

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



            Типы:     T ::=     | V | T→T | T ∩ T
Определение отношения         является подтипом
             (refl)   σ σ
           (trans)    σ τ, τ ρ ⇒ σ ρ
             (incl)   σ∩τ σ             σ∩τ τ
              (glb)   σ τ, σ τ ⇒ σ τ ∩ τ
                ( )   σ
             ( →)            →
              (→ ∩)   (σ → τ) ∩ (σ → τ ) σ → τ ∩ τ
                (→)   σ    σ, τ τ ⇒ σ → τ σ → τ
Можно ввести эквивалентность: σ ∼ τ ⇔ σ      τ∧τ     σ
                                                         13
Система λ∩: свойства




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

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

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

                 (σ → τ) ∩ (σ → τ)   σ ∩ σ →τ




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


             ...                      ...

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

             (введение   )
                                  Γ   M:
                             Γ   M:σ    σ   τ
             ( -правило)
                                  Γ M:τ


Начальное правило, введение и удаление → опущены.
                                                    15
Cистема λ∩: примеры


Для самоприменения λx. x x имеем
            x : (σ → τ) ∩ σ   x:σ→τ
            x : (σ → τ) ∩ σ   x:σ
            x : (σ → τ) ∩ σ   xx : τ
                              λx. x x : (σ → τ) ∩ σ → τ


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


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

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



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

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


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

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



                                             17
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
Cистема λ∩: экспансия субъекта (пример)

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


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


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

Сравним вывод в λ→ и λ∩:
[y : τ]1 [z : σ]2     [z : σ]2 [g : σ → τ]3       [y : ]1 [z : σ]2 [g : τ]3
                  1                                                         1
λy. z : τ → σ                 gz : τ                  λy. z : → σ             gz :
              (λy. z) (g z) : σ                            (λy. z) (g z) : σ
                                            2                                       2
        λz. (λy. z) (g z) : σ → σ                      λz. (λy. z) (g z) : σ → σ
                                              3                                       3
λg z. (λy. z) (g z) : (σ → τ) → σ → σ               λg z. (λy. z) (g z) : τ → σ → σ

                                                                                 19
Cистема λ∩: SN




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

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

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




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

ЗПТ M : σ?
Неразрешима. λ∩ I : α → α, несложно показать, что   λ∩ K :
α → α. То есть множество

                   {M |   λ∩ M : α → α }
нетривиально и замкнуто относительно =β. Тогда оно нере-
курсивно (теорема Скотта).

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

ЗОТ ? : σ
Неразрешима. Доказали в конце 1990-х.
                                                    21
Домашнее задание




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

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



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



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

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

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


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




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




                                                   24

More Related Content

PDF
20110306 systems of_typed_lambda_calculi_moskvin_lecture04
PDF
20110313 systems of_typed_lambda_calculi_moskvin_lecture05
PDF
20110313 systems of_typed_lambda_calculi_moskvin_lecture06
PDF
20110327 systems of_typed_lambda_calculi_moskvin_lecture08
PDF
20110515 systems of typed lambda_calculi_moskvin_lecture09
PDF
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
PDF
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
PDF
Pr i-6
20110306 systems of_typed_lambda_calculi_moskvin_lecture04
20110313 systems of_typed_lambda_calculi_moskvin_lecture05
20110313 systems of_typed_lambda_calculi_moskvin_lecture06
20110327 systems of_typed_lambda_calculi_moskvin_lecture08
20110515 systems of typed lambda_calculi_moskvin_lecture09
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
Pr i-6

What's hot (20)

PPTX
Исследование производной
PDF
Pr i-7
PDF
Дмитрий Кашицын, Вывод типов в динамических и не очень языках II
PDF
Pr i-3
PDF
PDF
PDF
PDF
20110306 systems of_typed_lambda_calculi_moskvin_lecture03
PDF
Integral1
PDF
20110224 systems of_typed_lambda_calculi_moskvin_lecture01
PDF
интерполяционный многочлен лагранжа
PDF
К.В. Воронцов "Регрессивный анализ и метод главных компонент"
PDF
Pr i-8
PPT
Proizvodnaya funkcii
PPTX
PDF
Метод конечных разностей
PPTX
Математическое дополнение
PDF
10474
PPTX
Predel funk
PDF
Многочлены наилучших среднеквадратичных приближений
Исследование производной
Pr i-7
Дмитрий Кашицын, Вывод типов в динамических и не очень языках II
Pr i-3
20110306 systems of_typed_lambda_calculi_moskvin_lecture03
Integral1
20110224 systems of_typed_lambda_calculi_moskvin_lecture01
интерполяционный многочлен лагранжа
К.В. Воронцов "Регрессивный анализ и метод главных компонент"
Pr i-8
Proizvodnaya funkcii
Метод конечных разностей
Математическое дополнение
10474
Predel funk
Многочлены наилучших среднеквадратичных приближений
Ad

Viewers also liked (7)

DOCX
Pregunta esencial
PPT
Apresentação qualificação gabrielmassote_v2
PPT
Сергей Прохоров - Нижний Новгород руководитель проектов "Электронное правител...
PPTX
Perifericos
PDF
The Spectre of the Spectra
PPTX
Herramientas web 2.0
PPS
Boeing 314b-camerafan
Pregunta esencial
Apresentação qualificação gabrielmassote_v2
Сергей Прохоров - Нижний Новгород руководитель проектов "Электронное правител...
Perifericos
The Spectre of the Spectra
Herramientas web 2.0
Boeing 314b-camerafan
Ad

More from Computer Science Club (20)

PDF
20141223 kuznetsov distributed
PDF
Computer Vision
PDF
20140531 serebryany lecture01_fantastic_cpp_bugs
PDF
20140531 serebryany lecture02_find_scary_cpp_bugs
PDF
20140531 serebryany lecture01_fantastic_cpp_bugs
PDF
20140511 parallel programming_kalishenko_lecture12
PDF
20140427 parallel programming_zlobin_lecture11
PDF
20140420 parallel programming_kalishenko_lecture10
PDF
20140413 parallel programming_kalishenko_lecture09
PDF
20140329 graph drawing_dainiak_lecture02
PDF
20140329 graph drawing_dainiak_lecture01
PDF
20140310 parallel programming_kalishenko_lecture03-04
PDF
20140223-SuffixTrees-lecture01-03
PDF
20140216 parallel programming_kalishenko_lecture01
PDF
20131106 h10 lecture6_matiyasevich
PDF
20131027 h10 lecture5_matiyasevich
PDF
20131027 h10 lecture5_matiyasevich
PDF
20131013 h10 lecture4_matiyasevich
PDF
20131006 h10 lecture3_matiyasevich
PDF
20131006 h10 lecture3_matiyasevich
20141223 kuznetsov distributed
Computer Vision
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
20140511 parallel programming_kalishenko_lecture12
20140427 parallel programming_zlobin_lecture11
20140420 parallel programming_kalishenko_lecture10
20140413 parallel programming_kalishenko_lecture09
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture01
20140310 parallel programming_kalishenko_lecture03-04
20140223-SuffixTrees-lecture01-03
20140216 parallel programming_kalishenko_lecture01
20131106 h10 lecture6_matiyasevich
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
20131013 h10 lecture4_matiyasevich
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich

20110522 systems of typed lambda_calculi_moskvin_lecture12

  • 1. Системы типизации лямбда-исчисления Лекция 12. Рекурсивные типы и типы-пересечения Денис Москвин 22.05.2011 CS Club при ПОМИ РАН 1
  • 2. Рекурсивные типы: предварительные замечания Хотим в λ→ определить списки, деревья и пр. Идея: предзаданный контекст Γ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
  • 3. Рекурсивные типы: система λµ Задаётся отношение эквивалентности между типами ≈ Если 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
  • 4. Cистема λµ: формальности Термы: Λ ::= V | Λ Λ | λV. Λ Типы: T ::= V | T → T | µV. T Для σ ∈ T определяют дерево типа T (σ): T (α) = α T (σ → τ) = → T (σ) T (τ) T (µα. α) = ⊥ T (µα. µβ1. . . . µβn. α) = ⊥ T (µα. σ) = T (σ[α := µα. σ]) Эквивалентность: σ ≈ τ ⇔ T (σ) = T (τ) 4
  • 5. Cистема λµ: присваивание типов (x : σ) ∈ Γ (начальное правило) Γ x:σ Γ M:σ→τ Γ N:σ (удаление →) Γ (M N) : τ Γ, x:σ M:τ (введение →) Γ (λx. M) : σ → τ Γ M:σ σ≈τ (≈-правило) Γ M:τ 5
  • 6. Cистема λµ: пример Для τ ≡ µα. α → γ имеем по правилу T (µα. σ) = T (σ[α := µα. σ]) дерево T (τ) = → = → T (τ) γ → γ → γ ... γ Эквивалентность τ ≈ τ → γ следует по определению из равен- ства деревьев. 6
  • 7. Cистема λµ: свойства подстановки Утверждение. Для любых σ выполняется: µα. σ ≈ σ[α := µα. σ] Док-во: Для σ = µβ1. . . . µβn. α следует из T (µα. σ) = T (σ[α := µα. σ]) Если же σ ≡ µβ1. . . . µβn. α, то так и так ⊥. Примеры: µα. α → γ ≈ (µα. α → γ) → γ ≈ ((µα. α → γ) → γ) → γ ≈ . . . µα. α → α ≈ (µα. α → α) → (µα. α → α) ≈ . . . 7
  • 8. Cистема λµ: пример с ⊥ Для σ ≡ (µα. α → γ) → µδ. µβ. β имеем дерево T (σ) = → = → T (τ) ⊥ → ⊥ → γ ... γ Здесь τ ≡ µα. α → γ и использовалось правило T (µα. α) = ⊥. 8
  • 9. Cистема λµ: типизируем Y-комбинатор Рассмотрим произвольный σ. Пусть τ ≡ µα. α → σ, тогда τ ≈ τ → σ и Y ≡ λf. (λx. f (x x))(λx. f (x x)) : (σ → σ) → σ x:τ x:τ→σ x:τ xx : σ 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
  • 10. Cистема λµ: редукция субъекта и SN Теорема о редукции субъекта Пусть M β N. Тогда Γ λµ M : σ ⇒ Γ λµ N : σ Поскольку в системе типизируемы все термы SN не имеет места. 10
  • 11. Cистема λµ: проблемы разрешимости ЗПТ M : σ? Разрешима. (Следует из разрешимости T (σ) = T (τ)) ЗСТ M : ? Тривиально разрешима: каждый терм имеет тип. ЗОТ ? : σ Тривиально разрешима: все типы населены. 11
  • 12. Типы-пересечения Идея: разрешить терму иметь два типа σ и τ одновременно: x:σ∩τ Это порождает специальный (ad hoc) полиморфизм, в отличие от параметрического полиморфизма λ2. На множестве типов задают предпорядок: Если M : σ и σ τ, то M : τ. Например, x : σ ∩ τ и σ ∩ τ σ, откуда x : σ. 12
  • 13. Система λ∩: формальности Типы: T ::= | V | T→T | T ∩ T Определение отношения является подтипом (refl) σ σ (trans) σ τ, τ ρ ⇒ σ ρ (incl) σ∩τ σ σ∩τ τ (glb) σ τ, σ τ ⇒ σ τ ∩ τ ( ) σ ( →) → (→ ∩) (σ → τ) ∩ (σ → τ ) σ → τ ∩ τ (→) σ σ, τ τ ⇒ σ → τ σ → τ Можно ввести эквивалентность: σ ∼ τ ⇔ σ τ∧τ σ 13
  • 14. Система λ∩: свойства Поскольку → и σ , то ∼ → то есть выше иерархия не поднимается. Покажите, что (σ → τ) ∩ (σ → τ) σ ∩ σ →τ 14
  • 15. Cистема λ∩: присваивание типов ... ... Γ M:σ ∩ τ (удаление ∩) Γ M:σ Γ M:τ Γ M:σ Γ M:τ (введение ∩) Γ M:σ ∩ τ (введение ) Γ M: Γ M:σ σ τ ( -правило) Γ M:τ Начальное правило, введение и удаление → опущены. 15
  • 16. Cистема λ∩: примеры Для самоприменения λx. x x имеем x : (σ → τ) ∩ σ x:σ→τ x : (σ → τ) ∩ σ x:σ x : (σ → τ) ∩ σ xx : τ λx. x x : (σ → τ) ∩ σ → τ Очевидно, что Ω: Утверждение. Терм M не имеет заголовочной NF тогда и только тогда, когда является единственным типом для M. 16
  • 17. Cистема λ∩: конверсия субъекта Теорема о редукции субъекта Пусть M β N. Тогда Γ λ∩ M : σ ⇒ Γ λ∩ N : σ Более того для λ∩, верна и Теорема о конверсии субъекта Пусть M=βN. Тогда Γ λ∩ M : σ ⇒ Γ λ∩ N : σ 17
  • 18. 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
  • 19. Cистема λ∩: экспансия субъекта (пример) Хотя S K β K∗ , но λ→ S K : (σ → τ) → σ → σ, а K∗ : τ → σ → σ В λ∩ ситуацию можно исправить: λ∩ S K : τ → σ → σ Потеря типа в λ→ в редукции λg z. (λy. z) (g z) →β λg z. z Сравним вывод в λ→ и λ∩: [y : τ]1 [z : σ]2 [z : σ]2 [g : σ → τ]3 [y : ]1 [z : σ]2 [g : τ]3 1 1 λy. z : τ → σ gz : τ λy. z : → σ gz : (λy. z) (g z) : σ (λy. z) (g z) : σ 2 2 λz. (λy. z) (g z) : σ → σ λz. (λy. z) (g z) : σ → σ 3 3 λg z. (λy. z) (g z) : (σ → τ) → σ → σ λg z. (λy. z) (g z) : τ → σ → σ 19
  • 20. Cистема λ∩: SN Поскольку в системе λ∩ типизируемы все термы SN не имеет места. Однако для системы λ∩− (λ∩ без типовой константы ) верна Теорема [van Bakel, Krivine] M может быть типизирован в λ∩− ⇔ M сильно нормализуем 20
  • 21. Cистема λ∩: проблемы разрешимости ЗПТ M : σ? Неразрешима. λ∩ I : α → α, несложно показать, что λ∩ K : α → α. То есть множество {M | λ∩ M : α → α } нетривиально и замкнуто относительно =β. Тогда оно нере- курсивно (теорема Скотта). ЗСТ M : ? Тривиально разрешима: каждый терм имеет тип ( ). (Для λ∩− неразрешима, из-за эквивалентности SN) ЗОТ ? : σ Неразрешима. Доказали в конце 1990-х. 21
  • 22. Домашнее задание Постройте дерево типа для τ ≡ µα. α → α τ ≡ µα. α → α → α τ ≡ µα. α → γ → α τ ≡ µα. α → (µβ. β → γ) Докажите, что для Ω ≡ (λx. x x)(λx. x x) и произвольного σ вы- полняется λµ Ω : σ 22
  • 23. Литература (1) LCWT гл. 4 Henk Barendregt, Lambda calculi with types, Handbook of logic in computer science (vol. 2), Oxford University Press, 1993 TAPL гл. 20,21 Benjamin C. Pierce, Types and Programming Languages, MIT Press, 2002 http://www.cis.upenn.edu/~bcpierce/tapl 23
  • 24. Литература (2) ATTAPL гл. 2 Benjamin C. Pierce, editor. Advanced Topics in Types and Programming Languages, MIT, 2005 24