Combinatory logic 2026-10-14
Combinatory logic describes computation by application and fixed combinator constants, eliminating bound variables through bracket abstraction. Its intensional weak reduction does not identify every pair of terms that becomes beta-equivalent after translation into lambda calculus.
Write for the paper's bracket abstraction and for the I combinator. Prove the result by structural induction following the three clauses of bracket abstraction.
For , the rules for the S combinator and the K combinator giveIf does not occur in , then substitution for leaves unchanged andThese two cases cover all variables and constants as well as applications not containing .
In the remaining case, and occurs in at least one of . The bracket abstraction clause, the rule for the S combinator, the induction hypotheses and compatibility of equality with application giveThe last line is the defining application clause of substitution. ThereforeThe conclusion is equality in combinatory logic; it need not be literal identity of strings. There are no binders in a combinatory logic term, so this substitution introduces no variable capture.
Again write for bracket abstraction. In combinatory logic, all variable occurrences are free variables. Under and , substitution for preserves the presence or absence of :An existing is not replaced because ; replacing cannot introduce an because contains none. This ensures that the same clause of bracket abstraction applies before and after substitution.
Use structural induction on , respecting those clauses. If , thenbecause substitution leaves the S combinator, the K combinator and unchanged.
If is absent from , it is also absent from . ThereforeThis includes : even when is a large application, the absence of means bracket abstraction still produces .
Finally, let with occurring in or . By the occurrence observation, also occurs in or , so the application clause applies on both sides. Apply the induction hypotheses:Every step uses the definitions of substitution and bracket abstraction, without applying the equality axioms for the S combinator or the K combinator. Thus the result is the stronger syntactic identityThe side condition on is essential for this identity. For example, substituting for in gives , whereas , a different string.
Successive bracket abstractions are processed from the inside out: . Retain only as a temporary abbreviation for the I combinator. Since is absent from , the first bracket abstraction isFor the outer bracket abstraction, is absent from and the S combinator, while it occurs in . HenceSubstituting upward and then expanding gives the following fully bracketed string, consisting solely of the S combinator, the K combinator and parentheses:For readability, the same result with the usual left association convention and the temporary abbreviation isThe syntactic result comes from the specified bracket abstraction algorithm. Replacing it by the shorter K combinator, despite agreement after two arguments, would not answer the requested computation. As a check using the result of part (b), applying the computed combinatory logic term to gives .
Past exam of the mathematics course of the University of Cambridge 2007 iii Paper 87 2 Solution Created 2026-10-03 Updated 2026-10-14
A combinatory logic term over free variables is formed from variables in , the constants , and application, with no abstraction binder. We may regard as primitive, or as the abbreviation . Application associates to the left. Weak combinatory reduction contractsin any application context. Weak equivalence is the equivalence relation generated by these reductions. There is no additional rule identifying terms merely because they behave alike after application to a fresh argument.
Define bracket abstraction on combinatory terms by the following ordered clauses:They cover every term: after excluding the variable case and the case with no free , the term must be an application. Induction gives ; no other variable is introduced or removed. For every argument , the same induction gives : the three cases use respectively the , , and reductions.
The required translation isIt has exactly the same set of free variables as the original lambda term, by the bracket-abstraction identity.
To compare the two reductions, expand the constants into lambda terms:and expand variables and applications homomorphically. Every weak combinatory contraction becomes a finite sequence of beta reductions, so weakly equivalent terms have beta-equivalent lambda expansions. We also haveFor , this is the expansion of . For , the expansion of beta-reduces to , after choosing the binder fresh. For an application, expanding givesby induction and beta contraction. Thus, induction on the lambda syntax gives . Combining these facts proves
The reverse implication fails for this intensional translation. The beta-equivalent lambda terms and translate respectively toBoth are weak normal forms: has no argument, has too few arguments to contract, and the outer has only two arguments. They are syntactically distinct. By the assumed Church–Rosser property of weak combinatory reduction, two distinct weak normal forms cannot be weakly equivalent. The same argument works with , because both fully expanded terms remain distinct weak normal forms. Hence beta-equivalent lambda terms need not have weakly equivalent combinatory translations.
S combinator 2026-10-31
In lambda calculus, distributes its third argument to its first two arguments. In combinatory logic, its primitive constant satisfies and implements the application clause of bracket abstraction.