Base incomplète de combinateurs

10

Ceci est inspiré par cette question. Soit la collection de tous les combinateurs qui n'ont que deux variables liées. La combinaison C est-elle complète?CC

Je pense que la réponse est négative, mais je n'ai pas pu trouver de référence pour cela. Je serais également intéressé par des références pour des preuves d'incomplétude combinatoire d'ensembles de combinateurs (je peux voir pourquoi l'ensemble composé de combinateurs avec une seule variable liée est incomplet, donc ces ensembles devraient contenir plus que de simples éléments de D ).DD

tci
la source
Pourriez-vous clarifier ce que vous entendez par le nombre de variables liées d'un combinateur (= terme lambda fermé)? Nombre total d'abstractions lambda?
Noam Zeilberger
Oui, c'est ce que je voulais dire.
tci
3
En fait, peut-être que ce n'est pas exactement ce que vous vouliez dire ... peut-être plutôt que vous voulez dire le nombre total de variables distinctes utilisées dans les abstractions lambda, de sorte que par exemple a deux variables liées distinctes, malgré quatre abstractions lambda? Dans ce cas, il apparaît que Rick Statman a répondu exactement à cette question (négativement), dans " Deux variables ne suffisent pas ". (λx.x(λy.y))(λx.λy.xy)
Noam Zeilberger
Droite. Je pense que c'est la réponse que je cherchais, et je m'attendais vraiment à ce que ce soit le résultat de Statman. Je n'ai pas encore vérifié, mais je pense que cela donnerait également une réponse négative à la question que j'ai mentionnée. Si vous le postez comme réponse, je l'accepterais avec plaisir.
tci

Réponses:

7

[Élargir le commentaire en réponse.]

Tout d'abord, juste une clarification sur le comptage des variables liées dans un combinateur (= terme fermé) . J'interprète la question comme demandant le nombre total de noms de variables liés distincts en  t de sorte que par exemple le terme t = ( λ x . X ( λ y . Y ) ) ( λ x . Λ y . Y x ) compte comme ayant deux variables liées, malgré quatre liants (c.-à-d. abstractions lambda). Cette façon de compter était initialement un peu étrange pour moi car elle n'est pas invariante soust

the total number of distinct bound variable names in t
t=(λX.X(λy.y))(λX.λy.yX)Conversion α : par exemple, t est α- équivalent à t = ( λ x . x ( λ y . y ) ) ( λ a . λ b . b a ) , mais t a quatre noms de variables liés distincts. Cependant, ce n'est pas vraiment un problème, car lenombreminimumde noms de variables liées distinctes nécessaires pour écrire un terme fermé t est égal au nombre maximum de variables libres dans un sous-terme de  tαtαt=(λX.X(λy.y))(λune.λb.bune)tt
le nombre maximum de variables libres dans un sous-terme de t
et cette dernière notion est invariante sous conversion.α

Donc, soit la collection de tous les combinateurs qui peuvent être écrits en utilisant au plus deux variables liées distinctes, ou de manière équivalente la collection de tous les combinateurs dont les sous-termes ont au plus deux variables libres.C

Théorème (Statman) : n'est pas combinatoire complet.C

Il semble que la preuve originale de cela soit contenue dans un rapport technique de Rick Statman:

  • Combinateurs héréditairement de l'ordre deux. Rapport technique 88-33 de Carnegie Mellon Math Department, août 1988. ( pdf )

Statman définit une collection essentiellement isomorphe de combinateurs qu'il appelle "HOT", pour "héréditaire d'ordre deux". Le rapport technique montre en fait que le problème de mot (c'est-à-dire, égalité) pour HOT est encore indécidable, malgré le fait qu'il n'est pas combinatoire complet. Statman a ensuite écrit un court article autonome avec la preuve que HOT n'est pas complet en combinatoire dans:β

  • Deux variables ne suffisent pas. Actes de la 9e conférence italienne sur l'informatique théorique, pp. 406-409, 2005. ( acm )

HnHnn+1βnS=λX.λy.λz.(Xz)(yz)nnHnn+1

Noam Zeilberger
la source