Page 186

Location: Chapter 19, final Exercise

Exercise (after the Appendix)

In terms of \(B\), \(C\), \(S\), and \(I\), find a combinator \(A\) satisfying the condition \(Axyz=xz(zy)\). The problem should be divided into three parts: ...


\[ A = C(BBS)(CI) \]

Short explanation

As suggested by the text, and according to the algorithm given in the Appendix, the solution proceeds in three steps:

First, a distinguished \(z\)-eliminate \(A_1\) of the expression \(X=xz(zy)\) must be found. By Rule 3a, this in turn requires to find:

  • a distinguished \(z\)-eliminate of \(xz\), which is \(x\) (Rule 2);
  • a distinguished \(z\)-eliminate of \(zy\), which by Rule 3c is \(CIy\).

Hence it is \(A_1=Sx(CIy)\).

The second step consists of finding a distinguished \(y\)-eliminate \(A_2\) of \(A_1\): by Rule 3b (and Rule 2), one has immediately

\[ A_2 = B(Sx)(CI)\;. \]

Finally, one needs a distinguished \(x\)-eliminate \(A\) of \(A_2\): again according to Rule 3c, to find it one must have a distinguished \(x\)-eliminate of \(B(Sx)\). This latter term is \(BBS\) (applying Rule 3b).

Application of Rule 3c then yields:

\[ A = C(BBS)(CI)\;, \]

as can be verified by feeding the equation \(Axyz=xz(zy)\) to the combinator-finder program (with the BCSI command-line option) as well as by explicit computation:

\[ \begin{align} Axyz =~& C(BBS)(CI)xyz=BBSx(CI)yz=B(Sx)(CI)yz=\\ =~& Sx(CIy)z=xz(CIyz)=xz(Izy)=xz(zy)\;. \end{align} \]