Alphabeta Math
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.

✓ 9 results · all verified · 5 also independently AI-judged
Every result on this page is machine-checked by a proof checker and read in full and owner-audited; the judge is an additional, independent cross-model AI review of the proofs. The 4 not AI-judged were verified by owner audit (typically over a confirmed judge false positive), not failures.

Primitive Recursive and Partial Computable Functions

1 · Prerequisites

2 · Summary

This page develops the classical ladder from primitive recursion to partial recursion and then to machine computability. The route is explicit about the intermediate coding work: finite sequences are coded by natural numbers, single Turing steps are arithmetized, Kleene's T-predicate and output function are defined from those codings, and the normal-form theorem turns machine computation into minimization over coded histories.

The page closes with the two standard comparison seams. Ackermann's function shows that total computability is strictly broader than primitive recursion, while the lambda-calculus comparison identifies partial recursive functions with lambda-definable ones without collapsing terms, computations, machine codes, and extensional functions into the same object.

3 · Logical flowchart

4 · Definitions, theorems and proofs

DefinitionDefinition: Literature-sourcedProof: Not applicablejudge pass (gpt-5.6-terra)audited 2026-09-12Open item page →

The zero, successor, and projection functions on the natural numbers

Definition

For each integer k≥1, the initial arithmetic functions on N are:

  • the zero function Z:N→N,Z(n)=0;
  • the successor function S:N→N,S(n)=σ(n)=n∪{n};
  • for each 1≤i≤k, the ith projection Pik:Nk→N,Pik(x1,…,xk)=xi.

Here N is the natural-number system from The natural numbers N (von Neumann), and each displayed rule determines a total function in the sense of A function is a relation f with (a,b)∈f and (a,c)∈f implying b=c; f:A→B, the value f(a), domain and codomain.

Remarks

  • These are the basic generators from which primitive recursive functions are built.

  • The arity is part of the data: the family {Pik} contains one projection for each positive arity k and each coordinate i in that arity.

DefinitionDefinition: Literature-sourcedProof: Not applicableaudited 2026-09-12Open item page →

Composition and primitive recursion as closure schemes on arithmetic functions

Definition

Let g:Nm→N and let h1,…,hm:Nk→N be total arithmetic functions. Their composition is the function x⟼g(h1(x),…,hm(x)) from Nk to N.

Let g:Nk→N and h:Nk+2→N be total arithmetic functions. A function f:Nk+1→N is obtained from g and h by primitive recursion when f(0,x1,…,xk)=g(x1,…,xk) and f(n+1,x1,…,xk)=h(n,f(n,x1,…,xk),x1,…,xk) for every n∈N and every x1,…,xk∈N.

By The recursion theorem, once g and h are fixed there exists a unique total function f satisfying these two clauses.

Remarks

  • Composition does not change totality.

  • Primitive recursion is recursion on one distinguished natural-number argument, with the previous function value available in the recursive clause.

DefinitionDefinition: Literature-sourcedProof: Not applicablejudge pass (gpt-5.6-terra)audited 2026-09-12Open item page →

Primitive recursive functions

Definition

A total function f:Nk→N is primitive recursive when it belongs to the smallest collection of total arithmetic functions that:

Equivalently, a primitive recursive function is one obtainable from the zero, successor, and projection functions by finitely many applications of composition and primitive recursion.

Remarks

  • Primitive recursive functions are always total on Nk.

  • The definition is extensional: different constructions may yield the same primitive recursive function.

PropositionStatement: Literature-sourcedProof: AI-generatedprecheck passjudge pass (gpt-5.6-terra)audited 2026-09-12Open item page →

Basic arithmetic operations and bounded quantification are primitive recursive

Statement

The following total functions are primitive recursive:

  • addition and multiplication on N,
  • predecessor p(0)=0, p(n+1)=n,
  • truncated subtraction m−∙n:=max⁡(m−n,0),
  • the characteristic functions of 0, equality, and order,
  • for every primitive recursive g:Nk+1→N, the bounded sum and bounded product Σg(n,x):=∑y≤ng(y,x),Πg(n,x):=∏y≤ng(y,x),
  • and therefore bounded existential and universal quantifiers of primitive-recursive predicates.

Facts & Assumptions

Given: The closure clauses in Primitive recursive functions.

[L1]

