Proposition 2Calculabilité
Caractérisations des ensembles récursivement énumérables
Pour une partie , les conditions suivantes sont équivalentes :
(a) est récursivement énumérable ;
(b) est le domaine de définition d'une fonction récursive ;
(c) est vide, ou image d'une fonction primitive récursive d'une variable ;
(d) est l'image d'une fonction récursive d'une variable.
En particulier, les ensembles , pour , sont exactement les parties récursivement énumérables de .
Démonstration
(a) ⇒ (b). Si , la fonction est récursive (Fonctions récursives, (iii)) et définie exactement sur .
(b) ⇒ (a) et (c). Si , avec (Kleene, (i)), alors , avec primitive récursive. Si contient un élément , la fonction est primitive récursive, et son image est : tout est l'image de , pour un tel que .
(c) ⇒ (d). Une fonction primitive récursive est récursive (Fonctions récursives, (i)). L'ensemble vide est l'image de la fonction , définie nulle part, qui est récursive.
(d) ⇒ (a). Soit l'image de . Une configuration terminale ne change plus ; ainsi, pour tout tel que , on a . Donc relation primitive récursive sous le quantificateur.
La dernière assertion est l'équivalence de (a) et (b), puisque les fonctions récursives d'une variable sont les .
□Le point (c) justifie le nom : un ensemble récursivement énumérable non vide est la liste produite par un procédé de calcul, avec d'éventuelles répétitions et sans ordre. Savoir qu'un entier y figure, c'est l'attendre dans la liste, et un entier qui n'y figure pas ne s'y montre jamais.
La fonction de la preuve parcourt tous les couples , entrée et durée, au lieu de faire tourner un calcul après l'autre : elle ne reste jamais bloquée sur un calcul qui ne s'arrête pas. C'est la technique de l'entrelacement des calculs.