В контексте теории типов, такой как теория типов Мартина-Лёфа или исчисление конструкций, под «несогласованностью» мы обычно подразумеваем логическую несогласованность: возможность вывести терм contra
типа forall T : Type, T
. При этом любой другой тип T
становится обитаемым: достаточно применить к нему contra
.
К сожалению, в большинстве теорий типов обитаемость ничего не говорит нам о конвертируемости или равенстве определений, потому что ни один тип не выражает, что два термина x
и y
могут быть конвертируемы. Это означает, что нет способа вывести термины
fst : Sigma A B -> A
snd : forall s : Sigma A B, B (fst s)
так что fst (Sigma _ _ x y)
упрощается до x
, а snd (Sigma _ _ x y)
упрощается до y
, ссылаясь на логическое противоречие. (Я немного злоупотребил обозначениями и использовал Sigma
как для конструктора, так и для типа.) Однако вы можете использовать contra
, чтобы постулировать существование fst
и snd
и утверждать, что соответствующие уравнения выполняются пропозиционально.
В простом CoC мы говорим, что два термина x1
и x2
пропозиционально равны, если существует термин типа
forall T, T x1 -> T x2
(Иногда это известно как равенство Лейбница: два термина равны, если каждый предикат, который выполняется для первого, выполняется и для второго.) Утверждение аналогичного для snd
несколько сложнее, потому что snd (Sigma _ _ x y)
и y
не имеют одинаковых типов ( первый имеет тип B (fst (Sigma _ _ x y))
, а второй — тип B x
). Мы можем исправить это, утверждая леммы об упрощении для fst
и snd
одновременно:
forall (T : forall x : A, B x -> Type),
T (fst (Sigma _ _ x y)) (snd (Sigma _ _ x y)) ->
T x y
Редактировать
Что касается вашего комментария: поскольку конвертируемость обычно не может быть выражена с помощью типа, нам нужно изменить его определение в теории типов, чтобы иметь истинный сигма-тип с первой и второй проекциями - более тонкая операция, чем просто постулирование того, что определенные аксиомы выполняются. Есть несколько систем, которые это позволяют, например Dedukti, средство проверки доказательств, разработанное в Inria.
person
Arthur Azevedo De Amorim
schedule
15.12.2017