Primitive recursive functions are exactly the total functions obtained from the initial arithmetic functions by finitely many compositions and primitive recursions, by Primitive recursive functions.

Proof

technique · direct
1.1L1givenconstruct

Addition is obtained by primitive recursion from the clauses add⁡(0,n)=n and add⁡(m+1,n)=S(add⁡(m,n)). Multiplication is then obtained by primitive recursion from 0 and addition via mul⁡(0,n)=0 and mul⁡(m+1,n)=add⁡(mul⁡(m,n),n). By [L1], both functions are primitive recursive.

2.1L1step 1.1construct

The predecessor function is primitive recursive from p(0)=0 and p(n+1)=P12(n,p(n)). Then truncated subtraction is primitive recursive by m−∙0=m and m−∙(n+1)=p(m−∙n). From this, the zero-test χ0 is primitive recursive via χ0(0)=1 and χ0(n+1)=0, the sign function sg⁡(n)=1−χ0(n) is primitive recursive, equality is given by χ=(m,n)=χ0((m−∙n)+(n−∙m)), and order is given by χ≤(m,n)=χ0(m−∙n). So the listed basic arithmetic and characteristic functions are primitive recursive by [L1].

2.2L1step 1.1construct

If g:Nk+1→N is primitive recursive, then bounded sums and products are obtained by primitive recursion through Σg(0,x)=g(0,x), Σg(n+1,x)=Σg(n,x)+g(n+1,x), Πg(0,x)=g(0,x), and Πg(n+1,x)=Πg(n,x)⋅g(n+1,x). Hence Σg and Πg are primitive recursive by [L1].

3.1step 2.1step 2.2algebra

If r(y,x)∈{0,1} is a primitive-recursive characteristic function, then χ∃y≤n r(y,x)=1(n,x)=sg⁡(Σr(n,x)) and χ∀y≤n r(y,x)=1(n,x)=Πr(n,x). Thus bounded existential and bounded universal quantification preserve primitive recursiveness.

4.1step 1.1step 2.1step 3.1∎

The displayed constructions establish every operation and quantifier listed in the statement.

DefinitionDefinition: Literature-sourcedProof: Not applicableaudited 2026-09-12Open item page →

A natural-number coding of finite sequences

Definition

Write bin⁡(n) for the canonical binary numeral of n, with bin⁡(0)=0. For a binary word w, let c(w):=1∣w∣0w.

For a finite sequence of natural numbers a=(a0,…,ak−1), define its sequence word W(a):=1 1k0 c(bin⁡(a0))⋯c(bin⁡(ak−1)). The leading 1 keeps the whole word a canonical positive binary numeral even when k=0.

The natural-number code of a is the unique natural number ⌜a⌝seq whose binary numeral is W(a). In particular, the empty sequence has code ⌜()⌝seq=2, because W(())=10.

By Finite tuples admit effective prefix-free binary encodings, the tuple of binary numerals inside W(a) is effectively and uniquely decodable, so this construction gives an injective coding of finite sequences of natural numbers by natural numbers.

Remarks

  • Later items write len⁡(s) for the decoded length of the sequence coded by s, and (s)i for its ith decoded entry when i<len⁡(s).

  • The coding is chosen so that the length header and every coordinate block can be recovered by bounded scans through the binary numeral of the code.

TheoremStatement: Literature-sourcedProof: AI-generatedprecheck passjudge pass (gpt-5.6-terra)audited 2026-09-12Open item page →

The sequence-length and coordinate-reading functions are primitive recursive

Statement

For the coding from A natural-number coding of finite sequences, the following total functions are primitive recursive:

  • the decoded length function len⁡(s) defined by len⁡(s)=k if s=⌜(a0,…,ak−1)⌝seq, and len⁡(s)=0 otherwise, and
  • the coordinate-reading function entry⁡(s,i) defined by entry⁡(s,i)=ai if s=⌜(a0,…,ak−1)⌝seq and i<k, and entry⁡(s,i)=0 otherwise.

Facts & Assumptions

Given: The sequence coding from A natural-number coding of finite sequences.

[L1]

Primitive recursive functions are closed under the basic arithmetic, characteristic, and bounded-quantification constructions from Basic arithmetic operations and bounded quantification are primitive recursive.

[L2]

