ATLAS Ouvrir dans l'atlas →

Proposition 4Σ₁-complétude formalisée et (D3)

Tables d'addition et de multiplication, valeurs des termes et formules atomiques sous la démontrabilité formalisée

Les conventions sont celles de Instanciation à plusieurs paramètres, et l'on suppose désormais que TT démontre les axiomes de 𝖯𝖠\mathsf{PA} ; elle démontre donc tout ce que démontre 𝖯𝖠\mathsf{PA}, par le lemme de remplacement de la preuve du théorème de Craig, et le point (iii) de Instanciation à plusieurs paramètres s'applique à tout théorème de 𝖯𝖠\mathsf{PA} dont les paramètres ne sont pas quantifiés. Soit z1z_1, z2z_2, z3z_3, z4z_4 des variables distinctes, qui servent de places. Pour un terme ss du langage, s˙\dot s désigne, comme au nœud Gabarits à plusieurs places, le terme fonctionnel num(s)\mathrm{num}(s) placé dans un code.

Les égalités de codes de ce nœud et du suivant sont toutes des cas des points (ii) et (iii) de Gabarits à plusieurs places : remplir une place par num(0)\mathrm{num}(0), c'est écrire la lettre 00 ; la remplir par num(S ρ)\mathrm{num}(S\,\rho), c'est écrire SS suivi du chiffre de ρ\rho ; et une place qui ne figure pas peut être ajoutée ou retirée. On dit qu'on transporte le code quand on remplace ainsi un code par un code égal sous PrfT\mathrm{Prf}_T, par le remplacement (Termes fonctionnels, (ii) (c)).

Énoncé

Soit aa et bb des variables distinctes.

(i) Tables. 𝖯𝖠\mathsf{PA} démontre PrfT(⌜(z1+z2=z3)[a˙,b˙,(a+b)⋅/z1,z2,z3]⌝),PrfT(⌜(z1×z2=z3)[a˙,b˙,(a×b)⋅/z1,z2,z3]⌝).\begin{aligned} &\mathrm{Prf}_T\big(\ulcorner (z_1 + z_2 = z_3) \\ &\qquad [\dot a, \dot b, (a + b)^{\boldsymbol\cdot}/z_1, z_2, z_3] \urcorner\big), \\ &\mathrm{Prf}_T\big(\ulcorner (z_1 \times z_2 = z_3) \\ &\qquad [\dot a, \dot b, (a \times b)^{\boldsymbol\cdot}/z_1, z_2, z_3] \urcorner\big). \end{aligned}

(ii) Inégalité. ⊢𝖯𝖠¬(a=b)→PrfT(⌜¬(z1=z2)[a˙,b˙/z1,z2]⌝)\vdash_{\mathsf{PA}} \neg(a = b) \to \mathrm{Prf}_T\big(\ulcorner \neg(z_1 = z_2)[\dot a, \dot b/z_1, z_2] \urcorner\big).

(iii) Valeurs des termes. Soit tt un terme, xˉ=(x1,…,xr)\bar x = (x_1, \dots, x_r) des variables distinctes qui contiennent celles de tt, et zz une variable hors de xˉ\bar x. Alors ⊢𝖯𝖠PrfT(⌜(t=z)[xˉ˙,t˙/xˉ,z]⌝)\vdash_{\mathsf{PA}} \mathrm{Prf}_T\big(\ulcorner (t = z)[\dot{\bar x}, \dot t/\bar x, z] \urcorner\big).

(iv) Formules atomiques. Si les variables des termes tt et uu sont parmi les xix_i, alors ⊢𝖯𝖠t=u→PrfT(⌜(t=u)(xˉ˙)⌝),⊢𝖯𝖠¬(t=u)→PrfT(⌜¬(t=u)(xˉ˙)⌝).\begin{aligned} &\vdash_{\mathsf{PA}} t = u \\ &\qquad \to \mathrm{Prf}_T\big(\ulcorner (t = u)(\dot{\bar x}) \urcorner\big), \\ &\vdash_{\mathsf{PA}} \neg(t = u) \\ &\qquad \to \mathrm{Prf}_T\big(\ulcorner \neg(t = u)(\dot{\bar x}) \urcorner\big). \end{aligned}

