Recursive Functions and Representability/Recursive Functions and Church's Thesis

Lesson 8.12,173 words

Recursive Functions and Church's Thesis

The recursive functions are the formal counterpart of the effectively computable ones: built from three initial functions by composition, primitive recursion, and minimization, and equivalently the functions representable in a finitely axiomatized arithmetic. Church's thesis identifies the class with effective calculability; Kleene's normal form theorem and the unsolvable halting problem place the recursive sets strictly inside the recursively enumerable ones.

╌╌╌╌

The incompleteness and undecidability theorems were stated for recursive sets and functions and then proved by exhibiting Gödel numberings under which the relevant syntactic operations came out recursive. That argument used the class without examining it.

Two definitions of recursive are in play, and they define the same class. One is internal to logic — representability in a weak arithmetic — and was established while building the subtheory. The other is the operator calculus of initial functions and closure rules that matches the standard presentation of computability. Church's thesis then identifies both with effective calculability.

Recursive relations and functions

A relation on is recursive when it can be captured, positively and negatively, by a formula deducible from a finite arithmetic. The reference theory is , the finite list of arithmetic axioms whose deductive closure decides every numeral instance of a suitable formula.

Representability differs from definability in exactly one respect: definability asks whether a sentence is true in the standard structure , representability asks whether it is deducible from the axioms. Because is a model of , deducibility implies truth, so every representable relation is definable; the converse fails, and the gap between the two is the entire subject of incompleteness.

Functions reduce to relations through their graphs. A function is functionally represented by when proves not only but also the uniqueness clause .

A representable function is automatically functionally representable: given a formula representing the graph, the sharpened formula

picks out the least witness and proves its uniqueness. So there is no distinction between relations that happen to be functions and functions proper.

The initial functions and the closure operators

The representable functions form a class closed under three operations, starting from three primitive functions. This is the operator characterization of recursiveness, and it is what the standard development of computability takes as its definition.

The initial functions are each representable by an equation, hence recursive outright:

  • Zero. The constant , and more generally each constant function , represented by .
  • Successor. , represented by .
  • Projections. for , represented by .

The class is closed under three operators. Each closure fact was proved for by constructing, from formulas representing the inputs, a formula representing the output.

The minimization (or least-zero) operator is the one that reaches beyond primitive recursion. A function built from the initial functions using only composition and primitive recursion is primitive recursive; adding applied to primitive recursive functions, with the totality proviso guaranteeing a zero exists, yields the full class of recursive functions. Every primitive recursive function is total, whereas can be applied even when no zero is guaranteed, producing the partial recursive functions discussed below.

The four classes nest. The three initial functions generate the primitive recursive functions under composition and primitive recursion; adding total minimization gives the recursive functions; dropping the totality proviso on minimization gives the partial recursive functions.
The recursive functions are the least class containing the three initial functions and closed under composition, primitive recursion, and minimization; the primitive recursive functions omit the last operator.

Primitive recursion computes a function's value at from its value at together with the coding of all earlier values. Unrolling the recursion is a finite computation of exactly steps.

Primitive recursion computes the value at each argument from the previous value by applying g, a finite unrolling that terminates in a steps.

The catalog built during the subtheory construction supplies the concrete instances: addition, multiplication, the sequence-coding and decoding functions, the length and concatenation functions, the prime-listing function, and the bounded quantifiers. Every relation with a quantifier-free definition in is representable, and the representable relations are closed under union, intersection, complement, and bounded quantification.

Characteristic functions and relations

A relation and its characteristic function are recursive together, so the operator calculus applies to sets as well as to functions.

One direction: if represents , then represents . The other: if represents , then represents the graph of . Deciding membership in and computing are the same problem in two notations.

Church's thesis

Recursiveness was defined syntactically, through deducibility. The claim that it is the right formalization of effectively computable is not a theorem — the informal notion has no mathematical definition to prove things about — but a judgment supported by convergent evidence.

The situation parallels the definition of continuity: a precise notion is offered as the counterpart of an intuitive one, and one asks whether the fit is good. If anything the recursive class is too generous, admitting decision procedures whose running time and memory make any actual implementation absurd. Recursiveness models decidability in an idealized setting where computation length and storage are ignored.

Two lines of evidence support the identification:

  • Nothing decidable has escaped. Every relation mathematicians have judged decidable has turned out to be recursive.
  • Every model of computation agrees. Turing machines (1936), Post's systems, the -calculus, and register machines all generate exactly the recursive functions. Because Turing's analysis of effective procedure is the most direct, the principle is often called the Church–Turing thesis.

Register machines

The register machine, one of the equivalent models, is concrete and easy to program. A register machine has finitely many registers , each holding a natural number of unbounded size, and runs a fixed program of three instruction types.

