Kleene's recursion theorem

Kleene's recursion theorem

In computability theory, Kleene's recursion theorems are a pair of fundamental results about the application of computable functions to their own descriptions. The theorems were first proved by Stephen Kleene in 1938.

This article uses the convention that phi is a scheme for indexing partial recursive functions (that is, a Gödel numbering) and that the function corresponding to index "e" is phi_e. The notation f simeq g indicates that, for each input, the partial functions "f" and "g" are either both undefined or are both defined and share the same value.

The second recursion theorem

The second recursion theorem is closely related to definitions of computable functions using recursion. Because it is more well known than the first recursion theorem, it is sometimes called just the recursion theorem.

:The second recursion theorem. If "F" is a total recursive function then there is an index "e" such that phi_e simeq phi_{F(e)}.

For example, if "g" and "h" are computable functions then a recursive definition for a computable function such as

:f(0,y) simeq g(y),,

:f(x+1,y) simeq h(f(x,y),x,y),,

can be converted to a computable function "F(e)" that takes an index for a program "e" and returns an index "F(e)" such that

:phi_{F(e)}(0,y) simeq g(y),,

:phi_{F(e)}(x+1,y) simeq h(phi_e(x,y),x,y).,

The recursion theorem says that there is an index "e" such that phi_e simeq phi_{F(e)}, in other words, an index for a computable function "f" satisfying the original recursion equations. Such a function is known as a fixed point of the recursion equations; the recursion theorem is sometimes called the Fixed point theorem for this reason. The theorem does not guarantee that "e" is an index for the smallest fixed point of the recursion equations; this is the role of the first recursion theorem described below.

Proof of the second recursion theorem

Let "f" be any computable function. Let "h" be a total computable function such that for all "x", if phi_x(x) halts then phi_{h(x)} = phi_{phi_x(x)}, and if phi_x(x) doesn't halt then phi_{h(x)}, doesn't halt (this is denoted phi_{h(x)} simeq phi_{phi_x(x)}). Given input "x", the function "h" outputs the index of a program which first computes phi_{x}(x), and, if that computation gives an output, uses its output as the index of a computable function to be simulated. The function "h" can be constructed from partial computable function g(x,y)=phi_{phi_x(x)}(y) and s-m-n theorem: for each "x", h(x) is the index of a program which computes the function y mapsto g(x,y).

Once "h" is constructed, take "e" to be an index of the composition f circ h, which is a total computable function. Then phi_{h(e)} simeq phi_{phi_e(e)} by the definition of "h".But, because "e" is an index of f circ h, phi_e(e) = (f circ h)(e), and thus phi_{phi_e(e)} simeq phi_{f(h(e))}. Hence phi_n simeq phi_{f(n)} for n = h(e).

Application to Quines

One informal interpretation of the second recursion theorem is that any partial computable function can guess an index for itself. This follows from the following corollary of the theorem.

:Corollary. For any partial recursive function "Q"("x","y") there is an index "p" such that phi_p simeq lambda y.Q(p,y).

The corollary is proved by letting F(p) be a function that gives an index for lambda y.Q(p,y).

The corollary shows that for any computable function "Q" of two arguments there is a program that takes "one" argument and evaluates "Q" with the index of that very program as the first argument and the given argument as the second. Note that this program is able to generate its index from information built in to the program; it does not require any external resources in order to find the index.

A classic example is the function "Q"("x","y") = "x". The corresponding index "p" in this case yields a computable function that outputs its own index when applied to any value. When expressed as computer programs, such indices are known as quines. Although the proof of the theorem can be used to generate one quine, students sometimes challenge themselves to find simpler ones than the proof provides.

The following example in Lisp illustrates how the "p" in the corollary can be effectively produced from the function "Q". The function "s11" in the code is the function of that name produced by the S-m-n theorem.

