В теории языков программирования и теории доказательств соответствие Карри -Ховарда (также известное как изоморфизм или эквивалентность Карри-Ховарда или интерпретация доказательств как программ и интерпретаций предложений или формул как типов ) представляет собой прямую связь между компьютерными программами. и математические доказательства .
Это обобщение синтаксической аналогии между системами формальной логики и вычислительными исчислениями, которая была впервые открыта американским математиком Хаскеллом Карри и логиком Уильямом Элвином Ховардом . [1] Именно связь между логикой и вычислениями обычно приписывают Карри и Ховарду, хотя идея связана с оперативной интерпретацией интуиционистской логики , данной в различных формулировках Л. Дж. Брауэром , Арендом Хейтингом и Андреем Колмогоровым (см. Брауэра-Хейтинга). – интерпретация Колмогорова ) [2] и Стивена Клини (см. Реализуемость ). Отношения были расширены и теперь включают теорию категорий как трехстороннее соответствие Карри-Ховарда-Ламбека . [3] [4] [5]
Начало переписки Карри-Ховарда лежит в нескольких наблюдениях:
Соответствие Карри-Ховарда — это наблюдение, что существует изоморфизм между системами доказательств и моделями вычислений. Это утверждение, что эти два семейства формализмов можно считать идентичными.
Если абстрагироваться от особенностей того или иного формализма, то возникает следующее обобщение: доказательство — это программа, а формула, которую оно доказывает, — это тип программы . Более неформально это можно рассматривать как аналогию , которая утверждает, что тип возвращаемого значения функции (т. е. тип значений, возвращаемых функцией) аналогичен логической теореме с учетом гипотез, соответствующих типам переданных значений аргумента. к функции; и что программа для вычисления этой функции аналогична доказательству этой теоремы. Это закладывает форму логического программирования на строгий фундамент: доказательства могут быть представлены в виде программ, особенно в виде лямбда-термов , или доказательства могут быть запущены .
Это соответствие стало отправной точкой большого спектра новых исследований после его открытия, которые привели, в частности, к новому классу формальных систем , предназначенных для работы как в качестве системы доказательства , так и в качестве типизированного функционального языка программирования . Сюда входят интуиционистская теория типов Мартина-Лёфа и Исчисление конструкций Коканда , два исчисления, в которых доказательства являются регулярными объектами дискурса и в которых можно сформулировать свойства доказательств так же, как и в любой программе. Эту область исследований обычно называют современной теорией типов .
Такие типизированные лямбда-исчисления , полученные из парадигмы Карри-Ховарда, привели к созданию такого программного обеспечения, как Coq , в котором доказательства, рассматриваемые как программы, можно формализовать, проверить и запустить.
Обратное направление — использовать программу для извлечения доказательства при условии его корректности — область исследований, тесно связанная с кодом, несущим доказательство . Это возможно только в том случае, если язык программирования , для которого написана программа, очень широко типизирован: разработка таких систем типов была частично мотивирована желанием сделать соответствие Карри-Ховарда практически актуальным.
Переписка Карри-Ховарда также подняла новые вопросы относительно вычислительного содержания концепций доказательства, которые не были освещены в оригинальных работах Карри и Ховарда. В частности, было показано, что классическая логика соответствует способности манипулировать продолжением программ и симметрией секвенциального исчисления , чтобы выразить двойственность между двумя стратегиями оценки, известными как вызов по имени и вызов по значению.
Из-за возможности написания непрерывных программ Тьюринг-полные модели вычислений (такие как языки с произвольными рекурсивными функциями ) следует интерпретировать с осторожностью, поскольку наивное применение соответствия приводит к противоречивой логике. Лучший способ справиться с произвольными вычислениями с логической точки зрения все еще является активно обсуждаемым исследовательским вопросом, но один популярный подход основан на использовании монад для разделения доказуемо завершающегося кода от потенциально незавершаемого (подход, который также обобщается на гораздо более богатые модели вычислений, [9] и сама связана с модальной логикой естественным расширением изоморфизма Карри–Ховарда [ext 1] ). Более радикальный подход, пропагандируемый тотальным функциональным программированием , состоит в том, чтобы устранить неограниченную рекурсию (и отказаться от полноты по Тьюрингу , хотя при этом сохраняется высокая вычислительная сложность), используя более контролируемую корекурсию там, где действительно желательно незавершающее поведение.
В более общей формулировке соответствие Карри-Ховарда представляет собой соответствие между исчислениями формальных доказательств и системами типов для моделей вычислений . В частности, оно распадается на два соответствия. Один на уровне формул и типов , который не зависит от того, какая конкретная система доказательства или модель вычислений рассматривается, и другой на уровне доказательств и программ , который на этот раз зависит от конкретного выбора системы доказательства и модели вычислений. обдуманный.
На уровне формул и типов соответствие говорит, что импликация ведет себя так же, как тип функции, конъюнкция — как тип «произведения» (это может называться кортежем, структурой, списком или каким-либо другим термином в зависимости от языка). ), дизъюнкция как тип суммы (этот тип можно назвать объединением), ложная формула как пустой тип и истинная формула как тип единицы (единственным членом которой является нулевой объект). Кванторы соответствуют пространству зависимых функций или продуктам (в зависимости от обстоятельств). Это обобщено в следующей таблице:
На уровне систем доказательств и моделей вычислений соответствие главным образом показывает идентичность структуры, во-первых, между некоторыми конкретными формулировками систем, известных как система дедукции в стиле Гильберта и комбинаторная логика , и, во-вторых, между некоторыми конкретными формулировками систем, известных как как естественный вывод и лямбда-исчисление .
Между системой естественной дедукции и лямбда-исчислением существуют следующие соответствия:
Вначале это было простое замечание в книге Карри и Фейса по комбинаторной логике 1958 года: простейшие типы основных комбинаторов K и S комбинаторной логики неожиданно соответствовали соответствующим схемам аксиом α → ( β → α ) и ( α → ( β → γ )) → (( α → β ) → ( α → γ )) используется в системах вывода в стиле Гильберта . По этой причине эти схемы теперь часто называют аксиомами K и S. Ниже приведены примеры программ, рассматриваемых как доказательства в логике гильберта.
Если ограничиться импликационным интуиционистским фрагментом, то простой способ формализовать логику в стиле Гильберта состоит в следующем. Пусть Г — конечный набор формул, рассматриваемых как гипотезы. Тогда δ выводится из Γ, обозначаемого Γ ⊢ δ, в следующих случаях:
Это можно формализовать с помощью правил вывода , как показано в левом столбце следующей таблицы.
Типизированную комбинаторную логику можно сформулировать с использованием аналогичного синтаксиса: пусть Γ — конечный набор переменных, аннотированных их типами. Терм T (также аннотированный его типом) будет зависеть от этих переменных [Γ ⊢ T: δ ], когда:
Определенные здесь правила генерации приведены в правом столбце ниже. Замечание Карри просто утверждает, что оба столбца находятся во взаимно однозначном соответствии. Ограничение соответствия интуиционистской логике означает, что некоторые классические тавтологии , такие как закон Пирса (( α → β ) → α ) → α , исключаются из соответствия.
На более абстрактном уровне соответствие можно переформулировать, как показано в следующей таблице. В частности, теорема о дедукции, специфичная для логики в стиле Гильберта, соответствует процессу устранения абстракции комбинаторной логики.
Благодаря соответствию результаты комбинаторной логики могут быть перенесены в логику гильбертова и наоборот. Например, понятие редукции терминов в комбинаторной логике можно перенести в логику гильбертовского стиля, и это дает возможность канонически преобразовать доказательства в другие доказательства того же утверждения. Можно также перенести понятие нормальных термов на понятие нормальных доказательств, выразив, что гипотезы аксиом никогда не должны быть полностью отделены (поскольку в противном случае может произойти упрощение).
И наоборот, недоказуемость в интуиционистской логике закона Пирса может быть перенесена обратно в комбинаторную логику: не существует типизированного термина комбинаторной логики, который можно было бы типизировать с помощью типа
Также могут быть переданы результаты о полноте некоторых наборов комбинаторов или аксиом. Например, тот факт, что комбинатор X представляет собой одноточечный базис (экстенсиональной) комбинаторной логики, подразумевает, что единая схема аксиом
который является основным типом X , является адекватной заменой комбинации схем аксиом
После того, как Карри подчеркнул синтаксическое соответствие между интуиционистской дедукцией в стиле Гильберта и типизированной комбинаторной логикой , Ховард в 1969 году ясно выявил синтаксическую аналогию между программами просто типизированного лямбда-исчисления и доказательствами естественной дедукции . Ниже левая часть формализует интуиционистский импликативный естественный вывод как исчисление секвенций (использование секвенций является стандартным при обсуждении изоморфизма Карри – Говарда, поскольку позволяет более четко формулировать правила вывода) с неявным ослаблением и правым -сторона показывает правила ввода лямбда-исчисления . В левой части Γ, Γ 1 и Γ 2 обозначают упорядоченные последовательности формул, а в правой части они обозначают последовательности именованных (т. е. типизированных) формул со всеми разными именами.
Перефразируя соответствие, доказательство Γ ⊢ α означает наличие программы, которая по заданным значениям типов, перечисленных в Γ, производит объект типа α . Аксиома/гипотеза соответствует введению новой переменной нового, неограниченного типа, правило → I соответствует абстракции функции, а правило → E соответствует применению функции. Заметим, что соответствие не является точным, если в качестве контекста Γ взять набор формул, например, λ-термы λ x .λ y . Икс и λ Икс .λ y . y типа α → α → α не будет выделяться в переписке. Примеры приведены ниже.
Ховард показал, что соответствие распространяется на другие логические связки и другие конструкции просто типизированного лямбда-исчисления. На абстрактном уровне соответствие можно резюмировать, как показано в следующей таблице. В частности, это также показывает, что понятие нормальных форм в лямбда-исчислении соответствует идее Нормица о нормальной дедукции в естественной дедукции , из чего следует, что алгоритмы для задачи обитаемости типов могут быть превращены в алгоритмы для определения интуиционистской доказуемости.
Переписка Говарда естественным образом распространяется на другие расширения естественной дедукции и просто типизированное лямбда-исчисление . Вот неисчерпывающий список:
Во времена Карри, а также во времена Говарда соответствие доказательств как программ касалось только интуиционистской логики , т. е. логики, в которой, в частности, закон Пирса не выводился . Расширение соответствия закону Пирса и, следовательно, классической логике стало очевидным из работы Гриффина по типизации операторов, которые фиксируют контекст оценки выполнения данной программы, чтобы этот контекст оценки можно было позже переустановить. Основное соответствие в стиле Карри-Ховарда для классической логики приведено ниже. Обратите внимание на соответствие между переводом двойного отрицания , используемым для отображения классических доказательств в интуиционистскую логику, и переводом в стиле передачи продолжения, используемым для отображения лямбда-терминов, включающих управление, в чистые лямбда-термины. В частности, переводы в стиле продолжения-передачи вызова по имени относятся к переводу двойного отрицания Колмогорова , а переводы в стиле продолжения-передачи вызова по значению относятся к своего рода переводу двойного отрицания, предложенному Куродой.
Более точное соответствие Карри-Ховарда существует для классической логики, если определить классическую логику не путем добавления аксиомы, такой как закон Пирса , а путем допуска нескольких выводов в секвенциях. В случае классической естественной дедукции существует соответствие «доказательства как программы» с типизированными программами λμ-исчисления Париго .
Соответствие «доказательства как программы» может быть установлено для формализма, известного как секвенциальное исчисление Генцена , но это не соответствие с четко определенной ранее существовавшей моделью вычислений, как это было для гильбертовского стиля и естественных выводов.
Секвенционное исчисление характеризуется наличием правил левого введения, правила правого введения и правила разреза, которое можно исключить. По структуре секвенциальное исчисление относится к исчислению, структура которого близка к структуре некоторых абстрактных машин . Неофициальная переписка следующая:
Н. Г. де Брейн использовал лямбда-нотацию для представления доказательств программы проверки теорем Automath и представлял предложения как «категории» их доказательств. Это было в конце 1960-х годов, в то же время, когда Ховард писал свою рукопись; де Брейн, вероятно, не знал о работе Ховарда и изложил переписку независимо (Sørensen & Urzyczyn [1998] 2006, стр. 98–99). Некоторые исследователи склонны использовать термин «соответствие Карри-Ховарда-де Брейна» вместо соответствия Карри-Ховарда.
Интерпретация БГК интерпретирует интуиционистские доказательства как функции, но не определяет класс функций, релевантных для интерпретации. Если для этого класса функций взять лямбда-исчисление, то интерпретация БХК говорит то же самое, что и соответствие Говарда между естественным выводом и лямбда-исчислением.
Рекурсивная реализуемость Клини разбивает доказательства интуиционистской арифметики на пару рекурсивной функции и доказательства формулы, выражающей, что рекурсивная функция «реализует», т.е. правильно реализует дизъюнкции и кванторы существования исходной формулы, так что формула получает истинный.
Модифицированная реализуемость Крейзеля применима к интуиционистской логике предикатов высшего порядка и показывает, что просто типизированный лямбда-член, индуктивно извлеченный из доказательства, реализует исходную формулу. В случае логики высказываний это совпадает с утверждением Говарда: извлеченный лямбда-терм является самим доказательством (рассматриваемым как нетипизированный лямбда-терм), а утверждение реализуемости является перефразом того факта, что извлеченный лямбда-терм имеет тип, который имеет формула. означает (рассматривается как тип).
Диалектическая интерпретация Гёделя реализует (расширение) интуиционистскую арифметику с вычислимыми функциями. Связь с лямбда-исчислением неясна даже в случае естественной дедукции.
Иоахим Ламбек показал в начале 1970-х годов, что доказательства интуиционистской логики высказываний и комбинаторы типизированной комбинаторной логики имеют общую эквациональную теорию — теорию декартовых замкнутых категорий . Выражение «соответствие Карри-Ховарда-Ламбека» теперь используется некоторыми людьми [ кем? ] для обозначения отношений между интуиционистской логикой, типизированным лямбда-исчислением и декартовыми закрытыми категориями, при этом объекты интерпретируются как типы или предложения, а морфизмы - как термины или доказательства. Соответствие Ламбека представляет собой соответствие эквациональных теорий, абстрагирующихся от динамики вычислений, таких как бета-редукция и нормализация терминов, и не является выражением синтаксической идентичности структур, как это имеет место для каждого из соответствий Карри и Говарда: т.е. структура корректно определенного морфизма в декартово замкнутой категории не сравнимо со структурой доказательства соответствующего суждения ни в гильбертовой логике, ни в естественной дедукции. Например, невозможно утверждать или доказать, что морфизм нормализуется, установить теорему типа Чёрча-Россера или говорить о «сильно нормализующей» декартовой замкнутой категории. Чтобы прояснить это различие, ниже перефразирована основная синтаксическая структура картезианских закрытых категорий.
Объекты (типы) определяются
Морфизмы (термины) определяются
Четко определенные морфизмы (типизированные термины) определяются следующими правилами типизации (в которых обычная нотация категориального морфизма заменяется нотацией секвенциального исчисления ).
Личность:
Состав:
Тип устройства ( терминальный объект ):
Декартово произведение:
Левая и правая проекция:
Карри :
Наконец, уравнения категории имеют вид
Из этих уравнений следуют следующие -законы:
Теперь существует t такое, что iff доказуемо в импликативной интуиционистской логике.
Благодаря соответствию Карри-Ховарда типизированное выражение, тип которого соответствует логической формуле, аналогично доказательству этой формулы. Вот примеры.
В качестве примера рассмотрим доказательство теоремы α → α . В лямбда-исчислении это тип тождественной функции I = λ x . x , а в комбинаторной логике тождественная функция получается применением S = λ fgx . fx ( gx ) дважды на K знак равно λ xy . Икс . То есть я = (( S K ) K ) . В качестве описания доказательства говорится, что для доказательства α → α можно использовать следующие шаги :
В общем, процедура такова: всякий раз, когда программа содержит приложение формы ( P Q ), необходимо выполнить следующие шаги:
В качестве более сложного примера рассмотрим теорему, соответствующую функции B. Тип B : ( β → α ) → ( γ → β ) → γ → α . B эквивалентно ( S ( K S ) K ). Это наша дорожная карта для доказательства теоремы ( β → α ) → ( γ → β ) → γ → α .
Первым шагом является построение ( KS ) . Чтобы антецедент аксиомы K выглядел как аксиома S , установите α равным ( α → β → γ ) → ( α → β ) → α → γ и β равным δ (во избежание столкновений переменных):
Поскольку антецедент здесь — это просто S , консеквент можно отделить с помощью Modus Ponens:
Эта теорема соответствует типу ( KS ) . Теперь примените S к этому выражению. Взяв S следующим образом
положим α = δ , β = α → β → γ и γ = ( α → β ) → α → γ , что даст
а затем отделите консеквент:
Это формула типа ( S ( KS ) ). Частный случай этой теоремы имеет δ = ( β → γ ) :
Эту последнюю формулу необходимо применить к K. Снова специализируйте K , на этот раз заменив α на ( β → γ ) и β на α :
Это то же самое, что и антецедент предыдущей формулы, поэтому, отделив консеквент:
Поменяв имена переменных α и γ , мы получим
вот что оставалось доказать.
Диаграмма ниже дает доказательство ( β → α ) → ( γ → β ) → γ → α естественным выводом и показывает, как это можно интерпретировать как λ-выражение λ a .λ b .λ g .( a ( b g )) типа ( β → α ) → ( γ → β ) → γ → α .
a:β → α, b:γ → β, g:γ ⊢ b : γ → β a:β → α, b:γ → β, g:γ ⊢ g : γ————————————————————————————————————————————————— ————————————————————————————————————————————————— ———a:β → α, b:γ → β, g:γ ⊢ a: β → α a:β → α, b:γ → β, g:γ ⊢ bg : β————————————————————————————————————————————————— —————————————————————— a:β → α, b:γ → β, g:γ ⊢ a (bg) : α ———————————————————————————————————— a:β → α, b:γ → β ⊢ λ g. а (бг) : γ → α ———————————————————————————————————————— а:β → α ⊢ λ б. λ г. а (бг) : (γ → β) → γ → α ———————————————————————————————————— ⊢ λ а. λ б. λ г. a (bg) : (β → α) → (γ → β) → γ → α
Недавно изоморфизм был предложен как способ определения разделения пространства поиска в генетическом программировании . [12] Метод индексирует наборы генотипов (деревья программ, разработанные системой GP) на основе их изоморфного доказательства Карри-Ховарда (называемого видом).
Как отметил директор по исследованиям INRIA Бернард Ланг, [13] переписка Карри-Ховарда представляет собой аргумент против патентоспособности программного обеспечения: поскольку алгоритмы являются математическими доказательствами, патентоспособность первого будет подразумевать патентоспособность второго. Теорема может быть частной собственностью; математику придется платить за его использование и доверять компании, которая его продает, но сохраняет доказательство в секрете и снимает с себя ответственность за любые ошибки.
Переписки, перечисленные здесь, идут гораздо дальше и глубже. Например, декартовы закрытые категории обобщаются замкнутыми моноидальными категориями . Внутренним языком этих категорий является система линейных типов (соответствующая линейной логике ), которая обобщает просто типизированное лямбда-исчисление как внутренний язык декартовых замкнутых категорий. Более того, можно показать, что они соответствуют кобордизмам [14] , которые играют жизненно важную роль в теории струн .
Расширенный набор эквивалентностей также исследуется в теории гомотопических типов , которая стала очень активной областью исследований примерно в 2013 году и по состоянию на 2018 год [update]остается таковой. [15] Здесь теория типов расширяется аксиомой однолистности («эквивалентность эквивалентна равенству»), которая позволяет использовать гомотопическую теорию типов в качестве основы для всей математики (включая теорию множеств и классическую логику, предоставляя новые способы обсуждения аксиома выбора и многое другое). То есть соответствие Карри-Ховарда о том, что доказательства являются элементами обитаемых типов, обобщается до понятия гомотопической эквивалентности доказательств (как путей в пространстве, тождественный тип или тип равенства теории типов интерпретируются как путь). [16]
{{cite book}}
: CS1 maint: postscript (link)