Расчет конструкций - Calculus of constructions
Эта статья требует внимания специалиста в области информатики.Ноябрь 2008 г.) ( |
В математическая логика и Информатика, то Расчет конструкций (CoC) это теория типов сделано Тьерри Кокванд. Он может служить как типизированным языком программирования, так и конструктивный фундамент математики. По этой второй причине CoC и его варианты были основой для Coq и другие помощники доказательства.
Некоторые из его вариантов включают Исчисление индуктивных построений.[1] (что добавляет индуктивные типы ), исчисление (Co) индуктивных конструкций (которое добавляет коиндукция ) и предсказательное исчисление индуктивных построений (которое устраняет некоторые непредсказуемость ).
Общие черты
CoC является вышестоящим типизированное лямбда-исчисление, первоначально разработанная Тьерри Кокванд. Он известен тем, что находится на вершине Барендрегт с лямбда-куб. В CoC можно определять функции от терминов к терминам, а также термины к типам, типы к типам и типы к терминам.
CoC - это сильно нормализующий, хотя доказать это свойство в рамках CoC невозможно, поскольку оно предполагает согласованность, которая Теорема Гёделя о неполноте невозможно доказать изнутри самой системы.
использование
CoC был разработан вместе с Coq помощник доказательства. По мере добавления функций (или устранения возможных недостатков) в теорию они стали доступны в Coq.
Варианты CoC используются в других помощниках по доказательству, таких как Матита.
Основы расчета конструкций
Исчисление конструкций можно рассматривать как расширение Изоморфизм Карри – Ховарда. Изоморфизм Карри – Ховарда связывает член в просто типизированное лямбда-исчисление с каждым доказательством естественного вывода в интуиционистская логика высказываний. Исчисление конструкций расширяет этот изоморфизм до доказательств в полном интуиционистском исчислении предикатов, которое включает в себя доказательства количественных утверждений (которые мы также будем называть «предложениями»).
Условия
А срок в Исчислении построений строится по следующим правилам:
- это термин (также называемый Тип);
- это термин (также называемый Опора, тип всех предложений);
- Переменные () являются терминами;
- Если и термины, то так ;
- Если и условия и является переменной, то следующие термины также:
- ,
- .
Другими словами, синтаксис термина в BNF, затем:
Исчисление конструкций включает пять видов объектов:
- доказательства, которые являются терминами, типы которых предложения;
- предложения, которые также известны как маленькие типы;
- предикаты, которые являются функциями, возвращающими предложения;
- большие типы, которые являются типами предикатов ( пример большого шрифта);
- сам по себе, который является типом больших типов.
Суждения
Исчисление конструкций позволяет доказать печатать суждения:
Что можно прочитать как следствие
- Если переменные иметь типы , то срок имеет тип .
Действительные суждения для исчисления построений выводятся из набора правил вывода. В дальнейшем мы используем означать последовательность присвоений типов ; означать термины; и иметь в виду либо или же . Напишем означать результат замены термина для свободной переменной в срок .
Правило вывода записывается в виде
что значит
- Если верное суждение, то так
Правила вывода для исчисления конструкций
1.
2.
3.
4.
5.
6.
Определение логических операторов
В Исчислении построений очень мало основных операторов: единственный логический оператор для формирования предложений - это . Однако одного этого оператора достаточно для определения всех остальных логических операторов:
Определение типов данных
Основные типы данных, используемые в информатике, могут быть определены с помощью исчисления конструкций:
- Булевы
- Naturals
- Товар
- Несвязный союз
Обратите внимание, что логические и натуральные значения определяются так же, как в Церковная кодировка. Однако дополнительные проблемы возникают из-за пропозициональной протяженности и нерелевантности доказательства.[2]
Смотрите также
- Система чистого типа
- Лямбда-куб
- Система F
- Зависимый тип
- Интуиционистская теория типов
- Теория гомотопического типа
Рекомендации
- ^ Исчисление индуктивных конструкций, и базовые стандартные библиотеки:
Типы данных
иЛогика
. - ^ "Стандартная библиотека | Помощник по проверке Coq". coq.inria.fr. Получено 2020-08-08.
- Кокванд, Тьерри; Юэ, Жерар (1988). «Исчисление конструкций» (PDF). Информация и вычисления. 76 (2–3): 95–120. Дои:10.1016/0890-5401(88)90005-3.
- Также доступны в свободном доступе в Интернете: Коканд, Тьерри; Юэ, Жерар (1986). Исчисление конструкций (Технический отчет). INRIA, Центр де Роккенкур. 530.
Обратите внимание, что терминология несколько иная. Например, () написано [Икс : А] B.
- Также доступны в свободном доступе в Интернете: Коканд, Тьерри; Юэ, Жерар (1986). Исчисление конструкций (Технический отчет). INRIA, Центр де Роккенкур. 530.
- Bunder, M. W .; Селдин, Джонатан П. (2004). «Варианты основного исчисления конструкций». CiteSeerX 10.1.1.88.9497. Цитировать журнал требует
| журнал =
(помощь) - Frade, Мария Жоао (2009). «Исчисление индуктивных конструкций» (PDF). Архивировано из оригинал (разговаривать) на 2014-05-29. Получено 2013-03-03.
- Юэ, Жерар (1988). «Принципы индукции, формализованные в исчислении конструкций» (PDF). In Fuchi, K .; Ниват, М. (ред.). Программирование компьютеров будущего поколения. Северная Голландия. С. 205–216. ISBN 0444704108. - Приложение CoC