The purpose of this exercise is to prove the following fact:
(*) There exists a (total) recursive function $\psi(x, y)$ such that if we set $\psi_{x}=$ $\lambda y . \psi(x, y)$, then the set $\left\{\psi_{x}: x \in \mathbb{N}\right\}$ is precisely the set of all primitive recursive functions of one variable.
(a) Show that if $f \in \mathcal{F}_{p}$, then the following two conditions are equivalent:
(i) $f$ is primitive recursive;
(ii) there exists an index $i$ and a primitive recursive function $g \in \mathcal{F}_{p}$ such that the machine whose index is $i$ computes $f$ and the computation time $T\left(i, x_{1}, x_{2}, \ldots, x_{p}\right)$ is less than or equal to $g\left(x_{1}, x_{2}, \ldots, x_{p}\right)$.
(b) We will make use of Ackerman's function $\zeta$ and of the functions $\zeta_{n}=$ $\lambda x . \zeta(n, x)$. Show that if $f$ is a primitive recursive function of one variable, then there exist two integers $n$ and $A$ such that, for all $x$, we have
$$
f(x) \leq \sup \left(A, \zeta_{n}(x)\right) .
$$
(c) Let $g$ be the function of four variables defined by
$$
\begin{gathered}
g(i, A, n, x)=\mu y \leq \sup (A, \zeta(n, x)) \\
{\left[\exists t \leq \sup (A, \zeta(n, x))(i, t, x, y) \in C^{1}\right] ;}
\end{gathered}
$$
[recall that $(i, t, x, y) \in C^{1}$ means that when the machine whose index is $i$ is set in operation with $x$ on its first band, it will halt at the instant $t$ with output $y$ ]. Show that, for all $i, A$, and $n$, the function $\lambda x \cdot g(i, A, n, x)$ is primitive recursive and that, conversely, if $f$ is any primitive recursive function of one variable, then there exist integers $i, A$, and $n$ such that $f=\lambda x . g(i, A, n, x)$.
(d) Use these results to prove $(*)$.
(e) Show that there exists a recursive set that is not primitive recursive.