η-Konvertierung vs. Extensionalität in Erweiterungen der Lambda-Rechnung


14

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 fixund 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.


1
Ich glaube, ich könnte einiges davon beantworten, aber ich bin verwirrt darüber, was Sie fragen. Die Frage, auf die Sie sich beziehen, bezieht sich nicht auf die Programmäquivalenz. Meinst du Beobachtungsäquivalenz? Für welche operationale Semantik? Wenn Sie also genau erklären, worauf sich "der Beweis" in Frage 1 bezieht, kann ich mir denken, was los ist. Meine beste Vermutung bisher: Sie möchten eine Gleichungstheorie, die für die beobachtbare Äquivalenz vollständig ist, und Sie fragen uns, ob Regeln ausreichen. Ist es das? η
Andrej Bauer

@AndrejBauer: Deine Vermutung ist richtig, ich fange an, die Frage zu aktualisieren.
Blaisorblade

Ich bin mir nicht sicher über die operationale Semantik - macht das einen Unterschied für die ursprünglichen Theoreme?
Blaisorblade

Ich habe versucht, die Frage weiter zu verfeinern. Aber ich denke immer noch, dass Ihre beste Vermutung richtig ist.
Blaisorblade

Hier gibt es ein kleines Problem: Es ist wirklich nicht klar, was für die natürlichen Zahlen ist! Wenn Sie nur Funktions- und Produkttypen haben, dann sind Sie im Klaren: Begriffe sind beobachtungsmäßig äquivalent, wenn sie β η gleich sind. Generell denke ich, dass dies mit dem Problem der vollständigen Abstraktion zusammenhängt . ηβη
Cody

Antworten:


7

Ich bin mir nicht sicher, ob ich Ihre Frage vollständig beantworten kann, aber ich werde es versuchen und einige meiner eigenen Fragen stellen, die zu weiteren Diskussionen zu diesem Thema führen könnten.

Mein erster Punkt ist folgender: Zwei Terme im untypisierten λ- Kalkül sollen beobachtbar gleich sein, wenn für jeden Term M : M t  terminiert M t '  terminiert  Wobei terminiert bedeutet "hat eine β- normale Form"t,t λM

M t beendet M t beendet 
β

Ich finde es natürlicher, Begriffe mit "Löchern" oder Kontexten anstelle von einfach Begriffen M zu betrachten und E [ t ] anstelle von M t zu schreiben . Die beiden Ansichten sind zweifellos gleichwertig (wenn Variablen nicht an den Kontext gebunden sind), da Sie durch Abstraktion den Kontext E [ _ ] in den Term λ x umwandeln können . E [ x ] .E[_]ME[t]M tE[_]λx.E[x]

