Diese sehr schöne Frage hat mehrere Aspekte, daher werde ich diese Antwort entsprechend strukturieren.
1. Die Antwort auf die Boxed-Frage lautet Nein . Der Begriff von Ihrem Freund vorgeschlagen ist in der Tat ein Gegenbeispiel .Ω3=(λx.xxx)(λx.xxx)
In den Kommentaren wurde bereits bemerkt, dass man Gegenbeispiele wie den "Oger" , bis sich die Frage auf Begriffe ohne schwache Kopfnormalform beschränkt. Solche Terme werden als Nullterme bezeichnet . Dies sind Begriffe, die sich unter keinen Umständen zu einem Lambda reduzieren.K∞=YK
Für jeden Festkomma-Kombinator (fpc) ist Y I ein sogenannter Mute -Term (AKA "root-active"): Jede Reduktion davon reduziert sich weiter zu einem Redex.YYI
ist nicht stumm; weder Ω 3 - wie manifest ist durch ihren Satz von reducts Inspizieren, was
{ Ω 3 ( λ x . x x x ) ⋯ ( λ x . x x x ) ⏟ k | k ∈ N }K∞Ω3 −
{Ω3(λx.xxx)⋯(λx.xxx)k∣k∈N}
Anstatt ein genaues Argument dafür anzugeben, warum für alle fpcs Y stummgeschaltet ist (in der Tat für jeden Schleifen-Kombinator) - was mühsam und doch hoffentlich klar genug sein kann -, werde ich die offensichtliche Verallgemeinerung Ihrer Frage behandeln und mich auch auf stumme Begriffe beschränken.YIY−−
Stumme Begriffe sind eine Unterklasse von Null-Begriffen, die eine Unterklasse von unlösbaren Begriffen sind. Zusammen sind dies möglicherweise die beliebtesten Optionen für den Begriff "bedeutungslos" oder "undefiniert" im Lambda-Kalkül, entsprechend den trivialen Berarducci-Bäumen, Levy-Longo-Bäumen und B-Ohm-Bäumen. Das Gitter von Begriffen mit bedeutungslosen Begriffen wurde von Paula Severi und Fer-Jan de Vries eingehend analysiert. [1] Die stummen Terme bilden das unterste Element in diesem Gitter, dh den restriktivsten Begriff von "undefiniert".
2. Wäre ein stummer Begriff sein, und Y ein Looping combinator mit der Eigenschaft , dass seine Y I = M .MYYI=M
Zuerst haben wir argumentieren , dass, für eine neue Variable , Y z sieht eigentlich viel wie der Y M Sie beschrieben, erhalten durch „Beregnung z um“ einige reduct von M .zYzYMzM
Nach Church-Rosser haben und M ein gemeinsames Redukt, M ' . Nehmen Sie eine Standardreduktion R : Y I ↠ s M ′ . Jeder Unterpunkt von M ' entspricht einem eindeutigen Unterpunkt von Y I ≡ Y z [ z : = I ] unter dieser Reduktion. Für jede Teilterm C [ N ] = M ' , R Faktoren wie Y I ↠ C [YIMM′R:YI↠sM′M′YI≡Yz[z:=I]C[N]=M′R , wobei das mittlere Bein eine schwache Kopfverkleinerung ist (und das letzte Bein intern ist). N wird von einem z "bewacht",wenn dieses Rückspiel einen Redex I P kontrahiert, wobei I ein Nachkomme der Substitution ist [ z : = I ] .YI↠C[N0]↠whC[N1]↠iC[N]NzIPI[z:=I]
Offensichtlich muss einige Subtermen von M schützen , sonst wäre es auch stumm. Auf der anderen Seite muss darauf geachtet werden, die für die Nicht-Terminierung erforderlichen Subtermen nicht zu schützen, da sonst der unendliche B "Ohm-Baum eines Schleifen-Kombinators nicht entstehen kann.YM
Es genügt also, einen stummen Ausdruck zu finden, bei dem jeder Teilbegriff jedes Redukts für die Nichtnormalisierung benötigt wird, in dem Sinne, dass das Setzen einer Variablen vor diesen Teilbegriff einen normalisierenden Ausdruck ergibt.
Betrachte , wobei W = λ w . w I w w . Dies ist wie Ω , aber wir überprüfen bei jeder Iteration, dass das Auftreten von W in der Argumentposition nicht durch eine Kopfvariable "blockiert" wird, indem wir ihr eine Identität zuweisen. Wenn Sie ein z vor ein Subterm stellen, erhalten Sie schließlich eine normale Form von z P 1 ⋯ P k , wobei jedes P i entweder I , W oder eine " z- Streuung" von diesen ist. Also ΨΨ=WWW= λ w . w ichw wΩWzzP1⋯ PkPichichWzΨ ist ein Gegenbeispiel zur verallgemeinerten Frage.
SATZ. Es gibt kein Looping combinator , so dass Y I = Ψ .Y.Y.ich= Ψ
BEWEIS. Die Menge aller reducts von ist { W W , W I W W , I I I I W W , I I I W W , I I W W , I W W } . Um mit umwandelbar zu sein Ψ , Y I muss eine davon reduzieren. Das Argument ist in allen Fällen identisch; nehme an, für Konkretion, dass Y I ↠ I I W W .Ψ{ WW, WichWW, IichichichWW, IichichWW, IichWW, IWW}ΨY.ichY.ich↠ ichichWW
Jede Standardreduktion kann als
Y I ↠ w P N 4 , P ↠ w Q N 3 , Q ↠ w N 1 N 2 , also Y I ↠ w N 1 N 2 N 3 N berücksichtigt werden 4 N 1 ≤ I , N 2 ≤ I , N 3Y.ich↠sichichWW
Y.ich↠wPN4, P↠wQ N3, Q ↠wN1N2, also Yich↠wN1N2N3N4N1↠ ich, N2↠ ich, N3↠ W, N4↠ W
Nennen wir die Reduktion als R 0 und die Reduktionen ausgehend von N i als R i .Y.ich↠wN1N2N3N4R0NichRich
Diese Reduktionen können über die Substitution aufgehoben werden , um R z 0 zu ergeben
: Y z ≤ z k ( M 1 M 2 M 3 M 4 ) N i ≤ M i [ z : = I ],
so dass R 0 ist die Zusammensetzung Y I R z 0 [ z : = I ] ↠ I[ z: = Ich]
Rz0: Yz↠ zk( M1M2M3M4)Nich≡ Mich[ z: = Ich]
R0 .
Y.ich↠Rz0[ z: = Ich]ichk( N1⋯ N4) ↠kwN1⋯ N4
Rich: Nich↠ N∈ { I, W}
Rzich: Mich↠ NzichRich: Nich↠Rzich[ z: = Ich]Nzich[ z: = Ich] ↠ichN
RichichNzich[ z: = Ich]NNzich
NzichzNzNN∈ { I, W}Nzich
zk1( λ x . zk2( x ) )zk1( λ w . zk2( zk3( zk5( zk7( w ) zk8( λ x . zk9( x ) ) ) zk6( w ) ) zk4( w ) ) )
M1M2M3M4↠ Nz1Nz2Nz3Nz4Nzichzichi = 1 , 2Wi = 3 , 4
Nz1Nz2Nz3Nz4z( z( z( ⋯ ) ) )zkj N gebenzich das kommt unendlich oft an die spitze des begriffs, blockiert aber nicht die weitere reduktion des begriffs.
Und jetzt sind wir fertig. Durch die Inspektion von jedemNzich, zum i ≤ 4und jeder mögliche Wert von kj, zum j ≤ 2 + 7 ≤ i - 12⌋Wir stellen fest, dass es keine solche Besprengung gibt.
Zum Beispiel, wenn wir den letzten ändern W im ichichWW wie Wz= λ w . z( W Iw w ), dann bekommen wir die Normalisierungsreduktion
ichichWWz→ ichWWz→ WWz→ WzichWzWz→ z( Iichichich) WzWz↠ zichWzWz
(Beachte das Ωlässt ein solches Bestreuen gerade deshalb zu, weil ein gewisser Teil davon "bewacht" werden kann, ohne die Nichtnormalisierung zu beeinträchtigen. Die Variable befindet sich in Kopfposition, aber es verbleiben genügend Redexes darunter.)
3. Die "Beregnungstransformation" hat andere Verwendungen. Zum Beispiel durch Platzierenz vor jedem Redex in Merhalten wir eine Laufzeit N= λ z. Mz Das ist eine normale Form, erfüllt aber die Gleichung Nich= M. Dies wurde zum Beispiel von Statman in [2] verwendet.
4. Alternativ, wenn Sie die Anforderung lockern, dass Y.ich= Mfinden Sie verschiedene (schwache) fpcs Y. welche die Reduktion von simulieren M, während eine Kette von ausgegeben wird zs auf dem Weg. Ich bin mir nicht sicher, ob dies Ihre allgemeine Frage beantworten würde, aber es gibt sicherlich eine Reihe von (berechenbaren) TransformationenM↦ YM welche Ausgangsschleifen-Kombinatoren für jede Stummschaltung M, so dass der Reduktionsgraph von Y.M ist strukturell ähnlich dem von M. Zum Beispiel kann man schreiben
Y.⌈ M⌉ z= { z( Y⌈ P[ x : = Q ] ⌉ z)Y.⌈ N⌉ zM≡ ( λ x . P) QM ist kein Redex und M→w hN
[1] Severi P., de Vries FJ. (2011) Zerlegen des Gitters bedeutungsloser Mengen im Infinitary Lambda Calculus. In: Beklemishev LD, de Queiroz R. (Hrsg.) Logik, Sprache, Information und Berechnung. WoLLIC 2011. Lecture Notes in Computer Science, Bd. 6642.
[2] Richard Statman. Es gibt keinen überstromigen S, K-Kombinator. Forschungsbericht 91–133, Fakultät für Mathematik, Carnegie Mellon University, Pittsburgh, PA, 1991.