ATLAS Ouvrir dans l'atlas →

Proposition 4Suites codées et démonstrations dans PA

Concaténation des codes dans l'arithmétique de Peano

Les conventions sont celles de Longueur dans PA. La concaténation est prise avec la construction du point (iii) de Codages : conc(M,N)=C(M,N,lg(N))\mathrm{conc}(M, N) = C(M, N, \mathrm{lg}(N)), où CC est définie par récurrence primitive à partir de P12P^2_1 et de la fonction (M,N,t,u)↦aj(u,(N)t)(M, N, t, u) \mapsto \mathrm{aj}\big(u, (N)^t\big), composée de aj\mathrm{aj}, de (⋅)⋅(\cdot)^{\cdot} et de projections : C(M,N,0)=M,C(M,N,t+1)=aj(C(M,N,t),(N)t).\begin{aligned} C(M, N, 0) &= M, \\ C(M, N, t + 1) &= \mathrm{aj}\big(C(M, N, t), (N)^t\big). \end{aligned} On ajoute un à un les termes de la seconde suite à la fin de la première. Comme aux nœuds précédents, le point (iv) de Fonctions p.r. dans PA et le point (ii) (d) de Termes fonctionnels donnent ⊢𝖯𝖠C(M,N,0)=M\vdash_{\mathsf{PA}} C(M, N, 0) = M, ⊢𝖯𝖠C(M,N,S t)=aj(C(M,N,t),(N)t)\vdash_{\mathsf{PA}} C(M, N, S\,t) = \mathrm{aj}(C(M, N, t), (N)^t) et ⊢𝖯𝖠conc(M,N)=C(M,N,lg(N))\vdash_{\mathsf{PA}} \mathrm{conc}(M, N) = C(M, N, \mathrm{lg}(N)).

Énoncé

Pour tous termes fonctionnels MM, NN, vv, tt, jj, ss, aa et bb :

(i) Étapes. ⊢𝖯𝖠lg(C(M,N,t))=lg(M)+t\vdash_{\mathsf{PA}} \mathrm{lg}(C(M, N, t)) = \mathrm{lg}(M) + t, ⊢𝖯𝖠j<lg(M)→(C(M,N,t))j=(M)j,⊢𝖯𝖠s<t→(C(M,N,t))lg(M)+s=(N)s.\begin{aligned} &\vdash_{\mathsf{PA}} j < \mathrm{lg}(M) \\ &\qquad \to (C(M, N, t))^j = (M)^j, \\ &\vdash_{\mathsf{PA}} s < t \\ &\qquad \to (C(M, N, t))^{\mathrm{lg}(M) + s} = (N)^s. \end{aligned}

(ii) Concaténation. ⊢𝖯𝖠lg(conc(M,N))=lg(M)+lg(N)\vdash_{\mathsf{PA}} \mathrm{lg}(\mathrm{conc}(M, N)) = \mathrm{lg}(M) + \mathrm{lg}(N), ⊢𝖯𝖠j<lg(M)→(conc(M,N))j=(M)j,⊢𝖯𝖠s<lg(N)→(conc(M,N))lg(M)+s=(N)s.\begin{aligned} &\vdash_{\mathsf{PA}} j < \mathrm{lg}(M) \\ &\qquad \to (\mathrm{conc}(M, N))^j = (M)^j, \\ &\vdash_{\mathsf{PA}} s < \mathrm{lg}(N) \\ &\qquad \to (\mathrm{conc}(M, N))^{\mathrm{lg}(M) + s} = (N)^s. \end{aligned}

(iii) Indices. Pour une variable ss qui ne figure ni dans jj, ni dans aa, ni dans bb, ⊢𝖯𝖠j<a+b→(j<a∨∃s (s<b∧j=a+s)).\begin{aligned} \vdash_{\mathsf{PA}} {}&j < a + b \to \big(j < a \\ &\vee \exists s\, (s < b \wedge j = a + s)\big). \end{aligned}

(iv) Cas particuliers. ⊢𝖯𝖠conc(M,0)=M\vdash_{\mathsf{PA}} \mathrm{conc}(M, 0) = M, ⊢𝖯𝖠conc(0,N)=N\vdash_{\mathsf{PA}} \mathrm{conc}(0, N) = N et ⊢𝖯𝖠conc(M,aj(N,v))=aj(conc(M,N),v).\begin{aligned} \vdash_{\mathsf{PA}} {}&\mathrm{conc}(M, \mathrm{aj}(N, v)) \\ &= \mathrm{aj}(\mathrm{conc}(M, N), v). \end{aligned}

