Théorèmes d'incomplétude de Gödel

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Les théorèmes d'incomplétude de Gödel sont deux théorèmes célèbres de logique mathématique, démontrés par Kurt Gödel en 1931 dans son article Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme (en) « Sur les propositions formellement indécidables des Principia Mathematica et des systèmes apparentés »).

Ces théorèmes ont trait aux mathématiques. Énoncé de façon certes approximative, le premier dit essentiellement qu'une théorie suffisante pour faire de l'arithmétique est nécessairement incomplète, au sens où il existe dans cette théorie des énoncés qui ne sont pas démontrables et dont la négation n'est pas non plus démontrable : c'est-à-dire qu'il existe des énoncés que l'on ne pourra jamais déterminer en restant dans le cadre de la théorie. Sous le même genre d'hypothèses sur les théories considérées, le second théorème affirme qu'il existe un énoncé exprimant la cohérence de la théorie – le fait qu'elle ne permette pas de démontrer tout, et donc n'importe quoi – et que cet énoncé ne peut pas être démontré dans la théorie elle-même. À cause des hypothèses des théorèmes, toute théorie qui prétend formaliser l'ensemble des mathématiques, comme la théorie des ensembles, est concernée. Faut-il pour autant renoncer à ce qu'un discours mathématique ait une valeur de vérité universelle ? Sur quoi se fonder pour savoir s'il est cohérent, puisqu'il semble que l'on ne puisse y arriver par des moyens purement internes aux mathématiques ? Les théorèmes de Gödel ne donnent pas de réponse mais permettent d'écarter celles qui sont trop simples. Il faut déjà noter que ces deux limitations (énoncés dont la vérité est inaccessible, cohérence du discours) sont seulement relatives.

Ces théorèmes, et surtout leurs conséquences sur la conception de leur discipline qu'avaient les mathématiciens de l'époque, en particulier David Hilbert et ses élèves, étaient très inattendus. Peu de mathématiciens comprirent tout d'abord ces théorèmes et ce qu'ils impliquaient. Il faut compter parmi ceux-ci John von Neumann, qui après avoir assisté au premier exposé de Gödel en 1930 sur le premier théorème d'incomplétude, lui envoya une lettre mentionnant un corollaire qui était le second théorème (que Gödel connaissait déjà). Paul Bernays également, proche collaborateur de David Hilbert, comprit très vite les conséquences de ces théorèmes sur les conceptions de ce dernier, et donna la première démonstration détaillée du second théorème[1] dans l'ouvrage Grundlagen der Mathematik (en) (cosigné avec Hilbert). Enfin, Gödel se rendit plusieurs fois aux États-Unis dans les années 1930. Ses travaux eurent une grande audience auprès d'Alonzo Church et de ses élèves, Stephen Cole Kleene et J. Barkley Rosser, et jouèrent un rôle important dans la naissance de la théorie de la calculabilité.