Nun ist es eine Tatsache, dass die Beobachtungsgleichheit im untypisierten Kalkül nicht von der -Gleichheit erfasst wird! In der Tat gibt es eine ganze Klasse von Begriffen, die beide nicht enden und keine Kopfnormalformen haben und daher alle beobachtbar gleich sind. Diese werden manchmal die genannten ewigen Begriffe oder unlösbare Bedingungen , und hier sind zwei solche Begriffe: ( λ x . X x ) ( λ x . X x ) und ( λ x . X x x ) ( λ x .βη

(λx.x x)(λx.x x)
Es ist ziemlich einfach zu zeigen, dass diese Terme nicht β η -gleich sind.
(λx.x x x)(λx.x x x)
βη

Wenn alle ewigen Begriffe identifiziert sind, wird die Beobachtungsgleichheit durch ein klassisches Ergebnis vollständig erfasst (siehe Barendregt- Theorem 16.2.7).


Nun zu den getippten Steinen. Betrachten wir zunächst den einfach eingegebenen Kalkül ohne natürliche Zahlen. Die obige Definition der Beobachtungsgleichheit wird trivial, da sich jeder Begriff normalisiert! Wir brauchen eine feinere Unterscheidung. Wir werden die Wertgleichung t 1t 2 für geschlossene Terme verwenden, die durch Induktion auf den Typ von t 1 und t 2 definiert wird . Fügen wir zunächst für jeden Typ A eine unendliche Anzahl von Konstanten c A , c ' A , c " A , ... hinzu . Wir werden eine Konstante c x wählenλt1t2t1t2EINcEIN,cEIN,cEIN,cxvom entsprechenden Typ, um jeder Variablen zu entsprechen .x

  1. An dem Basistyp , t 1t 2 iff die β -head Normalform t 1 ist , c u 1 ... u n und die von t 2 ist , d v 1 ... v n und c = d und u 1v 1 , , U nv n bei ihren jeweiligen Typen.Bt1t2βt1c u1unt2d v1vnc=du1v1,,unvn

  2. Beim Pfeiltyp verringert sich wenn beide Terme β zu einer λ- Abstraktion führen.t1t2βλ

Beachten Sie, dass ich in dieser Definition nur Konvertierung verwende.β

Nun definiere ich Kontexte als: mit dem Kopfkontext, der Anwendung, der Abstraktion bzw. der Substitution (durch geschlossene Begriffe).

[_]E[_] ut E[_]λx. E[_]E[_]θ

Wir können dann und t definierent , gut typisiert vom Typ T , genau,wenn für jeden Kontext E [ _ ] so ist, dass E [ t ] , E [ t ' ] gut typisiert undgeschlossen sind. E [ t ] E [ t ' ] schreiben wirin diesem Fall t = o b s t 'tTE[_]E[t],E[t]

E[t]E[t]
t=obst

Nun ist es leicht zu beobachten , dass , wenn dann t = o b s t ' . Die andere Richtung ist weniger trivial, gilt aber auch: Tatsächlich können wir , wenn t = o b s t 'ist , durch Induktion des Typs zeigen, dass die Terme für β η gleich sind :t=βηtt=obstt=obstβη

  1. Nehmen Sie bei Basistyp einfach als [ _ ] θ , wobei θ die Substitution ist, die x zu β c x ' v 1 θ ... v n θ sendet . Wir haben dann c x = c x E[_][_]θθx. Wir haben E [ t ] = t & thgr; und E [ t ' ] = t ' & thgr ; . Wir haben t θ & bgr; c x u 1 θ ... u n θ und t ' θ cxE[t]=tθE[t]=tθtθβcx u1θunθtθβcx v1θvnθcx=cx und somit . Nun können wir nicht sofort schließen, dass u i θ = β η v i θ ist . Denn wenn u i und v i sind λ -abstractions, dann trivialerweise u i θ v i θ ! Der Trick hier ist, x zu sendenx=xuiθ=βηviθuiviλuiθviθxzu und dies so oft wie nötig zu wiederholen. Ich bin ein bisschen verwirrt in den Details hier, aber die Idee ähnelt dem Satz von Böhm ( Barendregt wieder 10.4.2).

    λy.cx~ (y1c1)(yncn)
  2. Nehmen Sie bei Pfeiltyp als [ _ ] c y , dh Anwendung auf c y mit c y und y nicht in t oder t ' . Nach Induktionsannahme haben wir: t c y = & bgr; & eegr; t ' c y und so t y = & bgr; & eegr; t ' y Welche gibt λ y . t y = βE[_][_] cycycyytt

    t cy =βη t cy
    t y =βη t y
    und schließlich durchη-Equität: t = β η t 'λy.t y =βη λ.t yη
    t =βη t

Das war schwerer als erwartet!


Okay, lasst uns das System T angehen. Fügen wir der Mischung einen Typ , die Konstruktoren 0 und S und einen Rekursor r e c T für jeden Typ T hinzu , mit den " β- Regeln" r e c T u v 0 β u r e c T u v ( S n ) & bgr; V n ( r e c T u v n )N0SrecTTβ

