ATLAS Ouvrir dans l'atlas →

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

Gabarits à plusieurs places et codes des instances à plusieurs paramètres

Les conventions sont celles de Substitution dépliée et de Formules des instances. Un gabarit à rr places est une suite finie G=(g0,…,gm−1)G = (g_0, \dots, g_{m-1}) dont chaque terme est un entier ou l'un des signes ⋄1,…,⋄r\diamond_1, \dots, \diamond_r, qui peuvent ne pas tous y figurer. Pour des termes fonctionnels τ1,…,τr\tau_1, \dots, \tau_r, notés τˉ\bar\tau, on définit le terme fonctionnel ⟦G⟧(τˉ)\llbracket G \rrbracket(\bar\tau) par récurrence sur mm : la suite vide donne 00 ; si G′G' est GG suivi de l'entier cc, alors ⟦G′⟧(τˉ)=aj(⟦G⟧(τˉ),c‾)\llbracket G' \rrbracket(\bar\tau) = \mathrm{aj}\big(\llbracket G \rrbracket(\bar\tau), \underline c\big) ; si G′G' est GG suivi du signe ⋄i\diamond_i, alors ⟦G′⟧(τˉ)=conc(⟦G⟧(τˉ),τi)\llbracket G' \rrbracket(\bar\tau) = \mathrm{conc}\big(\llbracket G \rrbracket(\bar\tau), \tau_i\big). Pour r=1r = 1, ce sont les gabarits de Substitution dépliée. Le terme τi\tau_i ne figure dans ⟦G⟧(τˉ)\llbracket G \rrbracket(\bar\tau) que si ⋄i\diamond_i figure dans GG : ajouter ou retirer une place qui ne figure pas ne change pas le terme fonctionnel. On note GHGH la suite GG suivie de la suite HH, G[H/⋄i]G[H/\diamond_i] le gabarit obtenu en remplaçant chaque signe ⋄i\diamond_i de GG par la suite HH, et τˉ[σ]i\bar\tau[\sigma]_i la suite τˉ\bar\tau dont le ii-ième terme est remplacé par σ\sigma.

Soit xˉ=(x1,…,xr)\bar x = (x_1, \dots, x_r) une suite de variables distinctes, avec xi=akix_i = a_{k_i}. Pour un mot w=ac0⋯acm−1w = a_{c_0} \cdots a_{c_{m-1}}, le gabarit Gxˉ(w)G_{\bar x}(w) a pour terme de rang jj le signe ⋄i\diamond_i si cj=kic_j = k_i, et l'entier cjc_j si cjc_j n'est aucun des kik_i : on marque, lettre à lettre, toutes les lettres xix_i. On pose ⌜w⌝xˉ(τˉ)=⟦Gxˉ(w)⟧(τˉ)\ulcorner w \urcorner_{\bar x}(\bar\tau) = \llbracket G_{\bar x}(w) \rrbracket(\bar\tau) et, pour des termes s1,…,srs_1, \dots, s_r du langage, ⌜w[s˙1,…,s˙r/xˉ]⌝=⌜w⌝xˉ(num(s1),…,num(sr)),\begin{aligned} &\ulcorner w[\dot s_1, \dots, \dot s_r/\bar x] \urcorner \\ &\quad = \ulcorner w \urcorner_{\bar x}\big(\mathrm{num}(s_1), \dots, \mathrm{num}(s_r)\big), \end{aligned} abrégé ⌜w[sˉ˙/xˉ]⌝\ulcorner w[\dot{\bar s}/\bar x] \urcorner ; quand les sis_i sont les variables xix_i elles-mêmes, on écrit ⌜w(xˉ˙)⌝\ulcorner w(\dot{\bar x}) \urcorner. Pour r=0r = 0, c'est un terme fonctionnel clos, dont 𝖯𝖠\mathsf{PA} démontre l'égalité avec le chiffre ⌜w⌝‾\underline{\ulcorner w \urcorner}, par le texte de Substitution dépliée ; on les emploie l'un pour l'autre.

