Supposons que HALTS est une MT qui lit son entrée comme une paire et x , où M est un codage de MT et x est n'importe quelle entrée de cette MT.MXMX
Votre question est de savoir si ce qui se passerait si nous supposions HALTS a résolu le problème de l' arrêt pour toutes les entrées tel que x n'est pas un codage d'un TM qui est fonctionnellement équivalent à M .⟨M,x⟩xM
Je prétends que cela implique une contradiction. J'ai trouvé cela sur place, donc je salue toute critique de ma preuve. L'idée de la preuve est que plutôt que de diagonaliser quelque chose sur lui-même, nous faisons deux MT mutuellement récursives qui se comportent différemment sur certaines entrées (donc ne sont pas fonctionnellement équivalentes), mais provoquent autrement des contradictions.
Soit et D 2 deux MT mutuellement récursives (c'est-à-dire que nous pouvons simuler, imprimer, etc., la description de D 2 à l'intérieur du programme de D 1 et vice versa). Notez que nous pouvons créer des MT mutuellement récursives à partir du théorème de récursivité.D1D2D2D1
Définissez et D 2 comme suit: sur l'entrée x , si | x | < 10 (10 choisis arbitrairement), alors D 1 accepte et D 2 boucle. (Ainsi, ils ne sont pas fonctionnellement équivalents).D1D2x|x|<10D1D2
Étant donné l'entrée avec | x | ≥ 10 , définir D 1 pour simuler HALTS sur ⟨ D 2 , x ⟩ et arrêt si D 2 arrêts ou boucle si D 2 boucles.x|x|≥10D1⟨D2,x⟩D2D2
Étant donné l'entrée avec | x | ≥ 10 , définir D 2 pour simuler HALTS sur ⟨ D 1 , x ⟩ et boucle si D 1 arrêts ou arrêt si D 1 boucles.x|x|≥10D2⟨D1,x⟩D1D1
Notez ensuite que pour tout avec | x | ≥ 10 , D 1 (x) arrête ou boucle. Si D 1 s'arrête sur l'entrée x, alors nous savons que HALTS ( D 2 , x) a déterminé que D 2 s'arrête sur l'entrée x. Cependant, D 2 s'arrêtant sur l'entrée x implique que HALTS ( D 1 , x) boucle.x|x|≥10D1D1D2D2D2D1
Si sur l'entrée x boucle, la contradiction suit de la même manière.D1x
C'est une contradiction à moins que ne soit un codage pour une machine de turing fonctionnellement équivalente à D 1 ou D 2 , auquel cas HALTS a un comportement indéfini. Cependant, x a été choisi arbitrairement parmi toutes les chaînes de taille supérieure à 10 . Ainsi, il reste à montrer qu'il existe une machine de turing avec un codage de taille supérieure à 10 qui se comporte différemment de D 1 et D 2 . Nous pouvons construire une telle machine trivialement. QED.xD1D2x10D1D2
Pensées?