Fichier:Machine de Turing.pdf : Différence entre versions

De Sciencinfolycee
Aller à : navigation, rechercher
 
 
(Une révision intermédiaire par le même utilisateur non affichée)
Ligne 1 : Ligne 1 :
 +
<center>'''La Machine de Turing&nbsp;: les textes fondateurs'''</center>
  
 +
 +
<center>'''''<nowiki>La calculabilité des nombres et son application au problème de la décision [Entscheidungsproblem]</nowiki>'''''</center>
 +
 +
<center>'''(A. M. Turing)'''</center>
 +
 +
 +
<center>'''Traduction Dominique Bonnaud-Dantil'''</center>
 +
 +
 +
 +
{| style="border-spacing:0;"
 +
| style="background-color:#ffffff;border:0.5pt solid #00000a;padding-top:0in;padding-bottom:0in;padding-left:0.0785in;padding-right:0.075in;"| L’immersion dans les textes fondateurs est un exercice fortement conseillé. Au même titre que ''La richesse des Nations'' d’Adam Smith (1776), ou ''De l’origine des espèces'' de Charles Darwin (1859), ''La calculabilité des nombres et son application au problème de la décision'' d’Alan Turing (1937), est l’un de ces textes. D’un côté, deux ouvrages diffusés en direction d’un public relativement large, de l’autre, un simple article réservé à des spécialistes, mais l’impact et l’importance dans l’histoire des idées et l’histoire tout court sont les mêmes. Tout commence dans l’été 1900, à Paris, où l’Exposition universelle bat son plein, lors du 2<sup>e</sup> Congrès international des mathématiciens, lorsque David Hilbert (1862-1943), professeur à l’université allemande de Göttingen, souvent considéré comme un des plus grands mathématiciens du 20<sup>e</sup> siècle, en tout cas la plus importante personnalité de cette discipline en son temps, lance le programme des recherches du siècle à venir en recensant 23 grands problèmes ouverts dont les réponses sont censées faire progresser la discipline. Ce programme est en effet à l’origine de nombreux travaux et réflexions, dont ceux de Turing.
 +
 +
|}
 +
<center>'''Problèmes et choix de traduction'''</center>
 +
 +
 +
C’est après avoir traduit les articles de Turing que j’ai pris connaissance de la traduction de Julien Basch (in Turing/Girard, ''La machine de Turing'', Seuil, Points Sciences, 1995). La prise en compte des corrections que cette dernière présente ou apporte au texte original de Turing m’est alors apparue indispensable&nbsp;: celles de la section 7 (''Description détaillée de la machine universelle'') par le mathématicien américain d’origine polonaise Emil Post («&nbsp;Recursive Unsolvability of a Problem of Thue&nbsp;», ''The Journal of Symbolic Logic'', vol. 12, 1947, pp. 1-11), et celles de la démonstration du théorème (iii’) de la section 10. Ces corrections sont reportées directement, en rouge pour les distinguer, dans la traduction proposée ci-dessous. Quant aux corrections de la section 11 (''Application au problème de la décision'') émanant de Turing lui-même sur les indications du mathématicien suisse Paul Bernays, spécialiste de logique mathématique longtemps assistant et collaborateur de David Hilbert, dans l’''erratum'' à son article original, j’ai adopté le choix de la traduction Basch en les incorporant également directement sans distinction de couleur.
 +
 +
 +
Pour un texte scientifique où la précision de la terminologie est un élément essentiel, il s’est également, et rapidement, avéré que la première version de notre traduction devait être révisée en tenant compte de cette terminologie spécifique. Exemple&nbsp;: ''formula'' ou ''quantor''. Après avoir traduit le premier terme par «&nbsp;énoncé&nbsp;», et fort embarrassé pour trouver un équivalent français au second, une rapide initiation à la logique formelle m’a permis de réaliser que tous deux ont une acception précise dans cette discipline, et qu’il n’est pas possible de les traduire autrement que par «&nbsp;formule&nbsp;» et «&nbsp;quantificateur&nbsp;». De même pour'' diagonal process'', que j’avais d’abord malencontreusement traduit par «&nbsp;''procédure oblique''&nbsp;», alors que l’argument diagonal de Cantor ne laisse aucun doute, et qu’il faut donc traduire par «&nbsp;''procédé diagonal''&nbsp;» comme le fait d’ailleurs Basch.
 +
 +
 +
Mais, s’il est des choix de traduction impératifs, il en est d’autres facultatifs. En fait, certains choix sont souhaitables pour l’harmonisation des diverses traductions possibles et disponibles. Exemple de traduction facultative&nbsp;: le titre, «&nbsp;''Théorie des nombres calculables, suivie d’une application…''&nbsp;» (Basch), «&nbsp;''La calculabilité des nombres et son application…''&nbsp;» (Ma traduction). L’une et l’autre traduction sont possibles, et leur différence n’est pas susceptible de produire de la confusion et du contresens. Dans les deux cas, il est bien question des mêmes choses. Je n’avais donc aucune raison de modifier mon choix. Mais autre exemple, autre option&nbsp;: ''Circular and circle-free machines'', que j’ai d’abord traduit par «&nbsp;machines circulaires et non-circulaires&nbsp;». C’est un choix cohérent possible, mais j’ai finalement opté pour «&nbsp;cyclique&nbsp;» et «&nbsp;acyclique&nbsp;» de la traduction Basch, non seulement parce que cette dernière est bien meilleure, mais aussi dans un souci d’harmoniser le vocabulaire technique. De même pour ''choice machines'', que Basch traduit par «&nbsp;machines à choix&nbsp;», mais que l’on pourrait tout aussi bien traduire, et peut-être mieux, par «&nbsp;machines à options&nbsp;» ou, en tenant compte du contexte et de la définition donnée par Turing lui-même, «&nbsp;machines partiellement déterministes&nbsp;». Là encore, l’harmonisation et l’antériorité ont prévalu pour conserver la traduction «&nbsp;machines à choix&nbsp;».
 +
 +
 +
En revanche, j’ai suivi une autre voie pour traduire l’anglais ''determine''. En effet, outre le sens primitif de «&nbsp;déterminer&nbsp;», il possède aussi, dans le contexte du problème de la décision abordé par Turing, le sens dérivé de «&nbsp;décider&nbsp;», ''determination'' étant le terme anglais utilisé pour «&nbsp;décision&nbsp;» au sens que lui a donné la discipline des mathématiques. Or, il m’a semblé que plusieurs occurrences de la traduction Basch négligent ce sens dérivé, pourtant d’une grande importance dans cet article. Sans écarter totalement le sens traditionnel, j’ai rétabli le sens dérivé pour toutes les occurrences susceptibles de s’y rapporter.
 +
 +
 +
''Traduction des lettres et symboles''. Deux possibilités s’offrent au traducteur&nbsp;: garder les lettres utilisées par Turing, dont certaines sont en correspondance mnémonique avec des termes de la langue anglaise (par exemple ''R'' pour ''right'', ''L'' pour ''left''), ou les franciser comme le fait la traduction Basch qui transforme ''R'' en ''D'' pour ''droite'', et ''L'' en ''G'' pour ''gauche'', avec des effets en cascade sur les autres lettres utilisées. En revanche et avec sagesse, cette traduction n’est pas allée jusqu’à modifier les noms de fonctions, probables mnémoniques de termes anglais&nbsp;: ''fonction trouver'', f = ''find&nbsp;''<nowiki>; </nowiki>''fonction comparer'', cp = ''compare&nbsp;''<nowiki>; </nowiki>''fonction comparer-effacer'', cpe = ''compare erase&nbsp;''<nowiki>; </nowiki>''fonction configurer''&nbsp;: con = ''configure&nbsp;''<nowiki>;</nowiki>'' fonction commencer''&nbsp;: b = ''begin&nbsp;''<nowiki>; </nowiki>''fonction simuler''&nbsp;: sim = ''simulate&nbsp;''<nowiki>; </nowiki>''fonction montrer''&nbsp;: sh = ''show&nbsp;''<nowiki>; etc. Le choix d’adopter </nowiki>''D'' et ''G'' pour ''R'' et ''L'' m’obligeant à modifier d’autres symboles, plutôt que de me singulariser ou de raffiner sans raison valable, outre les risques d’omission et d’erreur que représentent des modifications systématiques, la reproduction des mêmes transformations que celles de la traduction Basch est apparue comme la solution la plus raisonnable, avec l’avantage de ne pas dérouter le lecteur susceptible d’aborder l’une ou l’autre de ces traductions.
 +
 +
 +
De même, j’ai suivi le choix judicieux de Basch en actualisant la notation de la logique formelle, légèrement différente à l’époque de Turing et de Gödel. C’est ainsi que le quantificateur (''x'') au sens de «&nbsp;pour tout ''x''&nbsp;» s’écrit aujourd’hui <math>\forall </math> ''x'', et & (le signe tironien dit esperluette ou commercial) le symbole conjonctif s’écrit désormais ˄, sans compter les risques de confusion, & étant maintenant utilisé dans la logique linéaire au sens de «&nbsp;avec&nbsp;».
 +
 +
 +
Tous les autres choix et différences sont personnels, purement stylistiques et, dans la mesure du possible, ne compromettent en rien le sens du texte.
 +
 +
 +
Dominique BONNAUD-DANTIL
 +
 +
Chargé d’études documentaires
 +
 +
Canopé-CNDP Chasseneuil-du-Poitou
 +
 +
 +
<center>'''''<nowiki>La calculabilité des nombres et son application au problème de la décision [Entscheidungsproblem</nowiki><ref name="ftn1">''''' En allemand dans le texte. En logique mathématique, l’Entscheidungsproblem, ou problème de la décision, est le fait de déterminer de façon mécanique, par un algorithme, si un énoncé est un théorème de la logique égalitaire du premier ordre, c’est-à-dire s’il se dérive dans un système de déduction (voir système à la Hilbert, calcul des séquents, déduction naturelle), sans autres axiomes que ceux de l’égalité (note du traducteur).'''''</ref>]'''''</center>
 +
 +
<center>'''(A. M. Turing)'''</center>
 +
 +
 +
'''Sources et versions de l’article original en ligne&nbsp;:'''
 +
 +
Alan Turing, «&nbsp;On Computable Numbers, with an Application to the Entscheidungsproblem&nbsp;», dans ''Proc. London Math. Soc.'', 2<sup>e</sup> série, vol. 42, 1937, pp. 230-265.
 +
 +
