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

Лекция 6. Просто типизированная система:
разрешимость, нормализация, расширения

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




               13.03.2011

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



                                           1
Проблемы разрешимости

Есть ли алгоритм, который позволяют решить задачу?

  M : σ? Задача проверки типа                ЗПТ
         Type Checking Problem               TCP

  M:?   Задача синтеза типа                   ЗСТ
        Type Synthesis (or Assgnment) Problem TSP, TAP

  ?:σ   Задача обитаемости типа              ЗОТ
        Type Inhabitation Problem            TIP

Для λ→ (и в стиле Чёрча, и в стиле Карри) все эти задачи
разрешимы.
ЗПТ выглядит проще ЗСТ, но обычно они эквивалентны:
проверка (M N) : σ? требует синтеза N : ?.
                                                   2
Проблемы разрешимости (2)

ЗПТ M : σ? и ЗСТ M : ?.
Для λ→ а ля Чёрч    тривиально: строим дерево вывода ти-
па.
Для λ→ а ля Карри: ЗСТ разрешается с помощью алгорит-
ма PT , ЗПТ    проверкой, что тип σ может быть получен
подстановкой в результат PT .

ЗОТ ? : σ.
Разрешим, поскольку соответствует доказуемости в PROP,
для которой факт разрешимости известен.

Например, M      M : (α → β) → β, поскольку (α → β) → β
не является тавтологией минимальной пропозициональной
логики.
                                                   3
Слабая и сильная нормализация
          (Weak and Strong Normalization)



  Терм называют слабо нормализуемым (WN), если име-
ется последовательность редукций, приводящих его к нор-
мальной форме.

  Терм называют сильно нормализуемым (SN), если лю-
бая последовательность редукций, приводит его к нормаль-
ной форме.

Пример. Терм K I K   SN, терм K I Ω   WN, терм Ω       не
нормализуем.

                                                   4
Слабая и сильная нормализация




  Систему типов называют слабо нормализуемой если все
её допустимые термы   WN.

  Систему типов называют сильно нормализуемой если
все её допустимые термы SN.

Обе системы λ→ (и Карри, и Чёрча) сильно нормализуемы.

Доказательство не является тривиальным.


                                                  5
Что мешает нормализации?

  Терм может увеличиваться.

                   (λf x. f (f x)) M →β λx. M (M x)
  Редекс может размножиться.

     (λf x. f (f x)) ((λy. M) N) →β λx. ((λy. M) N) (((λy. M) N) x)
  Могут появиться новые редексы.

           (λf x. f (f x)) (λy. M) →β λx. (λy. M) ((λy. M) x)


Идея для док-ва WN: выбирать стратегию, которая на каж-
дом шаге: или делает терм короче или не создаёт новых
редексов.
Увы, это не проходит.
                                                                      6
WN: лемма о появлении редексов

При β-редукции редексы могут образовываться только сле-
дующими способами:

  Создание.
              (λx. · · · (x N) · · · ) (λy. M) →β · · · ((λy. M) N) · · ·
  Размножение.
  (λx. · · · x · · · x · · · ) ((λy. M) N) →β · · · ((λy. M) N) · · · ((λy. M) N) · · ·
  Спрятанный редекс.
             (λx. (λy. M)) N P →β (λy. M[x := N]) P
  Редукция тождества.
                        (λx. x) (λy. M) N →β (λy. M) N

                                                                                   7
WN: меры типа

Длиной типа σ называют число len(σ) стрелок в нём.

Порядком типа σ называют число ord(σ)
  ord(α) = 0;
  ord(σ1 → . . . → σn → α) = max(ord(σ1), . . . ord(σn)) + 1.
Эквивалентное определение (докажите это):
  ord(α) = 0;
  ord(σ → τ) = max(ord(σ) + 1, ord(τ)).
