ATLAS Ouvrir dans l'atlas →

Proposition 3Arithmétisation de la syntaxe

Les formules forment un ensemble primitif récursif

On note At\mathrm{At} et Fm\mathrm{Fm} les ensembles des codes des formules atomiques et des formules du langage de l'arithmétique (Formules, variables libres). Ce langage n'a pas de symbole de relation : les formules atomiques sont les mots = t u{=}\, t\, u, où tt et uu sont des termes.

Énoncé

(i) Inversion. Un mot est une formule si et seulement s'il est atomique, ou de l'une des formes ¬φ\neg\varphi, → φ ψ{\to}\, \varphi\, \psi et ∀x φ\forall x\, \varphi, où φ\varphi et ψ\psi sont des formules et xx une variable.

(ii) Les ensembles At\mathrm{At} et Fm\mathrm{Fm} sont primitifs récursifs.

(iii) Découpage. La fonction dec(N)=μj<l (j⩾2∧Fm(sm(N,1,j))∧Fm(sm(N,j,l))),\begin{aligned} &\mathrm{dec}(N) = \mu j < l\ \big(j \geqslant 2 \\ &\quad \wedge \mathrm{Fm}(\mathrm{sm}(N, 1, j)) \\ &\quad \wedge \mathrm{Fm}(\mathrm{sm}(N, j, l))\big), \end{aligned} où l=lg(N)l = \mathrm{lg}(N), est primitive récursive. Si NN code une formule → φ ψ{\to}\, \varphi\, \psi, alors sm(N,1,dec(N))=⌜φ⌝\mathrm{sm}(N, 1, \mathrm{dec}(N)) = \ulcorner \varphi \urcorner et sm(N,dec(N),lg(N))=⌜ψ⌝\mathrm{sm}(N, \mathrm{dec}(N), \mathrm{lg}(N)) = \ulcorner \psi \urcorner.

Démonstration

(i) Comme pour les termes, soit EE l'ensemble des formules et E′E' celui des mots de l'une des formes annoncées, avec φ,ψ∈E\varphi, \psi \in E. On a E′⊂EE' \subset E, puisque EE contient les formules atomiques et qu'il est stable par les trois règles. Inversement, E′E' contient les formules atomiques, et il est stable par les trois règles puisque E′⊂EE' \subset E ; d'où E⊂E′E \subset E', par minimalité de EE.

(ii) La relation At(N)  ⟺  (N)0=0∧∃j<l (j⩾2∧Tm(sm(N,1,j))∧Tm(sm(N,j,l))),\begin{aligned} \mathrm{At}(N) \iff{} &(N)^0 = 0 \wedge \exists j < l\ \big(j \geqslant 2 \\ &\wedge \mathrm{Tm}(\mathrm{sm}(N, 1, j)) \\ &\wedge \mathrm{Tm}(\mathrm{sm}(N, j, l))\big), \end{aligned} où l=lg(N)l = \mathrm{lg}(N), traduit la définition, et elle est primitive récursive par Termes et Clôture.

Pour Fm\mathrm{Fm}, soit Q(N,h)Q(N, h) la disjonction de quatre conditions, où l=lg(N)l = \mathrm{lg}(N) :

At(N)\mathrm{At}(N) ;

(N)0=1(N)^0 = 1, l⩾2l \geqslant 2 et (h)sm(N,1,l)=1(h)^{\mathrm{sm}(N, 1, l)} = 1 ;

(N)0=2(N)^0 = 2, et il existe j<lj < l tel que j⩾2j \geqslant 2, (h)sm(N,1,j)=1(h)^{\mathrm{sm}(N, 1, j)} = 1 et (h)sm(N,j,l)=1(h)^{\mathrm{sm}(N, j, l)} = 1 ;

(N)0=3(N)^0 = 3, l⩾3l \geqslant 3, (N)1⩾8(N)^1 \geqslant 8 et (h)sm(N,2,l)=1(h)^{\mathrm{sm}(N, 2, l)} = 1.

Elle est primitive récursive, et la récurrence de valeurs fournit une relation primitive récursive RR telle que R(N)  ⟺  Q(N,χˉR(N))R(N) \iff Q(N, \bar\chi_R(N)). Les codes consultés sont ceux de facteurs qui omettent la première lettre, plus petits que NN ; la même récurrence forte que pour les termes, appuyée sur (i), montre que R=FmR = \mathrm{Fm}.

(iii) La fonction dec\mathrm{dec} est primitive récursive par la minimisation bornée (Clôture, (iv)). Si NN code → φ ψ{\to}\, \varphi\, \psi, l'entier j0=1+lg(⌜φ⌝)j_0 = 1 + \mathrm{lg}(\ulcorner \varphi \urcorner) vérifie la condition, et j0<lg(N)j_0 < \mathrm{lg}(N) puisque ψ\psi n'est pas vide.

Si un entier jj la vérifie, le mot de code NN s'écrit → φ′ ψ′{\to}\, \varphi'\, \psi', où φ′\varphi' et ψ′\psi' sont les formules de codes sm(N,1,j)\mathrm{sm}(N, 1, j) et sm(N,j,lg(N))\mathrm{sm}(N, j, \mathrm{lg}(N)). Le théorème de lecture unique donne φ′=φ\varphi' = \varphi, donc j=j0j = j_0. Ainsi dec(N)=j0\mathrm{dec}(N) = j_0, et les deux facteurs sont φ\varphi et ψ\psi.

□
Remarque

Le code N=⌜= x0 0⌝=154 618 822 656N = \ulcorner {=}\, x_0\, 0 \urcorner = 154\,618\,822\,656 est celui d'une formule atomique : lg(N)=3\mathrm{lg}(N) = 3, (N)0=0(N)^0 = 0, et pour j=2j = 2, les facteurs sm(N,1,2)=17\mathrm{sm}(N, 1, 2) = 17 et sm(N,2,3)=9\mathrm{sm}(N, 2, 3) = 9 codent les termes x0x_0 et 00. Aucune récurrence n'est nécessaire pour les formules atomiques, dont la reconnaissance s'appuie sur celle, déjà acquise, des termes.

→ 0 = 1 x0 2 0 3 ∀ 4 x0 5 = 6 x0 7 x1 8 234·9 17 9 234·19 17 19 j = 4 racine
La formule → = x0 0 ∀x0 = x0 x1{\to}\, {=}\, x_0\, 0\, \forall x_0\, {=}\, x_0\, x_1, c'est-à-dire x0=0→∀x0 (x0=x1)x_0 = 0 \to \forall x_0\, (x_0 = x_1) : chaque trait couvre les lettres d'un facteur qui est une formule, en noir, ou un terme, en bleu, et repose par un pointillé sur le facteur qui le contient. Chaque facteur a un code strictement plus petit que celui qui le contient, comme l'indiquent les codes calculables ; la reconnaissance de la racine, en rouge, ne consulte donc que des valeurs déjà acquises, et trouve le découpage j=4j = 4.
Remarque

L'erreur la plus répandue est de croire que la règle du quantificateur demande que xx figure dans φ\varphi. Elle ne le demande pas : ∀x1 (x0=0)\forall x_1\, (x_0 = 0) est une formule, et la condition du quatrième cas ne porte que sur la lettre qui suit ∀\forall, qui doit être une variable. Le mot ∀ 0 = 0 0\forall\ 0\ {=}\ 0\ 0, où la lettre qui suit ∀\forall est la constante 00, n'est pas une formule.

Ouvrir dans l'atlas interactif →