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