Ist es möglich, die


18

Ich weiß, dass es unmöglich ist, die Äquivalenz für einen nicht typisierten Lambda-Kalkül zu bestimmen . Zitat von Barendregt, HP Der Lambda-Kalkül: seine Syntax und Semantik. Nordholland, Amsterdam (1984). :β

Wenn A und B disjunkt sind, nicht leere Mengen von Lambda-Termen, die unter Gleichheit geschlossen sind, dann sind A und B rekursiv untrennbar. Daraus folgt, dass A nicht rekursiv ist, wenn A eine nichttriviale Menge von unter Gleichheit geschlossenen Lambda-Termen ist. Also können wir das Problem "M = x?" Daraus folgt, dass Lambda keine rekursiven Modelle hat.

Wenn wir ein normalisierendes System wie System F haben, können wir die Äquivalenz "von außen" bestimmen, indem wir die beiden angegebenen Terme reduzieren und vergleichen, ob ihre normalen Formen gleich sind oder nicht. Können wir es jedoch "von innen" tun? Gibt es ein System-F combinator E , so dass für zwei Kombinatoren M und N haben wir E M N = wahr , wenn M und N die gleiche Normalform haben, und E M N = falsch sonst? Oder kann das zumindest für einige Ms gemacht werden ? Um einen Kombinator E M zu konstruierenβEMNEMN=trueMNEMN=falseMEMso dass wahr ist, wenn N β M ? Wenn nein, warum?EMNNβM

Antworten:


19

Nein, es ist nicht möglich. Betrachten Sie die folgenden zwei Einwohner des Typs .(AB)(AB)

M=λf.fN=λf.λa.fa

Dies sind verschiedene Normalformen, können aber nicht durch einen Lambda-Term unterschieden werden, da N eine η- Expansion von M ist und die η- Expansion die Beobachtungsäquivalenz in einem reinen typisierten Lambda-Kalkül beibehält.βNηMη

Cody fragte, was passiert, wenn wir ebenfalls durch Äquivalenz modifizieren. Die Antwort ist aufgrund der Parametrizität immer noch negativ. Betrachten Sie die folgenden beiden Terme beim Typ ( α .η :(α.αα)(α.αα)

M=λf:(α.αα).Λα.λx:α.f[α.αα](Λβ.λy:β.y)[α]xN=λf:(α.αα).Λα.λx:α.f[α]x

Sie haben eine unterschiedliche normale, η- lange Form, sind jedoch beobachtungsmäßig äquivalent. Tatsächlich sind alle Funktionen dieses Typs äquivalent, da α .βη ist die Kodierung des Einheitentyps und damit alle Funktionen des Typs ( α .α.αα muss extensional äquivalent sein.(α.αα)(α.αα)


2
Ok, gleiche Frage mit Äquivalenz :)β,η
Cody

11

Eine weitere mögliche Antwort auf die vollkommen richtige von Neel: Angenommen, es gibt einen Kombinator , der in System F so gut typisiert ist, dass die obige Bedingung zutrifft. Der Typ von E ist:EE

E:α.ααbool

Es stellt sich heraus, dass es einen kostenlosen Satz gibt, der besagt , dass ein solcher Begriff notwendigerweise konstant ist :

T, t,u,t,u:T, E T t u=E T t u

Insbesondere ist die ständig wahre Funktion oder die ständig falsche Funktion und kann möglicherweise kein "Gleichheitsentscheider" sein.E

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.