Cette très belle question comporte plusieurs aspects, je structurerai donc cette réponse en conséquence.
1. La réponse à la question encadrée est non . Le terme suggéré par votre ami est en effet un contre-exemple.Ω3=(λx.xxx)(λx.xxx)
Il a été remarqué plus tôt dans les commentaires que l'on a des contre-exemples comme le "ogre" , jusqu'à ce que la question se limite aux termes sans forme normale de tête faible. Ces termes sont appelés termes zéro . Ce sont des termes qui ne se réduisent jamais à un lambda, quelle que soit la substitution.K∞=YK
Pour tout combinateur à virgule fixe (fpc) , est un terme dit muet (AKA "root-active"): chaque réduction de celui-ci se réduit davantage à un redex.Y IYYI
Ω 3 - { Ω 3 ( λ x . X x x ) ⋯ ( λ x . X x x ) ⏟ k ∣ k ∈ N }K∞ n'est pas muet; ni comme cela se manifeste en inspectant son ensemble de réductions, qui est
Ω3 −
{Ω3(λx.xxx)⋯(λx.xxx)k∣k∈N}
Plutôt que de donner un argument précis sur la raison pour laquelle est muet pour tous les fpcs (en effet, pour tout combinateur de boucle) ce qui peut être laborieux mais espérons-le assez clair je traiterai la généralisation évidente de votre question, en me limitant également aux termes muets.Y - -YIY−−
Les termes muets sont une sous-classe de termes nuls qui sont une sous-classe de termes insolubles. Ensemble, ce sont peut-être les choix les plus populaires pour le concept de «vide de sens» ou «non défini» dans le calcul lambda, correspondant respectivement aux arbres triviaux de Berarducci, Levy-Longo et B \ "ohm. Le réseau de notions de termes sans signification a été analysé en détail par Paula Severi et Fer-Jan de Vries. [1] Les termes muets constituent l'élément inférieur de ce réseau, c'est-à-dire la notion la plus restrictive de "non défini".
2. Soit un terme muet, et être une boucle combinateur avec la propriété que .Y Y I = MMYYI=M
D' abord , nous pensons que, pour une nouvelle variable , ressemble en fait beaucoup comme le que vous avez décrit, obtenu par « saupoudrage autour de » certains reduct de .Y z Y M z MzYzYMzM
Par Church-Rosser, et ont une réduction commune, . Prenez une réduction standard . Chaque sous-terme de correspond à un sous-terme unique de sous cette réduction. Pour tout sous-terme , les facteurs comme , où la jambe centrale est une faible réduction de la tête (et la jambe finale) est interne). est "gardé" par un si cette deuxième étape contracte une redex , avec un descendant de la substitution .M M ′ R : Y I ↠ s M ′ M ′ Y I ≡ Y z [ z : = I ] C [ N ] = M ′ R Y I ↠ C [ N 0 ] ↠ w h C [ N 1 ] ↠ i C [ N ] N z I P IYIMM′R:YI↠sM′M′YI≡Yz[z:=I]C[N]=M′RYI↠C[N0]↠whC[N1]↠iC[N]NzIPI[z:=I]
Évidemment, doit garder certains sous- termes de , sinon il serait également muet. D'un autre côté, il faut faire attention à ne pas garder les sous-termes nécessaires à la non-terminaison, sinon il ne pourrait pas développer l'arborescence infinie B \ "ohm d'un combinateur en boucle.MYM
Il suffit donc de trouver un terme muet dans lequel chaque sous-terme, de chaque réduction, est nécessaire pour la non-normalisation, en ce sens que placer une variable devant ce sous-terme donne un terme normalisant.
Considérez , où . C'est comme , mais à chaque itération, on vérifie que l'occurrence de dans la position d'argument n'est pas "bloquée" par une variable head, en lui donnant une identité. Mettre un devant n'importe quel sous-terme aboutira finalement à une forme normale de forme , où chaque est soit , soit un " saupoudrage" de ceux-ci. Donc est un contre-exemple de la question généralisée.W = λ w . w I w w Ω W z z P 1 ⋯ P k P i I W z ΨΨ = WWW= λ w . w jew wΩWzzP1⋯ PkPjejeWzΨ
THÉORÈME. Il n'y a pas de combinateur de bouclage tel que .Y I = ΨOuiOuije= Ψ
PREUVE. L'ensemble de toutes les réductions de est . Pour être convertible avec , doit se réduire à l'un d'eux. L'argument est identique dans tous les cas; pour le concret, supposons que .{ W W , W I W W , I I I I W W , I I I W W , I I W W , I W W } Ψ Y I Y I ↠ I I W WΨ{ WW, WjeWW, JejejejeWW, JejejeWW, JejeWW, JeWW}ΨOuijeOuije↠ jejeWW
Toute réduction standard peut être factorisée comme
Y I ↠ w P N 4 , P ↠ w Q N 3 , Q ↠ w N 1 N 2 , donc Y I ↠ w N 1 N 2 N 3 N 4 N 1 ↠ I , N 2 ↠ I , N 3 ↠ O , N 4Ouije↠sjejeWW
Ouije↠wPN4, P↠wQ N3, Q ↠wN1N2, donc Yje↠wN1N2N3N4N1↠ je, N2↠ je,N3↠ W,N4↠ W
Faisons référence à la réduction comme , et aux réductions partant de comme .R 0 N i R iOuije↠wN1N2N3N4R0NjeRje
Ces réductions peuvent être levées sur la substitution pour donner
pour que soit la composition .R z 0 : Y z ↠ z k ( M 1 M 2 M 3 M 4 ) N i ≡ M i [ z : = I ] R 0 Y I R z 0 [ z : = I ] ↠ I k ( N 1 ⋯ N 4 ) ↠ k[ z: = Je]
Rz0: Yz↠ zk( M1M2M3M4)Nje≡ Mje[ z: = Je]
R0Ouije↠Rz0[z: = Je]jek( N1⋯ N4) ↠kwN1⋯N4
De même, nous pouvons soulever chaque comme
Rje: Nje↠ N∈ { I, W}
Rzje: Mje↠ NzjeRje: Nje↠Rzje[ z: = Je]Nzje[ z: = Je] ↠jeN
La seconde étape de cette factorisation de consiste précisément à contracter les -exexes créés par la substitution . (En particulier, puisque est une forme normale, .)RjejeNzje[ z: = Je]NNzje
Nzje est ce que nous appelons un « -sprinkling de », obtenue en plaçant un nombre quelconque de s autour un nombre quelconque de sous - terme de . Puisque , la forme de sera l'une deszNzNN∈ { I, W}Nzje
zk1( λ x . zk2( x ) )zk1( λ w . zk2( zk3( zk5( zksept( w ) zk8( λ x . zk9( x ) ) ) zk6( w ) ) zk4( w ) ) )
Donc , avec un saupoudrage de pour et de pour .M1M2M3M4↠Nz1Nz2Nz3Nz4Nzjezjei = 1 , 2Wi = 3 , 4
Dans le même temps, le terme devrait encore se réduire pour donner l'arbre de Bohm fpc infini . Il doit donc exister un "saupoudrer" dans l'un des qui vient infiniment souvent en tête du terme, sans pour en bloquer de nouvelles réductions.Nz1Nz2Nz3Nz4z( z( z( ⋯ ) ) )zkjNzje
Et maintenant, nous avons terminé. En inspectant chaque , pour , et chaque valeur possible de , pour , nous constatons qu'aucune telle aspersion n'existe.Nzjei ≤ 4kjj ≤ 2 + 7 ⌊ i - 12⌋
Par exemple, si nous modifions le dernier de en , alors nous obtenons la réduction de normalisation
WjejeWWWz= λ w . z( w Iw w )
jejeWWz→ jeWWz→ WWz→ WzjeWzWz→ z( Jejejeje) WzWz↠ zjeWzWz
(Notez que admet une telle aspersion précisément parce qu'un certain sous-terme peut être "gardé" sans affecter la non-normalisation. La variable vient en position de tête, mais suffisamment de redex restent en dessous.)Ω
3. La "transformation par aspersion" a d'autres utilisations. Par exemple, en plaçant devant chaque redex dans , on obtient un terme qui est une forme normale, encore satisfait à l'équation . Cela a été utilisé par Statman dans [2], par exemple.zMN= λ z. MzNje= M
4. Alternativement, si vous relâchez l'exigence que , vous pouvez trouver divers fpcs (faibles) qui simulent la réduction de , tout en émettant une chaîne de s en cours de route. Je ne suis pas sûr que cela répondrait à votre question générale, mais il existe certainement un certain nombre de transformations (calculables) qui produisent des combinateurs en boucle pour chaque muet , de telle sorte que le graphique de réduction de est structurellement similaire à celui de . Par exemple, on peut écrire
Ouije= MOuiMzM↦ YMMOuiMM
Oui⌈ M⌉ z= { z( Y⌈ P[ x : = Q ] ⌉ z)Oui⌈ N⌉ zM≡ ( λ x . P) QM n'est pas un redex et M→w hN
[1] Severi P., de Vries FJ. (2011) Décomposer le réseau d'ensembles sans signification dans le calcul infinitaire de Lambda. Dans: Beklemishev LD, de Queiroz R. (eds) Logic, Language, Information and Computation. WoLLIC 2011. Notes de cours en informatique, vol 6642.
[2] Richard Statman. Il n'y a pas de combinateur S, K hyperrécurrent. Rapport de recherche 91-133, Département de mathématiques, Université Carnegie Mellon, Pittsburgh, Pennsylvanie, 1991.