Select Page

Rice’s Theorem is a fundamental result in computability theory named after the mathematician Henry Gordon Rice. It states that for any non-trivial property of the behavior of a Turing Machine (TM), it is undecidable whether an arbitrary TM has that property.

Key Points about Rice’s Theorem:

  1. Non-Trivial Property: A property is considered non-trivial if there exist two TMs with different behaviors such that one TM has the property while the other does not. In other words, the property does not hold for all TMs or none of them.
  2. Undecidability: Rice’s Theorem asserts that there is no algorithm that can determine whether an arbitrary TM possesses a given non-trivial property. This means that there is no general procedure that can correctly decide whether a TM satisfies the property or not.
  3. Formal Statement: Formally, Rice’s Theorem can be stated as follows: Let 
    , whether 

    has property

    is undecidable.

  4. Implications: Rice’s Theorem has profound consequences for computability theory and algorithm design. It demonstrates the limitations of what can be achieved algorithmically when reasoning about the behavior of TMs. It also highlights the existence of undecidable problems beyond specific examples like the Halting Problem.
  5. Corollaries: Rice’s Theorem has several corollaries, including the undecidability of problems related to the behavior of TMs, such as the emptiness problem, the universal language problem, and many others.


An example of a non-trivial property that satisfies Rice’s Theorem is the property of a TM halting on the empty input (i.e., whether

is empty). It’s non-trivial because there exist TMs that halt on the empty input and TMs that do not. However, determining whether an arbitrary TM halts on the empty input is undecidable due to Rice’s Theorem.


Rice’s Theorem is significant because it provides a general framework for identifying undecidable problems related to TMs’ behavior. It demonstrates the inherent complexity of reasoning about TMs’ properties and helps establish the limits of what can be computed algorithmically. Additionally, it serves as a foundational result in computability theory and is widely used in theoretical computer science to establish the undecidability of various problems.