Démonstration

Toutes les formules poussées sous PrfT\mathrm{Prf}_T par le point (iii) de Instanciation à plusieurs paramètres sont ici sans quantificateur, de sorte que leurs variables en sont des paramètres ; ce sont des instances des axiomes de 𝖰\mathsf Q, ou des formules que démontrent les règles de l'égalité de Calcul à variables libres, (vi), et la règle des tautologies. On note D1\mathrm{D1} et D2\mathrm{D2} les points (iii) et (iv) de Instanciation à plusieurs paramètres. Une égalité entre valeurs, comme a+0=aa + 0 = a, se transporte dans un code par le remplacement appliqué au terme fonctionnel num(⋅)\mathrm{num}(\cdot).

(i) Addition. Montrons, par récurrence sur bb, avec le paramètre aa, la formule Φ(b)=PrfT(⌜(z1+z2=z3)[a˙,b˙,(a+b)⋅]⌝)\Phi(b) = \mathrm{Prf}_T(\ulcorner (z_1 + z_2 = z_3)[\dot a, \dot b, (a + b)^{\boldsymbol\cdot}] \urcorner). Pour 00, D1\mathrm D1 appliqué à l'axiome z1+0=z1z_1 + 0 = z_1 (Q4\mathrm Q_4), avec la valeur aa, donne PrfT(⌜(z1+0=z1)[a˙/z1]⌝)\mathrm{Prf}_T(\ulcorner (z_1 + 0 = z_1)[\dot a/z_1] \urcorner). Ce code est celui de Φ(0)\Phi(0) : la formule z1+0=z1z_1 + 0 = z_1 s'obtient de z1+z2=z3z_1 + z_2 = z_3 en substituant 00 à z2z_2 et z1z_1 à z3z_3, et le point (iii) de Gabarits à plusieurs places donne le code rempli par num(a)\mathrm{num}(a), num(0)\mathrm{num}(0) et num(a)\mathrm{num}(a) ; on transporte enfin num(a)=num(a+0)\mathrm{num}(a) = \mathrm{num}(a + 0), par Q4\mathrm Q_4.

Pour le pas, soit cc la valeur de a+ba + b, et considérons, avec les places z1,z2,z3z_1, z_2, z_3 et les valeurs a,b,ca, b, c, les formules θ1=(z1+S z2=S(z1+z2))\theta_1 = (z_1 + S\,z_2 = S(z_1 + z_2)), axiome Q5\mathrm Q_5, θ2=(z1+z2=z3→S(z1+z2)=S z3)\theta_2 = (z_1 + z_2 = z_3 \to S(z_1 + z_2) = S\,z_3), et θ3=(θ1→(S(z1+z2)=S z3→z1+S z2=S z3))\theta_3 = (\theta_1 \to (S(z_1 + z_2) = S\,z_3 \to z_1 + S\,z_2 = S\,z_3)), que démontrent les règles de l'égalité. Par D1\mathrm D1, elles sont démontrables sous PrfT\mathrm{Prf}_T avec ces valeurs. L'hypothèse de récurrence, où l'on transporte num(a+b)=num(c)\mathrm{num}(a + b) = \mathrm{num}(c), et D2\mathrm D2 appliqué à θ2\theta_2 donnent PrfT(⌜(S(z1+z2)=S z3)[a˙,b˙,c˙]⌝)\mathrm{Prf}_T(\ulcorner (S(z_1 + z_2) = S\,z_3)[\dot a, \dot b, \dot c] \urcorner) ; deux applications de D2\mathrm D2 à θ3\theta_3, avec θ1\theta_1, donnent PrfT(⌜(z1+S z2=S z3)[a˙,b˙,c˙]⌝)\mathrm{Prf}_T(\ulcorner (z_1 + S\,z_2 = S\,z_3)[\dot a, \dot b, \dot c] \urcorner). Par le point (iii) de Gabarits à plusieurs places, appliqué deux fois, ce code est celui de z1+z2=z3z_1 + z_2 = z_3 rempli par num(a)\mathrm{num}(a), num(S b)\mathrm{num}(S\,b) et num(S c)\mathrm{num}(S\,c), et l'on transporte S c=S(a+b)=a+S bS\,c = S(a + b) = a + S\,b, par Q5\mathrm Q_5 : c'est Φ(S b)\Phi(S\,b). La récurrence (Récurrence dans PA, (iii)) conclut.

