Просто типизированное лямбда-исчисление

Материал из testwiki
Перейти к навигации Перейти к поиску

Просто типизированное лямбда-исчисление (простое типизированное лямбда-исчисление, лямбда-исчисление с простыми типами, система λ) — система типизированного лямбда-исчисления, в которой лямбда-абстракции приписывается специальный «стрелочный» тип. Эта система была предложена Алонзо Чёрчем в 1940 году[1]. Для близкого к лямбда-исчислению формализма комбинаторной логики похожая система рассматривалась Хаскеллом Карри в 1934 году[2].

Формальное описание

Синтаксис типов и термов

В базовой версии системы λ типы конструируются из набора переменных с помощью единственного бинарного инфиксного конструктора . По традиции для переменных типа используют греческие буквы, а оператор считают правоассоциативным, то есть αβγ является сокращением для α(βγ). Буквы из второй половины греческого алфавита (σ, τ, и т.д.) часто используются для обозначения произвольных типов, а не только переменных типа.

Различают две версии просто типизированной системы. Если в качестве термов используются те же термы, что и в бестиповом лямбда-исчислении, то систему называют неявно типизированной или типизированной по Карри. Если же переменные в лямбда-абстракции аннотируются типами, то систему называют явно типизированной или типизированной по Чёрчу. В качестве примера приведём тождественную функцию в стиле Карри: λx.x, и в стиле Чёрча: λx:α.x.

Правила редукции

Правила редукции не отличаются от правил для бестипового лямбда-исчисления. β-редукция определяется через подстановку

(λx:σ.M)N β M[x:=N].

η-редукция определяется так

λx:σ.Mx η M.

Для η-редукции требуется, чтобы переменная x не была свободной в терме M.

Контексты типизации и утверждения типизации

Контекстом называется множество утверждений о типизации переменных, разделённых запятой, например,

f:(βγ),g:(αβ),x:α

Контексты обычно обозначают прописными греческими буквами: Γ,Δ. В контекст можно добавить «свежую» для этого контекста переменную: если Γ — допустимый контекст, не содержащий переменной x, то Γ,x:α — тоже допустимый контекст.

Общий вид утверждения о типизации таков:

ΓM:σ

Это читается следующим образом: в контексте Γ терм M имеет тип σ.

Правила типизации (по Чёрчу)

В просто типизированном лямбда-исчислении приписывание типов термам осуществляется по приведённым ниже правилам.

Аксиома. Если переменной x присвоен в контексте тип σ, то в этом контексте x имеет тип σ. В виде правила вывода:

x:σΓΓx:σ

Правило введения . Если в некотором контексте, расширенном утверждением, что x имеет тип σ, терм M имеет тип τ, то в упомянутом контексте (без x), лямбда-абстракция λx:σ.M имеет тип στ. В виде правила вывода:

Γ,x:σM:τΓ(λx:σ.M):(στ)

Правило удаления . Если в некотором контексте терм M имеет тип στ, а терм N имеет тип σ, то применение MN имеет тип τ. В виде правила вывода:

ΓM:(στ)ΓN:σΓ(MN):τ

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

Примеры утверждений о типизации в стиле Чёрча:

x:αx:α     (аксиома)
(λx:α.x):(αα)     (введение )
f:(βγδ),y:β(fy):(γδ)      (удаление )

Свойства

  • Просто типизированная система обладает свойством типовой безопасности: при β-редукциях тип лямбда-терма остаётся неизменным, а сама типизация не мешает продвижению вычислений.
  • В 1967 году Уильям Тэйт доказал[3], что β-редукция для просто типизированной системы обладает свойством сильной нормализации: любой допустимый терм за конечное число β-редукций приводится к единственной нормальной форме. Как следствие βη-эквивалентность термов оказывается разрешимой в этой системе.
  • Изоморфизм Карри — Ховарда связывает просто типизированное лямбда-исчисление с так называемой «минимальной логикой» (фрагментом интуиционистской логики высказываний, включающим только импликацию): населённые типы являются в точности тавтологиями этой логики, а термы соответствуют доказательствам, записанным в форме естественного вывода.

Примечания

Шаблон:Примечания

Литература

  1. Ошибка цитирования Неверный тег <ref>; для сносок Church40 не указан текст
  2. Ошибка цитирования Неверный тег <ref>; для сносок Curry34 не указан текст
  3. Ошибка цитирования Неверный тег <ref>; для сносок Tait67 не указан текст