Les xix_i sont des paramètres de ww si aucune d'elles n'est quantifiée dans ww, au sens de Calcul à variables libres ; pour une formule, c'est dire qu'aucune lettre ∀\forall n'est suivie d'une lettre xix_i, puisque chaque lettre ∀\forall d'une formule est suivie de la variable de son bloc (Variables libres). Chaque lettre xix_i est alors une occurrence libre : elle ne suit pas une lettre ∀\forall, et aucun bloc ∀xi\forall x_i ne la lie. Ainsi Gxˉ(w)G_{\bar x}(w) marque exactement les occurrences libres des xix_i ; pour r=1r = 1, c'est le gabarit Gk(w)G_k(w) de Substitution dépliée, de sorte que ⌜w[y˙/x]⌝\ulcorner w[\dot y/x] \urcorner est le code de Formules des instances. Pour des termes tit_i, le mot de code ⌜w⌝xˉ(⌜t1⌝,…,⌜tr⌝)\ulcorner w \urcorner_{\bar x}(\ulcorner t_1 \urcorner, \dots, \ulcorner t_r \urcorner) est la substitution simultanée w[t1,…,tr/xˉ]w[t_1, \dots, t_r/\bar x], et, pour des entiers n1,…,nrn_1, \dots, n_r, le point (iv) de Termes fonctionnels donne ⊢𝖯𝖠⌜w[yˉ˙/xˉ]⌝[n1‾,…,nr‾/yˉ]=⌜w[n1‾,…,nr‾/xˉ]⌝‾\vdash_{\mathsf{PA}} \ulcorner w[\dot{\bar y}/\bar x] \urcorner[\underline{n_1}, \dots, \underline{n_r}/\bar y] = \underline{\ulcorner w[\underline{n_1}, \dots, \underline{n_r}/\bar x] \urcorner}.

La définition lettre à lettre rend le calcul des gabarits immédiat. On a Gxˉ(uv)=Gxˉ(u) Gxˉ(v)G_{\bar x}(uv) = G_{\bar x}(u)\, G_{\bar x}(v) pour des mots uu et vv ; en notation préfixée, avec (c)(c) pour le gabarit réduit à l'entier cc, Gxˉ(¬φ)=(1) Gxˉ(φ),Gxˉ(→ φ ψ)=(2) Gxˉ(φ) Gxˉ(ψ),Gxˉ(∀z φ)=(3)(c) Gxˉ(φ),Gxˉ(= t u)=(0) Gxˉ(t) Gxˉ(u),\begin{aligned} G_{\bar x}(\neg\varphi) &= (1)\, G_{\bar x}(\varphi), \\ G_{\bar x}({\to}\, \varphi\, \psi) &= (2)\, G_{\bar x}(\varphi)\, G_{\bar x}(\psi), \\ G_{\bar x}(\forall z\, \varphi) &= (3)(c)\, G_{\bar x}(\varphi), \\ G_{\bar x}({=}\, t\, u) &= (0)\, G_{\bar x}(t)\, G_{\bar x}(u), \end{aligned} pour z=acz = a_c hors de xˉ\bar x, de même pour SS, ++ et ×\times, et Gxˉ(xi)=(⋄i)G_{\bar x}(x_i) = (\diamond_i). Enfin, si uu est une variable hors de xˉ\bar x qui ne figure pas dans ww, et xx une variable hors de xˉ\bar x qui n'est pas quantifiée dans ww, alors Gxˉ,u(w[u/x])=Gxˉ,x(w)G_{\bar x, u}(w[u/x]) = G_{\bar x, x}(w) : renommer un paramètre ne change pas le gabarit, donc ⌜w[u/x]⌝xˉ,u(τˉ,τ)\ulcorner w[u/x] \urcorner_{\bar x, u}(\bar\tau, \tau) et ⌜w⌝xˉ,x(τˉ,τ)\ulcorner w \urcorner_{\bar x, x}(\bar\tau, \tau) sont le même terme fonctionnel.

Énoncé

Soit GG et HH des gabarits à rr places, τˉ\bar\tau une suite de rr termes fonctionnels et xˉ=(x1,…,xr)\bar x = (x_1, \dots, x_r) une suite de variables distinctes.

(i) Concaténation. ⊢𝖯𝖠⟦GH⟧(τˉ)=conc(⟦G⟧(τˉ),⟦H⟧(τˉ))\vdash_{\mathsf{PA}} \llbracket GH \rrbracket(\bar\tau) = \mathrm{conc}\big(\llbracket G \rrbracket(\bar\tau), \llbracket H \rrbracket(\bar\tau)\big) et, si ⋄i\diamond_i figure dans GG, ⊢𝖯𝖠τi⩽⟦G⟧(τˉ)\vdash_{\mathsf{PA}} \tau_i \leqslant \llbracket G \rrbracket(\bar\tau).

