Conjuntos de base para cálculo combinador

19

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(λ.x1x2P(x1,x2,))P(x1,x2,)x1x2(λxyz.x(zz))(λx.x(λy.y))x

Nathaniel
fuente

Respuestas:

2

Es fácil crear otras bases cambiando los combinadores de una base por otras que hacen algo similar. Por ejemplo, comenzando con BCKW, puede cambiar por (ya que ambos cambian los términos) y por (ya que ambos duplican cosas). Sabes que esto sigue siendo una base porque puedes recuperar y de él: y .T = ( λ x y . Y x ) W ω = ( λ x . X x ) C W C = B ( T ( B B T ) ) ( B B T ) W = C ( B ω ( B B T ) )CT=(λxy.yx)Wω=(λx.xx)CWC=si(T(sisiT))(sisiT)W=C(siω(sisiT))

Joseph Sible-Reinstate a Monica
fuente
1

Cualquier conjunto de combinadores que contenga un combinador de cancelaciones (como K), un combinador de composición (como B), un combinador de permutación (como C), un combinador duplicativo (como W) y el combinador de identidad I es una base. Si el combinador I se deriva de sus otros cuatro combinadores, entonces esos cuatro solo son suficientes.

Esto significa que algo como B, T, M, K, I, donde Tab = ba y Ma = aa, también es una base. De hecho, B, T, M, K es suficiente, ya que puedo derivar de B, T, M, K (esto no es fácil de probar; la prueba es obtener primero S de B, T, M y luego tomar I = SKK.)

baronbrixius
fuente