ATLAS Ouvrir dans l'atlas →

Proposition 1Calculabilité et incomplétude

Les théorèmes d'une théorie récursivement axiomatisée

Les mots du langage de l'arithmétique sont codés comme au nœud Codage des mots : l'alphabet est énuméré par a0==a_0 = {=}, a1=¬a_1 = \neg, a2=→a_2 = {\to}, a3=∀a_3 = \forall, a4=0a_4 = 0, a5=Sa_5 = S, a6=+a_6 = +, a7=×a_7 = \times, puis a8+i=xia_{8+i} = x_i, et le code ⌜w⌝\ulcorner w \urcorner d'un mot ak0⋯akm−1a_{k_0} \cdots a_{k_{m-1}} est l'entier ⟨k0,…,km−1⟩\langle k_0, \dots, k_{m-1} \rangle.

L'arithmétique de Peano 𝖯𝖠\mathsf{PA} est la théorie dont les axiomes sont, avec x=x0x = x_0 et y=x1y = x_1, ∀x ¬(S x=0),∀x ∀y (S x=S y→x=y),∀x (x+0=x),∀x ∀y (x+S y=S(x+y)),∀x (x×0=0),∀x ∀y (x×S y=x×y+x),\begin{aligned} &\forall x\, \neg(S\,x = 0), \\ &\forall x\, \forall y\, (S\,x = S\,y \to x = y), \\ &\forall x\, (x + 0 = x), \\ &\forall x\, \forall y\, \big(x + S\,y = S(x + y)\big), \\ &\forall x\, (x \times 0 = 0), \\ &\forall x\, \forall y\, \big(x \times S\,y = x \times y + x\big), \end{aligned} et, pour toute formule φ\varphi et toute variable xx, la clôture universelle de (φ[0/x]∧∀x (φ→φ[S x/x]))→∀x φ,\big(\varphi[0/x] \wedge \forall x\, (\varphi \to \varphi[S\,x/x])\big) \to \forall x\, \varphi, écrite en notation préfixée avec les seuls connecteurs ¬\neg et →\to. C'est bien une formule, puisque φ[0/x]\varphi[0/x] et φ[S x/x]\varphi[S\,x/x] en sont (Substitution, (iii)).

Comme au nœud Formules, variables libres, la clôture universelle d'une formule ψ\psi dont les variables libres sont xi1,…,xigx_{i_1}, \dots, x_{i_g}, avec i1<⋯<igi_1 < \cdots < i_g, est la formule ∀xi1⋯∀xig ψ\forall x_{i_1} \cdots \forall x_{i_g}\, \psi. C'est un énoncé : une occurrence libre de ximx_{i_m} dans ψ\psi se trouve dans la portée du bloc ∀xim\forall x_{i_m}, qui est la formule ∀xim+1⋯∀xig ψ\forall x_{i_{m+1}} \cdots \forall x_{i_g}\, \psi, et une occurrence liée dans ψ\psi le reste (Variables libres).

Énoncé

(i) Les ensembles des codes des formules, des énoncés, des axiomes logiques de Démonstrations formelles et des axiomes de 𝖯𝖠\mathsf{PA} sont primitifs récursifs, donc récursifs.

(ii) La relation « χ\chi se déduit de φ\varphi et ψ\psi par modus ponens » est primitive récursive sur les codes.

(iii) Soit TT une théorie sur cette signature dont l'ensemble des codes des axiomes est récursivement énumérable. L'ensemble des codes des énoncés σ\sigma tels que T⊢σT \vdash \sigma est récursivement énumérable. C'est le cas pour 𝖯𝖠\mathsf{PA}.

Démonstration

(i) Les formules, les énoncés et les axiomes logiques sont traités au chapitre Arithmétisation de la syntaxe : Formules, (ii), Variables libres, (iv), et Axiomes logiques. Une relation primitive récursive est récursive (Fonctions récursives, (i)).

Restent les axiomes de 𝖯𝖠\mathsf{PA}. Les six premiers sont des énoncés fixés, de codes c1,…,c6c_1, \dots, c_6 : l'ensemble de leurs codes a pour fonction caractéristique sg(χ=(N,c1)+⋯+χ=(N,c6))\mathrm{sg}\big(\chi_=(N, c_1) + \cdots + \chi_=(N, c_6)\big), primitive récursive.

Pour le schéma de récurrence, P∧QP \wedge Q abrège ¬(P→¬Q)\neg(P \to \neg Q) (Connecteurs), et la formule dont on prend la clôture s'écrit en notation préfixée → ¬ → φ[0/x] ¬ ∀x → φ φ[S x/x]∀x φ.\begin{aligned} &{\to}\, \neg\, {\to}\, \varphi[0/x]\ \neg\, \forall x\, {\to}\, \varphi\ \varphi[S\,x/x] \\ &\quad \forall x\, \varphi. \end{aligned} Pour x=akx = a_k et φ\varphi de code aa, son code est donc, avec les fonctions de Codage des mots et de Substitution, I(a,k)=cc(⟨2,1,2⟩,Sb(a,⟨4⟩,k),⟨1,3,k,2⟩,a,Sb(a,⟨5,k⟩,k),⟨3,k⟩,a),\begin{aligned} I(a, k) = \mathrm{cc}\big(&\langle 2, 1, 2 \rangle, \mathrm{Sb}(a, \langle 4 \rangle, k), \\ &\langle 1, 3, k, 2 \rangle, a, \\ &\mathrm{Sb}(a, \langle 5, k \rangle, k), \langle 3, k \rangle, a\big), \end{aligned} fonction primitive récursive de (a,k)(a, k), puisque ⟨4⟩\langle 4 \rangle et ⟨5,k⟩\langle 5, k \rangle sont les codes des termes 00 et S xS\,x ; c'est le code d'une formule par le point (iii) de Substitution.