Démonstration

Il suffit de traiter des variables, et l'on raisonne par chaînes d'égalités entre termes fonctionnels.

(i) Longueur. Récurrence sur tt, avec les paramètres MM et NN : lg(C(M,N,0))=lg(M)=lg(M)+0\mathrm{lg}(C(M, N, 0)) = \mathrm{lg}(M) = \mathrm{lg}(M) + 0 par Q4\mathrm Q_4, et, par le point (ii) de Longueur dans PA et Q5\mathrm Q_5, lg(C(M,N,S t))=S lg(C(M,N,t))=S(lg(M)+t)=lg(M)+S t.\begin{aligned} \mathrm{lg}(C(M, N, S\,t)) &= S\,\mathrm{lg}(C(M, N, t)) \\ &= S(\mathrm{lg}(M) + t) \\ &= \mathrm{lg}(M) + S\,t. \end{aligned}

Premiers termes. Récurrence sur tt de la formule j<lg(M)→(C(M,N,t))j=(M)jj < \mathrm{lg}(M) \to (C(M, N, t))^j = (M)^j, avec les paramètres MM, NN, jj. Pour 00, c'est C(M,N,0)=MC(M, N, 0) = M. Pour le pas, sous j<lg(M)j < \mathrm{lg}(M), on a lg(M)⩽lg(M)+t=lg(C(M,N,t))\mathrm{lg}(M) \leqslant \mathrm{lg}(M) + t = \mathrm{lg}(C(M, N, t)), donc j<lg(C(M,N,t))j < \mathrm{lg}(C(M, N, t)), et le point (iii) de Longueur dans PA donne (C(M,N,S t))j=(C(M,N,t))j(C(M, N, S\,t))^j = (C(M, N, t))^j, qui vaut (M)j(M)^j par l'hypothèse de récurrence.

Termes ajoutés. Récurrence sur tt de la formule s<t→(C(M,N,t))lg(M)+s=(N)ss < t \to (C(M, N, t))^{\mathrm{lg}(M) + s} = (N)^s, avec les paramètres MM, NN, ss. Pour 00, s<0s < 0 est exclu (Ordre dans PA, (v)). Pour le pas, sous s<S ts < S\,t, c'est-à-dire s⩽ts \leqslant t, le point (v) du même nœud donne s<ts < t ou s=ts = t. Si s=ts = t, le rang lg(M)+t\mathrm{lg}(M) + t est lg(C(M,N,t))\mathrm{lg}(C(M, N, t)), et le point (iii) de Longueur dans PA donne (C(M,N,S t))lg(M)+t=(N)t(C(M, N, S\,t))^{\mathrm{lg}(M) + t} = (N)^t. Si s<ts < t, la compatibilité (Ordre dans PA, (vi)) donne lg(M)+s<lg(M)+t\mathrm{lg}(M) + s < \mathrm{lg}(M) + t, puisque S(lg(M)+s)=lg(M)+S sS(\mathrm{lg}(M) + s) = \mathrm{lg}(M) + S\,s, et le même point (iii) et l'hypothèse de récurrence donnent (C(M,N,S t))lg(M)+s=(C(M,N,t))lg(M)+s=(N)s(C(M, N, S\,t))^{\mathrm{lg}(M) + s} = (C(M, N, t))^{\mathrm{lg}(M) + s} = (N)^s.

(ii) C'est (i), où l'on substitue le terme fonctionnel lg(N)\mathrm{lg}(N) à tt, par le point (ii) (b) de Termes fonctionnels, avec conc(M,N)=C(M,N,lg(N))\mathrm{conc}(M, N) = C(M, N, \mathrm{lg}(N)).

(iii) Par l'ordre total (Ordre dans PA, (iv) et (v)), j<aj < a ou a⩽ja \leqslant j. Dans le second cas, l'élimination fournit ss tel que s+a=js + a = j, d'où j=a+sj = a + s par la commutativité ; sous l'hypothèse j<a+bj < a + b, on a S(a+s)⩽a+bS(a + s) \leqslant a + b, c'est-à-dire a+S s⩽a+ba + S\,s \leqslant a + b, et la compatibilité donne S s⩽bS\,s \leqslant b, c'est-à-dire s<bs < b. L'introduction de l'existentiel conclut.