[http://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf http://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf]
 +
 +
[http://www.wolframscience.com/prizes/tm23/images/Turing.pdf http://www.wolframscience.com/prizes/tm23/images/Turing.pdf]
 +
 +
[http://www.thocp.net/biographies/papers/turing_oncomputablenumbers_1936.pdf http://www.thocp.net/biographies/papers/turing_oncomputablenumbers_1936.pdf]
 +
 +
 +
<center>(Reçu le 28 mai 1936- Lu le 12 novembre 1936)</center>
 +
 +
 +
On peut définir sommairement les nombres «&nbsp;calculables&nbsp;» comme les nombres réels qui, exprimés en décimales, sont calculables avec des moyens finis. Bien que le sujet de cet article soit ostensiblement les ''nombres'' calculables, il est pratiquement tout aussi facile de définir et d’étudier des fonctions calculables d’une variable entière ou d’une variable réelle ou calculable, des prédicats calculables, et ainsi de suite. Les enjeux fondamentaux inhérents sont, toutefois, les mêmes dans tous les cas, et mon choix de traiter plus particulièrement des nombres calculables se justifie par la technique la moins lourde que leur étude nécessite. J’espère donner bientôt un compte-rendu sur les relations entre nombres calculables, fonctions, etc. Il comprendra un développement de la théorie des fonctions d’une variable réelle exprimée en termes de nombres calculables. Conformément à ma définition, un nombre est dit calculable si sa partie décimale peut être écrite par une machine.
 +
 +
En §§ 9, 10 je présente quelques arguments dans l’intention de montrer que les nombres calculables comprennent tous les nombres qui pourraient intrinsèquement être considérés comme calculables. En particulier, je démontre que certaines grandes catégories de nombres sont calculables. Elles comprennent, par exemple, les parties réelles de tous les nombres algébriques et des zéros des fonctions de Bessel, les nombres π, ''e'', etc. Les nombres calculables ne comprennent cependant pas tous les nombres définissables, et l’on présente un exemple d’un nombre définissable qui n’est pas calculable.
 +
 +
Bien que l’ensemble des nombres calculables soit immense et, à bien des égards, comparable à celui des nombres réels, il est néanmoins dénombrable. J’examine en § 8 certains arguments qui sembleraient prouver le contraire. Par l’utilisation judicieuse de l’un de ces arguments, l’on aboutit à des conclusions qui sont en apparence les mêmes que celles de Gödel<ref name="ftn2"> Kurt Gödel, «&nbsp;Über formal unentscheidhare Sätze dze ''Principia Mathematica'' und verwandter Systeme, I&nbsp;», ''Monatshefte Math. Phys.''<nowiki>, 38, 1931, pp. 173-198 [«&nbsp;Sur les propositions formellement indécidables des </nowiki>''Principia Mathematica'' et des systèmes apparentés, I&nbsp;», trad. fr. de J.-B. Scherrer, in Jean-Yves Girard, ''Le Théorème de Gödel'', Seuil, Points Sciences, 1989. Note du traducteur].</ref><nowiki>. Ces résultats [231] ont d’importantes applications. En particulier, il est montré (§ 11) que le problème de la décision (</nowiki>''Entscheidungsproblem'') d’Hilbert ne peut avoir de solution.
 +
 +
Dans un article récent, Alonzo Church<ref name="ftn3"> Alonzo Church, «&nbsp;An unsolvable problem of elementary number theory&nbsp;», ''American J. of Math.'', 58, 1936, pp. 345-363.</ref> a introduit la notion de «&nbsp;calculabilité effective&nbsp;», équivalente à ma «&nbsp;calculabilité (''computabilité'')&nbsp;», mais définie de façon très différente. Church parvient à des conclusions similaires sur le problème de la décision<ref name="ftn4"> Alonzo Church, «&nbsp;A note on the Entscheidungsproblem&nbsp;», ''Journal of Symbolic Logic'', I, 1936, pp. 40-41. </ref>. La démonstration de l’équivalence entre «&nbsp;ma calculabilité&nbsp;» et la «&nbsp;calculabilité effective&nbsp;» de Church est esquissée dans un appendice au présent article.
 +
 +
 +
<center>1 ''Machines à calculer.''</center>
 +
 +
 +
Nous avons dit que les nombres calculables sont ceux dont les décimales sont calculables avec des moyens finis, ce qui réclame une définition un peu plus explicite, mais aucune véritable tentative pour justifier les définitions présentées ne sera tentée avant § 9. Dans l’immédiat, je me contenterai de dire que cette justification repose sur le fait que la mémoire humaine est nécessairement limitée.
 +
 +
Nous pouvons comparer un homme en train de calculer un nombre réel à une machine susceptible seulement de passer par un nombre fini d’états, ''q<sub>1''</sub>, ''q<sub>2''</sub>, …,''q<sub>n''</sub> que l’on appellera «&nbsp;''m''-configurations&nbsp;». La machine est équipée d’une «&nbsp;bande&nbsp;» (l’analogue du papier), qui la parcourt et est divisée en sections (appelées «&nbsp;cases&nbsp;»), chacune à même de porter un «&nbsp;symbole&nbsp;». À chaque instant, il n’y a «&nbsp;dans la machine&nbsp;» qu’une seule case, dite la case ''r'' contenant le symbole ''S''(''r''). Nous pouvons l’appeler la «&nbsp;case inspectée&nbsp;», et le symbole sur cette case le «&nbsp;symbole inspecté&nbsp;». Ce dernier est le seul et l’unique dont la machine est, pour ainsi dire, «&nbsp;directement consciente&nbsp;». Cependant, en modifiant sa ''m''-configuration, la machine peut effectivement garder la mémoire de quelques-uns des symboles qu’elle a «&nbsp;vus&nbsp;» (inspectés) auparavant. À chaque instant, le fonctionnement possible de la machine est déterminé par la ''m''-configuration ''q<sub>n''</sub> et le symbole inspecté ''S''(''r''). On appellera ce binôme'' ''(''q<sub>n''</sub>, ''S''(''r'')) la «&nbsp;configuration&nbsp;», et c’est elle qui conditionne l’évolution possible de la machine&nbsp;: dans certaines des configurations où la case inspectée est blanche (''i.e.'' ne porte aucun symbole), la machine inscrit un nouveau symbole dans la case&nbsp;; dans d’autres, elle efface le symbole inspecté. Dans son parcours, la machine peut aussi changer de case, mais seulement en glissant d’un seul rang à droite ou à gauche de la case inspectée. Enfin, la ''m''<nowiki>-configuration peut être modifiée. Certains des symboles inscrits [232] formeront la suite de chiffres formant la partie décimale du nombre réel calculé. Les autres ne sont que des marques qui servent d’«&nbsp;aide-mémoire&nbsp;». Seules ces dernières serviront à effacer.</nowiki>
 +
 +
À mon sens, ces opérations englobent toutes celles utilisées dans le calcul de la valeur d’un nombre. Il sera plus facile de justifier ce point de vue discutable lorsque le lecteur sera familiarisé avec la théorie des machines. Par conséquent, dans la section suivante, je poursuis le développement de cette théorie en supposant compris ce que l’on entend par «&nbsp;machine&nbsp;», «&nbsp;bande&nbsp;», «&nbsp;case inspectée&nbsp;», etc.
 +
 +
 +
<center>2 ''Définitions.''</center>
 +
 +
 +
''Machines automatiques.''
 +
 +
 +
Si, à chaque étape, le fonctionnement d’une machine (dans le sens de § 1) est ''entièrement'' déterminé par sa configuration, nous parlerons de «&nbsp;machine automatique&nbsp;» (ou ''a''-machine).
 +
 +
Dans certains cas, il nous faudrait utiliser des machines (machines à choix ou ''c''-machines<ref name="ftn5"> On pourrait dire aussi «&nbsp;à options&nbsp;» ou, en tenant compte de la définition qui en est donnée, partiellement déterministes (Note du traducteur).</ref>) dont le fonctionnement n’est que partiellement déterminé par sa configuration (d’où l’utilisation du mot «&nbsp;possible&nbsp;» en § 1). Lorsqu’une telle machine atteint l’une de ces configurations ambiguës, elle ne peut poursuivre sa tâche jusqu’à ce qu’un opérateur extérieur ait effectué un choix arbitraire. Nous serions dans le cas d’être obligés d’utiliser ces machines pour opérer sur des systèmes axiomatiques. Dans cet article, je ne traite que de machines automatiques et, par conséquent, j’omettrai souvent le préfixe ''a''-.
 +
 +
 +
''Machines à calculer.''
 +
 +
 +
On appellera machine à calculer une ''a''-machine qui imprime deux familles de symboles, dont ceux de la première (appelés chiffres) se limitent aux chiffres 0 et 1 (la deuxième famille comprenant tous les autres). Si la machine est équipée d’une bande vierge et se met en route à partir de sa bonne ''m''-configuration initiale, on appellera ''suite calculée par la machine'', la suite de symboles, tous de la première famille, qu’elle imprime, et ''nombre calculé par la machine'', le nombre réel dont la notation décimale binaire est obtenue en préfixant cette suite d’une virgule.
 +
 +
À chaque étape du fonctionnement de la machine, on dira que le numéro de la case inspectée, la suite complète des symboles sur la bande et la ''m''-configuration, décrivent la ''configuration complète'' de cette étape. On appellera ''transitions'' de la machine ses modifications et celles de la bande d’une configuration complète à la suivante.
 +
 +
 +
<nowiki>[233] </nowiki>''Machines cycliques et acycliques.''
 +
 +
 +
On appellera ''cyclique'' une machine à calculer qui n’inscrit jamais qu’un nombre fini de symboles de la première famille. Dans le cas contraire, elle est dite acyclique.
 +
 +
Une machine sera cyclique si elle atteint une configuration à partir de laquelle plus aucun mouvement n’est possible, ou bien si elle continue à fonctionner, et éventuellement à imprimer des symboles de la deuxième famille, mais ne peut plus du tout imprimer de symboles de la première. Le sens du terme «&nbsp;cyclique&nbsp;» sera expliqué en § 8.
 +
 +
 +
''Suites et nombres calculables.''
 +
 +
 +
On dit qu’une suite est calculable s’il existe une machine acyclique pouvant la calculer. Un nombre est calculable s’il existe une machine acyclique qui calcule sa partie décimale.
 +
 +
Pour éviter toute confusion, nous parlerons plus souvent de suites calculables que de nombres calculables.
 +
 +
 +
<center>3. ''Exemples de machines à calculer''.</center>
 +
 +
 +
I Pour calculer la suite 010101… on peut construire une machine à quatre ''m''-configurations, «&nbsp;b&nbsp;», «&nbsp;c&nbsp;», «&nbsp;e&nbsp;», «&nbsp;f&nbsp;», et capable d’imprimer les symboles «&nbsp;0&nbsp;» et «&nbsp;1&nbsp;». Le fonctionnement de cette machine est décrit dans le tableau suivant, dans lequel les signes de la colonne «&nbsp;opérations&nbsp;» signifient&nbsp;:
 +
 +
«&nbsp;''D''&nbsp;»&nbsp;: «&nbsp;la machine se déplace de façon à inspecter la case immédiatement à droite de celle qu’elle inspectait précédemment&nbsp;».
 +
 +
«&nbsp;''G''&nbsp;»&nbsp;: même chose à gauche.
 +
 +
«&nbsp;''E''&nbsp;»&nbsp;: «&nbsp;le symbole inspecté est effacé&nbsp;».
 +
 +
«&nbsp;''I''&nbsp;»&nbsp;: «&nbsp;impression&nbsp;» du symbole dans la case inspectée.
 +
 +
Ce tableau (ainsi que tous ceux qui suivent) doit être ainsi compris&nbsp;: pour une configuration décrite dans les deux premières colonnes, la machine suit dans l’ordre les instructions de la troisième, puis se place dans la ''m''-configuration décrite dans la dernière. Lorsque la deuxième colonne est vide, cela signifie que le fonctionnement exprimé dans les troisième et quatrième colonnes s’applique quel que soit le symbole ou l’absence de symbole. La ''m''-configuration initiale de la machine est b et la bande est vierge.
 +
 +
 +
''ConfigurationFonctionnement''
 +
 +
''m-config.symboleopérationsm-config. finale''
 +
 +
baucun''I''0, ''D''c
 +
 +
caucun''D''e
 +
 +
eaucun''I''1, ''D''f
 +
 +
faucun''D''b
 +
 +
 +
<nowiki>[234] Si, contrairement aux définitions de § 1, nous autorisons, dans la colonne des opérations, les instructions </nowiki>''D'' et ''G'' à apparaître plus d’une fois par ligne, nous pouvons simplifier considérablement le tableau.
 +
 +
''m-config.symboleopérationsm-config. finale''
 +
 +
aucun''I''0b
 +
 +
b ~0''D'', ''D'', ''I''1b
 +
 +
1''D'', ''D'', ''I''0b
 +
 +
 +
II. Un exemple légèrement plus compliqué se trouve dans la possibilité, pour calculer la suite 001011011101111011111…, de construire une machine à cinq ''m''-configurations, «&nbsp;o&nbsp;», «&nbsp;q&nbsp;», «&nbsp;p&nbsp;», «&nbsp;f&nbsp;», «&nbsp;b&nbsp;» et pouvant imprimer les symboles «&nbsp;ə&nbsp;», «&nbsp;x&nbsp;», «&nbsp;0&nbsp;» et «&nbsp;1&nbsp;». Les trois premiers symboles inscrits sur la bande seront «&nbsp;əə0&nbsp;», et les chiffres suivants dans une case sur deux. Sur les cases intermédiaires nous n’imprimons invariablement que des «&nbsp;x&nbsp;». Ces «&nbsp;''x''&nbsp;» nous servent à «&nbsp;marquer l’emplacement&nbsp;» et sont effacés dès que nous n’en avons plus besoin. Par ailleurs, nous nous arrangeons pour qu’il n’y ait aucun blanc dans la suite de chiffres sur les cases alternées.
 +
 +
 +
''ConfigurationFonctionnement''
 +
 +
''m-config.symboleopérationsm-config. finale''
 +
 +
b''I''ə, ''D'', ''I''ə, ''D'', ''I''0, ''D'', ''D'', ''I''0, ''G'', ''G''o
 +
 +
1''D'', ''I''x, ''G'', ''G'', ''G''o
 +
 +
o ~
 +
 +
0q
 +
 +
n’importe lequel (0 ou 1)''D'', ''D''q
 +
 +
q ~
 +
 +
aucun''I''1, ''G''p
 +
 +
x''E'', ''D''q
 +
 +
p ~ə''D''f
 +
 +
aucun''G'', ''G''p
 +
 +
n’importe lequel''D'', ''D''f
 +
 +
f ~
 +
 +
aucun''I''0, ''G'', ''G''o
 +
 +
 +
<nowiki>Un tableau des premières configurations complètes de la machine est présenté ci-dessous pour illustrer son fonctionnement. Celles-ci sont décrites en notant la suite de symboles présents sur la bande, [235], avec la </nowiki>''m''-configuration inscrite sous le symbole inspecté. Les configurations complètes successives sont séparées par des doubles points.
 +
 +
_ &nbsp;: ə ə 0 _ 0&nbsp;: ə ə 0 _ 0&nbsp;: ə ə 0 _ 0&nbsp;: ə ə 0 _0 _ &nbsp;: ə ə 0 _ 0 _ 1&nbsp;: ə ə 0 _ 0 _ 1&nbsp;: ə ə 0 _ 0 _ 1&nbsp;:
 +
 +
boqqqppp
 +
 +
ə ə 0 _ 0 _ 1&nbsp;: ə ə 0 _ 0 _ 1&nbsp;: ə ə 0 _ 0 _ 1&nbsp;: ə ə 0 _ 0 _ 1 _ _ &nbsp;: ə ə 0 _ 0 _ 1 _ 0&nbsp;:
 +
 +
ffffo
 +
 +
ə ə 0 _ 0 _ 1 x'' ''0&nbsp;: … .
 +
 +
o
 +
 +
 +
On pourrait aussi écrire ce tableau en inscrivant la ''m''-configuration dans un espace créé immédiatement à gauche du symbole inspecté.
 +
 +
b _ &nbsp;: ə ə o 0 _ 0&nbsp;: ə ə q 0 _ 0&nbsp;: … .(C)
 +
 +
Cette forme est moins facile à suivre, mais nous l’utiliserons par la suite à des fins théoriques.
 +
 +
La convention d’inscrire les chiffres uniquement une case sur deux est très pratique, et je l’utiliserai constamment. J’appellerai cette seule suite de cases les ''C''-cases, et l’autre suite de cases intermédiaires les ''E''-cases. Les symboles des ''E''-cases seront les seuls à pouvoir être effacés. Ceux des ''C''-cases forment une suite continue sans aucun blanc jusqu’à la fin. Il n’est pas nécessaire d’avoir plus d’une ''E''-case entre deux ''C''-cases&nbsp;: on peut satisfaire un besoin apparent d’''E''-cases supplémentaires par une variété suffisamment riche de symboles imprimables sur les ''E''-cases existantes. Si un symbole ''ß'' se trouve dans une ''C''-case ''S'', et un symbole ''α'' dans l’''E''-case suivante à droite de ''S'', on dira alors de ''S'' et de ''ß'' qu’ils sont ''marqués'' avec ''α''. On appellera marquage de ''ß'' (ou de ''S'') avec ''α'' la procédure d’impression de ''α'' sur cette case à droite de ''S''.
 +
 +
 +
<center>4.'' Tableaux abrégés''.</center>
 +
 +
 +
Il existe certains types de traitements utilisés dans presque toutes les machines et, dans certaines machines, ils le sont à de nombreuses reprises. Ces traitements comprennent la reproduction et la comparaison de suites de symboles, l’effacement de tous les symboles d’une forme donnée, etc. Là où de tels traitements sont effectués, nous pouvons simplifier considérablement les tableaux des ''m''-configurations en utilisant des «&nbsp;tableaux types&nbsp;», où apparaissent des lettres majuscules et des lettres minuscules grecques, qui sont les unes et les autres des «&nbsp;variables&nbsp;». En remplaçant totalement chaque lettre majuscule par une ''m''<nowiki>-configuration [236] et chaque minuscule grecque par un symbole, nous obtenons le tableau pour une </nowiki>''m''-configuration.
 +
 +
Il faut considérer que les tableaux types ne sont rien de plus que des abréviations&nbsp;: ils ne sont pas essentiels. Du moment que le lecteur comprend comment obtenir les tableaux complets à partir des tableaux types, il n’est pas nécessaire d’en donner des définitions exactes.
 +
 +
<nowiki>Prenons un exemple [</nowiki>''fonction trouver'', f = ''find'']&nbsp;:
 +
 +
''m-config.symbolefonctionnementm-configuration finale''
 +
 +
ə''G''f<sub>1</sub>('''E''', '''B''', α) À partir de la ''m''-configuration f('''E''', '''B''', α) la machine trouve le symbole α qui est le plus à gauche (le «&nbsp;premier α&nbsp;») et la ''m''-configuration devient '''E'''. S’il n’y a pas d’α la ''m''-configuration devient '''B'''.
 +
 +
f('''E''', '''B''', α) ~ non ə''G''f('''E''', '''B''', α)
 +
 +
aucun''G''f('''E''', '''B''', α)
 +
 +
α'''E'''
 +
 +
f<sub>1</sub>('''E''', '''B''', α) ~non α''D''f<sub>1</sub>('''E''', '''B''', α)
 +
 +
aucun''D''f<sub>2</sub>('''E''', '''B''', α)
 +
 +
α'''E'''
 +
 +
f<sub>2</sub>('''E''', '''B''', α) ~non α''D''f<sub>1</sub>('''E''', '''B''', α)
 +
 +
aucun''D'''''B'''
 +
 +
S’il nous fallait remplacer totalement les variables par des ''m''-configurations et des symboles, par exemple''' E''' par q, '''B''' par r, et α par ''x'', nous obtiendrions un tableau complet pour la ''m''-configuration f(q, r, ''x''). On appellera f une «&nbsp;fonction de ''m''-configuration&nbsp;» ou «&nbsp;''m''-fonction&nbsp;».
 +
 +
Dans une ''m''-fonction, les seules expressions admissibles pour un remplacement de variables sont les ''m''-configurations et les symboles de la machine. Elles doivent être énumérées plus ou moins explicitement, et certaines peuvent être de la forme p(e, ''x'')&nbsp;; elles sont même indispensables si l’on utilise la moindre des ''m''-fonctions. Si nous n’insistions pas sur cette énumération explicite, mais nous contentions d’établir que la machine a un certain nombre de ''m''-configurations (énumérées) et toutes les ''m''-configurations obtenues par substitution de ''m''-configurations dans certaines ''m''-fonctions, nous aurions en général obtenu une infinité de ''m''-configurations&nbsp;; par exemple, nous devrions alors dire que la machine, ayant la ''m''-configuration q et toutes celles obtenues en substituant une ''m''-configuration à '''E''' dans p('''E'''), aurait les ''m''-configurations q, p(q), p(p(q)), p(p(p(q))), etc.
 +
 +
Notre règle d’interprétation est alors la suivante&nbsp;: on nous a fourni les noms des ''m''-configurations de la machine, la plupart exprimées en termes de ''m''-fonctions, ainsi que des tableaux types, et nous ne voulons que le tableau complet pour toutes les ''m''-configurations de la machine. On l’obtient par substitutions réitérées des variables dans les tableaux types.
 +
 +
 +
<nowiki>[237] </nowiki>''Autres exemples''.
 +
 +
 +
Dans les commentaires ci-dessous, on utilise le symbole «&nbsp;→&nbsp;» dans le sens de «&nbsp;la machine se place dans la m-configuration… .&nbsp;»)
 +
 +
<nowiki>[</nowiki>''fonction effacer''&nbsp;: e <nowiki>= </nowiki>''erase'']
 +
 +
<nowiki>[</nowiki>''m-config.symboleopérationsm-config. finale'']
 +
 +
e('''E''', '''B''', α)f(e<sub>1</sub>('''E''', '''B''', α), '''B''', α)À partir de e('''E,''' '''B''', α) le premier α est effacé et → '''E'''. S’il n’y a pas d’α → '''B'''.
 +
 +
e<sub>1</sub>('''E''', '''B''', α)''E'''''E'''
 +
 +
e('''B''', α)e(e ('''B''', α), '''B''', α)À partir de e('''B''', α) toutes les lettres α sont effacées et → '''B'''.
 +
 +
L’interprétation de ce dernier exemple semble un peu plus difficile que celle de la plupart des autres. Supposons que dans la liste des ''m''-configurations d’une certaine machine apparaisse e(b, ''x'') (= q comme exemple de substitution). On obtient le tableau&nbsp;:
 +
 +
e (b, ''x'')e(e(b, ''x''), b, ''x'')
 +
 +
Ou
 +
 +
qe(q, b, ''x'').
 +
 +
Ou encore, en plus détaillé&nbsp;:
 +
 +
qe(q, b, ''x'')
 +
 +
e (q, b, ''x'')f(e<sub>1</sub>(q, b, ''x''), b, ''x'')
 +
 +
e<sub>1</sub>(q, b, ''x'')''E''q.
 +
 +
De là, nous pourrions remplacer e<sub>1</sub>(q, b, ''x'') par q’, puis présenter le tableau de f (avec les substitutions adéquates) et obtenir en fin de compte un tableau complet où n’apparaîtrait plus aucune ''m''-fonction.
 +
 +
<nowiki>[</nowiki>''fonction impression finale'', pe = ''print at end''''']'''
 +
 +
<nowiki>[</nowiki>''m-config.symboleopérationsm-config. finale'']
 +
 +
pe('''E''', ''ß'')f(pe<sub>1</sub>('''E''', ''ß''), '''E''', ə) À partir de pe('''E''', ''ß'') la machine imprime ''ß'' à la fin de la suite de symboles et → '''E'''.
 +
 +
n’importe lequel''D, D'' pe<sub>1</sub> ('''E''', ''ß'')
 +
 +
pe<sub>1</sub>('''E''', ''ß'') ~
 +
 +
aucun ''Iß'''''E'''
 +
 +
 +
l('''E''')''G'''''E'''
 +
 +
r('''E''')''D'''''E'''
 +
 +
<nowiki>[</nowiki>''fonction trouver'', f = ''find'']
 +
 +
f’('''E''', '''B''', α)f(l('''E'''), '''B''', α) À partir de f’('''E''', '''B''', α), comme à partir de f('''E''', '''B''', α), la machine trouve le premier symbole α, le plus à gauche, mais avant se déplace à gauche → '''E<sub>1'''</sub>. S’il n’y a pas d’α → '''B'''.
 +
 +
f’’('''E''', '''B''', α)f(r('''E'''), '''B''', α)À partir de f’’('''E''', '''B''', α) pareillement mais à droite → '''E<sub>1'''</sub>. S’il n’y a pas d’α → '''B'''.
 +
 +
<nowiki>[</nowiki>''fonction copier'', c = ''copy'']
 +
 +
c('''E''', '''B''', α)f’(c<sub>l</sub>('''E'''), '''B''', α)À partir de c('''E''', '''B''', α). la machine inscrit le premier symbole marqué avec α à la fin de la suite de symboles et → '''E'''.
 +
 +
c<sub>1</sub>('''E''')''ß''pe('''E''', ''ß'').
 +
 +
<nowiki>[238] Cette dernière ligne engendre toutes celles que l’on obtient en remplaçant </nowiki>''ß'' par tout symbole susceptible d’apparaître sur la bande de la machine concernée.
 +
 +
''m-config.symboleopérationsm-config. finale''
 +
 +
<nowiki>[</nowiki>''fonction copier-effacer'', ce = ''copy erase'']
 +
 +
ce('''E''', '''B''', α)c(e('''E''', '''B''', α), '''B''', α)
 +
 +
ce('''B''', α)ce(ce('''B''', α), '''B''', α) ce('''B''', α). À la fin, la machine recopie dans l’ordre tous les symboles marqués avec α, efface les lettres α et → '''B'''.
 +
 +
<nowiki>[</nowiki>''fonction remplacer'', re = ''replace'']
 +
 +
re('''E''', '''B''', α, ''ß'')f(re<sub>1</sub>('''E''', '''B''', α, ''ß''), '''B''', α)re('''E''', '''B''', α, ''ß''). La machine remplace le premier α par ''ß'' et → '''E''' ou → '''B''' s’il n’y a pas d’α.
 +
 +
re<sub>1</sub>('''E''', '''B''', α, ''ß'')''E, Iß'''''E'''
 +
 +
re('''B''', α, ''ß'')re(re('''B''', α, ''ß''), '''B''', α, ''ß'')re('''B''', α, ''ß''). La machine remplace tous les α par ''ß'' et → '''B'''.
 +
 +
 +
cr('''E''', '''B''', α) c(re('''E''', '''B''', α, ''a'', ''a''), '''B''', α)
 +
 +
cr('''B''', α) cr(cr('''B''', α), re('''B''', ''a'', α), α)cr('''B''', α). Même recopie que ce('''B''', α) mais sans effacer les marques α. On utilise cette ''m''-configuration lorsqu’il n’y a pas de lettres «&nbsp;''a''&nbsp;» déjà présentes sur la bande.
 +
 +
<nowiki>[</nowiki>''fonction comparer'', cp = ''compare'']
 +
 +
cp('''E<sub>1'''</sub>, '''U''', '''E''', α, ''ß'') f’(cp<sub>1</sub>('''E<sub>1'''</sub>, '''U''', ''ß''), f('''U''', '''E''', ''ß''), α)cp('''E<sub>1'''</sub>, '''U''', '''E''', α, ''ß''). La machine compare le premier symbole marqué avec α et le premier marqué avec ''ß'' et, s’il n’y a ni α ni ''ß'', → '''E''', → '''E&nbsp;;''' si les symboles y sont tous deux et sont égaux, → '''U'''.
 +
 +
cp<sub>1</sub>('''E''', '''U''', ''ß'')''γ''f’(cp<sub>2</sub>('''E''', '''U''', ''γ''), '''U''', ''ß'')
 +
 +
''γ'''''E'''
 +
 +
cp<sub>2</sub>('''E''', '''U''', γ) ~
 +
 +
non ''γ'''''U'''.
 +
 +
<nowiki>[</nowiki>''fonction comparer-effacer'', cpe = ''compare erase'']
 +
 +
cpe('''E<sub>1'''</sub>, '''U''', '''E''', α, ''ß'')cp(e(e('''E<sub>1'''</sub>, '''E''', ''ß''), '''U''', '''E''', α, ''ß'')cpe('''E<sub>1'''</sub>, '''U''', '''E''', α, ''ß'') la machine fait la même comparaison que cp('''E<sub>1'''</sub>, '''U''', '''E''', α, ''ß'') entre les premiers symboles marqués α et ''ß'', mais les efface s’ils sont égaux.
 +
 +
cpe('''U''', '''E''', α, ''ß'')cpe(cpe('''U''', '''E''', α, ''ß''), '''U''', '''E''', α, ''ß'')cpe('''U''', '''E''', α, ''ß''). la machine compare la suite des symboles marqués avec α et celle marquée avec ''ß'' et, si elles sont égales, → '''E''', sinon → '''U'''. Certains des symboles α et ''ß'' sont effacés.
 +
 +
<nowiki>[239]</nowiki>
 +
 +
n’importe lequel''D''q('''E''')
 +
 +
 +
q('''E''') ~
 +
 +
aucun''D''q<sub>1</sub>('''E''')
 +
 +
n’importe lequel''D''q('''E''')
 +
 +
q<sub>1</sub>('''E''') ~
 +
 +
aucun'''E'''
 +
 +
q('''E''', α)q(q<sub>1</sub>('''E''', α)) q('''E''', α). La machine trouve le dernier symbole α, et → '''E'''.
 +
 +
α'''E'''
 +
 +
q<sub>1</sub>('''E''', α) ~
 +
 +
non α''G''q<sub>1</sub>('''E''', α)
 +
 +
<nowiki>[</nowiki>''fonction impression finale'', pe = ''print at end''''']'''
 +
 +
pe<sub>2</sub>('''E''', α, ''ß'')pe(pe('''E''', ''ß''), α)pe<sub>2</sub>('''E''', α, ''ß''). La machine imprime α ''ß'' à la fin sur les deux dernières ''C''-cases.
 +
 +
<nowiki>[</nowiki>''fonction copier-effacer'', ce = ''copy erase'']
 +
 +
ce<sub>2</sub>('''B''', α, ''ß'')ce(ce('''B''', ''ß''), α)
 +
 +
ce<sub>3</sub>('''B''', α, ''ß'', ''γ'')ce(ce<sub>2</sub>('''B''', ''ß'', ''γ''), α)ce<sub>3</sub>('''B''', α, ''ß'', ''γ''). À la fin, la machine recopie les symboles marqués avec α, puis ceux marqués avec ''ß'', et enfin ceux marqués avec ''γ''&nbsp;; elle efface les marques α, ''ß'', ''γ'', puis → '''B'''.
 +
 +
<nowiki>[</nowiki>''fonction effacer'', e = ''erase'']
 +
 +
ə''D''e<sub>1</sub>('''E''')e('''E'''). À partir de là les marques sont effacées de tous les symboles marqués sur les ''E''-cases, et → '''E'''.
 +
 +
e('''E''') ~
 +
 +
non ə''G''e('''E''')
 +
 +
n’importe lequel''D, E, D''e<sub>1</sub>('''E''')
 +
 +
e<sub>1</sub>('''E''') ~
 +
 +
aucun'''E'''
 +
 +
 +
<center>5. ''Énumération des suites calculables.''</center>
 +
 +
 +
Une suite calculable ''γ'' est déterminée par la description d’une machine qui calcule cette suite. Ainsi, le tableau de la p. 234 détermine la suite 001011011101111… . En fait, toute suite calculable peut être décrite au moyen d’un tableau de ce genre.
 +
 +
Il sera utile de mettre ces tableaux dans un format standard. En premier lieu, supposons que le tableau se présente sous le même forme que le premier tableau, par exemple, I p. 233, à savoir que les seules opérations admises dans la colonne du même nom sont de l’une des formes ''E''&nbsp;: ''E'', ''D''&nbsp;: ''E'', ''G''&nbsp;: ''I''α&nbsp;: ''I''α, ''D''&nbsp;: ''I''α, ''G''&nbsp;: ''D''&nbsp;: ''G''&nbsp;: ou l’opération nulle (''N''). Le tableau peut toujours être mis sous cette forme en introduisant de nouvelles ''m''-configurations. Maintenant, numérotons les ''m''-configurations ''q''<sub>1</sub>, ''q''<sub>2</sub>, … ''q<sub>R''</sub>, de la même façon qu’en § 1. La ''m''-configuration initiale est toujours ''q''<sub>1</sub>. Nous numérotons de même les symboles ''S''<sub>1</sub>, ''S''<sub>2</sub>, …, ''S''<sub>m</sub><nowiki> [240] et, en particulier, </nowiki>''S''<sub>0</sub> = blanc, ''S''<sub>1 </sub><nowiki>= 0, </nowiki>''S''<sub>2 </sub><nowiki>= 1. Désormais, les lignes du tableau prennent l’une des trois formes suivantes (quels que soient </nowiki>''i'', ''j'', ''k'', ''m'').
 +
 +
''m-config.symboleopérationsm-config. finale''
 +
 +
''q<sub>i</sub>S<sub>j</sub>IS<sub>k''</sub>, ''Gq<sub>m''</sub>(''N''<sub>1</sub>)
 +
 +
''q<sub>i</sub>S<sub>j</sub>IS<sub>k''</sub>, ''Dq<sub>m''</sub>(''N''<sub>2</sub>)
 +
 +
''q<sub>i</sub>S<sub>j</sub>IS<sub>k</sub>q<sub>m''</sub>(''N''<sub>3</sub>)
 +
 +
Des lignes telles que
 +
 +
''q<sub>i</sub>S<sub>j</sub>E, Dq<sub>m''</sub>
 +
 +
sont à réécrire ainsi
 +
 +
''q<sub>i</sub>S<sub>j</sub>IS''<sub>0</sub>, ''Dq<sub>m''</sub>
 +
 +
et des lignes telles que
 +
 +
''q<sub>i</sub>S<sub>j</sub>Dq<sub>m''</sub>
 +
 +
réécrites ainsi
 +
 +
''q<sub>i</sub>S<sub>j</sub>IS<sub>j''</sub>, ''Dq<sub>m''</sub>
 +
 +
De cette manière, nous réduisons chaque ligne du tableau en une ligne d’une des formes (''N''<sub>1</sub>), (''N''<sub>2</sub>) ou (''N''<sub>3</sub>).
 +
 +
À partir de chaque ligne de la forme (''N''<sub>1</sub>), formons l’expression ''q<sub>i</sub>S<sub>j</sub>S<sub>k</sub>Gq<sub>m''&nbsp;</sub><nowiki>; à partir de chaque ligne de la forme (</nowiki>''N''<sub>2</sub>), l’expression ''q<sub>i</sub>S<sub>j</sub>S<sub>k</sub>Dq<sub>m''&nbsp;</sub><nowiki>; et à partir de chaque ligne de forme (</nowiki>''N''<sub>3</sub>) l’expression ''q<sub>i</sub>S<sub>j</sub>S<sub>k</sub>Nq<sub>m''</sub>.
 +
 +
Notons à la suite toutes les expressions ainsi formées à partir du tableau de la machine et séparons-les par des points-virgules. Nous obtenons ainsi une description complète de la machine. Dans cette description, nous remplacerons ''q<sub>i''</sub> par la lettre «&nbsp;C&nbsp;» suivie de ''i'' fois la lettre «&nbsp;A&nbsp;», et ''S<sub>j''</sub> par «&nbsp;C&nbsp;» suivi de ''j'' fois «&nbsp;B&nbsp;». On peut appeler cette nouvelle description la ''description standard'' (D.S) de la machine. Elle n’est composée que des caractères «&nbsp;A&nbsp;», «&nbsp;B&nbsp;», «&nbsp;C&nbsp;», «&nbsp;''G''&nbsp;», «&nbsp;''D''&nbsp;», «&nbsp;''N''&nbsp;», et «&nbsp;;&nbsp;».
 +
 +
Enfin, si nous remplaçons les signes par des chiffres&nbsp;: «&nbsp;A&nbsp;» par «&nbsp;1&nbsp;», «&nbsp;B&nbsp;» par «&nbsp;2&nbsp;», «&nbsp;C&nbsp;» par «&nbsp;3&nbsp;», «&nbsp;''G''&nbsp;» par «&nbsp;4&nbsp;», «&nbsp;''D''&nbsp;» par «&nbsp;5&nbsp;», «&nbsp;''N''&nbsp;» par «&nbsp;6&nbsp;», et «&nbsp;;&nbsp;» par «&nbsp;7&nbsp;», nous obtiendrons une description de la machine sous la forme d’une suite de chiffres arabes. On peut appeler l’entier représenté par cette suite le ''nombre descriptif''<nowiki> (N.D) de la machine. Le N.D détermine exclusivement la D.S et la structure de la [241] machine. On peut noter </nowiki>M(''n'') la machine dont le N.D est ''n''.
 +
 +
À chaque suite calculable correspond au moins un nombre descriptif, tandis qu’à un nombre descriptif correspond au plus une suite calculable. L’ensemble des suites et des nombres calculables est par conséquent dénombrable.
 +
 +
Cherchons le nombre descriptif de la machine I de § 3. En renommant les ''m''-configurations, on obtient le nouveau tableau&nbsp;:
 +
 +
''q''<sub>1</sub>''S''<sub>0</sub>''IS''<sub>1</sub>, ''Dq''<sub>2</sub>
 +
 +
''q''<sub>2</sub>''S''<sub>0</sub>''IS''<sub>0</sub>, ''Dq''<sub>3</sub>
 +
 +
''q''<sub>3</sub>''S''<sub>0</sub>''IS''<sub>2</sub>, ''Dq''<sub>4</sub>
 +
 +
''q''<sub>4</sub>''S''<sub>0</sub>''IS''<sub>0</sub>, ''Dq''<sub>1</sub>
 +
 +
On pourrait obtenir d’autres tableaux en ajoutant des lignes inutiles telle que&nbsp;:
 +
 +
''q''<sub>1</sub>''S''<sub>1</sub>''IS''<sub>1</sub>, ''Dq''<sub>2</sub>
 +
 +
On obtiendrait à partir de ce tableau la première forme standard de la machine&nbsp;:
 +
 +
''q''<sub>1</sub>''S''<sub>0</sub>''S''<sub>1</sub>''Dq''<sub>2&nbsp;; </sub>''q''<sub>2</sub>''S''<sub>0</sub>''S''<sub>0</sub>''Dq''<sub>3&nbsp;;</sub>'' q''<sub>3</sub>''S''<sub>0</sub>''S''<sub>2</sub>''Dq''<sub>4&nbsp;;</sub>'' q''<sub>4</sub>''S''<sub>0</sub>''S''<sub>0</sub>''Dq''<sub>1&nbsp;;</sub>
 +
 +
Et la description standard&nbsp;:
 +
 +
&nbsp;; CACCBDCAA&nbsp;; CAACCDCAAA&nbsp;; CAAACCBBDCAAAA''&nbsp;; ''CAAAACCDCA
 +
 +
Enfin un nombre descriptif de la machine&nbsp;:
 +
 +
31332531173113353111731113322531111731111335317
 +
 +
Et, avec la ligne inutile, cet autre N.D&nbsp;:
 +
 +
3133253117311335311173111332253111173111133531731323253117
 +
 +
Un nombre sera dit ''satisfaisant'' s’il est le nombre descriptif d’une machine acyclique. En § 8, l’on démontre qu’il ne peut exister de procédure générale pour décider si un nombre donné est satisfaisant ou ne l’est pas.
 +
 +
 +
<center>6. ''La machine à calculer universelle''.</center>
 +
 +
 +
Il est possible de créer une unique machine U utilisable pour calculer n’importe quelle suite calculable. Si cette machine est équipée d’une bande au début de laquelle est inscrite la D.S d’une machine à calculer quelconque M,<nowiki> [242] </nowiki>U calculera alors une suite identique à celle que M calculerait. Dans cette section, j’explique dans ses grandes lignes le fonctionnement de U, dont le tableau complet est présenté dans la suivante.
 +
 +
Supposons d’abord que nous disposons d’une machine M’, qui inscrira dans les ''C''-cases la suite des configurations complètes de M. On pourrait exprimer celles-ci sous la même forme qu’à la p. 235, à l’aide du second modèle (C) où tous les symboles figurent sur une seule ligne. Ou, mieux, nous pourrions transformer ce modèle (comme en § 5) en remplaçant chaque ''m''-configuration par «&nbsp;C&nbsp;» suivi du nombre adéquat de «&nbsp;A&nbsp;», et en remplaçant chaque symbole par «&nbsp;C&nbsp;» suivi du nombre adéquat de «&nbsp;B&nbsp;». Les nombres de lettres «&nbsp;A&nbsp;» et «&nbsp;B&nbsp;» doivent être les mêmes que ceux choisis en § 5, de sorte que, en particulier, blanc soit remplacé par «&nbsp;C&nbsp;», «&nbsp;0&nbsp;» par «&nbsp;CB&nbsp;» et 1 par «&nbsp;CBB&nbsp;». Il faut réaliser ces substitutions après l’assemblage des configurations complètes, comme dans (C). Des difficultés surviennent si nous procédons d’abord aux substitutions, car les blancs de chaque configuration complète devraient alors tous être remplacés par des «&nbsp;C&nbsp;», de sorte qu’une configuration complète ne puisse être exprimée au moyen d’une suite finie de symboles.
 +
 +
Ainsi, si, dans la description de la machine II de § 3, nous remplaçons «&nbsp;o&nbsp;» par «&nbsp;CAA&nbsp;», «&nbsp;ə&nbsp;» par «&nbsp;CBBB&nbsp;», «&nbsp;q&nbsp;» par «&nbsp;CAAA&nbsp;», la suite (C) devient&nbsp;:
 +
 +
CA''&nbsp;: ''CBBBCBBBCAACBCCB''&nbsp;: ''CBBBCBBBCAAACBCCB&nbsp;:… (C<sub>1</sub>)
 +
 +
(c’est la suite de symboles sur les ''C''-cases).
 +
 +
Dès lors, il n’est pas difficile de voir que, si M peut être construite, c’est aussi le cas de M’. Chaque étape du calcul dans le mode de fonctionnement de la machine M’ va se référer aux règles de fonctionnement (''i.e.'', la D.S.) de la machine M, incluses d’une manière ou d’une autre dans M’. Si nous ne considérons ces règles que dans leur faculté d’être retirées et remplacées par d’autres, nous obtenons quelque chose de très proche de la machine universelle.
 +
 +
Il manque encore un élément&nbsp;: pour le moment, la machine M’ n’imprime pas de chiffres. Nous pouvons y pallier en imprimant entre deux configurations complètes successives les chiffres apparus dans celle qui est la plus récente des deux. La suite (C<sub>1</sub>) devient alors&nbsp;:
 +
 +
CA&nbsp;: 0&nbsp;: 0&nbsp;: CBBBCBBBCAACBCCB''&nbsp;: ''CBBBCBBBCAAACBCCB''&nbsp;: ''CBBB… (C<sub>2</sub>)
 +
 +
Il n’est pas très évident que les ''E''-cases soient en nombre suffisant pour le «&nbsp;gros&nbsp;» du travail nécessaire, mais c’est pourtant le cas.
 +
 +
Les suites de lettres comprises entre les doubles points dans des expressions telles que (C<sub>1</sub><nowiki>) peuvent être utilisées comme descriptions standard des configurations complètes. Si les lettres sont remplacées par des chiffres, comme en § 5, nous obtiendrons la description [243] d’une configuration complète sous la forme d’un nombre entier, que l’on peut appeler son nombre descriptif.</nowiki>
 +
 +
 +
<center>7. ''Description détaillée de la machine universelle''.</center>
 +
 +
 +
Nous présentons ci-dessous le tableau du fonctionnement de cette machine universelle. Ses ''m''-configurations sont toutes celles qui apparaissent dans la première et la dernière colonne du tableau, ainsi que toutes celles notées sur les tableaux complets provenant du développement des ''m''-fonctions qui y figurent. Par exemple, e(anf) apparaît dans le tableau et c’est une ''m''-fonction. Son tableau non abrégé est (voir p. 239)
 +
 +
ə''D''e<sub>1</sub>(anf)
 +
 +
e(anf) ~
 +
 +
non ə''G''e(anf)
 +
 +
n’importe lequel''D'', ''E'', ''D''e<sub>1</sub>(anf)
 +
 +
e<sub>1</sub>(anf) ~
 +
 +
aucunanf
 +
 +
Par conséquent, e<sub>1</sub>(anf) est une ''m''-configuration de U.
 +
 +
Lorsque l’on va mettre U en route, la bande qui la parcourt présente&nbsp;:
 +
 +
- les symboles «&nbsp;əə&nbsp;», l’un dans une ''C''-case et l’autre dans la ''E''-case suivante.
 +
 +
- puis, uniquement dans des ''C''-cases (un seul symbole par case), la D.S de la machine, composée d’un certain nombre d’instructions séparées par des points-virgules.
 +
 +
- un double deux-points «&nbsp;‡&nbsp;» sur la ''C''-case qui suit immédiatement la D.S.
 +
 +
Chaque instruction comprend cinq parties consécutives&nbsp;:
 +
 +
(i) un «&nbsp;C&nbsp;» suivi d’une série de «&nbsp;A&nbsp;», qui décrit la m-configuration pertinente.
 +
 +
(ii) un «&nbsp;C&nbsp;» suivi d’une série de «&nbsp;B&nbsp;», qui décrit le symbole inspecté.
 +
 +
(iii) un «&nbsp;C&nbsp;» suivi d’une autre série de «&nbsp;B&nbsp;», qui indique le symbole destiné à changer celui de la case inspectée.
 +
 +
(iv) «&nbsp;''G''&nbsp;», «&nbsp;''D''&nbsp;» ou «&nbsp;''N''&nbsp;», qui indique si la machine doit se déplacer à gauche, à droite, ou ne pas se déplacer.
 +
 +
(v) un «&nbsp;C&nbsp;» suivi d’une série de «&nbsp;A&nbsp;», qui décrit la ''m''-configuration finale.
 +
 +
La machine U doit pouvoir imprimer les symboles «&nbsp;A&nbsp;», «&nbsp;B&nbsp;», «&nbsp;C&nbsp;», «&nbsp;0&nbsp;», «&nbsp;1&nbsp;», «&nbsp;''u''&nbsp;», «&nbsp;''v''&nbsp;», «&nbsp;''w''&nbsp;», «&nbsp;''x''&nbsp;», «&nbsp;''y''&nbsp;», «&nbsp;''z''&nbsp;», «&nbsp;:&nbsp;». La D.S de la machine est composée des symboles «&nbsp;;&nbsp;», «&nbsp;A&nbsp;», «&nbsp;B&nbsp;», «&nbsp;C&nbsp;», «&nbsp;''D''&nbsp;», «&nbsp;''G''&nbsp;» et «&nbsp;''N''&nbsp;».
 +
 +
 +
<nowiki>[244] </nowiki>''Tableau auxiliaire type''.
 +
 +
<nowiki>[</nowiki>''fonction configurer''&nbsp;: con = ''configure'']
 +
 +
non A''D, D''con('''E''', α)À partir de con('''E''', α). En partant d’une ''C''-case, disons ''S'', la machine marque avec des α la suite (C) des cases qui définissent la configuration (''m''-configuration et symbole) la plus proche à droite de la case inspectée ''S'', et → '''E'''.
 +
 +
con('''E''', α) ~
 +
 +
A''G, Iα, D''con<sub>1</sub> ('''E''', α)
 +
 +
A''D, Iα, D''con<sub>1</sub>('''E''', α)
 +
 +
con<sub>1</sub>('''E''', α) ~C''D, Iα, D''con<sub>2</sub>('''E''', α)
 +
 +
aucun''I''C, ''D, Iα, D'', ''D'', ''D'''''E'''
 +
 +
ligne nécessaire pour introduire la représentation C de la case blanche lorsque la configuration complète de la machine finit par un q, notamment au démarrage de la machine ou lorsqu’un mouvement à droite fait passer au-delà de la dernière case inspectée. La correction rend valide la comparaison effectuée un peu plus loin dans fmp.
 +
 +
B''D, Iα, D''con<sub>2</sub>('''E''', α)
 +
 +
con<sub>2</sub> ('''E''', α) ~
 +
 +
non B''D, D'''''E''' L’appel con('''E''', ) place la machine, dans la configuration finale, sur la quatrième case à droite de la dernière case de la suite (C) trouvée, dont les marques sont effacées le cas échéant.
 +
 +
 +
''Tableau de ''U.
 +
 +
<nowiki>[</nowiki>''fonction commencer''&nbsp;: b = ''begin'']
 +
 +
bf(b<sub>1</sub>, b<sub>1</sub>, ‡)À partir de b. La machine inscrit&nbsp;: ''D''A sur les ''C''-cases juste après le ‡, et → anf.
 +
 +
b<sub>1</sub>''D, D, I&nbsp;:, D, D, I''C'', D, D, I''Aanf
 +
 +
anf''q''(anf<sub>1</sub>,&nbsp;:)anf. La machine marque avec ''y'' la configuration de la dernière configuration complète, et → fom.
 +
 +
anf<sub>1</sub>con(fom, ''y'')
 +
 +
&nbsp;;''D, Iz, G''con(fmp, ''x'')fom. La machine trouve le dernier point-virgule non marqué avec ''z'', le marque avec ''z'', et la configuration suivante avec ''x'', puis → fmp.
 +
 +
fom ~''zG'', ''G''fom
 +
 +
ni ''z'' ni &nbsp;;''G''fom
 +
 +
fmpcpe(c(fom, ''x'', ''y''), sim, x, y)fmp. La machine compare les suites respectivement marquées avec ''x'' et avec ''y'', efface toutes les lettres ''x'' et ''y'', puis → sim si les suites sont égales, sinon → fom.
 +
 +
À partir de anf, d’un point de vue général, la machine trouve la dernière instruction correspondante à la dernière configuration, instruction que l’on peut ensuite reconnaître comme celle qui suit le dernier point-virgule marqué avec ''z'', puis → sim..
 +
 +
<nowiki>[245]</nowiki>
 +
 +
<nowiki>[</nowiki>''fonction simuler''&nbsp;: sim = ''simulate'']
 +
 +
simf’(sim<sub>1</sub>, sim<sub>1</sub>, ''z'')sim. La machine marque les instructions à suivre, en particulier avec ''u'', la partie relative aux opérations à effectuer (direction de déplacement et symbole à imprimer), et la ''m''-configuration finale avec ''y''. Les lettres ''z'' sont ensuite effacées, et → mf.
 +
 +
sim<sub>1</sub>con(sim<sub>2</sub>, )
 +
 +
Asim<sub>3</sub>
 +
 +
sim<sub>2 </sub>~
 +
 +
non A''G, Iu, D, D, D''sim<sub>2</sub>
 +
 +
non A''G, Iy''e(mf, ''z'')
 +
 +
sim<sub>3 </sub>~
 +
 +
A''G, Iy, D, D, D''sim<sub>3</sub>
 +
 +
 +
mf''q''(mf,&nbsp;:)
 +
 +
non A''D, D''mf<sub>1</sub> mf<sub>1</sub>. La machine marque la dernière configuration complète en quatre phases&nbsp;: le symbole immédiatement à gauche de la configuration est marqué avec ''x&nbsp;''<nowiki>; le reste de la configuration est divisé en deux parties, dont toute celle de gauche est marquée avec </nowiki>''v'', et celle de droite avec ''w''&nbsp;; les marques de la configuration sont effacées&nbsp;; elle imprime un double point après l’ensemble, et → sh.
 +
 +
mf<sub>1 </sub>~
 +
 +
A''G, G, G, G''mf<sub>2</sub>
 +
 +
B''D, Ix, G, G, G''mf<sub>2</sub>
 +
 +
mf<sub>2 </sub>~&nbsp;:mf<sub>4</sub>
 +
 +
C''D, Ix, G, G, G''mf<sub>3</sub>
 +
 +
non &nbsp;:''D, Iv, G, G, G''mf<sub>3</sub>
 +
 +
mf<sub>3 </sub>~
 +
 +
&nbsp;:mf<sub>4</sub>
 +
 +
mf<sub>4</sub>con(l(l(mf<sub>5</sub>)), )
 +
 +
n’imp. lequel''D, Iw, D''mf<sub>5</sub>
 +
 +
mf<sub>5 </sub>~
 +
 +
aucun''I''&nbsp;:sh
 +
 +
<nowiki>[</nowiki>''fonction montrer''&nbsp;: sh = ''show'']
 +
 +
shf(sh<sub>1</sub>, inst, ''u'')sh. Les instructions (marquées avec ''u'') sont examinées. Si la machine découvre qu’elles impliquent «&nbsp;Imprimer 0&nbsp;» ou «&nbsp;Imprimer 1&nbsp;», alors elle imprime 0&nbsp;: ou 1&nbsp;: à la fin, et → inst.
 +
 +
sh<sub>1</sub>''G, G, G''sh<sub>2</sub>
 +
 +
C''D, D, D, D''sh<sub>3</sub>
 +
 +
sh<sub>2 </sub>~
 +
 +
non Cinst
 +
 +
B''D, D''sh<sub>4</sub>
 +
 +
sh<sub>3 </sub>~
 +
 +
non Binst
 +
 +
B''D, D''sh<sub>5</sub>
 +
 +
sh<sub>4 </sub>~
 +
 +
non Bpe<sub>2</sub>(inst, 0,&nbsp;:)
 +
 +
Binst
 +
 +
sh<sub>5 </sub>~
 +
 +
non Bpe<sub>2</sub>(inst, 1,&nbsp;:)
 +
 +
<nowiki>[246]</nowiki>
 +
 +
inst''q''(l(inst<sub>1</sub>), ''u'')inst. La nouvelle configuration complète est inscrite et, en exécutant les instructions marquées de la machine simulée, modifie la ''m''-configuration, la case inspectée et le symbole marqué sur la case précédemment inspectée. Les lettres ''u, v, w, x, y'' sont effacées, et → anf.
 +
 +
inst<sub>1</sub>''aD, E''inst<sub>1</sub>(''α'')
 +
 +
inst<sub>1</sub>(''G'')ce<sub>5</sub>(ov, ''v, y, x, u, w'')
 +
 +
inst<sub>1</sub>(''D'')ce<sub>5</sub>(ov, ''v, x, u, y, w'')
 +
 +
inst<sub>1</sub>(''N'')ec<sub>5</sub>(ov, ''v, x, y, u, w'')
 +
 +
ove(anf)
 +
 +
 +
<center>8. ''Application du procédé diagonal''.</center>
 +
 +
 +
On peut penser que les arguments qui démontrent que l’ensemble des nombres réels n’est pas dénombrable démontreraient aussi que l’ensemble des nombres et des suites calculables ne peut pas l’être non plus<ref name="ftn6"> Cf. Hobson, ''Theory of Functions of a Real Variable'', 2<sup>e</sup> éd., 1921, pp. 87-88.</ref>. On pourrait croire, par exemple, que la limite d’une suite de nombres calculables doit être calculable. À l’évidence, ce n’est vrai que si cette suite est définie par une règle.
 +
 +
Nous pourrions aussi appliquer le procédé diagonal. «&nbsp;Supposons que l’ensemble des suites calculables soit dénombrable, soit α<sub>''n''</sub> la ''n-''ième suite calculable, et ''ϕ<sub>n''</sub>(''m'') le ''m''-ième chiffre de α<sub>''n''</sub>. Soit alors la suite ''ß'' dont le ''n-''ième chiffre est égal à 1 -'' ϕ<sub>n''</sub>(''n''). Puisque ''ß'' est calculable, il existe un nombre ''K'' tel que, quel que soit ''n'', 1 -'' ϕ<sub>n''</sub>(''n'') = ''ϕ<sub>K''</sub>(''n''). Par exemple, avec ''n'' = ''K'', nous obtenons 1 = 2''ϕ<sub>K''</sub>(''K''), ''i.e.'' 1 est pair, ce qui est impossible. Par conséquent, l’ensemble des suites calculables n’est pas dénombrable&nbsp;».
 +
 +
L’erreur de ce raisonnement réside dans le postulat que ''ß'' est calculable. Ce serait vrai si nous pouvions énumérer les suites calculables avec des moyens finis, mais ce problème d’énumération des suites calculables équivaut à celui de trouver si un nombre donné est le N.D. d’une machine acyclique, et nous ne disposons d’aucune procédure générale pour le réaliser en un nombre fini d’étapes. En fait, en utilisant correctement l’argument du procédé diagonal, nous pouvons montrer l’impossibilité d’une telle procédure générale.
 +
 +
La démonstration la plus simple et la plus directe consiste à montrer que, si ce procédé général existait, il existerait alors une machine qui calculerait ''ß''. Cette démonstration, bien que parfaitement recevable, présente l’éventuel inconvénient de laisser au lecteur l’impression qu’«&nbsp;il y a vraisemblablement quelque chose de suspect&nbsp;». Celle que je présenterai échappe à cet inconvénient et donne un aperçu de ce que veut dire le concept de «&nbsp;machine acyclique&nbsp;». Elle ne dépend pas de la construction de la suite ''ß'', mais de celle de ''ß’'', dont le ''n-''ième chiffre est ''ϕ<sub>n''</sub>(''n'').
 +
 +
<nowiki>[247] Supposons qu’il existe une telle procédure, ceci revient à la possibilité de créer une machine </nowiki>D qui, équipée de la D.S d’une quelconque machine à calculer M, testera cette D.S et, si M est cyclique, marquera la S.D avec le symbole «&nbsp;''n''&nbsp;», et avec «&nbsp;''o''&nbsp;» si elle est acyclique. En combinant les machines D et U, nous pourrions construire une machine N pour calculer la suite ''ß’''. La machine D a sans doute besoin d’une bande pour fonctionner, et nous pouvons supposer qu’elle utilise les ''E''-cases au-delà de la dernière des ''C''-cases marquées avec des symboles, et qu’elle efface tout le «&nbsp;gros&nbsp;» du travail réalisé par D, dès qu’elle a rendu son verdict.
 +
 +
Le mouvement de cette machine N se décompose en phases. Dans les ''N ''- 1 premières phases, entre autres choses, les entiers 1, 2,…, ''N ''- 1 ont été inscrits et testés par la machine D. Un certain nombre d’entre eux, disons ''R''(''N ''- 1), se sont révélés être les N.D de machines acycliques. Pendant la phase'' N'', la machine D teste le nombre ''N''. Si ''N'' est satisfaisant, ''i.e.'' s’il est le N.D d’une machine acyclique, alors ''R''(''N'') = 1 + ''R''(''N ''- 1) et l’on calcule les ''R''(''N'') premiers chiffres de la suite dont ''N'' est un N.D. Le ''R''(''N'')-ième chiffre de cette suite est inscrit en tant que l’un des chiffres de la suite ''ß’'' calculée par H. Si ''N'' n’est pas satisfaisant, alors ''R''(''N'') = ''R''(''N'' - 1) et la machine aborde la phase (''N'' + 1) de son mouvement.
 +
 +
À partir de sa construction, on peut constater que N est acyclique, car chaque phase de son mouvement s’achève en un nombre fini d’étapes. En effet, d’après notre hypothèse sur D, c’est en un nombre fini d’étapes que l’on parvient à décider si ''N'' est satisfaisant. Si ''N'' n’est pas satisfaisant, alors la phase ''N'' s’achève. Si ''N'' est satisfaisant, cela signifie que la machine M(''N''), dont le N.D est ''N'', est acyclique et que l’on peut dès lors calculer son ''R''(''N'')-ième chiffre en un nombre fini d’étapes. Lorsque ce chiffre a été calculé et inscrit comme le ''R''(''N'')-ième chiffre de ''ß’'', la phase ''N'' s’achève. Il en résulte que N est acyclique.
 +
 +
Soit, maintenant, ''K'' le N.D de N. Que fait N dans la phase ''K'' de son mouvement&nbsp;? Elle doit tester si ''K'' est satisfaisant et rendre le verdict «&nbsp;''o''&nbsp;» ou «&nbsp;''n''&nbsp;». Puisque ''K'' est le N.D de N qui est acyclique, le verdict ne peut être «&nbsp;''n''&nbsp;». Mais il ne peut non plus être «&nbsp;''o''&nbsp;» car, si tel était le cas, pendant la phase ''K'' de son mouvement, N devrait en effet calculer les ''R''(''K'' - 1) + 1 = ''R''(''K'') premiers chiffres de la suite calculée par la machine dont le N.D est ''K'', et écrire le ''R''(''K'')-ième chiffre comme l’un de ceux de la suite calculée par N. Le calcul des ''R''(''K'' – 1) premiers chiffres s’effectuerait sans problème, mais les instructions pour le calcul du ''R''(''K'')-ième reviendraient à «&nbsp;calculer les ''R''(''K'') premiers chiffres de la suite calculée par N et à écrire le ''R''(''K'')-ième&nbsp;», et ainsi de suite, de sorte qu’il serait impossible de jamais trouver ce ''R''(''K'')-ième chiffre. ''I.e.'', N est cyclique, contrairement à la fois à ce que nous avons découvert dans le paragraphe précédent et au verdict «&nbsp;''o''&nbsp;». Les deux verdicts étant contradictoires, nous concluons qu’il ne peut exister aucune machine D.
 +
 +
<nowiki>[248]</nowiki>
 +
 +
Nous pouvons en outre montrer qu’''il ne peut exister de machine ''E'' qui, équipée de la D.S d’une machine ''M'' quelconque, décidera si cette machine ''M'' imprimera jamais un symbole donné (par exemple ''0'')''.
 +
 +
Nous montrerons d’abord que, si cette machine existe, il existe alors une procédure générale pour décider si une machine M donnée imprime une infinité de 0. Soit M1 une machine qui imprime la même suite que M, sauf qu’en lieu et place du premier 0 imprimé par M, M1 imprime <math>\stackrel{\acute }{0}</math>. De même M<sub>2</sub> doit avoir les deux premiers 0 de la suite initiale remplacés par des <math>\stackrel{\acute }{0}</math>, et ainsi de suite. S’il faut ainsi que M imprime
 +
 +
<center>ABA01AAB0010AB'' ''…,</center>
 +
 +
alors M1 imprimera
 +
 +
<center>ABA<math>\stackrel{\acute }{0}</math>1AAB0010AB'' ''…,</center>
 +
 +
et M<sub>2</sub> imprimera
 +
 +
<center>ABA<math>\stackrel{\acute }{0}</math>1AAB<math>\stackrel{\acute }{0}</math>010AB'' ''… .</center>
 +
 +
Soit alors une machine F qui, équipée de la D.S de M, inscrira successivement les D.S de M, de M1, de M<sub>2</sub>, etc. (une telle machine existe effectivement). Nous combinons F et E pour obtenir une nouvelle machine G qui, au cours de son fonctionnement, utilise d’abord F pour inscrire la D.S de M, puis E pour la tester, et inscrit &nbsp;:0&nbsp;: si elle découvre que M n’imprime jamais 0&nbsp;; F inscrit ensuite la D.S de M1, qui est elle aussi testée, &nbsp;:0&nbsp;: étant imprimé si et seulement si M1 n’imprime jamais 0, et ainsi de suite. Testons maintenant G avec E. Si l’on découvre que G n’imprime jamais 0, alors M l’imprime une infinité de fois&nbsp;; si G imprime au moins un 0, alors M ne l’imprime qu’un nombre fini de fois.
 +
 +
De la même manière, il existe une procédure générale pour décider si M imprime 1 infiniment souvent. En combinant ces deux procédures, nous en obtenons une autre pour décider si M imprime une infinité de chiffres, ''i.e.'' si M est acyclique. De ce fait, la machine E ne peut donc exister.
 +
 +
L’expression «&nbsp;il existe une procédure générale pour décider si…&nbsp;» a été utilisée tout au long de cette section de manière équivalente à «&nbsp;il existe une machine qui décidera si…&nbsp;». Cet usage peut être légitimé si et seulement si nous pouvons justifier notre définition de la «&nbsp;calculabilité&nbsp;», car chacun de ces problèmes de «&nbsp;procédure générale&nbsp;» peut être énoncé comme un problème relatif à une procédure générale pour décider si un entier ''n'' donné possède une propriété ''G''(''n'') (''G''(''n'') devrait signifier, par exemple, «&nbsp;''n'' est satisfaisant&nbsp;» ou «&nbsp;''n'' est le nombre de Gödel d’une formule démontrable&nbsp;»), et cela équivaut à calculer un nombre dont le ''n-''ième chiffre est 1 si ''G''(''n'') est vraie, et 0 si elle est fausse.
 +
 +
 +
<nowiki>[249]</nowiki>
 +
 +
<center>9. ''L’évaluation de la calculabilité des nombres''.</center>
 +
 +
 +
Nous n’avons encore fait aucune tentative pour montrer que les nombres «&nbsp;calculables&nbsp;» comprennent tous les nombres que l’on devrait naturellement considérer comme calculables. Il est certain que tous les arguments qui peuvent être donnés doivent, par principe, faire appel à l’intuition et, pour cette raison, seront plutôt insatisfaisants du point de vue des mathématiques. La véritable question ici en jeu est&nbsp;: «&nbsp;Quelles sont les éventuelles procédures qui peuvent être mises en œuvre lorsque l’on calcule un nombre&nbsp;?&nbsp;»
 +
 +
Mes arguments seront de trois types&nbsp;:
 +
 +
(a) Un appel direct à l’intuition.
 +
 +
(b) Une démonstration de l’équivalence de deux définitions (au cas où la nouvelle définition ait un sens intuitif plus fort).
 +
 +
(c) La présentation d’exemples de grandes familles de nombres calculables.
 +
 +
Une fois admis que les nombres calculables sont tous «&nbsp;calculables&nbsp;» selon ma définition, s’ensuivent d’autres propositions du même ordre. En particulier, s’il existe une procédure générale pour décider si un énoncé du calcul fonctionnel d’Hilbert est démontrable, alors cette procédure de décision peut être mise en œuvre par une machine.
 +
 +
 +
<nowiki>I [Type (a)]. Cette discussion n’est qu’un développement des idées de § 1.</nowiki>
 +
 +
Généralement, on effectue un calcul en inscrivant certains symboles sur une feuille de papier, que nous pouvons supposer divisée en cases comme un manuel scolaire d’arithmétique. En arithmétique élémentaire, on tire parfois parti de la qualité bidimensionnelle du papier, mais il vaut mieux éviter un tel usage et je pense que l’on m’accordera que cette qualité n’a rien d’essentielle au calcul. Dès lors, je pars du principe que le calcul s’effectue sur du papier unidimensionnel, ''i.e.'' sur une bande divisée en une suite de cases. Je supposerai aussi que les symboles susceptibles d’être imprimés sont en nombre fini. Si nous devions admettre une infinité de symboles, il risquerait alors d’y avoir certains symboles, dont les différences seraient si arbitrairement ténues qu’on pourrait les confondre<ref name="ftn7"> Si nous considérons un symbole littéralement imprimé dans une case, en imaginant cette dernière selon un modèle algébrique cartésien de coordonnées ''x'' et ''y'', tels que 0 ≤ ''x'' ≤ 1, 0 ≤ ''y'' ≤ 1, le symbole est défini comme un ensemble de points de cette case, c’est-à-dire l’ensemble des points noircis par l’encre imprimée. Si l’on se limite à des ensembles mesurables, nous pouvons définir la «&nbsp;distance&nbsp;» entre deux symboles comme le coût de la transformation de l’un en l’autre, si l’unité est le coût de déplacement d’une unité d’aire d’encre imprimée d’une distance unitaire, et s’il existe une source infinie d’encre en ''x'' = 2, ''y'' = 0. Dans cette topologie, les symboles forment sous condition un espace compact conditionnel.</ref>. <nowiki>Pour autant, l’effet de cette restriction n’est pas très important, puisque l’on peut toujours utiliser des suites de symboles au lieu des symboles uniques. Ainsi, un nombre écrit en chiffres arabes, tel que [250] 17 ou 999999999999999, est en général considéré comme un symbole en soi. De la même façon, dans les langues européennes, les mots sont traités comme des symboles simples (à la différence du chinois, qui tend à avoir une infinité dénombrable de symboles). De notre point de vue, les différences entre les symboles simples et les symboles composés, réside dans la longueur excessive de ces derniers, de sorte qu’ils ne peuvent être reconnus d’un coup d’œil, ce qui s’accorde avec l’expérience. Nous ne pouvons dire d’un coup d’œil si 9999999999999999 et 999999999999999 sont identiques</nowiki><ref name="ftn8"> Georges Ifrah, ''Histoire universelle des chiffres'', Bouquins, Robert Laffont, t. I, 1981, entre autres Première partie, chap. 1, ''L’ethnologie et la psychologie des nombres'', explique en détail ce phénomène psycho-sensoriel&nbsp;: notre perception globale des nombres s’arrête à quatre. Au-delà, la vision n’est plus d’aucun secours et il est nécessaire de compter pour savoir. Dans les cultures restées à un stade dit premier, pour lesquelles le nombre est «&nbsp;senti&nbsp;» et «&nbsp;perçu&nbsp;», celui-ci est appréhendé non sous son aspect conceptuel et abstrait, mais d’une manière qualitative, et au-delà de quatre il ne reste souvent pour elles plus qu’une catégorie, celle de l’«&nbsp;innombrable&nbsp;». Voir aussi les travaux de l’anthropologue Jack Goody, notamment ''Entre l’oralité et l’écriture'', PUF, 1994 (Note du traducteur).</ref>.
 +
 +
À chaque instant, le comportement d’un calculateur humain est déterminé par les symboles qu’il observe et son «&nbsp;état mental&nbsp;» du moment. Nous pouvons supposer qu’il existe une limite au nombre maximal ''M'' de symboles ou de cases que ce calculateur peut observer simultanément. S’il souhaite en observer un plus grand nombre, il doit recourir à plusieurs observations successives. Nous supposerons en outre en nombre fini les états mentaux qu’il est nécessaire de prendre en compte, pour des raisons du même ordre que celles qui nous conduisent à limiter le nombre de symboles. Si, en effet, nous admettions une infinité de ces états, certains d’entre eux seraient «&nbsp;arbitrairement proches&nbsp;» au point d’être confondus. Là encore, cette restriction n’est pas de celles qui affectent sérieusement le calcul, puisque le recours à des états mentaux plus compliqués peut être évité en inscrivant plus de symboles sur la bande.
 +
 +
Imaginons maintenant que le travail du calculateur est divisé en «&nbsp;opérations élémentaires&nbsp;», si simples qu’il soit difficile d’envisager de les fragmenter encore plus. Toute opération de ce genre consiste à modifier le système physique constitué du calculateur et de sa bande, système dont nous connaissons l’état si nous connaissons la suite des symboles inscrits sur la bande, en particulier ceux (éventuellement ordonnés) observés par le calculateur, et l’état mental de ce dernier. Nous pouvons supposer que, dans une opération élémentaire, pas plus d’un symbole n’est modifié, tout autre changement pouvant se ramener à une suite de changements élémentaires de ce type. La situation vis-à-vis des cases, dont les symboles peuvent être ainsi modifiés, est la même qu’à l’égard des cases observées. Par conséquent, sans altération de la généralité, nous pouvons admettre que les cases modifiables sont toujours des cases «&nbsp;observées&nbsp;».
 +
 +
Outre ces changements de symboles, les opérations élémentaires doivent comprendre des changements de distribution des cases observées. Le calculateur doit pouvoir immédiatement reconnaître les nouvelles cases observées, et je crois raisonnable de supposer que de telles cases ne peuvent être à plus d’une certaine distance donnée des cases les plus proches parmi celles qui viennent d’être observées. Disons que chacune des nouvelles cases observées est au plus à ''D''-cases de distance de l’une des cases auparavant observées.
 +
 +
<nowiki>Concernant la notion de «&nbsp;reconnaissance immédiate&nbsp;», on peut penser qu’il devrait exister d’autres types de cases immédiatement reconnaissables, en particulier celles marquées par des symboles spéciaux. [251] Néanmoins, si ces cases ne sont marquées que de symboles simples, il ne peut en exister qu’un nombre fini, et les rajouter à l’ensemble des cases observées ne bouleverserait pas notre théorie. Si, en revanche, elles sont marquées par une suite de symboles, nous ne pouvons plus considérer le procédé de reconnaissance comme élémentaire. C’est un point si fondamental qu’il conviendrait de l’illustrer. Dans les articles de mathématiques, il est courant de numéroter les suites d’équations et de théorèmes. Ces nombres dépassent rarement, disons, le millier. On peut donc reconnaître d’un coup d’œil un théorème à son numéro. Mais, si un article est particulièrement long, nous pouvons en arriver au théorème 157767733443477&nbsp;; puis, plus loin, on pourrait lire «&nbsp;… en conséquence du théorème 157767733443477, nous obtenons donc…&nbsp;». Pour être sûrs qu’il s’agit bien du bon théorème, il nous faudrait comparer ces deux nombres chiffre par chiffre, peut-être même en les cochant au crayon pour être surs de ne pas les compter deux fois. Et si, malgré tout, l’on pensait toujours qu’il existe d’autres cases «&nbsp;immédiatement reconnaissables&nbsp;», mon argumentation n’en serait pas affectée pour autant que ces cases puissent être trouvées par une procédure dont ma machine est capable. Cette idée est développée ci-dessous en III.</nowiki>
 +
 +
Les opérations élémentaires doivent ainsi comprendre&nbsp;:
 +
 +
(''a'') Les changements de symbole dans l’une des cases observées.
 +
 +
(''b'') Les changements de l’une des cases observées en une autre case à ''D''-cases de distance au plus de l’une de celles précédemment observées.
 +
 +
Il est possible que quelques-uns de ces changements nécessitent aussi un changement d’état mental. L’opération élémentaire la plus générale doit donc prendre l’une des formes suivantes&nbsp;:
 +
 +
(''A'') Un changement éventuel (''a'') de symbole, conjointement avec un éventuel changement d’état mental.
 +
 +
(''B'') Un changement éventuel (''b'') de cases observées, conjointement avec un éventuel changement d’état mental.
 +
 +
Comme on l’a suggéré p. 250, l’opération véritablement réalisée est déterminée par l’état mental du calculateur et les symboles observés, en particulier, son nouvel état mental après l’exécution de cette opération.
 +
 +
Nous pouvons maintenant construire une machine pour réaliser le même travail que ce calculateur humain. À chacun des états mentaux du calculateur correspond une «&nbsp;''m''-configuration&nbsp;» de la machine. Celle-ci inspecte ''M'' cases correspondant aux ''M'' cases observées par le calculateur. À chaque instant, elle peut soit changer un symbole dans l’une des cases inspectées, soit inspecter une nouvelle case distante de moins de ''D''<nowiki>-cases de l’une des autres cases [252] inspectées. Le mouvement effectué et la configuration suivante sont déterminés par le symbole inspecté et la </nowiki>''m''-configuration. Les machines que l’on vient de décrire ne sont pas foncièrement différentes des machines à calculer décrites en § 2 et, pour toute machine de ce type, il est possible de construire une machine pour calculer la même suite, c’est-à-dire la suite calculée par le calculateur humain.
 +
 +
 +
<nowiki>II [Type (</nowiki>''b'')].
 +
 +
 +
Si l’on modifie la notation du calcul fonctionnel d’Hilbert<ref name="ftn9"> L’expression «&nbsp;le calcul fonctionnel&nbsp;» est utilisée tout au long de l’article dans le sens de calcul fonctionnel restreint d’Hilbert.</ref> de façon à le rendre systématique, et pour qu’il n’utilise qu’un nombre fini de symboles, il devient possible de construire une machine automatique<ref name="ftn10"> Le plus naturel est de construire d’abord une machine à choix (cf. § 2) qui effectue cette tâche, mais il est facile d’en obtenir ensuite la machine automatique requise, car nous pouvons supposer que les choix sont toujours binaires entre 0 et 1. Chaque preuve sera alors déterminée par une série de choix ''i''<sub>1</sub>, ''i''<sub>2</sub>, …, ''i<sub>n''</sub> (valant chacun 0 ou 1), et donc le nombre 2<sup>''n''</sup> +''i''<sub>1</sub>2<sup>''n''-1</sup> + ''i''<sub>2</sub>2<sup>''n''-2</sup> + … + ''i<sub>n''</sub> détermine complètement la preuve, et la machine automatique génère alors successivement la preuve 1, la preuve 2, la preuve 3, etc.</ref> K, qui trouvera toutes les formules démontrables de ce type de calcul<ref name="ftn11"> L’auteur a effectivement trouvé la description d’une telle machine.</ref>.
 +
 +
Soit maintenant une suite'' α'', et notons ''G<sub>α''</sub>(''x'') la proposition «&nbsp;le ''x-''ième chiffre de ''α'' est un 1&nbsp;», <ref name="ftn12"> Le signe de la négation s’écrit devant une expression et non à la fin.</ref> - ''G<sub>α''</sub> (''x'') signifiant «&nbsp;Le ''x-''ième chiffre de ''α'' est un 0&nbsp;». Supposons en outre que nous puissions trouver un ensemble de propriétés qui définissent la suite ''α'' et qui puisse être exprimé au moyen de ''G<sub>α''</sub> (''x''), des fonctions propositionnelles ''N''(''x'') signifiant «&nbsp;''x'' est un entier positif&nbsp;», et ''S''(''x'', ''y'') signifiant «&nbsp;''y'' est le successeur de ''x''&nbsp;» ou «&nbsp;''y'' = ''x'' + 1&nbsp;». Par la conjonction de toutes les formules précédentes, nous obtiendrons une formule, disons U, qui définit ''α''. Cette formule U doit comprendre les axiomes indispensables (''i.e''. les trois premiers) de Peano, notés sous la forme abrégée ''P'', soit&nbsp;:
 +
 +
(<math>\exists </math>''u'') ''N''(''u'') ˄ (<math>\forall </math>''x'') (''N''(''x'') → (<math>\exists </math>''y'') ''S''(''x'', ''y'') ˄ (''S''(''x'', ''y'') → ''N''(''y'')),
 +
 +
Notre expression «&nbsp;U définit ''α''&nbsp;» signifie que – U n’est pas une formule démontrable, et aussi que, pour tout ''n'', l’une des formules (''A<sub>n''</sub>) ou (''B<sub>n''</sub>) est démontrable.
 +
 +
U ˄ ''S''<sup>(''n'')</sup> → ''G<sub>α''</sub>(''u''<sup>(''n'')</sup>), (''A<sub>n''</sub>)<ref name="ftn13"> <sup>(''r'')</sup> désigne une suite de nombres premiers ''r''.</ref>
 +
 +
U ˄ ''S''<sup>(''n'')</sup> → (- ''G<sub>α''</sub>(''u''<sup>(''n'')</sup>)), (''B<sub>n''</sub>),
 +
 +
où ''S''<sup>(''n'')</sup> est l’abréviation de ''S''(''u'', ''u’'') ˄ ''S''(''u’'', ''u’’'') ˄ … ˄'' S''(''u''<sup>(''n''-1)</sup>, ''u''<sup>(''n'')</sup>).
 +
 +
<nowiki>[253]</nowiki>
 +
 +
J’affirme par déduction que ''α'' est alors une suite calculable&nbsp;: pour le montrer, une assez simple modification de K nous permet d’obtenir une machine K<sub>''α''</sub> qui calcule ''α''.
 +
 +
Nous décomposons le mouvement de K<sub>''α''</sub> en phases. La phase ''n'' est destinée à calculer le ''n-''ième chiffre de ''α''. Dès que la phase ''n'' - 1 se termine, la machine imprime un symbole ‡ à la suite de tous les autres, et l’opération suivante s’effectue uniquement sur les cases à droite de ce symbole. La première étape consiste à écrire la lettre «&nbsp;''A''&nbsp;», suivie de la formule (''A<sub>n''</sub>), puis la lettre «&nbsp;''B''&nbsp;» et la formule (''B<sub>n''</sub>). La machine K<sub>''a''</sub> effectue alors la même tâche que K, mais lorsqu’elle produit une formule démontrable, elle la compare à (''A<sub>n''</sub>) et à (''B<sub>n''</sub>). Si elle est égale à (A<sub>''n''</sub>) (respectivement (B<sub>''n''</sub>)), le chiffre «&nbsp;1&nbsp;» (respectivement «&nbsp;0&nbsp;») s’imprime alors et, dans l’un ou l’autre cas, la phase ''n'' s’achève. Si elle n’est égale à aucune des deux formules, le travail de K reprend à partir du point auquel il avait été interrompu. Tôt ou tard, l’une des formules (''A<sub>n''</sub>) ou (''B<sub>n''</sub>) sera atteinte&nbsp;; ceci découle de nos hypothèses sur ''α'' et U, et de ce que l’on sait de K. Dès lors, la phase ''n'' s’achèvera en un temps fini. K<sub>''α''</sub> est donc acyclique et ''α'' calculable.
 +
 +
On peut aussi démontrer que les nombres tels que ''α'' ainsi définissables au moyen d’axiomes comprennent tous les nombres calculables, en décrivant les machines à calculer dans le formalisme du calcul fonctionnel.
 +
 +
Il faut se rappeler que nous avons donné un sens assez particulier à l’expression «&nbsp;U définit ''α''&nbsp;». Les nombres définissables (au sens usuel) ne sont pas forcément calculables. Soit la suite δ dont le ''n''ième chiffre est 1 ou 0 selon que ''n'' est ou n’est pas satisfaisant. Il découle immédiatement du théorème de § 8 que cette suite n’est pas calculable. Il est possible, pour autant que nous le sachions à présent, que n’importe quel nombre de chiffres d’une suite δ puisse être calculé, mais pas par une méthode uniforme. Lorsqu’un nombre suffisamment grand de chiffres de δ aura été calculé, il faudra une méthode fondamentalement nouvelle pour obtenir d’autres chiffres.
 +
 +
 +
III. On peut considérer ce qui suit comme une modification du (I) ou un corollaire du II.
 +
 +
 +
<nowiki>Nous supposons, comme en (I), que le calcul s’effectue sur une bande, mais nous éviterons d’utiliser ici la notion d’«&nbsp;état mental&nbsp;» en introduisant une analogie plus physique et mieux définie. Le calculateur humain peut toujours interrompre son travail, s’absenter, oublier tout ce qui s’y rapporte, revenir plus tard et le reprendre au point d’interruption. Pour ce faire, il doit laisser une note d’instructions (sous une forme normalisée quelconque) indiquant comment poursuivre le travail. Cette note est l’équivalent de l’«&nbsp;état mental&nbsp;». Nous supposerons que le calculateur travaille d’une manière si décousue qu’il n’accomplit jamais plus d’une opération par séance. La note d’instructions doit donc lui permettre de réaliser une opération et de rédiger la note suivante. Ainsi l’état d’avancement du calcul est, à tout instant, entièrement déterminé par la note [254] d’instructions et les symboles sur la bande. Autrement dit, l’état du système peut être décrit par une seule expression (suite de symboles), que l’on peut appeler la «&nbsp;formule d’état&nbsp;», composée des symboles sur la bande suivis du symbole séparateur spécial Δ (qui, nous le supposons, n’apparaît nulle part ailleurs), puis de la note d’instructions. Nous savons qu’à toute étape donnée, la nouvelle formule d’état dépend uniquement de la précédente, et nous partons du principe que l’interdépendance de ces deux formules peut s’exprimer dans le formalisme du calcul fonctionnel. Pour le dire autrement, nous admettons qu’il existe un axiome </nowiki>U qui exprime les règles régissant la conduite du calculateur en fonction de la relation entre une formule d’état de n’importe quelle étape et celle de l’étape précédente. S’il en est ainsi, nous pouvons construire une machine qui inscrit les formules d’état successives, et à partir de là calcule le nombre cherché.
 +
 +
 +
<center>10. ''Exemples de grandes classes de nombres calculables''.</center>
 +
 +
 +
Il sera d’abord utile de définir ce qu’est une fonction calculable d’une variable entière, calculable, etc. Il existe de nombreuses formulations équivalentes de la définition d’une fonction calculable d’une variable entière, la plus simple étant sans doute la suivante&nbsp;: si ''γ'' est une suite calculable où apparaît une infinité de 0<ref name="ftn14"> Si une machine M calcule ''γ'', alors la question de savoir si M imprime 0 une infinité de fois est du même ordre que celle de savoir si M est acyclique.</ref>, et ''n'' un entier, la formule ''ξ''(''γ'', ''n'') est définie comme le nombre de 1 entre le ''n-''ième et le (''n'' + 1)-ième 0 de ''γ''. On dit alors que ''ϕ''(''n'') est calculable si et seulement si, pour tout ''n'', la suite calculable ''γ'' est telle que ''ϕ''(''n'') = ''ξ''(''γ'', ''n''). Voici une définition équivalente&nbsp;: soit ''H''(''x'', ''y'') la proposition ''ϕ''(''x'') = ''y''. On peut alors dire que ''ϕ'' est une fonction calculable si et seulement s’il existe un axiome non contradictoire U<sub>''ϕ''</sub>, tel que
 +
 +
- U<sub>''ϕ''</sub> → ''P'',
 +
 +
- pour tout entier ''n'', il existe un entier ''N'' tel que
 +
 +
U<sub>''ϕ''</sub> ˄ ''S''<sup>(''N'')</sup> → ''H'' (''u''<sup>(''n'')</sup>, ''u''<sup>(''ϕ''(''n''))</sup>),
 +
 +
- pour tout ''m'' = ''ϕ''(''n''), il existe alors un entier ''N’'' tel que
 +
 +
U<sub>''ϕ''</sub> ˄ ''S''<sup>(''N’'')</sup> → - ''H'' (''u''<sup>(''n'')</sup>, ''u''<sup>(''m'')</sup>),
 +
 +
Nous ne pouvons pas définir de manière générale des fonctions calculables d’une variable réelle, car il n’existe pas de méthode générale de description d’un nombre réel. En revanche, nous pouvons définir une fonction calculable d’une variable calculable. Si ''n'' est satisfaisant, notons ''γ<sub>n''</sub> le nombre calculé par M(''n''), et posons&nbsp;:
 +
 +
''α<sub>n''</sub> = 0 si ''γ<sub>n''</sub> = 0 ou ''γ<sub>n''</sub> = 1,
 +
 +
<nowiki>[255]</nowiki>sinon''α<sub>n''</sub> = ''tan''(π (''γ<sub>n''</sub> –<math>\frac{1}{2}</math>)).
 +
 +
Lorsque ''n'' décrit les nombres satisfaisants, ''α<sub>n''</sub> décrit l’ensemble des nombres calculables<ref name="ftn15"> On peut définir de nombreuses autres façons une fonction ''α<sub>n''</sub> pour décrire l’ensemble des nombres calculables.</ref>. Soit maintenant ''ϕ''(''n'') une fonction calculable qui associe à tout nombre satisfaisant un nombre satisfaisant<ref name="ftn16"> Bien qu’il ne soit pas possible de trouver une procédure générale pour décider si un nombre donné est satisfaisant, il est souvent possible de démontrer que certaines classes de nombres sont globalement satisfaisantes.</ref>. On dira alors que la fonction ''f'', définie par ''f''(''α<sub>n''</sub>) = ''α<sub>ϕ''(''n'')</sub>, est une fonction calculable et, réciproquement, que toute fonction calculable d’une variable calculable peut s’exprimer de cette manière.
 +
 +
On peut donner des définitions semblables de fonctions calculables de plusieurs variables, ou des fonctions à valeur calculable d’une variable entière, etc.
 +
 +
J’énoncerai un certain nombre de théorèmes sur la calculabilité, mais je démontrerai seulement le théorème (ii) et une variante du théorème (iii).
 +
 +
(i) La composition de deux fonctions calculables d’une variable entière ou calculable est elle-même calculable.
 +
 +
(ii) Toute fonction d’une variable entière définie récursivement en termes de fonctions calculables est calculable. ''I.e.'' si'' ϕ''(''m'', ''n'') est une fonction calculable et ''r'' un nombre entier, la fonction ''η'' est alors calculable, là où ''η'' est définie par&nbsp;:
 +
 +
''η''(0) = ''r'',
 +
 +
''η''(''n'') = ''ϕ''(''n'', ''η''(''n'' - 1)) pour tout n > 0.
 +
 +
(iii) Si'' ϕ''(''m'', ''n'') est une fonction calculable de deux variables entières, alors ''ϕ''(''n'', ''n'') est une fonction calculable de la variable entière ''n''.
 +
 +
(iv) Si ''ϕ''(''n'') est une fonction calculable à valeurs dans {0, 1}, alors la suite dont le ''n-''ième chiffre est ''ϕ''(''n'') est calculable.
 +
 +
Le théorème de Dedekin devient faux dans sa formulation usuelle si nous remplaçons partout «&nbsp;réel&nbsp;» par «&nbsp;calculable&nbsp;», mais il reste vrai dans la version suivante&nbsp;:
 +
 +
(v) si ''G''(''a'') est une fonction propositionnelle de nombres calculables et
 +
 +
(''a'')(<math>\exists </math>''α'') (<math>\exists </math>''ß'') (''G''(''α'') ˄ - ''G''(''ß'')),
 +
 +
(''b'')''G''(''α'') ˄ (- ''G''(''ß'')) → (''α''<nowiki> < </nowiki>''ß''),
 +
 +
et s’il existe une procédure générale permettant de déterminer la valeur de vérité de ''G''(''α''<nowiki>), alors [256] il existe un nombre calculable </nowiki>''ξ'' tel que&nbsp;:
 +
 +
''G''(''α'') → ''α'' ≤ ''ξ'' et - ''G''(''α'') → ''α'' ≥ ''ξ''.
 +
 +
Autrement dit, le théorème reste vrai pour toute coupure des nombres calculables pour laquelle il existe une procédure générale permettant de déterminer à quelle classe un nombre calculable donné appartient par rapport à cette coupure.
 +
 +
En raison de cette restriction du théorème de Dedekind, nous ne pouvons pas dire qu’un nombre calculable lié à une suite croissante de nombres calculables possède une limite calculable. On pourra peut-être le comprendre en considérant une suite telle que&nbsp;:
 +
 +
- 1, - <math>\frac{1}{2}</math>, - <math>\frac{1}{4}</math>, - <math>\frac{1}{8}</math>, - <math>\frac{1}{16}</math>, <math>\frac{1}{2}</math>, … .
 +
 +
Par contre, (v) nous permet de démontrer que&nbsp;:
 +
 +
(vi) Si ''ϕ'' est une fonction calculable croissante et continue, et ''α'' et ''ß'' des nombres calculables tels que ''α''<nowiki> < </nowiki>''ß'' et ''ϕ''(''α''<nowiki>) < 0 < </nowiki>''ϕ''(''ß''), alors il existe un nombre calculable unique ''γ'', répondant aux conditions ''α''<nowiki> < </nowiki>''γ''<nowiki> < </nowiki>''ß'' et ''ϕ''(''γ'') = 0.
 +
 +
 +
''Convergence calculable''.
 +
 +
 +
Nous dirons qu’une suite ''ß<sub>n''</sub> de nombres calculables ''converge en calculabilité'' s’il existe une fonction calculable à valeur entière ''N''(ε) de la variable calculable ε, telle que nous pouvons montrer que&nbsp;:
 +
 +
<math>\forall </math> ε > 0, <math>\forall </math> ''m'' > ''N''(ε), <math>\forall </math> ''n'' > ''N''(ε), alors | ''ß<sub>n ''– </sub>''ß<sub>m''</sub> |''<nowiki>< </nowiki>''ε.
 +
 +
Nous pouvons alors montrer les théorèmes suivants&nbsp;:
 +
 +
(vii) Une série potentielle dont les coefficients forment une suite calculable de nombres calculables est convergente en calculabilité en chaque point calculable à l’intérieur de son intervalle de convergence.
 +
 +
(viii) La limite d’une suite convergente en calculabilité est calculable.
 +
 +
Et avec la définition évidente de la «&nbsp;convergence uniforme en calculabilité&nbsp;»&nbsp;:
 +
 +
(ix) La limite d’une suite calculable uniformément convergente en calculabilité de fonctions calculables est une fonction calculable.
 +
 +
D’où&nbsp;:
 +
 +
(x) La somme d’une série potentielle dont les coefficients forment une suite calculable est une fonction calculable à l’intérieur de son intervalle de convergence.
 +
 +
Du théorème (viii) nous déduisons que π et ''e'' sont calculables, pour π = 4 (1 – <math>\frac{1}{3}</math> + <math>\frac{1}{5}</math> - …), et pour ''e'' = 1+ 1 + <math>\frac{1}{2!}</math> + <math>\frac{1}{3!}</math> + … .
 +
 +
<nowiki>[257]</nowiki>
 +
 +
Du théorème (vi) nous déduisons que tout nombre algébrique réel est calculable.
 +
 +
Des théorèmes (vi) et (x) que les zéros réels des fonctions de Bessel sont calculables.
 +
 +
 +
''Démonstration'' de (ii).
 +
 +
 +
Soit ''H''(''x'', ''y'') la proposition «&nbsp;''η''(''x'') = ''y''&nbsp;», et ''K''(''x'', ''y'', ''z'') la proposition «&nbsp;''ϕ''(''x, y'') = ''z''&nbsp;». U<sub>''ϕ''</sub> est l’axiome qui définit ''ϕ''(''x, y''). Posons alors U<sub>''η''</sub>&nbsp;:
 +
 +
U<sub>''ϕ''</sub> ˄ ''P'' ˄ (''S''(''x'', ''y'') → ''G''(''x'', ''y'')) ˄ (''G''(''x'', ''y'') ˄ ''G''(''y'', ''z'') → G(x, z))
 +
 +
˄ (''S''<sup>(''r'')</sup> → ''H''(''u'', ''u''<sup>(''r'')</sup>)) ˄ (''S''(''v'', ''w'') ˄ ''H''(''v'', ''x'') et ''K''(''w'', ''x'', ''z'') → ''H''(''w'', ''z''))
 +
 +
<nowiki>˄ [</nowiki>''H''(''w'', ''z'') ˄ ''G''(''z'', ''t'') v ''G''(''t'', ''z'') → (- ''H''(''w'', ''t'')].
 +
 +
Je ne donnerai pas ici la démonstration de la consistance de U<sub>''η''</sub>. Une telle démonstration peut être faite avec les méthodes utilisées dans Hilbert et Bernays (''Grundlagen der Mathematik'', Berlin, 1934, p. 209 ''sq''.). La consistance de U<sub>''η''</sub> est également évidente d’après sa signification.
 +
 +
Montrons d’abord que, quel que soit ''n'', il existe ''N'' tel que
 +
 +
U<sub>''η''</sub> ˄ ''S''<sup>(''N'')</sup> → ''H''(''u''<sup>(''n'')</sup>, ''u''<sup>(''η''(''n''))</sup>)(ii. 1)
 +
 +
(1) On a directement
 +
 +
U<sub>''η''</sub> ˄ ''S''<sup>(''r'')</sup> → ''H''(''u'', ''u''<sup>(''η''(''u''))</sup>)
 +
 +
(2) Supposons que pour ''n'', ''N'' donnés, on a
 +
 +
U<sub>''η''</sub> ˄ ''S''<sup>(''N'')</sup> → ''H''(''u''<sup>(''n''-1)</sup>, ''u''<sup>(''η''(''n''-1))</sup>)
 +
 +
Par calculabilité de ''ϕ'', il existe ''M'' tel que
 +
 +
U<sub>''ϕ''</sub> ˄ ''S''<sup>(''M'')</sup> → ''K''(''u''<sup>(''n'')</sup>, ''u''<sup>(''η''(''n''-1))</sup>, ''u''<sup>(''η''(''n''))</sup>)
 +
 +
D’où
 +
 +
U<sub>''η''</sub> ˄ ''S''<sup>(''M'')</sup> → ''S''(''u''<sup>(''n''-1)</sup>, ''u''<sup>(''n'')</sup>) ˄ ''H''(''u''<sup>(''n''-1)</sup>, ''u''<sup>(''η''(''n''-1))</sup>) ˄ ''K''(''u''<sup>(''n'')</sup>, ''u''<sup>(''η''(''n''-1))</sup>, ''u''<sup>(''η''(''n''))</sup>)
 +
 +
Or
 +
 +
U<sub>''η''</sub> ˄ ''S''<sup>(''M'')</sup><nowiki> → [</nowiki>''S''(''u''<sup>(''n''-1)</sup>, ''u''<sup>(''n'')</sup>) ˄ ''H''(''u''<sup>(''n''-1)</sup>, ''u''<sup>(η(''n''-1))</sup>) ˄ ''K''(''u''<sup>(''n'')</sup>, ''u''<sup>(''η''(''n''-1))</sup>, ''u''<sup>(''η''(''n''))</sup>) → ''H''(''u''<sup>(''n'')</sup>, ''u''<sup>(''η''(''n''))</sup>)]
 +
 +
On a donc
 +
 +
U<sub>''η''</sub> ˄ ''S''<sup>(''M'')</sup> →'' H''(''u''<sup>(''n'')</sup>, ''u''<sup>(''η''(''n''))</sup>)
 +
 +
Ce qui démontre (ii. 1) par récurrence.
 +
 +
D’autre part, si ''m'' ≠ ''η''(''n'') et ''M’'' ≥ ''Max''(''M, m''), on a
 +
 +
U<sub>''η''</sub> ˄ ''S''<sup>(''M’'')</sup> → ''G''(''u<sup>η''((''n''))</sup>,'' u''<sup>(''m'')</sup>) ˅ ''G''(''u''<sup>(''m'')</sup>, ''u''<sup>(''η''(''n''))</sup>)
 +
 +
<nowiki>[258]</nowiki>
 +
 +
Or,
 +
 +
U<sub>''η''</sub> ˄ ''S''<sup>(''M’'')</sup><nowiki> → [(</nowiki>''H''(''u''<sup>(''n'')</sup>, ''u''<sup>(''η''(''n''))</sup>) ˄'' G''(''u<sup>η''((''n''))</sup>,'' u''<sup>(''m'')</sup>) ˅ ''G''(''u''<sup>(''m'')</sup>, ''u''<sup>(''η''(''n''))</sup>) → - ''H''(''u''<sup>(''n'')</sup>, ''u''<sup>(''m'')</sup>))]
 +
 +
Ce qui prouve que
 +
 +
U<sub>''η''</sub> ˄ ''S''<sup>(''M’'')</sup> → - ''H''(''u''<sup>(''n'')</sup>, ''u''<sup>(''m'')</sup>)(ii. 2)
 +
 +
Les deux conditions de notre seconde définition d’une fonction calculable sont donc satisfaites, et il en résulte que ''η'' est une fonction calculable.
 +
 +
 +
''Démonstration d’une version modifiée de'' (iii).
 +
 +
 +
(iii’) Étant donnée une machine N qui calcule une suite ''γ<sub>n''</sub> d’après le nombre ''n'' d’une suite de symboles «&nbsp;''S''&nbsp;» dont la bande est initialement équipée, et ''ϕ<sub>n''</sub>(''m'') le ''m''-ième chiffre de ''γ<sub>n''</sub>, alors la suite ζ dont le ''n''-ième chiffre est ''ϕ<sub>n''</sub>(''n'') est calculable.
 +
 +
 +
Considérons que la machine N est équipée d’une bande où sont inscrits les symboles əə suivis d’une suite d’un nombre quelconque ''n'' de symboles «&nbsp;''S''&nbsp;» sur les ''C''-cases, et part de la ''m''-configuration ''b''. Nous supposons que le tableau pour N a été écrit de façon qu’il n’y ait qu’une seule instruction (colonne des opérations) par ligne (impression d’un symbole ou déplacement), et que les symboles Ξ, Θ, <math>\stackrel{\acute }{0}</math>, et <math>\stackrel{\acute }{1}</math> n’apparaissent pas dans le tableau. Nous remplaçons partout ə par Θ, 0 par <math>\stackrel{\acute }{0}</math>, et 1 par <math>\stackrel{\acute }{1}</math>. D’autres substitutions sont alors effectuées. Nous remplaçons toute ligne de la forme
 +
 +
U''αI''<math>\stackrel{\acute }{0}</math>B
 +
 +
par
 +
 +
U''αI''<math>\stackrel{\acute }{0}</math>re(B, u, ''h'', ''k'')
 +
 +
et toute ligne de la forme
 +
 +
U''αI''<math>\stackrel{\acute }{1}</math>B
 +
 +
par
 +
 +
U''αI''<math>\stackrel{\acute }{1}</math>re(B, v, ''h'', ''k'')
 +
 +
et nous rajoutons au tableau les lignes suivantes&nbsp;:
 +
 +
upe(u<sub>1</sub>, 0)
 +
 +
u<sub>1</sub>''D'', ''Ik'', ''D'', ''I''Θ, ''D'', ''I''Θu<sub>3</sub>
 +
 +
u<sub>2</sub>re(u<sub>3</sub>, u<sub>3</sub>, ''b'', ''k'', ''h'')
 +
 +
u3pe(u<sub>2</sub>, ''F'')
 +
 +
et exactement les mêmes lignes en substituant v à u et 1 à 0.
 +
 +
rajoutons enfin la ligne suivante
 +
 +
c''D'', ''I''Θ, ''D'', ''I''Θ, ''D'', ''I''S b
 +
 +
Nous obtenons ainsi le tableau d’une machine N’ qui calcule ''ζ'' à partir de la ''m''-configuration initiale c, et le symbole inspecté au départ étant le second ə.
 +
 +
<nowiki>[259]</nowiki>
 +
 +
<center>11. ''Application au problème de la décision (Entscheidungsproblem)''.</center>
 +
 +
 +
Les résultats de § 8 ont d’importantes conséquences. En particulier, on peut les utiliser pour montrer que le problème de la décision de Hilbert (Entscheidungsproblem) peut ne pas avoir de solution. Je me contenterai ici de démontrer ce théorème particulier et, pour une formulation précise du problème en question, je renverrai le lecteur à Hilbert et Ackermann (''Grundzüge der Theoretischen Logik'', Berlin, 1931, chapitre 3).
 +
 +
Je me propose donc de démontrer qu’il ne peut pas exister de procédure générale qui permette de décider si une formule U du calcul fonctionnel '''K''' est démontrable, ''i.e.'' qu’il ne peut pas exister de machine qui, pour toute formule U, dira finalement si U est démontrable.
 +
 +
Il conviendrait peut-être de noter que la démonstration que je me propose de faire est assez différente des résultats bien connus de Gödel<ref name="ftn17"> ''Op. cit.''</ref>. Ce dernier a en effet montré qu’il existe (dans le formalisme des ''Principia Mathematica<ref name="ftn18">'' Somme en trois volumes, publiés en 1910-1913 par Alfred North Whitehead et son élève Bertrand Russell, qui se propose d’éclaircir les fondements de l’algèbre et les démonstrations qui en découlent à partir de la logique formelle dans une version réadaptée de la notation de Giuseppe Peano. Première formulation axiomatique, rigoureuse et cohérente des principes généraux des mathématiques, et à ce titre d’une grande importance historique, elle est d’un formalisme lourd, utilisant des dizaines de pages pour prouver des propositions qui peuvent paraître évidentes (Note du traducteur).''</ref>) des propositions U telles que ni U, ni – U, ne sont démontrables, d’où il résulte que l’on ne peut donner aucune preuve de la consistance des ''Principia Mathematica'' (ou de '''K''') à l’intérieur de ce formalisme. Pour ma part, je montrerai qu’il n’existe pas de méthode générale qui permette de dire si une formule donnée U est démontrable dans '''K''', ou, ce qui revient au même, si le système composé de '''K''' et de l’axiome supplémentaire – U est consistant.
 +
 +
S’il avait été prouvé le contraire de ce que Gödel a démontré, ''i.e.'' si, pour chaque proposition U, soit U soit son contraire – U est démontrable, alors nous devrions avoir une solution immédiate du problème de la décision (Entscheidungsproblem). Nous pouvons en effet inventer une machine K permettant de démontrer l’une après l’autre toutes les formules démontrables. Tôt ou tard, elle va atteindre soit U soit – U. Si elle atteint U, alors nous saurons qu’U est démontrable, et si elle atteint - U, alors, puisque '''K''' est consistant (voir Hilbert et Ackermann, p. 65), nous saurons que U n’est pas démontrable.
 +
 +
En raison de l’absence d’entiers dans '''K,''' les démonstrations suivantes vont paraître un peu fastidieuses, mais les idées sous-jacentes sont tout à fait immédiates.
 +
 +
À toute machine à calculer M, nous associons une formule ''In''(M) et nous montrons que, s’il existe une méthode générale permettant de dire si ''In''(M) est démontrable, alors il en existe aussi une pour dire si M imprime au moins une fois 0.
 +
 +
Les interprétations des fonctions propositionnelles utilisées sont les suivantes&nbsp;:
 +
 +
''R<sub>Sj''</sub>(''x'', ''y'')&nbsp;: «&nbsp;dans la configuration complète ''x'' (de M) le symbole sur la case ''y'' est ''S<sub>j''</sub>&nbsp;».
 +
 +
<nowiki>[260]</nowiki>
 +
 +
''I''(''x'', ''y'')&nbsp;: «&nbsp;dans la configuration complète ''x'', la case ''y'' est la case inspectée&nbsp;».
 +
 +
''K<sub>qm''</sub>(''x'')&nbsp;: «&nbsp;dans la configuration complète ''x'', la ''m''-configuration est ''q<sub>m''</sub>&nbsp;».
 +
 +
''S''(''x'', ''y'')&nbsp;: «&nbsp;''y'' est le successeur immédiat de ''x''&nbsp;».
 +
 +
''G''(''x'', ''y'')&nbsp;: «&nbsp;''x'' précède ''y'' (mais n’est pas forcément son prédécesseur immédiat)&nbsp;».
 +
 +
Et ''Inst''{''q<sub>i</sub>S<sub>j</sub>S<sub>k</sub>Gq<sub>l''</sub>} comme abréviation de
 +
 +
(<math>\forall </math>''x'', <math>\forall </math> ''y'', <math>\forall </math> ''x’'', <math>\forall </math> ''y’'') { (''R<sub>Sj''</sub>(''x'', ''y'') ˄ ''I''(''x'', ''y'') ˄ ''K<sub>qi''</sub>(''x'') ˄ ''S''(''x'', ''x’'') ˄ ''S''(''y’'', ''y''))
 +
 +
→ (''I''(''x’'', ''y’'') ˄ ''R<sub>Sk''</sub>(''x’'', ''y'') ˄ ''K<sub>ql''</sub>(''x’'') ˄ ''S''(''y''’, ''z'')
 +
 +
<nowiki>˅ [ (</nowiki>''R<sub>S''0</sub>(''x'', ''z'') → ''R<sub>S''0</sub>(''x’'', ''z''))
 +
 +
˄ (''R<sub>S''1</sub>(''x'', ''z'') → ''R<sub>S''1</sub>(''x’'', ''z'')) ˄ … ˄ (''R<sub>SM''</sub>(''x'', ''z'') → ''R<sub>SM''</sub>(''x''’, ''z''))])}.
 +
 +
et des abréviations construites de façon similaire pour ''Inst''{''q<sub>i</sub>S<sub>j</sub>S<sub>k</sub>D<sub>ql''</sub>} et ''Inst''{''q<sub>i</sub>S<sub>j</sub>S<sub>k</sub>N<sub>ql''</sub>}.
 +
 +
Présentons la description de M dans la première forme standard de § 6. Cette description se compose d’un certain nombre d’expressions telle que «&nbsp;''q<sub>i</sub>S<sub>j</sub>S<sub>k</sub>G<sub>ql''</sub>&nbsp;» (ou ''D'' ou ''N'' à la place de ''G''). Formons toutes les expressions correspondantes telle que ''Inst''{''q<sub>i</sub>S<sub>j</sub>S<sub>k</sub>G<sub>ql''</sub>} et considérons leur conjonction, que nous appelons ''Des''(M).
 +
 +
Notons ''Q'' la formule qui définit les propriétés du successeur&nbsp;:
 +
 +
(<math>\forall </math>''x'') (<math>\exists </math>''w'') (<math>\forall </math>''y'') (<math>\forall </math>''z'')
 +
 +
{ (''S''(''x'', ''w'') ˄ (''S''(''x'','' y'') → ''G''(''x'','' y'')) ˄ (''S''(''x'','' z'') ˄ ''G''(''z'','' y'') → ''G''(''x'','' y''<nowiki>)) ˄ [</nowiki>''G''(''z'','' x'') ˅ (''G''(''x'','' y'') ˄ ''S''(''y'','' z'')) ˅ (''S''(''x'','' y'') ˄ ''S''(''z'','' y'')) → - ''S''(''x'','' z'') ] }(''Q'')
 +
 +
Posons alors ''A''(M) qui définit exactement la machine&nbsp;:
 +
 +
Q ˄ (<math>\forall </math>''y'') ''R<sub>S''0</sub>(''u'', ''y'') ˄ ''I''(''u'', ''u'') ˄ ''K<sub>q''1</sub>(''u'') ˄ ''Des''(M)(''A''(M))
 +
 +
Nous pouvons alors construire la formule ''In''(M)
 +
 +
(<math>\exists </math>''u'') ''A''(M) → (<math>\exists </math>''s'') (<math>\exists </math>''t'') ''R<sub>s''1</sub>(''s'', ''t'')(''In''(M))
 +
 +
Si nous nous référons aux interprétations suggérées pp. 259-60, la formule ''In''(M) se traduit ainsi&nbsp;: «&nbsp;il existe une configuration complète de M telle que ''S''<sub>1</sub> (''i.e.'' 0) soit présent sur la bande&nbsp;» ou «&nbsp;M imprime au moins une fois le symbole 0&nbsp;». En liaison avec ceci, je vais démontrer que les deux propositions suivantes sont équivalentes&nbsp;:
 +
 +
(''a'') «&nbsp;''S''<sub>1</sub> apparaît sur la bande dans une configuration complète de M&nbsp;».
 +
 +
(''b'') «&nbsp;''In''(M) est démontrable&nbsp;».
 +
 +
Parvenu à ce point, le reste de la démonstration du théorème est banal.
 +
 +
 +
<nowiki>[261]</nowiki>
 +
 +
Lemme 1. ''Si S<sub>1</sub> apparaît sur la bande dans une configuration complète de ''M'', alors ''In(M) ''est démontrable.''
 +
 +
 +
Nous devons préciser la démonstration d’''In''(M). Supposons que, dans la ''n-''ième configuration complète, ''i''(''n'') étant le numéro de la case inspectée, ''q<sub>k''(''n'')</sub> la ''m''-configuration, et ''S''<sub>1(''n,'' ''k'')</sub> le symbole présent sur la ''k-''ième case, la suite de symboles sur la bande est dès lors ''S''<sub>1(''n'', 0)</sub>, ''S''<sub>1(''n'', 1)</sub>,…, ''S<sub>r''(''n'', ''n'')</sub>, suivie uniquement de blancs. Nous pouvons alors formuler la proposition&nbsp;:
 +
 +
''R<sub>Sr''(''n'',0)</sub> (''u''<sup>(''n'')</sup>, ''u'') ˄ ''R<sub>Sr''(''n'',1)</sub> (''u''<sup>(''n'')</sup>, ''u’'') ˄… ˄ ''R<sub>Sr''(''n'',''n'')</sub> (''u''<sup>(''n'')</sup>, ''u''<sup>(''n'')</sup>) ˄ ''I''(''u''<sup>(''n'')</sup>, ''u''<sup>(''i''(''n''))</sup>) ˄ ''K<sub>qk''(''n'')</sub> ˄ (<math>\forall </math>''y'') ''S''(''y'', ''u’'') ˅ ''S''(''u'', ''y'') ˅ ''S''(''u’'', ''y'') ˅ … ˅ ''S''(''u''<sup>(''n''-1)</sup>, ''y'') ˅ ''R<sub>S''0</sub>(''u''<sup>(''n'')</sup>, ''y'')'' ''(abrégée ''CC<sub>n''</sub>)
 +
 +
Je montrerai que, pour tout ''n'',
 +
 +
''A''(M) ˄ ''F''<sup>(''n'')</sup> → ''CC<sub>n''</sub> (abrégée ''CF<sub>n''</sub>)
 +
 +
est démontrable. ''CF<sub>n''</sub> signifie «&nbsp;la ''n-''ième configuration complète de M et ainsi de suite&nbsp;», où «&nbsp;ainsi de suite&nbsp;» correspond à la ''n-''ième configuration complète réelle de M. L’on doit donc s’attendre à ce que ''CF<sub>n''</sub> puisse être démontrable.
 +
 +
''CF''<sub>0</sub> est certainement démontrable car, dans la configuration complète n°0 de M, la bande est entièrement vierge, la ''m''-configuration est ''q''<sub>1</sub>, et la case inspectée la n° 0, soit ''u'', ''i.e.'' ''CC''<sub>0</sub> est
 +
 +
(<math>\forall </math>''y'') ''R<sub>S''0</sub>(''u'', ''y'') ˄ ''I''(''u'', ''u'') ˄ ''K<sub>q''1</sub>(''u'').
 +
 +
Chacun de ces termes étant inclus dans ''A''(M), la proposition ''A''(M) → ''CC''<sub>0</sub> est alors démontrable.
 +
 +
Nous montrons ensuite que pour tout ''n'', ''CF<sub>n''</sub> → ''CF<sub>n''+1</sub> est démontrable. Trois cas sont à considérer selon le mouvement de la machine entre la ''n''-ième et la (''n''+1)-ième configuration&nbsp;: à gauche, à droite ou stationnaire. Supposons le premier cas, ''i.e.'' la machine se déplace à gauche. Les deux autres cas sont tout à fait similaires. Si ''r''(''n'', ''i''(''n'')) = ''b'', ''r''(''n''+1, ''i''(''n'')) = ''d'', ''k''(''n'') = ''a'', et ''k''(''n''+1) = ''c'', ''Inst''{''q<sub>a</sub>S<sub>b</sub>S<sub>d</sub>G<sub>qc''</sub>} doit être l’un des termes compris dans ''Des''(M), ''i.e.''
 +
 +
''Des''(M) → ''Inst''{''q<sub>a</sub>S<sub>b</sub>S<sub>d</sub>G<sub>qc''</sub>}
 +
 +
d’où
 +
 +
''A''(M) ˄ ''F''<sup>(''n''+1)</sup> → ''Inst''{''q<sub>a</sub>S<sub>b</sub>S<sub>d</sub>G<sub>qc''</sub>} ˄ ''F''<sup>(''n''+1)</sup>.
 +
 +
or
 +
 +
''Inst''{''q<sub>a</sub>S<sub>b</sub>S<sub>d</sub>G<sub>qc''</sub>} ˄ ''Q'' ˄ ''F''<sup>(''n''+1)</sup> → (''CC<sub>n''</sub> → ''CC<sub>n''+1</sub>)
 +
 +
est démontrable, et donc
 +
 +
''A''(M) ˄ ''F''<sup>(''n''+1)</sup> → (''CC<sub>n''</sub> → ''CC<sub>n''+1</sub>)
 +
 +
<nowiki>[262]</nowiki>
 +
 +
l’est aussi, et
 +
 +
(''A''(M) ˄ ''F''<sup>(''n'')</sup> → ''CC<sub>n''</sub>) → (''A''(M) ˄ ''F''<sup>(''n''+1)</sup> → ''CC<sub>n''+1</sub>),
 +
 +
i.e. exactement ''CF<sub>n''</sub> → ''CF<sub>n''+1</sub>.
 +
 +
Ainsi, ''CF<sub>n''</sub> est démontrable quel que soit ''n''. Et l’hypothèse de notre lemme est que ''S''<sub>1</sub> apparaît dans l’une des configurations complètes, dans la suite des symboles imprimés de M, c’est-à-dire qu’il existe des entiers ''N'', ''K'', tels que ''R<sub>S''1</sub>(''u''<sup>(''N'')</sup>, ''u''<sup>(''K'')</sup>) est l’un des termes de'' CC<sub>N''</sub>, d’où ''CC<sub>N''</sub> → ''R<sub>S''1</sub> (''u''<sup>(''N'')</sup>, ''u''<sup>(''K'')</sup>) est démontrable. Or ''A''(M) ˄ ''F''<sup>(''N'')</sup> → ''CC<sup>N''</sup>. Nous avons aussi&nbsp;:
 +
 +
(<math>\exists </math>''u'') ''A''(M) → (<math>\exists </math>''u'') (<math>\exists </math>''u’'') … (<math>\exists </math>''u''<sup>(''N’'')</sup>) (''A''(M) ˄ ''F''<sup>(''N'')</sup>),
 +
 +
où ''N’'' = ''Max''(''N'', ''K''). De là,
 +
 +
(<math>\exists </math>''u'') ''A''(M) → (<math>\exists </math>''u'') (<math>\exists </math>''u’'') … (<math>\exists </math>''u''<sup>(''N’'')</sup>) ''R<sub>S''1</sub>(''u''<sup>(''N'')</sup>, ''u''<sup>(''K'')</sup>),
 +
 +
(<math>\exists </math>''u'') ''A''(M) → (<math>\exists </math>''u''<sup>(''N'')</sup>) (<math>\exists </math>''u''<sup>(''K'')</sup>) ''R<sub>S''1</sub>(''u''<sup>(''N'')</sup>, ''u''<sup>(''K'')</sup>),
 +
 +
(<math>\exists </math>''u'') ''A''(M) → (<math>\exists </math>''s'') (<math>\exists </math>''t'') ''R<sub>S''1</sub>(''s'', ''t''),
 +
 +
i.e. ''In''(M) est démontrable, ce qui démontre le lemme 1.
 +
 +
 +
Lemme 2. ''Si'' In(M) ''est démontrable, alors S<sub>1</sub> apparaît sur la bande dans l’une des configurations complètes de'' M.
 +
 +
 +
En substituant des fonctions propositionnelles aux variables fonctionnelles dans une formule démontrable, nous obtenons une proposition vraie. En particulier, si nous remplaçons ces variables par leurs interprétations des tableaux pp. 259-260 dans ''In''(M), nous obtenons une proposition vraie signifiant «&nbsp;''S''<sub>1</sub> apparaît quelque part sur la bande dans l’une des configurations complètes de M&nbsp;».
 +
 +
Nous sommes maintenant à même de montrer que le problème de la décision (Entscheidungsproblem) ne peut pas avoir de solution. Supposons en effet le contraire. Il existe alors une procédure générale (mécanique) permettant de déterminer si ''In''(M) est démontrable. Les lemmes 1 et 2 impliquent qu’il existe dès lors une procédure générale pour déterminer si M imprime au moins une fois 0, ce qui est impossible d’après les résultats de § 8. Il en résulte que le problème de la décision (Entscheidungsproblem) ne peut pas avoir de solution.
 +
 +
<nowiki>Au vu du grand nombre de solutions particulières du problème de la décision (Entscheidungsproblem) pour des formules à systèmes restreints de quantificateurs, [263] il est intéressant d’exprimer </nowiki>''In''(M) sous une forme restrictive où tous les quantificateurs sont au début. On peut ainsi exprimer ''In''(M) sous la forme suivante&nbsp;:
 +
 +
(<math>\forall </math>''u'') (<math>\exists </math>''x'') (<math>\forall </math>''w'') (<math>\exists </math>''u''<sub>1</sub>) … (<math>\exists </math>''u<sub>4''</sub>) B,(I)
 +
 +
où la formule B est exempte de quantificateurs.
 +
 +
 +
<center>Appendice.</center>
 +
 +
(28 août 1936)
 +
 +
 +
<center>''Calculabilité et calculabilité effective''</center>
 +
 +
Nous présentons ci-dessous les grandes lignes de la démonstration du théorème de l’équivalence des suites effectivement calculables (λ-définissables) et des suites calculables. On suppose compris les termes «&nbsp;formule bien formée&nbsp;» (F.B.F.) et «&nbsp;conversion&nbsp;» utilisés par Church et Kleene. Dans la seconde partie de notre argumentation (tout nombre calculable est λ-définissable), on postule l’existence de plusieurs formules sans démonstration&nbsp;; ces formules peuvent être directement créées à l’aide, par exemple, des résultats de Kleene («&nbsp;A theory of positive integers in formal logic&nbsp;», ''American Journal of Math.'', 57, 935, pp. 153-173 et 219-244).
 +
 +
On notera ''N<sub>n''</sub> la F.B.F. représentant un entier ''n''. Nous dirons que la suite ''γ'' dont le ''n''-ième chiffre est ''ϕ<sub>γ''</sub>(''n'') est λ-définissable ou effectivement calculable si et seulement si 1 + ''ϕ<sub>γ''</sub>(''n'') est une fonction λ-définissable de ''n'', ''i.e.'' s’il existe une F.B.F. ''M<sub>γ''</sub> telle que, pour tout entier ''n'',
 +
 +
{''M<sub>γ''</sub>} (''N<sub>n''</sub>) ''conv'' ''N''<sub>1 + ''ϕγ''(''n'')</sub>,
 +
 +
''i.e.'' si {''M<sub>γ''</sub>} (''N<sub>n''</sub>) est convertible en λ''xy''.''x''(''y'') ou en λ''xy''.''x''(''x''(''y'')) selon que le ''n''-ième chiffre de γ est un 0 ou un 1.
 +
 +
Pour démontrer que toute suite ''γ'' λ-définissable est aussi calculable, il nous faut construire une machine qui permette de calculer ''γ''. Pour utiliser les F.B.F. avec des machines, il est plus pratique d’effectuer une petite modification dans leur calcul de conversion. Ce changement consiste à renommer ''x'', ''x’'', ''x’’'', etc., les variables ''a'', ''b'', ''c'', etc. Puis, nous construisons une machine L qui, munie de la formule ''M<sub>γ''</sub>, inscrit la suite ''γ''. La construction de L est assez similaire à celle de la machine K qui trouve toutes les formules démontrables du calcul fonctionnel. Nous construisons d’abord une machine à choix L<sub>1</sub> qui, munie d’une F.B.F., par exemple la formule initiale ''M'', et bien utilisée, génère toute formule en laquelle cette formule est convertible. On peut alors modifier L<sub>1</sub> pour obtenir une machine automatique L<sub>2</sub><nowiki> qui produit successivement toutes les formules [264] en lesquelles </nowiki>''M'' est convertible (cf. la note p. 252 sur la transformation d’une ''c''-machine en ''a''-machine). La machine L<sub>2</sub> est une des composantes de L. Le mouvement de la machine L munie de la formule ''M<sub>γ''</sub> se décompose en phases, dont la phase ''n'' est destinée à trouver le ''n''-ième chiffre de la suite ''γ'', en inscrivant tout d’abord dans cette ''n-''ième phase la F.B.F. {''M<sub>γ''</sub>} (''N<sub>n''</sub>), puis en fournissant cette formule à la machine L<sub>2</sub> pour que celle-ci la convertisse successivement en un certain nombre d’autres formules. Chaque formule ainsi générée, telle qu’on la rencontre, est finalement comparée avec les formes normales principales de ''N''<sub>1</sub> et ''N''<sub>2</sub>, soit&nbsp;:
 +
 +
<nowiki>λ[λ</nowiki>''x''<nowiki>’[ {</nowiki>''x''} (''x''’)]](''N''<sub>1</sub>)
 +
 +
λ''x''<nowiki>[λ</nowiki>''x''<nowiki>’[ {</nowiki>''x''} ( {''x''} (''x''’))]] (''N''<sub>2</sub>)
 +
 +
Si la formule est égale à ''N''<sub>1</sub> (ou ''N''<sub>2</sub>), la machine imprime alors le chiffre 0 (ou 1) et la phase ''n'' s’achève. Si elle est différente des deux, alors L<sub>2</sub> reprend son travail pour générer une nouvelle formule. Par hypothèse, {''M<sub>γ''</sub>} (''N<sub>n''</sub>) est convertible en l’une des formules ''N''<sub>2</sub> ou ''N''<sub>1&nbsp;</sub><nowiki>; de ce fait, la phase </nowiki>''n'' finira par s’achever, i.e. le ''n''ième chiffre de la suite ''γ'' finira par s’inscrire.
 +
 +
Pour démontrer que toute suite calculable ''γ'' est λ-définissable, nous devons montrer que l’on peut créer une F.B.F. ''M<sub>γ''</sub> telle que, pour tout entier ''n'',
 +
 +
{''M<sub>γ''</sub>} (''N<sub>n''</sub>) ''conv'' N<sub>1+''ϕγ''(''n'')</sub>(''A''<sub>1</sub>)
 +
 +
Soit une machine M permettant de calculer la suite ''γ'', et utilisons une description des configurations complètes de M au moyen de nombres, par exemple son N.D de configuration complète décrit en § 6. Soit ''ξ''<sub>M</sub>(''n'') le N.D de la ''n-''ième configuration complète de M. Le tableau de la machine M nous donne, entre les nombres ''ξ''<sub>M</sub>(''n'') et ''ξ''<sub>M</sub>(''n''+1), une relation de la forme&nbsp;:
 +
 +
''ξ''<sub>M</sub>(''n''+1) = ''ρ''<sub>M</sub>(''ξ''<sub>M</sub>(''n'')),
 +
 +
où ''ρ''<sub>M</sub> est une fonction de forme très restreinte, même si, en général, elle n’est pas vraiment très simple&nbsp;: on l’obtient à partir du tableau de M, et elle est λ-définissable (mais je n’en donne pas ici de démonstration), ''i.e.'' il existe une F.B.F. ''A''<sub>M</sub> telle que, pour tout entier ''n'',
 +
 +
{''A''<sub>M</sub>} (''N<sub>ξ''M(''n'')</sub>) ''conv'' ''ξ''<sub>M</sub>(''n''+1).
 +
 +
Soit ''U''<sub>M</sub> substitué à&nbsp;:
 +
 +
λ''u''<nowiki>[{{</nowiki>''u''} (''A''<sub>M</sub>} (''N<sub>r''</sub>)], où ''r'' = ''ξ''<sub>M</sub> (0)(''U''<sub>M</sub>)
 +
 +
pour tout entier ''n'', on a&nbsp;:
 +
 +
{''U''<sub>M</sub>} (''N<sub>n''</sub>) ''conv'' ''N<sub>ξ''M(''n'')</sub>.
 +
 +
<nowiki>[265]</nowiki>
 +
 +
On peut démontrer qu’il existe une formule ''V'' telle que&nbsp;:
 +
 +
''N''<sub>1</sub> si, la machine passant de la ''n-''ième à la (''n''+1)-ième configuration complète, elle imprime entre les deux le chiffre 0.
 +
 +
{{''V''} (''N<sub>ξ''M(''n''+1)</sub>)} (''N<sub>ξ''M(''n'')</sub>) ''conv'' ~''N''<sub>2</sub> si la machine imprime le chiffre 1.
 +
 +
''N''<sub>3</sub> sinon.
 +
 +
Soit ''W''<sub>M</sub> substitué à&nbsp;:
 +
 +
λ''u''<nowiki> [{{</nowiki>''V''} ({''A''<sub>M</sub>} ({''U''<sub>M</sub>} (''u'')))} ({''U''<sub>M</sub> } (u))](''W''<sub>M</sub>)
 +
 +
de sorte que, pour tout entier ''n'',
 +
 +
{{''V''} (''N<sub>ξ''M(''n''+1)</sub>)} (''N<sub>ξ''M(''n'')</sub>) ''conv'' {''W''<sub>M</sub>} (''N<sub>n''</sub>),
 +
 +
et soit ''Q'' une formule telle que
 +
 +
{{''Q''} (''W''<sub>M</sub>)} (''N<sub>s''</sub>) ''conv'' ''N<sub>r''(''s'')</sub>,
 +
 +
où ''r''(''s'') est le ''s''-ième entier ''q'' pour lequel {''W''<sub>M</sub>} (''N<sub>q''</sub>) est convertible soit en ''N''<sub>1</sub> soit en ''N<sub>2''</sub>. Alors, si ''M''<sub>M</sub> est substitué à
 +
 +
λ''w''<nowiki> [{</nowiki>''W''<sub>M</sub>} ({{''Q''} (''W''<sub>M</sub>)} (''w''))](''M''<sub>M</sub>)
 +
 +
''M''<sub>M</sub> aura la propriété (''A''<sub>1</sub>) requise<ref name="ftn19"> Pour une démonstration complète de la λ-définissabilité de suites calculables, il vaudrait mieux modifier cette méthode en remplaçant la description numérique des configurations complètes par une description que l’on puisse traiter plus facilement avec nos outils du λ-calcul. Pour cela, choisissons certains entiers pour représenter les symboles et les ''m''-configurations de la machine. Imaginons, dans une certaine configuration complète, que la suite de symboles sur la bande est représentée par les nombres ''s''<sub>1</sub>, ''s''<sub>2</sub>, … ''s<sub>n''</sub>, le symbole inspecté est le ''m-''ième, et la ''m''-configuration porte le nombre ''t''&nbsp;; nous pouvons alors représenter cette configuration complète par la formule
 +
 +
<nowiki>[[</nowiki>''N<sub>s''1</sub>, ''N<sub>s''2</sub>, …,'' N<sub>sm-''1</sub><nowiki>], [</nowiki>''N<sub>t''</sub>, ''N<sub>sm''</sub><nowiki>], [</nowiki>''N<sub>sm+''1</sub>, …, ''N<sub>sn''</sub>]],
 +
 +
où <nowiki>[</nowiki>''a'', ''b''] est l’abréviation de λ''u''<nowiki> [{{</nowiki>''u''} (''a'')} (''b'')],
 +
 +
<nowiki>[</nowiki>''a'', ''b'', ''c''] est l’abréviation de λ''u''<nowiki> [{{{</nowiki>''u''} (''a'')} (''b'')} (''c'')],
 +
 +
etc.</ref>.
 +
 +
 +
Graduate College,
 +
 +
Princeton University,
 +
 +
New Jersey, U.S.A.
 +
 +
 +
<center>'''''Correctif à la calculabilité des nombres et son application au problème de la décision (Entscheidungsproblem).'''''</center>
 +
 +
<center>'''(A. M. Turing)'''</center>
 +
 +
 +
'''Sources et version de l’article original en ligne&nbsp;:'''
 +
 +
Turing, Alan&nbsp;: «&nbsp;On Computable Numbers, with an Application to the Entscheidungsproblem. A correction&nbsp;», in [http://fr.wikipedia.org/wiki/London_Mathematical_Society#Publications Proc. London Math. Soc.], 2<sup>e</sup> série, vol. 43, 1938, pp. 544-546.
 +
 +
[http://www.wolframscience.com/prizes/tm23/images/Turing2.pdf http://www.wolframscience.com/prizes/tm23/images/Turing2.pdf]
 +
 +
 +
Dans un article intitulé «&nbsp;On computable numbers, with an application to the Entscheidungsproblem&nbsp;»<ref name="ftn20"> ''Proc. London Math. Soc.'' (2), 42 (1936-7), 230-265.</ref>, l’auteur a donné une démonstration de l’insolubilité du problème de la décision (Entscheidungsproblem) du «&nbsp;calcul fonctionnel restreint&nbsp;» («&nbsp;engere Funktionenkalkül&nbsp;»). Cette démonstration contenait des erreurs formelles<ref name="ftn21"> L’auteur est redevable à P. Bernays du signalement de ces erreurs.</ref> qui seront ici corrigées&nbsp;: il y a aussi quelques autres affirmations dans le même article qui devraient être modifiées, bien qu’en l’état elles ne soient pas véritablement fausses.
 +
 +
Il faut ainsi lire l’expression de ''Inst''{''q<sub>i</sub>S<sub>j</sub>S<sub>k</sub>Lq<sub>l''</sub>} à la p. 260 de l’article cité&nbsp;:
 +
 +
(<math>\forall </math>''x'', <math>\forall </math> ''y'', <math>\forall </math> ''x’'', <math>\forall </math> ''y’'') { (''R<sub>Sj''</sub>(''x'', ''y'') ˄ ''I''(''x'', ''y'') ˄ ''K<sub>qi''</sub>(''x'') ˄ ''S''(''x'', ''x’'') ˄ ''S''(''y’'', ''y''))
 +
 +
→ (''I''(''x’'', ''y’'') ˄ ''R<sub>Sk''</sub>(''x’'', ''y'') ˄ ''K<sub>ql''</sub>(''x’'') ˄ ''S''(''y''’, ''z'')
 +
 +
<nowiki>˅ [ (</nowiki>''R<sub>S''0</sub>(''x'', ''z'') → ''R<sub>S''0</sub>(''x’'', ''z''))
 +
 +
˄ (''R<sub>S''1</sub>(''x'', ''z'') → ''R<sub>S''1</sub>(''x’'', ''z'')) ˄ … ˄ (''R<sub>SM''</sub>(''x'', ''z'') → ''R<sub>SM''</sub>(''x''’, ''z''))])}.
 +
 +
''S''<sub>0</sub>, ''S''<sub>1</sub>, …, ''S<sub>M''</sub> étant les symboles que M peut imprimer.
 +
 +
L’affirmation p. 261, ligne 33&nbsp;: «&nbsp;''Inst''{''q<sub>a</sub>S<sub>b</sub>S<sub>d</sub>G<sub>qc''</sub>} ˄ ''F''<sup>(''n''+1)</sup> → (''CC<sub>n''</sub> → ''CC<sub>n''+1</sub>) est démontrable&nbsp;» est fausse (même avec la nouvelle expression de ''Inst''{''q<sub>a</sub>S<sub>b</sub>S<sub>d</sub>L<sub>qc''</sub>})&nbsp;; nous ne pouvons pas par exemple déduire ''F''<sup>(''n''+1)</sup> → (- ''F''(''u'', ''u’’'')), et donc nous ne pouvons utiliser dans ''Inst''{''q<sub>a</sub>S<sub>b</sub>S<sub>d</sub>L<sub>qc''</sub>} le terme
 +
 +
''F''(''y’'', ''z''<nowiki>) ˅ [(</nowiki>''R<sub>S''0</sub>(''x'', ''z'') → ''R<sub>S''0</sub>(''x’'', ''z'')) ˄ … ˄ (''R<sub>SM''</sub>(''x'', ''z'') → ''R<sub>SM''</sub>(''x’'', ''z''))]
 +
 +
<nowiki>[545]</nowiki>
 +
 +
Pour cette correction, nous introduisons une nouvelle variable fonctionnelle ''G''<nowiki> [</nowiki>''G''(''x'', ''y'') qui signifie «&nbsp;''x'' précède ''y''&nbsp;»]. Alors, si ''Q'' est une abréviation de&nbsp;:
 +
 +
(<math>\forall </math>''x'') (<math>\exists </math>''w'') (''y'', ''z'') { ''F''(''x'', ''w'') ˄ (''F''(''x'', ''y'') → ''G''(''x'', ''y'')) ˄ (''F''(''x'', ''z'') ˄ ''G''(''z'', ''y'') → ''G''(''x'', ''y''))
 +
 +
˄ ''G''(''z'', ''x'') v (''G''(''x'', ''y'') ˄ ''F''(''y'', ''z'')) v (''F''(''x'', ''y'') ˄ ''F''(''z'', ''y'')) → (-''F''(''x'', ''z''))]}
 +
 +
la formule correcte ''In''(M) doit être
 +
 +
(<math>\exists </math>''u'') ''A''(M) → (<math>\exists </math>''s'') (<math>\exists </math>''t'') ''R<sub>s1''</sub>(''s'', ''t''),
 +
 +
où ''A''(M) est une abréviation de
 +
 +
''Q'' ˄ (''y'') ''R<sub>s''0</sub>(''u'', ''y'') ˄ ''I'' (''u'', ''u'') ˄ ''K<sub>q''1</sub>(''u'') & ''Des''(M).
 +
 +
L’affirmation page 261 (ligne 33) doit alors se lire
 +
 +
''Inst''{''q<sub>a</sub>S<sub>b</sub>S<sub>d</sub>L<sub>qc''</sub>} ˄ ''Q'' ˄ ''F''<sup>(''n''+1)</sup> → (''CC<sub>n''</sub> → ''CC<sub>n''+1</sub>),
 +
 +
et la ligne 29 devrait se lire
 +
 +
''r''(''n'', ''i''(''n'')) = ''b'', ''r''(''n''+1, ''i''(''n'')) = ''d'', ''k''(''n'') = ''a'', et ''k''(''n''+1) = ''c''.
 +
 +
À la place des mots «&nbsp;somme logique&nbsp;» p. 260, ligne 15, lire «&nbsp;conjonction&nbsp;». Avec ces modifications, la démonstration est correcte. ''In''(M) peut être mis sous la forme (I) (p. 263) avec ''n'' = 4.
 +
 +
Des difficultés surviennent du fait de la définition particulière que l’on a donnée du «&nbsp;nombre calculable&nbsp;» (p. 233). En effet, si les nombres calculables devaient satisfaire à des exigences intuitives, nous aurions&nbsp;:
 +
 +
''Soient deux suites calculables de nombres rationnels a<sub>n''</sub>, ''b<sub>n</sub> dans lesquelles ils sont associés deux par deux à un entier positif n'', ''tels que, pour tout n,'' ''a<sub>n''</sub> ≤ ''a<sub>n''+1</sub><nowiki> < </nowiki>''b<sub>n''+1 </sub>≤ ''b<sub>n''</sub>, et ''b<sub>n''</sub> - ''a<sub>n''</sub><nowiki> < 2</nowiki><sup>-''n''</sup>, ''alors il existe un nombre calculable'' ''α'' ''tel que, pour tout n, a<sub>n''</sub> ≤ ''α'' ≤ ''b<sub>n''</sub>.(''A'')
 +
 +
On peut en donner une démonstration, valable selon les standards mathématiques en vigueur, mais exigeant une application du principe du tiers exclu. En revanche, la proposition suivante est fausse&nbsp;:
 +
 +
''Il existe une procédure qui permet d’obtenir le ''N.D'' d’une machine à calculer le nombre α à partir de la règle de formation des suites de nombres rationnels a<sub>n</sub>, b<sub>n</sub> dans ''(A).(''B'')
 +
 +
À condition d’adopter la convention selon laquelle les décimales de nombres de la forme ''m''/2<sup>''n''</sup> se termineront par une infinité de zéros, le procédé suivant permet de voir que la proposition (''B'') est fausse&nbsp;: soit une machine N quelconque, ''c<sub>n''</sub> = <math>\frac{1}{2}</math> si N n’a encore imprimé aucun chiffre 0 lorsqu’elle atteint sa ''n-''ième configuration complète, ''c<sub>n''</sub> = <math>\frac{1}{2}</math> - 2<sup>-''m''-3</sup> si N a imprimé 0 pour la première fois dans sa ''m-''<nowiki>ième [546] configuration complète (</nowiki>''m'' ≤ ''n''), puis ''a<sub>n''</sub> = ''c<sub>n''</sub> – 2<sup>-''n''-2</sup> et ''b<sub>n''</sub> = ''c<sub>n''</sub> + 2<sup>-''n''-2</sup>. Les inégalités de la proposition (''A'') sont alors satisfaites, et le premier chiffre de α (limite de ''c<sub>n''</sub>) est 0 si N imprime 0 au moins une fois, et 1 dans le cas contraire. Si la proposition (''B'') était vraie, nous aurions un moyen de connaître le premier chiffre de α étant donné le N.D de N&nbsp;: ''i.e.'' nous serions capables de déterminer si N imprime jamais 0, ce qui est contraire aux résultats de § 8 de l’article cité. Ainsi, bien que (''A'') montre qu’il doit exister des machines qui calculent, par exemple, la constante d’Euler, nous ne pouvons pas pour le moment décrire une telle machine, car nous ne savons pas encore si cette constante est de la forme ''m''/2<sup>''n''</sup>.
 +
 +
Il est possible d’échapper à cette situation inconfortable en modifiant la manière dont les nombres calculables sont associés aux suites calculables, tout en préservant intégralement l’ensemble des nombres calculables. Il est possible de le faire de nombreuses manières<ref name="ftn22"> À l’origine, cette utilisation des intervalles d’imbrication pour la définition des nombres réels est due à Brouwer.</ref>, dont voici un exemple. Soit ''i'' le premier chiffre d’une suite calculable ''γ'', suivi de ''n'' fois le chiffre 1, d’un 0, puis de la suite dont le ''r-''ième chiffre est ''c<sub>r''</sub>&nbsp;; on fait correspondre à la suite ''γ'' le nombre réel ''r''γ&nbsp;:
 +
 +
''r''γ = (2''i'' – 1) ''n'' + <math>\sum _{r=1}^{\infty }\left(2cr\endash 1\right)\left(\frac{2}{3}\right)r</math>.
 +
 +
Si l’on considère que la machine qui calcule la suite ''γ'' calcule aussi le nombre réel'' r''γ, alors (''B'') est une proposition vraie. L’unicité de représentation des nombres réels par des suites de chiffres est brisée, mais ceci a peu d’importance théorique, puisque les N.D ne sont pas invariablement uniques.
 +
 +
 +
Graduate College,
 +
 +
Princeton, N.J., U.S.A.
 +
 +
----
 +
<references/>

Version actuelle datée du 17 octobre 2014 à 13:29

La Machine de Turing : les textes fondateurs


La calculabilité des nombres et son application au problème de la décision [Entscheidungsproblem]
(A. M. Turing)


Traduction Dominique Bonnaud-Dantil


L’immersion dans les textes fondateurs est un exercice fortement conseillé. Au même titre que La richesse des Nations d’Adam Smith (1776), ou De l’origine des espèces de Charles Darwin (1859), La calculabilité des nombres et son application au problème de la décision d’Alan Turing (1937), est l’un de ces textes. D’un côté, deux ouvrages diffusés en direction d’un public relativement large, de l’autre, un simple article réservé à des spécialistes, mais l’impact et l’importance dans l’histoire des idées et l’histoire tout court sont les mêmes. Tout commence dans l’été 1900, à Paris, où l’Exposition universelle bat son plein, lors du 2e Congrès international des mathématiciens, lorsque David Hilbert (1862-1943), professeur à l’université allemande de Göttingen, souvent considéré comme un des plus grands mathématiciens du 20e siècle, en tout cas la plus importante personnalité de cette discipline en son temps, lance le programme des recherches du siècle à venir en recensant 23 grands problèmes ouverts dont les réponses sont censées faire progresser la discipline. Ce programme est en effet à l’origine de nombreux travaux et réflexions, dont ceux de Turing.
Problèmes et choix de traduction


C’est après avoir traduit les articles de Turing que j’ai pris connaissance de la traduction de Julien Basch (in Turing/Girard, La machine de Turing, Seuil, Points Sciences, 1995). La prise en compte des corrections que cette dernière présente ou apporte au texte original de Turing m’est alors apparue indispensable : celles de la section 7 (Description détaillée de la machine universelle) par le mathématicien américain d’origine polonaise Emil Post (« Recursive Unsolvability of a Problem of Thue », The Journal of Symbolic Logic, vol. 12, 1947, pp. 1-11), et celles de la démonstration du théorème (iii’) de la section 10. Ces corrections sont reportées directement, en rouge pour les distinguer, dans la traduction proposée ci-dessous. Quant aux corrections de la section 11 (Application au problème de la décision) émanant de Turing lui-même sur les indications du mathématicien suisse Paul Bernays, spécialiste de logique mathématique longtemps assistant et collaborateur de David Hilbert, dans l’erratum à son article original, j’ai adopté le choix de la traduction Basch en les incorporant également directement sans distinction de couleur.


Pour un texte scientifique où la précision de la terminologie est un élément essentiel, il s’est également, et rapidement, avéré que la première version de notre traduction devait être révisée en tenant compte de cette terminologie spécifique. Exemple : formula ou quantor. Après avoir traduit le premier terme par « énoncé », et fort embarrassé pour trouver un équivalent français au second, une rapide initiation à la logique formelle m’a permis de réaliser que tous deux ont une acception précise dans cette discipline, et qu’il n’est pas possible de les traduire autrement que par « formule » et « quantificateur ». De même pour diagonal process, que j’avais d’abord malencontreusement traduit par « procédure oblique », alors que l’argument diagonal de Cantor ne laisse aucun doute, et qu’il faut donc traduire par « procédé diagonal » comme le fait d’ailleurs Basch.


Mais, s’il est des choix de traduction impératifs, il en est d’autres facultatifs. En fait, certains choix sont souhaitables pour l’harmonisation des diverses traductions possibles et disponibles. Exemple de traduction facultative : le titre, « Théorie des nombres calculables, suivie d’une application… » (Basch), « La calculabilité des nombres et son application… » (Ma traduction). L’une et l’autre traduction sont possibles, et leur différence n’est pas susceptible de produire de la confusion et du contresens. Dans les deux cas, il est bien question des mêmes choses. Je n’avais donc aucune raison de modifier mon choix. Mais autre exemple, autre option : Circular and circle-free machines, que j’ai d’abord traduit par « machines circulaires et non-circulaires ». C’est un choix cohérent possible, mais j’ai finalement opté pour « cyclique » et « acyclique » de la traduction Basch, non seulement parce que cette dernière est bien meilleure, mais aussi dans un souci d’harmoniser le vocabulaire technique. De même pour choice machines, que Basch traduit par « machines à choix », mais que l’on pourrait tout aussi bien traduire, et peut-être mieux, par « machines à options » ou, en tenant compte du contexte et de la définition donnée par Turing lui-même, « machines partiellement déterministes ». Là encore, l’harmonisation et l’antériorité ont prévalu pour conserver la traduction « machines à choix ».


En revanche, j’ai suivi une autre voie pour traduire l’anglais determine. En effet, outre le sens primitif de « déterminer », il possède aussi, dans le contexte du problème de la décision abordé par Turing, le sens dérivé de « décider », determination étant le terme anglais utilisé pour « décision » au sens que lui a donné la discipline des mathématiques. Or, il m’a semblé que plusieurs occurrences de la traduction Basch négligent ce sens dérivé, pourtant d’une grande importance dans cet article. Sans écarter totalement le sens traditionnel, j’ai rétabli le sens dérivé pour toutes les occurrences susceptibles de s’y rapporter.


Traduction des lettres et symboles. Deux possibilités s’offrent au traducteur : garder les lettres utilisées par Turing, dont certaines sont en correspondance mnémonique avec des termes de la langue anglaise (par exemple R pour right, L pour left), ou les franciser comme le fait la traduction Basch qui transforme R en D pour droite, et L en G pour gauche, avec des effets en cascade sur les autres lettres utilisées. En revanche et avec sagesse, cette traduction n’est pas allée jusqu’à modifier les noms de fonctions, probables mnémoniques de termes anglais : fonction trouver, f = find ; fonction comparer, cp = compare ; fonction comparer-effacer, cpe = compare erase ; fonction configurer : con = configure ; fonction commencer : b = begin ; fonction simuler : sim = simulate ; fonction montrer : sh = show ; etc. Le choix d’adopter D et G pour R et L m’obligeant à modifier d’autres symboles, plutôt que de me singulariser ou de raffiner sans raison valable, outre les risques d’omission et d’erreur que représentent des modifications systématiques, la reproduction des mêmes transformations que celles de la traduction Basch est apparue comme la solution la plus raisonnable, avec l’avantage de ne pas dérouter le lecteur susceptible d’aborder l’une ou l’autre de ces traductions.


De même, j’ai suivi le choix judicieux de Basch en actualisant la notation de la logique formelle, légèrement différente à l’époque de Turing et de Gödel. C’est ainsi que le quantificateur (x) au sens de « pour tout x » s’écrit aujourd’hui <math>\forall </math> x, et & (le signe tironien dit esperluette ou commercial) le symbole conjonctif s’écrit désormais ˄, sans compter les risques de confusion, & étant maintenant utilisé dans la logique linéaire au sens de « avec ».


Tous les autres choix et différences sont personnels, purement stylistiques et, dans la mesure du possible, ne compromettent en rien le sens du texte.


Dominique BONNAUD-DANTIL

Chargé d’études documentaires

Canopé-CNDP Chasseneuil-du-Poitou


La calculabilité des nombres et son application au problème de la décision [Entscheidungsproblem<ref name="ftn1"> En allemand dans le texte. En logique mathématique, l’Entscheidungsproblem, ou problème de la décision, est le fait de déterminer de façon mécanique, par un algorithme, si un énoncé est un théorème de la logique égalitaire du premier ordre, c’est-à-dire s’il se dérive dans un système de déduction (voir système à la Hilbert, calcul des séquents, déduction naturelle), sans autres axiomes que ceux de l’égalité (note du traducteur).</ref>]
(A. M. Turing)


Sources et versions de l’article original en ligne :

Alan Turing, « On Computable Numbers, with an Application to the Entscheidungsproblem », dans Proc. London Math. Soc., 2e série, vol. 42, 1937, pp. 230-265.

http://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf

http://www.wolframscience.com/prizes/tm23/images/Turing.pdf

http://www.thocp.net/biographies/papers/turing_oncomputablenumbers_1936.pdf


(Reçu le 28 mai 1936- Lu le 12 novembre 1936)


On peut définir sommairement les nombres « calculables » comme les nombres réels qui, exprimés en décimales, sont calculables avec des moyens finis. Bien que le sujet de cet article soit ostensiblement les nombres calculables, il est pratiquement tout aussi facile de définir et d’étudier des fonctions calculables d’une variable entière ou d’une variable réelle ou calculable, des prédicats calculables, et ainsi de suite. Les enjeux fondamentaux inhérents sont, toutefois, les mêmes dans tous les cas, et mon choix de traiter plus particulièrement des nombres calculables se justifie par la technique la moins lourde que leur étude nécessite. J’espère donner bientôt un compte-rendu sur les relations entre nombres calculables, fonctions, etc. Il comprendra un développement de la théorie des fonctions d’une variable réelle exprimée en termes de nombres calculables. Conformément à ma définition, un nombre est dit calculable si sa partie décimale peut être écrite par une machine.

En §§ 9, 10 je présente quelques arguments dans l’intention de montrer que les nombres calculables comprennent tous les nombres qui pourraient intrinsèquement être considérés comme calculables. En particulier, je démontre que certaines grandes catégories de nombres sont calculables. Elles comprennent, par exemple, les parties réelles de tous les nombres algébriques et des zéros des fonctions de Bessel, les nombres π, e, etc. Les nombres calculables ne comprennent cependant pas tous les nombres définissables, et l’on présente un exemple d’un nombre définissable qui n’est pas calculable.

Bien que l’ensemble des nombres calculables soit immense et, à bien des égards, comparable à celui des nombres réels, il est néanmoins dénombrable. J’examine en § 8 certains arguments qui sembleraient prouver le contraire. Par l’utilisation judicieuse de l’un de ces arguments, l’on aboutit à des conclusions qui sont en apparence les mêmes que celles de Gödel<ref name="ftn2"> Kurt Gödel, « Über formal unentscheidhare Sätze dze Principia Mathematica und verwandter Systeme, I », Monatshefte Math. Phys., 38, 1931, pp. 173-198 [« Sur les propositions formellement indécidables des Principia Mathematica et des systèmes apparentés, I », trad. fr. de J.-B. Scherrer, in Jean-Yves Girard, Le Théorème de Gödel, Seuil, Points Sciences, 1989. Note du traducteur].</ref>. Ces résultats [231] ont d’importantes applications. En particulier, il est montré (§ 11) que le problème de la décision (Entscheidungsproblem) d’Hilbert ne peut avoir de solution.

Dans un article récent, Alonzo Church<ref name="ftn3"> Alonzo Church, « An unsolvable problem of elementary number theory », American J. of Math., 58, 1936, pp. 345-363.</ref> a introduit la notion de « calculabilité effective », équivalente à ma « calculabilité (computabilité) », mais définie de façon très différente. Church parvient à des conclusions similaires sur le problème de la décision<ref name="ftn4"> Alonzo Church, « A note on the Entscheidungsproblem », Journal of Symbolic Logic, I, 1936, pp. 40-41. </ref>. La démonstration de l’équivalence entre « ma calculabilité » et la « calculabilité effective » de Church est esquissée dans un appendice au présent article.


1 Machines à calculer.


Nous avons dit que les nombres calculables sont ceux dont les décimales sont calculables avec des moyens finis, ce qui réclame une définition un peu plus explicite, mais aucune véritable tentative pour justifier les définitions présentées ne sera tentée avant § 9. Dans l’immédiat, je me contenterai de dire que cette justification repose sur le fait que la mémoire humaine est nécessairement limitée.

Nous pouvons comparer un homme en train de calculer un nombre réel à une machine susceptible seulement de passer par un nombre fini d’états, q1, q2, …,qn que l’on appellera « m-configurations ». La machine est équipée d’une « bande » (l’analogue du papier), qui la parcourt et est divisée en sections (appelées « cases »), chacune à même de porter un « symbole ». À chaque instant, il n’y a « dans la machine » qu’une seule case, dite la case r contenant le symbole S(r). Nous pouvons l’appeler la « case inspectée », et le symbole sur cette case le « symbole inspecté ». Ce dernier est le seul et l’unique dont la machine est, pour ainsi dire, « directement consciente ». Cependant, en modifiant sa m-configuration, la machine peut effectivement garder la mémoire de quelques-uns des symboles qu’elle a « vus » (inspectés) auparavant. À chaque instant, le fonctionnement possible de la machine est déterminé par la m-configuration qn et le symbole inspecté S(r). On appellera ce binôme (qn, S(r)) la « configuration », et c’est elle qui conditionne l’évolution possible de la machine : dans certaines des configurations où la case inspectée est blanche (i.e. ne porte aucun symbole), la machine inscrit un nouveau symbole dans la case ; dans d’autres, elle efface le symbole inspecté. Dans son parcours, la machine peut aussi changer de case, mais seulement en glissant d’un seul rang à droite ou à gauche de la case inspectée. Enfin, la m-configuration peut être modifiée. Certains des symboles inscrits [232] formeront la suite de chiffres formant la partie décimale du nombre réel calculé. Les autres ne sont que des marques qui servent d’« aide-mémoire ». Seules ces dernières serviront à effacer.

À mon sens, ces opérations englobent toutes celles utilisées dans le calcul de la valeur d’un nombre. Il sera plus facile de justifier ce point de vue discutable lorsque le lecteur sera familiarisé avec la théorie des machines. Par conséquent, dans la section suivante, je poursuis le développement de cette théorie en supposant compris ce que l’on entend par « machine », « bande », « case inspectée », etc.


2 Définitions.


Machines automatiques.


Si, à chaque étape, le fonctionnement d’une machine (dans le sens de § 1) est entièrement déterminé par sa configuration, nous parlerons de « machine automatique » (ou a-machine).

Dans certains cas, il nous faudrait utiliser des machines (machines à choix ou c-machines<ref name="ftn5"> On pourrait dire aussi « à options » ou, en tenant compte de la définition qui en est donnée, partiellement déterministes (Note du traducteur).</ref>) dont le fonctionnement n’est que partiellement déterminé par sa configuration (d’où l’utilisation du mot « possible » en § 1). Lorsqu’une telle machine atteint l’une de ces configurations ambiguës, elle ne peut poursuivre sa tâche jusqu’à ce qu’un opérateur extérieur ait effectué un choix arbitraire. Nous serions dans le cas d’être obligés d’utiliser ces machines pour opérer sur des systèmes axiomatiques. Dans cet article, je ne traite que de machines automatiques et, par conséquent, j’omettrai souvent le préfixe a-.


Machines à calculer.


On appellera machine à calculer une a-machine qui imprime deux familles de symboles, dont ceux de la première (appelés chiffres) se limitent aux chiffres 0 et 1 (la deuxième famille comprenant tous les autres). Si la machine est équipée d’une bande vierge et se met en route à partir de sa bonne m-configuration initiale, on appellera suite calculée par la machine, la suite de symboles, tous de la première famille, qu’elle imprime, et nombre calculé par la machine, le nombre réel dont la notation décimale binaire est obtenue en préfixant cette suite d’une virgule.

À chaque étape du fonctionnement de la machine, on dira que le numéro de la case inspectée, la suite complète des symboles sur la bande et la m-configuration, décrivent la configuration complète de cette étape. On appellera transitions de la machine ses modifications et celles de la bande d’une configuration complète à la suivante.


[233] Machines cycliques et acycliques.


On appellera cyclique une machine à calculer qui n’inscrit jamais qu’un nombre fini de symboles de la première famille. Dans le cas contraire, elle est dite acyclique.

Une machine sera cyclique si elle atteint une configuration à partir de laquelle plus aucun mouvement n’est possible, ou bien si elle continue à fonctionner, et éventuellement à imprimer des symboles de la deuxième famille, mais ne peut plus du tout imprimer de symboles de la première. Le sens du terme « cyclique » sera expliqué en § 8.


Suites et nombres calculables.


On dit qu’une suite est calculable s’il existe une machine acyclique pouvant la calculer. Un nombre est calculable s’il existe une machine acyclique qui calcule sa partie décimale.

Pour éviter toute confusion, nous parlerons plus souvent de suites calculables que de nombres calculables.


3. Exemples de machines à calculer.


I Pour calculer la suite 010101… on peut construire une machine à quatre m-configurations, « b », « c », « e », « f », et capable d’imprimer les symboles « 0 » et « 1 ». Le fonctionnement de cette machine est décrit dans le tableau suivant, dans lequel les signes de la colonne « opérations » signifient :

« D » : « la machine se déplace de façon à inspecter la case immédiatement à droite de celle qu’elle inspectait précédemment ».

« G » : même chose à gauche.

« E » : « le symbole inspecté est effacé ».

« I » : « impression » du symbole dans la case inspectée.

Ce tableau (ainsi que tous ceux qui suivent) doit être ainsi compris : pour une configuration décrite dans les deux premières colonnes, la machine suit dans l’ordre les instructions de la troisième, puis se place dans la m-configuration décrite dans la dernière. Lorsque la deuxième colonne est vide, cela signifie que le fonctionnement exprimé dans les troisième et quatrième colonnes s’applique quel que soit le symbole ou l’absence de symbole. La m-configuration initiale de la machine est b et la bande est vierge.


ConfigurationFonctionnement

m-config.symboleopérationsm-config. finale

baucunI0, Dc

caucunDe

eaucunI1, Df

faucunDb


[234] Si, contrairement aux définitions de § 1, nous autorisons, dans la colonne des opérations, les instructions D et G à apparaître plus d’une fois par ligne, nous pouvons simplifier considérablement le tableau.

m-config.symboleopérationsm-config. finale

aucunI0b

b ~0D, D, I1b

1D, D, I0b


II. Un exemple légèrement plus compliqué se trouve dans la possibilité, pour calculer la suite 001011011101111011111…, de construire une machine à cinq m-configurations, « o », « q », « p », « f », « b » et pouvant imprimer les symboles « ə », « x », « 0 » et « 1 ». Les trois premiers symboles inscrits sur la bande seront « əə0 », et les chiffres suivants dans une case sur deux. Sur les cases intermédiaires nous n’imprimons invariablement que des « x ». Ces « x » nous servent à « marquer l’emplacement » et sont effacés dès que nous n’en avons plus besoin. Par ailleurs, nous nous arrangeons pour qu’il n’y ait aucun blanc dans la suite de chiffres sur les cases alternées.


ConfigurationFonctionnement

m-config.symboleopérationsm-config. finale

bIə, D, Iə, D, I0, D, D, I0, G, Go

1D, Ix, G, G, Go

o ~

0q

n’importe lequel (0 ou 1)D, Dq

q ~

aucunI1, Gp

xE, Dq

p ~əDf

aucunG, Gp

n’importe lequelD, Df

f ~

aucunI0, G, Go


Un tableau des premières configurations complètes de la machine est présenté ci-dessous pour illustrer son fonctionnement. Celles-ci sont décrites en notant la suite de symboles présents sur la bande, [235], avec la m-configuration inscrite sous le symbole inspecté. Les configurations complètes successives sont séparées par des doubles points.

_  : ə ə 0 _ 0 : ə ə 0 _ 0 : ə ə 0 _ 0 : ə ə 0 _0 _  : ə ə 0 _ 0 _ 1 : ə ə 0 _ 0 _ 1 : ə ə 0 _ 0 _ 1 :

boqqqppp

ə ə 0 _ 0 _ 1 : ə ə 0 _ 0 _ 1 : ə ə 0 _ 0 _ 1 : ə ə 0 _ 0 _ 1 _ _  : ə ə 0 _ 0 _ 1 _ 0 :

ffffo

ə ə 0 _ 0 _ 1 x 0 : … .

o


On pourrait aussi écrire ce tableau en inscrivant la m-configuration dans un espace créé immédiatement à gauche du symbole inspecté.

b _  : ə ə o 0 _ 0 : ə ə q 0 _ 0 : … .(C)

Cette forme est moins facile à suivre, mais nous l’utiliserons par la suite à des fins théoriques.

La convention d’inscrire les chiffres uniquement une case sur deux est très pratique, et je l’utiliserai constamment. J’appellerai cette seule suite de cases les C-cases, et l’autre suite de cases intermédiaires les E-cases. Les symboles des E-cases seront les seuls à pouvoir être effacés. Ceux des C-cases forment une suite continue sans aucun blanc jusqu’à la fin. Il n’est pas nécessaire d’avoir plus d’une E-case entre deux C-cases : on peut satisfaire un besoin apparent d’E-cases supplémentaires par une variété suffisamment riche de symboles imprimables sur les E-cases existantes. Si un symbole ß se trouve dans une C-case S, et un symbole α dans l’E-case suivante à droite de S, on dira alors de S et de ß qu’ils sont marqués avec α. On appellera marquage de ß (ou de S) avec α la procédure d’impression de α sur cette case à droite de S.


4. Tableaux abrégés.


Il existe certains types de traitements utilisés dans presque toutes les machines et, dans certaines machines, ils le sont à de nombreuses reprises. Ces traitements comprennent la reproduction et la comparaison de suites de symboles, l’effacement de tous les symboles d’une forme donnée, etc. Là où de tels traitements sont effectués, nous pouvons simplifier considérablement les tableaux des m-configurations en utilisant des « tableaux types », où apparaissent des lettres majuscules et des lettres minuscules grecques, qui sont les unes et les autres des « variables ». En remplaçant totalement chaque lettre majuscule par une m-configuration [236] et chaque minuscule grecque par un symbole, nous obtenons le tableau pour une m-configuration.

Il faut considérer que les tableaux types ne sont rien de plus que des abréviations : ils ne sont pas essentiels. Du moment que le lecteur comprend comment obtenir les tableaux complets à partir des tableaux types, il n’est pas nécessaire d’en donner des définitions exactes.

Prenons un exemple [fonction trouver, f = find] :

m-config.symbolefonctionnementm-configuration finale

əGf1(E, B, α) À partir de la m-configuration f(E, B, α) la machine trouve le symbole α qui est le plus à gauche (le « premier α ») et la m-configuration devient E. S’il n’y a pas d’α la m-configuration devient B.

f(E, B, α) ~ non əGf(E, B, α)

aucunGf(E, B, α)

αE

f1(E, B, α) ~non αDf1(E, B, α)

aucunDf2(E, B, α)

αE

f2(E, B, α) ~non αDf1(E, B, α)

aucunDB

S’il nous fallait remplacer totalement les variables par des m-configurations et des symboles, par exemple E par q, B par r, et α par x, nous obtiendrions un tableau complet pour la m-configuration f(q, r, x). On appellera f une « fonction de m-configuration » ou « m-fonction ».

Dans une m-fonction, les seules expressions admissibles pour un remplacement de variables sont les m-configurations et les symboles de la machine. Elles doivent être énumérées plus ou moins explicitement, et certaines peuvent être de la forme p(e, x) ; elles sont même indispensables si l’on utilise la moindre des m-fonctions. Si nous n’insistions pas sur cette énumération explicite, mais nous contentions d’établir que la machine a un certain nombre de m-configurations (énumérées) et toutes les m-configurations obtenues par substitution de m-configurations dans certaines m-fonctions, nous aurions en général obtenu une infinité de m-configurations ; par exemple, nous devrions alors dire que la machine, ayant la m-configuration q et toutes celles obtenues en substituant une m-configuration à E dans p(E), aurait les m-configurations q, p(q), p(p(q)), p(p(p(q))), etc.

Notre règle d’interprétation est alors la suivante : on nous a fourni les noms des m-configurations de la machine, la plupart exprimées en termes de m-fonctions, ainsi que des tableaux types, et nous ne voulons que le tableau complet pour toutes les m-configurations de la machine. On l’obtient par substitutions réitérées des variables dans les tableaux types.


[237] Autres exemples.


Dans les commentaires ci-dessous, on utilise le symbole « → » dans le sens de « la machine se place dans la m-configuration… . »)

[fonction effacer : e = erase]

[m-config.symboleopérationsm-config. finale]

e(E, B, α)f(e1(E, B, α), B, α)À partir de e(E, B, α) le premier α est effacé et → E. S’il n’y a pas d’α → B.

e1(E, B, α)EE

e(B, α)e(e (B, α), B, α)À partir de e(B, α) toutes les lettres α sont effacées et → B.

L’interprétation de ce dernier exemple semble un peu plus difficile que celle de la plupart des autres. Supposons que dans la liste des m-configurations d’une certaine machine apparaisse e(b, x) (= q comme exemple de substitution). On obtient le tableau :

e (b, x)e(e(b, x), b, x)

Ou

qe(q, b, x).

Ou encore, en plus détaillé :

qe(q, b, x)

e (q, b, x)f(e1(q, b, x), b, x)

e1(q, b, x)Eq.

De là, nous pourrions remplacer e1(q, b, x) par q’, puis présenter le tableau de f (avec les substitutions adéquates) et obtenir en fin de compte un tableau complet où n’apparaîtrait plus aucune m-fonction.

[fonction impression finale, pe = print at end]

[m-config.symboleopérationsm-config. finale]

pe(E, ß)f(pe1(E, ß), E, ə) À partir de pe(E, ß) la machine imprime ß à la fin de la suite de symboles et → E.

n’importe lequelD, D pe1 (E, ß)

pe1(E, ß) ~

aucun E


l(E)GE

r(E)DE

[fonction trouver, f = find]

f’(E, B, α)f(l(E), B, α) À partir de f’(E, B, α), comme à partir de f(E, B, α), la machine trouve le premier symbole α, le plus à gauche, mais avant se déplace à gauche → E1. S’il n’y a pas d’α → B.

f’’(E, B, α)f(r(E), B, α)À partir de f’’(E, B, α) pareillement mais à droite → E1. S’il n’y a pas d’α → B.

[fonction copier, c = copy]

c(E, B, α)f’(cl(E), B, α)À partir de c(E, B, α). la machine inscrit le premier symbole marqué avec α à la fin de la suite de symboles et → E.

c1(E)ßpe(E, ß).

[238] Cette dernière ligne engendre toutes celles que l’on obtient en remplaçant ß par tout symbole susceptible d’apparaître sur la bande de la machine concernée.

m-config.symboleopérationsm-config. finale

[fonction copier-effacer, ce = copy erase]

ce(E, B, α)c(e(E, B, α), B, α)

ce(B, α)ce(ce(B, α), B, α) ce(B, α). À la fin, la machine recopie dans l’ordre tous les symboles marqués avec α, efface les lettres α et → B.

[fonction remplacer, re = replace]

re(E, B, α, ß)f(re1(E, B, α, ß), B, α)re(E, B, α, ß). La machine remplace le premier α par ß et → E ou → B s’il n’y a pas d’α.

re1(E, B, α, ß)E, IßE

re(B, α, ß)re(re(B, α, ß), B, α, ß)re(B, α, ß). La machine remplace tous les α par ß et → B.


cr(E, B, α) c(re(E, B, α, a, a), B, α)

cr(B, α) cr(cr(B, α), re(B, a, α), α)cr(B, α). Même recopie que ce(B, α) mais sans effacer les marques α. On utilise cette m-configuration lorsqu’il n’y a pas de lettres « a » déjà présentes sur la bande.

[fonction comparer, cp = compare]

cp(E1, U, E, α, ß) f’(cp1(E1, U, ß), f(U, E, ß), α)cp(E1, U, E, α, ß). La machine compare le premier symbole marqué avec α et le premier marqué avec ß et, s’il n’y a ni α ni ß, → E, → E ; si les symboles y sont tous deux et sont égaux, → U.

cp1(E, U, ß)γf’(cp2(E, U, γ), U, ß)

γE

cp2(E, U, γ) ~

non γU.

[fonction comparer-effacer, cpe = compare erase]

cpe(E1, U, E, α, ß)cp(e(e(E1, E, ß), U, E, α, ß)cpe(E1, U, E, α, ß) la machine fait la même comparaison que cp(E1, U, E, α, ß) entre les premiers symboles marqués α et ß, mais les efface s’ils sont égaux.

cpe(U, E, α, ß)cpe(cpe(U, E, α, ß), U, E, α, ß)cpe(U, E, α, ß). la machine compare la suite des symboles marqués avec α et celle marquée avec ß et, si elles sont égales, → E, sinon → U. Certains des symboles α et ß sont effacés.

[239]

n’importe lequelDq(E)


q(E) ~

aucunDq1(E)

n’importe lequelDq(E)

q1(E) ~

aucunE

q(E, α)q(q1(E, α)) q(E, α). La machine trouve le dernier symbole α, et → E.

αE

q1(E, α) ~

non αGq1(E, α)

[fonction impression finale, pe = print at end]

pe2(E, α, ß)pe(pe(E, ß), α)pe2(E, α, ß). La machine imprime α ß à la fin sur les deux dernières C-cases.

[fonction copier-effacer, ce = copy erase]

ce2(B, α, ß)ce(ce(B, ß), α)

ce3(B, α, ß, γ)ce(ce2(B, ß, γ), α)ce3(B, α, ß, γ). À la fin, la machine recopie les symboles marqués avec α, puis ceux marqués avec ß, et enfin ceux marqués avec γ ; elle efface les marques α, ß, γ, puis → B.

[fonction effacer, e = erase]

əDe1(E)e(E). À partir de là les marques sont effacées de tous les symboles marqués sur les E-cases, et → E.

e(E) ~

non əGe(E)

n’importe lequelD, E, De1(E)

e1(E) ~

aucunE


5. Énumération des suites calculables.


Une suite calculable γ est déterminée par la description d’une machine qui calcule cette suite. Ainsi, le tableau de la p. 234 détermine la suite 001011011101111… . En fait, toute suite calculable peut être décrite au moyen d’un tableau de ce genre.

Il sera utile de mettre ces tableaux dans un format standard. En premier lieu, supposons que le tableau se présente sous le même forme que le premier tableau, par exemple, I p. 233, à savoir que les seules opérations admises dans la colonne du même nom sont de l’une des formes E : E, D : E, G : Iα : Iα, D : Iα, G : D : G : ou l’opération nulle (N). Le tableau peut toujours être mis sous cette forme en introduisant de nouvelles m-configurations. Maintenant, numérotons les m-configurations q1, q2, … qR, de la même façon qu’en § 1. La m-configuration initiale est toujours q1. Nous numérotons de même les symboles S1, S2, …, Sm [240] et, en particulier, S0 = blanc, S1 = 0, S2 = 1. Désormais, les lignes du tableau prennent l’une des trois formes suivantes (quels que soient i, j, k, m).

m-config.symboleopérationsm-config. finale

qiSjISk, Gqm(N1)

qiSjISk, Dqm(N2)

qiSjISkqm(N3)

Des lignes telles que

qiSjE, Dqm

sont à réécrire ainsi

qiSjIS0, Dqm

et des lignes telles que

qiSjDqm

réécrites ainsi

qiSjISj, Dqm

De cette manière, nous réduisons chaque ligne du tableau en une ligne d’une des formes (N1), (N2) ou (N3).

À partir de chaque ligne de la forme (N1), formons l’expression qiSjSkGqm ; à partir de chaque ligne de la forme (N2), l’expression qiSjSkDqm ; et à partir de chaque ligne de forme (N3) l’expression qiSjSkNqm.

Notons à la suite toutes les expressions ainsi formées à partir du tableau de la machine et séparons-les par des points-virgules. Nous obtenons ainsi une description complète de la machine. Dans cette description, nous remplacerons qi par la lettre « C » suivie de i fois la lettre « A », et Sj par « C » suivi de j fois « B ». On peut appeler cette nouvelle description la description standard (D.S) de la machine. Elle n’est composée que des caractères « A », « B », « C », « G », « D », « N », et « ; ».

Enfin, si nous remplaçons les signes par des chiffres : « A » par « 1 », « B » par « 2 », « C » par « 3 », « G » par « 4 », « D » par « 5 », « N » par « 6 », et « ; » par « 7 », nous obtiendrons une description de la machine sous la forme d’une suite de chiffres arabes. On peut appeler l’entier représenté par cette suite le nombre descriptif (N.D) de la machine. Le N.D détermine exclusivement la D.S et la structure de la [241] machine. On peut noter M(n) la machine dont le N.D est n.

À chaque suite calculable correspond au moins un nombre descriptif, tandis qu’à un nombre descriptif correspond au plus une suite calculable. L’ensemble des suites et des nombres calculables est par conséquent dénombrable.

Cherchons le nombre descriptif de la machine I de § 3. En renommant les m-configurations, on obtient le nouveau tableau :

q1S0IS1, Dq2

q2S0IS0, Dq3

q3S0IS2, Dq4

q4S0IS0, Dq1

On pourrait obtenir d’autres tableaux en ajoutant des lignes inutiles telle que :

q1S1IS1, Dq2

On obtiendrait à partir de ce tableau la première forme standard de la machine :

q1S0S1Dq2 ; q2S0S0Dq3 ; q3S0S2Dq4 ; q4S0S0Dq1 ;

Et la description standard :

 ; CACCBDCAA ; CAACCDCAAA ; CAAACCBBDCAAAA ; CAAAACCDCA

Enfin un nombre descriptif de la machine :

31332531173113353111731113322531111731111335317

Et, avec la ligne inutile, cet autre N.D :

3133253117311335311173111332253111173111133531731323253117

Un nombre sera dit satisfaisant s’il est le nombre descriptif d’une machine acyclique. En § 8, l’on démontre qu’il ne peut exister de procédure générale pour décider si un nombre donné est satisfaisant ou ne l’est pas.


6. La machine à calculer universelle.


Il est possible de créer une unique machine U utilisable pour calculer n’importe quelle suite calculable. Si cette machine est équipée d’une bande au début de laquelle est inscrite la D.S d’une machine à calculer quelconque M, [242] U calculera alors une suite identique à celle que M calculerait. Dans cette section, j’explique dans ses grandes lignes le fonctionnement de U, dont le tableau complet est présenté dans la suivante.

Supposons d’abord que nous disposons d’une machine M’, qui inscrira dans les C-cases la suite des configurations complètes de M. On pourrait exprimer celles-ci sous la même forme qu’à la p. 235, à l’aide du second modèle (C) où tous les symboles figurent sur une seule ligne. Ou, mieux, nous pourrions transformer ce modèle (comme en § 5) en remplaçant chaque m-configuration par « C » suivi du nombre adéquat de « A », et en remplaçant chaque symbole par « C » suivi du nombre adéquat de « B ». Les nombres de lettres « A » et « B » doivent être les mêmes que ceux choisis en § 5, de sorte que, en particulier, blanc soit remplacé par « C », « 0 » par « CB » et 1 par « CBB ». Il faut réaliser ces substitutions après l’assemblage des configurations complètes, comme dans (C). Des difficultés surviennent si nous procédons d’abord aux substitutions, car les blancs de chaque configuration complète devraient alors tous être remplacés par des « C », de sorte qu’une configuration complète ne puisse être exprimée au moyen d’une suite finie de symboles.

Ainsi, si, dans la description de la machine II de § 3, nous remplaçons « o » par « CAA », « ə » par « CBBB », « q » par « CAAA », la suite (C) devient :

CA : CBBBCBBBCAACBCCB : CBBBCBBBCAAACBCCB :… (C1)

(c’est la suite de symboles sur les C-cases).

Dès lors, il n’est pas difficile de voir que, si M peut être construite, c’est aussi le cas de M’. Chaque étape du calcul dans le mode de fonctionnement de la machine M’ va se référer aux règles de fonctionnement (i.e., la D.S.) de la machine M, incluses d’une manière ou d’une autre dans M’. Si nous ne considérons ces règles que dans leur faculté d’être retirées et remplacées par d’autres, nous obtenons quelque chose de très proche de la machine universelle.

Il manque encore un élément : pour le moment, la machine M’ n’imprime pas de chiffres. Nous pouvons y pallier en imprimant entre deux configurations complètes successives les chiffres apparus dans celle qui est la plus récente des deux. La suite (C1) devient alors :

CA : 0 : 0 : CBBBCBBBCAACBCCB : CBBBCBBBCAAACBCCB : CBBB… (C2)

Il n’est pas très évident que les E-cases soient en nombre suffisant pour le « gros » du travail nécessaire, mais c’est pourtant le cas.

Les suites de lettres comprises entre les doubles points dans des expressions telles que (C1) peuvent être utilisées comme descriptions standard des configurations complètes. Si les lettres sont remplacées par des chiffres, comme en § 5, nous obtiendrons la description [243] d’une configuration complète sous la forme d’un nombre entier, que l’on peut appeler son nombre descriptif.


7. Description détaillée de la machine universelle.


Nous présentons ci-dessous le tableau du fonctionnement de cette machine universelle. Ses m-configurations sont toutes celles qui apparaissent dans la première et la dernière colonne du tableau, ainsi que toutes celles notées sur les tableaux complets provenant du développement des m-fonctions qui y figurent. Par exemple, e(anf) apparaît dans le tableau et c’est une m-fonction. Son tableau non abrégé est (voir p. 239)

əDe1(anf)

e(anf) ~

non əGe(anf)

n’importe lequelD, E, De1(anf)

e1(anf) ~

aucunanf

Par conséquent, e1(anf) est une m-configuration de U.

Lorsque l’on va mettre U en route, la bande qui la parcourt présente :

- les symboles « əə », l’un dans une C-case et l’autre dans la E-case suivante.

- puis, uniquement dans des C-cases (un seul symbole par case), la D.S de la machine, composée d’un certain nombre d’instructions séparées par des points-virgules.

- un double deux-points « ‡ » sur la C-case qui suit immédiatement la D.S.

Chaque instruction comprend cinq parties consécutives :

(i) un « C » suivi d’une série de « A », qui décrit la m-configuration pertinente.

(ii) un « C » suivi d’une série de « B », qui décrit le symbole inspecté.

(iii) un « C » suivi d’une autre série de « B », qui indique le symbole destiné à changer celui de la case inspectée.

(iv) « G », « D » ou « N », qui indique si la machine doit se déplacer à gauche, à droite, ou ne pas se déplacer.

(v) un « C » suivi d’une série de « A », qui décrit la m-configuration finale.

La machine U doit pouvoir imprimer les symboles « A », « B », « C », « 0 », « 1 », « u », « v », « w », « x », « y », « z », « : ». La D.S de la machine est composée des symboles « ; », « A », « B », « C », « D », « G » et « N ».


[244] Tableau auxiliaire type.

[fonction configurer : con = configure]

non AD, Dcon(E, α)À partir de con(E, α). En partant d’une C-case, disons S, la machine marque avec des α la suite (C) des cases qui définissent la configuration (m-configuration et symbole) la plus proche à droite de la case inspectée S, et → E.

con(E, α) ~

AG, Iα, Dcon1 (E, α)

AD, Iα, Dcon1(E, α)

con1(E, α) ~CD, Iα, Dcon2(E, α)

aucunIC, D, Iα, D, D, DE

ligne nécessaire pour introduire la représentation C de la case blanche lorsque la configuration complète de la machine finit par un q, notamment au démarrage de la machine ou lorsqu’un mouvement à droite fait passer au-delà de la dernière case inspectée. La correction rend valide la comparaison effectuée un peu plus loin dans fmp.

BD, Iα, Dcon2(E, α)

con2 (E, α) ~

non BD, DE L’appel con(E, ) place la machine, dans la configuration finale, sur la quatrième case à droite de la dernière case de la suite (C) trouvée, dont les marques sont effacées le cas échéant.


Tableau de U.

[fonction commencer : b = begin]

bf(b1, b1, ‡)À partir de b. La machine inscrit : DA sur les C-cases juste après le ‡, et → anf.

b1D, D, I :, D, D, IC, D, D, IAanf

anfq(anf1, :)anf. La machine marque avec y la configuration de la dernière configuration complète, et → fom.

anf1con(fom, y)

 ;D, Iz, Gcon(fmp, x)fom. La machine trouve le dernier point-virgule non marqué avec z, le marque avec z, et la configuration suivante avec x, puis → fmp.

fom ~zG, Gfom

ni z ni  ;Gfom

fmpcpe(c(fom, x, y), sim, x, y)fmp. La machine compare les suites respectivement marquées avec x et avec y, efface toutes les lettres x et y, puis → sim si les suites sont égales, sinon → fom.

À partir de anf, d’un point de vue général, la machine trouve la dernière instruction correspondante à la dernière configuration, instruction que l’on peut ensuite reconnaître comme celle qui suit le dernier point-virgule marqué avec z, puis → sim..

[245]

[fonction simuler : sim = simulate]

simf’(sim1, sim1, z)sim. La machine marque les instructions à suivre, en particulier avec u, la partie relative aux opérations à effectuer (direction de déplacement et symbole à imprimer), et la m-configuration finale avec y. Les lettres z sont ensuite effacées, et → mf.

sim1con(sim2, )

Asim3

sim2 ~

non AG, Iu, D, D, Dsim2

non AG, Iye(mf, z)

sim3 ~

AG, Iy, D, D, Dsim3


mfq(mf, :)

non AD, Dmf1 mf1. La machine marque la dernière configuration complète en quatre phases : le symbole immédiatement à gauche de la configuration est marqué avec ; le reste de la configuration est divisé en deux parties, dont toute celle de gauche est marquée avec v, et celle de droite avec w ; les marques de la configuration sont effacées ; elle imprime un double point après l’ensemble, et → sh.

mf1 ~

AG, G, G, Gmf2

BD, Ix, G, G, Gmf2

mf2 ~ :mf4

CD, Ix, G, G, Gmf3

non  :D, Iv, G, G, Gmf3

mf3 ~

 :mf4

mf4con(l(l(mf5)), )

n’imp. lequelD, Iw, Dmf5

mf5 ~

aucunI :sh

[fonction montrer : sh = show]

shf(sh1, inst, u)sh. Les instructions (marquées avec u) sont examinées. Si la machine découvre qu’elles impliquent « Imprimer 0 » ou « Imprimer 1 », alors elle imprime 0 : ou 1 : à la fin, et → inst.

sh1G, G, Gsh2

CD, D, D, Dsh3

sh2 ~

non Cinst

BD, Dsh4

sh3 ~

non Binst

BD, Dsh5

sh4 ~

non Bpe2(inst, 0, :)

Binst

sh5 ~

non Bpe2(inst, 1, :)

[246]

instq(l(inst1), u)inst. La nouvelle configuration complète est inscrite et, en exécutant les instructions marquées de la machine simulée, modifie la m-configuration, la case inspectée et le symbole marqué sur la case précédemment inspectée. Les lettres u, v, w, x, y sont effacées, et → anf.

inst1aD, Einst1(α)

inst1(G)ce5(ov, v, y, x, u, w)

inst1(D)ce5(ov, v, x, u, y, w)

inst1(N)ec5(ov, v, x, y, u, w)

ove(anf)


8. Application du procédé diagonal.


On peut penser que les arguments qui démontrent que l’ensemble des nombres réels n’est pas dénombrable démontreraient aussi que l’ensemble des nombres et des suites calculables ne peut pas l’être non plus<ref name="ftn6"> Cf. Hobson, Theory of Functions of a Real Variable, 2e éd., 1921, pp. 87-88.</ref>. On pourrait croire, par exemple, que la limite d’une suite de nombres calculables doit être calculable. À l’évidence, ce n’est vrai que si cette suite est définie par une règle.

Nous pourrions aussi appliquer le procédé diagonal. « Supposons que l’ensemble des suites calculables soit dénombrable, soit αn la n-ième suite calculable, et ϕn(m) le m-ième chiffre de αn. Soit alors la suite ß dont le n-ième chiffre est égal à 1 - ϕn(n). Puisque ß est calculable, il existe un nombre K tel que, quel que soit n, 1 - ϕn(n) = ϕK(n). Par exemple, avec n = K, nous obtenons 1 = 2ϕK(K), i.e. 1 est pair, ce qui est impossible. Par conséquent, l’ensemble des suites calculables n’est pas dénombrable ».

L’erreur de ce raisonnement réside dans le postulat que ß est calculable. Ce serait vrai si nous pouvions énumérer les suites calculables avec des moyens finis, mais ce problème d’énumération des suites calculables équivaut à celui de trouver si un nombre donné est le N.D. d’une machine acyclique, et nous ne disposons d’aucune procédure générale pour le réaliser en un nombre fini d’étapes. En fait, en utilisant correctement l’argument du procédé diagonal, nous pouvons montrer l’impossibilité d’une telle procédure générale.

La démonstration la plus simple et la plus directe consiste à montrer que, si ce procédé général existait, il existerait alors une machine qui calculerait ß. Cette démonstration, bien que parfaitement recevable, présente l’éventuel inconvénient de laisser au lecteur l’impression qu’« il y a vraisemblablement quelque chose de suspect ». Celle que je présenterai échappe à cet inconvénient et donne un aperçu de ce que veut dire le concept de « machine acyclique ». Elle ne dépend pas de la construction de la suite ß, mais de celle de ß’, dont le n-ième chiffre est ϕn(n).

[247] Supposons qu’il existe une telle procédure, ceci revient à la possibilité de créer une machine D qui, équipée de la D.S d’une quelconque machine à calculer M, testera cette D.S et, si M est cyclique, marquera la S.D avec le symbole « n », et avec « o » si elle est acyclique. En combinant les machines D et U, nous pourrions construire une machine N pour calculer la suite ß’. La machine D a sans doute besoin d’une bande pour fonctionner, et nous pouvons supposer qu’elle utilise les E-cases au-delà de la dernière des C-cases marquées avec des symboles, et qu’elle efface tout le « gros » du travail réalisé par D, dès qu’elle a rendu son verdict.

Le mouvement de cette machine N se décompose en phases. Dans les N - 1 premières phases, entre autres choses, les entiers 1, 2,…, N - 1 ont été inscrits et testés par la machine D. Un certain nombre d’entre eux, disons R(N - 1), se sont révélés être les N.D de machines acycliques. Pendant la phase N, la machine D teste le nombre N. Si N est satisfaisant, i.e. s’il est le N.D d’une machine acyclique, alors R(N) = 1 + R(N - 1) et l’on calcule les R(N) premiers chiffres de la suite dont N est un N.D. Le R(N)-ième chiffre de cette suite est inscrit en tant que l’un des chiffres de la suite ß’ calculée par H. Si N n’est pas satisfaisant, alors R(N) = R(N - 1) et la machine aborde la phase (N + 1) de son mouvement.

À partir de sa construction, on peut constater que N est acyclique, car chaque phase de son mouvement s’achève en un nombre fini d’étapes. En effet, d’après notre hypothèse sur D, c’est en un nombre fini d’étapes que l’on parvient à décider si N est satisfaisant. Si N n’est pas satisfaisant, alors la phase N s’achève. Si N est satisfaisant, cela signifie que la machine M(N), dont le N.D est N, est acyclique et que l’on peut dès lors calculer son R(N)-ième chiffre en un nombre fini d’étapes. Lorsque ce chiffre a été calculé et inscrit comme le R(N)-ième chiffre de ß’, la phase N s’achève. Il en résulte que N est acyclique.

Soit, maintenant, K le N.D de N. Que fait N dans la phase K de son mouvement ? Elle doit tester si K est satisfaisant et rendre le verdict « o » ou « n ». Puisque K est le N.D de N qui est acyclique, le verdict ne peut être « n ». Mais il ne peut non plus être « o » car, si tel était le cas, pendant la phase K de son mouvement, N devrait en effet calculer les R(K - 1) + 1 = R(K) premiers chiffres de la suite calculée par la machine dont le N.D est K, et écrire le R(K)-ième chiffre comme l’un de ceux de la suite calculée par N. Le calcul des R(K – 1) premiers chiffres s’effectuerait sans problème, mais les instructions pour le calcul du R(K)-ième reviendraient à « calculer les R(K) premiers chiffres de la suite calculée par N et à écrire le R(K)-ième », et ainsi de suite, de sorte qu’il serait impossible de jamais trouver ce R(K)-ième chiffre. I.e., N est cyclique, contrairement à la fois à ce que nous avons découvert dans le paragraphe précédent et au verdict « o ». Les deux verdicts étant contradictoires, nous concluons qu’il ne peut exister aucune machine D.

[248]

Nous pouvons en outre montrer qu’il ne peut exister de machine E qui, équipée de la D.S d’une machine M quelconque, décidera si cette machine M imprimera jamais un symbole donné (par exemple 0).

Nous montrerons d’abord que, si cette machine existe, il existe alors une procédure générale pour décider si une machine M donnée imprime une infinité de 0. Soit M1 une machine qui imprime la même suite que M, sauf qu’en lieu et place du premier 0 imprimé par M, M1 imprime <math>\stackrel{\acute }{0}</math>. De même M2 doit avoir les deux premiers 0 de la suite initiale remplacés par des <math>\stackrel{\acute }{0}</math>, et ainsi de suite. S’il faut ainsi que M imprime

ABA01AAB0010AB …,

alors M1 imprimera

ABA<math>\stackrel{\acute }{0}</math>1AAB0010AB …,

et M2 imprimera

ABA<math>\stackrel{\acute }{0}</math>1AAB<math>\stackrel{\acute }{0}</math>010AB … .

Soit alors une machine F qui, équipée de la D.S de M, inscrira successivement les D.S de M, de M1, de M2, etc. (une telle machine existe effectivement). Nous combinons F et E pour obtenir une nouvelle machine G qui, au cours de son fonctionnement, utilise d’abord F pour inscrire la D.S de M, puis E pour la tester, et inscrit  :0 : si elle découvre que M n’imprime jamais 0 ; F inscrit ensuite la D.S de M1, qui est elle aussi testée,  :0 : étant imprimé si et seulement si M1 n’imprime jamais 0, et ainsi de suite. Testons maintenant G avec E. Si l’on découvre que G n’imprime jamais 0, alors M l’imprime une infinité de fois ; si G imprime au moins un 0, alors M ne l’imprime qu’un nombre fini de fois.

De la même manière, il existe une procédure générale pour décider si M imprime 1 infiniment souvent. En combinant ces deux procédures, nous en obtenons une autre pour décider si M imprime une infinité de chiffres, i.e. si M est acyclique. De ce fait, la machine E ne peut donc exister.

L’expression « il existe une procédure générale pour décider si… » a été utilisée tout au long de cette section de manière équivalente à « il existe une machine qui décidera si… ». Cet usage peut être légitimé si et seulement si nous pouvons justifier notre définition de la « calculabilité », car chacun de ces problèmes de « procédure générale » peut être énoncé comme un problème relatif à une procédure générale pour décider si un entier n donné possède une propriété G(n) (G(n) devrait signifier, par exemple, « n est satisfaisant » ou « n est le nombre de Gödel d’une formule démontrable »), et cela équivaut à calculer un nombre dont le n-ième chiffre est 1 si G(n) est vraie, et 0 si elle est fausse.


[249]

9. L’évaluation de la calculabilité des nombres.


Nous n’avons encore fait aucune tentative pour montrer que les nombres « calculables » comprennent tous les nombres que l’on devrait naturellement considérer comme calculables. Il est certain que tous les arguments qui peuvent être donnés doivent, par principe, faire appel à l’intuition et, pour cette raison, seront plutôt insatisfaisants du point de vue des mathématiques. La véritable question ici en jeu est : « Quelles sont les éventuelles procédures qui peuvent être mises en œuvre lorsque l’on calcule un nombre ? »

Mes arguments seront de trois types :

(a) Un appel direct à l’intuition.

(b) Une démonstration de l’équivalence de deux définitions (au cas où la nouvelle définition ait un sens intuitif plus fort).

(c) La présentation d’exemples de grandes familles de nombres calculables.

Une fois admis que les nombres calculables sont tous « calculables » selon ma définition, s’ensuivent d’autres propositions du même ordre. En particulier, s’il existe une procédure générale pour décider si un énoncé du calcul fonctionnel d’Hilbert est démontrable, alors cette procédure de décision peut être mise en œuvre par une machine.


I [Type (a)]. Cette discussion n’est qu’un développement des idées de § 1.

Généralement, on effectue un calcul en inscrivant certains symboles sur une feuille de papier, que nous pouvons supposer divisée en cases comme un manuel scolaire d’arithmétique. En arithmétique élémentaire, on tire parfois parti de la qualité bidimensionnelle du papier, mais il vaut mieux éviter un tel usage et je pense que l’on m’accordera que cette qualité n’a rien d’essentielle au calcul. Dès lors, je pars du principe que le calcul s’effectue sur du papier unidimensionnel, i.e. sur une bande divisée en une suite de cases. Je supposerai aussi que les symboles susceptibles d’être imprimés sont en nombre fini. Si nous devions admettre une infinité de symboles, il risquerait alors d’y avoir certains symboles, dont les différences seraient si arbitrairement ténues qu’on pourrait les confondre<ref name="ftn7"> Si nous considérons un symbole littéralement imprimé dans une case, en imaginant cette dernière selon un modèle algébrique cartésien de coordonnées x et y, tels que 0 ≤ x ≤ 1, 0 ≤ y ≤ 1, le symbole est défini comme un ensemble de points de cette case, c’est-à-dire l’ensemble des points noircis par l’encre imprimée. Si l’on se limite à des ensembles mesurables, nous pouvons définir la « distance » entre deux symboles comme le coût de la transformation de l’un en l’autre, si l’unité est le coût de déplacement d’une unité d’aire d’encre imprimée d’une distance unitaire, et s’il existe une source infinie d’encre en x = 2, y = 0. Dans cette topologie, les symboles forment sous condition un espace compact conditionnel.</ref>. Pour autant, l’effet de cette restriction n’est pas très important, puisque l’on peut toujours utiliser des suites de symboles au lieu des symboles uniques. Ainsi, un nombre écrit en chiffres arabes, tel que [250] 17 ou 999999999999999, est en général considéré comme un symbole en soi. De la même façon, dans les langues européennes, les mots sont traités comme des symboles simples (à la différence du chinois, qui tend à avoir une infinité dénombrable de symboles). De notre point de vue, les différences entre les symboles simples et les symboles composés, réside dans la longueur excessive de ces derniers, de sorte qu’ils ne peuvent être reconnus d’un coup d’œil, ce qui s’accorde avec l’expérience. Nous ne pouvons dire d’un coup d’œil si 9999999999999999 et 999999999999999 sont identiques<ref name="ftn8"> Georges Ifrah, Histoire universelle des chiffres, Bouquins, Robert Laffont, t. I, 1981, entre autres Première partie, chap. 1, L’ethnologie et la psychologie des nombres, explique en détail ce phénomène psycho-sensoriel : notre perception globale des nombres s’arrête à quatre. Au-delà, la vision n’est plus d’aucun secours et il est nécessaire de compter pour savoir. Dans les cultures restées à un stade dit premier, pour lesquelles le nombre est « senti » et « perçu », celui-ci est appréhendé non sous son aspect conceptuel et abstrait, mais d’une manière qualitative, et au-delà de quatre il ne reste souvent pour elles plus qu’une catégorie, celle de l’« innombrable ». Voir aussi les travaux de l’anthropologue Jack Goody, notamment Entre l’oralité et l’écriture, PUF, 1994 (Note du traducteur).</ref>.

À chaque instant, le comportement d’un calculateur humain est déterminé par les symboles qu’il observe et son « état mental » du moment. Nous pouvons supposer qu’il existe une limite au nombre maximal M de symboles ou de cases que ce calculateur peut observer simultanément. S’il souhaite en observer un plus grand nombre, il doit recourir à plusieurs observations successives. Nous supposerons en outre en nombre fini les états mentaux qu’il est nécessaire de prendre en compte, pour des raisons du même ordre que celles qui nous conduisent à limiter le nombre de symboles. Si, en effet, nous admettions une infinité de ces états, certains d’entre eux seraient « arbitrairement proches » au point d’être confondus. Là encore, cette restriction n’est pas de celles qui affectent sérieusement le calcul, puisque le recours à des états mentaux plus compliqués peut être évité en inscrivant plus de symboles sur la bande.

Imaginons maintenant que le travail du calculateur est divisé en « opérations élémentaires », si simples qu’il soit difficile d’envisager de les fragmenter encore plus. Toute opération de ce genre consiste à modifier le système physique constitué du calculateur et de sa bande, système dont nous connaissons l’état si nous connaissons la suite des symboles inscrits sur la bande, en particulier ceux (éventuellement ordonnés) observés par le calculateur, et l’état mental de ce dernier. Nous pouvons supposer que, dans une opération élémentaire, pas plus d’un symbole n’est modifié, tout autre changement pouvant se ramener à une suite de changements élémentaires de ce type. La situation vis-à-vis des cases, dont les symboles peuvent être ainsi modifiés, est la même qu’à l’égard des cases observées. Par conséquent, sans altération de la généralité, nous pouvons admettre que les cases modifiables sont toujours des cases « observées ».

Outre ces changements de symboles, les opérations élémentaires doivent comprendre des changements de distribution des cases observées. Le calculateur doit pouvoir immédiatement reconnaître les nouvelles cases observées, et je crois raisonnable de supposer que de telles cases ne peuvent être à plus d’une certaine distance donnée des cases les plus proches parmi celles qui viennent d’être observées. Disons que chacune des nouvelles cases observées est au plus à D-cases de distance de l’une des cases auparavant observées.

Concernant la notion de « reconnaissance immédiate », on peut penser qu’il devrait exister d’autres types de cases immédiatement reconnaissables, en particulier celles marquées par des symboles spéciaux. [251] Néanmoins, si ces cases ne sont marquées que de symboles simples, il ne peut en exister qu’un nombre fini, et les rajouter à l’ensemble des cases observées ne bouleverserait pas notre théorie. Si, en revanche, elles sont marquées par une suite de symboles, nous ne pouvons plus considérer le procédé de reconnaissance comme élémentaire. C’est un point si fondamental qu’il conviendrait de l’illustrer. Dans les articles de mathématiques, il est courant de numéroter les suites d’équations et de théorèmes. Ces nombres dépassent rarement, disons, le millier. On peut donc reconnaître d’un coup d’œil un théorème à son numéro. Mais, si un article est particulièrement long, nous pouvons en arriver au théorème 157767733443477 ; puis, plus loin, on pourrait lire « … en conséquence du théorème 157767733443477, nous obtenons donc… ». Pour être sûrs qu’il s’agit bien du bon théorème, il nous faudrait comparer ces deux nombres chiffre par chiffre, peut-être même en les cochant au crayon pour être surs de ne pas les compter deux fois. Et si, malgré tout, l’on pensait toujours qu’il existe d’autres cases « immédiatement reconnaissables », mon argumentation n’en serait pas affectée pour autant que ces cases puissent être trouvées par une procédure dont ma machine est capable. Cette idée est développée ci-dessous en III.

Les opérations élémentaires doivent ainsi comprendre :

(a) Les changements de symbole dans l’une des cases observées.

(b) Les changements de l’une des cases observées en une autre case à D-cases de distance au plus de l’une de celles précédemment observées.

Il est possible que quelques-uns de ces changements nécessitent aussi un changement d’état mental. L’opération élémentaire la plus générale doit donc prendre l’une des formes suivantes :

(A) Un changement éventuel (a) de symbole, conjointement avec un éventuel changement d’état mental.

(B) Un changement éventuel (b) de cases observées, conjointement avec un éventuel changement d’état mental.

Comme on l’a suggéré p. 250, l’opération véritablement réalisée est déterminée par l’état mental du calculateur et les symboles observés, en particulier, son nouvel état mental après l’exécution de cette opération.

Nous pouvons maintenant construire une machine pour réaliser le même travail que ce calculateur humain. À chacun des états mentaux du calculateur correspond une « m-configuration » de la machine. Celle-ci inspecte M cases correspondant aux M cases observées par le calculateur. À chaque instant, elle peut soit changer un symbole dans l’une des cases inspectées, soit inspecter une nouvelle case distante de moins de D-cases de l’une des autres cases [252] inspectées. Le mouvement effectué et la configuration suivante sont déterminés par le symbole inspecté et la m-configuration. Les machines que l’on vient de décrire ne sont pas foncièrement différentes des machines à calculer décrites en § 2 et, pour toute machine de ce type, il est possible de construire une machine pour calculer la même suite, c’est-à-dire la suite calculée par le calculateur humain.


II [Type (b)].


Si l’on modifie la notation du calcul fonctionnel d’Hilbert<ref name="ftn9"> L’expression « le calcul fonctionnel » est utilisée tout au long de l’article dans le sens de calcul fonctionnel restreint d’Hilbert.</ref> de façon à le rendre systématique, et pour qu’il n’utilise qu’un nombre fini de symboles, il devient possible de construire une machine automatique<ref name="ftn10"> Le plus naturel est de construire d’abord une machine à choix (cf. § 2) qui effectue cette tâche, mais il est facile d’en obtenir ensuite la machine automatique requise, car nous pouvons supposer que les choix sont toujours binaires entre 0 et 1. Chaque preuve sera alors déterminée par une série de choix i1, i2, …, in (valant chacun 0 ou 1), et donc le nombre 2n +i12n-1 + i22n-2 + … + in détermine complètement la preuve, et la machine automatique génère alors successivement la preuve 1, la preuve 2, la preuve 3, etc.</ref> K, qui trouvera toutes les formules démontrables de ce type de calcul<ref name="ftn11"> L’auteur a effectivement trouvé la description d’une telle machine.</ref>.

Soit maintenant une suite α, et notons Gα(x) la proposition « le x-ième chiffre de α est un 1 », <ref name="ftn12"> Le signe de la négation s’écrit devant une expression et non à la fin.</ref> - Gα (x) signifiant « Le x-ième chiffre de α est un 0 ». Supposons en outre que nous puissions trouver un ensemble de propriétés qui définissent la suite α et qui puisse être exprimé au moyen de Gα (x), des fonctions propositionnelles N(x) signifiant « x est un entier positif », et S(x, y) signifiant « y est le successeur de x » ou « y = x + 1 ». Par la conjonction de toutes les formules précédentes, nous obtiendrons une formule, disons U, qui définit α. Cette formule U doit comprendre les axiomes indispensables (i.e. les trois premiers) de Peano, notés sous la forme abrégée P, soit :

(<math>\exists </math>u) N(u) ˄ (<math>\forall </math>x) (N(x) → (<math>\exists </math>y) S(x, y) ˄ (S(x, y) → N(y)),

Notre expression « U définit α » signifie que – U n’est pas une formule démontrable, et aussi que, pour tout n, l’une des formules (An) ou (Bn) est démontrable.

U ˄ S(n)Gα(u(n)), (An)<ref name="ftn13"> (r) désigne une suite de nombres premiers r.</ref>

U ˄ S(n) → (- Gα(u(n))), (Bn),

S(n) est l’abréviation de S(u, u’) ˄ S(u’, u’’) ˄ … ˄ S(u(n-1), u(n)).

[253]

J’affirme par déduction que α est alors une suite calculable : pour le montrer, une assez simple modification de K nous permet d’obtenir une machine Kα qui calcule α.

Nous décomposons le mouvement de Kα en phases. La phase n est destinée à calculer le n-ième chiffre de α. Dès que la phase n - 1 se termine, la machine imprime un symbole ‡ à la suite de tous les autres, et l’opération suivante s’effectue uniquement sur les cases à droite de ce symbole. La première étape consiste à écrire la lettre « A », suivie de la formule (An), puis la lettre « B » et la formule (Bn). La machine Ka effectue alors la même tâche que K, mais lorsqu’elle produit une formule démontrable, elle la compare à (An) et à (Bn). Si elle est égale à (An) (respectivement (Bn)), le chiffre « 1 » (respectivement « 0 ») s’imprime alors et, dans l’un ou l’autre cas, la phase n s’achève. Si elle n’est égale à aucune des deux formules, le travail de K reprend à partir du point auquel il avait été interrompu. Tôt ou tard, l’une des formules (An) ou (Bn) sera atteinte ; ceci découle de nos hypothèses sur α et U, et de ce que l’on sait de K. Dès lors, la phase n s’achèvera en un temps fini. Kα est donc acyclique et α calculable.

On peut aussi démontrer que les nombres tels que α ainsi définissables au moyen d’axiomes comprennent tous les nombres calculables, en décrivant les machines à calculer dans le formalisme du calcul fonctionnel.

Il faut se rappeler que nous avons donné un sens assez particulier à l’expression « U définit α ». Les nombres définissables (au sens usuel) ne sont pas forcément calculables. Soit la suite δ dont le nième chiffre est 1 ou 0 selon que n est ou n’est pas satisfaisant. Il découle immédiatement du théorème de § 8 que cette suite n’est pas calculable. Il est possible, pour autant que nous le sachions à présent, que n’importe quel nombre de chiffres d’une suite δ puisse être calculé, mais pas par une méthode uniforme. Lorsqu’un nombre suffisamment grand de chiffres de δ aura été calculé, il faudra une méthode fondamentalement nouvelle pour obtenir d’autres chiffres.


III. On peut considérer ce qui suit comme une modification du (I) ou un corollaire du II.


Nous supposons, comme en (I), que le calcul s’effectue sur une bande, mais nous éviterons d’utiliser ici la notion d’« état mental » en introduisant une analogie plus physique et mieux définie. Le calculateur humain peut toujours interrompre son travail, s’absenter, oublier tout ce qui s’y rapporte, revenir plus tard et le reprendre au point d’interruption. Pour ce faire, il doit laisser une note d’instructions (sous une forme normalisée quelconque) indiquant comment poursuivre le travail. Cette note est l’équivalent de l’« état mental ». Nous supposerons que le calculateur travaille d’une manière si décousue qu’il n’accomplit jamais plus d’une opération par séance. La note d’instructions doit donc lui permettre de réaliser une opération et de rédiger la note suivante. Ainsi l’état d’avancement du calcul est, à tout instant, entièrement déterminé par la note [254] d’instructions et les symboles sur la bande. Autrement dit, l’état du système peut être décrit par une seule expression (suite de symboles), que l’on peut appeler la « formule d’état », composée des symboles sur la bande suivis du symbole séparateur spécial Δ (qui, nous le supposons, n’apparaît nulle part ailleurs), puis de la note d’instructions. Nous savons qu’à toute étape donnée, la nouvelle formule d’état dépend uniquement de la précédente, et nous partons du principe que l’interdépendance de ces deux formules peut s’exprimer dans le formalisme du calcul fonctionnel. Pour le dire autrement, nous admettons qu’il existe un axiome U qui exprime les règles régissant la conduite du calculateur en fonction de la relation entre une formule d’état de n’importe quelle étape et celle de l’étape précédente. S’il en est ainsi, nous pouvons construire une machine qui inscrit les formules d’état successives, et à partir de là calcule le nombre cherché.


10. Exemples de grandes classes de nombres calculables.


Il sera d’abord utile de définir ce qu’est une fonction calculable d’une variable entière, calculable, etc. Il existe de nombreuses formulations équivalentes de la définition d’une fonction calculable d’une variable entière, la plus simple étant sans doute la suivante : si γ est une suite calculable où apparaît une infinité de 0<ref name="ftn14"> Si une machine M calcule γ, alors la question de savoir si M imprime 0 une infinité de fois est du même ordre que celle de savoir si M est acyclique.</ref>, et n un entier, la formule ξ(γ, n) est définie comme le nombre de 1 entre le n-ième et le (n + 1)-ième 0 de γ. On dit alors que ϕ(n) est calculable si et seulement si, pour tout n, la suite calculable γ est telle que ϕ(n) = ξ(γ, n). Voici une définition équivalente : soit H(x, y) la proposition ϕ(x) = y. On peut alors dire que ϕ est une fonction calculable si et seulement s’il existe un axiome non contradictoire Uϕ, tel que

- UϕP,

- pour tout entier n, il existe un entier N tel que

Uϕ ˄ S(N)H (u(n), u(ϕ(n))),

- pour tout m = ϕ(n), il existe alors un entier N’ tel que

Uϕ ˄ S(N’) → - H (u(n), u(m)),

Nous ne pouvons pas définir de manière générale des fonctions calculables d’une variable réelle, car il n’existe pas de méthode générale de description d’un nombre réel. En revanche, nous pouvons définir une fonction calculable d’une variable calculable. Si n est satisfaisant, notons γn le nombre calculé par M(n), et posons :

αn = 0 si γn = 0 ou γn = 1,

[255]sinonαn = tan(π (γn –<math>\frac{1}{2}</math>)).

Lorsque n décrit les nombres satisfaisants, αn décrit l’ensemble des nombres calculables<ref name="ftn15"> On peut définir de nombreuses autres façons une fonction αn pour décrire l’ensemble des nombres calculables.</ref>. Soit maintenant ϕ(n) une fonction calculable qui associe à tout nombre satisfaisant un nombre satisfaisant<ref name="ftn16"> Bien qu’il ne soit pas possible de trouver une procédure générale pour décider si un nombre donné est satisfaisant, il est souvent possible de démontrer que certaines classes de nombres sont globalement satisfaisantes.</ref>. On dira alors que la fonction f, définie par f(αn) = αϕ(n), est une fonction calculable et, réciproquement, que toute fonction calculable d’une variable calculable peut s’exprimer de cette manière.

On peut donner des définitions semblables de fonctions calculables de plusieurs variables, ou des fonctions à valeur calculable d’une variable entière, etc.

J’énoncerai un certain nombre de théorèmes sur la calculabilité, mais je démontrerai seulement le théorème (ii) et une variante du théorème (iii).

(i) La composition de deux fonctions calculables d’une variable entière ou calculable est elle-même calculable.

(ii) Toute fonction d’une variable entière définie récursivement en termes de fonctions calculables est calculable. I.e. si ϕ(m, n) est une fonction calculable et r un nombre entier, la fonction η est alors calculable, là où η est définie par :

η(0) = r,

η(n) = ϕ(n, η(n - 1)) pour tout n > 0.

(iii) Si ϕ(m, n) est une fonction calculable de deux variables entières, alors ϕ(n, n) est une fonction calculable de la variable entière n.

(iv) Si ϕ(n) est une fonction calculable à valeurs dans {0, 1}, alors la suite dont le n-ième chiffre est ϕ(n) est calculable.

Le théorème de Dedekin devient faux dans sa formulation usuelle si nous remplaçons partout « réel » par « calculable », mais il reste vrai dans la version suivante :

(v) si G(a) est une fonction propositionnelle de nombres calculables et

(a)(<math>\exists </math>α) (<math>\exists </math>ß) (G(α) ˄ - G(ß)),

(b)G(α) ˄ (- G(ß)) → (α < ß),

et s’il existe une procédure générale permettant de déterminer la valeur de vérité de G(α), alors [256] il existe un nombre calculable ξ tel que :

G(α) → αξ et - G(α) → αξ.

Autrement dit, le théorème reste vrai pour toute coupure des nombres calculables pour laquelle il existe une procédure générale permettant de déterminer à quelle classe un nombre calculable donné appartient par rapport à cette coupure.

En raison de cette restriction du théorème de Dedekind, nous ne pouvons pas dire qu’un nombre calculable lié à une suite croissante de nombres calculables possède une limite calculable. On pourra peut-être le comprendre en considérant une suite telle que :

- 1, - <math>\frac{1}{2}</math>, - <math>\frac{1}{4}</math>, - <math>\frac{1}{8}</math>, - <math>\frac{1}{16}</math>, <math>\frac{1}{2}</math>, … .

Par contre, (v) nous permet de démontrer que :

(vi) Si ϕ est une fonction calculable croissante et continue, et α et ß des nombres calculables tels que α < ß et ϕ(α) < 0 < ϕ(ß), alors il existe un nombre calculable unique γ, répondant aux conditions α < γ < ß et ϕ(γ) = 0.


Convergence calculable.


Nous dirons qu’une suite ßn de nombres calculables converge en calculabilité s’il existe une fonction calculable à valeur entière N(ε) de la variable calculable ε, telle que nous pouvons montrer que :

<math>\forall </math> ε > 0, <math>\forall </math> m > N(ε), <math>\forall </math> n > N(ε), alors | ßn ßm |< ε.

Nous pouvons alors montrer les théorèmes suivants :

(vii) Une série potentielle dont les coefficients forment une suite calculable de nombres calculables est convergente en calculabilité en chaque point calculable à l’intérieur de son intervalle de convergence.

(viii) La limite d’une suite convergente en calculabilité est calculable.

Et avec la définition évidente de la « convergence uniforme en calculabilité » :

(ix) La limite d’une suite calculable uniformément convergente en calculabilité de fonctions calculables est une fonction calculable.

D’où :

(x) La somme d’une série potentielle dont les coefficients forment une suite calculable est une fonction calculable à l’intérieur de son intervalle de convergence.

Du théorème (viii) nous déduisons que π et e sont calculables, pour π = 4 (1 – <math>\frac{1}{3}</math> + <math>\frac{1}{5}</math> - …), et pour e = 1+ 1 + <math>\frac{1}{2!}</math> + <math>\frac{1}{3!}</math> + … .

[257]

Du théorème (vi) nous déduisons que tout nombre algébrique réel est calculable.

Des théorèmes (vi) et (x) que les zéros réels des fonctions de Bessel sont calculables.


Démonstration de (ii).


Soit H(x, y) la proposition « η(x) = y », et K(x, y, z) la proposition « ϕ(x, y) = z ». Uϕ est l’axiome qui définit ϕ(x, y). Posons alors Uη :

Uϕ ˄ P ˄ (S(x, y) → G(x, y)) ˄ (G(x, y) ˄ G(y, z) → G(x, z))

˄ (S(r)H(u, u(r))) ˄ (S(v, w) ˄ H(v, x) et K(w, x, z) → H(w, z))

˄ [H(w, z) ˄ G(z, t) v G(t, z) → (- H(w, t)].

Je ne donnerai pas ici la démonstration de la consistance de Uη. Une telle démonstration peut être faite avec les méthodes utilisées dans Hilbert et Bernays (Grundlagen der Mathematik, Berlin, 1934, p. 209 sq.). La consistance de Uη est également évidente d’après sa signification.

Montrons d’abord que, quel que soit n, il existe N tel que

Uη ˄ S(N)H(u(n), u(η(n)))(ii. 1)

(1) On a directement

Uη ˄ S(r)H(u, u(η(u)))

(2) Supposons que pour n, N donnés, on a

Uη ˄ S(N)H(u(n-1), u(η(n-1)))

Par calculabilité de ϕ, il existe M tel que

Uϕ ˄ S(M)K(u(n), u(η(n-1)), u(η(n)))

D’où

Uη ˄ S(M)S(u(n-1), u(n)) ˄ H(u(n-1), u(η(n-1))) ˄ K(u(n), u(η(n-1)), u(η(n)))

Or

Uη ˄ S(M) → [S(u(n-1), u(n)) ˄ H(u(n-1), u(η(n-1))) ˄ K(u(n), u(η(n-1)), u(η(n))) → H(u(n), u(η(n)))]

On a donc

Uη ˄ S(M) H(u(n), u(η(n)))

Ce qui démontre (ii. 1) par récurrence.

D’autre part, si mη(n) et M’Max(M, m), on a

Uη ˄ S(M’)G(uη((n)), u(m)) ˅ G(u(m), u(η(n)))

[258]

Or,

Uη ˄ S(M’) → [(H(u(n), u(η(n))) ˄ G(uη((n)), u(m)) ˅ G(u(m), u(η(n))) → - H(u(n), u(m)))]

Ce qui prouve que

Uη ˄ S(M’) → - H(u(n), u(m))(ii. 2)

Les deux conditions de notre seconde définition d’une fonction calculable sont donc satisfaites, et il en résulte que η est une fonction calculable.


Démonstration d’une version modifiée de (iii).


(iii’) Étant donnée une machine N qui calcule une suite γn d’après le nombre n d’une suite de symboles « S » dont la bande est initialement équipée, et ϕn(m) le m-ième chiffre de γn, alors la suite ζ dont le n-ième chiffre est ϕn(n) est calculable.


Considérons que la machine N est équipée d’une bande où sont inscrits les symboles əə suivis d’une suite d’un nombre quelconque n de symboles « S » sur les C-cases, et part de la m-configuration b. Nous supposons que le tableau pour N a été écrit de façon qu’il n’y ait qu’une seule instruction (colonne des opérations) par ligne (impression d’un symbole ou déplacement), et que les symboles Ξ, Θ, <math>\stackrel{\acute }{0}</math>, et <math>\stackrel{\acute }{1}</math> n’apparaissent pas dans le tableau. Nous remplaçons partout ə par Θ, 0 par <math>\stackrel{\acute }{0}</math>, et 1 par <math>\stackrel{\acute }{1}</math>. D’autres substitutions sont alors effectuées. Nous remplaçons toute ligne de la forme

UαI<math>\stackrel{\acute }{0}</math>B

par

UαI<math>\stackrel{\acute }{0}</math>re(B, u, h, k)

et toute ligne de la forme

UαI<math>\stackrel{\acute }{1}</math>B

par

UαI<math>\stackrel{\acute }{1}</math>re(B, v, h, k)

et nous rajoutons au tableau les lignes suivantes :

upe(u1, 0)

u1D, Ik, D, IΘ, D, IΘu3

u2re(u3, u3, b, k, h)

u3pe(u2, F)

et exactement les mêmes lignes en substituant v à u et 1 à 0.

rajoutons enfin la ligne suivante

cD, IΘ, D, IΘ, D, IS b

Nous obtenons ainsi le tableau d’une machine N’ qui calcule ζ à partir de la m-configuration initiale c, et le symbole inspecté au départ étant le second ə.

[259]

11. Application au problème de la décision (Entscheidungsproblem).


Les résultats de § 8 ont d’importantes conséquences. En particulier, on peut les utiliser pour montrer que le problème de la décision de Hilbert (Entscheidungsproblem) peut ne pas avoir de solution. Je me contenterai ici de démontrer ce théorème particulier et, pour une formulation précise du problème en question, je renverrai le lecteur à Hilbert et Ackermann (Grundzüge der Theoretischen Logik, Berlin, 1931, chapitre 3).

Je me propose donc de démontrer qu’il ne peut pas exister de procédure générale qui permette de décider si une formule U du calcul fonctionnel K est démontrable, i.e. qu’il ne peut pas exister de machine qui, pour toute formule U, dira finalement si U est démontrable.

Il conviendrait peut-être de noter que la démonstration que je me propose de faire est assez différente des résultats bien connus de Gödel<ref name="ftn17"> Op. cit.</ref>. Ce dernier a en effet montré qu’il existe (dans le formalisme des Principia Mathematica<ref name="ftn18"> Somme en trois volumes, publiés en 1910-1913 par Alfred North Whitehead et son élève Bertrand Russell, qui se propose d’éclaircir les fondements de l’algèbre et les démonstrations qui en découlent à partir de la logique formelle dans une version réadaptée de la notation de Giuseppe Peano. Première formulation axiomatique, rigoureuse et cohérente des principes généraux des mathématiques, et à ce titre d’une grande importance historique, elle est d’un formalisme lourd, utilisant des dizaines de pages pour prouver des propositions qui peuvent paraître évidentes (Note du traducteur).</ref>) des propositions U telles que ni U, ni – U, ne sont démontrables, d’où il résulte que l’on ne peut donner aucune preuve de la consistance des Principia Mathematica (ou de K) à l’intérieur de ce formalisme. Pour ma part, je montrerai qu’il n’existe pas de méthode générale qui permette de dire si une formule donnée U est démontrable dans K, ou, ce qui revient au même, si le système composé de K et de l’axiome supplémentaire – U est consistant.

S’il avait été prouvé le contraire de ce que Gödel a démontré, i.e. si, pour chaque proposition U, soit U soit son contraire – U est démontrable, alors nous devrions avoir une solution immédiate du problème de la décision (Entscheidungsproblem). Nous pouvons en effet inventer une machine K permettant de démontrer l’une après l’autre toutes les formules démontrables. Tôt ou tard, elle va atteindre soit U soit – U. Si elle atteint U, alors nous saurons qu’U est démontrable, et si elle atteint - U, alors, puisque K est consistant (voir Hilbert et Ackermann, p. 65), nous saurons que U n’est pas démontrable.

En raison de l’absence d’entiers dans K, les démonstrations suivantes vont paraître un peu fastidieuses, mais les idées sous-jacentes sont tout à fait immédiates.

À toute machine à calculer M, nous associons une formule In(M) et nous montrons que, s’il existe une méthode générale permettant de dire si In(M) est démontrable, alors il en existe aussi une pour dire si M imprime au moins une fois 0.

Les interprétations des fonctions propositionnelles utilisées sont les suivantes :

RSj(x, y) : « dans la configuration complète x (de M) le symbole sur la case y est Sj ».

[260]

I(x, y) : « dans la configuration complète x, la case y est la case inspectée ».

Kqm(x) : « dans la configuration complète x, la m-configuration est qm ».

S(x, y) : « y est le successeur immédiat de x ».

G(x, y) : « x précède y (mais n’est pas forcément son prédécesseur immédiat) ».

Et Inst{qiSjSkGql} comme abréviation de

(<math>\forall </math>x, <math>\forall </math> y, <math>\forall </math> x’, <math>\forall </math> y’) { (RSj(x, y) ˄ I(x, y) ˄ Kqi(x) ˄ S(x, x’) ˄ S(y’, y))

→ (I(x’, y’) ˄ RSk(x’, y) ˄ Kql(x’) ˄ S(y’, z)

˅ [ (RS0(x, z) → RS0(x’, z))

˄ (RS1(x, z) → RS1(x’, z)) ˄ … ˄ (RSM(x, z) → RSM(x’, z))])}.

et des abréviations construites de façon similaire pour Inst{qiSjSkDql} et Inst{qiSjSkNql}.

Présentons la description de M dans la première forme standard de § 6. Cette description se compose d’un certain nombre d’expressions telle que « qiSjSkGql » (ou D ou N à la place de G). Formons toutes les expressions correspondantes telle que Inst{qiSjSkGql} et considérons leur conjonction, que nous appelons Des(M).

Notons Q la formule qui définit les propriétés du successeur :

(<math>\forall </math>x) (<math>\exists </math>w) (<math>\forall </math>y) (<math>\forall </math>z)

{ (S(x, w) ˄ (S(x, y) → G(x, y)) ˄ (S(x, z) ˄ G(z, y) → G(x, y)) ˄ [G(z, x) ˅ (G(x, y) ˄ S(y, z)) ˅ (S(x, y) ˄ S(z, y)) → - S(x, z) ] }(Q)

Posons alors A(M) qui définit exactement la machine :

Q ˄ (<math>\forall </math>y) RS0(u, y) ˄ I(u, u) ˄ Kq1(u) ˄ Des(M)(A(M))

Nous pouvons alors construire la formule In(M)

(<math>\exists </math>u) A(M) → (<math>\exists </math>s) (<math>\exists </math>t) Rs1(s, t)(In(M))

Si nous nous référons aux interprétations suggérées pp. 259-60, la formule In(M) se traduit ainsi : « il existe une configuration complète de M telle que S1 (i.e. 0) soit présent sur la bande » ou « M imprime au moins une fois le symbole 0 ». En liaison avec ceci, je vais démontrer que les deux propositions suivantes sont équivalentes :

(a) « S1 apparaît sur la bande dans une configuration complète de M ».

(b) « In(M) est démontrable ».

Parvenu à ce point, le reste de la démonstration du théorème est banal.


[261]

Lemme 1. Si S1 apparaît sur la bande dans une configuration complète de M, alors In(M) est démontrable.


Nous devons préciser la démonstration d’In(M). Supposons que, dans la n-ième configuration complète, i(n) étant le numéro de la case inspectée, qk(n) la m-configuration, et S1(n, k) le symbole présent sur la k-ième case, la suite de symboles sur la bande est dès lors S1(n, 0), S1(n, 1),…, Sr(n, n), suivie uniquement de blancs. Nous pouvons alors formuler la proposition :

RSr(n,0) (u(n), u) ˄ RSr(n,1) (u(n), u’) ˄… ˄ RSr(n,n) (u(n), u(n)) ˄ I(u(n), u(i(n))) ˄ Kqk(n) ˄ (<math>\forall </math>y) S(y, u’) ˅ S(u, y) ˅ S(u’, y) ˅ … ˅ S(u(n-1), y) ˅ RS0(u(n), y) (abrégée CCn)

Je montrerai que, pour tout n,

A(M) ˄ F(n)CCn (abrégée CFn)

est démontrable. CFn signifie « la n-ième configuration complète de M et ainsi de suite », où « ainsi de suite » correspond à la n-ième configuration complète réelle de M. L’on doit donc s’attendre à ce que CFn puisse être démontrable.

CF0 est certainement démontrable car, dans la configuration complète n°0 de M, la bande est entièrement vierge, la m-configuration est q1, et la case inspectée la n° 0, soit u, i.e. CC0 est

(<math>\forall </math>y) RS0(u, y) ˄ I(u, u) ˄ Kq1(u).

Chacun de ces termes étant inclus dans A(M), la proposition A(M) → CC0 est alors démontrable.

Nous montrons ensuite que pour tout n, CFnCFn+1 est démontrable. Trois cas sont à considérer selon le mouvement de la machine entre la n-ième et la (n+1)-ième configuration : à gauche, à droite ou stationnaire. Supposons le premier cas, i.e. la machine se déplace à gauche. Les deux autres cas sont tout à fait similaires. Si r(n, i(n)) = b, r(n+1, i(n)) = d, k(n) = a, et k(n+1) = c, Inst{qaSbSdGqc} doit être l’un des termes compris dans Des(M), i.e.

Des(M) → Inst{qaSbSdGqc}

d’où

A(M) ˄ F(n+1)Inst{qaSbSdGqc} ˄ F(n+1).

or

Inst{qaSbSdGqc} ˄ Q ˄ F(n+1) → (CCnCCn+1)

est démontrable, et donc

A(M) ˄ F(n+1) → (CCnCCn+1)

[262]

l’est aussi, et

(A(M) ˄ F(n)CCn) → (A(M) ˄ F(n+1)CCn+1),

i.e. exactement CFnCFn+1.

Ainsi, CFn est démontrable quel que soit n. Et l’hypothèse de notre lemme est que S1 apparaît dans l’une des configurations complètes, dans la suite des symboles imprimés de M, c’est-à-dire qu’il existe des entiers N, K, tels que RS1(u(N), u(K)) est l’un des termes de CCN, d’où CCNRS1 (u(N), u(K)) est démontrable. Or A(M) ˄ F(N)CCN. Nous avons aussi :

(<math>\exists </math>u) A(M) → (<math>\exists </math>u) (<math>\exists </math>u’) … (<math>\exists </math>u(N’)) (A(M) ˄ F(N)),

N’ = Max(N, K). De là,

(<math>\exists </math>u) A(M) → (<math>\exists </math>u) (<math>\exists </math>u’) … (<math>\exists </math>u(N’)) RS1(u(N), u(K)),

(<math>\exists </math>u) A(M) → (<math>\exists </math>u(N)) (<math>\exists </math>u(K)) RS1(u(N), u(K)),

(<math>\exists </math>u) A(M) → (<math>\exists </math>s) (<math>\exists </math>t) RS1(s, t),

i.e. In(M) est démontrable, ce qui démontre le lemme 1.


Lemme 2. Si In(M) est démontrable, alors S1 apparaît sur la bande dans l’une des configurations complètes de M.


En substituant des fonctions propositionnelles aux variables fonctionnelles dans une formule démontrable, nous obtenons une proposition vraie. En particulier, si nous remplaçons ces variables par leurs interprétations des tableaux pp. 259-260 dans In(M), nous obtenons une proposition vraie signifiant « S1 apparaît quelque part sur la bande dans l’une des configurations complètes de M ».

Nous sommes maintenant à même de montrer que le problème de la décision (Entscheidungsproblem) ne peut pas avoir de solution. Supposons en effet le contraire. Il existe alors une procédure générale (mécanique) permettant de déterminer si In(M) est démontrable. Les lemmes 1 et 2 impliquent qu’il existe dès lors une procédure générale pour déterminer si M imprime au moins une fois 0, ce qui est impossible d’après les résultats de § 8. Il en résulte que le problème de la décision (Entscheidungsproblem) ne peut pas avoir de solution.

Au vu du grand nombre de solutions particulières du problème de la décision (Entscheidungsproblem) pour des formules à systèmes restreints de quantificateurs, [263] il est intéressant d’exprimer In(M) sous une forme restrictive où tous les quantificateurs sont au début. On peut ainsi exprimer In(M) sous la forme suivante :

(<math>\forall </math>u) (<math>\exists </math>x) (<math>\forall </math>w) (<math>\exists </math>u1) … (<math>\exists </math>u4) B,(I)

où la formule B est exempte de quantificateurs.


Appendice.

(28 août 1936)


Calculabilité et calculabilité effective

Nous présentons ci-dessous les grandes lignes de la démonstration du théorème de l’équivalence des suites effectivement calculables (λ-définissables) et des suites calculables. On suppose compris les termes « formule bien formée » (F.B.F.) et « conversion » utilisés par Church et Kleene. Dans la seconde partie de notre argumentation (tout nombre calculable est λ-définissable), on postule l’existence de plusieurs formules sans démonstration ; ces formules peuvent être directement créées à l’aide, par exemple, des résultats de Kleene (« A theory of positive integers in formal logic », American Journal of Math., 57, 935, pp. 153-173 et 219-244).

On notera Nn la F.B.F. représentant un entier n. Nous dirons que la suite γ dont le n-ième chiffre est ϕγ(n) est λ-définissable ou effectivement calculable si et seulement si 1 + ϕγ(n) est une fonction λ-définissable de n, i.e. s’il existe une F.B.F. Mγ telle que, pour tout entier n,

{Mγ} (Nn) conv N1 + ϕγ(n),

i.e. si {Mγ} (Nn) est convertible en λxy.x(y) ou en λxy.x(x(y)) selon que le n-ième chiffre de γ est un 0 ou un 1.

Pour démontrer que toute suite γ λ-définissable est aussi calculable, il nous faut construire une machine qui permette de calculer γ. Pour utiliser les F.B.F. avec des machines, il est plus pratique d’effectuer une petite modification dans leur calcul de conversion. Ce changement consiste à renommer x, x’, x’’, etc., les variables a, b, c, etc. Puis, nous construisons une machine L qui, munie de la formule Mγ, inscrit la suite γ. La construction de L est assez similaire à celle de la machine K qui trouve toutes les formules démontrables du calcul fonctionnel. Nous construisons d’abord une machine à choix L1 qui, munie d’une F.B.F., par exemple la formule initiale M, et bien utilisée, génère toute formule en laquelle cette formule est convertible. On peut alors modifier L1 pour obtenir une machine automatique L2 qui produit successivement toutes les formules [264] en lesquelles M est convertible (cf. la note p. 252 sur la transformation d’une c-machine en a-machine). La machine L2 est une des composantes de L. Le mouvement de la machine L munie de la formule Mγ se décompose en phases, dont la phase n est destinée à trouver le n-ième chiffre de la suite γ, en inscrivant tout d’abord dans cette n-ième phase la F.B.F. {Mγ} (Nn), puis en fournissant cette formule à la machine L2 pour que celle-ci la convertisse successivement en un certain nombre d’autres formules. Chaque formule ainsi générée, telle qu’on la rencontre, est finalement comparée avec les formes normales principales de N1 et N2, soit :

λ[λx’[ {x} (x’)]](N1)

λxx’[ {x} ( {x} (x’))]] (N2)

Si la formule est égale à N1 (ou N2), la machine imprime alors le chiffre 0 (ou 1) et la phase n s’achève. Si elle est différente des deux, alors L2 reprend son travail pour générer une nouvelle formule. Par hypothèse, {Mγ} (Nn) est convertible en l’une des formules N2 ou N; de ce fait, la phase n finira par s’achever, i.e. le nième chiffre de la suite γ finira par s’inscrire.

Pour démontrer que toute suite calculable γ est λ-définissable, nous devons montrer que l’on peut créer une F.B.F. Mγ telle que, pour tout entier n,

{Mγ} (Nn) conv N1+ϕγ(n)(A1)

Soit une machine M permettant de calculer la suite γ, et utilisons une description des configurations complètes de M au moyen de nombres, par exemple son N.D de configuration complète décrit en § 6. Soit ξM(n) le N.D de la n-ième configuration complète de M. Le tableau de la machine M nous donne, entre les nombres ξM(n) et ξM(n+1), une relation de la forme :

ξM(n+1) = ρM(ξM(n)),

ρM est une fonction de forme très restreinte, même si, en général, elle n’est pas vraiment très simple : on l’obtient à partir du tableau de M, et elle est λ-définissable (mais je n’en donne pas ici de démonstration), i.e. il existe une F.B.F. AM telle que, pour tout entier n,

{AM} (NξM(n)) conv ξM(n+1).

Soit UM substitué à :

λu[{{u} (AM} (Nr)], où r = ξM (0)(UM)

pour tout entier n, on a :

{UM} (Nn) conv NξM(n).

[265]

On peut démontrer qu’il existe une formule V telle que :

N1 si, la machine passant de la n-ième à la (n+1)-ième configuration complète, elle imprime entre les deux le chiffre 0.

{{V} (NξM(n+1))} (NξM(n)) conv ~N2 si la machine imprime le chiffre 1.

N3 sinon.

Soit WM substitué à :

λu [{{V} ({AM} ({UM} (u)))} ({UM } (u))](WM)

de sorte que, pour tout entier n,

{{V} (NξM(n+1))} (NξM(n)) conv {WM} (Nn),

et soit Q une formule telle que

{{Q} (WM)} (Ns) conv Nr(s),

r(s) est le s-ième entier q pour lequel {WM} (Nq) est convertible soit en N1 soit en N2. Alors, si MM est substitué à

λw [{WM} ({{Q} (WM)} (w))](MM)

MM aura la propriété (A1) requise<ref name="ftn19"> Pour une démonstration complète de la λ-définissabilité de suites calculables, il vaudrait mieux modifier cette méthode en remplaçant la description numérique des configurations complètes par une description que l’on puisse traiter plus facilement avec nos outils du λ-calcul. Pour cela, choisissons certains entiers pour représenter les symboles et les m-configurations de la machine. Imaginons, dans une certaine configuration complète, que la suite de symboles sur la bande est représentée par les nombres s1, s2, … sn, le symbole inspecté est le m-ième, et la m-configuration porte le nombre t ; nous pouvons alors représenter cette configuration complète par la formule

[[Ns1, Ns2, …, Nsm-1], [Nt, Nsm], [Nsm+1, …, Nsn]],

où [a, b] est l’abréviation de λu [{{u} (a)} (b)],

[a, b, c] est l’abréviation de λu [{{{u} (a)} (b)} (c)],

etc.</ref>.


Graduate College,

Princeton University,

New Jersey, U.S.A.


Correctif à la calculabilité des nombres et son application au problème de la décision (Entscheidungsproblem).
(A. M. Turing)


Sources et version de l’article original en ligne :

Turing, Alan : « On Computable Numbers, with an Application to the Entscheidungsproblem. A correction », in Proc. London Math. Soc., 2e série, vol. 43, 1938, pp. 544-546.

http://www.wolframscience.com/prizes/tm23/images/Turing2.pdf


Dans un article intitulé « On computable numbers, with an application to the Entscheidungsproblem »<ref name="ftn20"> Proc. London Math. Soc. (2), 42 (1936-7), 230-265.</ref>, l’auteur a donné une démonstration de l’insolubilité du problème de la décision (Entscheidungsproblem) du « calcul fonctionnel restreint » (« engere Funktionenkalkül »). Cette démonstration contenait des erreurs formelles<ref name="ftn21"> L’auteur est redevable à P. Bernays du signalement de ces erreurs.</ref> qui seront ici corrigées : il y a aussi quelques autres affirmations dans le même article qui devraient être modifiées, bien qu’en l’état elles ne soient pas véritablement fausses.

Il faut ainsi lire l’expression de Inst{qiSjSkLql} à la p. 260 de l’article cité :

(<math>\forall </math>x, <math>\forall </math> y, <math>\forall </math> x’, <math>\forall </math> y’) { (RSj(x, y) ˄ I(x, y) ˄ Kqi(x) ˄ S(x, x’) ˄ S(y’, y))

→ (I(x’, y’) ˄ RSk(x’, y) ˄ Kql(x’) ˄ S(y’, z)

˅ [ (RS0(x, z) → RS0(x’, z))

˄ (RS1(x, z) → RS1(x’, z)) ˄ … ˄ (RSM(x, z) → RSM(x’, z))])}.

S0, S1, …, SM étant les symboles que M peut imprimer.

L’affirmation p. 261, ligne 33 : « Inst{qaSbSdGqc} ˄ F(n+1) → (CCnCCn+1) est démontrable » est fausse (même avec la nouvelle expression de Inst{qaSbSdLqc}) ; nous ne pouvons pas par exemple déduire F(n+1) → (- F(u, u’’)), et donc nous ne pouvons utiliser dans Inst{qaSbSdLqc} le terme

F(y’, z) ˅ [(RS0(x, z) → RS0(x’, z)) ˄ … ˄ (RSM(x, z) → RSM(x’, z))]

[545]

Pour cette correction, nous introduisons une nouvelle variable fonctionnelle G [G(x, y) qui signifie « x précède y »]. Alors, si Q est une abréviation de :

(<math>\forall </math>x) (<math>\exists </math>w) (y, z) { F(x, w) ˄ (F(x, y) → G(x, y)) ˄ (F(x, z) ˄ G(z, y) → G(x, y))

˄ G(z, x) v (G(x, y) ˄ F(y, z)) v (F(x, y) ˄ F(z, y)) → (-F(x, z))]}

la formule correcte In(M) doit être

(<math>\exists </math>u) A(M) → (<math>\exists </math>s) (<math>\exists </math>t) Rs1(s, t),

A(M) est une abréviation de

Q ˄ (y) Rs0(u, y) ˄ I (u, u) ˄ Kq1(u) & Des(M).

L’affirmation page 261 (ligne 33) doit alors se lire

Inst{qaSbSdLqc} ˄ Q ˄ F(n+1) → (CCnCCn+1),

et la ligne 29 devrait se lire

r(n, i(n)) = b, r(n+1, i(n)) = d, k(n) = a, et k(n+1) = c.

À la place des mots « somme logique » p. 260, ligne 15, lire « conjonction ». Avec ces modifications, la démonstration est correcte. In(M) peut être mis sous la forme (I) (p. 263) avec n = 4.

Des difficultés surviennent du fait de la définition particulière que l’on a donnée du « nombre calculable » (p. 233). En effet, si les nombres calculables devaient satisfaire à des exigences intuitives, nous aurions :

Soient deux suites calculables de nombres rationnels an, bn dans lesquelles ils sont associés deux par deux à un entier positif n, tels que, pour tout n, anan+1 < bn+1 ≤ bn, et bn - an < 2-n, alors il existe un nombre calculable α tel que, pour tout n, anαbn.(A)

On peut en donner une démonstration, valable selon les standards mathématiques en vigueur, mais exigeant une application du principe du tiers exclu. En revanche, la proposition suivante est fausse :

Il existe une procédure qui permet d’obtenir le N.D d’une machine à calculer le nombre α à partir de la règle de formation des suites de nombres rationnels an, bn dans (A).(B)

À condition d’adopter la convention selon laquelle les décimales de nombres de la forme m/2n se termineront par une infinité de zéros, le procédé suivant permet de voir que la proposition (B) est fausse : soit une machine N quelconque, cn = <math>\frac{1}{2}</math> si N n’a encore imprimé aucun chiffre 0 lorsqu’elle atteint sa n-ième configuration complète, cn = <math>\frac{1}{2}</math> - 2-m-3 si N a imprimé 0 pour la première fois dans sa m-ième [546] configuration complète (mn), puis an = cn – 2-n-2 et bn = cn + 2-n-2. Les inégalités de la proposition (A) sont alors satisfaites, et le premier chiffre de α (limite de cn) est 0 si N imprime 0 au moins une fois, et 1 dans le cas contraire. Si la proposition (B) était vraie, nous aurions un moyen de connaître le premier chiffre de α étant donné le N.D de N : i.e. nous serions capables de déterminer si N imprime jamais 0, ce qui est contraire aux résultats de § 8 de l’article cité. Ainsi, bien que (A) montre qu’il doit exister des machines qui calculent, par exemple, la constante d’Euler, nous ne pouvons pas pour le moment décrire une telle machine, car nous ne savons pas encore si cette constante est de la forme m/2n.

Il est possible d’échapper à cette situation inconfortable en modifiant la manière dont les nombres calculables sont associés aux suites calculables, tout en préservant intégralement l’ensemble des nombres calculables. Il est possible de le faire de nombreuses manières<ref name="ftn22"> À l’origine, cette utilisation des intervalles d’imbrication pour la définition des nombres réels est due à Brouwer.</ref>, dont voici un exemple. Soit i le premier chiffre d’une suite calculable γ, suivi de n fois le chiffre 1, d’un 0, puis de la suite dont le r-ième chiffre est cr ; on fait correspondre à la suite γ le nombre réel rγ :

rγ = (2i – 1) n + <math>\sum _{r=1}^{\infty }\left(2cr\endash 1\right)\left(\frac{2}{3}\right)r</math>.

Si l’on considère que la machine qui calcule la suite γ calcule aussi le nombre réel rγ, alors (B) est une proposition vraie. L’unicité de représentation des nombres réels par des suites de chiffres est brisée, mais ceci a peu d’importance théorique, puisque les N.D ne sont pas invariablement uniques.


Graduate College,

Princeton, N.J., U.S.A.


<references/>

Historique du fichier

Cliquer sur une date et heure pour voir le fichier tel qu'il était à ce moment-là.

Date et heureDimensionsUtilisateurCommentaire
actuel17 octobre 2014 à 08:40 (793 Kio)Dominique.Bonnaud (discussion | contributions)
  • Vous ne pouvez pas remplacer ce fichier.

Aucune page n’utilise ce fichier.