next up previous contents
Next: A fixed point combinator Up: Fixed points Previous: From recursive functional definitions   Contents

Encoding minimalization

Now that we know how to convert recursive definitions into lambda terms, we can encode minimalization as follows. Assume that we want to define a function $f : \mathbb{N}^k \to \mathbb{N}$ by minimalization from a function $g : \mathbb{N}^{k{+1}} \to \mathbb{N}$ for which we already have an encoding $\langle{g}\rangle $. We begin with a recursive definition of a term $F$ as follows.


\begin{displaymath}
F = \lambda n x_1 x_2 \ldots x_k.
\begin{array}[t]{ll}
\ma...
...thrm{else~} F (\mathit{succ~} n)~x_1~x_2~\ldots~x_k
\end{array}\end{displaymath}

Let $\tilde{F}$ be the lambda term corresponding to $F$ after unravelling the recursive definition. The encoding $\langle{f}\rangle $ of $f$ is then $\tilde{F}~\langle{0}\rangle $.

All that remains is to provide an encoding for the predicate iszero.

Encoding of iszero



Madhavan Mukund 2004-04-29