Ich bin oft durch die Beziehung zwischen η-Umwandlung und Extensionalität verwirrt.
Edit: Laut Kommentaren bin ich auch verwirrt über die Beziehung zwischen Extensionsäquivalenz und Beobachtungsäquivalenz. Aber zumindest in Agda mit Extensionsgleichheit für Funktionen (als Postulat) und für einen einfach typisierten Lambda-Kalkül (der eine vollständig abstrakte Semantik hat, wenn ich mich nicht irre), ist die Denotationsgleichheit die gleiche wie die Beobachtungsgleichheit. Fühlen Sie sich frei, mich in Kommentaren oder Antworten zu korrigieren; Ich habe mich zu diesen Themen noch nie systematisch ausbilden lassen.
In der untypisierten Lambda-Rechnung liefert die eta-Regel das gleiche Beweissystem wie die Extensionalitätsregel, wie von Barendregt (zitiert in einer Antwort auf diese Frage ) bewiesen . Ich verstehe das, um zu bedeuten, dass das Beweissystem mit der eta-Regel für die Beobachtungsäquivalenz vollständig ist. .
Was passiert jedoch, wenn wir zu einem typisierten Kalkül wechseln und diesen Kalkül um zusätzliche Basistypen und entsprechende Einführungs- und Eliminierungsformen erweitern? Können wir noch ein vollständiges Beweissystem für die Beobachtungsäquivalenz schreiben? Ich werde über Beweissysteme in Form einer axiomatischen Semantik nach Mitchell's Foundations of Programming Languages (FPL) sprechen. Das Beweissystem / die axiomatische Semantik definiert die Programmäquivalenz.
Frage 1 : erstreckt sich der Satz von Barendregt auf STLC? Entspricht die η-Äquivalenz in diesem Zusammenhang der Extensionalität?
Ich bin gerade von FPL Diskussion von PCF (aber nicht den Abschnitt noch beenden), und es scheint , dass , wenn Sie Paare hinzufügen, Extensionalität erfordert eine zusätzliche Regel, nämlich surjektive Paarung: pair (Proj1 P, Proj2 P) = P
. Interessanterweise bezieht sich diese Regel auf die Einführung und Beseitigung von Paaren, genau wie die η-Regel auf die Einführung und Beseitigung von Funktionen.
Frage 2 : Reicht es aus, das surjektive Paarungsaxiom hinzuzufügen, um die Extensionalität in einfach typisierten λ-Rechnungen mit Paaren zu beweisen? edit : Frage 2b : Ist die Surjektivpaarung ein η-Gesetz, wie die in diesem Artikel erwähnten η-Gesetze , wegen der erwähnten strukturellen Ähnlichkeit?
Gehen wir jetzt den ganzen Weg zu PCF. Beschreibungen der Extensionsgleichheit, die ich damals gesehen habe, beweisen, dass Extensionsgleichheit eine Beweisregel durch Induktion impliziert, aber sie sagen nicht, ob das ausreicht. Da die PCF Turing-vollständig ist, ist die Gleichstellung von Männern und Frauen unentscheidbar . Dies bedeutet jedoch nicht, dass es kein vollständiges Beweissystem gibt, da die Länge der Beweise unbegrenzt ist. Insbesondere würde ein solches Beweissystem möglicherweise Gödels Unvollständigkeitssätzen widersprechen. Und dieses Argument könnte sogar auf PCF ohne fix
und auf Gödels System T zutreffen .
Frage 3 : Gibt es ein vollständiges Beweissystem für die Beobachtungsäquivalenz in PCF? Was ist mit PCF ohne fix
?
Update: vollständige Abstraktion
Ich antworte hier auf den Kommentar zur vollständigen Abstraktion. Ich denke, PCF leidet unter zwei verschiedenen Arten von Problemen: Es ist nicht terminiert (via Fix), was den Verlust der vollständigen Abstraktion zur Folge hat, aber es hat auch natürliche Zahlen. Beide Probleme erschweren die Behandlung der Beobachtungsäquivalenz, aber ich glaube, dass sie unabhängig voneinander sind.
Einerseits verliert PCF die volle Abstraktion, weil es parallel oder im semantischen Bereich lebt (Plotkin 1977), und das scheint mit Nichtbeendigung zu tun zu haben. Ralph Loader (2000, "Finitary PCF is not decidable") zeigt, dass Finitary PCF (ohne Naturalien, aber mit Nichtbeeinflussung) bereits unentscheidbar ist; Daher kann sich eine vollständig abstrakte Semantik (wenn ich richtig zusammenfasse) nicht auf Domänen mit berechenbaren Operationen beschränken.
Nehmen Sie auf der anderen Seite Gödels System T, das keine Beeinträchtigung aufweist. (Ich bin nicht sicher, ob es eine vollständig abstrakte Semantik hat, aber ich schätze ja, da das Problem nur für PCF erwähnt wird; die Domäne muss primitive rekursive Funktionen höherer Ordnung enthalten). In Harpers praktischen Grundlagen für Programmiersprachen wird die Beobachtungsäquivalenz für diese Sprache erörtert. Sec. 47.4 trägt den Titel "Einige Gleichheitsgesetze" und zeigt einige zulässige Beweisregeln für die beobachtbare Gleichwertigkeit. Nirgends heißt es, ob das Beweissystem vollständig ist, also denke ich, ist es nicht, aber es wird auch nirgends diskutiert, ob es fertiggestellt werden kann. Meine besten Vermutungen gehen auf Gödels Satz von der Unvollständigkeit zurück.