Intuition hinter strenger Positivität?

10

Ich frage mich, ob mir jemand die Intuition geben kann, warum die strikte Positivität induktiver Datentypen eine starke Normalisierung garantiert.

Um es klar zu sagen, ich sehe, wie negative Vorkommen zu Divergenz führen, dh indem ich definiere:

data X where Intro : (X->X) -> X

wir können eine abweichende Funktion schreiben.

Aber ich frage mich, wie können wir beweisen, dass streng positive induktive Typen keine Divergenz zulassen? dh gibt es eine Induktionsmaßnahme, mit der wir einen Beweis für eine starke Normalisierung erstellen können (unter Verwendung logischer Beziehungen oder ähnlichem)? Und wo bricht ein solcher Beweis für negative Ereignisse zusammen? Gibt es gute Referenzen, die eine starke Normalisierung für eine Sprache mit induktiven Typen zeigen?

jmite
quelle
Ich denke, die Idee ist, dass streng positive Typen konzeptionell in W-Typen konvertiert werden können. Auch ein nicht streng positiver Typ stimmt nicht mit Coq vilhelms.github.io/posts/… überein . Es wird kommentiert, dass positiver Typ mit Agda übereinstimmt, aber ich würde gerne auch eine konzeptionelle Erklärung sehen ...
Molikto
@molikto Danke, das ist hilfreich. Aber ich dachte, dass W-Typen in einer Intensionstheorie nicht die gewünschten Induktionsprinzipien liefern? Wie können wir in einer Intensionstheorie eine starke Normalisierung für streng positive Induktive beweisen?
Jmite

Antworten:

8

Es klingt so, als ob Sie einen Überblick über Normalisierungsargumente für Typsysteme mit positiven Datentypen wünschen. Ich würde Nax Mendlers Doktorarbeit empfehlen: http://www.nuprl.org/documents/Mendler/InductiveDefinition.html .

Wie das Datum schon sagt, ist dies eine ziemlich klassische Arbeit. Die grundlegende Intuition ist, dass eine Ordnungszahl jedem Element eines positiven induktiven Typs zugeordnet werden kann, z. B. für den Datentypλ

Inductive Ord = Zero : Ord | Suc : Ord -> Ord | Lim : (Nat -> Ord) -> Ord

Wir würden bekommen:

λ(t)=0
wenn eine Normalform ist, die kein Konstruktor ist und t
λ(Zero)=0
λ(Suc(o))=λ(o)+1
λ(Lim(f))=supnλ(f n)

wobei über Termen mit normalen Formen liegt. Die Einschränkung ist, dass diese Interpretation nur im dritten Fall definiert wird, wenn eine normale Form hat, was einige Sorgfalt in den Definitionen erfordert.nf n

Man kann dann rekursive Funktionen durch Induktion über diese Ordnungszahl definieren.

Beachten Sie, dass diese Datentypen bereits in der klassischen Mengenlehre definiert werden können, wie in dem hervorragenden Artikel über induktive Familien von Dybjer ( http://www.cse.chalmers.se/~peterd/papers/Inductive_Families.pdf ) angegeben. Da die Funktionsräume jedoch so groß sind, Orderfordern Typen wie die Interpretation wirklich große Ordnungszahlen.

Cody
quelle
Danke, das ist sehr hilfreich! Wissen Sie, ob solche Ordnungszahlen in der Typentheorie selbst definiert werden können? Wenn ich also versuchen würde, Agda mit Induktionsrekursion zu verwenden, um eine Typentheorie mit Induktivitäten (aber ohne Induktionsrekursion) Ordzu modellieren , könnte ich dann so etwas wie die Ordnungszahlen modellieren, die für das Zeigen von Fundamentalität erforderlich sind?
Jmite
@jmite, das können Sie, aber Ordnungszahlen in konstruktiven Theorien sind etwas seltsam, und Sie können genauso gut mit fundierten Ordnungen oder Bäumen arbeiten ( a la W-Typ, wie Molikto vorschlägt). Es könnte schwierig sein, einen einzigen einheitlichen Typ zu haben, der die Fundamentalität jedes Induktivs in der Objektsprache erfasst ...
cody
1
@cody Ist das nicht das Beispiel Ord, dass Sie einen streng positiven Typ angeben?
Henning Basold
1
@HenningBasold ja das ist es (deshalb habe ich es als Illustration verwendet!). Aber es verhält sich nicht genau wie Ordnungszahlen in einer (klassischen) Mengenlehre und schon gar nicht wie die Menge aller Ordnungszahlen. Insbesondere ist es etwas schwierig, eine Reihenfolge für diese zu definieren.
Cody
1
@HenningBasold auch ich sollte beachten, dass jmites Frage speziell streng positive Typen betraf, obwohl auch Informationen über die allgemeinere Einstellung interessant sind!
Cody
6

Eine weitere gute Quelle, um über streng positive Typen hinauszugehen, ist die Doktorarbeit von Ralph Matthes: http://d-nb.info/956895891

Er diskutiert in Kapitel 3 Erweiterungen von System F mit (streng) positiven Typen und beweist in Kapitel 9 viele starke Normalisierungsergebnisse. In Kapitel 3 werden einige interessante Ideen diskutiert.

  1. Wir können die kleinsten Fixpunkte für jeden Typ mit der freien Variablen hinzufügen , solange wir einen Monotonie-Zeugen bereitstellen können . Diese Idee ist bereits in Mendlers Werk vorhanden, das Cody erwähnte. Solche Zeugen existieren kanonisch für jeden positiven Typ, weil diese syntaktisch monoton sind.ρααβ.(αβ)ρρ[β/α]

  2. Wenn wir von streng positiven zu positiven Typen wechseln, können die induktiven Typen nicht mehr als Bäume betrachtet werden (die W-Typ-Codierung). Stattdessen führen diese eine Form der Impredikativität ein, da die Konstruktion eines positiven induktiven Typs bereits über den Typ selbst quantifiziert. Beachten Sie, dass dies eine etwas milde Form der Impredikativität ist, da die Semantik solcher Typen immer noch durch die ordinale Iteration monotoner Funktionen erklärt werden kann.

  3. Matthes liefert auch einige Beispiele für positive induktive Typen. Besonders interessant sind

    • die Art der Fortsetzungen , wobei in nicht vorkommt .μ.1+((αρ)ρ)αρ
    • Der Typ , der für jeden Typ funktioniert, indem er in einen positiven Typ umgewandelt wird. Beachten Sie, dass hierdurch die Impredikativität von System F sehr stark genutzt wird.μαβ.(αβ)ρ[β/α]ρ

Matthes verwendet auch positive induktive Typen, um die doppelte Negation zu analysieren, beispielsweise in diesem Artikel: https://www.irit.fr/~Ralph.Matthes/papers/MatthesStabilization.pdf . Er führt eine Erweiterung von Parigots und beweist eine starke Normalisierung.λμ

Ich hoffe, dass dies bei Ihrer Frage hilft.

Henning Basold
quelle