How statement and proof provenance work
The first chip identifies the source of the statement or construction; the second identifies the source of its local proof or verification.
- Literature-sourced: the exact statement appears in a cited source; only wording and notation differ.
- AI-adapted: a semantically identical restatement of literature-sourced material, modulo indexing, notation, and boundary cases adopted by the library.
- AI-generated: a genuinely novel statement formulated by AI, with no source for the claim itself.
These labels describe origin, not correctness: citations and verification chips remain separate evidence.
The Ackermann function is total computable but not primitive recursive
Statement
Let be the Ackermann-Peter function defined by Then is a total computable function, but is not primitive recursive.
Facts & Assumptions
Given: The function defined in the statement.
Primitive recursive functions are the total functions obtained from the initial functions by finitely many compositions and primitive recursions, by Primitive recursive functions.
A machine computes a partial function when it halts with the required output on every input in the domain and diverges off the domain, by Partial functions computed by a machine under fixed encodings.
For each fixed , the unary function is strictly increasing in , and is obtained by iterating a growing number of times. Consequently, for fixed and , some sufficiently high row with eventually dominates the shifted row , and passing to a sufficiently higher row absorbs any fixed finite composition or an -fold iteration of lower rows.
Proof
A deterministic machine can evaluate by keeping a finite stack of pending calls. Start with the one stack entry . If the top entry is , replace it by the value ; if it is , replace it by ; and if it is , replace it by the two pending calls and then , where the second frame waits for the value returned by the first and then substitutes it into . Every individual rewrite is effective on a coded stack, so by [L2] this gives a machine procedure for evaluating .
For each primitive recursive -ary function , structural induction on its construction from [L1] gives constants such that for all inputs. The initial functions satisfy such a bound. For composition, apply the induction bounds to all inner functions, take their maximum, and then apply the bound for the outer function; monotonicity and the absorption property in [F1] replace the resulting finite composition by one higher fixed row. For primitive recursion, the recursion variable bounds the number of successive applications of the step function; [F1] again absorbs those boundedly many lower-row iterations into a higher fixed row.
The defining recursion decreases the left argument whenever the right argument is reset, and otherwise decreases the right argument before the left argument is used again. Induction on and then on therefore shows that every call chain eventually reaches the base clause . Hence the machine from step 1.1 halts on every input , so is total computable.
If itself were primitive recursive, step 1.2 would give fixed with for all . Setting and then taking sufficiently large gives by [F1], contradicting that bound. Therefore is not primitive recursive.
Steps 2.1 and 2.2 prove that Ackermann's function is total computable but not primitive recursive.
Depends on
Used by
Dependency tree · two levels
7 results within two dependency steps of this one, each drawn at its shortest distance from it. An arrow runs from a result to what uses it, so the chart reads left to right and ends at this result, which carries a heavier outline. Every node is a link to that result. Click elsewhere on the chart to enlarge it.
Sources
- Jeremy Avigad and Richard Zach, Recursive Functions (standard reference, not scraped)
- Klaus Sutner, Primitive Recursion (standard reference, not scraped)