next up previous contents
Next: Encoding minimalization Up: Fixed points Previous: Fixed points   Contents

From recursive functional definitions to lambda terms

Let $F = \lambda x_1 x_2 \ldots x_n E$ be a recursive definition of $F$ where $E$ contains not only the variables $x_1$, $x_2$, ..., $x_n$ and also the expression $F$. How do we transform such a definition into an equivalent lambda term?

To do this, we choose a new variable $f$ and convert $E$ to $E^*$ by replacing every occurrence of $F$ in $E$ by $(f f)$. That is, if $E$ is of the form $\cdots F \cdots F \cdots$ then $E^*$ is $\cdots (ff) \cdots (ff) \cdots$. Now, write

\begin{displaymath}
\begin{array}{lcl}
G & = & \lambda f x_1 x_2 \ldots x_n. E^...
...x_1 x_2 \ldots x_n. \cdots (ff) \ cdots
(ff)\cdots
\end{array}\end{displaymath}

Then

\begin{displaymath}
GG = \lambda x_1 x_2 \ldots x_n. \cdots (GG) \cdots (GG) \cdots
\end{displaymath}

This means that $GG$ satisfies the defining equation for $F$. We can therefore write $F = GG$, where $G = \lambda f x_1 x_2 \ldots
x_n.E^*$.



Madhavan Mukund 2004-04-29