Это не официальный сайт wikipedia.org 01.01.2023

Соответствие Карри — Ховарда — Википедия

Соответствие Карри — Ховарда

(перенаправлено с «Соответствие Карри — Говарда»)

Соответствие Карри — Ховарда (изоморфизм Карри — Ховарда, англ. formulæ-as-types interpretation) — наблюдаемая структурная эквивалентность между математическими доказательствами и программами, которая может быть формализована в виде изоморфизма между логическими системами и типизированными исчислениями.

Хаскелл Карри[1] и Уильям Ховард[en][2] заметили, что построение конструктивного доказательства похоже на описание вычислений, а высказывания конструктивной логики по своей структуре схожи с типами вычисляемых выражений — программ для вычислительной машины. Ранние проявления этой связи — интерпретация Брауэра — Гейтинга — Колмогорова[en] (1925), задающая семантику интуиционистской логики через вычисления доказательств, и теория реализуемости[en] Клини (1945).

Соответствие Карри — Ховарда в современном представлении не ограничивается какой-то одной логикой или системой типов. Например, логика высказываний соответствует простому типизированному λ-исчислению, логика высказываний второго порядка[en] — полиморфному λ-исчислению, исчисление предикатов — λ-исчислению с зависимыми типами.

В рамках изоморфизма Карри — Ховарда следующие структурные элементы рассматриваются как эквивалентные:

Логические системы Языки программирования
Высказывание Тип
Доказательство высказывания P Терм (выражение) типа P
Утверждение P доказуемо Тип P обитаем
Импликация P Q Функциональный тип P Q
Конъюнкция P Q Тип произведения (пары) P × Q
Дизъюнкция P Q Тип суммы (размеченного объединения) P + Q
Истинная формула Единичный тип
Ложная формула Пустой тип ( )
Квантор всеобщности Тип зависимого произведения ( Π -тип)
Квантор существования Тип зависимой суммы ( Σ -тип)

Простейшим примером соответствия Карри — Ховарда может служить изоморфизм между простым типизированным λ-исчислением и фрагментом интуиционистской логики высказываний, включающим только импликацию. Например, тип ( P Q R ) ( P Q ) P R в простом типизированном лямбда-исчислении соответствует высказыванию ( P ( Q R ) ) ( ( P Q ) ( P R ) ) логики высказываний. Для доказательства этого высказывания необходимо сконструировать терм указанного типа (если это удаётся сделать, то про тип говорят, что он обитаем или населён), в данном случае можно предъявить нужный терм: λ f g x f x ( g x ) , и это значит, что тавтология ( P ( Q R ) ) ( ( P Q ) ( P R ) ) доказана.

Использование изоморфизма Карри — Ховарда позволило создать целый класс функциональных языков программирования, среда выполнения которых одновременно является системой автоматического доказательства, таких как Coq, Agda и Epigram[en].

ПримечанияПравить

  1. Curry, H. B., Feys, R. Combinatory Logic Vol. I. — Amsterdam: North-Holland, 1958.
  2. Howard, W. A. The formulae-as-types notion of construction // To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism. — Boston: Academic Press, 1980. — С. 479–490.

ЛитератураПравить