(ii) Remplissage. ⊢𝖯𝖠⟦G[H/⋄i]⟧(τˉ)=⟦G⟧(τˉ[⟦H⟧(τˉ)]i)\vdash_{\mathsf{PA}} \llbracket G[H/\diamond_i] \rrbracket(\bar\tau) = \llbracket G \rrbracket\big(\bar\tau[\llbracket H \rrbracket(\bar\tau)]_i\big). On a ⊢𝖯𝖠⟦(4)⟧=num(0)\vdash_{\mathsf{PA}} \llbracket (4) \rrbracket = \mathrm{num}(0) et, pour tout terme fonctionnel ρ\rho, ⊢𝖯𝖠⟦(5)(⋄j)⟧(τˉ[num(ρ)]j)=num(S ρ)\vdash_{\mathsf{PA}} \llbracket (5)(\diamond_j) \rrbracket\big(\bar\tau[\mathrm{num}(\rho)]_j\big) = \mathrm{num}(S\,\rho).

(iii) Substitution d'un terme. Soit ww un mot, xix_i un paramètre de ww et ss un terme. Alors ⊢𝖯𝖠⌜w[s/xi]⌝xˉ(τˉ)=⌜w⌝xˉ(τˉ[⌜s⌝xˉ(τˉ)]i).\begin{aligned} \vdash_{\mathsf{PA}} {}&\ulcorner w[s/x_i] \urcorner_{\bar x}(\bar\tau) \\ &= \ulcorner w \urcorner_{\bar x}\big(\bar\tau[\ulcorner s \urcorner_{\bar x}(\bar\tau)]_i\big). \end{aligned} En particulier, ⊢𝖯𝖠⌜w[0/xi]⌝xˉ(τˉ)=⌜w⌝xˉ(τˉ[num(0)]i)\vdash_{\mathsf{PA}} \ulcorner w[0/x_i] \urcorner_{\bar x}(\bar\tau) = \ulcorner w \urcorner_{\bar x}(\bar\tau[\mathrm{num}(0)]_i) et, si τj\tau_j est num(ρ)\mathrm{num}(\rho), ⊢𝖯𝖠⌜w[S xj/xi]⌝xˉ(τˉ)=⌜w⌝xˉ(τˉ[num(S ρ)]i)\vdash_{\mathsf{PA}} \ulcorner w[S\,x_j/x_i] \urcorner_{\bar x}(\bar\tau) = \ulcorner w \urcorner_{\bar x}(\bar\tau[\mathrm{num}(S\,\rho)]_i).

(iv) Formation. Si les xix_i sont des paramètres du terme tt et de la formule φ\varphi, alors 𝖯𝖠\mathsf{PA} démontre (Tm^(τ1)∧⋯∧Tm^(τr))→(Tm^(⌜t⌝xˉ(τˉ))∧Fm^(⌜φ⌝xˉ(τˉ))).\begin{aligned} &\big(\widehat{\mathrm{Tm}}(\tau_1) \wedge \cdots \wedge \widehat{\mathrm{Tm}}(\tau_r)\big) \\ &\quad \to \big(\widehat{\mathrm{Tm}}(\ulcorner t \urcorner_{\bar x}(\bar\tau)) \wedge \widehat{\mathrm{Fm}}(\ulcorner \varphi \urcorner_{\bar x}(\bar\tau))\big). \end{aligned} En particulier, pour des variables y1,…,yry_1, \dots, y_r, ⊢𝖯𝖠Fm^(⌜φ[yˉ˙/xˉ]⌝)\vdash_{\mathsf{PA}} \widehat{\mathrm{Fm}}(\ulcorner \varphi[\dot{\bar y}/\bar x] \urcorner).

Démonstration

(i) La preuve du point (i) de Substitution dépliée s'applique mot pour mot, le signe ⋄i\diamond_i et le terme τi\tau_i prenant la place de ⋄\diamond et de τ\tau : par récurrence sur la longueur de HH, en métathéorie, avec le point (iv) de Concaténation dans PA et l'associativité (Facteurs dans PA, (ii)), puis, si G=G1⋄iG2G = G_1 \diamond_i G_2, ⟦G⟧(τˉ)=cc(⟦G1⟧(τˉ),τi,⟦G2⟧(τˉ))\llbracket G \rrbracket(\bar\tau) = \mathrm{cc}(\llbracket G_1 \rrbracket(\bar\tau), \tau_i, \llbracket G_2 \rrbracket(\bar\tau)), qui est au moins τi\tau_i par le point (iv) de Facteurs dans PA.

