Es bien sabido que los combinadores S y K forman una base para el cálculo del combinador, en el sentido de que todos los demás combinadores pueden expresarse en términos de ellos. También está la base B, C, K, W de Curry, que tiene la misma propiedad. Debe haber un número infinito de tales bases, pero no conozco ninguna otra.
Soy consciente de que hay una serie de bases de un solo combinador, como el combinador de Iota y las otras construidas / revisadas por Fokker . Sin embargo, estos son combinadores "impropios", lo que significa que se expresan en términos de otros combinadores en lugar de abstracciones puras. 1 A los fines de esta pregunta, solo me interesan los conjuntos básicos compuestos por combinadores adecuados.
¿Existe también un estudio de los otros conjuntos de bases posibles? Ideal sería algo similar al estudio de Wolfram de varios otros modelos de computación, en el que las diversas combinaciones se estudian sistemáticamente. En particular, me interesa saber si se conocen ejemplos simples de las siguientes cosas:
- Un conjunto de bases mínimas que incluye el combinador I. (Estoy usando "mínimo" para significar que si elimina a cualquier miembro, deja de ser una base, por lo que la base de SKI no contaría).
- Un conjunto básico mínimo que incluye el combinador Y, o el combinador (también conocido como ruiseñor)
Cualquier otra información sobre otras posibles bases para la lógica combinatoria además de S, K y B, C, K, W sería realmente útil.
Como punto más amplio, estoy interesado en el estudio del cálculo combinatorio como un sistema puramente mecánico , es decir, como un conjunto de reglas de transformación en árboles binarios con nodos etiquetados, que no necesitan una interpretación semántica particular. Cualquier sugerencia hacia los recursos que adopten este enfoque sería muy apreciada. ( Para burlarse de un ruiseñor adopta este enfoque pero hace una presentación incompleta, mientras que el cálculo Lambda de Barendregt está muy ligado a la semántica, lo que me dificulta extraer los aspectos puramente mecánicos que me interesan).
1 Para ser precisos: en el cálculo lambda, un combinador adecuado es una expresión de la forma , donde solo tiene , etc. como variables libres, y no contiene ninguna abstracción. Entonces, por ejemplo, es un combinador apropiado, pero no lo es, porque contiene aplicado a un término lambda.P ( x 1 , x 2 , … ) x 1 x 2 ( λ x y z . x ( z z ) ) ( λ x . x ( λ y . y ) ) x
fuente