Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В математической логике и информатике , то исчисление конструкций ( УПС ) является теорией типа , созданный Тьерри Кокан . Он может служить как типизированным языком программирования, так и конструктивной основой математики . По этой второй причине CoC и его варианты были основой для Coq и других помощников по доказательству .

Некоторые из его вариантов включают исчисление индуктивных построений [1] (которое добавляет индуктивные типы ), исчисление (ко) индуктивных конструкций (которое добавляет коиндукцию ) и предикативное исчисление индуктивных конструкций (которое устраняет некоторую отрицательность ).

Общие черты [ править ]

CoC - это типизированное лямбда-исчисление более высокого порядка , первоначально разработанное Тьерри Коквандом . Хорошо известно , за то , что в верхней части Барендрегт «s лямбда куб . В CoC можно определять функции от терминов к терминам, а также термины к типам, типы к типам и типы к терминам.

CoC является сильно нормализующим , хотя невозможно доказать это свойство в рамках CoC, поскольку оно подразумевает непротиворечивость, которую по теореме Гёделя о неполноте невозможно доказать изнутри самой системы.

Использование [ править ]

CoC был разработан вместе с помощником проверки Coq . По мере добавления функций (или устранения возможных недостатков) в теорию они стали доступны в Coq.

Варианты CoC используются в других помощниках по доказательству, таких как Matita .

Основы исчисления конструкций [ править ]

Исчисление конструкций можно рассматривать как расширение изоморфизма Карри – Ховарда . Изоморфизм Карри – Ховарда связывает термин в простом типизированном лямбда-исчислении с каждым доказательством естественного вывода в интуиционистской логике высказываний . Исчисление конструкций расширяет этот изоморфизм до доказательств в полном интуиционистском исчислении предикатов, которое включает доказательства квантифицированных утверждений (которые мы также будем называть «предложениями»).

Условия [ править ]

Термин в исчислении конструкций строится с помощью следующих правил:

  • это термин (также называемый типом );
  • это термин (также называемый опорой , типом всех предложений);
  • Переменные ( ) - это термины;
  • Если и являются терминами, то так и есть ;
  • Если и являются терминами и являются переменной, то следующие термины также являются терминами:
    • ,
    • .

Другими словами, синтаксис термина в BNF выглядит следующим образом:

В исчислении конструкций есть пять видов объектов:

  1. доказательства , которые представляют собой термины, типы которых являются предложениями ;
  2. предложения , которые также называются мелкими типами ;
  3. предикаты , которые являются функциями, возвращающими предложения;
  4. большие типы , которые являются типами предикатов ( пример большого типа);
  5. сам по себе, являющийся типом больших типов.

Суждения [ править ]

Исчисление построений позволяет доказывать типизированные суждения :

Что можно прочитать как следствие

Если переменные имеют типы , то термин имеет тип .

Действительные суждения для исчисления построений выводятся из набора правил вывода. В дальнейшем мы используем для обозначения последовательность присвоений типов ; означать термины; и означать либо, либо . Мы будем писать для обозначения результата подстановки терма на свободную переменную в терме .

Правило вывода записывается в виде

что значит

Если это верное суждение, значит, так оно и есть.

Правила вывода для исчисления конструкций [ править ]

1 .

2 .

3 .

4 .

5 .

6 .

Определение логических операторов [ править ]

В исчислении конструкций очень мало основных операторов: единственный логический оператор для формирования предложений - это . Однако одного этого оператора достаточно для определения всех остальных логических операторов:

Определение типов данных [ править ]

Основные типы данных, используемые в информатике, могут быть определены в рамках исчисления конструкций:

Булевы
Naturals
Продукт
Несвязный союз

Обратите внимание, что логические и натуральные значения определяются так же, как в кодировке Чёрча . Однако дополнительные проблемы возникают из-за пропозициональной протяженности и нерелевантности доказательства. [2]

См. Также [ править ]

  • Система чистого типа
  • Лямбда-куб
  • Система F
  • Зависимый тип
  • Интуиционистская теория типов
  • Теория гомотопического типа

Ссылки [ править ]

  1. ^ Исчисление индуктивных конструкций и базовые стандартные библиотеки:DatatypesиLogic.
  2. ^ "Стандартная библиотека | Помощник доказательства 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 .
  • Бандер, МВт; Селдин, Джонатан П. (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