Zusammenfluss der Beta-Erweiterung


10

Let sein -Reduktion in dem Kalkül. Definieren Sie -expansion durch .ββλββtβttβt

Ist konfluent? Mit anderen Worten, haben wir das für jedes , wenn , dann existiert so, dass ?βl,d,rlβdβrulβuβr

Schlüsselwörter: Aufwärtskonfluenz, verkehrte CR-Eigenschaft


Ich begann mit einem Blick auf die schwächere Eigenschaft: lokale Konfluenz (dh wenn , dann ). Selbst wenn dies wahr wäre, würde dies keinen Zusammenfluss bedeuten, da die Erweiterung nicht beendet wird, aber ich dachte, dass dies mir helfen würde, die Hindernisse zu verstehen.lβdβrlβuβrβ

(Oben) beide Reduktionen auf oberster Ebene liegen, die Hypothese . Bis zu Umbenennung können wir annehmen, dass ist und dass weder noch in diesen Begriffen frei sind.(λx1.b1)a1b1[a1/x1]=b2[a2/x2](λx2.b2)a2αx1x2x1x2

(Wurf) Wenn in nicht frei ist , haben wir und daher .x1b1b1=b2[a2/x2](λx1.b1)a1=(λx1.b2[a2/x2])a1(λx1.(λx2.b2)a2)a1(λx2.b2)a2

Ein naiver Beweis durch Induktion (auf und ) für den Fall (oben) wäre wie folgt:b1b2

  • Wenn eine Variable ,b1y1

    • Wenn , wird die Hypothese , und wir haben tatsächlich .y1=x1(λx1.x1)a1a1=b2[a2/x2](λx2.b2)a2(λx1.x1)a1=(λx1.x1)(b2[a2/x2])(λx1.x1)((λx2.b2)a2)(λx2.b2)a2

    • Wenn , können wir einfach (Throw) verwenden.y1x1

  • Es gelten die gleichen Beweise: ist eine Variable.b2

  • Für und wird die Hypothese und die Induktionshypothese ergibt so, dass impliziert das . Leider haben wir nicht . (Das lässt mich an Reduktion denken.)b1=λy.c1b2=λy.c2(λx1.λy.c1)a1λy.c1[a1/x1]=λy.c2[a2/x2](λx2.λy.c2)a2d(λx1.c1)a1d(λx2.c2)a2λy.(λx1.c1)a1λy.dλy.(λx2.c2)a2λy.(λx2.c2)a2(λx2.λy.c2)a2σ

  • Ein ähnliches Problem tritt bei Anwendungen auf: Die s sind nicht dort, wo sie sein sollten.λ


1
@chi Wenn ich mich nicht irre, . (λb.yb)y(λa.(λb.ab)y)y(λa.ay)y
Xavierm02

1
Ich stimme @chi einigermaßen zu, dass es konfluent erscheint, nachdem Sie darüber nachgedacht und ein paar Gegenbeispiele gesehen haben. Aber was ist eigentlich mit ? (λx.xxy)yyyy(λx.yxx)y
Rodolphe Lepigre

2
Obwohl es für mich bequem wäre, wenn es wahr wäre, bin ich etwas pessimistischer. Ein Kollege von mir machte die folgende Bemerkung, die es unwahrscheinlich erscheinen lässt: Es würde bedeuten, dass zwei beliebige Programme, die dieselbe (kirchliche) Ganzzahl berechnen, kombiniert werden können.
Xavierm02

2
Die Antwort ist nein. Übung 3.5.11 in Barendregt gibt ein Gegenbeispiel, das Plotkin zugeschrieben wird, jedoch ohne Referenz: und . Ich werde nach einem Beweis suchen. ( λ x . X x ) ( b c )(λx.bx(bc))c(λx.xx)(bc)
Gilles 'SO - hör auf böse zu sein'

1
Ich habe das Gegenbeispiel als Antwort gepostet, mit dem, was ich für einen Beweis hielt, aber es gibt einen Schritt, den ich nicht herausfinden kann. Wenn jemand es herausfinden kann, schreibe bitte eine Antwort und ich werde meine löschen.
Gilles 'SO - hör auf böse zu sein'

Antworten:


7

Zwei Gegenbeispiele sind:

  • (λx.bx(bc))c und (Plotkin).(λx.xx)(bc)
  • (λx.a(bx))(cd) und (Van Oostrom).a((λy.b(cy))d)

Das unten beschriebene Gegenbeispiel ist in The Lambda Calculus: Its Syntax and Semantics von HP Barenredgt, überarbeitete Ausgabe (1984), Übung 3.5.11 (vii), enthalten. Es wird Plotkin zugeschrieben (keine genaue Referenz). Ich gebe einen unvollständigen Beweis, der aus einem Beweis von Vincent van Oostrom eines anderen Gegenbeispiels in Take Five: a Easy Expansion Exercise (1996) [PDF] übernommen wurde .