Примеры.
                     ord(α → β) = 1;
                     ord(α → β → γ) = 1;
                     ord((α → β) → γ) = 2;
                     ord((γ → ε) → ((γ → ε) → ε) → ε) = ?
                                                                8
WN: мера терма

Высотой редекса назовём длину типа его левого аппли-
канда. Для M : τ, N : σ имеем

                 h ((λx : σ. M) N) = len(σ → τ)


Введём для терма M меру µ(M) = (hr(M), M), где
  hr(M)   максимальная высота редекса в M;
   M    число редексов такой высоты в M.

Зададим для меры лексикографический порядок:
           (h1, n1) < (h2, n2) | (h1 ≡ h2) = h1 < h2
           (h1, n1) < (h2, n2) | (h1 ≡ h2) = n1 < n2

                                                       9
WN: Теорема о слабой нормализации λ→



Теорема. Если M   типизируемый терм в λ→, то для него
имеется завершающаяся редукционная стратегия.

Доказательство. Выберем редекс максимальной высоты hr(M),
не содержащий другого такого же редекса.
Сократим этот редекс: M →β N. При этом не возникнет но-
вых редексов высоты hr(M).
Имеем µ(N) < µ(M). Поскольку этот процесс не может про-
должаться бесконечно, мы придём к терму без редексов.

Осталось проверить утверждение о новых редексах.

                                                   10
WN: используем лемму о появлении редексов

  Создание. Был редекс высоты h0 = h((σ → τ) → ρ), возник с
h(σ → τ) < h0.

        (λxσ→τ. · · · (x Nσ) · · · ) (λyσ. Mτ) →β · · · ((λyσ. Mτ) Nσ) · · ·
  Размножение. Был редекс высоты h0 = h(τ → ρ), по условию
h0 > h(σ → τ) (иначе бы сокращали не его).

(λxτ. · · · x · · · x · · · ) ((λyσ. Mτ) Nσ) →β · · · ((λyσ. Mτ) Nσ) · · · ((λyσ. Mτ) Nσ) · · ·
   Спрятанный редекс. h0 = h(σ → τ → ρ), возник с h(τ → ρ) < h0.

                (λxσ. (λyτ. Mρ)) Nσ Pτ →β (λyτ. M[x := N]) Pτ
   Редукция I. h0 = h((σ → τ) → σ → τ), возник с h(σ → τ) < h0.

                  (λxσ→τ. x) (λyσ. Mτ) Nσ →β (λyσ. Mτ) Nσ

                                                                                 11
Сильная нормализация для λ→-Карри

Введём SN    множество термов, для которых все последо-
вательности редукций завершаются нормальной формой.
Наша задача    показать, что

                   Γ   M : σ ⇒ M ∈ SN


Для этого каждого типа σ определим логический предикат
Pσ над термами этого типа.

Цель. Если для предиката Pσ выполняется
  Γ M : σ влечёт Pσ(M);
  Pσ(M) влечёт M ∈ SN,
то SN доказана.
                                                  12
SN: определение предиката Pσ

Определим логический предикат Pσ так

                Pα(M) := M ∈ SN
              Pσ→τ(M) := ∀N Pσ(N) ⇒ Pτ(M N)
Предикат для стрелки верен, если он верен для всех апплика-
ций соответствующего терма к любым термам, для которых
верен такой предикат.

Иногда пишут [[σ]] ≡ {M | Pσ(M)} и говорят про интерпретацию
типов.

Полезное замечание: (M N) ∈ SN ⇒ M ∈ SN ∧ N ∈ SN, но не
наоборот (приведите пример!).
                                                       13
Лемма: если Pσ, то SN

Лемма 1. Для каждого σ и k 0 верно:
 (1) Если (x M1 . . . Mk) : σ и ∀i Mi ∈ SN, то Pσ(x M1 . . . Mk);
 (2) Если Pσ(M), то M ∈ SN.

