Théorème 5Calculabilité
Théorème de Rice
Soit un ensemble de fonctions récursives d'une variable, qui n'est ni vide ni l'ensemble de toutes. Alors l'ensemble n'est pas récursif.
Démonstration
Notons cet ensemble et la fonction définie nulle part. Comme et , où est le complémentaire de , sont récursifs en même temps, et que vérifie les mêmes hypothèses, on peut supposer que . Soit .
La fonction de deux variables est récursive, par la fonction universelle (Kleene, (ii)) et la composition ; elle vaut si , et n'est définie nulle part en si . Soit un indice de ; par le théorème s-m-n, il existe une fonction primitive récursive telle que .
Ainsi si , et sinon : Si était récursif, , son image réciproque par une fonction primitive récursive, le serait aussi (Récursif, r.e., (iii)), contrairement à l'indécidabilité de l'arrêt.
□On ne peut donc décider, à la lecture d'un programme, ni s'il calcule une fonction totale, ni s'il calcule le doublement , ni si est vide. Le théorème porte sur la fonction calculée, non sur le texte du programme : savoir si a moins de dix instructions est décidable, puisque cela se lit sur .
Henry Gordon Rice l'a publié en 1953 (« Classes of recursively enumerable sets and their decision problems », Transactions of the American Mathematical Society 74), sous une forme qui porte sur les classes d'ensembles récursivement énumérables.