Le second problème de la célèbre liste que Hilbert présenta en 1900 à Paris était celui de la démonstration de la cohérence de l'arithmétique. Toute la question, qui n'est pas éludée par Hilbert, est de savoir quels moyens on se donne pour une telle preuve. Le second théorème d'incomplétude montre qu'il faut une théorie « plus forte » (en un sens qu'il faudrait préciser) que l'arithmétique elle-même. On considère généralement que la réponse apportée au second problème de Hilbert est négative. Gerhard Gentzen donna cependant en 1936 une preuve de cohérence de l'arithmétique (en), de façon compatible bien sûr avec le second théorème de Gödel. La preuve est fort intéressante, mais sa signification en tant que preuve de cohérence reste discutable (voir les articles sur Gentzen et sur le programme de Hilbert). Ce dernier article est plus détaillé sur le contexte historique qui a conduit Gödel à démontrer ses théorèmes et l'impact de ceux-ci à l'époque.

Énoncés des deux théorèmes[modifier | modifier le code]

Le premier théorème d'incomplétude peut être énoncé de la façon encore un peu approximative suivante (les termes techniques sont expliqués dans le paragraphe suivant).

Dans n'importe quelle théorie récursivement axiomatisable, cohérente et capable de « formaliser l'arithmétique », on peut construire un énoncé arithmétique qui ne peut être ni prouvé ni réfuté dans cette théorie.

De tels énoncés sont dits indécidables dans cette théorie. On dit également indépendants de la théorie.

Toujours dans l'article de 1931, Gödel en déduit le second théorème d'incomplétude :

Si T est une théorie cohérente qui satisfait des hypothèses analogues, la cohérence de T, qui peut s'exprimer dans la théorie T, n'est pas démontrable dans T.

Ces deux théorèmes ont été démontrés pour l'arithmétique de Peano et donc pour les théories plus fortes que celle-ci, en particulier les théories destinées à fonder les mathématiques, telles que la théorie des ensembles ou les Principia Mathematica.

Les conditions d'application des théorèmes[modifier | modifier le code]

Pour fixer les idées, on considère dorénavant que les théories en question sont, comme celles que l'on vient de mentionner (arithmétique de Peano, théorie des ensembles), des théories du premier ordre de la logique classique, même si les théorèmes d'incomplétude restent valides, sous les mêmes conditions, par exemple en logique intuitionniste[2] ou en passant à l'ordre supérieur.

  • Par théorie récursivement axiomatisable, on entend que la théorie peut être axiomatisée de façon à ce qu'il soit possible de reconnaître purement mécaniquement les axiomes parmi les énoncés du langage de la théorie. C'est le cas évidemment des théories utilisées pour formaliser tout ou partie des mathématiques usuelles.
  • Une théorie est cohérente si aucune contradiction ne peut être prouvée à partir de ses axiomes. On dit aussi qu'elle est consistante ou non-contradictoire. Dans une théorie qui n'est pas cohérente on peut tout démontrer, et donc la théorie est vide de sens. Pour le premier théorème d'incomplétude, Gödel faisait une hypothèse de cohérence un peu plus forte. L'hypothèse de cohérence la plus simple suffit de toute façon pour le second théorème, qui n'énonce que la non-démontrabilité de l'énoncé de cohérence. De plus, J. B. Rosser a donné en 1936 une démonstration du premier théorème d'incomplétude sous cette simple hypothèse de cohérence. À proprement parler, l'énoncé du premier théorème d'incomplétude donné au début de cet article n'est donc pas exactement celui de Gödel. On le nomme aussi théorème de Gödel-Rosser.
  • Une théorie permet de formaliser l'arithmétique si, d'une part il est possible de définir (en un sens qu'il faudrait préciser) les entiers (donnés par zéro et la fonction successeur), avec les opérations usuelles, au moins l'addition et la multiplication, et si d'autre part un certain nombre d'énoncés sur les entiers sont prouvables dans la théorie. L'arithmétique de Peano est une telle théorie, et satisfait les hypothèses des deux théorèmes d'incomplétude. En fait une théorie arithmétique beaucoup plus faible suffit pour le premier (la récurrence n'est essentiellement pas utile). Pour le second, il faut un minimum de récurrence.
    Il est remarquable que pour formaliser l'arithmétique, l'addition et la multiplication suffisent (en plus de zéro et du successeur). C'est le tout premier pas vers la solution du dixième problème de Hilbert (voir théorème de Matiyasevich). L'addition seule ne suffit pas : l'arithmétique de Presburger, qui est la théorie obtenue en restreignant l'arithmétique de Peano au langage de l'addition (en plus de zéro et du successeur), est complète.

Conséquences immédiates du premier théorème d'incomplétude[modifier | modifier le code]

On peut reformuler le premier théorème d'incomplétude en disant que si une théorie T satisfait les hypothèses utiles, il existe un énoncé tel que chacune des deux théories obtenues l'une en ajoutant à T cet énoncé comme axiome, l'autre en ajoutant la négation de cet énoncé, sont cohérentes. Donnons-en la démonstration.

Étant donné un énoncé G, notons non G sa négation. On montre facilement qu'un énoncé G n'est pas démontrable dans T si et seulement si la théorie T + non G (la théorie T à laquelle on ajoute l'axiome non G) est cohérente. En effet, si G est démontrable dans T, T + non G est évidemment contradictoire. Réciproquement, supposons T + non G contradictoire. Cela signifie que, dans la théorie T, on peut déduire de non G une contradiction. On en déduit que G est conséquence de T (c'est un raisonnement par contraposée).

Il est donc équivalent de dire qu'un énoncé G est indécidable dans une théorie cohérente T, et de dire que les deux théories T + non G et T + G sont cohérentes. L'énoncé G n'étant évidemment pas indécidable dans chacune de ces deux théories, on voit que la notion d'énoncé indécidable est par nature relative à une théorie donnée.

Ainsi, si G est un énoncé indécidable donné pour T par le premier théorème d'incomplétude, on aura, en appliquant à nouveau ce théorème, un nouvel énoncé indécidable dans la théorie T + G (et donc d'ailleurs indécidable aussi dans la théorie T). De fait, quand le théorème d'incomplétude s'applique à une théorie T, il s'applique à toutes les extensions cohérentes de cette théorie, tant qu'elles restent récursivement axiomatisables : il n'y a aucun moyen effectif de compléter une telle théorie.

On peut également noter que, quelle que soit la théorie en jeu, Gödel a montré que l'énoncé indécidable qu'il construit pour démontrer son théorème est arithmétique, c’est-à-dire qu'on peut l'exprimer dans le langage de l'arithmétique, même si la théorie est plus expressive. Il s'agit même d'un énoncé de l'arithmétique qui, bien que fastidieux à écrire explicitement, est logiquement assez simple (en un sens qui sera précisé en fin d'article). Par exemple, on obtiendra par le théorème de Gödel appliqué à la théorie des ensembles de Zermelo-Fraenkel un énoncé arithmétique, qui sera pourtant indécidable dans cette même théorie des ensembles.

Conséquences immédiates du second théorème d'incomplétude[modifier | modifier le code]

L'énoncé du second théorème d'incomplétude a ceci de particulier, qu'il utilise la formalisation de la théorie dans elle-même, puisqu'il parle de la cohérence de la théorie comme d'un énoncé de celle-ci. C'est assez inhabituel en mathématiques, et cela entraîne facilement des confusions. Les conséquences qui suivent sont immédiates, au sens où elles se déduisent « simplement » du second théorème d'incomplétude, mais cette simplicité elle-même peut n'avoir rien d'immédiate.

Il peut être utile pour comprendre l'énoncé du second théorème d'incomplétude, de le reformuler par contraposée :

Si T est une théorie récursivement axiomatisable qui permet de formaliser « suffisamment d'arithmétique », et si T prouve un énoncé exprimant qu'elle est cohérente, alors T est contradictoire.

En revanche, une théorie qui démontre un énoncé exprimant qu'elle n'est pas cohérente, peut très bien ne pas être contradictoire, comme on le déduit du second théorème d'incomplétude lui-même !

Donnons en une preuve. Appelons cohT un énoncé qui exprime la cohérence de T dans la théorie T. De la même façon qu'au paragraphe précédent pour le premier théorème, on reformule le second théorème d'incomplétude en disant que, sous les hypothèses utiles sur T, si la théorie T est cohérente, la théorie T'=T + non cohT est encore cohérente. Rappelons que « T n'est pas cohérente », signifie qu'il existe une preuve d'une contradiction dans T. Une preuve dans T est aussi une preuve dans T' , qui a juste un axiome supplémentaire. Il est donc simple de montrer dans une théorie telle que T, qui satisfait les hypothèses du théorème de Gödel, que non cohT a pour conséquence non cohT' (n'oublions pas cependant que cohT et cohT' sont des énoncés exprimés dans le langage de ces théories, il faudrait, pour que la preuve soit vraiment complète, rentrer dans le détail de cette représentation pour montrer cette implication). On a donc déduit du second théorème d'incomplétude, et de l'existence d'une théorie cohérente T qui satisfait les hypothèses de ce théorème – prenons par exemple l'arithmétique de Peano – l'existence d'une théorie T' cohérente qui démontre non cohT', à savoir un énoncé exprimant qu'elle n'est pas cohérente. De telles théories sont fort heureusement pathologiques[3] : on n'en a jamais rencontré parmi les théories mathématiques usuelles. Ce résultat peut choquer l'intuition, mais il faut bien voir que l'on peut reformuler le second théorème d'incomplétude en disant que toute théorie cohérente qui satisfait les hypothèses utiles a une extension qui démontre la négation de sa cohérence.

A contrario une théorie incohérente, dans laquelle tous les énoncés sont prouvables, démontrera évidemment un énoncé exprimant qu'elle est cohérente.

On voit par ces diverses remarques que le second théorème d'incomplétude ne dit rien en défaveur de la cohérence d'une théorie à laquelle il s'applique, par exemple la cohérence de l'arithmétique de Peano. Tout ce qu'il dit de cette dernière, c'est qu'elle ne peut se prouver que dans une théorie logiquement plus forte.

Un autre exemple d'application simple, mais assez surprenante, du second théorème d'incomplétude est le théorème de Löb, qui affirme que, dans une théorie T qui satisfait les hypothèses utiles, prouver dans T un énoncé sous l'hypothèse que cet énoncé est prouvable dans la théorie, revient à prouver l'énoncé. Autrement dit cette hypothèse est inutile.

Vérité et démontrabilité[modifier | modifier le code]

On va introduire la notion de vérité, parfois méconnue en dehors de la logique mathématique, mais utile pour comprendre les théorèmes de Gödel. On va voir que la vérité est une notion mathématique, assez intuitive, mais qui ne se formalise pas dans des théories aussi simples que celles dans lesquelles se formalise la démontrabilité : il faut un minimum de théorie des ensembles, alors que la démontrabilité se contente de l'arithmétique. La notion de vérité que l'on va utiliser se définit mathématiquement (mais dans une théorie plus forte que celle étudiée). Le vocabulaire utilisé correspond à l'intuition, la notion est très commode. Mais il n'est pas besoin d'attribuer une valeur excessive à cette notion pour l'utiliser. Par exemple, Gödel construit effectivement un énoncé dont on montre qu'il est vrai dans N, ce que l'on peut interpréter par « on sait le prouver dans une théorie plus forte que celle de départ ».

Les théorèmes de Gödel portent sur des théories pouvant formaliser suffisamment d'arithmétique ; pour simplifier, on se limite de surcroît dans ce paragraphe aux théories arithmétiques, c'est-à-dire aux théories qui ne parlent que des entiers.

Vérité dans le modèle standard de l'arithmétique[modifier | modifier le code]

Alors que la démontrabilité est définie par rapport à une théorie, un système d'axiomes, la vérité est définie relativement à un modèle, une structure mathématique : un ensemble muni de lois et relations. Si dans une théorie un énoncé peut être indécidable, dans un modèle un énoncé est vrai ou faux, pas d'alternative. Nous allons dans la suite nous intéresser à la vérité dans le modèle standard de l'arithmétique, les entiers que «tout le monde connaît», que l'on note N[4]. C'est une structure tellement intuitive que ces précisions peuvent paraître superflues. Mais justement le théorème d'incomplétude de Gödel montre l'existence de structures mathématiques qui ressemblent étrangement aux entiers, par exemple elles vérifient tous les axiomes de l'arithmétique de Peano y compris la récurrence, mais qui ne sont pas les entiers usuels, puisqu'elles vérifient un énoncé faux dans N. En effet, si G est une formule indécidable dans T, prenons l'arithmétique de Peano pour T, nous avons vu à la section précédente que les théories T + G et T + non G sont cohérentes. Cela signifie, d'après le théorème de complétude du même Gödel, que ces théories ont chacune un modèle. Ces deux modèles ne satisfont pas les mêmes énoncés : ils ne peuvent être identiques. L'un d'entre eux au moins n'est donc pas le modèle standard. Quand on démontre le théorème de Gödel, on sait d'ailleurs lequel des deux énoncés est vrai dans le modèle standard (sachant que la théorie T est cohérente). Le fait que l'on sache qu'un énoncé est vrai dans le modèle N, sans savoir le démontrer dans la théorie arithmétique de Peano, signifie simplement qu'on sait le démontrer dans une théorie arithmétique plus forte, que l'on n'a pas forcément cherché à expliciter.

À l'époque où Gödel démontre son théorème, la notion de vérité n'est pas vraiment formalisée, même si elle est connue de ce dernier, puisqu'il a démontré en 1929 le théorème de complétude. La définition utilisée actuellement est due à Alfred Tarski, on la trouve dans un article publié en 1956.

Définissons la vérité dans N. Le langage a pour seul symbole de constante 0, pour seuls symboles de fonction s (la fonction successeur, qui ajoute 1), + et ×, pour seul symbole de relation en plus de l'égalité, le symbole d'inégalité ≤.

Le modèle standard se définit simplement : les seuls éléments de l'ensemble de base du modèle sont les entiers usuels, tous décrits par les termes du langage de la forme s ... s 0 (où s est le signe pour la fonction successeur, "ajouter 1"), c’est-à-dire la notation unaire bien connue qui correspond à l'idée primitive d'entier. Les termes du langage sont essentiellement des polynômes à plusieurs variables et à coefficients entiers positifs, les formules atomiques, qui sont les énoncés élémentaires, sans symbole logique, des égalités ou inégalités polynomiales. Pour définir le modèle il reste à décrire les formules atomiques closes, c’est-à-dire sans variable, vraies et fausses.

On définit facilement la vérité dans N des égalités et inégalités polynomiales sur les entiers (pas de variable !) notés de cette façon, et on peut même le faire mécaniquement, c’est-à-dire que la vérité des énoncés atomiques (égalités et inégalités polynomiales closes) est décidable au sens algorithmique. Les algorithmes en jeu sont essentiellement ceux de l'addition et de la multiplication en base 1, conceptuellement plus simples que ceux que l'on enseigne à l'école primaire pour la base 10 (bien que probablement plus fastidieux à utiliser).

À partir de là, on a défini le modèle, et donc on a la définition par induction de la vérité d'une formule quelconque dans ce modèle. Sans rentrer dans la définition formelle, observons quelques cas particuliers. Tout d'abord la vérité des formules closes sans quantificateurs reste décidable : on peut se ramener à des conjonctions et disjonctions d'égalités et d'inégalités (≠ et ≤) polynomiales. Passons aux quantificateurs, un énoncé du genre ∃x1xn(P(x1, … ,xn) = Q(x1, … ,xn)) où P et Q sont des polynômes à n variables, est vrai quand on peut trouver n entiers a1, … ,an tels que P(a1, … ,an) = Q(a1, … ,an). S'il existe un tel n-uplet d'entiers, une machine pourra le trouver, en essayant les n-uplets entiers les uns après les autres (par exemple en énumérant tous les n-uplets dont la somme est 0, puis tous ceux dont la somme est 1, puis tous ceux dont la somme est 2, etc.). Mais la machine ne s'arrêtera pas s'il n'existe pas de n-uplet solution. Il n'y a pas d'évidence que la vérification de telles formules est algorithmiquement décidable (et le théorème de Matiiassevitch montre qu'elle ne l'est pas).

La situation est « pire » pour le quantificateur universel : un énoncé du genre ∀ x1, … ,xn(P(x1, … ,xn) = Q(x1, … ,xn)) est vrai si pour chaque n-uplet d'entiers a1, … ,an, l'égalité P(a1, … ,an) = Q(a1, … ,an) est vraie : c'est bien défini, mais, si l'on suit la définition, cela demande une infinité de vérifications ! On voit bien la différence entre vérité et démontrabilité. Une preuve est nécessairement finie, et de plus on doit pouvoir reconnaître mécaniquement une preuve formelle. Pour démontrer un énoncé universel tel que celui-ci, habituellement on fait une récurrence. Sommairement, une preuve par récurrence est une façon finie de représenter une infinité de vérifications. La récurrence peut se « déplier » de façon à construire une infinité de preuves, une pour chaque entier. Cependant la récurrence introduit une certaine uniformité dans ces preuves[5]. Il n'y a aucune évidence qu'ainsi l'on puisse capturer la vérité dans N de tous les énoncés universels, et le théorème de Gödel montre justement que ce n'est pas le cas. L'énoncé de Gödel, qui est vrai dans N et non démontrable est justement un énoncé universel, appelons le ∀ x H(x). Prenons le cas de l'arithmétique de Peano. Quand on définit précisément l'énoncé, on montre que pour chaque entier n, H(n) est prouvable dans l'arithmétique de Peano. Mais on ne peut pas démontrer ∀ x H(x)[6].

Remarquons que, quand on a un moyen mécanique de décider la vérité dans N de certaines classes d'énoncés, par exemple les énoncés sans quantificateurs, on a en particulier une preuve de ces énoncés, ou de leurs négations, au sens non formel de cette notion, sans faire forcément attention à la théorie dans laquelle se dérive cette preuve. Dans les cas abordés ci-dessus, ces preuves se dérivent effectivement dans les théories pour lesquelles on peut démontrer les théorèmes de Gödel.

Vérité et incomplétude[modifier | modifier le code]

Rappelons que si l'on démontre un énoncé à partir d'énoncés vrais dans un modèle, l'énoncé obtenu est vrai dans ce modèle, et que, dans un modèle, un énoncé (une formule close) est soit vrai soit faux. Par conséquent la théorie des énoncés vrais dans N est close par déduction et complète. On déduit immédiatement du premier théorème d'incomplétude que

La théorie des énoncés vrais dans N n'est pas récursivement axiomatisable.

et donc, la vérité étant close par déduction

Si T est une théorie récursivement axiomatisable qui permet de formaliser « suffisamment d'arithmétique », et dont tous les axiomes sont vrais dans N, il existe un énoncé G vrai dans N qui n'est pas démontrable dans T.

C'est une version faible du théorème d'incomplétude, énoncée pour les théories dont tous les axiomes sont vrais dans N, alors que cette forme du théorème de Gödel se démontre sous la simple hypothèse de cohérence de ces axiomes qui est beaucoup plus générale (tout ceci en ayant précisé correctement ce que signifie « suffisamment d'arithmétique »). On ne peut pas non plus le formaliser directement dans l'arithmétique, pour en déduire le second théorème d'incomplétude[7]. Tel quel il se déduit d'ailleurs du Théorème de Tarski (1933), qui est plus facile à démontrer que celui de Gödel. Comme l'énoncé G non démontrable est vrai dans N et que la théorie ne démontre que des énoncés vrais dans N, la négation de cet énoncé n'est pas non plus démontrable.

Il est possible de donner une assertion sous cette forme qui soit vraiment équivalente à celle démontrée par Gödel, en précisant la complexité logique de l'énoncé G, voir la fin du paragraphe diagonalisation. Comme déjà dit, la simple hypothèse de cohérence suffit pour que l'énoncé G vrai dans N soit non démontrable, et ceci représente l'essentiel du théorème. Une fois précisée la complexité logique de G, le fait que la négation de G n'est pas non plus démontrable est une conséquence quasi-immédiate d'une hypothèse de cohérence un peu plus forte faite par Gödel, qui entraîne que tous les théorèmes de la complexité logique de la négation de G sont vrais dans N.

Des exemples de systèmes incomplets et d'énoncés indécidables[modifier | modifier le code]

Une théorie du premier ordre est incomplète, quand il existe des énoncés exprimables au premier ordre dans le langage de la théorie, et qui ne sont pas déterminés par cette théorie (c'est-à-dire qu'ils sont indécidables dans cette théorie).

L'existence de théories incomplètes est banale au sens ou il n'y a « pas assez » d'axiomes pour déterminer tous les énoncés. Ainsi on peut dire au premier ordre avec égalité qu'il existe au moins deux éléments distincts, ou au contraire qu'il en existe un seul, c'est-à-dire que la simple théorie de l'égalité, mais aussi par exemple la théorie des groupes ou la théorie des corps sont évidemment incomplètes. En ajoutant des axiomes on peut espérer compléter une théorie en la déterminant, ainsi la théorie des corps algébriquement clos d'une caractéristique donnée, la théorie des corps réels clos sont des théories complètes.

Ceci n'est pas possible pour l'arithmétique ainsi que le montre le théorème de Gödel : même en ajoutant des axiomes on n'obtiendra pas une théorie complète (tant que la liste des axiomes est récursivement axiomatisable, c'est-à-dire essentiellement qu'on peut la décrire explicitement). La théorie des ensembles, bien qu'elle permette de démontrer plus d'énoncés arithmétiques que l'arithmétique de Peano, ne les détermine pas tous pour autant (la théorie des ensembles est également incomplète pour des raisons n'ayant rien à voir avec les théorèmes de Gödel, voir ci-après).

L'arithmétique de Presburger (l'arithmétique de l'addition) est un exemple de théorie arithmétique complète : le langage est trop peu expressif, pour que l'on puisse démontrer le théorème de Gödel. De façon générale, d'après justement le théorème de Gödel, les théories complètes, comme celles déjà citées ou l'axiomatisation de la géométrie élémentaire (en) (associée à celle des corps réels clos) ne sont pas suffisamment expressives pour faire de l'arithmétique (avec addition et multiplication).

Énoncés indécidables dans l'arithmétique de Peano[modifier | modifier le code]

Appliqués à l'arithmétique, les théorèmes de Gödel fournissent des énoncés dont la signification est tout à fait intéressante, puisqu'il s'agit de la cohérence de la théorie. Cependant ces énoncés dépendent du codage choisi. Ils sont pénibles à écrire explicitement.

Paris et Harrington ont montré en 1977[8] qu'un renforcement du théorème de Ramsey fini, vrai dans N, n'est pas démontrable dans l'arithmétique de Peano. Il s'agit du premier exemple d'énoncé indécidable dans l'arithmétique qui n'utilise pas de codage du langage. Depuis, on en a découvert d'autres. Le théorème de Goodstein est un tel énoncé ; sa preuve est particulièrement simple (quand on connaît les ordinaux), mais utilise une induction jusqu’à l'ordinal dénombrable ε₀ (en). Laurence Kirby et Jeff Paris ont démontré en 1982 que l'on ne peut pas prouver ce théorème dans l'arithmétique de Peano.

Les énoncés de ce genre qui ont été découverts sont des résultats de combinatoire. Leur preuve n'est pas nécessairement très compliquée, et en fait il n'y a aucune raison de penser qu'il y a un lien entre complexité technique d'une preuve et possibilité de formaliser celle-ci dans l'arithmétique de Peano.

Énoncés indécidables en théorie des ensembles[modifier | modifier le code]

En théorie des ensembles, on a d'autres énoncés indécidables que ceux fournis par le théorème de Gödel qui peuvent être de nature différente. Ainsi, d'après des travaux de Gödel, puis de Paul Cohen, l'axiome du choix et l'hypothèse du continu sont des énoncés indécidables dans ZF la théorie des ensembles de Zermelo et Fraenkel, le second étant d'ailleurs indécidable dans ZFC (ZF plus l'axiome du choix). Mais d'une part, ce ne sont pas des énoncés arithmétiques. D'autre part, la théorie obtenue en ajoutant à ZF l'axiome du choix ou sa négation est équi-cohérente à ZF : la cohérence de l'une entraîne la cohérence de l'autre et réciproquement. De même pour l'hypothèse du continu. Ce n'est pas le cas pour un énoncé exprimant la cohérence de ZF, d'après justement le second théorème d'incomplétude. De même pour l'un des deux énoncés obtenus par les preuves usuelles du premier théorème d'incomplétude (il est équivalent à un énoncé de cohérence).

Considérons une théorie des ensembles T+A. Démontrer qu'un ensemble (un objet de la théorie) est modèle de la théorie des ensembles T, c’est démontrer la cohérence de T. Si l'on suppose que l'on peut faire une telle démonstration, on peut donc déduire par le second théorème d'incomplétude que, si T est cohérente, A n'est pas démontrable dans T. On montre ainsi que certains axiomes qui affirment l'existence de « grands » cardinaux, ne sont pas démontrables dans ZFC.

Théorèmes d'incomplétude et calculabilité[modifier | modifier le code]

La notion de calculabilité intervient à divers titres à propos des théorèmes d'incomplétude. On l'a utilisée pour en définir les hypothèses. Elle intervient dans la preuve du premier théorème d'incomplétude (Gödel utilise les fonctions récursives primitives). Enfin incomplétude et indécidabilité de l'arithmétique sont liées.

Indécidabilité algorithmique[modifier | modifier le code]

Il y a un lien étroit entre décidabilité algorithmique d'une théorie, l'existence d'une méthode mécanique pour tester si un énoncé est ou non un théorème, et complétude de cette théorie. Une théorie récursivement axiomatisable et complète est décidable. On peut donc prouver le premier théorème d'incomplétude en montrant qu'une théorie qui satisfait les hypothèses utiles est indécidable. Ce résultat, l'indécidabilité algorithmique des théories qui satisfont les hypothèses du premier théorème d'incomplétude, a été démontré indépendamment par Turing et Church en 1936 (voir problème de la décision), en utilisant les méthodes développées par Gödel pour son premier théorème d'incomplétude. Pour un résultat d'indécidabilité, qui est un résultat négatif, il faut avoir formalisé la calculabilité, et être convaincu que cette formalisation est correcte, conviction qui ne peut reposer seulement sur des bases mathématiques. En 1931, Gödel connaît un modèle de calcul que l'on dirait maintenant Turing-complet, les fonctions récursives générales, décrit dans une lettre que Jacques Herbrand lui a adressée, et qu'il a lui-même précisé et exposé en 1934. Cependant il n'est pas convaincu à l'époque d'avoir décrit ainsi toutes les fonctions calculables. À la suite de travaux de Kleene, Church, et Turing, ces deux derniers ont énoncé indépendamment en 1936 la thèse de Church : les fonctions calculables sont les fonctions récursives générales.

On peut être plus précis en donnant une classe restreinte d'énoncés pour laquelle la prouvabilité est indécidable. Si on reprend les arguments développés dans le paragraphe Vérité et démontrabilité ci-dessus, on voit par exemple que la classe des énoncés sans quantificateurs (et sans variables) est, elle, décidable.

En utilisant les arguments développés par Gödel, on montre que la prouvabilité des énoncés Σ1 est indécidable. Sans entrer dans le détail de la définition des formules Σ1 (faite ci-dessous), cela ne semble pas si loin d'une solution négative au dixième problème de Hilbert : l'existence d'un algorithme de décision pour la résolution des équations diophantiennes. Mais il fallut plusieurs dizaines d'années et les efforts successifs de plusieurs mathématiciens dont Martin Davis, Hilary Putnam, Julia Robinson et finalement Youri Matiiassevitch pour y arriver en 1970 (voir théorème de Matiiassevitch).

On peut tout à fait déduire le premier théorème de Gödel du théorème de Matiiassevitch. Cela peut paraître artificiel, puisqu'un résultat d'indécidabilité beaucoup plus facile à démontrer suffit. Mais on peut en déduire des énoncés indécidables d'une forme particulièrement simple. En effet, le théorème de Matiiassevitch équivaut à dire que la vérité des énoncés (formules closes) qui s'écrivent comme des égalités polynomiales quantifiées existentiellement, n'est pas décidable. Or :

  • on peut reconnaître mécaniquement de tels énoncés, et donc leurs négations ;
  • l'ensemble des tels énoncés vrais est récursivement énumérable, et donc, d'après le théorème de Matiiassevitch, l'ensemble des tels énoncés faux n'est pas récursivement énumérable ;
  • l'ensemble des théorèmes d'une théorie récursivement axiomatisable est récursivement énumérable (voir Théorie récursivement axiomatisable), et donc l'ensemble des théorèmes qui s'écrivent comme la négation d'une égalité polynomiale quantifiée existentiellement également ;
  • l'hypothèse de cohérence que fait Gödel pour son premier théorème d'incomplétude a pour conséquence directe que des égalités quantifiées existentiellement et fausses ne peuvent être démontrables.

On en déduit qu'il existe des énoncés vrais non démontrables, qui s'écrivent comme la négation d'une égalité polynomiale quantifiée existentiellement, ou plus simplement comme une inégalité polynomiale quantifiée universellement.

Une preuve partielle du premier théorème d'incomplétude[modifier | modifier le code]

La preuve par Gödel de son premier théorème d'incomplétude utilise essentiellement deux ingrédients :

  • le codage par des nombres entiers du langage et des fonctions qui permettent de le manipuler, ce que l'on appelle l'arithmétisation de la syntaxe ;
  • un argument diagonal qui, en utilisant l'arithmétisation de la syntaxe, fait apparaître un énoncé similaire au paradoxe du menteur : l'énoncé de Gödel est équivalent, via codage, à un énoncé affirmant sa propre non prouvabilité dans la théorie considérée.

Mais l'énoncé de Gödel n'est pas paradoxal. Il est vrai dans N, car s'il était faux, il serait prouvable. Or cet énoncé est de complexité logique suffisamment simple pour que sa prouvabilité dans une théorie cohérente capable de coder l'arithmétique entraîne sa vérité dans N (on n'a pas besoin de supposer que N est modèle de la théorie). Il est donc vrai dans N. Il n'est donc pas prouvable, par définition de l'énoncé.

Pour montrer que la négation de l'énoncé de Gödel n'est pas non plus prouvable, il faut une hypothèse de cohérence plus forte, comme celle qu'a faite Gödel. Rosser a modifié astucieusement l'énoncé pour pouvoir utiliser simplement la cohérence (voir astuce de Rosser (en)). En ce qui concerne la preuve de Gödel l'argument est le suivant : l'énoncé étant vrai, sa négation est fausse. Si on supposait que N est modèle de la théorie, cela suffirait pour qu'elle ne soit pas démontrable. Mais Gödel a construit un énoncé d'une complexité logique suffisamment faible pour qu'une hypothèse beaucoup moins forte suffise : il s'agit essentiellement de dire que de tels énoncés faux ne peuvent être démontrables, et il peut l'exprimer de façon syntaxique.

La preuve esquissée ci-dessus est reprise de façon plus précise dans le paragraphe « diagonalisation ».

Arithmétisation de la syntaxe[modifier | modifier le code]

À l'époque actuelle, quiconque connait un peu d'informatique n'a aucun mal à imaginer que l'on puisse représenter les énoncés d'une théorie par des nombres. Cependant il faut également manipuler ces codages dans la théorie. La difficulté réside dans les restrictions du langage : une théorie du premier ordre avec essentiellement l'addition et la multiplication comme symboles de fonction. C'est la difficulté que Gödel résout pour montrer que la prouvabilité peut être représentée par une formule dans la théorie.

La suite est un peu technique. En première lecture, on peut simplifier l'argumentation en supposant que N est modèle de T, auquel cas on n'a pas besoin d'être attentif à la complexité logique de l'énoncé. La partie sur la fonction β et la représentation de la récurrence reste utile. On précise également des notions, et des résultats qui ont été évoqués ou rédigés de façon approximative ci-dessus.

Codes[modifier | modifier le code]

Il peut être amusant d'écrire soi-même les codages, il l'est certainement beaucoup moins de lire ceux des autres. On trouve donc beaucoup de variété dans la littérature. Le choix du codage n'a pas grande importance, en soi. Éventuellement certains se "manieront" plus facilement dans la théorie. Comme les formules et les démonstrations peuvent être vues comme des suites finies de caractères, lettres, espace, ponctuation, et ceux-ci en nombre fini, on peut les coder par un nombre, celui étant écrit dans une base de taille le nombre de caractères nécessaire, ou par tout autre moyen qui permet de coder des suites finies d'entiers (Gödel utilise les exposants de la décomposition d'un nombre en facteurs premiers). On peut également utiliser un codage des couples (voir ci-dessous) pour représenter, suites finies, arbres, et donc les structures syntaxiques utiles ...

Formules Σ0[modifier | modifier le code]

Un problème plus important est d'avoir des fonctions pour manipuler ces structures, l'équivalent des programmes en informatique : il est à peu près clair que l'on ne peut se contenter de compositions de fonctions constantes, d'additions et de multiplications, c’est-à-dire de polynômes à coefficients entiers positifs. On va représenter les fonctions utiles par des formules. Voyons un exemple, par ailleurs fort utile pour les codages. La bijection de Cantor entre N×N et N est bien connue et tout à fait calculable : on énumère les couples d'entiers diagonale par diagonale (somme constante), par exemple en faisant croître la seconde composante :

<x, y>=[1+2+ … +(x+y)]+y=½(x+y)(x+y+1)+y

Cette fonction n'est déjà plus représentée par un terme du langage, à cause de la division par 2, mais elle est représentée par la formule (on utilise "≡" pour la relation d'équivalence) :

z=<x, y> ≡ 2z=(x+y)(x+y+1)+2y

Passons maintenant aux fonctions de décodage, c’est-à-dire à un couple de fonctions inverses. On aura besoin de quantificateurs :

x=π1(z) ≡ ∃y≤z 2z=(x+y)(x+y+1)+2y  ;         y=π2(z) ≡ ∃x≤z 2z=(x+y)(x+y+1)+2y

On a donc représenté une fonction, plus exactement son graphe (la formule soulignée) par une formule du langage de l'arithmétique. Les formules ci-dessus sont bien particulières : la première est une égalité polynomiale, si on remplace les trois variables libres par des termes clos du langage, représentant des entiers (s…s0), elle devient décidable. Les deux suivantes utilisent un quantificateur borné : "∃x≤z A" signifie "il existe un x plus petit ou égal à z tel que A". Là encore si on remplace les deux variables libres par des entiers cette formule devient décidable : pour vérifier une quantification existentielle bornée, il suffit de chercher jusqu’à la borne, soit on a trouvé, et l'énoncé est vérifié, soit on n'a pas trouvé et il ne l'est pas. Ce n'est plus le cas (pour la seconde partie de l'assertion) si la quantification existentielle n'est pas bornée. On pourra conserver cette propriété de décidabilité en ajoutant des quantifications universelles bornées, notée "∀ x≤ p A" ("pour tout x plus petit ou égal à p, A"). Les formules construites à partir des égalités polynomiales en utilisant les connecteurs booléens usuels, et des quantifications uniquement bornées sont appelées formules Σ0. Remarquez que la négation d'une formule Σ0 est Σ0.

On se convainc facilement, des arguments sont donnés juste ci-dessus et au paragraphe vérité et démontrabilité, que la vérité dans N des formules closes Σ0 est décidable : on a un moyen mécanique de savoir si elles sont vraies ou fausses. Pour démontrer le premier théorème d'incomplétude de Gödel (il faut un peu plus pour Gödel-Rosser, de la récurrence pour le second), la condition minimale sur la théorie, en plus d'être récursivement axiomatisable et d'une hypothèse de cohérence, est de démontrer toutes les formules Σ0 vraies dans N, et donc, par stabilité par négation des Σ0 et cohérence, de n'en démontrer aucune fausse. C'est ce que l'on a entendu par "formaliser suffisamment d'arithmétique". Remarquez que c'est une hypothèse sur les axiomes de la théorie. Par exemple l'ensemble des formules Σ0 vraies dans N étant décidable, on peut le choisir comme système d'axiomes pour une théorie qui sera bien récursivement axiomatisable (on peut évidemment le simplifier). En particulier on peut démontrer :

Dans l'arithmétique de Peano, les formules closes Σ0 sont vraies dans N si et seulement si elles sont démontrables.

Résultat qui se démontre d'ailleurs sans véritablement utiliser les axiomes de récurrence de l'arithmétique de Peano (ce qui est naturel puisqu'il n'y a pas véritablement de quantification universelle dans ces énoncés).

Formules Σ1[modifier | modifier le code]

Il serait bien commode de se contenter de manipuler des fonctions représentables par des formules Σ0 : vérité et démontrabilité sont confondues, ces formules sont décidables, donc les fonctions représentées par des formules Σ0 sont calculables. Mais le « langage de programmation » induit n'est pas assez riche. On doit introduire les formules Σ1, qui sont obtenues en plaçant un quantificateur existentiel en tête d'une formule Σ0. En général, la négation d'une formule Σ1 n'est pas équivalente à une formule Σ1. On a la propriété suivante :

Dans une théorie qui a pour conséquences toutes les formules Σ0 vraies dans N, les formules Σ1 vraies dans N sont prouvables.

En effet une formule Σ1 "∃ x A x" est vraie dans N signifie que pour un certain entier, que l'on peut écrire "s…s0", la formule "A s…s0" est vraie, or cette formule est Σ0.

Il existe des théories arithmétiques cohérentes, qui démontrent des formules closes Σ1 fausses, contrairement à ce qui se passe pour les Σ0. Il faut préciser que de telles théories arithmétiques sont assez pathologiques, comme celles qui démontrent un énoncé exprimant leur propre contradiction (voir début de l'article). L'hypothèse de cohérence supplémentaire utile pour le premier théorème d'incomplétude, que l'on va appeler Σ-cohérence, c'est justement de supposer que la théorie ne démontre aucune formule close Σ1 fausse. On suppose que certaines formules ne sont pas démontrables, donc la contradiction ne l'est pas : c'est bien une hypothèse de cohérence au moins aussi forte que la simple cohérence. Elle est vraiment plus forte : on peut exprimer la négation de la cohérence d'une théorie par une formule Σ1[9].

Fonctions définissables, fonctions représentables[modifier | modifier le code]

Un sous-ensemble E de N, ou plus généralement de Np est définissable dans l'arithmétique s'il existe une formule F de l'arithmétique avec p variables libres telle que :

(n1,…, np) ∈ E si et seulement si F(n1,…, np) est vraie dans N

Un sous-ensemble E de Np est représentable dans une théorie T s'il existe une formule F de l'arithmétique avec p variables libres telle que :

(n1,…, np) ∈ E si et seulement si F(n1,…, np) est démontrable dans T.

Une fonction f à plusieurs variables sur N est définissable dans N si son graphe est défini dans N, représentable dans une théorie T si son graphe est représentable dans T. Un ensemble, ou une fonction est définissable par une formule Σ1 si et seulement s'il, ou elle, est représentable par cette formule dans une théorie Σ-cohérente où tous les énoncés Σ0 sont démontrables.

Il existe d'autres notions de représentabilité plus fortes, pour les ensembles comme pour les fonctions. Pour celle introduite ici, on dit souvent « faiblement représentable ».

On notera y=f(x) une formule Σ1 définissant ou représentant f. Pour le théorème de Gödel c'est la notion de fonction ou d'ensemble représentable qui est utile, mais la notion de fonction ou d'ensemble définissable est plus simple à manipuler, et comme on s'intéresse aux cas où elles sont équivalentes, on va dans la suite parler de définissabilité par une formule Σ1.

On peut remarquer que la conjonction, la disjonction de deux formules Σ1, la quantification existentielle d'une formule Σ1, la quantification universelle bornée d'une formule Σ1, sont équivalentes dans N (on note ≡N) à une formule Σ1 :

∃x A ∨ ∃x B ≡ ∃x (A ∨ B)  ;   ∃x ∃y A(x, y) ≡N ∃z ∃x≤z ∃y≤z A(x, y)  ;   ∃x A ∧ ∃y B ≡ ∃x ∃y (A ∧ B) ;  ∀x≤z ∃y A(x, y) ≡N∃ u ∀x≤z ∃y≤u A(x, y).

L'ensemble de fonctions à notre disposition est donc stable par composition (on donne l'exemple pour une variable, on généralise sans peine à des fonctions de plusieurs variables) :

z=f o g (x) ≡ ∃ y [z=f(y)y = g (x)]

On définit également de façon naturelle :

f(x)=g(y) ≡ ∃ z [z=f(x)z = g (y)]

Cependant, pour pouvoir avoir un langage suffisamment expressif pour définir les fonctions utiles sur la syntaxe, il manque une notion très utile : la définition par récurrence. L'idée pour l'obtenir est d'utiliser un codage des suites finies (les listes de l'informatique). Supposons que nous ayons un tel codage, notons l=[n0;…;np] l'entier qui code la suite finie n0,…, np. Il faut pouvoir décoder : notons β(l, i)=ni l'élément en place i de la suite codée par l (la valeur n'a pas d'importance si i est trop grand). Supposons que nous ayons une fonction g de N dans N (une suite infinie d'entiers) définie par :

g(0)=a ;  g(n+1)=f(g(n))

et que f soit définissable dans N. Alors on pourra définir la fonction g par :

y=g(x) ≡ ∃ l [β(l,0)=a ∧ ∀ i < x β(l, i+1)=f(β(l, i))y = β(l, x)]

formule qui est équivalente dans N à une formule Σ1 dès que le graphe de β est Σ1. Ceci se généralise au schéma de récurrence utilisé pour les fonctions récursives primitives. Il suffit donc trouver une formule Σ1 qui définit une fonction β : c'est la principale difficulté à résoudre pour le codage de la syntaxe.

La fonction β[modifier | modifier le code]

Le nom de fonction β est repris de l'article original de Gödel. Pour la définir, il a eu l'idée d'utiliser le théorème des restes chinois : pour coder n1,…, np on va donner p entiers premiers entre eux deux à deux, engendrés à partir d'un seul entier d, et un entier a dont les restes des divisions par chacun de ces entiers sont n1,…, np. La suite n1,…, np sera donc codée par les deux entiers a et d, l'entier <a, d> si on en veut un seul. Plusieurs (une infinité !) entiers coderont la même suite, ce qui n'est pas gênant si on pense à l'objectif (coder les définitions par récurrence). Le principal est que l'on assure que toute suite finie a au moins un code.

Étant donnés les entiers n1,…, np, on choisi un entier s, tel que s ≥ p et pour tout ni, s≥ni. Les entiers

d0=1+s!, d1=1+2s!, …, dn=1+(n+1)s!

sont alors premiers entre eux deux à deux. De plus ni < di. Par le théorème chinois on déduit l'existence d'un entier a tel que pour chaque entier ni de la suite finie, le reste de la division de a par di soit ni. On a donc, en posant d = s! :

β(d, a,i)=r(a,1+(i+1)d) ;  z=r(a, b) ≡ z<b ∧ ∃q≤a a=bq+z.

On a bien une fonction β définie par une formule Σ0.

On en déduit que :

si une fonction se définit par récurrence primitive à partir de fonctions définissables par des formules Σ1, elle est définissable par une formule Σ1.

On peut calculer beaucoup de choses avec les fonctions récursives primitives. Une fois ce résultat obtenu, le reste n'est plus qu'affaire de soin. On peut utiliser des méthodes plus ou moins astucieuses pour gérer les problèmes de liaison de variables. On montre que la fonction qui code la substitution d'un terme à une variable dans une formule est récursive primitive, que l'ensemble des (codes de) preuves d'une théorie T récursivement axiomatisable est récursif primitif, et enfin que la fonction qui extrait d'une preuve la conclusion de celle-ci est récursive primitive. Dire qu'une formule est prouvable dans T, c'est dire qu'il existe une preuve de cette formule dans T, ce qui, codé dans la théorie, reste Σ1, bien que le prédicat "être démontrable" ne soit pas, lui, récursif primitif, ni même récursif[10].

En conclusion, pour une théorie récursivement axiomatisable T, on a deux formules Σ1, DemT(x) et z=sub(x, y), telles que :

  • DemT(⌈F⌉) est vraie dans N si et seulement si F est prouvable dans T ;
  • pour toute formule F(x), ⌈F(n)⌉ = sub(⌈F⌉, n), et la fonction sub est définie par la formule z=sub(x, y).

On a noté ⌈F⌉ l'entier qui code la formule F.

Du fait que les formules sont Σ1, on peut remplacer "vrai" par "démontrable dans T" sous les hypothèses suffisantes.

Diagonalisation[modifier | modifier le code]

La construction de l'énoncé de Gödel repose sur un argument diagonal. On construit tout d'abord la formule à une variable libre Δ(x) :

Δ(x) ≡ ∀z[z=sub(x, x) ⇒ ¬DemT(z)]

qui peut s'interpréter dans N par « la formule de code x appliquée à son propre code n'est pas démontrable dans T », et on applique cette formule à l'entier ⌈Δ⌉. On obtient G=Δ(⌈Δ⌉), une formule qui dit bien d'elle-même qu'elle n'est pas démontrable dans T. On reprend en la précisant l'argumentation déjà donnée au-dessus. On suppose que T est récursivement axiomatisable, démontre toutes les formules Σ0 vraies dans N, donc toutes les formules Σ1 vraies dans N, et qu'elle est Σ-cohérente.

  • G=Δ(⌈Δ⌉) est une formule close, équivalente à la négation d'une formule Σ1 ;
  • si la formule G était démontrable, la négation de G étant Σ1 ne pourrait être vraie car alors elle serait démontrable, et donc cela contredirait la cohérence de T. La formule G serait donc vraie dans N, ce qui voudrait dire, par construction de G, que la formule G ne serait pas démontrable, contradiction. Donc G n'est pas démontrable.
  • si la négation de la formule G était démontrable dans T, par Σ-cohérence elle serait vraie, or elle est fausse d'après ce qui précède. Donc la négation de G n'est pas démontrable.

On voit donc bien, le dernier argument étant assez tautologique, que le véritable contenu du théorème est dans la non-démontrabilité de G. Le premier théorème d'incomplétude de Gödel s'énonce donc aussi bien par :

Si T est une théorie récursivement axiomatisable, cohérente, et qui démontre toutes les formules Σ0 vraies dans N, alors il existe une formule G, négation d'une formule Σ1, qui est vraie dans N, mais non démontrable dans T.

On remarque que la formule G en question est équivalente à une formule universelle ∀x H(x), où H est Σ0. Cette formule étant vraie, pour chaque entier n (représenté par s...s 0) H(n) est vraie, donc démontrable étant Σ0. On a donc bien, comme annoncé dans le paragraphe « vérité et démontrabilité », un énoncé universel ∀x H(x) qui n'est pas démontrable dans T, alors que pour chaque entier n, H(n) est démontrable dans T.

Argument de la preuve du second théorème d'incomplétude[modifier | modifier le code]

Pour démontrer le premier théorème d'incomplétude, on a formalisé la prouvabilité dans une théorie arithmétique. Il est ainsi possible (sous les hypothèses du premier théorème) de construire un énoncé qui signifie que « 0 = 1 n'est pas prouvable » (0 = 1 ou n'importe quelle proposition contradictoire dans la théorie), c'est-à-dire de construire un énoncé exprimant la cohérence de la théorie. Le second théorème d'incomplétude affirme que, sous des hypothèses un peu plus fortes que pour le premier théorème, un tel énoncé n'est pas démontrable.

On peut déjà observer que la formule G que l'on construit pour démontrer le premier théorème d'incomplétude, et qui dépend de la théorie considérée, affirme qu'un certain énoncé (lui-même, en l'occurrence) n'est pas prouvable dans cette théorie. C'est donc déjà dans une certaine mesure un énoncé de cohérence, puisque dans une théorie incohérente tout est démontrable ; en fait, G a pour conséquence la cohérence de la théorie. Pour le second théorème d'incomplétude, il suffit de montrer que la cohérence de la théorie entraîne G.

Le second théorème d'incomplétude se prouve essentiellement en formalisant la preuve du premier théorème d'incomplétude pour une théorie T dans cette même théorie T. En effet, on a montré ci-dessus que, si la théorie était cohérente la formule G de Gödel (qui dépend de T), n'est pas prouvable. Mais la formule de Gödel est équivalente à sa non prouvabilité. On a donc montré que la cohérence de la théorie T entraîne G. Si maintenant T permet de formaliser cette preuve, on montre dans la théorie T que la cohérence de la théorie T entraîne G. Mais justement, si T est cohérente, G n'est pas démontrable dans T. On ne peut donc démontrer la cohérence de T dans T si cette dernière théorie est cohérente.

Pour ce raisonnement, on utilise seulement la non-démontrabilité de G, donc la simple hypothèse de cohérence suffit. Par contre, pour formaliser le raisonnement, la théorie T doit être plus expressive que pour le premier théorème d'incomplétude. En particulier on a besoin de récurrence.

Les conditions que doit vérifier la théorie T pour démontrer le second théorème d'incomplétude ont été précisées tout d'abord par Paul Bernays dans les Grundlagen der Mathematik (1939) coécrit avec David Hilbert, puis par Martin Löb, pour la démonstration de son théorème, une variante du second théorème d'incomplétude. Les conditions de démontrabilité de Löb portent sur le prédicat de prouvabilité dans la théorie T, que l'on nommera comme ci-dessus DemT :

  • D1. Si F est démontrable dans T, alors DemT(⌈F⌉) est démontrable dans T.
  • D2. DemT(⌈F⌉) ⇒ DemT(DemT(⌈F⌉)) est démontrable dans T.
  • D3. DemT(⌈FG⌉) ⇒ (DemT(⌈F⌉) ⇒ DemT(⌈G⌉)) est démontrable dans T.

La condition D1 est apparue implicitement pour démontrer le premier théorème d'incomplétude. La seconde condition D2 est une formalisation dans la théorie de D1. Enfin la dernière, D3, est une formalisation de la règle logique primitive dite de modus ponens. Notons cohT la formule qui exprime la cohérence de T, c’est-à-dire que l'absurde, que l'on note ⊥, n'est pas démontrable (la négation est notée maintenant ¬) :

cohT ≡ ¬ DemT(⌈⊥⌉)

Comme la négation d'une formule F, ¬F, équivaut à F entraîne l'absurde, F⇒⊥, on déduit de la condition D3 que

  • D'3 DemT(⌈¬F⌉) ⇒ (DemT(⌈F⌉) ⇒ ¬cohT.

Pour déduire le second théorème d'incomplétude des trois conditions de Löb, il suffit de reprendre le raisonnement déjà fait ci-dessus. Soit G la formule de Gödel construite pour la théorie T, qui, si cette dernière est cohérente, entraîne ¬DemT(⌈G⌉). D'après D1 et la cohérence de la théorie T, G n'est pas démontrable dans T (premier théorème). On formalise maintenant ce raisonnement dans T. Supposons que dans T, DemT(⌈G⌉). Comme, d'autre part, on démontre dans T que DemT(⌈G ⇒ ¬DemT(⌈G⌉)⌉), on déduit par D3 dans T, DemT(⌈¬DemT(⌈G⌉)⌉). Finalement, par D'3, on a montré ¬cohT dans T. Récapitulons : on a montré dans T que DemT(⌈G⌉) ⇒ ¬cohT, c’est-à-dire par définition de G, ¬G ⇒ ¬cohT, et par contraposée cohTG. Or on a vu que G n'est pas démontrable dans T, donc cohT n'est pas démontrable dans T.

La preuve de D1 a été déjà été esquissée à propos du premier théorème d'incomplétude : il s'agit de formaliser proprement la démontrabilité, et on utilise le fait que les formules closes Σ1 vraies sont démontrables.

La condition D3 formalise la règle de modus ponens, une règle que l'on a tout intérêt à avoir dans le système que l'on a choisi pour formaliser les démonstrations. Il faudrait rentrer dans le détail du codage pour donner la preuve de D3, mais elle ne sera pas bien difficile. Il faut faire attention à bien formaliser le résultat indiqué dans la théorie choisie : les variables en jeu (par exemple, il existe un x qui est le code d'une preuve de F) sont les variables de la théorie. Il faudra quelques propriétés de l'ordre, et savoir démontrer quelques résultats élémentaires sur les preuves dans la théorie.

C'est la condition D2 qui s'avère la plus délicate a démontrer. C'est un cas particulier de la propriété

  • Pour toute formule close F Σ1, F ⇒ DemT(⌈F⌉) est démontrable dans T

qui formalise (dans T) que toute formule close Σ1 vraie est démontrable dans T. On n'a donné ci-dessus aucun détail sur la preuve de ce dernier résultat, T étant par exemple l'arithmétique de Peano. Si on en donnait, on se rendrait compte que l'on n'a pas besoin de l'axiome de récurrence de la théorie, mais que, par contre, l'on raisonne par récurrence sur la longueur des termes, la complexité des formules ... Comme il faut maintenant formaliser cette preuve dans la théorie, il faut de la récurrence. Pour résumer la situation : quand on a démontré sérieusement le premier théorème d'incomplétude pour l'arithmétique de Peano, on a fait cette preuve, qui est un peu longue, mais ne présente pas de difficulté. Pour le second théorème, la seule chose à faire consiste maintenant à montrer que cette preuve se formalise dans l'arithmétique de Peano elle-même, ce qui est intuitivement relativement clair (quand on a fait la preuve), mais très pénible à expliciter complètement.

On peut en fait démontrer le second théorème d'incomplétude pour une théorie plus faible que l'arithmétique de Peano, l'arithmétique primitive récursive. On étend le langage de façon à avoir des symboles de fonction pour toutes les fonctions primitives récursives, et on ajoute à la théorie les axiomes qui définissent ces fonctions. On restreint la récurrence aux formules sans quantificateurs, ce qui fait que celles-ci sont « immédiates ». L'arithmétique primitive récursive est souvent considérée comme la formalisation des mathématiques finitaires, avec lesquelles Hilbert espérait pouvoir prouver la cohérence des théories mathématiques.

Notes[modifier | modifier le code]

  1. Gödel n'en donnait qu'une esquisse, très satisfaisante cependant, dans l'article original, et ne publia jamais la démonstration détaillée qu'il avait pourtant annoncée.
  2. La prouvabilité intuitionniste étant plus faible que la prouvabilité classique, l'énoncé que Gödel fournit pour le premier théorème d'incomplétude, indécidable en logique classique, le reste en logique intuitionniste. Par ailleurs, la preuve de Gödel est constructive : l'énoncé indécidable peut être donné explicitement pour une théorie donnée. Elle peut se formaliser en logique intuitionniste, même si le présent article ne s'en soucie pas.
  3. On dira, de façon plus mathématique, que ces théories ne sont pas ω-cohérentes (en).
  4. parfois, dans les ouvrages sur le théorème de Gödel, on parle simplement d'énoncé vrai, pour vrai dans le modèle standard de l'arithmétique
  5. encore que les choses puissent être bien compliquées, dès que les formules ont une certaine complexité logique, et que les récurrences sont imbriquées
  6. du point de vue de la vérité, on a bien que ∀ x H(x) est vraie dans N, le modèle standard, Mais il existe un modèle non standard de l'arithmétique de Peano, dans lequel il y a au-delà des entiers usuels dits standards, des entiers dits non standards, dont l'un au moins ne satisfait pas la propriété H
  7. D'après le théorème de Tarski, la vérité dans N pour les énoncés d'une théorie arithmétique ne peut se formaliser dans le langage de cette théorie.
  8. J.Paris et L. Harrington, A Mathematical Incompleteness in Peano Arithmetic. In Handbook for Mathematical Logic (Ed. J. Barwise). Amsterdam, Netherlands: North-Holland, 1977.
  9. En fait Gödel fait une hypothèse plus forte, l'ω-cohérence (en) : une théorie arithmétique ω-cohérente ne peut démontrer A0, A1, A2, ... (A n pour chaque entier n) et "¬∀x Ax". On en déduit, dans le cas où "Ax" est Σ0, et "∃ x A x" est démontrable (donc "¬∀x¬Ax"), que l'on ne peut démontrer "¬A n" pour tous les entiers n. Or les "A n" sont closes Σ0, donc démontrables si et seulement si elles sont vraies dans N. Pour un certain entier n0, "¬ A n0" n'est pas démontrable, donc "A n0" est vraie dans N, donc "∃ x A x" est vraie dans N. On a déduit la Σ-cohérence de la ω-cohérence.
  10. En fait, les ensembles définissables par des formules Σ1, et donc les ensembles représentables (au sens faible où on l'a défini) dans une théorie arithmétique Σ-cohérente, sont exactement les ensembles récursivement énumérables. Tous les arguments pour ce résultat sont d'ailleurs dans l'article de Gödel (il ne peut y être énoncé, puisque la notion n'est pas encore connue), et sont ceux résumés dans le présent paragraphe. En effet on montre en théorie de la calculabilité que les projetés des ensembles primitifs récursifs sont les récursivement énumérables. Ce résultat fournit d'ailleurs une autre preuve du théorème de Gödel. Il suffit par exemple de reprendre l'argument donné dans le paragraphe « indécidabilité algorithmique », en utilisant l'indécidabilité du problème de l'arrêt au lieu du théorème de Matiiassevitch.

Bibliographie[modifier | modifier le code]

En français
  • Raymond Smullyan, Les théorèmes d'incomplétude de Gödel, Dunod, 2000 (ISBN 210005287X)
    Plusieurs preuves du premier théorème d'incomplétude, y compris la variante de Gödel-Rosser, et dont les premières sont simplifiées en renforçant les hypothèses. Un exposé rapide sur le second.
  • René Cori et Daniel Lascar, Logique mathématique II. Fonctions récursives, théorème de Gödel, théorie des ensembles, théorie des modèles [détail des éditions]
    Preuve du théorème de Gödel-Rosser par l'indécidabilité de la théorie.
  • Jean-Louis Krivine, Théorie des ensembles [détail des éditions], ch. 9
    Une preuve du second théorème d'incomplétude en théorie des ensembles utilisant la conséquence sémantique.
  • Ernest Nagel, James R. Newman (en), Kurt Gödel et Jean-Yves Girard, Le théorème de Gödel, Éditions du Seuil,‎ 1989 [détail de l’édition]
    Fournit, entre deux commentaires informels, une traduction en français de la démonstration originelle de Gödel de 1931.
  • Jean Ladrière Les limitations internes des formalismes. Étude sur la signification du théorème de Gödel et des théorèmes apparentés dans la théorie des fondements des mathématiques, Jacques Gabay, 1957 (ISBN 2-87647-087-X). Réed. éd. J. Gabay, coll "les grands classiques", Paris 1992 [présentation en ligne].
En anglais
  • Andrzej Mostowski, Sentences Undecidable in Formalized Arithmetic: An Exposition of the Theory of Kurt Godel, North-Holland, Amsterdam, 1952. (ISBN 978-0313231513)
  • Craig Smorynski, Logical Number Theory I -- An Introduction, Springer Verlag, 1991 - (ISBN 3-540-52236-0) - (ISBN 0-387-52236-0).
    Théorèmes d'indécidabilité et d'incomplétude (premier), théorème de Matiiassevitch…
  • Craig Smorynski, The Incompletness Theorems, in Handbook of Mathematical Logic édité par J. Barwise, North Holland, 1977 - (ISBN 0-7204-2285-X)
    Les deux théorèmes d'incomplétude, contexte, preuves relativement détaillées, prolongements.
  • Jean-Yves Girard, Proof Theory and Logical Complexity, volume 1. Bibliopolis, 1987.
    En particulier des détails sur la preuve du second théorème d'incomplétude.
Articles originaux
  • (de) K. Gödel, Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme, I. (« Sur les propositions formellement indécidables des Principia Mathematica et des systèmes apparentés ») Monatshefte für Mathematik und Physik, 38 (received 17 novembre 1930, published 1931), p. 173-198. Traduit en anglais par van Heijenoort in From Frege to Gödel. Harvard University Press, 1971. p. 596-616, ainsi que par Martin Hirzel, Boulder (2000)
  • (en) K. Gödel, Some basic theorems on the foundations of mathematics and their implications (1951). Printed in Collected works / Kurt Gödel v.III; edited by Solomon Feferman. Clarendon Press ; New York : Oxford University Press, 1995. p. 304-323.
  • (en) J. Barkley Rosser, Extensions of some theorems of Gödel and Church. Journal of Symbolic Logic, 1 (1936), N1, p. 87-91.
  • (en) Martin Davis, (éd), The undecidable. Dover Publications. Recueil des principaux articles de Gödel, Church, Turing, Rosser, Kleene, et Post. 2004 (1965).
  • (en) Jeff Paris et Leo Harrington (en), A mathematical Incompleteness in Peano Arithmetic, 1977, in Handbook of Mathematical Logic (cité ci-dessus).
Ouvrages de vulgarisation

Article connexe[modifier | modifier le code]

Théorème de complétude de Gödel