A coded finite sequence has binary numeral 1 1k0 c(bin⁡(a0))⋯c(bin⁡(ak−1)), with each block c(w)=1∣w∣0w, by A natural-number coding of finite sequences.

Proof

technique · direct
1.1L1L2givenconstruct

By bounded search on quotients and remainders, one can primitive-recursively recover the binary length of a positive integer and each individual bit of its canonical binary numeral. Using [L2], a bounded scan first reads the sentinel and unary header, obtaining a candidate k. It then parses exactly k self-delimiting blocks, checks that each payload is a canonical binary numeral, and verifies that the final block ends at the end of the numeral. Only if all these checks succeed does it return k; otherwise it returns 0. All scan bounds are at most the binary length of s, so this full validity test and the total function len⁡ are primitive recursive by [L1].

2.1L1L2step 1.1construct

Once len⁡(s)=k is known, the start and end of the ith block c(bin⁡(ai)) are found by another bounded scan through the same binary numeral: each block begins with a run of 1's whose length is the bit-length of ai, followed by one delimiter 0, followed by exactly that many payload bits. The integer represented by that payload is then recovered by a bounded primitive-recursive evaluation of binary place values.

3.1L1step 2.1construct

If the bounded scan shows that i≥len⁡(s) or that the numeral of s is not of the required form, define the output to be 0. Otherwise return the value decoded in step 2.1. Because every search range is bounded by the bit-length of s, the total function entry⁡(s,i) is primitive recursive by [L1].

4.1step 1.1step 3.1∎

Steps 1.1 and 3.1 prove that both the length function and the total coordinate-reading function are primitive recursive.

DefinitionDefinition: Literature-sourcedProof: Not applicablejudge pass (gpt-5.6-terra)audited 2026-09-12Open item page →

Unbounded minimization and partial recursive functions

Definition

A partial function f:Nk⇀N is a function whose domain is some subset of Nk and whose values lie in N. Thus the hooked arrow records the ambient input set, while the actual domain may be smaller.

Let g:Nk+1⇀N be a partial function. Its unbounded minimization is the partial function μy g(x,y) defined at x∈Nk exactly when there exists y such that g(x,y)=0 and g(x,z) is defined and nonzero for every z<y; in that case μy g(x,y) is the least such y.

Composition of partial functions is strict: if g:Nm⇀N and h1,…,hm:Nk⇀N, then g(h1(x),…,hm(x)) is defined exactly when every hi(x) is defined and g is defined at the resulting tuple. Primitive recursion for partial functions uses the same two recursive clauses as in the total case, with a value undefined as soon as a required earlier value or an application of a defining function is undefined.

A partial function f:Nk⇀N is partial recursive when it belongs to the smallest class of partial functions on finite powers of N that:

  • contains every initial arithmetic function, viewed as a total partial function,
  • is closed under strict composition,
  • is closed under partial primitive recursion, and
  • is closed under unbounded minimization.

Remarks

  • Minimization is the first closure operation here that can destroy totality.

  • A partial recursive function is therefore allowed to be undefined on some inputs even though the primitive recursive functions are always total.

PropositionStatement: Literature-sourcedProof: AI-generatedprecheck passaudited 2026-09-12Open item page →

The Ackermann function is total computable but not primitive recursive

Statement

Let A:N2→N be the Ackermann-Peter function defined by A(0,n)=n+1, A(m+1,0)=A(m,1), A(m+1,n+1)=A(m,A(m+1,n)). Then A is a total computable function, but A is not primitive recursive.

Facts & Assumptions

Given: The function A defined in the statement.

[L1]

Primitive recursive functions are the total functions obtained from the initial functions by finitely many compositions and primitive recursions, by Primitive recursive functions.

[L2]

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.

[F1]

For each fixed m, the unary function Am(n):=A(m,n) is strictly increasing in n, and Am+1 is obtained by iterating Am a growing number of times. Consequently, for fixed c and r, some sufficiently high row Ad with d>c eventually dominates the shifted row n↦Ac(n+r), and passing to a sufficiently higher row absorbs any fixed finite composition or an n-fold iteration of lower rows.

Proof

technique · direct
1.1L2F1givenconstruct

