ATLAS Ouvrir dans l'atlas →

Proposition 3Substitution et instances dans PA

Substitution d'un terme dans un mot fixé, dépliée dans l'arithmétique de Peano

Les conventions sont celles de Facteurs dans PA. Les relations Oc\mathrm{Oc}, Li\mathrm{Li}, Lib\mathrm{Lib} et la fonction Sb\mathrm{Sb} sont prises avec les constructions qu'écrivent les preuves de Variables libres et de Substitution. La fonction WW est définie par récurrence primitive sur jj, avec les paramètres NN, TT, kk, à partir de la fonction nulle Z∘P13Z \circ P^3_1 et de la fonction gg obtenue par la définition par cas de Clôture, (ii), à partir de g1(N,T,k,j,u)=conc(u,T)g_1(N, T, k, j, u) = \mathrm{conc}(u, T) et de g2(N,T,k,j,u)=aj(u,(N)j)g_2(N, T, k, j, u) = \mathrm{aj}(u, (N)^j), pour la relation R1(N,T,k,j,u)R_1(N, T, k, j, u), qui est la relation C(N,j,k)  ⟺  Lib(N,j)∧(N)j=kC(N, j, k) \iff \mathrm{Lib}(N, j) \wedge (N)^j = k où l'on a substitué des projections, et pour sa négation R2R_2 ; puis Sb(N,T,k)=W(N,T,k,lg(N))\mathrm{Sb}(N, T, k) = W(N, T, k, \mathrm{lg}(N)). Les fonctions caractéristiques de Oc\mathrm{Oc}, de Lib\mathrm{Lib}, de CC, de R1R_1 et de R2R_2 sont booléennes dans 𝖯𝖠\mathsf{PA}, par les points (ii) et (iii) de Relations p.r. dans PA : Oc\mathrm{Oc} est la conjonction de relations de base où l'on a substitué des fonctions et d'une disjonction, Lib\mathrm{Lib} la conjonction de Oc\mathrm{Oc} et d'une négation, CC la conjonction de Lib\mathrm{Lib} et d'une égalité, et R2R_2 une négation.

