Хорошо, я расскажу об этом: в общем, для системы данного типа верно следующее:T
Если все члены типа хорошо в исчислении нормализуются, то T является последовательным, когда рассматривается как логика.TT
Доказательство, как правило, основывается на предположении, что у вас есть термин типа F a l s e , с использованием приведения субъекта для получения нормальной формы, а затем на основе индукции по структуре такого термина для получения противоречия.absurdFalse
Естественно задаться вопросом, верно ли обратное, т.е.
Для любой системы типа , если T является логически последовательным , то каждый правильно типизированный терм в Т нормализуется.TTT
Проблема с этим заключается в том, что нет реального наиболее общего понятия «системы типов» и еще меньше согласия относительно значения логической согласованности для таких систем. Тем не менее, мы можем эмпирически проверить, что
Для большинства известных систем типов, которые имеют логическую интерпретацию, обратное действительно имеет место.
Как это связано с полнотой Тьюринга? Ну, например, если проверка типов разрешима , то аргумент Андрея показывает, что должно выполняться одно из следующего :
- Набор всех хорошо типизированных программ не является полным по Тьюрингу.
- Существует не заканчивающаяся хорошо типизированная программа.
Это говорит о том, что:
Тип система , которые имеют логическую интерпретацию и согласующиеся и являются перечислимыми которые не Тьюринг.
Чтобы дать реальную теорему, а не предложение, необходимо сделать математически точным понятие систем типов и логических интерпретаций.
Теперь на ум приходят два замечания:
Существует неразрешимая система типов, система типов пересечений, которая имеет логическую интерпретацию и может представлять каждую нормализующую терму. Как вы заметили, это не совсем то же самое, что завершить по Тьюрингу, поскольку может потребоваться обновить (на самом деле) тип функции total перед применением ее к желаемому аргументу. Исчисление является исчислением "стиля карри" и равно STLC +
Γ ⊢ M : τλ
и
Γ⊢M:τ∩σ
Γ⊢M:τΓ⊢M:σΓ⊢M:τ∩σ
Ясно, что «интерпретация»∩=∧приводит к непротиворечивой логической интерпретации.Γ⊢M:τ∩σΓ⊢M:τΓ⊢M:τ∩σΓ⊢M:σ
∩=∧
Существует класс систем типов, Системы Чистых Типов , в которых такой вопрос может быть уточнен. Однако в этом контексте логическая интерпретация менее ясна. Может возникнуть соблазн сказать: «PTS непротиворечив, если он имеет необитаемый тип». Но это не работает, поскольку типы могут жить в разных «вселенных», где некоторые могут быть последовательными, а некоторые нет.
Кокванд и Гербелин определяют понятие логических систем чистого типа , в которых вопрос имеет смысл, и показывают
Каждый непоследовательный, независимый LPTS имеет циклический комбинатор (как и Turing Complete)
Который отвечает на вопрос в одном направлении (не соответствует TC) в этом случае. Насколько я знаю, вопрос для общего LPTS остается открытым и довольно сложным.⇒
Изменить: Обратный результат Кокванд-Гербелин не так просто, как я думал! Вот что я придумала до сих пор.
Логический Чистая Тип системы является ВТС с (по крайней мере) сорта и Т у р е , (по крайней мере) аксиомой Р г о р : Т у р е и (по крайней мере) правило ( Р г o p , P r o p , P r o p ) , с дополнительным требованием, чтобы не было видов P p o p .PropTypeProp:Type(Prop,Prop,Prop)Prop
Теперь я собираюсь принять конкретное утверждение о полноте Тьюринга: исправить LPTS и пусть Г будет контекстомLΓ
Γ = n a t : P r o p , 0 : n a t , S :nat→nat
являетсяполной по Тьюрингутогда и только тогда, когда для любой итоговой вычислимой функции f : N → N существует такой термин t f , что
Γ ⊢ t f : n a t → n a t
и для любого n ∈ N t f ( S n 0 ) → ∗ β S f ( n ) 0Lf:N→Ntf
Γ⊢tf:nat→nat
n∈N
tf (Sn 0)→∗βSf(n) 0
Теперь аргумент диагонализации Андрея показывает, что существуют не заканчивающиеся типа n a t .tnat
Теперь кажется, что мы на полпути! Учитывая не заканчивающийся термин , мы хотим заменить вхождения n a t на некоторый универсальный тип A и избавиться от 0 и S в Γ , и у нас будет наше несоответствие ( A обитаемо в контексте A : P r o p )!Γ⊢loop:natnatA0SΓAA:Prop
К сожалению, это то, где я застреваю, поскольку легко заменить на тождество, но от 0 гораздо сложнее избавиться. В идеале мы хотели бы использовать некоторую теорему Клини о рекурсии, но я еще не понял этого.S0