Comme des trous noirs en informatique. Nous pouvons seulement savoir qu'ils existent, mais lorsque nous en aurons un, nous ne saurons jamais que c'est l'un d'eux.
halting-problem
correctness-proof
Otakar Molnár López
la source
la source
if T is true then halt else loop forever
if T is true
?For each string S in the (countable) universe of possible strings: If S is a syntactically valid proof of T, halt.
Réponses:
Il existe en effet des programmes comme celui-ci. Pour le prouver, supposons au contraire que pour chaque machine qui ne s'arrête pas, il y a une preuve qu'elle ne s'arrête pas.
Ces preuves sont des chaînes de longueur finie, nous pouvons donc énumérer toutes les preuves de longueur inférieure à pour certains entiers s .s s
Nous pouvons ensuite l'utiliser pour résoudre le problème d'arrêt comme suit: Étant donné une machine de Turing et une entrée x , nous utilisons l'algorithme suivant:M x
Si s'arrête sur l'entrée x , alors il s'arrête dans un nombre fini d'étapes s , donc notre algorithme se termine.M x s
Si ne s'arrête pas à l'entrée x , alors selon notre hypothèse, il y a des longueurs de preuve s où il y a une preuve que M ne s'arrête pas. Donc dans ce cas, notre algorithme se termine toujours.M x s M
Ainsi, nous avons un algorithme décidant du problème d'arrêt qui se termine toujours. Mais nous savons que cela ne peut pas exister, donc notre supposition qu'il y a toujours une preuve de non-arrêt doit être fausse.
la source
Pour un exemple un peu plus concret, supposons que la théorie que nous utilisons pour nos preuves a les caractéristiques suivantes (tout à fait raisonnables, IMO):
Avec ces hypothèses, le programme suivant ne s'arrêtera jamais, mais il ne peut pas être prouvé (dans le cadre de la théorie que nous utilisons) de ne pas s'arrêter:
Le détail clé ici est la première hypothèse ci-dessus, à savoir que la théorie que nous utilisons pour nos preuves est cohérente. Évidemment, nous devons supposer cela, pour que nos preuves valent quoi que ce soit, mais le second théorème d'incomplétude de Gödel dit que, pour toute théorie raisonnablement expressive et effectivement axiomatisée, nous ne pouvons pas réellement le prouver (sauf peut-être dans une autre théorie, dont nous avons ensuite la cohérence besoin de supposer, etc. etc.).
la source