A deterministic machine can evaluate A(m,n) by keeping a finite stack of pending calls. Start with the one stack entry (m,n). If the top entry is (0,r), replace it by the value r+1; if it is (p+1,0), replace it by (p,1); and if it is (p+1,r+1), replace it by the two pending calls (p+1,r) and then (p,□), where the second frame waits for the value returned by the first and then substitutes it into A(p,⋅). Every individual rewrite is effective on a coded stack, so by [L2] this gives a machine procedure for evaluating A.

1.2L1F1giveninduction

For each primitive recursive k-ary function f, structural induction on its construction from [L1] gives constants c,r such that f(x1,…,xk)≤Ac(max⁡ixi+r) 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.

2.1F1step 1.1

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 m and then on n therefore shows that every call chain eventually reaches the base clause A(0,r)=r+1. Hence the machine from step 1.1 halts on every input (m,n), so A is total computable.

2.2F1step 1.2

If A itself were primitive recursive, step 1.2 would give fixed c,r with A(m,n)≤Ac(max⁡{m,n}+r) for all m,n. Setting m=n and then taking n>c sufficiently large gives A(n,n)>Ac(n+r) by [F1], contradicting that bound. Therefore A is not primitive recursive.

3.1step 2.1step 2.2∎

Steps 2.1 and 2.2 prove that Ackermann's function is total computable but not primitive recursive.

LemmaStatement: Literature-sourcedProof: AI-generatedprecheck passaudited 2026-09-12Open item page →

The one-step update on coded Turing configurations is primitive recursive

Statement

For a configuration C=(q,h,t), let r be the larger of h and the rightmost nonblank tape position, taking the latter to be 0 when the tape is blank. Define its configuration code by ⌜C⌝cfg:=⌜(q,h,t(0),…,t(r))⌝seq.

There is a primitive recursive total function Step⁡(e,c) such that, whenever e=⌜M⌝ is a valid machine code and c is the chosen code of a configuration C of M:

  • if C is nonhalting and C⊢MC′, then Step⁡(e,c)=⌜C′⌝cfg,
  • if C is halting, then Step⁡(e,c)=c.

On malformed inputs, Step⁡ returns a fixed default code.

Facts & Assumptions

Given: The machine code e and configuration code c.

[L1]

A coded machine is given by a finite tuple recording its state count, input-alphabet size, tape-alphabet size, and lexicographically ordered transition triples, and the code is effectively decodable, by A fixed effective binary encoding of deterministic one-tape Turing machines and The chosen machine coding is injective and has a total decoder.

[L2]

A configuration of a one-tape machine is determined by its current state, head position, and finite tape data, and one step changes only the scanned symbol, the state, and the head position according to Configurations of a deterministic one-tape Turing machine and The one-step configuration relation.

[L3]

For the chosen natural-number coding of finite sequences, the decoded length and any decoded coordinate are primitive recursive, by The sequence-length and coordinate-reading functions are primitive recursive.

[L4]

Basic arithmetic, characteristic functions, and bounded searches are primitive recursive, by Basic arithmetic operations and bounded quantification are primitive recursive.

Proof

technique · direct
1.1L3givenconstruct

By the configuration-code definition in the statement and [L3], primitive recursive functions recover from c the decoded length of the tuple, its first two entries q,h, the currently scanned symbol t(h), and any later tape symbol that may need to be copied into the output code.

2.1L1L2L4step 1.1construct

Using the explicit tuple format from [L1], together with the primitive-recursive arithmetic and bounded searches from [L4], one can scan the canonical binary numeral of e: count the initial unary arity header, locate each self-delimiting block, verify the tuple-length and alphabet constraints, and recover the first three numerals and every transition-table coordinate, returning the default branch on malformed inputs. A bounded search through the recovered transition list therefore finds the unique transition triple (q′,b,D) attached to the pair (q,t(h)) when q is nonhalting. Using [L2] and the decoded tape coordinates from step 1.1, form the updated tape, state, and head position h′. Then use a bounded backward search through positions at most r+1 to find the rightmost nonblank updated cell, taking 0 if none exists, and set r′ to the maximum of that position and h′. The output tuple is exactly (q′,h′,t′(0),…,t′(r′)), so erasing the former rightmost nonblank cell trims the trailing blank while a head move onto a blank cell still records the head position.

3.1L1L2step 1.1construct

If the decoded state q is already accepting or rejecting, step 2.1 is skipped and the output is the original code c. If the input code is malformed, return one fixed default code. These are again primitive-recursive case distinctions because the relevant checks are bounded and finite.

