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 since e ...
, a set ''S'' of
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 n ...
is called computably enumerable (c.e.), recursively enumerable (r.e.), semidecidable, partially decidable, listable, provable or Turing-recognizable if:
*There is an
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
such that the set of input numbers for which the algorithm halts is exactly ''S''.
Or, equivalently,
*There is an
algorithm that enumerates the members of ''S''. That means that its output is simply a list of all the members of ''S'': ''s''
1, ''s''
2, ''s''
3, ... . If ''S'' is infinite, this algorithm will run forever.
The first condition suggests why the term ''semidecidable'' is sometimes used. More precisely, if a number is in the set, one can ''decide'' this by running the algorithm, but if the number is not in the set, the algorithm runs forever, and no information is returned. A set that is "completely decidable" is a
computable set
In computability theory, a set of natural numbers is called computable, recursive, or decidable if there is an algorithm which takes a number as input, terminates after a finite amount of time (possibly depending on the given number) and correctly ...
. The second condition suggests why ''computably enumerable'' is used. The abbreviations c.e. and r.e. are often used, even in print, instead of the full phrase.
In
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 by ...
, the
complexity class
In computational complexity theory, a complexity class is a set of computational problems of related resource-based complexity. The two most commonly analyzed resources are time and memory.
In general, a complexity class is defined in terms of ...
containing all computably enumerable sets is
RE. In recursion theory, the
lattice
Lattice may refer to:
Arts and design
* Latticework, an ornamental criss-crossed framework, an arrangement of crossing laths or other thin strips of material
* Lattice (music), an organized grid model of pitch ratios
* Lattice (pastry), an orna ...
of c.e. sets under inclusion is denoted
.
Formal definition
A set ''S'' of natural numbers is called computably enumerable if there is a
partial computable function
Computable functions are the basic objects of study in computability theory. Computable functions are the formalized analogue of the intuitive notion of algorithms, in the sense that a function is computable if there exists an algorithm that can do ...
whose
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
* Do ...
is exactly ''S'', meaning that the function is defined if and only if its input is a member of ''S''.
Equivalent formulations
The following are all equivalent properties of a set ''S'' of natural numbers:
;Semidecidability
:
:*The set ''S'' is computably enumerable. That is, ''S'' is the domain (co-range) of a partial computable function.
:*The set ''S'' is
(referring to the
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 ...
).
:*There is a partial computable function ''f'' such that:
;Enumerability
:
:*The set ''S'' is the range of a partial computable function.
:*The set ''S'' is the range of a total computable function, or empty. If ''S'' is infinite, the function can be chosen 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 contrapositiv ...
.
:*The set ''S'' is the range of a
primitive recursive function
In computability theory, a primitive recursive function is roughly speaking a function that can be computed by a computer program whose loops are all "for" loops (that is, an upper bound of the number of iterations of every loop can be determined ...
or empty. Even if ''S'' is infinite, repetition of values may be necessary in this case.
;Diophantine
:
:*There is a polynomial ''p'' with integer coefficients and variables ''x'', ''a'', ''b'', ''c'', ''d'', ''e'', ''f'', ''g'', ''h'', ''i'' ranging over the natural numbers such that
(The number of bound variables in this definition is the best known so far; it might be that a lower number can be used to define all Diophantine sets.)
:*There is a polynomial from the integers to the integers such that the set ''S'' contains exactly the non-negative numbers in its range.
The equivalence of semidecidability and enumerability can be obtained by the technique of
dovetailing.
The Diophantine characterizations of a computably enumerable set, while not as straightforward or intuitive as the first definitions, were found by
Yuri Matiyasevich
Yuri Vladimirovich Matiyasevich, (russian: Ю́рий Влади́мирович Матиясе́вич; born 2 March 1947 in Leningrad) is a Russian mathematician and computer scientist. He is best known for his negative solution of Hilbert's t ...
as part of the negative solution to
Hilbert's Tenth Problem
Hilbert's tenth problem is the tenth on the list of mathematical problems that the German mathematician David Hilbert posed in 1900. It is the challenge to provide a general algorithm which, for any given Diophantine equation (a polynomial equat ...
. Diophantine sets predate recursion theory and are therefore historically the first way to describe these sets (although this equivalence was only remarked more than three decades after the introduction of computably enumerable sets).
Examples
* Every
computable set
In computability theory, a set of natural numbers is called computable, recursive, or decidable if there is an algorithm which takes a number as input, terminates after a finite amount of time (possibly depending on the given number) and correctly ...
is computably enumerable, but it is not true that every computably enumerable set is computable. For computable sets, the algorithm must also say if an input is ''not'' in the set – this is not required of computably enumerable sets.
* A
recursively enumerable language
In mathematics, logic and computer science, a formal language is called recursively enumerable (also recognizable, partially decidable, semidecidable, Turing-acceptable or Turing-recognizable) if it is a recursively enumerable subset in the set o ...
is a computably enumerable subset of a
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 symb ...
.
* The set of all provable sentences in an effectively presented axiomatic system is a computably enumerable set.
*
Matiyasevich's theorem states that every computably enumerable set is a
Diophantine set
In mathematics, a Diophantine equation is an equation of the form ''P''(''x''1, ..., ''x'j'', ''y''1, ..., ''y'k'') = 0 (usually abbreviated ''P''(', ') = 0) where ''P''(', ') is a polynomial with integer coefficients, where ''x''1, ..., '' ...
(the converse is trivially true).
* The
simple set In computability theory, a subset of the natural numbers is called simple if it is computably enumerable (c.e.) and co-infinite (i.e. its complement is infinite), but every infinite subset of its complement is not c.e.. Simple sets are examples of ...
s are computably enumerable but not computable.
* The
creative set In computability theory, productive sets and creative sets are types of sets of natural numbers that have important applications in mathematical logic. They are a standard topic in mathematical logic textbooks such as and .
Definition and example ...
s are computably enumerable but not computable.
* Any
productive set In computability theory, productive sets and creative sets are types of sets of natural numbers that have important applications in mathematical logic. They are a standard topic in mathematical logic textbooks such as and .
Definition and example ...
is not computably enumerable.
* Given a
Gödel numbering
In mathematical logic, a Gödel numbering is a function that assigns to each symbol and well-formed formula of some formal language a unique natural number, called its Gödel number. The concept was developed by Kurt Gödel for the proof of his ...
of the computable functions, the set
(where
is the
Cantor pairing function
In mathematics, a pairing function is a process to uniquely encode two natural numbers into a single natural number.
Any pairing function can be used in set theory to prove that integers and rational numbers have the same cardinality as natural n ...
and
indicates
is defined) is computably enumerable (cf. picture for a fixed ''x''). This set encodes 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 g ...
as it describes the input parameters for which each
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 algori ...
halts.
* Given a Gödel numbering
of the computable functions, the set
is computably enumerable. This set encodes the problem of deciding a function value.
* Given a partial function ''f'' from the natural numbers into the natural numbers, ''f'' is a partial computable function if and only if the graph of ''f'', that is, the set of all pairs
such that ''f''(''x'') is defined, is computably enumerable.
Properties
If ''A'' and ''B'' are computably enumerable sets then ''A'' ∩ ''B'', ''A'' ∪ ''B'' and ''A'' × ''B'' (with the ordered pair of natural numbers mapped to a single natural number with the
Cantor pairing function
In mathematics, a pairing function is a process to uniquely encode two natural numbers into a single natural number.
Any pairing function can be used in set theory to prove that integers and rational numbers have the same cardinality as natural n ...
) are computably enumerable sets. The
preimage
In mathematics, the image of a function is the set of all output values it may produce.
More generally, evaluating a given function f at each element of a given subset A of its domain produces a set, called the "image of A under (or through) ...
of a computably enumerable set under a partial computable function is a computably enumerable set.
A set
is called co-computably-enumerable or co-c.e. if its
complement
A complement is something that completes something else.
Complement may refer specifically to:
The arts
* Complement (music), an interval that, when added to another, spans an octave
** Aggregate complementation, the separation of pitch-clas ...
is computably enumerable. Equivalently, a set is co-r.e. if and only if it is at level
of the arithmetical hierarchy. The complexity class of co-computably-enumerable sets is denoted co-RE.
A set ''A'' is
computable
Computability is the ability to solve a problem in an effective manner. It is a key topic of the field of computability theory within mathematical logic and the theory of computation within computer science. The computability of a problem is close ...
if and only if both ''A'' and the complement of ''A'' are computably enumerable.
Some pairs of computably enumerable sets are
effectively separable In computability theory, two disjoint sets of natural numbers are called computably inseparable or recursively inseparable if they cannot be "separated" with a computable set.Monk 1976, p. 100 These sets arise in the study of computability th ...
and some are not.
Remarks
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 comp ...
, any effectively calculable function is calculable by 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 algori ...
, and thus a set ''S'' is computably enumerable if and only if there is some
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
which yields an enumeration of ''S''. This cannot be taken as a formal definition, however, because the Church–Turing thesis is an informal conjecture rather than a formal axiom.
The definition of a computably enumerable set as the ''domain'' of a partial function, rather than the ''range'' of a total computable function, is common in contemporary texts. This choice is motivated by the fact that in generalized recursion theories, such as
α-recursion theory, the definition corresponding to domains has been found to be more natural. Other texts use the definition in terms of enumerations, which is equivalent for computably enumerable sets.
See also
*
RE (complexity) In computability theory and computational complexity theory, RE ( recursively enumerable) is the class of decision problems for which a 'yes' answer can be verified by a Turing machine in a finite amount of time. Informally, it means that if the an ...
*
Recursively enumerable language
In mathematics, logic and computer science, a formal language is called recursively enumerable (also recognizable, partially decidable, semidecidable, Turing-acceptable or Turing-recognizable) if it is a recursively enumerable subset in the set o ...
*
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 ...
References
* Rogers, H. ''The Theory of Recursive Functions and Effective Computability'',
MIT Press
The MIT Press is a university press affiliated with the Massachusetts Institute of Technology (MIT) in Cambridge, Massachusetts (United States). It was established in 1962.
History
The MIT Press traces its origins back to 1926 when MIT publish ...
. ; .
* Soare, R. Recursively enumerable sets and degrees. ''Perspectives in Mathematical Logic.''
Springer-Verlag
Springer Science+Business Media, commonly known as Springer, is a German multinational publishing company of books, e-books and peer-reviewed journals in science, humanities, technical and medical (STM) publishing.
Originally founded in 1842 in ...
, Berlin, 1987. .
* Soare, Robert I. Recursively enumerable sets and degrees. ''Bull. Amer. Math. Soc.'' 84 (1978), no. 6, 1149–1181.
{{Mathematical logic
Computability theory
Theory of computation