Den Beweis einer starken Normalisierung der Konstruktionsrechnung verstehen

9

Ich habe Schwierigkeiten, den Beweis einer starken Normalisierung für die Konstruktionsrechnung zu verstehen. Ich versuche, dem Beweis in der Arbeit von Herman Geuvers zu folgen: "Ein kurzer und flexibler Beweis für eine starke Normalisierung für die Berechnung von Konstruktionen".

Ich kann der Hauptargumentation gut folgen. Geuvers konstruiert für jeden Typ eine Interpretation basierend auf einer Auswertung der Typvariablen . Und dann konstruiert er eine Terminterpretation basierend auf einer Bewertung von Termvariablen und beweist, dass für gültige Bewertungen die Behauptung für alle gilt.T.[[T.]]]]ξξ(α)(|M.|)ρρ(x)(|M.|)ρ[[T.]]]]ξΓM.::T.

Mein Problem: Für einfache Typen (wie System-F-Typen) ist die Typinterpretation wirklich eine Reihe von Begriffen, also die Behauptung macht Sinn. Bei komplexeren Typen ist die Interpretation jedoch keine Menge von Begriffen, sondern eine Menge von Funktionen eines geeigneten Funktionsraums. Ich denke, ich verstehe fast die Konstruktion der Funktionsräume, kann jedoch für die komplexeren keine Bedeutung zuweisen Typen .[[T.]]]]ξ(|M.|)ρ[[T.]]]]ξ[[T.]]]]ξ(|M.|)ρ[[T.]]]]ξT.

Kann jemand erklären oder Links zu verständlicheren Präsentationen des Beweises geben?

Bearbeiten: Lassen Sie mich versuchen, die Frage klarer zu machen. Ein Kontext enthält Deklarationen für Typvariablen und Objektvariablen. Eine Art Bewertungs gültig ist , wenn für alle mit dann ist gültig. Aber kann ein Element von und nicht nur . Daher kann für keine gültige Termbewertung definiert werden . muss ein Begriff sein und keine Funktion eines Funktionsraums.Γα::EIN(α::EIN)ΓΓEIN::ξ(α)ν(EIN)ν(EIN)(S.EINT.)S.EINT.ρ(α)ρ(α)

Edit 2: Beispiel, das nicht funktioniert

Nehmen wir die folgende gültige Ableitung vor:

[]]::Axiom[α::]]α::variable Einführung[α::]]::schwächen[]](Πα::.)::Produktbildung[β::Πα::.]]β::(Πα::.)variable Einführung

Im letzten Kontext muss eine gültige Typbewertung erfüllen . Für diese Typbewertung gibt es keine gültige Begriffsbewertung.ξ(β)ν(Πα:.)={f|f:SATSAT}

helmut
quelle
1
Die Hälfte der Leute, die dies lesen, wird denken, dass ist. Sie sollten erklären, was es ist. Auch Ihre Ableitung scheint ein bisschen seltsam. Die zweite Zeile sollte in ihrer Schlussfolgerung nicht erwähnen , sie sollte so etwas wie lesen, nicht wahr ? SATα[α:]:
Andrej Bauer
Ich verwende die Notation von Herman Geuvers (die in diesem Bereich Standard zu sein scheint). ist die Menge aller gesättigten Mengen von Lambda-Ausdrücken. Für die zweite Zeile meiner Ableitung: Es ist die Einführungsregel für Variablen eines reinen Typsystems. Diese Regel lautet Γ Γ T : sSAT wobeiseine Art ist. ΓT:sΓ,x:Tx:Ts
Helmut
Ich verstehe, wie Sie die zweite Zeile erhalten haben, aber es ist nicht die richtige Voraussetzung für die Bildung der dritten Zeile, oder? Welche Regel gibt die dritte Zeile.
Andrej Bauer
Die Produktbildungsregel von PTS sagt . Die Konstruktionsrechnung hat die Regelr(,,). Dadurch kann ich die erste und die zweite Zeile verwenden, um die dritte abzuleiten. Ich hatte jedoch einen Tippfehler in meinem Beitrag. Der Typ in der dritten Zeile fehlte, den ich jetzt hinzufügte. r(s1,s2,s3;;ΓEIN::s1;;Γ,x::EINB.::s2Γ(Πx::EIN.B.)::s3r(,,)
Helmut
Sollte dann nicht die erste Zeile lauten ? Oder hast du irgendwo und ◻ verwechselt ? Die zweite Zeile kann nicht die zweite Voraussetzung für die Produktbildungsregel sein, da dies bedeuten würde, dass Sie versuchen, so etwas wie α : ∗ zu bilden . α statt α : . . []:α:.αα:.
Andrej Bauer

Antworten:

6

Leider bin ich mir nicht sicher, ob es mehr anfängerfreundliche Ressourcen gibt als Geuvers 'Konto. Sie können diese Notiz von Chris Casinghino ausprobieren, in der mehrere Beweise bis ins kleinste Detail beschrieben werden.

Ich bin mir nicht sicher, ob ich den Kern Ihrer Verwirrung verstehe, aber ich denke, eine wichtige Sache ist das folgende Lemma (Korollar 5.2.14), das im klassischen Barendregt-Text bewiesen ist :

ΓM:T  ΓT: or 

Dies bedeutet, dass während [[T]]ξ kanneine komplizierte Funktion sein,wenn ΓM:T gilt, dann[[T]]ξ muss eine Reihe von Begriffen sein.

Dies wird in der Gliederung (Abschnitt 3.1) unterstellt, wobei (|t|)σ[[T]]ξ nur wennΓt:T: , was unserer Erwartung entspricht, dass die Interpretation eines Typs eine Menge von Begriffen sein muss, dhV()P(Term) (in der Tat)V()=SAT !)

In der Typentheorie ist es üblich, dass wir, obwohl wir nur an der "Basisart" interessiert sind (hier ), immer noch die Semantik für Dinge höherer Arten definieren müssen (daher die Notwendigkeit, SAT einzuführen ). Am Ende klappt es dann, denn nur die Art, die von Typen bewohnt wird, ist (und , aber das ist nicht wirklich wichtig).

Cody
quelle
1
Danke für die Erklärung. Das löst mein Problem, die in Geuvers Beweis verwendeten Funktionen nicht zu verstehen. Ich hatte bereits den Verdacht, Geuvers Artikel gelesen und erneut gelesen zu haben, aber Sie haben es kristallklar gemacht.
Helmut