Porque quase todas as questões sobre o comportamento dos programas são indecidíveis. Pelo teorema de Rice , qualquer problema de decisão da forma:
Alguns programas calculam funções que possuem essa propriedade, outros programas calculam funções que não possuem essa propriedade. Dado um programa P, a função calculada por P tem a propriedade acima mencionada ou não?
é indecidível. Portanto, por exemplo, nem sempre é possível distinguir o código que calcula o quadrado de uma entrada do código que não. Embora em casos simples, muitas vezes seja possível provar que uma função o faça ou não, não há procedimento geral que funcione para todos os programas.
Quase qualquer invariante comportamental interessante se enquadra no teorema de Rice, uma vez que essas afirmações raramente (se é que alguma vez) falam sobre como o método se parece internamente, apenas o que ele retorna e os efeitos colaterais que causa em resposta a determinadas informações.