Ensembles de base pour le calcul combinatoire


19

Il est bien connu que les combinateurs S et K forment un ensemble de base pour le calcul des combinateurs, en ce sens que tous les autres combinateurs peuvent être exprimés en fonction d'eux. Il existe également la base B, C, K, W de Curry, qui a la même propriété. Il doit y avoir un nombre infini de telles bases, mais je n'en connais pas d'autres.

Je suis conscient qu'il existe un certain nombre de bases à combinateur unique, telles que le combinateur Iota et les diverses autres construites / examinées par Fokker . Cependant, ce sont des combinateurs «impropres», ce qui signifie qu'ils sont exprimés en termes d'autres combinateurs plutôt que de simples abstractions. 1 Aux fins de cette question, je ne m'intéresse qu'aux ensembles de bases composés de combinateurs appropriés.

Existe-t-il également une étude des autres ensembles de bases possibles? L'idéal serait quelque chose dans le sens de l' étude de Wolfram de divers autres modèles de calcul, dans laquelle les différentes combinaisons sont étudiées systématiquement. En particulier, je voudrais savoir si des exemples simples des choses suivantes sont connus:

  • Un ensemble de base minimal qui comprend le combinateur I. (J'utilise "minimal" pour signifier que si vous supprimez un membre, il cesse d'être une base, donc la base de SKI ne comptera pas.)
  • Un ensemble de base minimal qui inclut le combinateur Y ou le combinateur (aka mockingbird)ω

Toute autre information sur d'autres bases possibles pour la logique combinatoire en plus de S, K et B, C, K, W serait vraiment utile.

De manière plus large, je m'intéresse à l'étude du calcul combinatoire comme système purement mécanique , c'est-à-dire comme un ensemble de règles de transformation sur des arbres binaires avec des nœuds étiquetés, qui ne nécessitent aucune interprétation sémantique particulière. Tout pointeur vers des ressources qui adopteraient cette approche serait grandement apprécié. ( To Mock a Mockingbird adopte cette approche mais donne une présentation incomplète, alors que le Lambda Calculus de Barendregt est très lié à la sémantique, ce qui rend difficile pour moi d'extraire les aspects purement mécaniques qui m'intéressent.)

1 Pour être précis: dans le lambda calcul, un combinateur approprié est une expression de la forme , où P ( x 1 , x 2 , ) n'a que x 1 , x 2 etc. en tant que variables libres et ne contient aucune abstraction. Ainsi, par exemple, ( λ x y z . X ( z(λ.x1x2P(x1,x2,))P(x1,x2,)x1x2(λxyz.x(zz))(λx.x(λy.y))x

Réponses:


2

CT=(λxy.yx)Wω=(λx.xx)CWC=B(T(BBT))(BBT)W=C(Bω(BBT))


1

Tout ensemble de combinateurs qui contient un combinateur annulatif (comme K), un combinateur compositeur (comme B), un combinateur permutant (comme C), un combinateur duplicateur (comme W) et le combinateur d'identité I est une base. Si le combinateur I est dérivé de vos quatre autres combinateurs, alors ces quatre seuls suffisent.

Cela signifie que quelque chose comme B, T, M, K, I, où Tab = ba et Ma = aa, est également une base. En effet, B, T, M, K suffit, puisque je peux être dérivé de B, T, M, K (ce n'est pas facile à prouver; la preuve est de dériver d'abord S de B, T, M puis de prendre I = SKK.)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.