Multiplication. Même récurrence sur bb. Pour 00, D1\mathrm D1 appliqué à z1×0=0z_1 \times 0 = 0 (Q6\mathrm Q_6) donne le code de z1×z2=z3z_1 \times z_2 = z_3 rempli par num(a)\mathrm{num}(a), num(0)\mathrm{num}(0), num(0)\mathrm{num}(0), et l'on transporte num(0)=num(a×0)\mathrm{num}(0) = \mathrm{num}(a \times 0). Pour le pas, soit cc la valeur de a×ba \times b et dd celle de c+ac + a, et prenons les places z1,z2,z3,z4z_1, z_2, z_3, z_4 avec les valeurs a,b,c,da, b, c, d. L'axiome Q7\mathrm Q_7 donne z1×S z2=z1×z2+z1z_1 \times S\,z_2 = z_1 \times z_2 + z_1 ; l'hypothèse de récurrence et la formule z1×z2=z3→z1×z2+z1=z3+z1z_1 \times z_2 = z_3 \to z_1 \times z_2 + z_1 = z_3 + z_1 donnent, par D2\mathrm D2, z1×z2+z1=z3+z1z_1 \times z_2 + z_1 = z_3 + z_1 sous PrfT\mathrm{Prf}_T ; la table d'addition, où l'on substitue cc et aa à aa et bb (Termes fonctionnels, (ii) (b)), donne z3+z1=z4z_3 + z_1 = z_4, puisque le code de z1+z2=z3z_1 + z_2 = z_3 rempli par num(c)\mathrm{num}(c), num(a)\mathrm{num}(a), num(d)\mathrm{num}(d) est le même terme fonctionnel que celui de z3+z1=z4z_3 + z_1 = z_4 rempli par les quatre valeurs. Deux applications de la transitivité, poussée sous PrfT\mathrm{Prf}_T par D1\mathrm D1 et D2\mathrm D2, donnent z1×S z2=z4z_1 \times S\,z_2 = z_4, qui est z1×z2=z3z_1 \times z_2 = z_3 rempli par num(a)\mathrm{num}(a), num(S b)\mathrm{num}(S\,b) et num(d)\mathrm{num}(d), la place z3z_3 ne figurant plus ; on transporte d=a×b+a=a×S bd = a \times b + a = a \times S\,b, par Q7\mathrm Q_7.

(ii) Montrons, par récurrence sur aa, la formule ∀b (¬(a=b)→PrfT(⌜¬(z1=z2)[a˙,b˙]⌝))\forall b\, \big(\neg(a = b) \to \mathrm{Prf}_T(\ulcorner \neg(z_1 = z_2)[\dot a, \dot b] \urcorner)\big). Pour 00, sous l'hypothèse ¬(0=b)\neg(0 = b), la symétrie et l'instance ¬(b=0)→∃w (b=S w)\neg(b = 0) \to \exists w\, (b = S\,w) (Récurrence dans PA) permettent de raisonner sous b=S b′b = S\,b', pour une variable nouvelle b′b'. D1\mathrm D1 appliqué à ¬(0=S z2)\neg(0 = S\,z_2), conséquence de Q1\mathrm Q_1 et de la symétrie, avec la valeur b′b', donne un code qui est, par le point (iii) de Gabarits à plusieurs places, celui de ¬(z1=z2)\neg(z_1 = z_2) rempli par num(0)\mathrm{num}(0) et num(S b′)\mathrm{num}(S\,b') ; on transporte S b′=bS\,b' = b, et l'on élimine b′b'.

