Понимание доказательства сильной нормализации исчисления конструкций


9

У меня есть трудности в понимании доказательства строгой нормализации для исчисления конструкций. Я пытаюсь следовать доказательству в работе Германа Гойвера «Краткое и гибкое доказательство строгой нормализации для исчисления конструкций».

Я могу хорошо следовать основной линии рассуждений. Конструкции Geuvers для каждого типаT интерпретация [[T]]ξ основанный на некоторой оценке переменных типа ξ(α), И тогда он строит некоторую интерпретацию термина(|M|)ρ основанный на некоторой оценке переменных термина ρ(x) и доказывает, что для достоверных оценок утверждение (|M|)ρ∈[[T]]ξ для всех Γ⊢M:T держит.

Моя проблема: для простых типов (таких как системные типы F) интерпретация типов [[T]]ξ это действительно набор терминов, поэтому утверждение (|M|)ρ∈[[T]]ξимеет смысл. Но для более сложных типов интерпретация[[T]]ξэто не набор терминов, а набор функций некоторого подходящего функционального пространства. Я думаю, я почти понимаю конструкцию функциональных пространств, однако она не может придавать никакого значения(|M|)ρ∈[[T]]ξ для более сложных типов T,

Кто-нибудь может объяснить или дать ссылки на некоторые более понятные презентации доказательства?

Изменить: Позвольте мне попытаться сделать вопрос яснее. КонтекстΓ имеет объявления для переменных типа α:Aи переменные объекта. Оценка типа действительна, если для всех(α:A)∈Γ с Γ⊢A:◻ тогда ξ(α)∈ν(A)действует. Ноν(A) может быть элементом (SAT)∗ и не только SAT, Поэтому нельзя определить действительный срок оценки дляρ(α), ρ(α) должен быть термином, а не некоторой функцией функционального пространства.

Редактировать 2: пример, который не работает

Давайте сделаем следующий корректный вывод:

[]⊢∗:◻axiom[α:∗]⊢α:∗variable introduction[α:∗]⊢∗:◻weaken[]⊢(Πα:∗.∗):◻product formation[β:Πα:∗.∗]⊢β:(Πα:∗.∗)variable introduction

В последнем контексте допустимая оценка типа должна удовлетворять ξ(β)∈ν(Πα:∗.∗)={f|f:SAT→SAT}, Для оценки этого типа нет действительного термина оценки.


1
Половина читающих это людей будет думать, что SATСБ. Вы должны объяснить, что это такое. Кроме того, ваш вывод кажется немного странным. Вторая строка не должна упоминатьα в заключение он должен прочитать что-то вроде [α:∗]⊢∗:◻не так ли?
— Андрей Бауэр

Я использую обозначение Herman Geuvers (которое кажется стандартным в этой области). SATэто множество всех насыщенных наборов лямбда-выражений. Для второй строки моего вывода: Правило введения для переменных системы чистого типа. Это правило гласитΓ⊢T:sΓ,x:T⊢x:T где sкакой-то
— Helmut

Я понимаю, как вы получили вторую строку, но это не правильная предпосылка для формирования третьей линии, не так ли? Какое правило дает третья строка.
— Андрей Бауэр

Правило формирования продукта PTS гласит: r(s1,s2,s3;Γ⊢A:s1;Γ,x:A⊢B:s2Γ⊢(Πx:A.B):s3, Исчисление конструкций имеет правилоr(∗,∗,∗), Это позволяет мне использовать первую и вторую строку для получения третьей. Однако в моем сообщении была опечатка. Отсутствовал тип в третьей строке, который я добавил сейчас.
— Хельмут

Не следует читать первую строку []⊢∗:∗? Или ты перепутал∗ а также ◻где-то? Вторая строка не может быть второй предпосылкой правила формирования продукта, потому что это будет означать, что вы пытаетесь сформировать что-то вроде∏α:∗.α вместо ∏α:∗.∗,
— Андрей Бауэр

Ответы:


6

К сожалению, я не уверен, что ресурсов для новичков больше, чем аккаунт Geuvers. Вы можете попробовать эту заметку Криса Касингино, которая содержит несколько доказательств в мучительных деталях.

Я не уверен, что понимаю суть вашей путаницы, но я думаю, что одна важная вещь, которую стоит отметить, это следующая лемма (следствие 5.2.14), доказанная в классическом тексте Барендрегта :

Γ⊢M:T ⇒ Γ⊢T:∗ or ◻

Это означает, что в то время как [[T]]ξ может быть сложной функцией, если Γ⊢M:T держит, то [[T]]ξ должен быть набор терминов .

Об этом говорится в общих чертах (раздел 3.1), где (|t|)σ∈[[T]]ξ только если Γ⊢t:T:∗, что соответствует нашему ожиданию, а именно, что интерпретация типа должна быть набором терминов, т.е. V(∗)⊆P(Term) (верно, V(∗)=SAT!)

Это распространенная ситуация в теории типов, что, хотя мы заинтересованы только в «базовом виде» (здесь∗) нам еще предстоит определить семантику для вещей более высокого вида (отсюда и необходимость SAT∗). В конце концов, все получается, потому что только вид, населенный типами,∗ (а также ◻, но это не очень важно).


1
Спасибо за объяснение. Это решает мою проблему непонимания функций, используемых в доказательстве Гивера. У меня уже было подозрение на то, что я прочитал и перечитал статью Гивера, но вы ясно дали понять.
— Хельмут
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.