ATLAS Ouvrir dans l'atlas →

Proposition 7Arithmétisation de la syntaxe

Les instances de tautologies forment un ensemble primitif récursif

Pour des entiers ss et cc, le chiffre de rang cc de l'écriture de ss en base 22 est bit(s,c)=r(q(s,2c),2),\mathrm{bit}(s, c) = r\big(q(s, 2^c), 2\big), fonction primitive récursive par le point (v) de Clôture et parce que c↦2cc \mapsto 2^c l'est, comme l'exponentielle parmi les exemples de Primitives récursives. On note vsv_s la valuation des formules premières définie par vs(π)=bit(s,⌜π⌝)v_s(\pi) = \mathrm{bit}(s, \ulcorner \pi \urcorner), et vˉs\bar v_s son prolongement (Instances de tautologies).

Énoncé

(i) L'ensemble Prem\mathrm{Prem} des codes des formules premières est primitif récursif.

(ii) Il existe une fonction primitive récursive Val\mathrm{Val} telle que Val(s,⌜φ⌝)=vˉs(φ)\mathrm{Val}(s, \ulcorner \varphi \urcorner) = \bar v_s(\varphi) pour tout entier ss et toute formule φ\varphi.

(iii) L'ensemble Inst\mathrm{Inst} des codes des instances de tautologies est primitif récursif : Inst(N)  ⟺  Fm(N)∧∀s<2N+1Val(s,N)=1.\begin{aligned} \mathrm{Inst}(N) \iff{} &\mathrm{Fm}(N) \wedge \forall s < 2^{N+1} \\ &\mathrm{Val}(s, N) = 1. \end{aligned}

Démonstration

(i) Prem(N)  ⟺  At(N)∨(Fm(N)∧(N)0=3)\mathrm{Prem}(N) \iff \mathrm{At}(N) \vee \big(\mathrm{Fm}(N) \wedge (N)^0 = 3\big), par Formules.

(ii) Notons l=lg(N)l = \mathrm{lg}(N) et d=dec(N)d = \mathrm{dec}(N) (Formules, (iii)), et définissons G(s,N,h)G(s, N, h) par cas :

bit(s,N)\mathrm{bit}(s, N) si Prem(N)\mathrm{Prem}(N) ;

1−˙(h)sm(N,1,l)1 \mathbin{\dot{-}} (h)^{\mathrm{sm}(N, 1, l)} si Fm(N)\mathrm{Fm}(N) et (N)0=1(N)^0 = 1 ;

1−˙((h)sm(N,1,d)⋅(1−˙(h)sm(N,d,l)))1 \mathbin{\dot{-}} \big((h)^{\mathrm{sm}(N, 1, d)} \cdot (1 \mathbin{\dot{-}} (h)^{\mathrm{sm}(N, d, l)})\big) si Fm(N)\mathrm{Fm}(N) et (N)0=2(N)^0 = 2 ;

00 dans tous les autres cas.

Ces quatre relations partagent ℕ3\mathbb N^3, et GG est primitive récursive par la définition par cas (Clôture, (ii)). La récurrence de valeurs, avec le paramètre ss, fournit une fonction primitive récursive Val\mathrm{Val} telle que Val(s,N)=G(s,N,Val‾(s,N))\mathrm{Val}(s, N) = G(s, N, \overline{\mathrm{Val}}(s, N)).

Montrons Val(s,⌜φ⌝)=vˉs(φ)\mathrm{Val}(s, \ulcorner \varphi \urcorner) = \bar v_s(\varphi) par récurrence forte sur le code. Si φ\varphi est première, c'est la définition de vsv_s. Si φ=¬φ1\varphi = \neg\varphi_1, le facteur sm(N,1,l)\mathrm{sm}(N, 1, l) est ⌜φ1⌝<N\ulcorner \varphi_1 \urcorner < N, et la valeur est 1−vˉs(φ1)1 - \bar v_s(\varphi_1) par hypothèse de récurrence.