4.1L3step 2.1step 3.1∎

Re-encoding the canonically trimmed updated sequence from step 2.1 uses only primitive-recursive arithmetic on its boundedly many coordinates, so the total function Step⁡(e,c) is primitive recursive and has the stated behavior.

DefinitionDefinition: Literature-sourcedProof: Not applicableaudited 2026-09-12Open item page →

Kleene's T-predicate and output function

Definition

Fix the machine coding from A fixed effective binary encoding of deterministic one-tape Turing machines and the sequence coding from A natural-number coding of finite sequences.

For natural numbers e,x,s, define Kleene's T-predicate T(e,x,s) to hold exactly when s codes a finite sequence of configurations C0,…,Cr such that:

  • e decodes to a machine M,
  • C0 is the initial configuration of M on input x,
  • Cj+1 is obtained from Cj by the coded one-step update for every j<r, and
  • Cr is halting.

Define the output function U(s) as follows. If s decodes to a nonempty sequence whose final entry is a well-formed configuration code and the tape in that configuration contains a canonical binary numeral followed by blanks, let U(s) be the natural number represented by that numeral. On every other input, set U(s)=0. Thus U only extracts data from the final coded configuration; it does not first test an unbounded existential claim about whether some machine and input have that history. The output-word convention is the one fixed in Finite computation histories, halting computations, and divergence.

