Soit être -reduction dans le -calculus. Définissez -expansion par .
Est confluentes? En d'autres termes, avons-nous cela pour tout , si , alors il existe tel que ?
Mots-clés: confluence ascendante, propriété CR à l'envers
J'ai commencé par regarder la propriété la plus faible: la confluence locale (c'est-à-dire si , puis ). Même si cela était vrai, cela n'impliquerait pas de confluence puisque -expansion est sans fin, mais j'ai pensé que cela m'aiderait à comprendre les obstacles.
(Haut) Dans le cas où les deux réductions sont au niveau supérieur, l'hypothèse devient . Jusqu'à -renaming, nous pouvons supposer que , et que ni ni n'est libre dans ces termes.
(Lancer) Si n'est pas libre dans , nous avons et avons donc .
Une preuve naïve par induction (sur et ) pour le cas (Top) serait la suivante:
Si est une variable ,
Si , l'hypothèse devient , et nous avons en effet .
Si , alors nous pouvons simplement utiliser (Throw).
Les mêmes preuves s'appliquent si est une variable.
Pour et , l'hypothèse devient et l'hypothèse d'induction donne tel que ce qui implique que . Malheureusement, nous n'avons pas . (Cela me fait penser à -reduction.)
Un problème similaire se pose pour les applications: les ne sont pas là où ils devraient être.
la source
Réponses:
Deux contre-exemples sont:
Le contre-exemple détaillé ci-dessous est donné dans The Lambda Calculus: Its Syntax and Semantics par HP Barenredgt, édition révisée (1984), exercice 3.5.11 (vii). Il est attribué à Plotkin (pas de référence précise). Je donne une preuve incomplète qui est adaptée d'une preuve de Vincent van Oostrom d'un contre-exemple différent, dans Take Five: an Easy Expansion Exercise (1996) [PDF] .
La base de la preuve est le théorème de normalisation, qui nous permet de ne considérer que les extensions bêta d'une certaine forme. Intuitivement parlant, une réduction standard est une réduction qui effectue toutes ses contractions de gauche à droite. Plus précisément, une réduction est non standard ssi il y a une étape dont le redex est un résidu d'un redex à gauche du redex d'une étape précédente ; «Gauche» et «droite» pour un redex sont définis par la position du qui est éliminée lorsque le redex est contracté. Le théorème de normalisation que si alors il y a une réduction forfaitaire de à .Mi Mj λ M→∗βN M N
Soit et . Les deux termes bêta-réduisent à en une seule étape.L=(λx.bx(bc))c R=(λx.xx)(bc) bc(bc)
Supposons qu'il y ait un ancêtre commun tel que . Grâce au théorème de normalisation, nous pouvons supposer que les deux réductions sont standard. Sans perte de généralité, supposons que soit la première étape où ces réductions diffèrent. De ces deux réductions, soit soit celle où le redex de la première étape est à gauche de l'autre, et écrivons où est le contexte de cette contraction et est le redex. Soit l'autre réduction.A L←∗βA→∗βR A σ A=C1[(λz.M)N] C1 (λz.M)N τ
Étant donné que est standard et que sa première étape se situe à droite du trou dans , il ne peut pas se contracter à ni à gauche de celui-ci. Par conséquent, le terme final de est de la forme où les parties de et à gauche de leurs trous sont identiques, et . Puisque commence par réduire en et ne diminue plus à gauche, son terme final doit être de la forme où la partie deτ C1 C1 τ C2[(λz.M′)N′] C1 C2 M→∗βM′ N→∗βN′ σ C1 C3[S] C3 à la gauche de son trou est identique à la partie gauche de et , et .C1 C2 M[z←N]→∗βS
Observez que chacun de et contient un seul lambda qui se trouve à gauche de l'opérateur d'application au niveau supérieur. Puisque conserve le lambda de , cette lambda est celui dans celui des ou est le dernier terme de , et en ce que l'argument terme de la demande est obtenue en réduisant . Le redex est au niveau supérieur, ce qui signifie que .L R τ λz.M L R τ N C1=C2=C3=[]
Si se termine par , alors , et . Si est un descendant en , alors ce descendant doit aussi réduire à qui est la forme normale de . En particulier, aucun descendant de peut être un lambda, donc ne peut pas contracter un sous - terme de la forme où est un descendant de . Puisque le seul sous-terme de qui se réduit àτ R M→∗βzz N→∗βbc M[z←N]→∗β(λx.bx(bc))c N L bc N N σ NˇP Nˇ N L bc est , le seul descendant possible de dans est la seule occurrence de lui-même.bc N L bc
Si se termine par , alors , et . Si a un descendant dans ce descendant doit également se réduire à par confluence.τ L M→∗βbz(bc) N→∗βc M[z←N]→∗β(λx.xx)(bc) N R c
À ce stade, la conclusion devrait suivre facilement selon van Oostrom, mais je suis quelque chose qui manque: Je ne vois pas comment tracer les descendants de donne aucune information sur . Toutes mes excuses pour le message incomplet, j'y penserai du jour au lendemain.N M
la source
Notez que -reduction peut faire disparaître n'importe quel terme. En supposant que la variable n'apparaisse pas libre dans un terme , vous avez et pour tous les termes et . Par conséquent, le fait que la réduction inverse est confluente est quelque peu équivalent à: pour tous les termes et , il existe un terme tel que et . Cela me semble très faux!β x v (λx.v)t1→βv (λx.v)t2→βv t1 t2 β t1 t2 u u→∗βt1 u→∗βt2
la source