Si φ=→ φ1 φ2\varphi = {\to}\, \varphi_1\, \varphi_2, le point (iii) de Formules donne sm(N,1,d)=⌜φ1⌝\mathrm{sm}(N, 1, d) = \ulcorner \varphi_1 \urcorner et sm(N,d,l)=⌜φ2⌝\mathrm{sm}(N, d, l) = \ulcorner \varphi_2 \urcorner, codes plus petits que NN. La valeur 1−a(1−b)1 - a(1 - b), avec a=vˉs(φ1)a = \bar v_s(\varphi_1) et b=vˉs(φ2)b = \bar v_s(\varphi_2), vaut 00 si et seulement si a=1a = 1 et b=0b = 0 : c'est vˉs(φ)\bar v_s(\varphi).

(iii) La relation écrite est primitive récursive : la quantification est bornée par la fonction primitive récursive N↦2N+1N \mapsto 2^{N+1} (Clôture, (i) et (iii)). Montrons qu'elle définit les instances de tautologies.

Si φ\varphi en est une, vˉ(φ)=1\bar v(\varphi) = 1 pour toute valuation vv par le point (iii) de Instances de tautologies, en particulier pour chaque vsv_s, et (ii) conclut.

Réciproquement, soit φ\varphi une formule de code NN qui vérifie la condition, et vv une valuation quelconque des formules premières. Soit AA l'ensemble des entiers c⩽Nc \leqslant N qui codent une formule première π\pi telle que v(π)=1v(\pi) = 1, et s=∑c∈A2c⩽2N+1−1.s = \sum_{c \in A} 2^c \leqslant 2^{N+1} - 1.

Pour c⩽Nc \leqslant N, la somme des termes 2c′2^{c'}, c′∈Ac' \in A, c′<cc' < c, est au plus 2c−12^c - 1 ; par l'unicité de la division euclidienne, q(s,2c)q(s, 2^c) est la somme des 2c′−c2^{c' - c} pour c′∈Ac' \in A, c′⩾cc' \geqslant c, qui est impaire si et seulement si c∈Ac \in A. Ainsi vs(π)=v(π)v_s(\pi) = v(\pi) pour toute formule première π\pi de code au plus NN.

C'est le cas des formules premières qui sont des facteurs de φ\varphi, par le point (ii) du codage des mots. Par le point (ii) de Instances de tautologies, vˉ(φ)=vˉs(φ)=Val(s,N)=1\bar v(\varphi) = \bar v_s(\varphi) = \mathrm{Val}(s, N) = 1. Toute valuation donne donc la valeur 11 à φ\varphi, qui est une instance de tautologie par le point (iii) du même nœud.

□
Remarque

Le nombre 2N+12^{N+1} de valuations examinées est absurde : une formule qui a rr facteurs premiers distincts n'a besoin que des 2r2^r lignes de sa table de vérité, comme l'observe la remarque de Tautologies. Mais une borne primitive récursive suffit, et celle-ci évite de dénombrer les facteurs premiers. Pour x0=0→(∀x1 (x1=x1)→x0=0)x_0 = 0 \to (\forall x_1\, (x_1 = x_1) \to x_0 = 0), les seules valeurs qui comptent sont celles des deux formules premières = x0 0{=}\, x_0\, 0 et ∀x1 = x1 x1\forall x_1\, {=}\, x_1\, x_1 ; le facteur = x1 x1{=}\, x_1\, x_1, première lui aussi, n'intervient pas, puisqu'il est enfermé dans le bloc ∀x1\forall x_1.

Remarque

La décidabilité des instances de tautologies n'est pas celle de la validité au premier ordre : une formule première comme ∀x0 (x0=x0)\forall x_0\, (x_0 = x_0) est universellement valide, mais le calcul de Val\mathrm{Val} la traite comme une lettre, qui peut valoir 00. Ce qui est décidé ici est seulement la forme propositionnelle d'une formule, non sa vérité dans toutes les structures.

Ouvrir dans l'atlas interactif →