ATLAS Ouvrir dans l'atlas →

Définition 5Logique du premier ordre

Substitution et lemme de substitution

Énoncé

On note φ[t/x]\varphi[t/x] la formule obtenue en remplaçant chaque occurrence libre de xx dans φ\varphi par le terme tt. Le terme tt est substituable à xx dans φ\varphi si aucune occurrence libre de xx ne se trouve dans une sous-formule ∀y ψ\forall y\, \psi où yy est une variable de tt.

Lemme de substitution. Si tt est substituable à xx dans φ\varphi, alors pour toute structure ℳ\mathcal M et toute valuation ss, ℳ⊨φ[t/x] [s]  ⟺  ℳ⊨φ [s(x∣tℳ[s])],\begin{aligned} \mathcal M &\models \varphi[t/x]\,[s] \\ \iff \mathcal M &\models \varphi\,[s(x \mid t^{\mathcal M}[s])], \end{aligned} où s(x∣a)s(x \mid a) désigne la valuation qui coïncide avec ss sauf en xx, où elle vaut aa.

Démonstration

Montrons d'abord que, si l'on remplace par tt certaines occurrences de xx dans un terme, on obtient un terme, et dans une formule, une formule ; en particulier φ[t/x]\varphi[t/x] est une formule. On raisonne par récurrence sur la longueur, avec la lecture unique, en notant que remplacer des lettres d'un mot w1w2w_1 w_2 revient à remplacer celles de w1w_1, puis celles de w2w_2, et à concaténer.

Une variable devient tt ou reste elle-même, une constante reste elle-même. Dans f u1⋯unf\, u_1 \cdots u_n, les lettres remplacées sont dans les uiu_i, et le résultat est ff suivi de nn termes. De même, =u1 u2= u_1\, u_2 et R u1⋯unR\, u_1 \cdots u_n donnent des formules atomiques, et ¬φ\neg\varphi, →φ ψ\to \varphi\, \psi donnent ¬\neg ou →\to suivi de formules. Dans ∀y φ\forall y\, \varphi, la lettre yy qui suit ∀\forall marque le quantificateur et n'est jamais remplacée : le résultat est ∀y\forall y suivi d'une formule.

Venons au lemme. Posons s′=s(x∣tℳ[s])s' = s(x \mid t^{\mathcal M}[s]). Pour les termes, on montre par récurrence sur uu que la valeur de u[t/x]u[t/x] sous ss est celle de uu sous s′s'. Si u=xu = x, les deux valent tℳ[s]t^{\mathcal M}[s] ; si uu est une autre variable ou une constante, u[t/x]=uu[t/x] = u et s′s' coïncide avec ss sur uu. Si u=f u1⋯unu = f\, u_1 \cdots u_n, alors u[t/x]=f u1[t/x]⋯un[t/x]u[t/x] = f\, u_1[t/x] \cdots u_n[t/x], et l'on applique fℳf^{\mathcal M} aux valeurs, égales par hypothèse de récurrence.

Pour les formules, on raisonne par récurrence sur φ\varphi ; les cas atomiques découlent du cas des termes, et les connecteurs passent directement.

Pour φ=∀y ψ\varphi = \forall y\, \psi : si xx n'est pas libre dans φ\varphi, la substitution ne change rien et le lemme de coïncidence conclut.

Sinon y≠xy \neq x, et l'hypothèse de substituabilité impose que yy ne figure pas dans tt ; ainsi tt a la même valeur sous ss et sous s(y∣a)s(y \mid a) pour tout aa. Le terme tt est encore substituable à xx dans ψ\psi, et, xx et yy étant distincts, s(y∣a)(x∣b)=s(x∣b)(y∣a)s(y \mid a)(x \mid b) = s(x \mid b)(y \mid a) pour tous aa, bb. On applique alors l'hypothèse de récurrence à ψ\psi sous chaque valuation s(y∣a)s(y \mid a), et l'on conclut en quantifiant sur aa.

□
Remarque

Le premier point de la démonstration est repris plus loin, pour la signature de l'arithmétique et sur les codes des mots, au point (iii) du nœud Substitution de la calculabilité, où la substitution devient une fonction primitive récursive des codes.

Remarque

La condition de substituabilité n'est pas une formalité. Dans φ=∃y (y≠x)\varphi = \exists y\, (y \neq x), qui exprime « il existe un élément différent de xx », substituer yy à xx donne ∃y (y≠y)\exists y\, (y \neq y), qui est toujours faux : la variable yy a été capturée par le quantificateur.

∃ y ( y ≠ x ) libre [y/x] ∃ y ( y ≠ y ) capturée φ φ[y/x]
Les arcs relient chaque occurrence liée de yy à son quantificateur. Dans φ\varphi, l'occurrence de xx est libre ; après la substitution, le yy qui l'a remplacée tombe sous ∃y\exists y, et l'arc rouge montre cette capture, qui change le sens de la formule.
Ouvrir dans l'atlas interactif →