Trifft es zu, dass das Hinzufügen von Axiomen zum CIC den rechnerischen Inhalt von Definitionen und Theoremen negativ beeinflusst? Ich verstehe , dass, in der normalen Verhalten Theorie, jeder geschlossene Begriff in seiner kanonischen Normalform reduzieren, zB wenn wahr ist , dann n auf einen Term der Form reduzieren muß ( s u c c . . . ( S u c c ( 0 ) ) ) . Aber wenn wir ein Axiom postulieren - sagen wir das Axiom der Funktionserweiterung -, fügen wir dem System einfach eine neue Konstante hinzufunext
das wird einfach "magisch" einen Beweis von aus jedem Beweis von Π x erzeugen : A f ( x ) = g ( x ) , ohne irgendeine rechnerische Bedeutung ( in dem Sinne, dass wir daraus keinen Code extrahieren können? )
Aber warum ist das "schlecht"?
Denn funext
ich habe in diesem CoQ-Eintrag und in dieser Mathoverflow-Frage gelesen, dass das System entweder die Kanonizität verliert oder entscheidbare Prüfungen durchführt. Der coq-Eintrag scheint ein gutes Beispiel zu sein, aber ich hätte gerne noch einige Referenzen dazu - und irgendwie kann ich keine finden.
Wie kann das Hinzufügen zusätzlicher Axiome dazu führen, dass sich CIC schlechter verhält? Irgendwelche praktischen Beispiele wären toll. (Zum Beispiel das Univalence Axiom?) Ich fürchte, diese Frage ist zu leise, aber wenn jemand etwas Licht in diese Fragen bringen oder mir Referenzen geben könnte, wäre das großartig!
PS: Der CoQ-Eintrag erwähnt, dass "Thierry Coquand bereits Mitte der 90er Jahre festgestellt hat, dass Mustervergleiche über Intensivfamilien hinweg nicht mit Extensionalität vereinbar sind." Weiß jemand in welcher Zeitung oder so?
Prop
der Coq-Proof-Assistenten, die rein logischen Aussagen entsprechen) Prop-Irrelevance entsprechen Das Ignorieren der internen Struktur der Beweise für diese Aussagen kann zumeist dadurch erfolgen, dass man sich nicht mehr um sie kümmert. Es muss keine Auswirkung auf die Berechnung haben, aber es muss sorgfältig vorgegangen werden, um das System nicht inkonsistent zu machen.Um zu verstehen, warum das Erweitern eines Theorembeweisers mit einigen Axiomen Probleme verursachen kann, ist es auch interessant zu sehen, wann dies sinnvoll ist. Zwei Fälle kommen in den Sinn und beide haben damit zu tun, dass uns das Rechenverhalten der Postulate egal ist.
In der Beobachtungstyp-Theorie ist es möglich, einen Beweis für eine beliebige Konsistenz zu postulieren,
Prop
ohne die Kanonizität zu verlieren. In der Tat werden alle Beweise als gleich angesehen und das System erzwingt dies, indem es sich vollständig weigert, die Begriffe zu betrachten. Folglich hat die Tatsache, dass ein Beweis von Hand erstellt oder einfach postuliert wurde, keine Konsequenz. Ein typisches Beispiel wäre der Beweis der "Kohäsion": Wenn wir einen Beweis dafür habeneq
,A = B : Type
dann für jedent
TypA
,t == coerce A B eq t
wocoerce
einfach ein Begriff entlang eines Gleichheitsnachweises transportiert wird.In MLTT kann man jedes negative konsistente Axiom ohne Verlust der Kanonizität postulieren . Die Intuition dahinter ist, dass negative Axiome (Axiome der Form
A -> False
) immer nur verwendet werden, um irrelevante Zweige zu verwerfen. Wenn das Axiom konsistent ist, kann es nur in Zweigen verwendet werden, die in der Tat irrelevant sind und daher bei der Bewertung der Begriffe niemals berücksichtigt werden.quelle
Ein praktisches Beispiel für ein Axiom, das sich schlecht verhält. Was ist damit?
Das Coquand-Papier, auf das Bezug genommen wird, könnte [1] sein, in dem er zeigt, dass die abhängige ITT (Martin-Löfs Theorie des intuitionistischen Typs), die mit Pattern Matching erweitert wurde, es Ihnen ermöglicht, UIP (Axiom der Eindeutigkeit von Identitätsnachweisen ) zu beweisen . Später präsentieren Streicher und Hoffmann ein Modell von in ITT, das UIP fälscht. Daher ist Pattern Matching keine konservative Erweiterung von ITT.
T. Coquand, Mustervergleich mit abhängigen Typen .
M. Hofmann, T. Streicher, Die Gruppeninterpretation der Typentheorie .
quelle