Rice's Theorem
   HOME
*





Rice's Theorem
In computability theory, Rice's theorem states that all non-trivial semantic properties of programs are undecidable. A semantic property is one about the program's behavior (for instance, does the program terminate for all inputs), unlike a syntactic property (for instance, does the program contain an if-then-else statement). A property is ''non-trivial'' if it is neither true for every partial computable function, nor false for every partial computable function. Rice's theorem can also be put in terms of functions: for any non-trivial property of partial functions, no general and effective method can decide whether an algorithm computes a partial function with that property. Here, a property of partial functions is called ''trivial'' if it holds for all partial computable functions or for none, and an effective decision method is called ''general'' if it decides correctly for every algorithm. The theorem is named after Henry Gordon Rice, who proved it in his doctoral dissertation ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


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 expanded to include the study of generalized computability and definability. In these areas, computability theory overlaps with proof theory and effective descriptive set theory. Basic questions addressed by computability theory include: * What does it mean for a function on the natural numbers to be computable? * How can noncomputable functions be classified into a hierarchy based on their level of noncomputability? Although there is considerable overlap in terms of knowledge and methods, mathematical computability theorists study the theory of relative computability, reducibility notions, and degree structures; those in the computer science field focus on the theory of subrecursive hierarchies, formal methods, and formal languages. I ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Roger's Equivalence Theorem
In computability theory, admissible numberings are enumerations ( numberings) of the set of partial computable functions that can be converted ''to and from'' the standard numbering. These numberings are also called acceptable numberings and acceptable programming systems. Rogers' equivalence theorem shows that all acceptable programming systems are equivalent to each other in the formal sense of numbering theory. Definition The formalization of computability theory by Kleene led to a particular universal partial computable function Ψ(''e'', ''x'') defined using the T predicate. This function is universal in the sense that it is partial computable, and for any partial computable function ''f'' there is an ''e'' such that, for all ''x'', ''f''(''x'') = Ψ(''e'',''x''), where the equality means that either both sides are undefined or both are defined and are equal. It is common to write ψ''e''(''x'') for Ψ(''e'',''x''); thus the sequence ψ0, ψ1, ... is an enumeration of a ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

String (computer Science)
In computer programming, a string is traditionally a sequence of characters, either as a literal constant or as some kind of variable. The latter may allow its elements to be mutated and the length changed, or it may be fixed (after creation). A string is generally considered as a data type and is often implemented as an array data structure of bytes (or words) that stores a sequence of elements, typically characters, using some character encoding. ''String'' may also denote more general arrays or other sequence (or list) data types and structures. Depending on the programming language and precise data type used, a variable declared to be a string may either cause storage in memory to be statically allocated for a predetermined maximum length or employ dynamic allocation to allow it to hold a variable number of elements. When a string appears literally in source code, it is known as a string literal or an anonymous string. In formal languages, which are used in mathematical ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Rice Reduction
Rice is the seed of the grass species ''Oryza sativa'' (Asian rice) or less commonly ''Oryza glaberrima'' (African rice). The name wild rice is usually used for species of the genera ''Zizania'' and ''Porteresia'', both wild and domesticated, although the term may also be used for primitive or uncultivated varieties of ''Oryza''. As a cereal grain, domesticated rice is the most widely consumed staple food for over half of the world's human population,Abstract, "Rice feeds more than half the world's population." especially in Asia and Africa. It is the agricultural commodity with the third-highest worldwide production, after sugarcane and maize. Since sizable portions of sugarcane and maize crops are used for purposes other than human consumption, rice is the most important food crop with regard to human nutrition and caloric intake, providing more than one-fifth of the calories consumed worldwide by humans. There are many varieties of rice and culinary preferences tend to v ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Quine (computing)
A quine is a computer program which takes no input and produces a copy of its own source code as its only output. The standard terms for these programs in the computability theory and computer science literature are "self-replicating programs", "self-reproducing programs", and "self-copying programs". A quine is a fixed point of an execution environment, when the execution environment is viewed as a function transforming programs into their outputs. Quines are possible in any Turing-complete programming language, as a direct consequence of Kleene's recursion theorem. For amusement, programmers sometimes attempt to develop the shortest possible quine in any given programming language. The name "quine" was coined by Douglas Hofstadter, in his popular science book ''Gödel, Escher, Bach'', in honor of philosopher Willard Van Orman Quine (1908–2000), who made an extensive study of indirect self-reference, and in particular for the following paradox-producing expression, known as Q ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




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 and appear in his 1952 book ''Introduction to Metamathematics''. A related theorem, which constructs fixed points of a computable function, is known as Rogers's theorem and is due to Hartley Rogers, Jr. The recursion theorems can be applied to construct fixed points of certain operations on computable functions, to generate quines, and to construct functions defined via recursive definitions. Notation The statement of the theorems refers to an admissible numbering \varphi of the partial recursive functions, such that the function corresponding to index e is \varphi_e. If F and G are partial functions on the natural numbers, the notation F \simeq G indicates that, for each ''n'', either F(n) and G(n) are both defined and are equal, or else F(n) and G(n) are ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Recursively Enumerable Set
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 set of input numbers for which the algorithm halts is exactly ''S''. Or, equivalently, *There is an enumeration algorithm, 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. The second condition suggests why ''computably enumerable'' is used. The abbreviations ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Recursive 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 decides whether the number belongs to the set or not. A set which is not computable is called noncomputable or undecidable. A more general class of sets than the computable ones consists of the computably enumerable (c.e.) sets, also called semidecidable sets. For these sets, it is only required that there is an algorithm that correctly decides when a number ''is'' in the set; the algorithm may give no answer (but not the wrong answer) for numbers not in the set. Formal definition A subset S of the natural numbers is called computable if there exists a total computable function f such that f(x)=1 if x\in S and f(x)=0 if x\notin S. In other words, the set S is computable if and only if the indicator function \mathbb_ is computable. E ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Recursive 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 decides whether the number belongs to the set or not. A set which is not computable is called noncomputable or undecidable. A more general class of sets than the computable ones consists of the computably enumerable (c.e.) sets, also called semidecidable sets. For these sets, it is only required that there is an algorithm that correctly decides when a number ''is'' in the set; the algorithm may give no answer (but not the wrong answer) for numbers not in the set. Formal definition A subset S of the natural numbers is called computable if there exists a total computable function f such that f(x)=1 if x\in S and f(x)=0 if x\notin S. In other words, the set S is computable if and only if the indicator function \mathbb_ is computable. E ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


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 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 such as Turing machines or register machines. 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 functions. Before the precise definition of computable function, mathematicians often used the informal term ''effectively calculable''. This term has since come to be identified with the com ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Admissible Numbering
In computability theory, admissible numberings are enumerations (Numbering (computability theory), numberings) of the set of partial computable functions that can be converted ''to and from'' the standard numbering. These numberings are also called acceptable numberings and acceptable programming systems. Rogers' equivalence theorem shows that all acceptable programming systems are equivalent to each other in the formal sense of numbering theory. Definition The formalization of computability theory by Stephen Cole Kleene, Kleene led to a particular universal partial computable function Ψ(''e'', ''x'') defined using the Kleene's T predicate, T predicate. This function is universal in the sense that it is partial computable, and for any partial computable function ''f'' there is an ''e'' such that, for all ''x'', ''f''(''x'') = Ψ(''e'',''x''), where the equality means that either both sides are undefined or both are defined and are equal. It is common to write ψ''e''(''x'') f ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]