Was sind die negativen Konsequenzen einer Erweiterung des CIC um Axiome?

13

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 hinzun:Nn(succ...(succ(0)))funext

funext:Πx:EINf(x)=G(x)f=G

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? )f=GΠx:EINf(x)=G(x)

Aber warum ist das "schlecht"?

Denn funextich 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?

StudentType
quelle

Antworten:

7

Ein erster Grund, Axiome abzulehnen, ist, dass sie inkonsistent sein könnten. Sogar für die Axiome, die sich als konsistent erwiesen haben, haben einige von ihnen eine rechnerische Interpretation (wir wissen, wie man die definitive Gleichheit mit einem Reduktionsprinzip für sie erweitert) und einige nicht - diese brechen die Kanonizität. Das ist aus verschiedenen Gründen "schlecht":

  • Theoretisch können Sie mit Kanonizität Dinge über die Werte Ihrer Sprache beweisen, ohne auf ein bestimmtes Modell zurückgreifen zu müssen. Dies ist eine sehr befriedigende Eigenschaft, um über Ihr System nachzudenken; insbesondere unterstützt es Behauptungen über die reale Welt - wir können uns den natim System formalisierten Typ als wirklich "natürliche Zahlen" vorstellen, weil wir beweisen können, dass seine geschlossenen normalen Einwohner wirklich natürliche Zahlen sind. Ansonsten ist es leicht zu glauben, dass Sie etwas in Ihrem System korrekt modelliert haben, aber tatsächlich mit verschiedenen Objekten arbeiten.

  • In der Praxis ist die Reduktion ein wesentlicher Vorteil abhängiger Typentheorien, da sie den Beweis erleichtert. Die Beweisführung für eine aussagekräftige Gleichheit kann beliebig schwierig sein, während die Beweisführung für eine definitive Gleichheit (seltener), aber viel einfacher ist, da der Beweisbegriff trivial ist. Im Allgemeinen ist die Berechnung ein zentraler Aspekt der Benutzererfahrung eines Proof-Assistenten, und es ist üblich, Dinge so zu definieren, dass sie wie erwartet korrekt reduziert werden. (Sie brauchen keine Axiome, um die Berechnung zu erschweren. Beispielsweise kann die Verwendung des Umrechnungsprinzips für Aussagengleichungen bereits Reduktionen blockieren.) Das ganze Geschäft des Beweises durch Reflexionbasiert auf der Verwendung von Berechnungen zur Unterstützung von Beweisen. Dies ist ein wesentlicher Unterschied in Bezug auf Leistung und Benutzerfreundlichkeit im Vergleich zu anderen logikbasierten Proof-Assistenten (z. B. HOL-light, das nur Gleichheitsargumente unterstützt, oder Zombie für einen anderen Ansatz) und der Verwendung ungeprüfter Axiome oder anderer Programmierstile. können Sie aus dieser Komfortzone bekommen.

gasche
quelle
+1 Danke für deine Antwort! Können Sie mir einige Beispiele für Axiome nennen, die eine rechnerische Interpretation haben (oder vielleicht eine Referenz für das Thema)?
StudentType
Ein Beispiel für ein Axiom, das rechnerisch interpretiert werden kann, ist Prop-Irrelevance: Es wird behauptet, dass alle Einwohner einer bestimmten Typenfamilie (in diesem Fall die Propder 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.
Gasche
Eine weitere Familie der rechnerischen Interpretation ergibt sich aus Entsprechungen zwischen klassischem Denken und Kontrolleffekt. Der bekanntere Teil davon ist, dass der ausgeschlossenen Mitte durch Fortsetzungserfassung eine rechnerische Semantik gegeben werden kann, aber es gibt eingeschränkte Formen der Kontrolle (Ausnahmen bei positiven Typen), die feinkörnigere logische Prinzipien ergeben (z. B. Markov-Prinzip ). Siehe Hugo Herbelins Eine intuitionistische Logik, die Markovs Prinzip beweist , 2010.
gasche
5

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, Propohne 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 haben eq, A = B : Typedann für jeden tTyp A, t == coerce A B eq two coerceeinfach 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.

Gallais
quelle
4

Ein praktisches Beispiel für ein Axiom, das sich schlecht verhält. Was ist damit?

 0 = 1

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.


  1. T. Coquand, Mustervergleich mit abhängigen Typen .

  2. M. Hofmann, T. Streicher, Die Gruppeninterpretation der Typentheorie .

Martin Berger
quelle