Mathematical logic and foundations Computability theory Theorem
Rice's theorem
Statement
Fix a standard Gödel numbering of programs, and let be the partial computable function of one argument computed by program . Let be a set of partial computable functions that is neither empty nor the set of all partial computable functions. Then the index set is not a computable set.
Remarks
Replacing by its complement if needed, assume the empty function is not in , and pick . For each , let be a program that on input first runs program on input , and then, if that halts, computes . By the smn theorem, is total computable. Then if program halts on , and is the empty function otherwise. So a decision procedure for the index set would decide the halting problem.
Example: the set of programs that compute a total function, and the set of programs that output on input , are not computable.
Both conditions on are needed: if is empty or contains all partial computable functions, the index set is or , which are computable. The theorem concerns properties of the computed function, not of the program text. A property such as "the program has fewer than instructions" is decidable.
Going deeper
For a student
The theorem generalises the undecidability of the halting problem to all non-trivial semantic properties. Its proof is a many-one reduction from the halting set, built with the smn theorem. The Rice–Shapiro theorem goes further and describes which index sets are computably enumerable. In practice, program analysis tools work around the theorem by giving approximate answers.
Reading path
To understand this page from the ground up, read these 4 pages in order. The foundations come first.
Show the path as a graph
- no evidence level
- Computable function concept
- Computable set concept
- Gödel numbering concept
- Rice's theorem statement
Further reading
About this page
| Tag | AKDR5YBBE2 |
|---|---|
| URI | m2://AKDR5YBBE2 |
| Kind | statement, theorem |
| Writing | W0 stub |
| MSC | 03D25, 03D20 |
| Status | This copy of the site has no build data. Run m2 status AKDR5YBBE2. |
| About | Computable function, Computable set |
| Uses | Computable function, Computable set, Gödel numbering |
| Same as | |
| Changed | 2 November 2026 |
Markdown · JSON · Edit on GitHub
What this page needs for W1
- a source with a locator (0 of 1)
The writing levels say how complete the text of a page is. They do not measure its truth.
What links here
No page links to this page yet.