Доказательство. Индукция по структуре типа.
Для α (1) тривиально; (2) по определению Pσ.
Для σ → τ.
               →
               −
(1) Пусть (x M) : σ → τ и ∀i Mi ∈ SN; берём ∀N Pσ(N). По (IH2)
                                                   →
                                              τ (x − N). Отсюда
для σ имеем N ∈ SN. По (IH1) для τ имеем P         M
Pσ→τ(x M1 . . . Mk), поскольку N    произвольное.
(2) Берём ∀M Pσ→τ(M) и x : σ. По (IH1) Pσ(x), откуда Pτ(M x).
По (IH2) имеем M x ∈ SN, что даёт M ∈ SN, поскольку беско-
нечная редукция во втором даст её и в первом.
                                                              14
Сильная нормализация

Лемма 2. Для каждого σ для предиката Pσ верно:
                                       →                     →
                           σ(M[x := N] − ), то P σ((λx. M) N − ).
  Для любого N ∈ SN если P             L                     L
Доказательство. Индукция по структуре типа. Проведите
её.

Утверждение. Пусть дан контекст Γ = {x1 : τ1, . . . , xk : τk} и
термы N1, . . . , Nk, такие что ∀i Pτi (Ni). Тогда
            Γ   M : σ ⇒ Pσ(M[x1 := N1, . . . , xk := Nk])
Доказательство. Индукция по выводу Γ                M : σ, используя
лемму 2. Проведите её.

Следствие. λ→ является SN.
Доказательство. Положим Ni = xi.
                                                               15
Интерпретации λ→

Как можно интерпретировать стрелочный тип?

Теоретико-множественная модель

                       [[σ → τ]] := [[τ]][[σ]]
Она слишком    большая .

Наша модель

               [[α]] := SN
           [[σ → τ]] := {M | ∀N ∈ [[σ]] (M N) ∈ [[τ]]}
Иначе говоря

        [[σ → τ]] := {f : [[σ]] → [[τ]] | f λ − определима}
                                                              16
Расширения λ-исчисления


Можно расширить множество λ-термов константами:

             Λ(C) ::= C | V | Λ(C) Λ(C) | λV. Λ(C)


Например, C = {true, false}?

Но нам ещё нужно уметь их использовать. Поэтому лучше

               C = {true, false, not, and, iif}


И всё равно, помимо констант нужны дополнительные пра-
вила, описывающие работу с ними. Какие?
                                                     17
δ-редукция: пример

Всем известные:

                  not true     →δ   false
                 not false     →δ   true
             and true true     →δ   true
            and true false     →δ   false
            and false true     →δ   false
            and false false    →δ   false
                    iif true   →δ   TRU = λ t f. t
                   iif false   →δ   FLS = λ t f. f


 Внешние функции над константами порождают новые пра-
вила редукции.
                                                     18
δ-редукция: обобщение

Если на множестве термов X (обычно X ⊆ C) задана внеш-
няя функция f : Xk → Λ(C), то для неё добавляем δ-правило:
  выбираем константу δf;
  для M1, . . . , Mk ∈ X добавляем правило сокращения
                δf M1 . . . Mk →δ f(M1, . . . , Mk)
Для одной f       не одно правило, а целая схема правил.

Например, для Z = {. . . , −2, −1, 0, 1, 2, . . .} схемы правил:
                 plus m   n   →δ   m+n
                 mult m   n   →δ   m×n
                equal n   n   →δ   true
                equal m   n   →δ   false, если m = n


                                                                   19
Типизация расширенной системы

Расширим и типы константами T ::= B | V | T → T, под-
ходящими для типизации термовых констант, и аксиомами
типизации вида
                               c:σ
Например, B = {B, Z} с аксиомами
                  true : B, false : B,        n : Z,
                  not : B → B,     or : B → B → B,
                  iif : B → σ → σ → σ,
                  plus : Z → Z → Z,
                  mult : Z → Z → Z,
                  equal : Z → Z → B.


                                                       20
