1
$\begingroup$

From pg. 35 of Lambda Calculus and Combinators An Introduction:

Corollary 3.3.1 in $\lambda$ and $CL$: for every $Z$ and $n \ge 0$, the equation

$$ xy_1 \ldots y_n = Z $$

can be solved for $x$. That is, there is a term $X$ such that

$$ Xy_1 \ldots y_n =_{\beta, w} [X/x]Z. $$

Proof: Choose $X \equiv \mathsf{Y} (\lambda x y_1 \ldots y_n.Z)$.

(Note: In the book, we assume that $\mathsf{Y} \equiv (\lambda ux. xuux)(\lambda ux. xuux)$. Further, for ease of notation, let $V \equiv (\lambda x y_1 \ldots y_n.Z)$.)

The problem is that when I check this with my own examples, I'm not getting this result.

For example, suppose that neither $x$ nor any of $y_1, \ldots , y_n$ is in the free variables of $Z$ (to make it easy). Then this theorem asserts that if $X \equiv \mathsf{Y}(\lambda x y_1 \ldots y_n . Z)$, then

$$ Xy_1 \ldots y_n =_{\beta, w} Z $$

When I check whether this true, I get

$$ (\mathsf{Y}(\lambda x y_1 \ldots y_n . Z))y_1 \ldots y_n = (\mathsf{Y}V)y_1 \ldots y_n = (V\mathsf{Y}V)y_1 \ldots y_n =_{\beta, w} Zy_n $$

Am I doing something wrong?

1 Answers 1

0

After applying the fixed-point theorem, you need to substitute $X$ back in and reduce it as follows:

\begin{array}{l} & \text{ Let } xy_1...y_n \equiv Z & \text{ Definition }\\ & \text{ Let } X \equiv Y(λxy_1...y_n.Z) & \text{ Definition }\\ & [X/x]xy_1...y_n \equiv [X/x]Z & \text{ Subst. for x }\\ & Y(λxy_1...y_n.Z)y_1...y_n \equiv [X/x]Z & \text{ Subst. for x }\\ & (λxy_1...y_n.Z)Y(λxy_1...y_n.Z)y_1...y_n \equiv [X/x]Z & \text{ Fixed-point theorem }\\ & (λxy_1...y_n.Z)Xy_1...y_n \equiv [X/x]Z & \text{ Subst. X }\\ & (λy_1...y_n.[X/x]Z)y_1...y_n \equiv [X/x]Z & \text{ β reduction }\\ & [y_n/y_n]..[y_1/y_1][X/x]Z \equiv [X/x]Z & \text{ β reduction }\\ & [X/x]Z \equiv [X/x]Z & \text{ Subst. }\\ \end{array}