È noto che i combinatori S e K formano una base per il calcolo del combinatore, nel senso che tutti gli altri combinatori possono essere espressi in termini di essi. C'è anche la base B, C, K, W di Curry, che ha la stessa proprietà. Ci deve essere un numero infinito di tali basi, ma non ne conosco altre.
Sono consapevole che esistono diverse basi a combinatore singolo, come il combinatore Iota e le varie altre costruite / riviste da Fokker . Tuttavia, questi sono combinatori "impropri", nel senso che sono espressi in termini di altri combinatori piuttosto che astrazioni pure. 1 Ai fini di questa domanda sono interessato solo a set di basi composti da opportuni combinatori.
Esiste anche uno studio delle altre possibili basi? L'ideale sarebbe qualcosa sulla falsariga dello studio di Wolfram su vari altri modelli di calcolo, in cui le varie combinazioni sono studiate sistematicamente. In particolare, mi interessa sapere se sono noti semplici esempi delle seguenti cose:
- Una base minima che include l'I combinatore. (Sto usando "minimal" per significare che se rimuovi qualsiasi membro smette di essere una base, quindi la base SKI non conta.)
- Un set di basi minimo che include il combinatore Y o il combinatore (aka mockingbird)
Qualsiasi altra informazione su altre possibili basi per la logica combinatoria oltre a S, K e B, C, K, W sarebbe davvero utile.
Come punto più ampio, sono interessato allo studio del calcolo combinatorio come un sistema puramente meccanico , cioè come un insieme di regole di trasformazione su alberi binari con nodi etichettati, che non hanno bisogno di alcuna particolare interpretazione semantica. Qualsiasi suggerimento verso le risorse che adottano questo approccio sarebbe molto apprezzato. ( To Mock a Mockingbird utilizza questo approccio ma dà una presentazione incompleta, mentre il Lambda Calculus di Barendregt è molto legato alla semantica, rendendo difficile per me estrarre gli aspetti puramente meccanici che mi interessano.)
1 Per essere precisi: nel calcolo lambda un combinatore appropriato è un'espressione della forma , dove ha solo , ecc. come variabili libere e non contiene alcuna astrazione. Ad esempio, è un combinatore appropriato, ma non lo è, perché contiene applicato a un termine lambda.