Zrozumienie dowodu silnej normalizacji rachunku konstrukcji

9

Mam trudności ze zrozumieniem dowodu silnej normalizacji dla rachunku konstrukcji. Staram się podążać za dowodem zawartym w pracy Hermana Geuversa „Krótki i elastyczny dowód silnej normalizacji dla rachunku konstrukcji”.

Potrafię dobrze podążać za główną linią rozumowania. Konstrukcje Geuvers dla każdego typuT interpretacja [[T]]ξ na podstawie pewnej oceny zmiennych typu ξ(α). A potem konstruuje jakąś interpretację terminów(|M|)ρ na podstawie pewnej oceny zmiennych terminowych ρ(x) i dowodzi, że dla prawidłowych ocen twierdzenie (|M|)ρ[[T]]ξ dla wszystkich ΓM:T trzyma.

Mój problem: dla łatwych typów (takich jak systemowe typy F) interpretacja typów [[T]]ξ jest naprawdę zbiorem terminów, więc stwierdzenie (|M|)ρ[[T]]ξma sens. Ale w przypadku bardziej złożonych typów interpretacja[[T]]ξnie jest zestawem terminów, ale zestawem funkcji odpowiedniej przestrzeni funkcji. Myślę, że prawie rozumiem budowę przestrzeni funkcyjnych, jednak nie może ona przypisać żadnego znaczenia(|M|)ρ[[T]]ξ dla bardziej złożonych typów T.

Czy ktoś może wyjaśnić lub podać linki do bardziej zrozumiałych prezentacji dowodu?

Edycja: Pozwól mi spróbować wyjaśnić pytanie. KontekstΓ ma deklaracje zmiennych typu α:Ai zmienne obiektowe. Wycena typu jest ważna, jeśli dla wszystkich(α:A)Γ z ΓA: następnie ξ(α)ν(A)jest ważny. Aleν(A) może być elementem (SAT) i nie tylko SAT. Dlatego nie można zdefiniować żadnej ważnej oceny terminuρ(α). ρ(α) musi być terminem, a nie jakąś funkcją przestrzeni funkcji.

Edycja 2: Przykład, który nie działa

Zróbmy następującą prawidłową pochodną:

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

W ostatnim kontekście poprawna ocena typu musi spełniać ξ(β)ν(Πα:.)={f|f:SATSAT}. Dla tego typu oceny nie ma ważnej oceny terminu.

helmut
źródło
1
Tak myśli połowa ludzi SATjest SAT. Powinieneś wyjaśnić, co to jest. Ponadto twoje pochodzenie wydaje się nieco dziwne. Druga linia nie powinna wspominaćα na zakończenie powinien przeczytać coś w rodzaju [α:]:czy nie powinno?
Andrej Bauer,
Używam notacji Herman Geuvers (która wydaje się być standardem w tej dziedzinie). SATjest zbiorem wszystkich nasyconych zestawów wyrażeń lambda. Dla drugiego wiersza mojej pochodnej: jest to reguła wprowadzająca dla zmiennych systemu czystego typu. Ta reguła brzmiΓT:sΓ,x:Tx:T gdzie sjest jakoś.
helmut
Rozumiem, skąd masz drugą linię, ale nie jest to właściwe założenie do utworzenia trzeciej linii, prawda? Jaka reguła podaje trzecią linię.
Andrej Bauer,
Reguła tworzenia produktu PTS mówi r(s1,s2,s3;ΓA:s1;Γ,x:AB:s2Γ(Πx:A.B):s3. Rachunek konstrukcji ma regułęr(,,). To pozwala mi użyć pierwszej i drugiej linii do uzyskania trzeciej. Miałem jednak literówkę w swoim poście. Brakowało tekstu w trzeciej linii, który teraz dodałem.
helmut
Nie powinien wtedy czytać pierwszego wiersza []:? A może się pomieszałeś? i gdzieś? Druga linia nie może być drugą przesłanką reguły tworzenia produktu, ponieważ oznaczałoby to, że próbujesz utworzyć coś w rodzajuα:.α zamiast α:..
Andrej Bauer,

Odpowiedzi:

6

Niestety nie jestem pewien, czy istnieje więcej przyjaznych zasobów dla początkujących niż konto Geuvers. Możesz wypróbować notatkę Chrisa Casinghino, która podaje kilka dowodów w rozdzierających szczegółach.

Nie jestem pewien, czy rozumiem sedno waszego zamieszania, ale myślę, że jedną ważną rzeczą, na którą należy zwrócić uwagę, jest następujący lemat (wniosek 5.2.14), udowodniony w klasycznym tekście Barendregta :

ΓM:T  ΓT: or 

Oznacza to, że podczas gdy [[T]]ξ może być skomplikowaną funkcją, jeśli ΓM:T trzyma zatem [[T]]ξ musi być zbiorem warunków .

Jest to insynuowane w zarysie (sekcja 3.1), gdzie (|t|)σ[[T]]ξ tylko, jeżeli Γt:T:, co jest zgodne z naszymi oczekiwaniami, a mianowicie, że interpretacja typu musi być zbiorem terminów, tj V()P(Term) (w rzeczy samej, V()=SAT!)

Jest to powszechna sytuacja w teorii typów, mimo że interesuje nas tylko „rodzaj podstawowy” (tutaj), wciąż musimy zdefiniować semantykę dla rzeczy wyższych rodzajów (stąd potrzeba wprowadzenia SAT). Na koniec wszystko się ułoży, bo jest tylko rodzaj zamieszkały przez typy (i , ale to nie jest tak naprawdę ważne).

cody
źródło
1
Dziękuję za wyjaśnienie. To rozwiązuje mój problem niezrozumienia funkcji użytych w dowodzie Geuvera. Miałem już podejrzenia, że ​​przeczytałem i ponownie przeczytałem gazetę Geuvera, ale wyraźnie to wyjaśniłeś.
helmut