Вывод типа для расширенной системы


Типизируем λx y. mult y (plus x y).



                                  plus : Z → Z → Z     [x : Z]2
                                                                  [y : Z]1
  mult : Z → Z → Z    [y : Z]1         plus x : Z → Z
       mult y : Z → Z                        plus x y : Z
                     mult y (plus x y) : Z
                                                (1)
                λy. mult y (plus x y) : Z → Z
                                                      (2)
               λx y. mult y (plus x y) : Z → Z → Z

                                                                      21
Система λYδ



Типизация для системы с числами обладает свойством силь-
ной нормализации.

Это не всегда так.

Определим расширение с одной термовой константой C = {Y},
правилом редукции:
Y f →δ f (Y f)
и одной схемой аксиом типизации:
Y : (σ → σ) → σ.


                                                    22
Свойства системы λYδ




 Система λYδ обладает свойством Чёрча-Россера.

  Нормальная редукционная стратегия приводит терм си-
стемы λYδ к нормальной форме, если у него она есть.

 Система λYδ→ обладает свойством редукции субъекта.

 В системе λYδ представимы все вычислимые функции.



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




Докажите эквивалентность двух определений порядка типа.




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



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

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

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


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




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

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

ОЯП гл. 8.3.2
Дж.Митчелл, Основания языков программирования,
М.-Ижевск, НИЦ РХД, 2010


                                                   26

More Related Content

PDF
20110313 systems of_typed_lambda_calculi_moskvin_lecture05
PDF
20110306 systems of_typed_lambda_calculi_moskvin_lecture04
PDF
20110522 systems of typed lambda_calculi_moskvin_lecture12
PDF
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
PPTX
Исследование производной
PDF
20080928 structuralcomplexitytheory lecture01-02
PDF
20081123 structuralcomplexitytheory lecture11-12
PDF
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
20110313 systems of_typed_lambda_calculi_moskvin_lecture05
20110306 systems of_typed_lambda_calculi_moskvin_lecture04
20110522 systems of typed lambda_calculi_moskvin_lecture12
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
Исследование производной
20080928 structuralcomplexitytheory lecture01-02
20081123 structuralcomplexitytheory lecture11-12
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...

What's hot (20)

PDF
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
PDF
Get Ft
PDF
Линейная алгебра - II
PDF
Pr i-3
PDF
20110306 systems of_typed_lambda_calculi_moskvin_lecture03
PPTX
PDF
Lection07
PDF
20081116 structuralcomplexitytheory lecture09-10
PDF
PDF
Скорость роста функций
PDF
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
PDF
20110327 systems of_typed_lambda_calculi_moskvin_lecture08
PDF
20110224 systems of_typed_lambda_calculi_moskvin_lecture01
PPT
Funkciya y cos_ee_svojstva_i_grafik
PDF
10474
PDF
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
PPT
предел последовательности
PPT
лекция 10
PDF
Линейная алгебра - I
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
Get Ft
Линейная алгебра - II
Pr i-3
20110306 systems of_typed_lambda_calculi_moskvin_lecture03
Lection07
20081116 structuralcomplexitytheory lecture09-10
Скорость роста функций
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
20110327 systems of_typed_lambda_calculi_moskvin_lecture08
20110224 systems of_typed_lambda_calculi_moskvin_lecture01
Funkciya y cos_ee_svojstva_i_grafik
10474
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
предел последовательности
лекция 10
Линейная алгебра - I
Ad

Viewers also liked (9)

PPT
Misa Universitaria
PPT
Posterous
PPTX
Dn12 u3 a35_gfc
PPTX
дилижан 2009
PDF
Comic plaza de españa sevilla
PDF
Ale o co chodzi?
PPTX
Dn11 u3 ac38_ejma
PPTX
Dn11 u3 a37_ejma-1
Misa Universitaria
Posterous
Dn12 u3 a35_gfc
дилижан 2009
Comic plaza de españa sevilla
Ale o co chodzi?
Dn11 u3 ac38_ejma
Dn11 u3 a37_ejma-1
Ad

