Théorème 1Lemme diagonal et démontrabilité
Lemme diagonal
Les mots sont codés comme au nœud Codage des mots, et est le chiffre de ; pour une formule , on note le chiffre de son code. On fixe la variable , c'est-à-dire la lettre , et l'on pose avec la fonction de Substitution. Si est le code d'une formule , est le code de : la formule , appliquée au chiffre de son propre code. On appelle la fonction diagonale.
(i) La fonction est primitive récursive, et pour toute formule .
(ii) Soit une formule dont les variables libres sont parmi une variable . Il existe un énoncé tel que et toute théorie qui contient démontre la même équivalence.
Démonstration
(i) La fonction est primitive récursive, comme au point (i) de Vérité et incomplétude ; l'est par le point (i) de Substitution, et l'est par composition. Si est une formule de code , le mot est un terme, de code , et : le point (i) de Substitution donne .
(ii) Soit une variable qui ne figure pas dans et qui est distincte de . La fonction , primitive récursive, est récursive et totale (Fonctions récursives, (i)) ; par le point (iii) de Représentation des fonctions, elle est représentée dans par une formule de variables libres parmi et : pour tout entier , , où . Posons ; comme ne figure pas dans , elle y est substituable à , et les variables libres de sont parmi . Soit Les variables libres de sont parmi . Comme n'est pas libre dans et que , la substitution ne touche que : , et c'est un énoncé. Par (i), son code est .
L'axiome (2), avec le terme , donne , et la règle des tautologies donne et la réciproque. Or, pour deux formules et telles que , l'introduction de l'existentiel avec le terme , qui donne , puis l'élimination, permise puisque n'est pas libre dans , donnent (point (iii) de Calcul à variables libres). Ainsi .
Il reste à voir que . Le remplacement d'un terme (point (v) du même nœud), appliqué à , à la variable et aux termes et , donne , donc ; comme est un énoncé, l'élimination donne . Inversement, est la formule , et l'introduction de l'existentiel avec le terme clos , avec , donne .
Enfin, : comme ne figure pas dans , les lettres de sont exactement aux places des occurrences libres de dans , et elles y sont libres. La règle des tautologies donne , l'équivalence annoncée, puisque . Une théorie qui contient démontre tout ce que démontre , par le lemme de remplacement de la preuve de Théorème de Craig.
□La formule dit, de la formule de code : « sa diagonale a la propriété ». L'énoncé affirme cela de elle-même, et la diagonale de est précisément . Le carré suivant résume la construction : Substituer à le chiffre du code de , puis coder, revient à appliquer au code de ; la représentation de dans transporte ce calcul dans la théorie, et c'est ce qui rend l'équivalence démontrable, et non seulement vraie dans .
L'énoncé n'est pas le mot . Si est libre dans , ce mot contient le chiffre , formé de lettres ; par le point (ii) de Codage des mots et l'inégalité de la preuve du théorème de Craig, son code est au moins , et diffère donc de . L'erreur la plus répandue est de lire le lemme comme la construction d'un énoncé qui contient son propre code : il fournit seulement un énoncé que démontre équivalent à celui qui parle de son code.
Gödel (1931) construit directement l'énoncé dont il a besoin, pour la propriété de ne pas être démontrable. Une forme générale, pour une propriété quelconque, a été publiée par Rudolf Carnap (Logische Syntax der Sprache, Vienne, Springer, 1934, § 35), qui l'énonce en termes de vérité, et non de démontrabilité dans une théorie. La construction suit la diagonale de l'indécidabilité de l'arrêt : on applique un objet à son propre code.