Pour le pas, sous l'hypothèse de récurrence et sous ¬(S a=b)\neg(S\,a = b), distinguons b=0b = 0 et b=S b′b = S\,b'. Si b=0b = 0, D1\mathrm D1 appliqué à ¬(S z1=0)\neg(S\,z_1 = 0), avec la valeur aa, donne le code de ¬(z1=z2)\neg(z_1 = z_2) rempli par num(S a)\mathrm{num}(S\,a) et num(0)\mathrm{num}(0). Si b=S b′b = S\,b', alors ¬(a=b′)\neg(a = b'), puisque a=b′a = b' donnerait S a=bS\,a = b ; l'hypothèse de récurrence, instanciée par b′b', donne PrfT(⌜¬(z1=z2)[a˙,b˙′]⌝)\mathrm{Prf}_T(\ulcorner \neg(z_1 = z_2)[\dot a, \dot b'] \urcorner), et D1\mathrm D1 et D2\mathrm D2, appliqués à la contraposée ¬(z1=z2)→¬(S z1=S z2)\neg(z_1 = z_2) \to \neg(S\,z_1 = S\,z_2) de Q2\mathrm Q_2, donnent le code de ¬(S z1=S z2)\neg(S\,z_1 = S\,z_2), c'est-à-dire celui de ¬(z1=z2)\neg(z_1 = z_2) rempli par num(S a)\mathrm{num}(S\,a) et num(S b′)\mathrm{num}(S\,b'). On transporte S b′=bS\,b' = b, on généralise en bb, et la récurrence conclut ; l'instanciation par bb donne l'énoncé.

(iii) Par récurrence sur la construction de tt, en métathéorie. Si tt est 00, le code est celui de 0=z0 = z rempli par num(0)\mathrm{num}(0), c'est-à-dire celui de l'énoncé 0=00 = 0, et D1\mathrm D1, sans paramètre, conclut. Si tt est xix_i, c'est le code de xi=xix_i = x_i, et D1\mathrm D1 appliqué à cette formule conclut. Si tt est S t1S\,t_1, l'hypothèse de récurrence donne PrfT(⌜(t1=z)[xˉ˙,t˙1]⌝)\mathrm{Prf}_T(\ulcorner (t_1 = z)[\dot{\bar x}, \dot t_1] \urcorner) ; D1\mathrm D1 appliqué à t1=z→S t1=S zt_1 = z \to S\,t_1 = S\,z, avec les valeurs xˉ\bar x et une variable yy à laquelle on substitue ensuite t1t_1, puis D2\mathrm D2, donnent le code de S t1=S zS\,t_1 = S\,z rempli par num(t1)\mathrm{num}(t_1), qui est celui de S t1=zS\,t_1 = z rempli par num(S t1)\mathrm{num}(S\,t_1), par le point (ii) de Gabarits à plusieurs places.

