L'auto-application n'est pas un ingrédient nécessaire de la preuve
En un mot
S'il existe une machine de Turing qui résout le problème d'arrêt, alors à partir de cette machine, nous pouvons construire une autre machine de Turing L avec un comportement d'arrêt (fonction caractéristique d'arrêt) qui ne peut être le comportement d'arrêt d'une machine de Turing.HL
Le paradoxe construit sur la fonction auto-appliquée (appelé L dans cette réponse - désolé des incohérences de notation) n'est pas un ingrédient nécessaire de la preuve, mais un dispositif utilisable avec la construction d'une contradiction spécifique, cachant ce qui semble être le "réel". but "de la construction. C'est probablement pourquoi ce n'est pas intuitif.DL
Il semble plus direct de montrer qu'il n'y a qu'un nombre dénombrable de comportements d'arrêt (pas plus que les machines de Turing), qui peuvent être définis comme des fonctions d'arrêt caractéristiques associées à chaque machine de Turing. On peut définir de manière constructive une fonction d'arrêt caractéristique ne figurant pas dans la liste, et construire à partir de celle-ci, et à partir d'une machine
qui résout le problème d'arrêt, une machine L qui a cette nouvelle fonction d'arrêt caractéristique. Mais comme, par construction, ce n'est pas la fonction d'arrêt caractéristique d'une machine de Turing, L ne peut pas en être une. Puisque L est construit à partir de H en utilisant des techniques de construction de machines de Turing, H ne peut pas être une machine de Turing.HLLLHH
L'auto-application de à lui-même, utilisée dans de nombreuses preuves, est un moyen de montrer la contradiction. Mais cela ne fonctionne que lorsque la fonction d'arrêt de caractéristique impossible est construite à partir de la diagonale de la liste des fonctions d'arrêt de caractéristique autorisées de Turing, en inversant cette diagonale (échange de 0 et 1 ). Mais il existe une infinité d'autres façons de construire une nouvelle fonction d'arrêt caractéristique. Ensuite, la non-Turing-ness ne peut plus être mise en évidence avec un paradoxe menteur (du moins pas simplement). La construction de l'auto-application n'est pas intuitive car elle n'est pas essentielle, mais elle semble lisse lorsqu'elle est retirée du chapeau magique.L01
Fondamentalement, n'est pas une machine de Turing car il est conçu dès le départ pour avoir un comportement d'arrêt qui n'est pas celui d'une machine de Turing, et qui peut être montré plus directement, donc plus intuitivement.L
Remarque : Il se peut que, pour tout choix constructif de la fonction d'arrêt de caractéristique impossible, il y ait une réorganisation calculable de l'énumération de la machine de Turing de telle sorte qu'elle devienne la diagonale (je ne sais pas). Mais, à mon humble avis, cela ne change pas le fait que l'auto-application est une technique de preuve indirecte qui cache un fait plus intuitif et intéressant.
Analyse détaillée des preuves
Je ne vais pas être historique (mais grâce à ceux qui le sont, j'aime ça), mais j'essaie seulement de travailler le côté intuitif.
Je pense que la présentation donnée à @vzn , que j'ai rencontrée il y a longtemps (j'avais oublié), est en fait plutôt intuitive, et explique même la diagonalisation du nom. Je le répète en détail uniquement parce que j'estime que @vzn n'a pas suffisamment souligné sa simplicité.
Mon but est d'avoir un moyen intuitif de récupérer la preuve, sachant celle de Cantor. Le problème avec de nombreuses versions de la preuve est que les constructions semblent être tirées d'un chapeau magique.
La preuve que je donne n'est pas exactement la même que dans la question, mais elle est correcte, pour autant que je puisse voir. Si je n'ai pas fait d'erreur, c'est assez intuitif car je pourrais le récupérer après plus d'années que je ne compte, en travaillant sur des sujets très différents.
Le cas des sous-ensembles de (Cantor)N
La preuve de Cantor suppose (ce n'est qu'une hypothèse) qu'il y a une énumération des sous-ensembles des entiers, de sorte que tous ces sous-ensembles peuvent être décrits par sa fonction caractéristique C j ( i ) qui est 1 si
i ∈ S j et vaut 0 sinon.SjCj(i)1i∈Sj0
Cela peut être vu comme un tableau , tel que T [ i , j ] = C j ( i )TT[i,j]=Cj(i)
Ensuite, en considérant la diagonale, nous construisons une fonction caractéristique
telle que D ( i ) = ¯ T [ i , i ] , c'est-à-dire qu'elle est identique à la diagonale du tableau avec chaque bit retourné à l'autre valeur.DD(i)=T[i,i]¯¯¯¯¯¯¯¯¯¯¯¯
La diagonale n'a rien de spécial, sauf que c'est un moyen facile d'obtenir une fonction caractéristique différente de toutes les autres, et c'est tout ce dont nous avons besoin.D
Par conséquent, le sous-ensemble caractérisé par ne peut pas être dans l'énumération. Puisque ce serait vrai de toute énumération, il ne peut pas être une énumération qui énumère tous les sous - ensembles de N .DN
Certes, selon la question initiale, c'est assez intuitif. Pouvons-nous rendre la preuve du problème d'arrêt aussi intuitive?
Le cas du problème d'arrêt (Turing)
Nous supposons que nous avons une énumération de machines de Turing (que nous savons possible). Le comportement d'arrêt d'une machine de Turing peut être décrit par sa fonction d'arrêt caractéristique H j ( i ) qui est 1 si
M j s'arrête sur l'entrée i et 0 sinon.MjHj(i)1Mji0
Cela peut être vu comme un tableau , tel que T [ i , j ] = H j ( i )TT[i,j]=Hj(i)
Ensuite, en considérant la diagonale, nous construisons une fonction d'arrêt caractéristique
telle que D ( i ) = ¯ T [ i , i ] , c'est-à-dire qu'elle est identique à la diagonale du tableau avec chaque bit inversé à l'autre valeur.DD(i)=T[i,i]¯¯¯¯¯¯¯¯¯¯¯¯
La diagonale n'a rien de spécial, sauf que c'est un moyen facile d'obtenir une fonction d'arrêt caractéristique qui est différente de toutes les autres, et c'est tout ce dont nous avons besoin (voir note en bas).D
Par conséquent, le comportement d'arrêt caractérisé par ne peut pas être celui d'une machine de Turing dans l'énumération. Puisque nous les avons tous énumérés, nous concluons qu'il n'y a pas de machine Turing avec ce comportement.D
Pas d'oracle d'arrêt jusqu'à présent, et pas d'hypothèse de calculabilité : Nous ne savons rien du calculable de et des fonctions H j .THj
Supposons maintenant que nous ayons une machine de Turing qui peut résoudre le problème d'arrêt, de telle sorte que H ( i , j ) s'arrête toujours avec H j ( i ) comme résultat.HH(i,j)Hj(i)
Nous voulons prouver que, compte tenu de , nous pouvons construire une machine L qui a la fonction caractéristique arrêt D . La machine
L est presque identique à H , de sorte que L ( i ) imite
H ( i , i ) , sauf que chaque fois que H ( i , i ) est sur le point de se terminer avec la valeur 1 , L ( i ) entre dans une boucle infinie et ne se termine pas.HLDLHL(i)H(i,i)H(i,i)1L(i)
Il est bien clair que l'on peut construire une telle machine si H
existe. Par conséquent, cette machine devrait être dans notre énumération initiale de toutes les
machines (ce que nous savons possible). Mais cela ne peut pas l'être puisque son comportement d'arrêt D ne correspond à aucune des machines énumérées. La machine L ne peut pas exister, ce qui implique que H ne peut exister.LHDLH
J'ai délibérément imité la première preuve et suis entré dans les moindres détails
Mon sentiment est que les étapes viennent naturellement de cette façon, surtout quand on considère la preuve de Cantor comme raisonnablement intuitive.
On énumère d'abord les constructions litigieuses. Ensuite, on prend et modifie la diagonale comme un moyen pratique de les toucher tous pour obtenir un comportement inexpliqué, puis obtient une contradiction en exposant un objet qui a le comportement inexpliqué ... si une hypothèse était vraie: existence de l'énumération pour Cantor, et l'existence d'un oracle d'arrêt calculable pour Turing.
Remarque: Pour définir la fonction , nous pourrions remplacer la diagonale inversée par toute autre fonction d'arrêt caractéristique, différente de toutes celles répertoriées en T , qui est calculable (à partir de celles répertoriées en T , par exemple) à condition qu'un oracle d'arrêt soit disponible . Ensuite, la machine L
devrait être construite en conséquence, pour avoir D comme fonction d'arrêt caractéristique, et L ( i ) utiliserait la machine H , mais ne reproduirait pas aussi directement H ( i , i ) . Le choix de la diagonale le rend beaucoup plus simple.DTTLDL(i)HH(i,i)
Comparaison avec la "autre" preuve
La fonction définie ici est apparemment l'analogue de la fonction
D dans la preuve décrite dans la question.LD
Nous le construisons uniquement de manière à ce qu'il ait une fonction d'arrêt caractéristique qui ne correspond à aucune machine de Turing, et en obtenons directement une contradiction. Cela nous donne la liberté de ne pas utiliser la diagonale (pour ce qu'elle vaut).
L'idée de la preuve "habituelle" semble essayer de tuer ce que je considère comme un poisson mort. Il dit: supposons que est l'une des machines répertoriées (c'est-à-dire toutes). Ensuite , il a un indice j L en ce que l' énumération: L = M j L . Alors si L ( j L ) s'arrête, nous avons
T [ j L , j L ] = H ( j L , j L ) = 1 , de sorte que L ( j L )LjLL=MjLL(jL)T[jL,jL]=H(jL,jL)=1L(jL)bouclera par construction. Inversement, si ne s'arrête pas, alors
T [ j L , j L ] = H ( j L , j L ) = 0 pour que L ( j L ) s'arrête par construction. Nous avons donc une contradiction. Mais la contradiction résulte de la façon dont la fonction d'arrêt caractéristique de L a été construite, et il semble beaucoup plus simple de dire que LL(jL)T[jL,jL]=H(jL,jL)=0L(jL)LL ne peut pas être une machine de Turing car elle est conçue pour avoir une fonction d'arrêt caractéristique qui n'est pas celle d'une machine de Turing.
Un inconvénient est que cette preuve habituelle serait beaucoup plus douloureuse si nous ne choisissions pas la diagonale, alors que l'approche directe utilisée ci-dessus n'a aucun problème avec elle. Si cela peut être utile, je ne sais pas.