1

In Kleene's IM, the Corollary to Theorem XIV in §60 states:

If a class can be enumerated (allowing repetitions) by a general recursive function, it can be enumerated (allowing repetitions) by a primitive recursive function

where

A set or class $C$ of natural numbers is recursively enumerable, if there is a general recursive function $\varphi$ which enumerates it (allowing repetitions), i.e. such that $\varphi(0), \varphi(1), \varphi(2), ...$ is an enumeration (allowing repetitions) of the members of $C$

But say that we choose an Ackermann function $\alpha$ and the set "Is an Ackerman function value" be $\alpha(0), \alpha(1), \alpha(2), ...$ e.g. $1, 3, 7, 61, 2\uparrow\uparrow7, ...$.

I'm confused because I assumed that the Ackermann is general, but not primitive recursive (it grows faster than any primitive recursive function), while the Corollary above states that the same values can be enumerated by a primitive recursive function.

Which bit is wrong?

  • I can't speak to your Ackermann question, but, the corollary does not say that every general enumeration is a primitive recursive notation. It only says that if a general recursive enumeration exists then a primitive recursive enumeration exists. – Lee Mosher Dec 29 '22 at 13:12

1 Answers1

2

The range $A$ of the Ackermann function $\alpha$ is enumrable by a p.r. function, the non-p.r.-ness of $\alpha$ itself notwithstanding. There are various ways to prove this, but before doing so it's a good idea to spend some time trying and failing to deduce a contradiction from this. Basically, just having a p.r. enumeration of the range of the function does not help you compute the function in any way.

My personal favorite way to see that $A$ has a p.r. enumeration is the following:

Fix some element $a\in A$ and let $$f(n)=\begin{cases} n_0 & \mbox{ if }n_0\mbox{ is a code for a $\mathsf{PA}$-proof that $\alpha(n_1)=n_2$}\\ a & \mbox{ otherwise} \end{cases}$$ where $n_i=\max\{k: (p_i)^k\vert n\}$ where $p_i$ is the $i$th prime (starting with $p_0=2$).

We can replace $\mathsf{PA}$ with any other p.r.-axiomatizable $\Sigma_1$-complete theory, and because of Craig's trick there's no real bite to the "p.r.-axiomatizable" requirement. Alternatively, we could drop all reference to proofs and simply talk about codes of computations directly.

Thinking about $f$ as building $A$ in stages, what happens - and how we get around the non-p.r.-ness of $\alpha$ - is that $f$ spends a lot of time repeatedly telling us "$a\in A$." Basically, since we're not requiring an injective enumeration, $f$ is allowed to effectively "pass" as often as it wants. Note that this is very different from the obvious enumeration of $A$ given by $\alpha$ itself.

Interestingly, the case of the Ackermann function $\alpha$ has additional subtleties - even though $\alpha$ is non-p.r., its inverse (appropriately construed) is p.r.!

Noah Schweber
  • 245,398