(ii) Notons τˉ′=τˉ[⟦H⟧(τˉ)]i\bar\tau' = \bar\tau[\llbracket H \rrbracket(\bar\tau)]_i, et raisonnons par récurrence sur la longueur de GG, en métathéorie. Si GG est vide, les deux membres valent 00. Si GG est G1G_1 suivi de l'entier cc, alors G[H/⋄i]G[H/\diamond_i] est G1[H/⋄i]G_1[H/\diamond_i] suivi de cc, et les deux membres sont aj(⋅,c‾)\mathrm{aj}(\cdot, \underline c) appliqué à deux termes égaux par l'hypothèse de récurrence. Si GG est G1G_1 suivi de ⋄j\diamond_j avec j≠ij \neq i, on conclut de même, puisque τj′=τj\tau'_j = \tau_j. Si GG est G1G_1 suivi de ⋄i\diamond_i, alors G[H/⋄i]G[H/\diamond_i] est G1[H/⋄i]G_1[H/\diamond_i] suivi de HH, et (i) et l'hypothèse de récurrence donnent ⟦G[H/⋄i]⟧(τˉ)=conc(⟦G1⟧(τˉ′),⟦H⟧(τˉ)),\begin{aligned} &\llbracket G[H/\diamond_i] \rrbracket(\bar\tau) \\ &\quad = \mathrm{conc}\big(\llbracket G_1 \rrbracket(\bar\tau'), \llbracket H \rrbracket(\bar\tau)\big), \end{aligned} qui est conc(⟦G1⟧(τˉ′),τi′)=⟦G⟧(τˉ′)\mathrm{conc}(\llbracket G_1 \rrbracket(\bar\tau'), \tau'_i) = \llbracket G \rrbracket(\bar\tau'). Cela vaut même si ⋄i\diamond_i figure dans HH, puisque HH est évalué en τˉ\bar\tau et non en τˉ′\bar\tau'.

Le terme ⟦(4)⟧=aj(0,4‾)\llbracket (4) \rrbracket = \mathrm{aj}(0, \underline 4) est clos, de valeur ⟨4⟩=9\langle 4 \rangle = 9, et ⊢𝖯𝖠num(0)=9‾\vdash_{\mathsf{PA}} \mathrm{num}(0) = \underline 9 par le point (iii) de Formation dans PA ; le point (iv) de Termes fonctionnels conclut. De même, ⟦(5)(⋄j)⟧(τˉ[num(ρ)]j)=conc(aj(0,5‾),num(ρ))\llbracket (5)(\diamond_j) \rrbracket(\bar\tau[\mathrm{num}(\rho)]_j) = \mathrm{conc}(\mathrm{aj}(0, \underline 5), \mathrm{num}(\rho)), et aj(0,5‾)=⟨5⟩‾\mathrm{aj}(0, \underline 5) = \underline{\langle 5 \rangle} par un calcul clos ; l'équation num(S x)=conc(⟨5⟩‾,num(x))\mathrm{num}(S\,x) = \mathrm{conc}(\underline{\langle 5 \rangle}, \mathrm{num}(x)) du même point (iii), où l'on substitue ρ\rho à xx (Termes fonctionnels, (ii) (b)), conclut.

(iii) Comme xix_i est un paramètre de ww, chaque lettre xix_i de ww est une occurrence libre, par le texte, et w[s/xi]w[s/x_i] s'obtient en remplaçant chacune de ces lettres par le mot ss. Lettre à lettre, Gxˉ(w[s/xi])G_{\bar x}(w[s/x_i]) est donc Gxˉ(w)[Gxˉ(s)/⋄i]G_{\bar x}(w)[G_{\bar x}(s)/\diamond_i], et (ii) donne l'égalité. Pour s=0s = 0, Gxˉ(0)=(4)G_{\bar x}(0) = (4) ; pour s=S xjs = S\,x_j, Gxˉ(S xj)=(5)(⋄j)G_{\bar x}(S\,x_j) = (5)(\diamond_j) ; la seconde partie de (ii) conclut.

(iv) Par récurrence sur la construction de tt, puis de φ\varphi, en métathéorie, sous les hypothèses Tm^(τi)\widehat{\mathrm{Tm}}(\tau_i), exactement comme au point (i) de Formules des instances, avec les égalités de gabarits du texte et (i) à la place du point (iii) de Substitution dépliée. Si tt est xix_i, ⌜t⌝xˉ(τˉ)=conc(0,τi)=τi\ulcorner t \urcorner_{\bar x}(\bar\tau) = \mathrm{conc}(0, \tau_i) = \tau_i, qui code un terme par hypothèse ; si tt est 00 ou une variable hors de xˉ\bar x, c'est un terme fonctionnel clos, et Tm^\widehat{\mathrm{Tm}} en est un calcul clos ; les cas SS, ++, ×\times et le cas atomique découlent des points (i) et (ii) de Formation dans PA. Les cas ¬φ\neg\varphi et → φ ψ{\to}\, \varphi\, \psi découlent du point (ii) du même nœud. Dans ∀z φ\forall z\, \varphi, la variable z=acz = a_c est quantifiée, donc hors de xˉ\bar x, les xix_i sont des paramètres de φ\varphi, et ⌜∀z φ⌝xˉ(τˉ)=conc(⟨3,c⟩‾,⌜φ⌝xˉ(τˉ))\ulcorner \forall z\, \varphi \urcorner_{\bar x}(\bar\tau) = \mathrm{conc}(\underline{\langle 3, c \rangle}, \ulcorner \varphi \urcorner_{\bar x}(\bar\tau)), par (i) et le calcul clos ⟦(3)(c)⟧=⟨3,c⟩‾\llbracket (3)(c) \rrbracket = \underline{\langle 3, c \rangle} ; le même point (ii) conclut, avec c⩾8c \geqslant 8. La dernière formule s'en déduit, puisque ⊢𝖯𝖠Tm^(num(yi))\vdash_{\mathsf{PA}} \widehat{\mathrm{Tm}}(\mathrm{num}(y_i)) (Formation dans PA, (iii)).

□
Remarque

Le gabarit Gxˉ(w)G_{\bar x}(w) ne demande de connaître ni les sous-formules ni les portées : il suffit de lire les lettres. C'est ce qui le distingue du gabarit Gk(w)G_k(w) de Substitution dépliée, défini par les occurrences libres, donc par la relation Lib\mathrm{Lib} ; les deux coïncident quand la variable n'est pas quantifiée. L'erreur la plus répandue serait d'oublier cette condition. Pour φ=→ = x0 0 ∀x0 = x0 x1\varphi = {\to}\, {=}\, x_0\, 0\, \forall x_0\, {=}\, x_0\, x_1, le gabarit lettre à lettre G(x0)(φ)=(2,0,⋄1,4,3,⋄1,0,⋄1,9)G_{(x_0)}(\varphi) = (2, 0, \diamond_1, 4, 3, \diamond_1, 0, \diamond_1, 9) marque aussi la lettre du bloc et l'occurrence liée, et le mot de code ⌜φ⌝(x0)(num(1))\ulcorner \varphi \urcorner_{(x_0)}(\mathrm{num}(1)) est → = S 0 0 ∀ S 0 = S 0 x1{\to}\, {=}\, S\, 0\, 0\, \forall\, S\, 0\, {=}\, S\, 0\, x_1, qui n'est pas une formule, puisque la lettre ∀\forall y est suivie de SS. C'est pourquoi le chapitre ne substitue qu'à des paramètres, et pourquoi le nœud Σ₁-complétude formalisée renommera d'abord les variables liées.

Remarque

Pour ψ=(x0=x1)\psi = (x_0 = x_1) et xˉ=(x0,x1)\bar x = (x_0, x_1), on a Gxˉ(ψ)=(0,⋄1,⋄2)G_{\bar x}(\psi) = (0, \diamond_1, \diamond_2) et ⌜ψ[a˙,b˙/xˉ]⌝=cc(⟨0⟩‾,num(a),num(b))\ulcorner \psi[\dot a, \dot b/\bar x] \urcorner = \mathrm{cc}(\underline{\langle 0 \rangle}, \mathrm{num}(a), \mathrm{num}(b)) ; pour a=b=0a = b = 0, c'est ⟨0,4,4⟩=218⋅9=2 359 296\langle 0, 4, 4 \rangle = 2^{18} \cdot 9 = 2\,359\,296, code de 0=00 = 0, puisque ⟨0,4⟩=18\langle 0, 4 \rangle = 18. Le point (ii) est l'outil de tous les calculs de codes du chapitre : il dit que remplir une place par le code du chiffre de S ρS\,\rho revient à y écrire la lettre SS suivie du chiffre de ρ\rho, et le point (iii) en tire que substituer S xjS\,x_j à xix_i dans le mot revient à changer la valeur de la place. Ces égalités de gabarits ont été vérifiées au niveau des mots, pour des centaines de formules tirées au hasard dont les paramètres ne sont pas quantifiés.

Ouvrir dans l'atlas interactif →