ATLAS Ouvrir dans l'atlas →

Théorème 4Calculabilité

Indécidabilité du problème de l'arrêt

On pose K={e∈ℕ:φe(e) ⁣↓}K = \{e \in {\mathbb N} : \varphi_e(e)\!\downarrow\}, l'ensemble des indices des programmes qui s'arrêtent sur leur propre indice, et H={(e,x):φe(x) ⁣↓}.H = \{(e, x) : \varphi_e(x)\!\downarrow\}. Décider si (e,x)∈H(e, x) \in H, c'est le problème de l'arrêt.

Énoncé

(i) Les ensembles KK et HH sont récursivement énumérables.

(ii) L'ensemble KK n'est pas récursif, et HH non plus : le problème de l'arrêt est indécidable.

(iii) Le complémentaire ℕ∖K\mathbb N \setminus K n'est pas récursivement énumérable.

Démonstration

(i) Par la forme normale (Kleene), e∈K  ⟺  ∃t T1(e,e,t)e \in K \iff \exists t\, T_1(e, e, t) et (e,x)∈H  ⟺  ∃t T1(e,x,t)(e, x) \in H \iff \exists t\, T_1(e, x, t), relations primitives récursives sous le quantificateur.

(ii) Supposons KK récursif. La fonction g(e)≃μy [χK(e)=0]g(e) \simeq \mu y\, \big[\chi_K(e) = 0\big] est récursive ; elle vaut 00 si e∉Ke \notin K, et n'est pas définie si e∈Ke \in K. Par le point (i) de Kleene, elle a un indice dd : g=φdg = \varphi_d. Alors d∈K  ⟺  φd(d) ⁣↓  ⟺  g(d) ⁣↓  ⟺  d∉K,\begin{aligned} d \in K &\iff \varphi_d(d)\!\downarrow \\ &\iff g(d)\!\downarrow \iff d \notin K, \end{aligned} ce qui est absurde.

Si HH était récursif, KK, image réciproque de HH par e↦(e,e)e \mapsto (e, e), le serait aussi (Récursif, r.e., (iii)).

(iii) Si ℕ∖K\mathbb N \setminus K était récursivement énumérable, KK serait récursif par le point (ii) de Récursif, r.e., puisqu'il l'est par (i).

x e 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 11 g
Le tableau des calculs de PeP_e sur xx pour e,x⩽11e, x \leqslant 11, obtenus en décodant ee : un point vert quand le calcul s'arrête, une croix grise quand une configuration se répète, ce qui prouve qu'il boucle ; seul P11=DEC(1,0)P_{11} = \mathrm{DEC}(1, 0) change de comportement selon xx. La fonction gg de la preuve, en rouge, fait le contraire de chaque ligne sur la diagonale : elle ne peut être aucune des lignes du tableau complet.
□
Remarque

La preuve est la diagonale de Cantor (Théorème de Cantor) appliquée au tableau infini des φe(x)\varphi_e(x) : gg diffère de la ligne ee en sa case diagonale. Ce n'est pas l'existence de gg qui pose problème, puisque c'est une fonction, mais sa calculabilité, qui viendrait de celle de KK.

Remarque

Turing a établi en 1936 l'indécidabilité d'un problème voisin, savoir si une machine imprime indéfiniment des chiffres ; la formulation en termes d'arrêt est postérieure. L'énoncé ne dit pas qu'on ignore si tel programme s'arrête, mais qu'aucun programme ne répond à cette question pour tous les programmes à la fois.

Ouvrir dans l'atlas interactif →