ATLAS Ouvrir dans l'atlas →

Proposition 2Calculabilité

Caractérisations des ensembles récursivement énumérables

Énoncé

Pour une partie A⊂ℕA \subset {\mathbb N}, les conditions suivantes sont équivalentes :

(a) AA est récursivement énumérable ;

(b) AA est le domaine de définition d'une fonction récursive ;

(c) AA est vide, ou image d'une fonction primitive récursive d'une variable ;

(d) AA est l'image d'une fonction récursive d'une variable.

En particulier, les ensembles We=D(φe)W_e = D(\varphi_e), pour e∈ℕe \in \mathbb N, sont exactement les parties récursivement énumérables de ℕ\mathbb N.

Démonstration

(a) ⇒ (b). Si x∈A  ⟺  ∃y R(x,y)x \in A \iff \exists y\, R(x, y), la fonction x↦μy R(x,y)x \mapsto \mu y\, R(x, y) est récursive (Fonctions récursives, (iii)) et définie exactement sur AA.

(b) ⇒ (a) et (c). Si A=D(f)A = D(f), avec f=φef = \varphi_e (Kleene, (i)), alors x∈A  ⟺  ∃t T1(e,x,t)x \in A \iff \exists t\, T_1(e, x, t), avec T1T_1 primitive récursive. Si AA contient un élément aa, la fonction g(w)={(w)0si T1(e,(w)0,(w)1),asinon,g(w) = \begin{cases} (w)_0 & \text{si } T_1\big(e, (w)_0, (w)_1\big), \\ a & \text{sinon,} \end{cases} est primitive récursive, et son image est AA : tout x∈Ax \in A est l'image de w=2x3tw = 2^x 3^t, pour un tt tel que T1(e,x,t)T_1(e, x, t).

(c) ⇒ (d). Une fonction primitive récursive est récursive (Fonctions récursives, (i)). L'ensemble vide est l'image de la fonction x↦μy [S(y)=0]x \mapsto \mu y\, [S(y) = 0], définie nulle part, qui est récursive.

(d) ⇒ (a). Soit AA l'image de φe\varphi_e. Une configuration terminale ne change plus ; ainsi, pour tout tt tel que T1(e,x,t)T_1(e, x, t), on a φe(x)=U1(e,x,t)\varphi_e(x) = U_1(e, x, t). Donc y∈A  ⟺  ∃w (T1(e,(w)0,(w)1)∧U1(e,(w)0,(w)1)=y),\begin{aligned} y \in A \iff{} &\exists w\ \Big(T_1\big(e, (w)_0, (w)_1\big) \\ &\wedge U_1\big(e, (w)_0, (w)_1\big) = y\Big), \end{aligned} 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 φe\varphi_e.

□
Remarque

Le point (c) justifie le nom : un ensemble récursivement énumérable non vide est la liste g(0),g(1),g(2),…g(0), g(1), g(2), \dots 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.

Remarque

La fonction gg de la preuve parcourt tous les couples (x,t)(x, t), 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.

Ouvrir dans l'atlas interactif →