recT u v 0βu
recT u v (S n)βv n (recT u v n)

Wir wollen den gleichen Satz wie oben beweisen. Es ist verlockend, " Regeln" hinzuzufügen , um Äquivalenzen wie λ x zu beweisen . x = & bgr ; & eegr; r e c N 0 ( & lgr; k m . S m ), wobei der Ausdruck auf der rechten Seite die "dumme Identität" ist, die m Nachfolger abschält, nur um sie erneut hinzuzufügen.η

λx.x =βη recN 0 (λk m.S m)
m

Fügen wir zum Beispiel folgende Regel hinzu:

f (S x) =βη h x (f x)f t =βηrecT (f 0) h t
xηh

MtMTtM (S S 0)n S1Mn0

M

tM =λx.0
βηM
0 =βη S 0
TtM=λx.0

Danke für deine Antwort! Meine erste Frage lautet: Ist es üblich, dass Beobachtungsäquivalenz in Kontexten durch Substitutionen ersetzt wird? Zumindest in Plotkins LCF-Artikel (1997) ist das nicht der Fall (obwohl ich mir vorstellen kann, dass so etwas in einer Schlussrechnung Sinn macht, in der so etwas wie Substitutionen Teil der Syntax sind). Aber ich kann leicht für jeden "Substitutions" -Kontext einen (für mich) "Standard" -Kontext definieren, der nur Lambda-Abstraktion und -Anwendung verwendet, sagen wir (λx. []) C_x; Ich denke also, dass die obige Beobachtungsäquivalenz der Definition entspricht, an die ich gewöhnt bin.
Blaisorblade

Die "wahre, aber nicht beweisbare" Gleichung lautet (nehme ich an) t=λx.0nicht 0=βηS0, richtig? KonstruierenMIch nehme an, Sie müssen nur Beweise aufzählen, die nach einem von ihnen suchen 0=βηS0. Ich habe jedoch immer noch keine Ahnung, warum 0 = 1 schwer genug ist - eigentlich sollte es einfach sein, das zu beweisen0βηS 0 da es sich um normale Formen handelt, wäre ich überrascht, wenn die Peano-Arithmetik nicht stark genug wäre.
Blaisorblade

Sagen Sie stattdessen das Msucht nach einem Beweis für die Inkonsistenz der Arithmetik. Sie haben nocht=λx.0Da die Arithmetik konsistent ist, aber nach dem zweiten Unvollständigkeitssatz mehr metatheoretische Potenz als die Peano-Arithmetik (oder als die von uns diskutierten Regeln) erforderlich ist, können unsere einfachen Regeln diese Beobachtungsäquivalenz nicht beweisen. Macht das Sinn? Ich habe Wikipedia nachgeschlagen, aber es ist nicht sehr spezifisch für Kleenes Variante von Gödels Ergebnis. Wenn ich diesen Beweis besser wüsste, würde ich vielleicht auch Ihren Beweis verstehen. (In der Zwischenzeit, ich stimme dir trotzdem zu).
Blaisorblade

1
3. Beachten Sie das PEIN kann beweisen 01, aber nicht "PEIN0=1", also können Sie versuchen, diesen Beweis für immer zu suchen. Ich habe die gleiche Art von Trick verwendet, um eine Beobachtungsgleichheit in zu finden Tdas kann von keiner "vernünftigen" Gleichheitsregel erfasst werden. Sie können die Regel jederzeit hinzufügen
f 0=G 0f (S 0)=G (S 0)f=G
aber das wäre nicht effektiv (und vollständig!). Ich habe das Gefühl, dass Sie nicht danach suchen.
Cody

1
Das ist richtig! Manchmal ist es jedoch sinnvoll, solche "infinitären" Systeme für prüftheoretische Zwecke (z. B. Ordinalanalyse) in Betracht zu ziehen.
Cody
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.