; Q can be changed to any two-argument function. (setq Q '(lambda (x y) x)) (setq s11 '(lambda (f x) (list 'lambda '(y) (list f x 'y)))) (setq n (list 'lambda '(x y) (list Q (list s11 'x 'x) 'y))) (setq p (eval (list s11 n n))) ; The results of the following expressions should be the same. ; φ_p(nil) (eval (list p nil)) ; Q(p, nil) (eval (list Q p nil))

Fixed point free functions

A function "F" such that phi_e ot simeq phi_{F(e)} for all "e" is called fixed point free. The recursion theorem asserts that no computable function is fixed point free. Arslanov's completeness criterion states that the only recursively enumerable Turing degree that computes a fixed point free function is 0′, the degree of the halting problem.

The first recursion theorem

The first recursion theorem is related to fixed points determined by enumeration operators, which are a computable analogue of inductive definitions. An enumeration operator is a set of pairs ("A","n") where "A" is a (code for a) finite set of numbers and "n" is a single natural number. Any enumeration operator Φ determines a function from sets of naturals to sets of naturals given by:Phi(X) = { n mid exists A subseteq X [(A,n) in Phi] }.These operators are important in the study of enumeration reducibility. A recursive operator is an enumeration operator which when given the graph of a partial recursive function always returns the graph of a partial recursive function.

:First recursion theorem. The following statements hold.:# For any computable enumeration operator Φ there is a recursively enumerable set "A" such that Φ("A") = "A" and "A" is the smallest set with this property.:# For any recursive operator Ψ there is a partial computable function φ such that Ψ(φ) = φ and φ is the smallest partial computable function with this property.

One difference between the first and second recursion theorems is that the fixed points obtained by the first recursion theorem are guaranteed to be least fixed points, while those obtained from the second recursion theorem may not be least fixed points. Rogers [1967] uses the term weak recursion theorem for the first recursion theorem and strong recursion theorem for the second recursion theorem.

Generalized theorem by A.I. Mal'tsev

A.I. Mal'tsev proved a generalized version of the recursion theorem for any set with a precomplete numbering. A Gödel numbering is a precomplete numbering on the set of computable functions so the generalized theorem yields the Kleene recursion theorem as a special case.

Given a precomplete numbering u then for any partial computable function f with two parameters there exists a total computable function t with one parameter such that

:forall n in mathbb{N} : u circ f(n,t(n)) = u circ t(n).

References

* Kleene, Stephen, "On notation for ordinal numbers," The Journal of Symbolic Logic, 3 (1938), 150-155.

* Rogers, H. "The Theory of Recursive Functions and Effective Computability", MIT Press. ISBN 0-262-68052-1; ISBN 0-07-053522-1

See also

* Denotational semantics, where another least fixed point theorem is used for the same purpose as the first recursion theorem.
* Fixed point combinators, which are used in lambda calculus for the same purpose as the first recursion theorem.
* The Church-Turing thesis, by which all these approaches act on equivalent fields.


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • Recursion theorem — can refer to: * The recursion theorem in set theory * Kleene s recursion theorem, also called the fixed point theorem, in computability theory …   Wikipedia

  • Recursion theory — Recursion theory, also called computability theory, is a branch of mathematical logic that originated in the 1930s with the study of computable functions and Turing degrees. The field has grown to include the study of generalized computability… …   Wikipedia

  • Stephen Cole Kleene — Infobox Scientist name = Stephen Kleene caption = birth date = birth date|1909|1|5 birth place = USA death date = death date and age|1994|1|25|1909|1|5 death place = residence = USA nationality = USA field = Mathematics work institutions =… …   Wikipedia

  • Smn theorem — In computability theory the smn theorem, (also called the translation lemma, parameter theorem, or parameterization theorem) is a basic result about programming languages (and, more generally, Gödel numberings of the computable functions) (Soare… …   Wikipedia

  • Fixed point theorem — In mathematics, a fixed point theorem is a result saying that a function F will have at least one fixed point (a point x for which F ( x ) = x ), under some conditions on F that can be stated in general terms. Results of this kind are amongst the …   Wikipedia

  • Theorem — The Pythagorean theorem has at least 370 known proofs[1] In mathematics, a theorem is a statement that has been proven on the basis of previously established statements, such as other theorems, and previously accepted statements …   Wikipedia

  • Gödel's completeness theorem — is a fundamental theorem in mathematical logic that establishes a correspondence between semantic truth and syntactic provability in first order logic. It was first proved by Kurt Gödel in 1929. A first order formula is called logically valid if… …   Wikipedia

  • Löwenheim–Skolem theorem — In mathematical logic, the Löwenheim–Skolem theorem, named for Leopold Löwenheim and Thoralf Skolem, states that if a countable first order theory has an infinite model, then for every infinite cardinal number κ it has a model of size κ. The… …   Wikipedia

  • List of mathematical logic topics — Clicking on related changes shows a list of most recent edits of articles to which this page links. This page links to itself in order that recent changes to this page will also be included in related changes. This is a list of mathematical logic …   Wikipedia

  • List of mathematics articles (K) — NOTOC K K approximation of k hitting set K ary tree K core K edge connected graph K equivalence K factor error K finite K function K homology K means algorithm K medoids K minimum spanning tree K Poincaré algebra K Poincaré group K set (geometry) …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”