Similar to 20110313 systems of_typed_lambda_calculi_moskvin_lecture06 (20)

PDF
20110327 systems of_typed_lambda_calculi_moskvin_lecture07
PDF
Дмитрий Кашицын, Вывод типов в динамических и не очень языках II
PDF
20110522 systems of typed lambda_calculi_moskvin_lecture11
PDF
20110515 systems of typed lambda_calculi_moskvin_lecture09
PDF
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
PDF
20100923 proof complexity_hirsch_lecture02
PDF
20110515 systems of typed lambda_calculi_moskvin_lecture10
PDF
20110925 csseminar formal_grammars_complexity
PDF
20100926 ontology konev_lecture03
PPTX
05 кив и кип
PDF
20081012 structuralcomplexitytheory lecture03-04
PDF
Lection06
PDF
20131106 h10 lecture6_matiyasevich
PPT
Фреге и брадобрей
PDF
Lection09
PDF
20131027 h10 lecture5_matiyasevich
PDF
20101002 ontology konev_lecture07
PDF
20101021 proof complexity_hirsch_lecture05
PPS
презентация с авторским шаблоном и заметками дз 28.03.12
20110327 systems of_typed_lambda_calculi_moskvin_lecture07
Дмитрий Кашицын, Вывод типов в динамических и не очень языках II
20110522 systems of typed lambda_calculi_moskvin_lecture11
20110515 systems of typed lambda_calculi_moskvin_lecture09
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20100923 proof complexity_hirsch_lecture02
20110515 systems of typed lambda_calculi_moskvin_lecture10
20110925 csseminar formal_grammars_complexity
20100926 ontology konev_lecture03
05 кив и кип
20081012 structuralcomplexitytheory lecture03-04
Lection06
20131106 h10 lecture6_matiyasevich
Фреге и брадобрей
Lection09
20131027 h10 lecture5_matiyasevich
20101002 ontology konev_lecture07
20101021 proof complexity_hirsch_lecture05
презентация с авторским шаблоном и заметками дз 28.03.12

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
20131027 h10 lecture5_matiyasevich
PDF
20131013 h10 lecture4_matiyasevich
PDF
20131006 h10 lecture3_matiyasevich
PDF
20131006 h10 lecture3_matiyasevich
PDF
20131006 h10 lecture2_matiyasevich
PDF
20130922 h10 lecture1_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
20131027 h10 lecture5_matiyasevich
20131013 h10 lecture4_matiyasevich
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture2_matiyasevich
20130922 h10 lecture1_matiyasevich