Un entier MM code un axiome de récurrence si et seulement s'il existe a⩽Ma \leqslant M, k<Mk < M et g<lg(M)+1g < \mathrm{lg}(M) + 1 tels que Fm(a)\mathrm{Fm}(a), k⩾8k \geqslant 8, 2g⩽lg(M)2g \leqslant \mathrm{lg}(M), sm(M,2g,lg(M))=I(a,k)\mathrm{sm}(M, 2g, \mathrm{lg}(M)) = I(a, k), et que les gg blocs du début énumèrent, par indices croissants, les variables libres de la formule de code I(a,k)I(a, k). Les bornes viennent de ce que φ\varphi est un facteur du mot de code MM et aka_k une de ses lettres (Codage des mots, (ii) et (iii)).

La dernière condition s'écrit, avec J=I(a,k)J = I(a, k) et la relation VL\mathrm{VL} de Variables libres : pour tout m<gm < g, (M)2m=3(M)^{2m} = 3, VL(J,(M)2m+1)\mathrm{VL}(J, (M)^{2m+1}), et (M)2m+1<(M)2m+3(M)^{2m+1} < (M)^{2m+3} si m+1<gm + 1 < g ; et, pour tout j<lg(J)j < \mathrm{lg}(J) tel que Lib(J,j)\mathrm{Lib}(J, j), il existe m<gm < g tel que (M)2m+1=(J)j(M)^{2m+1} = (J)^j. Toutes ces relations sont primitives récursives, et la réunion de deux ensembles primitifs récursifs l'est aussi (Clôture, (i)).

(ii) C'est le point (i) de Démonstrations : en notation préfixée, ψ\psi est le mot →φ χ\to \varphi\, \chi, et la relation est ⌜ψ⌝=conc(conc(⟨2⟩,⌜φ⌝),⌜χ⌝)\ulcorner \psi \urcorner = \mathrm{conc}\big(\mathrm{conc}(\langle 2 \rangle, \ulcorner \varphi \urcorner), \ulcorner \chi \urcorner\big).

(iii) Soit RR une relation récursive telle que aa soit le code d'un axiome de TT si et seulement si ∃y R(a,y)\exists y\, R(a, y). Une démonstration formelle γ0,…,γl−1\gamma_0, \dots, \gamma_{l-1} se code par la suite ⟨⌜γ0⌝,…,⌜γl−1⌝⟩\langle \ulcorner \gamma_0 \urcorner, \dots, \ulcorner \gamma_{l-1} \urcorner \rangle, comme au nœud Démonstrations, où le cas d'un ensemble d'axiomes primitif récursif est traité ; il faut ici des témoins pour les axiomes de TT.

Considérons la relation D(p,w,c)D(p, w, c) : l'entier cc code un énoncé, lg(p)⩾1\mathrm{lg}(p) \geqslant 1 et (p)lg(p)−1=c(p)^{\mathrm{lg}(p) - 1} = c.

De plus, pour tout j<lg(p)j < \mathrm{lg}(p), l'une des trois conditions suivantes est remplie : (p)j(p)^j code un axiome logique ; R((p)j,(w)j)R\big((p)^j, (w)_j\big) ; il existe i,i′<ji, i' < j tels que (p)j(p)^j se déduise de (p)i(p)^i et (p)i′(p)^{i'} par modus ponens.

Elle est récursive, par (i), (ii) et les quantifications bornées (Fonctions récursives, (ii)).

Si T⊢σT \vdash \sigma, soit pp le code d'une démonstration de σ\sigma ; pour chaque jj tel que (p)j(p)^j code un axiome de TT, soit yjy_j le plus petit yy tel que R((p)j,y)R((p)^j, y), et yj=0y_j = 0 sinon. Alors D(p,w,⌜σ⌝)D(p, w, \ulcorner \sigma \urcorner) pour w=∏jpjyjw = \prod_{j} p_j^{y_j}. Réciproquement, D(p,w,c)D(p, w, c) dit que pp code une démonstration de l'énoncé de code cc. Ainsi T⊢σ  ⟺  ∃p ∃w D(p,w,⌜σ⌝),T \vdash \sigma \iff \exists p\ \exists w\ D(p, w, \ulcorner \sigma \urcorner), et l'on conclut par le point (iv) de Récursif, r.e.. Pour 𝖯𝖠\mathsf{PA}, l'ensemble des codes des axiomes est récursif par (i), donc récursivement énumérable.

□
Remarque

Le témoin yjy_j est le plus petit qui convienne : il n'y a rien à choisir, et la preuve n'emploie aucune forme de l'axiome du choix.

Remarque

L'ensemble des théorèmes est récursivement énumérable, mais il n'a aucune raison d'être récursif ; pour 𝖯𝖠\mathsf{PA}, il ne l'est pas, résultat plus fort qu'établit le point (iii) du théorème de Gödel-Rosser. Savoir si un énoncé est démontrable, c'est attendre qu'une démonstration apparaisse dans l'énumération, sans savoir s'il faut cesser d'attendre.

Ouvrir dans l'atlas interactif →