É sabido que os combinadores S e K formam um conjunto básico para o cálculo do combinador, no sentido de que todos os outros combinadores podem ser expressos em termos deles. Há também a base B, C, K, W de Curry, que possui a mesma propriedade. Deve haver um número infinito de tais bases, mas não conheço outras.
Estou ciente de que existem várias bases de combinador único, como o combinador Iota e as várias outras construídas / revisadas por Fokker . No entanto, esses são combinadores "impróprios", o que significa que eles são expressos em termos de outros combinadores em vez de abstrações puras. 1 Para os fins desta pergunta, estou interessado apenas em conjuntos de bases compostos por combinadores adequados.
Existe também um estudo dos outros conjuntos de bases possíveis? Ideal seria algo semelhante ao estudo de Wolfram de vários outros modelos de computação, nos quais as várias combinações são estudadas sistematicamente. Em particular, estou interessado em saber exemplos simples das seguintes coisas:
- Um conjunto básico mínimo que inclui o combinador I. (Estou usando "minimal" para significar que, se você remover qualquer membro, ele deixará de ser uma base, para que a base de SKI não conte.)
- Um conjunto básico mínimo que inclui o combinador Y ou o combinador (aka mockingbird)
Qualquer outra informação sobre outras bases possíveis para a lógica combinatória além de S, K e B, C, K, W seria realmente útil.
Como um ponto mais amplo, estou interessado no estudo do cálculo combinatório como um sistema puramente mecânico , ou seja, como um conjunto de regras de transformação em árvores binárias com nós rotulados, que não precisam receber nenhuma interpretação semântica específica. Qualquer indicação de recursos que adotem essa abordagem seria muito apreciada. ( Mock a Mockingbird adota essa abordagem, mas apresenta uma apresentação incompleta, enquanto o Cálculo Lambda de Barendregt está muito ligado à semântica, dificultando a extração dos aspectos puramente mecânicos nos quais estou interessado.)
1 Para ser mais preciso: no cálculo lambda, um combinador adequado é uma expressão da forma , onde possui apenas , etc. como variáveis livres e não contém abstrações. Assim, por exemplo, é um combinador adequado, mas não é, porque contém aplicado a um termo lambda.