У меня есть трудности в понимании доказательства строгой нормализации для исчисления конструкций. Я пытаюсь следовать доказательству в работе Германа Гойвера «Краткое и гибкое доказательство строгой нормализации для исчисления конструкций».
Я могу хорошо следовать основной линии рассуждений. Конструкции Geuvers для каждого типа интерпретация основанный на некоторой оценке переменных типа , И тогда он строит некоторую интерпретацию термина основанный на некоторой оценке переменных термина и доказывает, что для достоверных оценок утверждение для всех держит.
Моя проблема: для простых типов (таких как системные типы F) интерпретация типов это действительно набор терминов, поэтому утверждение имеет смысл. Но для более сложных типов интерпретацияэто не набор терминов, а набор функций некоторого подходящего функционального пространства. Я думаю, я почти понимаю конструкцию функциональных пространств, однако она не может придавать никакого значения для более сложных типов ,
Кто-нибудь может объяснить или дать ссылки на некоторые более понятные презентации доказательства?
Изменить: Позвольте мне попытаться сделать вопрос яснее. Контекст имеет объявления для переменных типа и переменные объекта. Оценка типа действительна, если для всех с тогда действует. Но может быть элементом и не только , Поэтому нельзя определить действительный срок оценки для, должен быть термином, а не некоторой функцией функционального пространства.
Редактировать 2: пример, который не работает
Давайте сделаем следующий корректный вывод:
В последнем контексте допустимая оценка типа должна удовлетворять , Для оценки этого типа нет действительного термина оценки.
Ответы:
К сожалению, я не уверен, что ресурсов для новичков больше, чем аккаунт Geuvers. Вы можете попробовать эту заметку Криса Касингино, которая содержит несколько доказательств в мучительных деталях.
Я не уверен, что понимаю суть вашей путаницы, но я думаю, что одна важная вещь, которую стоит отметить, это следующая лемма (следствие 5.2.14), доказанная в классическом тексте Барендрегта :
Это означает, что в то время как[[T]]ξ может быть сложной функцией, если Γ⊢M:T держит, то [[T]]ξ должен быть набор терминов .
Об этом говорится в общих чертах (раздел 3.1), где(|t|)σ∈[[T]]ξ только если Γ⊢t:T:∗ , что соответствует нашему ожиданию, а именно, что интерпретация типа должна быть набором терминов, т.е. V(∗)⊆P(Term) (верно, V(∗)=SAT !)
Это распространенная ситуация в теории типов, что, хотя мы заинтересованы только в «базовом виде» (здесь∗ ) нам еще предстоит определить семантику для вещей более высокого вида (отсюда и необходимость SAT∗ ). В конце концов, все получается, потому что только вид, населенный типами,∗ (а также □ , но это не очень важно).
источник