HOME

TheInfoList



OR:

Computable functions are the basic objects of study in
computability theory Computability theory, also known as recursion theory, is a branch of mathematical logic, computer science, and the theory of computation that originated in the 1930s with the study of computable functions and Turing degrees. The field has sinc ...
. Computable functions are the formalized analogue of the intuitive notion of
algorithms In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
, in the sense that a function is computable if there exists an algorithm that can do the job of the function, i.e. given an input of the function domain it can return the corresponding output. Computable functions are used to discuss computability without referring to any concrete
model of computation In computer science, and more specifically in computability theory and computational complexity theory, a model of computation is a model which describes how an output of a mathematical function is computed given an input. A model describes how ...
such as
Turing machine A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer alg ...
s or
register machine In mathematical logic and theoretical computer science a register machine is a generic class of abstract machines used in a manner similar to a Turing machine. All the models are Turing equivalent. Overview The register machine gets its name fro ...
s. Any definition, however, must make reference to some specific model of computation but all valid definitions yield the same class of functions. Particular models of computability that give rise to the set of computable functions are the Turing-computable functions and the
general recursive function In mathematical logic and computer science, a general recursive function, partial recursive function, or μ-recursive function is a partial function from natural numbers to natural numbers that is "computable" in an intuitive sense – as well as i ...
s. Before the precise definition of computable function,
mathematician A mathematician is someone who uses an extensive knowledge of mathematics in their work, typically to solve mathematical problems. Mathematicians are concerned with numbers, data, quantity, structure, space, models, and change. History On ...
s often used the informal term ''effectively calculable''. This term has since come to be identified with the computable functions. Note that the effective computability of these functions does not imply that they can be ''efficiently'' computed (i.e. computed within a reasonable amount of time). In fact, for some effectively calculable functions it can be shown that any algorithm that computes them will be very inefficient in the sense that the running time of the algorithm increases exponentially (or even superexponentially) with the length of the input. The fields of feasible computability and
computational complexity In computer science, the computational complexity or simply complexity of an algorithm is the amount of resources required to run it. Particular focus is given to computation time (generally measured by the number of needed elementary operations) ...
study functions that can be computed efficiently. According to the
Church–Turing thesis In computability theory, the Church–Turing thesis (also known as computability thesis, the Turing–Church thesis, the Church–Turing conjecture, Church's thesis, Church's conjecture, and Turing's thesis) is a thesis about the nature of co ...
, computable functions are exactly the functions that can be calculated using a mechanical calculation device given unlimited amounts of time and storage space. Equivalently, this thesis states that a function is computable if and only if it has an algorithm. Note that an algorithm in this sense is understood to be a sequence of steps a person with unlimited time and an unlimited supply of pen and paper could follow. The Blum axioms can be used to define an abstract
computational complexity theory In theoretical computer science and mathematics, computational complexity theory focuses on classifying computational problems according to their resource usage, and relating these classes to each other. A computational problem is a task solved ...
on the set of computable functions. In computational complexity theory, the problem of determining the complexity of a computable function is known as a
function problem In computational complexity theory, a function problem is a computational problem where a single output (of a total function) is expected for every input, but the output is more complex than that of a decision problem. For function problems, the ...
.


Definition

Computability of a function is an informal notion. One way to describe it is to say that a function is computable if its value can be obtained by an effective procedure. With more rigor, a function f:\mathbb N^k\rightarrow\mathbb N is computable if and only if there is an effective procedure that, given any -
tuple In mathematics, a tuple is a finite ordered list (sequence) of elements. An -tuple is a sequence (or ordered list) of elements, where is a non-negative integer. There is only one 0-tuple, referred to as ''the empty tuple''. An -tuple is defi ...
\mathbf x of natural numbers, will produce the value f(\mathbf x). In agreement with this definition, the remainder of this article presumes that computable functions take finitely many
natural numbers In mathematics, the natural numbers are those numbers used for counting (as in "there are ''six'' coins on the table") and ordering (as in "this is the ''third'' largest city in the country"). Numbers used for counting are called '' cardinal ...
as arguments and produce a value which is a single natural number. As counterparts to this informal description, there exist multiple formal, mathematical definitions. The class of computable functions can be defined in many equivalent models of computation, including *
Turing machine A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer alg ...
s * μ-recursive functions *
Lambda calculus Lambda calculus (also written as ''λ''-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation th ...
* Post machines ( Post–Turing machines and tag machines). *
Register machine In mathematical logic and theoretical computer science a register machine is a generic class of abstract machines used in a manner similar to a Turing machine. All the models are Turing equivalent. Overview The register machine gets its name fro ...
s Although these models use different representations for the functions, their inputs, and their outputs, translations exist between any two models, and so every model describes essentially the same class of functions, giving rise to the opinion that formal computability is both natural and not too narrow. These functions are sometimes referred to as "recursive", to contrast with the informal term "computable", a distinction stemming from a 1934 discussion between Kleene and Gödel.R. Soare
Computability and Recursion
(1995). Accessed 9 November 2022.
p.6 For example, one can formalize computable functions as μ-recursive functions, which are
partial function In mathematics, a partial function from a set to a set is a function from a subset of (possibly itself) to . The subset , that is, the domain of viewed as a function, is called the domain of definition of . If equals , that is, if is de ...
s that take finite
tuple In mathematics, a tuple is a finite ordered list (sequence) of elements. An -tuple is a sequence (or ordered list) of elements, where is a non-negative integer. There is only one 0-tuple, referred to as ''the empty tuple''. An -tuple is defi ...
s of
natural number In mathematics, the natural numbers are those numbers used for counting (as in "there are ''six'' coins on the table") and ordering (as in "this is the ''third'' largest city in the country"). Numbers used for counting are called '' cardinal ...
s and return a single natural number (just as above). They are the smallest class of partial functions that includes the constant, successor, and projection functions, and is
closed Closed may refer to: Mathematics * Closure (mathematics), a set, along with operations, for which applying those operations on members always results in a member of the set * Closed set, a set which contains all its limit points * Closed interval, ...
under composition, primitive recursion, and the μ operator. Equivalently, computable functions can be formalized as functions which can be calculated by an idealized computing agent such as a
Turing machine A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer alg ...
or a
register machine In mathematical logic and theoretical computer science a register machine is a generic class of abstract machines used in a manner similar to a Turing machine. All the models are Turing equivalent. Overview The register machine gets its name fro ...
. Formally speaking, a
partial function In mathematics, a partial function from a set to a set is a function from a subset of (possibly itself) to . The subset , that is, the domain of viewed as a function, is called the domain of definition of . If equals , that is, if is de ...
f:\mathbb N^k\rightarrow\mathbb N can be calculated if and only if there exists a computer program with the following properties: # If f(\mathbf x) is defined, then the program will terminate on the input \mathbf x with the value f(\mathbf x) stored in the computer memory. # If f(\mathbf x) is undefined, then the program never terminates on the input \mathbf x.


Characteristics of computable functions

The basic characteristic of a computable function is that there must be a finite procedure (an
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
) telling how to compute the function. The models of computation listed above give different interpretations of what a procedure is and how it is used, but these interpretations share many properties. The fact that these models give equivalent classes of computable functions stems from the fact that each model is capable of reading and mimicking a procedure for any of the other models, much as a
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
is able to read instructions in one computer language and emit instructions in another language. Enderton
977 Year 977 ( CMLXXVII) was a common year starting on Monday (link will display the full calendar) of the Julian calendar. Events By place Europe * May – Boris II, dethroned emperor (''tsar'') of Bulgaria, and his brother Roman m ...
gives the following characteristics of a procedure for computing a computable function; similar characterizations have been given by Turing
936 Year 936 ( CMXXXVI) was a leap year starting on Friday (link will display the full calendar) of the Julian calendar. Events By place Europe * June 19 – At Laon, Louis IV, the 14-year old son of the late King Charles the Simp ...
Rogers
967 Year 967 ( CMLXVII) was a common year starting on Tuesday (link will display the full calendar) of the Julian calendar. Events By place Europe * Spring – Emperor Otto I (the Great) calls for a council at Rome, to present the ne ...
and others. * "There must be exact instructions (i.e. a program), finite in length, for the procedure." Thus every computable function must have a finite program that completely describes how the function is to be computed. It is possible to compute the function by just following the instructions; no guessing or special insight is required. * "If the procedure is given a ''k''-tuple x in the domain of ''f'', then after a finite number of discrete steps the procedure must terminate and produce ''f''(x)." Intuitively, the procedure proceeds step by step, with a specific rule to cover what to do at each step of the calculation. Only finitely many steps can be carried out before the value of the function is returned. * "If the procedure is given a ''k''-tuple x which is not in the domain of ''f'', then the procedure might go on forever, never halting. Or it might get stuck at some point (i.e., one of its instructions cannot be executed), but it must not pretend to produce a value for ''f'' at x." Thus if a value for ''f''(x) is ever found, it must be the correct value. It is not necessary for the computing agent to distinguish correct outcomes from incorrect ones because the procedure is defined as correct if and only if it produces an outcome. Enderton goes on to list several clarifications of these 3 requirements of the procedure for a computable function: # The procedure must theoretically work for arbitrarily large arguments. It is not assumed that the arguments are smaller than the number of atoms in the Earth, for example. # The procedure is required to halt after finitely many steps in order to produce an output, but it may take arbitrarily many steps before halting. No time limitation is assumed. # Although the procedure may use only a finite amount of storage space during a successful computation, there is no bound on the amount of space that is used. It is assumed that additional storage space can be given to the procedure whenever the procedure asks for it. To summarise, based on this view a function is computable if: The field of
computational complexity In computer science, the computational complexity or simply complexity of an algorithm is the amount of resources required to run it. Particular focus is given to computation time (generally measured by the number of needed elementary operations) ...
studies functions with prescribed bounds on the time and/or space allowed in a successful computation.


Computable sets and relations

A set of natural numbers is called computable (synonyms: recursive, decidable) if there is a computable, total function such that for any natural number , if is in and if is not in . A set of natural numbers is called computably enumerable (synonyms: recursively enumerable, semidecidable) if there is a computable function such that for each number , is defined
if and only if In logic and related fields such as mathematics and philosophy, "if and only if" (shortened as "iff") is a biconditional logical connective between statements, where either both statements are true or both are false. The connective is bic ...
is in the set. Thus a set is computably enumerable if and only if it is the domain of some computable function. The word ''enumerable'' is used because the following are equivalent for a nonempty subset of the natural numbers: * is the domain of a computable function. * is the range of a total computable function. If is infinite then the function can be assumed to be
injective In mathematics, an injective function (also known as injection, or one-to-one function) is a function that maps distinct elements of its domain to distinct elements; that is, implies . (Equivalently, implies in the equivalent contrapositi ...
. If a set is the range of a function then the function can be viewed as an enumeration of , because the list will include every element of . Because each
finitary relation In mathematics, a finitary relation over sets is a subset of the Cartesian product ; that is, it is a set of ''n''-tuples consisting of elements ''x'i'' in ''X'i''. Typically, the relation describes a possible connection between the elemen ...
on the natural numbers can be identified with a corresponding set of finite sequences of natural numbers, the notions of computable relation and computably enumerable relation can be defined from their analogues for sets.


Formal languages

'' In computability theory in computer science, it is common to consider
formal language In logic, mathematics, computer science, and linguistics, a formal language consists of words whose letters are taken from an alphabet and are well-formed according to a specific set of rules. The alphabet of a formal language consists of sym ...
s. An alphabet is an arbitrary set. A word on an alphabet is a finite sequence of symbols from the alphabet; the same symbol may be used more than once. For example, binary strings are exactly the words on the alphabet . A language is a subset of the collection of all words on a fixed alphabet. For example, the collection of all binary strings that contain exactly 3 ones is a language over the binary alphabet. A key property of a formal language is the level of difficulty required to decide whether a given word is in the language. Some coding system must be developed to allow a computable function to take an arbitrary word in the language as input; this is usually considered routine. A language is called computable (synonyms: recursive, decidable) if there is a computable function such that for each word over the alphabet, if the word is in the language and if the word is not in the language. Thus a language is computable just in case there is a procedure that is able to correctly tell whether arbitrary words are in the language. A language is computably enumerable (synonyms: recursively enumerable, semidecidable) if there is a computable function such that is defined if and only if the word is in the language. The term ''enumerable'' has the same etymology as in computably enumerable sets of natural numbers.


Examples

The following functions are computable: * Each function with a finite
domain Domain may refer to: Mathematics *Domain of a function, the set of input values for which the (total) function is defined ** Domain of definition of a partial function ** Natural domain of a partial function **Domain of holomorphy of a function * ...
; e.g., any finite sequence of natural numbers. * Each
constant function In mathematics, a constant function is a function whose (output) value is the same for every input value. For example, the function is a constant function because the value of is 4 regardless of the input value (see image). Basic propertie ...
''f'' : N''k'' → N, ''f''(''n''1,...''n''''k'') := ''n''. *
Addition Addition (usually signified by the plus symbol ) is one of the four basic operations of arithmetic, the other three being subtraction, multiplication and division. The addition of two whole numbers results in the total amount or '' sum'' ...
''f'' : N2 → N, ''f''(''n''1,''n''''2'') := ''n''1 + ''n''2 * The
greatest common divisor In mathematics, the greatest common divisor (GCD) of two or more integers, which are not all zero, is the largest positive integer that divides each of the integers. For two integers ''x'', ''y'', the greatest common divisor of ''x'' and ''y'' is ...
of two numbers * A Bézout coefficient of two numbers * The smallest
prime factor A prime number (or a prime) is a natural number greater than 1 that is not a product of two smaller natural numbers. A natural number greater than 1 that is not prime is called a composite number. For example, 5 is prime because the only ways ...
of a number If ''f'' and ''g'' are computable, then so are: ''f'' + ''g'', ''f'' * ''g'', \color f \circ g if ''f'' is unary, max(''f'',''g''), min(''f'',''g''), and many more combinations. The following examples illustrate that a function may be computable though it is not known which algorithm computes it. * The function ''f'' such that ''f''(''n'') = 1 if there is a sequence of ''at least n'' consecutive fives in the decimal expansion of , and ''f''(''n'') = 0 otherwise, is computable. (The function ''f'' is either the constant 1 function, which is computable, or else there is a ''k'' such that ''f''(''n'') = 1 if ''n'' < ''k'' and ''f''(''n'') = 0 if ''n'' ≥ ''k''. Every such function is computable. It is not known whether there are arbitrarily long runs of fives in the decimal expansion of π, so we don't know ''which'' of those functions is ''f''. Nevertheless, we know that the function ''f'' must be computable.) * Each finite segment of an ''un''computable sequence of natural numbers (such as the Busy Beaver function Σ) is computable. E.g., for each natural number ''n'', there exists an algorithm that computes the finite sequence Σ(0), Σ(1), Σ(2), ..., Σ(''n'') — in contrast to the fact that there is no algorithm that computes the ''entire'' Σ-sequence, i.e. Σ(''n'') for all ''n''. Thus, "Print 0, 1, 4, 6, 13" is a trivial algorithm to compute Σ(0), Σ(1), Σ(2), Σ(3), Σ(4); similarly, for any given value of ''n'', such a trivial algorithm ''exists'' (even though it may never be ''known'' or produced by anyone) to compute Σ(0), Σ(1), Σ(2), ..., Σ(''n'').


Church–Turing thesis

The Church–Turing thesis states that any function computable from a procedure possessing the three properties listed above is a computable function. Because these three properties are not formally stated, the Church–Turing thesis cannot be proved. The following facts are often taken as evidence for the thesis: * Many equivalent models of computation are known, and they all give the same definition of computable function (or a weaker version, in some instances). * No stronger model of computation which is generally considered to be effectively calculable has been proposed. The Church–Turing thesis is sometimes used in proofs to justify that a particular function is computable by giving a concrete description of a procedure for the computation. This is permitted because it is believed that all such uses of the thesis can be removed by the tedious process of writing a formal procedure for the function in some model of computation.


Provability

Given a function (or, similarly, a set), one may be interested not only if it is computable, but also whether this can be ''proven'' in a particular proof system (usually
first order In mathematics and other formal sciences, first-order or first order most often means either: * "linear" (a polynomial of degree at most one), as in first-order approximation and other calculus uses, where it is contrasted with "polynomials of hi ...
Peano arithmetic In mathematical logic, the Peano axioms, also known as the Dedekind–Peano axioms or the Peano postulates, are axioms for the natural numbers presented by the 19th century Italian mathematician Giuseppe Peano. These axioms have been used nearl ...
). A function that can be proven to be computable is called provably total. The set of provably total functions is
recursively enumerable In computability theory, a set ''S'' of natural numbers is called computably enumerable (c.e.), recursively enumerable (r.e.), semidecidable, partially decidable, listable, provable or Turing-recognizable if: *There is an algorithm such that the ...
: one can enumerate all the provably total functions by enumerating all their corresponding proofs, that prove their computability. This can be done by enumerating all the proofs of the proof system and ignoring irrelevant ones.


Relation to recursively defined functions

In a function defined by a recursive definition, each value is defined by a fixed first-order formula of other, previously defined values of the same function or other functions, which might be simply constants. A subset of these is the primitive recursive functions. Every such function is provably total: For such a k-ary function ''f'', each value f(n_1, n_2... n_k) can be computed by following the definition backwards, iteratively, and after finite number of iteration (as can be easily proven), a constant is reached. The converse is not true, as not every provably total function is primitive recursive. Indeed, one can enumerate all the primitive recursive functions and define a function ''en'' such that for all ''n'', ''m'': ''en''(''n'',''m'') = ''f''''n''(''m''), where ''f''''n'' is the n-th primitive recursive function (for k-ary functions, this will be set to ''f''''n''(''m'',''m''...''m'')). Now, ''g''(''n'') = ''en''(''n'',''n'')+1 is provably total but not primitive recursive, by a diagonalization argument: had there been a ''j'' such that ''g'' = ''f''''j'', we would have got ''g''(''j'') = ''en''(''j'',''j'')+1 = ''f''''j'' (''j'')+1= ''g''(''j'')+1, a contradiction. (The Gödel numbers of all primitive recursive functions ''can'' be enumerated by a primitive recursive function, though the primitive recursive functions' values cannot.) One such function, which is provable total but not primitive recursive, is the
Ackermann function In computability theory, the Ackermann function, named after Wilhelm Ackermann, is one of the simplest and earliest-discovered examples of a total computable function that is not primitive recursive. All primitive recursive functions are total ...
: since it is recursively defined, it is indeed easy to prove its computability (However, a similar diagonalization argument can also be built for all functions defined by recursive definition; thus, there are provable total functions that cannot be defined recursively ).


Total functions that are not provably total

In a
sound In physics, sound is a vibration that propagates as an acoustic wave, through a transmission medium such as a gas, liquid or solid. In human physiology and psychology, sound is the ''reception'' of such waves and their ''perception'' by ...
proof system, every provably total function is indeed total, but the converse is not true: in every first-order proof system that is strong enough and sound (including Peano arithmetic), one can prove (in another proof system) the existence of total functions that cannot be proven total in the proof system. If the total computable functions are enumerated via the Turing machines that produces them, then the above statement can be shown, if the proof system is sound, by a similar diagonalization argument to that used above, using the enumeration of provably total functions given earlier. One uses a Turing machine that enumerates the relevant proofs, and for every input ''n'' calls ''f''''n''(''n'') (where ''f''''n'' is ''n''-th function by ''this'' enumeration) by invoking the Turing machine that computes it according to the n-th proof. Such a Turing machine is guaranteed to halt if the proof system is sound.


Uncomputable functions and unsolvable problems

Every computable function has a finite procedure giving explicit, unambiguous instructions on how to compute it. Furthermore, this procedure has to be encoded in the finite alphabet used by the computational model, so there are only countably many computable functions. For example, functions may be encoded using a string of bits (the alphabet ). The real numbers are uncountable so most real numbers are not computable. See computable number. The set of finitary functions on the natural numbers is uncountable so most are not computable. Concrete examples of such functions are Busy beaver,
Kolmogorov complexity In algorithmic information theory (a subfield of computer science and mathematics), the Kolmogorov complexity of an object, such as a piece of text, is the length of a shortest computer program (in a predetermined programming language) that produ ...
, or any function that outputs the digits of a noncomputable number, such as
Chaitin's constant In the computer science subfield of algorithmic information theory, a Chaitin constant (Chaitin omega number) or halting probability is a real number that, informally speaking, represents the probability that a randomly constructed program will ...
. Similarly, most subsets of the natural numbers are not computable. The
halting problem In computability theory, the halting problem is the problem of determining, from a description of an arbitrary computer program and an input, whether the program will finish running, or continue to run forever. Alan Turing proved in 1936 that a ...
was the first such set to be constructed. The
Entscheidungsproblem In mathematics and computer science, the ' (, ) is a challenge posed by David Hilbert and Wilhelm Ackermann in 1928. The problem asks for an algorithm that considers, as input, a statement and answers "Yes" or "No" according to whether the state ...
, proposed by
David Hilbert David Hilbert (; ; 23 January 1862 – 14 February 1943) was a German mathematician, one of the most influential mathematicians of the 19th and early 20th centuries. Hilbert discovered and developed a broad range of fundamental ideas in many ...
, asked whether there is an effective procedure to determine which mathematical statements (coded as natural numbers) are true. Turing and Church independently showed in the 1930s that this set of natural numbers is not computable. According to the Church–Turing thesis, there is no effective procedure (with an algorithm) which can perform these computations.


Extensions of computability


Relative computability

The notion of computability of a function can be relativized to an arbitrary
set Set, The Set, SET or SETS may refer to: Science, technology, and mathematics Mathematics *Set (mathematics), a collection of elements *Category of sets, the category whose objects and morphisms are sets and total functions, respectively Electro ...
of
natural number In mathematics, the natural numbers are those numbers used for counting (as in "there are ''six'' coins on the table") and ordering (as in "this is the ''third'' largest city in the country"). Numbers used for counting are called '' cardinal ...
s ''A''. A function ''f'' is defined to be computable in ''A'' (equivalently ''A''-computable or computable relative to ''A'') when it satisfies the definition of a computable function with modifications allowing access to ''A'' as an
oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word ...
. As with the concept of a computable function relative computability can be given equivalent definitions in many different models of computation. This is commonly accomplished by supplementing the model of computation with an additional primitive operation which asks whether a given integer is a member of ''A''. We can also talk about ''f'' being computable in ''g'' by identifying ''g'' with its graph.


Higher recursion theory

Hyperarithmetical theory In recursion theory, hyperarithmetic theory is a generalization of Turing computability. It has close connections with definability in second-order arithmetic and with weak systems of set theory such as Kripke–Platek set theory. It is an import ...
studies those sets that can be computed from a computable ordinal number of iterates of the Turing jump of the empty set. This is equivalent to sets defined by both a universal and existential formula in the language of second order arithmetic and to some models of Hypercomputation. Even more general recursion theories have been studied, such as E-recursion theory in which any set can be used as an argument to an E-recursive function.


Hyper-computation

Although the Church–Turing thesis states that the computable functions include all functions with algorithms, it is possible to consider broader classes of functions that relax the requirements that algorithms must possess. The field of Hypercomputation studies models of computation that go beyond normal Turing computation.


See also

* Computable number *
Effective method In logic, mathematics and computer science, especially metalogic and computability theory, an effective method Hunter, Geoffrey, ''Metalogic: An Introduction to the Metatheory of Standard First-Order Logic'', University of California Press, 1971 or ...
* Theory of computation *
Recursion theory Computability theory, also known as recursion theory, is a branch of mathematical logic, computer science, and the theory of computation that originated in the 1930s with the study of computable functions and Turing degrees. The field has sinc ...
* Turing degree *
Arithmetical hierarchy In mathematical logic, the arithmetical hierarchy, arithmetic hierarchy or Kleene–Mostowski hierarchy (after mathematicians Stephen Cole Kleene and Andrzej Mostowski) classifies certain sets based on the complexity of formulas that define th ...
* Hypercomputation *
Super-recursive algorithm In computability theory, super-recursive algorithms are a generalization of ordinary algorithms that are more powerful, that is, compute more than Turing machines. The term was introduced by Mark Burgin, whose book "Super-recursive algorithms" dev ...
* Semicomputable function


References

*Cutland, Nigel. ''Computability''. Cambridge University Press, 1980. * Enderton, H.B. Elements of recursion theory. ''Handbook of Mathematical Logic'' (North-Holland 1977) pp. 527–566. *Rogers, H. ''Theory of recursive functions and effective computation'' (McGraw–Hill 1967). * Turing, A. (1937)
On Computable Numbers, With an Application to the Entscheidungsproblem
''Proceedings of the London Mathematical Society'', Series 2, Volume 42 (1937), p.230–265. Reprinted in M. Davis (ed.), ''The Undecidable'', Raven Press, Hewlett, NY, 1965. {{Mathematical logic Computability theory Theory of computation