Define the numeric zero-test for T by τT(e,x,s):={0,T(e,x,s),1,otherwise.

The primitive-recursive readers of The sequence-length and coordinate-reading functions are primitive recursive parse the history and every configuration coordinate. A bounded universal check over the decoded list verifies the initial configuration, each update using The one-step update on coded Turing configurations is primitive recursive, and the final halting state. Equality tests, composition, bounded search, and bounded universal quantification preserve primitive recursiveness by Basic arithmetic operations and bounded quantification are primitive recursive. The same readers locate the final configuration and perform a bounded scan of its finitely encoded tape segment, checking and evaluating the canonical binary numeral. Consequently the combined history-validity zero-test τT and the final-output reader U are primitive recursive, and T is a primitive-recursive relation through its zero-test.

Remarks

  • T(e,x,s) says that s is a complete halting computation history, not just one legal step.

  • The least s satisfying T(e,x,s) is the first successful coded history in the usual numeric order, not necessarily the shortest history.

TheoremStatement: Literature-sourcedProof: AI-generatedprecheck passaudited 2026-09-12Open item page →

Kleene normal form for partial recursive functions

Statement

For every partial recursive function f:N⇀N, there exists a natural number e such that for every input x:

  • if f(x) is defined, then f(x)=U(μs τT(e,x,s)),
  • and if f(x) is undefined, then there is no s with T(e,x,s).

Here T, its numeric zero-test τT, and U are the primitive recursive objects from Kleene's T-predicate and output function.

Facts & Assumptions

Given: A partial recursive function f:N⇀N.

[L1]

Partial recursive functions are generated from the initial arithmetic functions by composition, primitive recursion, and unbounded minimization, by Unbounded minimization and partial recursive functions.

[L2]

The relation T(e,x,s) says that s codes a complete halting computation history for the machine coded by e on input x; its numeric zero-test satisfies τT(e,x,s)=0 exactly when T(e,x,s); and U(s) reads the halting output from that history, by Kleene's T-predicate and output function.

Proof

technique · direct
1.1L1givenconstruct

By [L1], the function f is presented by a finite derivation from the initial functions using composition, primitive recursion, and minimization. Build a machine for that derivation by structural induction. The zero, successor, and projection functions have immediate machines. For composition, run the machines for the inner functions in sequence and feed their outputs to the outer machine; divergence of any required subcomputation propagates. For primitive recursion, store the parameters and previous value and iterate the step machine from 0 to the recursion argument. For minimization, evaluate the search function at 0,1,2,… in order and halt at the first zero; if an earlier required value is undefined, the machine diverges as prescribed by partial minimization. Since the derivation is finite, this yields one machine code e computing f.

2.1L2step 1.1

For this fixed code e, the predicate from [L2] recognizes exactly the coded halting histories of that machine. Therefore, if f(x)=y, there is at least one code s with T(e,x,s), and every such successful history has halting output y, so U(s)=y. If the minimization search never finds a zero or some earlier subcomputation diverges, then the machine has no halting history on x, so there is no s with T(e,x,s).

3.1L2step 2.1∎

In the defined case, the least successful history code μs τT(e,x,s) exists, and step 2.1 gives f(x)=U(μs τT(e,x,s)). In the undefined case, step 2.1 gives the second clause of the statement.

TheoremStatement: Literature-sourcedProof: AI-generatedprecheck passjudge pass (gpt-5.6-terra)audited 2026-09-12Open item page →

A partial function is partial recursive if and only if it is Turing computable

Statement

Let f:N⇀N be a partial function, with inputs and outputs encoded by their canonical binary numerals. Then f is partial recursive if and only if f is Turing computable under those encodings.

Facts & Assumptions

Given: A partial function f:N⇀N.

[L1]

A machine computes a partial function when it halts with the required encoded output on the domain and diverges off the domain, by Partial functions computed by a machine under fixed encodings.

[L2]

Partial recursive functions are closed under composition and unbounded minimization and contain the primitive recursive functions, by Unbounded minimization and partial recursive functions.

[L3]

Every partial recursive function has a normal-form expression f(x)=U(μs τT(e,x,s)) for some code e, by Kleene normal form for partial recursive functions.

[L5]

The predicate T, its primitive-recursive numeric zero-test τT, and the function U encode halting computation histories and their outputs arithmetically, by Kleene's T-predicate and output function.

Proof

technique · direct
1.1L1L3L5givenconstruct

Assume first that f is partial recursive. By [L3], choose e with f(x)=U(μs τT(e,x,s)) whenever f(x) is defined. Every primitive-recursive function is Turing computable: the initial functions have immediate machines, machine composition realizes composition, and a finite loop realizes primitive recursion. Hence machines compute the primitive-recursive functions τT and U from [L5]. A machine can therefore search successively through s=0,1,2,…, evaluate τT(e,x,s), and at the first zero compute U(s) and halt with its binary numeral. If there is no successful s, the search continues forever. By [L1], this machine computes f.

1.2L1L2L5givenconstruct

Conversely, assume that f is Turing computable. Then by [L1] there is a machine code e whose halting computations on input x produce exactly the values of f(x). By [L5], the characteristic function of the relation T(e,x,s) is primitive recursive, so the total search function ge(x,s) that returns 0 exactly when T(e,x,s) holds and 1 otherwise is primitive recursive. By [L2], the partial search me(x):=μs ge(x,s) is therefore partial recursive, and composing with the primitive recursive output map U shows that x↦U(me(x)) is partial recursive as well. Its domain and values agree with f because me(x) exists exactly when the machine coded by e has a halting history on x, and then [L5] says that U(me(x)) is exactly the machine's output. Hence f is partial recursive.

2.1step 1.1step 1.2∎

Steps 1.1 and 1.2 prove both implications, so f is partial recursive if and only if it is Turing computable.

DefinitionDefinition: Literature-sourcedProof: Not applicablejudge pass (gpt-5.6-terra)audited 2026-09-12Open item page →

Lambda terms, beta reduction, and the partial functions they represent

Definition

The lambda terms are the finite expressions built from variables by the rules x,(MN),(λx.M). Because they are finite strings over a fixed finite syntax, they admit effective coding.

A beta reduction is one application of the rewrite rule (λx.M)N→βM[x:=N], where M[x:=N] denotes capture-avoiding substitution: before substituting, bound variables of M are alpha-renamed when necessary so that no free variable of N becomes bound. Terms that differ only by such a consistent renaming of bound variables are identified up to alpha-equivalence. The relation →β∗ denotes the reflexive transitive closure of beta reduction modulo alpha-equivalence.

For each n∈N, let n‾ be the Church numeral for n. A lambda term F represents a partial function f:Nk⇀N when:

  • for every (n1,…,nk) in the domain of f, F n1‾⋯nk‾→β∗f(n1,…,nk)‾,
  • and for every input tuple outside the domain, the term F n1‾⋯nk‾ never reaches a Church numeral by beta reduction.

Such a function is called lambda-definable.

Remarks

  • The represented object is a partial function on natural numbers, not the term itself.

  • The chosen convention is extensional: different lambda terms may represent the same partial function.

TheoremStatement: Literature-sourcedProof: AI-generatedprecheck passaudited 2026-09-12Open item page →

A partial function is lambda-definable if and only if it is partial recursive

Statement

For a partial function f:Nk⇀N, the following are equivalent:

  1. f is lambda-definable.
  2. f is partial recursive.

Facts & Assumptions

Given: A partial function f:Nk⇀N.

[L1]

Lambda-definability means representation by a lambda term on Church numerals via beta reduction, by Lambda terms, beta reduction, and the partial functions they represent.

[L2]

Partial recursive functions are generated from the initial functions by composition, primitive recursion, and minimization, by Unbounded minimization and partial recursive functions.

[L3]

A partial function on natural numbers is partial recursive exactly when it is Turing computable, by A partial function is partial recursive if and only if it is Turing computable.

[L4]

Finite tuples of natural numbers have an effective natural-number coding with primitive-recursive length and coordinate readers, by A natural-number coding of finite sequences and The sequence-length and coordinate-reading functions are primitive recursive.

[L5]

The fixed-arity tuple coder is primitive recursive: binary length and bit extraction are bounded arithmetic operations, appending a block is u 2∣v∣+v, and 2m is obtained by primitive recursion from multiplication (Basic arithmetic operations and bounded quantification are primitive recursive).

Proof

technique · direct
1.1L1L2givenconstruct

Assume f is partial recursive. By [L2], it is built from the initial arithmetic functions by composition, primitive recursion, and minimization. The initial functions are represented by the standard lambda terms for zero, successor, and projections; composition is represented by term substitution; primitive recursion is represented by the usual iterator on Church numerals; and minimization is represented by a fixpoint term that performs the unbounded search y=0,1,2,… until a zero-test succeeds. Hence some lambda term represents f in the sense of [L1].

1.2L1L3L4L5givenconstruct

Conversely, assume f is lambda-definable. By [L1], there is a lambda term F such that F n1‾⋯nk‾ reaches a Church numeral exactly on the tuples where f is defined, and the numeral reached is its value. Given the sequence code of (n1,…,nk), a Turing machine uses [L4] to recover the coordinates, forms that application, and performs a breadth-first search through all finite beta-reduction sequences, halting when a branch reaches a Church numeral. This computes the unary coded version of f, so [L3] makes that coded function partial recursive. Composing with the primitive-recursive tuple coder from [L5] and coordinate readers from [L4] makes the original k-ary f partial recursive.

2.1step 1.1step 1.2∎

Steps 1.1 and 1.2 prove both directions, so lambda-definability and partial recursiveness are equivalent for f.

False statementConstruction: Literature-sourcedVerification: AI-generatedprecheck passjudge pass (gpt-5.6-terra)audited 2026-09-12Open item page →

FALSE: every total computable function is primitive recursive

Statement

False claim: every total computable function on a finite power of N is primitive recursive.

Facts & Assumptions

Given: The false claim above.

[A1]

Every total computable function on a finite power of N is primitive recursive.

[L1]

The Ackermann function is total computable but not primitive recursive, by The Ackermann function is total computable but not primitive recursive.

Refutation

technique · direct
1.1L1given

By [L1], the Ackermann function A is a total computable function on N2, so it is directly an instance of the universal claim [A1].

2.1A1L1step 1.1∎

The same fact [L1] states that A is not primitive recursive. This contradicts [A1].

False statementConstruction: Literature-sourcedVerification: AI-generatedprecheck passjudge pass (gpt-5.6-terra)audited 2026-09-12Open item page →

FALSE: applying mu-minimization to a computable search predicate always yields a total function

Statement

False claim: if g:N2→N is computable, then the minimization x↦μy g(x,y) is always total.

Facts & Assumptions

Given: The false claim above.

[A1]

If g:N2→N is computable, then x↦μy g(x,y) is total.

[L1]

Unbounded minimization is defined only when some searched value y makes the total function g(x,y) equal to 0, by Unbounded minimization and partial recursive functions.

Refutation

technique · direct
1.1given

Take the total computable function g(x,y)=1 for all x,y∈N. For this g, there is no y with g(x,y)=0 for any input x.

2.1A1L1step 1.1∎

By [L1], the minimization μy g(x,y) is therefore undefined for every x. In particular it is not total, contradicting [A1].

5 · Examples, counterexamples and false statements

None yet.

Sources