4 Calcul des prédicats

publicité
4
Calcul des prédicats
Dans leurs recherches sur la formalisation des mathématiques, les logiciens du
XXe siècle se sont intéressés au calcul des prédicats, peut-être le système la plus simple
extension du calcul propositionnel. C’est un langage très expressif qui au XXIe siècle
est beaucoup utilisé en informatique, grâce à deux nombreuses avancées sur l’automatisation de certains fragments ce le langage.
La définition du calcul des prédicats se fait en deux temps : la syntaxe, relativement
sans surprise, et la sémantique, qui fait intervenir la notion de modèle. Cette notion
de modèle rejoint par sa finalité celles vues en logique classique. Grâce aux modèles,
on peut établir qu’un énoncé n’est pas conséquence logique d’autres axiomes (par
exemple, l’axiome de choix n’est pas conséquence de la théorie des ensembles ZF), ce
qu’on illustrera sur une tentative d’axiomatisation de l’arithmétique élémentaire.
4.1
4.1.1
Syntaxe
Les termes
On se donne un ensemble F dont les éléments seront appelés symboles de fonction.
Chaque symbole f ∈ F est muni d’une arité a(f ) ∈ N qui fixe le nombre d’arguments.
On se donne de plus un ensemble infini X de symboles de variables, disjoint de F.
Définition 4.1. L’ensemble des termes sur l’alphabet F et les variables X , noté T (F, X )
est le plus petit ensemble tel que :
— X ⊆ T (F, X ) ;
— si f ∈ F, a(f ) = n et t1 , . . . , tn ∈ T (F, X ), alors f (t1 , . . . , tn ) ∈ T (F, X ).
Un terme peut être vu comme un arbre fini étiqueté par F et X .
Exemple 4.2. Si l’on suppose que F est composé des symboles +, s, zero d’arités
respectives 2, 1, 0, et x ∈ X , alors zero, s(zero),et +(s(zero), x) sont des termes de
T (F, X ) que l’on peut voir comme les arbres ci-dessous.
zero
s
zero
+
s
x
x
On utilise parfois l’écriture en notation infixée pour certains symboles usuels. Par
exemple, +(0, s(0)) s’écrira aussi 0 + s(0).
Dans les exemples, F est donné en listant ses éléments avec, entre parenthèses,
l’arité du symbole correspondant.
Exemple 4.3. Si F = {nil(0), cons(2), (2)} et x, y, z ∈ X , (cons(x, y), z) ∈ T (F, X ).
Exemple 4.4. Si F = {0(0), s(1), +(2), ×(2)} et x, y ∈ X , ×(s(x), y) ∈ T (F, X ).
On écrit aussi ×(s(x), y) en notation infixe : s(x) × y.
13
4.1.2
Formules atomiques
On se donne un ensemble P dont les éléments seront appelés symboles de prédicat.
Chacun de ces symboles est à nouveau muni d’une arité. On suppose P disjoint de F
et de X .
Les termes P (t1 , . . . , tn ) où t1 , . . . , tn ∈ T (F, X ) et P ∈ P est d’arité n sont
appelés formules atomiques.
4.1.3
Formules du premier ordre
Définition 4.5. L’ensemble CP1 (F, P) des formules du premier ordre sur les symboles de prédicat P, les symboles de fonction F et les variables X est le plus petit
ensemble tel que :
— ⊥, > ∈ CP1 (F, P) ;
— les formules atomiques sont dans CP1 (F, P) ;
— Si φ, ψ ∈ CP1 (F, P) et x ∈ X alors les formules suivantes sont dans CP1 (F, P) :
φ ∧ ψ, φ ∨ ψ, ¬φ, φ ⇒ ψ, ∀x.φ, ∃x.φ.
Remarquons que, lorsque tous les symboles de P sont d’arité 0, les formules sans
quantificateur de CP1 (F, P) sont aussi des formules de CP0 (calcul propositionnel).
Dans la suite, nous ne préciserons pas toujours X , qui est presque toujours évident
dans le contexte d’utilisation. Par défaut les symboles de X sont ceux qui commencent
par x, y, z.
Exemple 4.6. Si P = {= (2)} et en reprenant les symboles de fonction de l’exemple
4.3,
∀x, y. = ((cons(x, y), z), cons(x, (y, z)))
est une formule de CP1 (F, P). On écrit souvent u = v au lieu de = (u, v).
Exemple 4.7. La formule suivante n’est pas une formule du premier ordre :
∀P.(P (0) ∧ ∀x.P (x) → P (s(x))) → ∀x.P (x)
14
4.2
4.2.1
Sémantique
F-algèbres
Etant donné un alphabet F une F-algèbre A est constituée d’un domaine (ensemble) DA non vide et, pour chaque symbole de fonction f ∈ F d’arité n, d’une
n
fonction fA de DA
dans DA .
Exemple 4.8. Soit F = {0(0), s(1), +(2)}. Alors (N, succN , +N ) est une F-algèbre
et (Q+ , 1, ÷2, ÷) est aussi une F-algèbre. (Q+ est l’ ensemble des rationnels strictement positifs).
Exemple 4.9. T (F) et T (F, X ) sont des F-algèbres, avec fT (F ) (t1 , t2 ) = f (t1 , t2 )
et de même pour fT (F ,X ) .
Exemple 4.10. Soit F = {0(0), succ(1), +(2), ×(2)}. Soit Σ un alphabet fini et
a ∈ Σ une lettre. On définit NC la F-algèbre de domaine Σ∗ où 0NC = (le mot vide),
w1 +NC w2 est la concaténation de w1 et w2 , succNC (w) = a +NC w, et w1 ×NC w2 est
le mot obtenu en remplaçant chaque occurrence de a dans w1 par w2 (par exemple,
aba ×NC aa = aabaa).
Si A et B sont deux F-algèbres, un homomorphisme (ou simplement morphisme) h
de A dans B est une application de DA dans DB telle que, pour tout symbole f ∈ F,
pour tous éléments a1 , . . . , an ∈ DA ,
h(fA (a1 , . . . , an )) = fB (h(a1 ), . . . , h(an )).
Exemple 4.11. Soit F = {0(0), s(1), +(2)}. On considère la F-algèbre N et la Falgèbre Z2 , toutes deux équipées des opérations naturelles. L’application de N dans
Z2 qui a tout entier associe son reste modulo 2 est un homomorphisme de F-algèbres.
Théorème 4.12. (Birkhoff : propriété universelle de T (F, X ))
Soit A une F-algèbre. Soit i l’injection (canonique) de X dans T (F, X ). Pour toute
application h de X dans A, il existe un unique homomorphisme ĥ de T (F, X ) dans
A tel que
∀x ∈ X, ĥ ◦ i(x) = h(x)
Démonstration. La construction de ĥ est effectuée par récurrence structurelle sur les
termes (ou, si l’on préfère, par récurrence sur la profondeur des termes) de façon évidente :
ĥ(x)
ĥ(f (t1 , . . . , tn ))
= h(x)
= f (ĥ(t1 ), . . . , ĥ(tn ))
pour tout f ∈ F, a(f ) = n
On vérifie aisément que cette définition convient. On prouve enfin facilement, par
induction sur t, que h0 (t) = ĥ(t) pour tout autre homomorphisme h0 satisfaisant
h0 (i(x)) = h(x).
Définition 4.13 (Affectation). Si A est une F-algèbre, une A-affectation est une application σ de X dans A.
15
Si a1 , . . . , an ∈ A, et X = {x1 , . . . , xn }, on note {x1 7→ a1 , . . . , xn 7→ an }
l’affectation σ telle que σ(xi ) = ai pour tout i. Cette notation suppose que x1 , . . . , xn
sont des variables distinctes.
D’après le théorème 4.12, on peut confondre σ et le morphisme correspondant σ̂
de T (F, X ) dans A.
Supposons que A = T (F, X ), et que σ est une A-affectation. Alors σ̂ est un
endomorphisme de la F-algèbre T (F, X ). On appelle domaine de σ l’ensemble {x ∈
X | σ(x) 6= x} noté Dom(σ).
Si t1 , . . . , tn ∈ T (F, X ), on note {x1 7→ t1 , . . . , xn 7→ tn } la substitution σ telle
que σ(xi ) = ti pour tout i, et σ(y) = y pour tout y ∈ X \ {x1 , . . . , xn }.
Si t est un terme t ∈ T (F, {x1 , . . . , xn }) et si σ est l’affectation {x1 7→ a1 , . . . , xn 7→
an } dans la F-algèbre A, on écrira
JtKσ,A
ou tσ à la place de
σ̂(t)
.
Exemple 4.14. On a Jx + xKx7→1,N = 2 et Jx + xKx7→s(z),T (F ,X ) = s(z) + s(z).
Définition 4.15 (Substitution). Les endomorphismes σ de T (F, X ) de domaine fini
sont appelés substitutions. Les homomorphismes de T (F, X ) dans T (F ) de domaine
fini sont appelés substitutions closes.
Un renommage est un automorphisme de T (F, X ), i.e. une substitution bijective
dont l’inverse est aussi une substitution. Notons que si σ est un renommage, xσ est
nécessairement une variable
; si ce n’était pas le cas, on aurait xσ = f (t1 . . . , t2 ), et
donc x = f (t1 , . . . , tn ) σ −1 = f (t1 σ −1 , . . . , tn σ −1 ), ce qui est impossible (x 6≡ f
entraine que x et f (t1 σ −1 , . . . , tn σ −1 ) sont deux termes/arbres étiquettés distincts).
4.2.2 F, P-structures
Définition 4.16. Une F, P-structure S est une F-algèbre A = (DA , {fA | f ∈ F})
n
et, pour chaque symbole de prédicat P ∈ P d’arité n une relation PA ⊆ DA
.
On confondra parfois (abusivement) une structure et la F-algèbre sous-jacente.
Définition 4.17. Un morphisme h de la F, P-structure S dans la F, P-structure S 0
est un morphisme de la F-algèbre A sous-jacente à S dans la F-algèbre A0 sousjacente à S 0 tel que, pour tout symbole de prédicat P ∈ P (d’arité n), et pour tout
n
(a1 , . . . , an ) ∈ DA
:
(a1 , . . . , an ) ∈ PS
entraine
16
(h(a1 ), . . . , h(an )) ∈ PS 0 .
4.2.3
Variables libres et variables liées
Les quantificateurs lient les variables. On définit ainsi les variables libres (fv(φ))
d’une formule φ (resp. d’un terme t), par récurrence sur le terme t, puis la formule :
fv(x)
fv(f (t1 , . . . , tn ))
fv(P (t1 , . . . , tn ))
fv(⊥) = fv(>)
fv(φ ∧ ψ) = fv(φ ∨ ψ)
fv(φ → ψ)
fv(¬φ)
fv(∃x.φ) = fv(∀x.φ)
=
=
=
=
=
=
=
=
{x}
si x ∈ X
fv(t1 ) ∪ . . . ∪ fv(tn ) pour tout f ∈ F d’arité n
fv(t1 ) ∪ . . . ∪ fv(tn ) pour tout P ∈ P d’arité n
∅
fv(φ) ∪ fv(ψ)
fv(φ) ∪ fv(ψ)
fv(φ)
fv(φ) \ {x}
Quand fv(φ) = ∅, on dit que φ est une formule close.
Exemple 4.18. Si φ est la formule
P (x) ∧ ∃x.Q(f (x)) ∧ ∃x.∃z.Q(g(x, y, z))
alors fv(φ) = {x, y}.
4.2.4
Satisfaction, modèles d’une formule
Soit φ une formule, fv(φ) = {x1 , . . . , xn }, S une F, P-structure (d’algèbre sousjacente A) et σ une A-affectation σ : {x1 , . . . , xn } → A. On définit la relation de
satisfaction S, σ |= φ par récurrence sur φ :
— S, σ |= P (t1 , . . . , tn ) si et seulement si (Jt1 Kσ,A , . . . , Jtn Kσ,A ) ∈ PS ;
— S, σ |= φ ∗ ψ où ∗ est l’un des connecteurs logiques binaires est défini, comme
en calcul propositionnel, à partir des modèles de φ et des modèles de ψ, par
exemple S, σ |= φ ∨ ψ si et seulement si (S, σ |= φ ou S, σ |= ψ) ;
— S, σ |= ¬φ si et seulement si S, σ 6|= φ ;
— S, σ |= ∃x.φ si et seulement si il existe a ∈ DA tel que
S, σ ] {x 7→ a} |= φ ;
— S, σ |= ∀x.φ si et seulement si pour tout a ∈ DA on a
S, σ ] {x 7→ a} |= φ.
Ici σ ] {x 7→ a} désigne l’affectation σ 0 dont le domaine est Dom(σ 0 ) = Dom(σ) ∪
{x}, qui coïncide avec σ sur Dom(σ) \ {x} et telle que σ 0 (x) = a.
Si φ est une formule close, on écrit simplement S |= φ pour S, σ |= φ où σ est
l’affectation de domaine vide.
Une structure S est un modèle d’une formule close φ si S |= φ. Un modèle d’un
ensemble de formules closes est une structure qui satisfait toutes les formules de l’ensemble.
4.2.5
Conséquence et équivalence logiques
On étend au calcul des prédicats les notions de conséquence logique, d’équivalence
logique définies pour le calcul propositionnel :
17
Définition 4.19. Si E est un ensemble de formules sans variable libre et φ est une
formule sans variable libre, alors φ est une conséquence logique de E, ce que l’on note
E |= φ, si, pour toute structure S,
S |= E
entraine
S |= φ
Deux ensembles de formules sans variable libre E1 et E2 sont logiquement équivalents
si toute formule de E2 est conséquence logique de E1 et, réciproquement, toute formule
de E1 est conséquence logique de E2 .
4.2.6
Substitutions et renommages
On note ϕ[x0 /x] la formule ϕ dans laquelle toute occurrence libre de x est remplacée par x0 . Par exemple, si ϕ = P (x, y) ∧ ∃x.∀z.P (x, z), alors ϕ[x0 /x] est la formule
P (x0 , y) ∧ ∃x.∀z.P (x, z). Formellement, ϕ[x0 /x] est définie par induction sur ϕ :
P (u1 , . . . , un )[x0 /x] = P (u1 {x 7→ x0 }, . . . , un {x 7→ x0 })
(¬ϕ)[x0 /x] = ¬(ϕ[x0 /x])
(ϕ ∗ ψ)[x0 /x] = ϕ[x0 /x] ∗ ψ[x0 /x]
(Qy.ϕ)[x0 /x] = Qy.(ϕ[x0 /x])
(Qx.ϕ)[x0 /x] = Qx.ϕ
(∗ ∈ {∨, ∧, ⇒})
(y 6= x)
On note ≡α la plus petite congruence telle que Qx.ϕ ≡α Qx0 .(ϕ[x0 /x]) pour tout
Q ∈ {∀, ∃} et pour tous x, x0 , ϕ tels que x0 6∈ VL(ϕ). Intuitivement, deux formules
ϕ, ψ sont ≡α -équivalentes si on peut passer de l’une à l’autre en renommant des
variables liées. On notera que si ϕ ≡α ψ, alors ϕ et ψ sont logiquement équivalentes.
On note {x1 7→ t1 , . . . , xn 7→ tn } la substitution qui remplace x1 par t1 , x2
par t2 ,. . . , et xn par tn . C’est une fonction σ : X → T (F, X ), et on note dom(σ)
l’ensemble {x1 , . . . , xn }, de sorte que si y 6∈ dom(σ), σ(y) = y.
Par le théorème de Birkhoff, σ se prolonge en une fonction σ̂ : T (F, X ) →
T (F, X ). On note par convention tσ le terme σ̂(t), que l’on peut aussi définir par
induction sur t comme suit.
xi σ = ti yσ = y
f (u1 , . . . , u1 )σ = f (u1 σ, . . . , un σ)
On étend la notion de substitution aux formules : si σ = {x1 7→ t1 , . . . , xn 7→ tn }, la
formule ϕσ est définie par induction sur la formule ϕ (à ≡α -equivalence près).
P (u1 , . . . , un )σ ≡α
(¬ϕ)σ
≡α
(ϕ ∗ ψ)σ
≡α
(Qx.ϕ)σ
≡α
P (u1 σ, . . . , un σ)
¬(ϕσ)
ϕσ ∗ ψσ
Qx0 .(ϕ[x0 /x]σ)
(∗ ∈ {∨, ∧, ⇒})
Q ∈ {∀, ∃}, x0 6∈ dom(σ) ∪ vars(ϕ, t1 , . . . , tn )
Par exemple, si σ = {x 7→ s(y), y 7→ c},
P (x, y)σ ≡α P (s(y), c)
∃x.P (x, y) σ ≡α ∃x0 .P (x0 , c)
∃y.P (x, y) σ ≡α ∃y 0 .P (s(y), y 0 )
18
Lemme 4.20 (Lemme de substitution). Soit ϕ une (F, P)-formule, S une (F, P)structure, et {x 7→ t} une substitution de domaine x. Soit σ : VL(ϕ{x → t}) →
dom(S) une affectation des variables de VL(ϕ) ∪ vars(t) dans S. Alors
S, σ |= ϕ{x 7→ t}
S, σ ] {x 7→ JtKσ,S } |= ϕ
ssi
où JtKσ,S est l’image de t par le prolongement de σ à T (F, X ).
Démonstration. Par induction sur ϕ
— ϕ = P (u1 , . . . , un ). On note σ 0 = σ ] {x 7→ JtKσ,S }. On montre par induction
sur le terme u que Ju{x 7→ t}Kσ,S = JuKσ0 ,S . On en déduit
ssi
ssi
ssi
ssi
S, σ |= P (u1 , . . . , un ){x 7→ t}
S, σ |= P (u1 {x 7→ t}, . . . , un {x 7→ t})
Ju1 {x 7→ t}Kσ,S , . . . , Ju
n {x 7→ t}Kσ,S ∈ PS
Ju1 Kσ0 ,S , . . . , Jun Kσ0 ,S ∈ PS
S, σ 0 |= P (u1 , . . . , un )
— Les cas ϕ = ¬ϕ0 et ϕ = ϕ1 ∗ ϕ2 sont laissés en exercice.
— ϕ = Qy.ψ. Supposons ϕ = ∃y.ψ (l’autre cas est très similaire). Soit y 0 une
variable “fraiche”, autrement dit telle que y 0 6∈ vars(ψ, t) ∪ {x, y}. Alors en
particulier JtKσ]{y0 7→a},S = JtKσ,S , et
σ ] {y 0 7→ a} ] {x 7→ JtKσ]{y0 7→a},S } = σ ] {x 7→ JtKσ,S } ] {y 0 7→ a}.
On en déduit :
S, σ |= (∃y.ψ){x 7→ t}
ssi S, σ |= ∃y 0 .(ψ[y 0 /y]{x 7→ t})
ssi il existe a ∈ dom(S) tel que
S, σ ] {y 0 7→ a} |= ψ[y 0 /y]{x 7→ t}
ssi il existe a ∈ dom(S) tel que
S, σ ] {y 0 7→ a} ] {x 7→ JtKσ]{y0 7→a},S } |= ψ[y 0 /y]
(par hypothèse d’induction)
ssi il existe a ∈ dom(S) tel que
S, σ ] {x 7→ JtKσ,S } ] {y 0 7→ a} |= ψ[y 0 /y]
ssi S, σ ] {x 7→ JtKσ,S } |= ∃y 0 .(ψ[y 0 /y])
ssi S, σ ] {x 7→ JtKσ,S } |= ∃y.ψ
4.2.7
Exemple : arithmétique élémentaire et indépendance de l’axiome de
commutativité de l’addition
L’ensemble des formules données dans la figure 5 sera appellé axiomatique de
l’égalité. C’est un ensemble fini de formules si F et P sont finis. On note, comme
nous en avons l’habitude, u = v au lieu de = (u, v).
Toute structure S dans laquelle = est interprété par l’égalité sur DS est un modèle de Aeq . Réciproquement, si un ensemble de formules contient Aeq et admet un
modèle, alors il admet un modèle dans lequel = est interprété par l’égalité.
19
∀x.
∀x, y.
∀x, y, z.
x=x
x=y⇔y=x
(x = y ∧ y = z) ⇒ x = z
Pour tout n ∈ N et tout symbole f ∈ F d’arité n :
∀x1 , . . . , xn , y1 , . . . , yn . (
^
xi = yi ) ⇒ f (x1 , . . . , xn ) = f (y1 , . . . , yn )
1≤i≤n
Pour tout n ∈ N et tout symbole P ∈ P d’arité n :
∀x1 , . . . , xn , y1 , . . . , yn . (
^
xi = yi ) ⇒ P (x1 , . . . , xn ) ⇒ P (y1 , . . . , yn )
1≤i≤n
Figure 5 – Axiomes de l’égalité : Aeq
On considère maintenant F = {0(0), s(1), +(2), ×(2)} et P = {= (2)}. Comme
nous en avons l’habitude, nous notons u 6= v au lieu de ¬(u = v), u + v au lieu de
+(u, v), u × v au lieu de ×(u, v).
On appellera axiomatique de l’arithmétique élémentaire. l’ensemble des 7 formules
de la figure 6, auquel on ajoute l’axiomatique de l’égalité. Il s’agit de la plus simple
des tentatives pour axiomatiser les entiers naturels. 6 La structure construite sur les
entiers naturels, dans laquelle tous ces symboles ont leur interprétation usuelle, est un
modèle de l’arithmétique élémentaire. Cette structure satisfait l’axiome de commutativité de l’adddition COM défini comme ∀x, y.x + y = y + x. COM est indépendant de
Ael : il n’est ni conséquence logique Ael , ni incompatible avec Ael , i.e. Ael 6|= Axcom
et Ael 6|= ¬COM. Pour le montrer, il suffit d’exhiber un modèle de Ael qui satisfait
Ael mais pas COM. La F-algèbre NC (vue comme une F, P structure en interprétant = comme l’égalité) définie à l’exemple 4.10 conviendrait presque : elle manque
seulement de satisfaire la dernière formule ∀x∃y.x 6= 0 ⇒ x = s(y).
Voici une autre structure. Soit S la structure de domaine N ∪ {ω1 , ω2 } définie en
posant, pour tout i ∈ {1, 2}, n, m ∈ N, x ∈ N ∪ {ω1 , ω2 } :
zéro 0S = 0N
successeur sS (ωi ) = ωi , sS (n) = n + 1
somme ωi +S x = ωi , n + ωi = ωi , et n +S m = n +N m
produit 0 ×S x = 0, et si x 6= 0, x ×S ωi = ωi , et si n 6= 0, ωi ×S n = ωi , et
enfin n ×S m = n ×N m.
égalité =S est l’égalité
Alors S satisfait Ael mais pas COM.
6. sans principe de récurrence
20
∀x.
0+x=x
∀x, y.
s(x) + y = s(x + y)
∀x.
0×x=0
∀x, y. s(x) × y = y + (x × y)
∀x.
s(x) 6= 0
∀x, y.
s(x) = s(y) ⇒ x = y
∀x.∃y.
x 6= 0 ⇒ x = s(y)
Figure 6 – Arithmétique élémentaire : Ael
Une particularité de ce modèle est qu’il fait appel à des éléments “non-atteignables” :
les éléments ω1 et ω2 ne sont pas des interprétations de termes clos. On pourra revenir
sur ce point plus tard...
21
Téléchargement