ATLAS Ouvrir dans l'atlas →

Proposition 4Arithmétisation de la syntaxe

Occurrences libres et énoncés

On lit sur les positions des lettres la définition de Formules, variables libres. Comme dans la lecture unique, le bloc ∀x\forall x compte pour un seul symbole. Dans une formule, chaque lettre ∀\forall est suivie de la variable de son bloc : les termes ne contiennent pas ∀\forall, et la seule règle qui introduit ∀\forall l'écrit suivi d'une variable.

Une occurrence d'une variable xx dans un mot ww est donc un rang jj où figure la lettre xx, sans que la lettre de rang j−1j - 1, s'il y en a une, soit ∀\forall. Une sous-formule de ww est un facteur de ww qui est une formule.

L'occurrence de rang jj est dans la portée d'un quantificateur ∀x\forall x s'il existe une sous-formule ∀x ψ\forall x\, \psi de ww, commençant au rang ii, telle que jj soit le rang d'une lettre de ψ\psi, c'est-à-dire i+2⩽j<l′i + 2 \leqslant j < l', où l′l' est le rang qui suit la dernière lettre de ψ\psi. Elle est liée si c'est le cas, libre sinon ; xx est une variable libre de ww si elle y a une occurrence libre.

C'est bien la définition de Formules, variables libres quand ww est une formule. Par récurrence sur la construction, chaque lettre ∀\forall d'une formule, au rang ii, commence une sous-formule ∀x ψ\forall x\, \psi issue de la règle du quantificateur, dont ψ\psi est la portée. Par le lemme des poids de la lecture unique, aucune formule n'est un préfixe propre d'une autre : ψ\psi est donc l'unique facteur commençant au rang i+2i + 2 qui soit une formule, et les facteurs considérés ci-dessus sont exactement les portées des quantificateurs.

Énoncé

Les relations suivantes sont primitives récursives :

(i) Oc(N,j)\mathrm{Oc}(N, j) : « jj est une occurrence de variable dans le mot de code NN » ;

(ii) Lib(N,j)\mathrm{Lib}(N, j) : « jj est une occurrence libre » ;

(iii) VL(N,k)\mathrm{VL}(N, k) : « aka_k est une variable libre du mot de code NN » ;

(iv) l'ensemble En\mathrm{En} des codes des énoncés.

Démonstration

Les définitions se traduisent mot pour mot, avec l=lg(N)l = \mathrm{lg}(N) : Oc(N,j)  ⟺  j<l∧(N)j⩾8∧(j=0∨(N)j−˙1≠3).\begin{aligned} \mathrm{Oc}(N, j) \iff{} &j < l \wedge (N)^j \geqslant 8 \\ &\wedge \big(j = 0 \vee (N)^{j \mathbin{\dot{-}} 1} \neq 3\big). \end{aligned}

L'occurrence jj est liée si et seulement si Li(N,j)\mathrm{Li}(N, j), où Li(N,j)  ⟺  ∃i<j ∃l′<l+1((N)i=3∧(N)i+1=(N)j∧i+2⩽j<l′∧Fm(sm(N,i+2,l′))).\begin{aligned} \mathrm{Li}(N, j) \iff{} &\exists i < j\ \exists l' < l + 1 \\ &\big((N)^i = 3 \\ &\wedge (N)^{i+1} = (N)^j \\ &\wedge i + 2 \leqslant j < l' \\ &\wedge \mathrm{Fm}(\mathrm{sm}(N, i + 2, l'))\big). \end{aligned} En effet, une sous-formule ∀x ψ\forall x\, \psi commençant au rang ii s'écrit avec (N)i=3(N)^i = 3, la variable xx au rang i+1i + 1, et ψ=sm(N,i+2,l′)\psi = \mathrm{sm}(N, i + 2, l') ; elle est contenue dans le mot, d'où les bornes i<ji < j et l′⩽ll' \leqslant l.

Puis Lib(N,j)  ⟺  Oc(N,j)∧¬Li(N,j)\mathrm{Lib}(N, j) \iff \mathrm{Oc}(N, j) \wedge \neg \mathrm{Li}(N, j), ensuite VL(N,k)  ⟺  ∃j<l (Lib(N,j)∧(N)j=k),\begin{aligned} \mathrm{VL}(N, k) \iff \exists j < l\ \big(&\mathrm{Lib}(N, j) \\ &\wedge (N)^j = k\big), \end{aligned} et enfin En(N)  ⟺  Fm(N)∧∀j<l ¬Lib(N,j)\mathrm{En}(N) \iff \mathrm{Fm}(N) \wedge \forall j < l\ \neg\mathrm{Lib}(N, j).

Toutes ces relations sont primitives récursives par Clôture, (i) et (iii), Codage des mots, (i), et Formules.

□
Remarque

Dans φ=→ = x0 0 ∀x0 = x0 x1\varphi = {\to}\, {=}\, x_0\, 0\, \forall x_0\, {=}\, x_0\, x_1, les occurrences de variables sont aux rangs 22, 77 et 88 ; le rang 55 est la variable du bloc ∀x0\forall x_0. Le rang 77 est lié, avec le témoin i=4i = 4 et l′=9l' = 9 ; le rang 22 est libre, faute de lettre ∀\forall avant lui ; le rang 88 est libre, car le seul quantificateur porte sur x0x_0. Les variables libres de φ\varphi sont x0x_0 et x1x_1, et x0x_0 a aussi une occurrence liée, comme dans la remarque de Formules, variables libres.

→ 0 = 1 x0 2 0 3 ∀ 4 x0 5 = 6 x0 7 x1 8 portée de ∀x0 i + 2 = 6 ⩽ j < l′ = 9 libre libre liée bloc
Les rangs des lettres de φ\varphi : la portée du bloc ∀x0\forall x_0 est le facteur des rangs 66 à 88, qui est une formule, et l'arc bleu relie le bloc à l'occurrence qu'il lie. Les occurrences libres, en rouge, sont celles qu'aucun témoin (i,l′)(i, l') ne couvre.
Remarque

L'erreur la plus répandue est de compter la lettre xx du bloc ∀x\forall x comme une occurrence. L'énoncé ∀x0 (x0=x0)\forall x_0\, (x_0 = x_0) aurait alors une occurrence libre de x0x_0, celle du bloc, qui n'est dans la portée d'aucun quantificateur, et ne serait plus un énoncé. C'est pourquoi la relation Oc\mathrm{Oc} écarte les rangs qui suivent une lettre ∀\forall.

Remarque

La relation Li\mathrm{Li} ne calcule pas la fin de la portée : elle demande seulement qu'il en existe une qui convienne, ce qu'une quantification bornée exprime. Le lemme des poids garantit qu'il y en a au plus une, et c'est lui qui identifie ce facteur à la portée de Formules, variables libres ; une fois cette identification faite, la relation Li\mathrm{Li} n'a plus besoin de l'unicité.

Ouvrir dans l'atlas interactif →