(iv) On applique l'extensionnalité (Longueur dans PA, (iv)), avec le point (i) (a) de Modules de Gödel pour la clause ∀j\forall j. Pour conc(M,0)\mathrm{conc}(M, 0) : sa longueur est lg(M)+0=lg(M)\mathrm{lg}(M) + 0 = \mathrm{lg}(M), et ses termes de rang j<lg(M)j < \mathrm{lg}(M) sont ceux de MM, par (ii). Pour conc(0,N)\mathrm{conc}(0, N) : sa longueur est 0+lg(N)=lg(N)0 + \mathrm{lg}(N) = \mathrm{lg}(N), et, pour s<lg(N)s < \mathrm{lg}(N), son terme de rang 0+s=s0 + s = s est (N)s(N)^s, par (ii) et le point (i) de Lois de + et ×.

Pour la dernière égalité, notons L=conc(M,aj(N,v))L = \mathrm{conc}(M, \mathrm{aj}(N, v)) et L′=aj(conc(M,N),v)L' = \mathrm{aj}(\mathrm{conc}(M, N), v), écrites avec leurs valeurs, ainsi que m=lg(M)m = \mathrm{lg}(M) et n=lg(N)n = \mathrm{lg}(N). Par (ii) et le point (ii) de Longueur dans PA, lg(L)=m+S n=S(m+n)=lg(L′)\mathrm{lg}(L) = m + S\,n = S(m + n) = \mathrm{lg}(L'). Soit j<S(m+n)j < S(m + n) ; par (iii), j<mj < m, ou bien j=m+sj = m + s avec s<S ns < S\,n, c'est-à-dire s<ns < n ou s=ns = n. Si j<mj < m, on a j<m+nj < m + n, et (ii) et le point (iii) de Longueur dans PA donnent (L)j=(M)j=(conc(M,N))j=(L′)j(L)^j = (M)^j = (\mathrm{conc}(M, N))^j = (L')^j. Si j=m+sj = m + s avec s<ns < n, ils donnent de même (L)j=(aj(N,v))s=(N)s=(conc(M,N))m+s=(L′)j(L)^j = (\mathrm{aj}(N, v))^s = (N)^s = (\mathrm{conc}(M, N))^{m + s} = (L')^j. Si j=m+nj = m + n, ils donnent (L)j=(aj(N,v))n=v(L)^j = (\mathrm{aj}(N, v))^n = v, et, comme m+n=lg(conc(M,N))m + n = \mathrm{lg}(\mathrm{conc}(M, N)), (L′)j=v(L')^j = v. L'extensionnalité conclut.

□
Remarque

La fonction CC ajoute les termes de NN un à un, et le point (i) suit cette construction pas à pas, sans hypothèse sur tt : même au-delà de lg(N)\mathrm{lg}(N), où (N)t(N)^t n'a plus de sens combinatoire, la longueur augmente d'une unité à chaque étape et les termes déjà placés ne bougent plus. C'est ce qui permet de ne substituer lg(N)\mathrm{lg}(N) à tt qu'à la fin. L'erreur la plus répandue est de vouloir démontrer (ii) par une récurrence sur lg(N)\mathrm{lg}(N) : ce n'est pas une variable, et une récurrence sur un terme fonctionnel n'a pas de sens, alors que la récurrence sur la variable tt, suivie d'une substitution, est permise.

Remarque

Dans 𝒩\mathcal N, on a vérifié par un calcul que C(M,N,t)C(M, N, t) et conc(M,N)\mathrm{conc}(M, N), recalculés avec les constructions littérales de Codages, codent les suites attendues, pour tous les cas où les codes restent calculables : la concaténation de deux suites de deux termes peut déjà avoir un code de plusieurs millions de chiffres, et celle de (1,1)(1, 1) avec elle-même, de code ⟨1,1,1,1⟩=23⋅224⋅3\langle 1, 1, 1, 1 \rangle = 2^{3 \cdot 2^{24}} \cdot 3, en a environ quinze millions, alors que celle de (0,0)(0, 0) avec elle-même a pour code 1616. Les termes et la longueur ne dépendent que de la structure de la récurrence, ce que la preuve rend démontrable sans jamais calculer un code.

Ouvrir dans l'atlas interactif →