Grundlage des Beweises ist der Standardisierungssatz, der es uns ermöglicht, nur Beta-Erweiterungen einer bestimmten Form zu betrachten. Intuitiv gesehen ist eine Standardreduktion eine Reduktion, bei der alle Kontraktionen von links nach rechts ausgeführt werden. Genauer gesagt ist eine Reduzierung nicht Standard, wenn es einen Schritt dessen Redex ein Rest eines Redex links vom Redex eines vorherigen Schritts ; "Links" und "rechts" für einen Redex werden durch die Position des , die eliminiert wird, wenn der Redex kontrahiert wird. Der Standardisierungssatz besagt, dass dort, wenn ist, eine Standardreduktion von auf .MiMjλMβNMN

Sei und . Beide Begriffe werden in einem Schritt auf reduziert .L=(λx.bx(bc))cR=(λx.xx)(bc)bc(bc)

Nehmen wir an, dass es einen gemeinsamen Vorfahren , so dass . Dank des Standardisierungssatzes können wir davon ausgehen, dass beide Reduktionen Standard sind. Nehmen wir ohne Verlust der Allgemeinheit an, dass der erste Schritt ist, bei dem sich diese Reduzierungen unterscheiden. Von diesen beiden Reduktionen sei diejenige, bei der der Redex des ersten Schritts links vom anderen liegt, und schreibe wobei der Kontext dieser Kontraktion ist und ist der Redex. Sei die andere Reduktion.ALβAβRAσA=C1[(λz.M)N]C1(λz.M)Nτ

Da Standard ist und sein erster Schritt rechts vom Loch in , kann es sich weder bei noch links davon zusammenziehen. Daher hat der endgültige Term von die Form wobei die Teile von und links von ihren Löchern identisch sind, und . Da mit der Reduktion bei beginnt und nie weiter links reduziert, muss sein endgültiger Term die Form wobei der Teil vonτC1C1τC2[(λz.M)N]C1C2MβMNβNσC1C3[S]C3um das ihrem Loch links zu dem linken Teil von identischen und und .C1C2M[zN]βS

Beachten Sie, dass und ein einzelnes Lambda enthalten, das sich links vom Anwendungsoperator auf der obersten Ebene befindet. Da das Lambda von , dieses Lambda ist dasjenige, in dem oder der letzte Term von , und in diesem Term wird das Argument der Anmeldung durch Reduzieren von . Der Redex befindet sich auf der obersten Ebene, was bedeutet, dass .LRτλz.MLRτNC1=C2=C3=[]

  • Wenn mit endet , dann sind , und . Wenn einen Nachkommen in hat, muss dieser Nachkomme auch auf reduziert werden, was die normale Form von . Insbesondere kann kein Nachkomme von ein Lambda sein, so dass kein Subterm der Form kontrahieren kann, wobei ein Nachkomme von . Da der einzige Teil von , der sich auf reduziertτRMβzzNβbcM[zN]β(λx.bx(bc))cNLbcNNσNˇPNˇNLbcist , der einzig mögliche Nachkomme von in ist das einzige Vorkommen von selbst.bcNLbc

  • Wenn mit endet , dann , und . Wenn einen Nachkommen in hat, muss dieser Nachkomme auch durch Konfluenz auf reduziert werden.τLMβbz(bc)NβcM[zN]β(λx.xx)(bc)NRc

An dieser Stelle sollte die Schlussfolgerung laut van Oostrom leicht folgen, aber mir fehlt etwas: Ich sehe nicht, wie die Verfolgung der Nachkommen von Informationen über liefert . Entschuldigung für den unvollständigen Beitrag, ich werde über Nacht darüber nachdenken.NM


0

Beachten Sie, dass durch die Reduzierung von jeder Begriff verschwinden kann. Unter der Annahme, dass die Variable in einem Term nicht frei erscheint , haben Sie und für alle Terme und . Infolgedessen ist die Tatsache, dass die umgekehrte Reduktion konfluent ist, etwas äquivalent zu: Für alle Terme und gibt es einen Term so dass und . Das scheint mir sehr falsch!βxv(λx.v)t1βv(λx.v)t2βvt1t2βt1t2uuβt1uβt2


2
Wenn ich mich nicht irre, für diese beiden Begriffe. (λx.v)t1(λx.(λx.v)t1)t2(λx.v)t2
Xavierm02

Verdammt, du hast recht! Ich werde später versuchen, an etwas anderes zu denken. Ich habe momentan keine Zeit.
Rodolphe Lepigre
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.