Un gabarit est une suite finie G=(g0,…,gm−1)G = (g_0, \dots, g_{m-1}) dont chaque terme est un entier ou le signe ⋄\diamond, qui marque une place à remplir. Pour un terme fonctionnel τ\tau, on définit le terme fonctionnel ⟦G⟧(τ)\llbracket G \rrbracket(\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(\tau) = \mathrm{aj}\big(\llbracket G \rrbracket(\tau), \underline c\big) ; si G′G' est GG suivi du signe ⋄\diamond, alors ⟦G′⟧(τ)=conc(⟦G⟧(τ),τ)\llbracket G' \rrbracket(\tau) = \mathrm{conc}\big(\llbracket G \rrbracket(\tau), \tau\big). Si ⋄\diamond ne figure pas dans GG, ⟦G⟧\llbracket G \rrbracket est un terme fonctionnel clos, de valeur ⟨g0,…,gm−1⟩\langle g_0, \dots, g_{m-1} \rangle, et ⊢𝖯𝖠⟦G⟧=⟨g0,…,gm−1⟩‾\vdash_{\mathsf{PA}} \llbracket G \rrbracket = \underline{\langle g_0, \dots, g_{m-1} \rangle} par le point (iv) de Termes fonctionnels. On note GHGH la suite GG suivie de la suite HH.

Pour un mot w=ac0⋯acm−1w = a_{c_0} \cdots a_{c_{m-1}}, de code nn, et une variable aka_k, le gabarit Gk(w)G_k(w) a pour terme de rang jj le signe ⋄\diamond si Lib(n,j)\mathrm{Lib}(n, j) et cj=kc_j = k, et l'entier cjc_j sinon : on marque les occurrences libres de aka_k. Si ww est une formule, ce sont les occurrences libres de Formules, variables libres, par le texte de Variables libres ; si ww est un terme, ce sont tous les rangs où figure la lettre aka_k, puisqu'un terme ne contient pas la lettre ∀\forall, de sorte qu'aucun rang n'est lié et que la lettre qui précède une variable n'est jamais ∀\forall.

Énoncé

Soit τ\tau un terme fonctionnel, x=akx = a_k une variable et z=acz = a_c une variable distincte de xx.

(i) Gabarits. Pour tous gabarits GG et HH, ⊢𝖯𝖠⟦GH⟧(τ)=conc(⟦G⟧(τ),⟦H⟧(τ))\vdash_{\mathsf{PA}} \llbracket GH \rrbracket(\tau) = \mathrm{conc}\big(\llbracket G \rrbracket(\tau), \llbracket H \rrbracket(\tau)\big). Si ⋄\diamond figure dans GG, alors ⊢𝖯𝖠τ⩽⟦G⟧(τ)\vdash_{\mathsf{PA}} \tau \leqslant \llbracket G \rrbracket(\tau).

(ii) Dépliement. Pour tout mot ww, ⊢𝖯𝖠Sb(⌜w⌝‾,τ,k‾)=⟦Gk(w)⟧(τ).\vdash_{\mathsf{PA}} \mathrm{Sb}(\underline{\ulcorner w \urcorner}, \tau, \underline k) = \llbracket G_k(w) \rrbracket(\tau). En particulier, si xx n'a pas d'occurrence libre dans ww, alors ⊢𝖯𝖠Sb(⌜w⌝‾,τ,k‾)=⌜w⌝‾\vdash_{\mathsf{PA}} \mathrm{Sb}(\underline{\ulcorner w \urcorner}, \tau, \underline k) = \underline{\ulcorner w \urcorner}.

(iii) Composition. Notons Sb⌜w⌝\mathrm{Sb}\ulcorner w \urcorner le terme Sb(⌜w⌝‾,τ,k‾)\mathrm{Sb}(\underline{\ulcorner w \urcorner}, \tau, \underline k). Pour toutes formules φ\varphi et ψ\psi et tous termes tt et uu, 𝖯𝖠\mathsf{PA} démontre Sb⌜¬φ⌝=conc(⟨1⟩‾,Sb⌜φ⌝),Sb⌜→ φ ψ⌝=cc(⟨2⟩‾,Sb⌜φ⌝,Sb⌜ψ⌝),Sb⌜∀z φ⌝=conc(⟨3,c⟩‾,Sb⌜φ⌝),Sb⌜∀x φ⌝=⌜∀x φ⌝‾,Sb⌜= t u⌝=cc(⟨0⟩‾,Sb⌜t⌝,Sb⌜u⌝),\begin{aligned} &\mathrm{Sb}\ulcorner \neg\varphi \urcorner = \mathrm{conc}\big(\underline{\langle 1 \rangle}, \mathrm{Sb}\ulcorner \varphi \urcorner\big), \\ &\mathrm{Sb}\ulcorner {\to}\, \varphi\, \psi \urcorner \\ &\quad = \mathrm{cc}\big(\underline{\langle 2 \rangle}, \mathrm{Sb}\ulcorner \varphi \urcorner, \mathrm{Sb}\ulcorner \psi \urcorner\big), \\ &\mathrm{Sb}\ulcorner \forall z\, \varphi \urcorner = \mathrm{conc}\big(\underline{\langle 3, c \rangle}, \mathrm{Sb}\ulcorner \varphi \urcorner\big), \\ &\mathrm{Sb}\ulcorner \forall x\, \varphi \urcorner = \underline{\ulcorner \forall x\, \varphi \urcorner}, \\ &\mathrm{Sb}\ulcorner {=}\, t\, u \urcorner \\ &\quad = \mathrm{cc}\big(\underline{\langle 0 \rangle}, \mathrm{Sb}\ulcorner t \urcorner, \mathrm{Sb}\ulcorner u \urcorner\big), \end{aligned} Sb⌜x⌝=τ\mathrm{Sb}\ulcorner x \urcorner = \tau, Sb⌜r⌝=⌜r⌝‾\mathrm{Sb}\ulcorner r \urcorner = \underline{\ulcorner r \urcorner} si rr est 00 ou une variable distincte de xx, Sb⌜S t⌝=conc(⟨5⟩‾,Sb⌜t⌝)\mathrm{Sb}\ulcorner S\, t \urcorner = \mathrm{conc}(\underline{\langle 5 \rangle}, \mathrm{Sb}\ulcorner t \urcorner), et Sb⌜+ t u⌝=cc(⟨6⟩‾,Sb⌜t⌝,Sb⌜u⌝)\mathrm{Sb}\ulcorner {+}\, t\, u \urcorner = \mathrm{cc}(\underline{\langle 6 \rangle}, \mathrm{Sb}\ulcorner t \urcorner, \mathrm{Sb}\ulcorner u \urcorner), de même pour ×\times avec ⟨7⟩‾\underline{\langle 7 \rangle}.

Démonstration

(i) Par récurrence sur la longueur de HH, en métathéorie. Si HH est vide, ⟦G⟧(τ)=conc(⟦G⟧(τ),0)\llbracket G \rrbracket(\tau) = \mathrm{conc}(\llbracket G \rrbracket(\tau), 0) par le point (iv) de Concaténation dans PA. Si HH est H′H' suivi de l'entier cc, le même point et l'hypothèse de récurrence donnent ⟦GH⟧(τ) =aj(conc(⟦G⟧(τ),⟦H′⟧(τ)),c‾) =conc(⟦G⟧(τ),aj(⟦H′⟧(τ),c‾)).\begin{aligned} &\llbracket GH \rrbracket(\tau) \\ &\ = \mathrm{aj}\big(\mathrm{conc}(\llbracket G \rrbracket(\tau), \llbracket H' \rrbracket(\tau)), \underline c\big) \\ &\ = \mathrm{conc}\big(\llbracket G \rrbracket(\tau), \mathrm{aj}(\llbracket H' \rrbracket(\tau), \underline c)\big). \end{aligned} Si HH est H′H' suivi de ⋄\diamond, l'associativité (Facteurs dans PA, (ii)) donne de même conc(conc(⟦G⟧(τ),⟦H′⟧(τ)),τ)=conc(⟦G⟧(τ),conc(⟦H′⟧(τ),τ))\mathrm{conc}(\mathrm{conc}(\llbracket G \rrbracket(\tau), \llbracket H' \rrbracket(\tau)), \tau) = \mathrm{conc}(\llbracket G \rrbracket(\tau), \mathrm{conc}(\llbracket H' \rrbracket(\tau), \tau)). Si ⋄\diamond figure dans GG, écrivons G=G1⋄G2G = G_1 \diamond G_2 ; ce qui précède donne ⟦G⟧(τ)=cc(⟦G1⟧(τ),τ,⟦G2⟧(τ))\llbracket G \rrbracket(\tau) = \mathrm{cc}(\llbracket G_1 \rrbracket(\tau), \tau, \llbracket G_2 \rrbracket(\tau)), qui est au moins τ\tau par le point (iv) de Facteurs dans PA.

(ii) Soit n=⌜w⌝n = \ulcorner w \urcorner et mm la longueur de ww, de sorte que ⊢𝖯𝖠lg(n‾)=m‾\vdash_{\mathsf{PA}} \mathrm{lg}(\underline n) = \underline m et ⊢𝖯𝖠(n‾)j‾=cj‾\vdash_{\mathsf{PA}} (\underline n)^{\underline j} = \underline{c_j} pour j<mj < m, par le point (iv) de Termes fonctionnels. Pour j⩽mj \leqslant m, notons G<jG_{<j} la suite des jj premiers termes de Gk(w)G_k(w), et montrons, par récurrence sur jj en métathéorie, que ⊢𝖯𝖠W(n‾,T,k‾,j‾)=⟦G<j⟧(T)\vdash_{\mathsf{PA}} W(\underline n, T, \underline k, \underline j) = \llbracket G_{<j} \rrbracket(T) pour une variable TT.

Par le point (iv) de Fonctions p.r. dans PA, comme au nœud Récurrence de valeurs dans PA, W(N,T,k,0)=w′W(N, T, k, 0) = w' équivaut à w′=0w' = 0, et, sous l'hypothèse W(N,T,k,j)=uW(N, T, k, j) = u, W(N,T,k,S j)=w′W(N, T, k, S\,j) = w' équivaut à g(N,T,k,j,u)=w′g(N, T, k, j, u) = w'. Pour j=0j = 0, ⟦G<0⟧(T)=0\llbracket G_{<0} \rrbracket(T) = 0. Pour j<mj < m, la relation C(n,j,k)C(n, j, k) est vraie ou fausse dans 𝒩\mathcal N, et le point (iv) de Termes fonctionnels donne ⊢𝖯𝖠C^(n‾,j‾,k‾)\vdash_{\mathsf{PA}} \hat C(\underline n, \underline j, \underline k) ou ⊢𝖯𝖠¬C^(n‾,j‾,k‾)\vdash_{\mathsf{PA}} \neg\hat C(\underline n, \underline j, \underline k). Par le point (ii) (d) du même nœud, R^1(n‾,T,k‾,j‾,u)\hat R_1(\underline n, T, \underline k, \underline j, u) équivaut à C^(n‾,j‾,k‾)\hat C(\underline n, \underline j, \underline k), et R^2\hat R_2 à sa négation, par le point (iii) de Relations p.r. dans PA. Dans le premier cas, le point (v) du même nœud, permis par la booléennité, donne g(n‾,T,k‾,j‾,u)=conc(u,T)g(\underline n, T, \underline k, \underline j, u) = \mathrm{conc}(u, T) ; écrit avec la valeur uu de W(n‾,T,k‾,j‾)W(\underline n, T, \underline k, \underline j), qui est ⟦G<j⟧(T)\llbracket G_{<j} \rrbracket(T) par l'hypothèse de récurrence, cela donne W(n‾,T,k‾,j+1‾)=conc(⟦G<j⟧(T),T)=⟦G<j+1⟧(T)W(\underline n, T, \underline k, \underline{j + 1}) = \mathrm{conc}(\llbracket G_{<j} \rrbracket(T), T) = \llbracket G_{<j+1} \rrbracket(T), puisque le terme de rang jj du gabarit est ⋄\diamond. Dans le second cas, on obtient de même aj(⟦G<j⟧(T),(n‾)j‾)\mathrm{aj}(\llbracket G_{<j} \rrbracket(T), (\underline n)^{\underline j}), c'est-à-dire aj(⟦G<j⟧(T),cj‾)=⟦G<j+1⟧(T)\mathrm{aj}(\llbracket G_{<j} \rrbracket(T), \underline{c_j}) = \llbracket G_{<j+1} \rrbracket(T).

Par le point (ii) (d) de Termes fonctionnels, Sb(n‾,T,k‾)=W(n‾,T,k‾,lg(n‾))\mathrm{Sb}(\underline n, T, \underline k) = W(\underline n, T, \underline k, \mathrm{lg}(\underline n)), et le remplacement, avec lg(n‾)=m‾\mathrm{lg}(\underline n) = \underline m, donne l'égalité pour TT ; le point (ii) (b) du même nœud la donne pour τ\tau, la variable TT n'étant libre dans aucune hypothèse. Si xx n'a pas d'occurrence libre dans ww, le gabarit ne contient pas ⋄\diamond, et ⟦Gk(w)⟧=n‾\llbracket G_k(w) \rrbracket = \underline n.

(iii) Par la définition des occurrences libres (Formules, variables libres), une occurrence de xx dans φ\varphi est libre dans ¬φ\neg\varphi ou dans → φ ψ{\to}\, \varphi\, \psi si et seulement si elle l'est dans φ\varphi, et de même pour ψ\psi : par le texte de Variables libres, les blocs ∀\forall et leurs portées sont ceux de la construction, c'est-à-dire, pour ces deux formules, ceux de φ\varphi et de ψ\psi. Dans ∀z φ\forall z\, \varphi, il s'y ajoute le bloc ∀z\forall z, de portée φ\varphi, qui ne lie pas xx ; dans ∀x φ\forall x\, \varphi, ce bloc lie toutes les occurrences de xx, et la lettre de rang 11 n'est pas une occurrence. Dans un terme ou dans = t u{=}\, t\, u, il n'y a pas de bloc. Ainsi, en notant (c)(c) le gabarit réduit à l'entier cc, Gk(¬φ)=(1) Gk(φ),Gk(→ φ ψ)=(2) Gk(φ) Gk(ψ),Gk(∀z φ)=(3)(c) Gk(φ),Gk(= t u)=(0) Gk(t) Gk(u),\begin{aligned} G_k(\neg\varphi) &= (1)\, G_k(\varphi), \\ G_k({\to}\, \varphi\, \psi) &= (2)\, G_k(\varphi)\, G_k(\psi), \\ G_k(\forall z\, \varphi) &= (3)(c)\, G_k(\varphi), \\ G_k({=}\, t\, u) &= (0)\, G_k(t)\, G_k(u), \end{aligned} de même pour S tS\, t, + t u{+}\, t\, u et × t u{\times}\, t\, u, tandis que Gk(x)=(⋄)G_k(x) = (\diamond) et que Gk(∀x φ)G_k(\forall x\, \varphi) et Gk(r)G_k(r) ne contiennent pas ⋄\diamond. Le point (i), les égalités ⟦(e)⟧=aj(0,e‾)=⟨e⟩‾\llbracket (e) \rrbracket = \mathrm{aj}(0, \underline e) = \underline{\langle e \rangle} et ⟦(3)(c)⟧=⟨3,c⟩‾\llbracket (3)(c) \rrbracket = \underline{\langle 3, c \rangle}, calculs clos, et ⟦(⋄)⟧(τ)=conc(0,τ)=τ\llbracket (\diamond) \rrbracket(\tau) = \mathrm{conc}(0, \tau) = \tau (Concaténation dans PA, (iv)) donnent, avec (ii) appliqué à chacun des mots, les égalités annoncées.

□
Remarque

Pour φ=→ = x0 0 ∀x0 = x0 x1\varphi = {\to}\, {=}\, x_0\, 0\, \forall x_0\, {=}\, x_0\, x_1, formule de la remarque de Substitution, on trouve G8(φ)=(2,0,⋄,4,3,8,0,8,9)G_8(\varphi) = (2, 0, \diamond, 4, 3, 8, 0, 8, 9) et G9(φ)=(2,0,8,4,3,8,0,8,⋄)G_9(\varphi) = (2, 0, 8, 4, 3, 8, 0, 8, \diamond) : seule l'occurrence libre de x0x_0, au rang 22, est marquée, et les points (i) et (ii) donnent ⊢𝖯𝖠Sb(⌜φ⌝‾,τ,8‾)=cc(⟨2,0⟩‾,τ,⟨4,3,8,0,8,9⟩‾)\vdash_{\mathsf{PA}} \mathrm{Sb}(\underline{\ulcorner \varphi \urcorner}, \tau, \underline 8) = \mathrm{cc}(\underline{\langle 2, 0 \rangle}, \tau, \underline{\langle 4, 3, 8, 0, 8, 9 \rangle}). Ces gabarits, et la composition (iii), ont été vérifiés par un calcul sur quelques centaines de formules tirées au hasard, en appliquant mot pour mot les définitions de Variables libres et de Substitution.

Remarque

Le dépliement exige que le mot ww soit fixé : chaque pas du balayage consulte Lib\mathrm{Lib} en un rang clos d'un code clos, ce que tranche un calcul clos. L'erreur la plus répandue est de l'appliquer à un code qui dépend d'une variable, comme celui d'une formule où l'on a déjà substitué un chiffre variable. Pour ψ== x0 x1\psi = {=}\, x_0\, x_1, l'occurrence de x1x_1 dans ψ[a‾/x0]\psi[\underline a/x_0] est au rang a+2a + 2, qui dépend de aa. L'obstacle est ce rang variable : le balayage ne compte plus un nombre fixé de pas, et l'on ne peut plus trancher chaque cas par un calcul clos. Pour substituer encore à x1x_1, il faut un autre argument, par exemple la lecture unique démontrée dans 𝖯𝖠\mathsf{PA}, ou une restriction aux paramètres qui ne sont quantifiés nulle part, pour laquelle Lib\mathrm{Lib} se réduit à Oc\mathrm{Oc} et la substitution agit lettre à lettre. Faute de cet argument, le nœud Instanciation formalisée se limite à un seul paramètre ; le chapitre suivant prend la seconde voie, au nœud Substitution lettre à lettre.

Ouvrir dans l'atlas interactif →