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