Si tt est t1+t2t_1 + t_2, soit z′z' et z′′z'' des variables nouvelles, distinctes. L'hypothèse de récurrence donne les codes de t1=z′t_1 = z' et de t2=z′′t_2 = z'', remplis par num(t1)\mathrm{num}(t_1) et num(t2)\mathrm{num}(t_2), et la table d'addition, où l'on substitue t1t_1 et t2t_2 à des variables aa et bb prises hors de ces termes, donne celui de z′+z′′=zz' + z'' = z, rempli par num(t1)\mathrm{num}(t_1), num(t2)\mathrm{num}(t_2) et num(t1+t2)\mathrm{num}(t_1 + t_2), qui est le même terme fonctionnel que le code de z1+z2=z3z_1 + z_2 = z_3 rempli par ces valeurs. Avec les places xˉ,z′,z′′,z\bar x, z', z'', z et ces valeurs, D1\mathrm D1 et D2\mathrm D2 appliqués à t1=z′→(t2=z′′→t1+t2=z′+z′′)t_1 = z' \to (t_2 = z'' \to t_1 + t_2 = z' + z''), puis à la transitivité t1+t2=z′+z′′→(z′+z′′=z→t1+t2=z)t_1 + t_2 = z' + z'' \to (z' + z'' = z \to t_1 + t_2 = z), donnent le code de t1+t2=zt_1 + t_2 = z, où les places z′z' et z′′z'' ne figurent plus. Le cas de ×\times est le même, avec la table de multiplication.

(iv) Soit zz et z′z' des variables nouvelles, distinctes. Sous l'hypothèse t=ut = u, on transporte num(u)=num(t)\mathrm{num}(u) = \mathrm{num}(t) dans le code que (iii) donne pour u=zu = z ; avec celui de t=zt = z, D1\mathrm D1 et D2\mathrm D2 appliqués à t=z→(u=z→t=u)t = z \to (u = z \to t = u), avec les places xˉ,z\bar x, z et les valeurs xˉ,t\bar x, t, donnent le code de t=ut = u, où la place zz ne figure pas. Sous l'hypothèse ¬(t=u)\neg(t = u), le point (ii), où l'on substitue tt et uu à aa et bb, donne le code de ¬(z=z′)\neg(z = z') rempli par num(t)\mathrm{num}(t) et num(u)\mathrm{num}(u), et (iii) ceux de t=zt = z et de u=z′u = z' ; D1\mathrm D1 et trois applications de D2\mathrm D2 à t=z→(u=z′→(¬(z=z′)→¬(t=u)))t = z \to (u = z' \to (\neg(z = z') \to \neg(t = u))), que démontrent les règles de l'égalité, donnent le code de ¬(t=u)\neg(t = u). Le théorème de la déduction conclut dans les deux cas.

□
Remarque

Le point (i) n'est pas une conséquence de la première condition appliquée aux égalités vraies m‾+n‾=m+n‾\underline m + \underline n = \underline{m + n} : celle-ci donne un théorème de 𝖯𝖠\mathsf{PA} pour chaque couple d'entiers, alors que (i) est un seul théorème, à variables libres aa et bb, qui vaut aussi pour les éléments non standard d'un modèle de 𝖯𝖠\mathsf{PA}. L'erreur la plus répandue est de confondre ces deux formes ; c'est la récurrence sur bb, menée à l'intérieur de 𝖯𝖠\mathsf{PA} et poussée sous PrfT\mathrm{Prf}_T par les axiomes Q4\mathrm Q_4 et Q5\mathrm Q_5, qui donne la forme uniforme, comme la récurrence de Ordre dans PA remplaçait l'énumération des cas de Calculs dans Q.

Remarque

Les codes en jeu sont gigantesques, même pour des énoncés minuscules : pour 0+0=00 + 0 = 0, de lettres (0,6,4,4,4)(0, 6, 4, 4, 4), on a ⟨0,6⟩=26\langle 0, 6 \rangle = 26, ⟨0,6,4⟩=226⋅9=603 979 776\langle 0, 6, 4 \rangle = 2^{26} \cdot 9 = 603\,979\,776, puis ⟨0,6,4,4⟩=2603 979 776⋅9\langle 0, 6, 4, 4 \rangle = 2^{603\,979\,776} \cdot 9, qui a 181 816 031181\,816\,031 chiffres décimaux, et le code de l'énoncé en est la puissance de 22 suivante, multipliée par 99. Aucune preuve de ce nœud ne calcule ces entiers : elles raisonnent sur des termes fonctionnels, par les égalités de gabarits, et c'est ce qui permet d'énoncer (iii) pour une variable.

Ouvrir dans l'atlas interactif →