20110313 systems of_typed_lambda_calculi_moskvin_lecture06

  • 1. Системы типизации лямбда-исчисления Лекция 6. Просто типизированная система: разрешимость, нормализация, расширения Денис Москвин 13.03.2011 CS Club при ПОМИ РАН 1
  • 2. Проблемы разрешимости Есть ли алгоритм, который позволяют решить задачу? M : σ? Задача проверки типа ЗПТ Type Checking Problem TCP M:? Задача синтеза типа ЗСТ Type Synthesis (or Assgnment) Problem TSP, TAP ?:σ Задача обитаемости типа ЗОТ Type Inhabitation Problem TIP Для λ→ (и в стиле Чёрча, и в стиле Карри) все эти задачи разрешимы. ЗПТ выглядит проще ЗСТ, но обычно они эквивалентны: проверка (M N) : σ? требует синтеза N : ?. 2
  • 3. Проблемы разрешимости (2) ЗПТ M : σ? и ЗСТ M : ?. Для λ→ а ля Чёрч тривиально: строим дерево вывода ти- па. Для λ→ а ля Карри: ЗСТ разрешается с помощью алгорит- ма PT , ЗПТ проверкой, что тип σ может быть получен подстановкой в результат PT . ЗОТ ? : σ. Разрешим, поскольку соответствует доказуемости в PROP, для которой факт разрешимости известен. Например, M M : (α → β) → β, поскольку (α → β) → β не является тавтологией минимальной пропозициональной логики. 3
  • 4. Слабая и сильная нормализация (Weak and Strong Normalization) Терм называют слабо нормализуемым (WN), если име- ется последовательность редукций, приводящих его к нор- мальной форме. Терм называют сильно нормализуемым (SN), если лю- бая последовательность редукций, приводит его к нормаль- ной форме. Пример. Терм K I K SN, терм K I Ω WN, терм Ω не нормализуем. 4
  • 5. Слабая и сильная нормализация Систему типов называют слабо нормализуемой если все её допустимые термы WN. Систему типов называют сильно нормализуемой если все её допустимые термы SN. Обе системы λ→ (и Карри, и Чёрча) сильно нормализуемы. Доказательство не является тривиальным. 5
  • 6. Что мешает нормализации? Терм может увеличиваться. (λf x. f (f x)) M →β λx. M (M x) Редекс может размножиться. (λf x. f (f x)) ((λy. M) N) →β λx. ((λy. M) N) (((λy. M) N) x) Могут появиться новые редексы. (λf x. f (f x)) (λy. M) →β λx. (λy. M) ((λy. M) x) Идея для док-ва WN: выбирать стратегию, которая на каж- дом шаге: или делает терм короче или не создаёт новых редексов. Увы, это не проходит. 6
  • 7. WN: лемма о появлении редексов При β-редукции редексы могут образовываться только сле- дующими способами: Создание. (λx. · · · (x N) · · · ) (λy. M) →β · · · ((λy. M) N) · · · Размножение. (λx. · · · x · · · x · · · ) ((λy. M) N) →β · · · ((λy. M) N) · · · ((λy. M) N) · · · Спрятанный редекс. (λx. (λy. M)) N P →β (λy. M[x := N]) P Редукция тождества. (λx. x) (λy. M) N →β (λy. M) N 7
  • 8. WN: меры типа Длиной типа σ называют число len(σ) стрелок в нём. Порядком типа σ называют число ord(σ) ord(α) = 0; ord(σ1 → . . . → σn → α) = max(ord(σ1), . . . ord(σn)) + 1. Эквивалентное определение (докажите это): ord(α) = 0; ord(σ → τ) = max(ord(σ) + 1, ord(τ)). Примеры. ord(α → β) = 1; ord(α → β → γ) = 1; ord((α → β) → γ) = 2; ord((γ → ε) → ((γ → ε) → ε) → ε) = ? 8
  • 9. WN: мера терма Высотой редекса назовём длину типа его левого аппли- канда. Для M : τ, N : σ имеем h ((λx : σ. M) N) = len(σ → τ) Введём для терма M меру µ(M) = (hr(M), M), где hr(M) максимальная высота редекса в M; M число редексов такой высоты в M. Зададим для меры лексикографический порядок: (h1, n1) < (h2, n2) | (h1 ≡ h2) = h1 < h2 (h1, n1) < (h2, n2) | (h1 ≡ h2) = n1 < n2 9
  • 10. WN: Теорема о слабой нормализации λ→ Теорема. Если M типизируемый терм в λ→, то для него имеется завершающаяся редукционная стратегия. Доказательство. Выберем редекс максимальной высоты hr(M), не содержащий другого такого же редекса. Сократим этот редекс: M →β N. При этом не возникнет но- вых редексов высоты hr(M). Имеем µ(N) < µ(M). Поскольку этот процесс не может про- должаться бесконечно, мы придём к терму без редексов. Осталось проверить утверждение о новых редексах. 10
  • 11. WN: используем лемму о появлении редексов Создание. Был редекс высоты h0 = h((σ → τ) → ρ), возник с h(σ → τ) < h0. (λxσ→τ. · · · (x Nσ) · · · ) (λyσ. Mτ) →β · · · ((λyσ. Mτ) Nσ) · · · Размножение. Был редекс высоты h0 = h(τ → ρ), по условию h0 > h(σ → τ) (иначе бы сокращали не его). (λxτ. · · · x · · · x · · · ) ((λyσ. Mτ) Nσ) →β · · · ((λyσ. Mτ) Nσ) · · · ((λyσ. Mτ) Nσ) · · · Спрятанный редекс. h0 = h(σ → τ → ρ), возник с h(τ → ρ) < h0. (λxσ. (λyτ. Mρ)) Nσ Pτ →β (λyτ. M[x := N]) Pτ Редукция I. h0 = h((σ → τ) → σ → τ), возник с h(σ → τ) < h0. (λxσ→τ. x) (λyσ. Mτ) Nσ →β (λyσ. Mτ) Nσ 11
  • 12. Сильная нормализация для λ→-Карри Введём SN множество термов, для которых все последо- вательности редукций завершаются нормальной формой. Наша задача показать, что Γ M : σ ⇒ M ∈ SN Для этого каждого типа σ определим логический предикат Pσ над термами этого типа. Цель. Если для предиката Pσ выполняется Γ M : σ влечёт Pσ(M); Pσ(M) влечёт M ∈ SN, то SN доказана. 12
  • 13. SN: определение предиката Pσ Определим логический предикат Pσ так Pα(M) := M ∈ SN Pσ→τ(M) := ∀N Pσ(N) ⇒ Pτ(M N) Предикат для стрелки верен, если он верен для всех апплика- ций соответствующего терма к любым термам, для которых верен такой предикат. Иногда пишут [[σ]] ≡ {M | Pσ(M)} и говорят про интерпретацию типов. Полезное замечание: (M N) ∈ SN ⇒ M ∈ SN ∧ N ∈ SN, но не наоборот (приведите пример!). 13
  • 14. Лемма: если Pσ, то SN Лемма 1. Для каждого σ и k 0 верно: (1) Если (x M1 . . . Mk) : σ и ∀i Mi ∈ SN, то Pσ(x M1 . . . Mk); (2) Если Pσ(M), то M ∈ SN. Доказательство. Индукция по структуре типа. Для α (1) тривиально; (2) по определению Pσ. Для σ → τ. → − (1) Пусть (x M) : σ → τ и ∀i Mi ∈ SN; берём ∀N Pσ(N). По (IH2) → τ (x − N). Отсюда для σ имеем N ∈ SN. По (IH1) для τ имеем P M Pσ→τ(x M1 . . . Mk), поскольку N произвольное. (2) Берём ∀M Pσ→τ(M) и x : σ. По (IH1) Pσ(x), откуда Pτ(M x). По (IH2) имеем M x ∈ SN, что даёт M ∈ SN, поскольку беско- нечная редукция во втором даст её и в первом. 14
  • 15. Сильная нормализация Лемма 2. Для каждого σ для предиката Pσ верно: → → σ(M[x := N] − ), то P σ((λx. M) N − ). Для любого N ∈ SN если P L L Доказательство. Индукция по структуре типа. Проведите её. Утверждение. Пусть дан контекст Γ = {x1 : τ1, . . . , xk : τk} и термы N1, . . . , Nk, такие что ∀i Pτi (Ni). Тогда Γ M : σ ⇒ Pσ(M[x1 := N1, . . . , xk := Nk]) Доказательство. Индукция по выводу Γ M : σ, используя лемму 2. Проведите её. Следствие. λ→ является SN. Доказательство. Положим Ni = xi. 15
  • 16. Интерпретации λ→ Как можно интерпретировать стрелочный тип? Теоретико-множественная модель [[σ → τ]] := [[τ]][[σ]] Она слишком большая . Наша модель [[α]] := SN [[σ → τ]] := {M | ∀N ∈ [[σ]] (M N) ∈ [[τ]]} Иначе говоря [[σ → τ]] := {f : [[σ]] → [[τ]] | f λ − определима} 16
  • 17. Расширения λ-исчисления Можно расширить множество λ-термов константами: Λ(C) ::= C | V | Λ(C) Λ(C) | λV. Λ(C) Например, C = {true, false}? Но нам ещё нужно уметь их использовать. Поэтому лучше C = {true, false, not, and, iif} И всё равно, помимо констант нужны дополнительные пра- вила, описывающие работу с ними. Какие? 17
  • 18. δ-редукция: пример Всем известные: not true →δ false not false →δ true and true true →δ true and true false →δ false and false true →δ false and false false →δ false iif true →δ TRU = λ t f. t iif false →δ FLS = λ t f. f Внешние функции над константами порождают новые пра- вила редукции. 18
  • 19. δ-редукция: обобщение Если на множестве термов X (обычно X ⊆ C) задана внеш- няя функция f : Xk → Λ(C), то для неё добавляем δ-правило: выбираем константу δf; для M1, . . . , Mk ∈ X добавляем правило сокращения δf M1 . . . Mk →δ f(M1, . . . , Mk) Для одной f не одно правило, а целая схема правил. Например, для Z = {. . . , −2, −1, 0, 1, 2, . . .} схемы правил: plus m n →δ m+n mult m n →δ m×n equal n n →δ true equal m n →δ false, если m = n 19
  • 20. Типизация расширенной системы Расширим и типы константами T ::= B | V | T → T, под- ходящими для типизации термовых констант, и аксиомами типизации вида c:σ Например, B = {B, Z} с аксиомами true : B, false : B, n : Z, not : B → B, or : B → B → B, iif : B → σ → σ → σ, plus : Z → Z → Z, mult : Z → Z → Z, equal : Z → Z → B. 20
  • 21. Вывод типа для расширенной системы Типизируем λx y. mult y (plus x y). plus : Z → Z → Z [x : Z]2 [y : Z]1 mult : Z → Z → Z [y : Z]1 plus x : Z → Z mult y : Z → Z plus x y : Z mult y (plus x y) : Z (1) λy. mult y (plus x y) : Z → Z (2) λx y. mult y (plus x y) : Z → Z → Z 21
  • 22. Система λYδ Типизация для системы с числами обладает свойством силь- ной нормализации. Это не всегда так. Определим расширение с одной термовой константой C = {Y}, правилом редукции: Y f →δ f (Y f) и одной схемой аксиом типизации: Y : (σ → σ) → σ. 22
  • 23. Свойства системы λYδ Система λYδ обладает свойством Чёрча-Россера. Нормальная редукционная стратегия приводит терм си- стемы λYδ к нормальной форме, если у него она есть. Система λYδ→ обладает свойством редукции субъекта. В системе λYδ представимы все вычислимые функции. 23
  • 24. Домашнее задание Докажите эквивалентность двух определений порядка типа. 24
  • 25. Литература (1) LCWT гл. 4.4, 4.3 Henk Barendregt, Lambda calculi with types, Handbook of logic in computer science (vol. 2), Oxford University Press, 1993 ITT гл. 4.3, 4.4 Herman Geuvers, Introduction to Type Theory Alfa Lernet Summer school 2008, Uruguay http://www.cs.ru.nl/H.Geuvers/Uruguay2008SummerSchool.html 25
  • 26. Литература (2) TAPL гл. 12 Benjamin C. Pierce, Types and Programming Languages, MIT Press, 2002 http://www.cis.upenn.edu/~bcpierce/tapl ОЯП гл. 8.3.2 Дж.Митчелл, Основания языков программирования, М.-Ижевск, НИЦ РХД, 2010 26