InstructionWrittenEffect
Incrementadd to register , then continue
Decrementif register is nonzero, subtract and skip the next instruction; if zero, continue
Transferjump instructions forward () or backward (); halt if none exists

The decrement instruction's conditional skip is the machine's only branching mechanism, and it is enough. A short program clears a register by decrementing in a loop; a longer one moves a number between registers; addition of two registers takes twenty-seven instructions. A partial function is calculated by a program when, started with in the first registers, the machine halts with in register if is defined, and runs forever if it is not.

Both directions go through arithmetization. To show a machine-calculable function is recursive, one assigns Gödel numbers to programs and to sequences of memory configurations — exactly as deductions were arithmetized — and checks that codes a halting computation of program on input is a recursive relation. The converse re-runs the catalog with calculable by a register machine in place of representable, using that the recursive functions are generated from a fixed handful by composition and minimization. Deductions and computations arithmetize the same way: each is a finite sequence of steps, and each step is checkable by a recursive test.

Recursively enumerable sets

Below the recursive sets lies a strictly larger class: the sets one can list, but not necessarily decide.

An r.e. set is one existential quantifier away from recursive, and several equivalent forms make this precise.

Every recursive relation is r.e., since a quantifier over a variable that does not occur adds nothing. The converse fails in general, and Post's theorem gives the criterion for when it holds.

If is recursive, so is its complement, and both are r.e. Conversely, run the two enumerations of and in parallel; every appears in exactly one, and whichever list it surfaces in decides membership. So a set fails to be recursive precisely when it is r.e. but its complement is not.

Every recursive set is recursively enumerable; the halting set K lies in the r.e. region but outside the recursive core, and its complement escapes the r.e. class entirely.

The normal form theorem

Every recursive function is computed by a single universal scheme: search for a witness, then read off the answer. Kleene's normal form theorem builds this scheme out of one recursive relation and one recursive extraction function.

For each there is a recursive -ary relation and a recursive function such that, taking to be the Gödel number of a formula weakly representing ,

The relation holds when codes a suitable formula and codes a deduction from that pins the output value; extracts that value from . Only the search operator stands between the recursive relation and the value of .

The universal scheme takes a program number e and input a, searches for the least witness k in the recursive relation, and reads the output off k with U; one machine computes every one-place recursive function.

Extending the scheme to functions that may diverge gives the recursive partial functions: for each index , the -place partial function

undefined when no such exists. Every recursive partial function equals for some , and this list indexes all one-place recursive partial functions. The universal function , which runs program on input , is itself a recursive partial function — the formal counterpart of an operating system that takes a program and its data and executes one on the other.

The halting problem

The index list yields an explicit r.e. non-recursive set, by diagonalization.

is r.e. because , a recursive relation with one quantifier. Suppose were recursive. Then the function

would be total and recursive, hence for some . But (since is total, is defined), so , contradicting . The complement is therefore not r.e., and witnesses the strict inclusion recursive r.e.

Algorithm:Enumerate-K\textsc{Enumerate-}K — lists exactly the halting inputs, never terminating on non-members
  1. 1
    for each step t=0,1,2,t = 0, 1, 2, \dots do
  2. 2
    for each ata \le t do
  3. 3
    if a,a,tT1\langle a, a, t\rangle \in T_1 then
  4. 4
    output aa
    program a halts on input a within the bound coded by t

This procedure lists every member of , but no analogous procedure lists : a machine that could enumerate the non-halting inputs would, combined with , decide , which Post's theorem forbids. The diagonal set , where runs through all r.e. sets, is exactly , and it agrees with no because .

Recursiveness is representability

The two definitions of recursive close into a single equivalence. The operator calculus, register machines, Turing machines, and representability in all cut out the same class.

The two definitions of recursive coincide: representability in the finite arithmetic and closure under the operator calculus name the same class, with register and Turing machines confirming the fit from the computability side.

This equivalence is what the incompleteness argument rested on. Because the syntactic operations of a formal theory are recursive, they are representable, so a strong enough arithmetic can talk about its own provability — and the fixed-point construction then produces a true sentence the theory cannot prove. Read from the computability side, the same fact says is not recursively enumerable: were it r.e., would be, since membership in reduces to truth of an arithmetic sentence. No consistent, recursively axiomatized theory captures all of arithmetic truth.

One gap remains in this chain. The representability of the syntactic operations rested on the sequence-coding functions, and those were built with exponentiation and the prime-power encoding. Running the argument inside the language with addition and multiplication only requires representing exponentiation without the symbol , using a sequence encoder assembled from and alone.

╌╌ END ╌╌