Bases de la logique des prédicats du premier ordre

publicité
Université Montpellier II – L3
2012
Logique 2
Bases de la logique des prédicats du premier ordre
Ce document est à compléter avec les exemples et exercices traités en cours et TD.
Introduction : prédicats, variables et constantes, quantificateurs
En logique des propositions, les expressions (« formules », « phrases ») sont construites à partir de
symboles propositionnels pouvant prendre les valeurs vrai ou faux. Ces énoncés élémentaires sont
non structurés. Parfois, on souhaiterait décomposer ces propositions élémentaires en faisant une
opération qui ressemble à une paramétrisation. Par exemple, au lieu d'avoir un symbole
propositionnel pour représenter "PierreEstAmiDePaul", on peut considérer que « ami » est une
relation qui porte sur deux arguments (c’est donc une relation d’arité 2) : dans le cas présent sur
deux entités identifiées « Pierre » et « Paul », et plus généralement sur deux arguments quelconques
x et y, ce que l’on note ami(x,y). Dans un tel énoncé, « ami » s'appelle un prédicat et x et y sont des
variables. Dans l’énoncé ami(Pierre, Paul), Pierre et Paul désignent des entités précises, ce sont
des constantes. Lorsqu'on interprétera de tels énoncés, les constantes et les variables auront pour
valeur des éléments d'un certain ensemble (appelé le « domaine » de l’interprétation). Dans une
interprétation donnée, ami(x, y) et ami(Pierre, Paul) pourront prendre les valeurs vrai ou faux
suivant les valeurs prises par x, y, Pierre et Paul.
La logique du premier ordre introduit deux quantificateurs qui portent sur des variables :
∀, le quantificateur universel (« pour tout »)
∃, le quantificateur existentiel (« il existe »)
Considérons par exemple l'énoncé suivant :
(1) tout chat est un animal
(2) Félix est un chat
donc Félix est un animal.
On pourra le formaliser en logique du premier ordre de la manière suivante :
(1) ∀x (chat(x) → animal(x)) (tout x qui est un chat est un animal)
(2) chat(Félix),
De (1) et (2), on peut déduire : animal(Félix)
Félix est une constante, x une variable, chat(.) et animal(.) sont des prédicats unaires.
Pour désigner des entités (ou « objets »), on dispose des constantes (« entités connues ») et des
variables (« entités inconnues »). Il existe aussi des symboles fonctionnels, qui permettent de
« calculer » des individus, mais on ne les considérera pas dans ce chapitre (notez quand même que
les constantes peuvent être vues comme des symboles de fonctions 0-aires).
Logique 2 (notes de cours).
1
1. Syntaxe
Définition (langage du premier ordre)
Un langage du premier ordre L = ({a1, a2, ..., ak}, {p1, p2, ..., pn}) est formé :
- d'un ensemble de constantes : {a1, a2, ..., ak}
- et d'un ensemble de symboles de relation, ou prédicats : {p1, p2, ..., pn}.
A chaque prédicat pi est associé un entier ≥ 0, son arité, qui fixe son nombre d'arguments.
Remarque. Du point de vue des langages formels, les formules sont des mots construits sur
l'alphabet formé de L, d'un ensemble de variables et des autres symboles que sont les
quantificateurs (∀,∃), les connecteurs (¬, ∧,∨, …) et les parenthèses. Donc L est une partie de
l'alphabet ; toutefois l'utilisation de l'expression « langage » du premier ordre est traditionnelle en
logique.
Un terme permet de désigner une entité (un objet) :
Définition (terme)
Un terme est une variable ou une constante (et plus tard ce pourra aussi être une fonction).
Définition (formule bien formée – fbf)
Les formules bien formées, fbf, construites sur le langage du premier ordre L peuvent être définies
inductivement de la manière suivante :
(base) la base est constituée par les formules atomiques (ou atomes) : p(t1, ..., tn) où p est un
prédicat n-aire et t1, ..., tn sont des termes ; parfois, on ajoute l’atome ⊥ qui symbolise
« l’absurde ».
(règle de construction) si A et B sont des fbf et si x est une variable alors les expressions suivantes
sont des fbf :
¬A, (A ∧ B),
[ (A ∨ B), (A → B), (A ↔ B) ]
∀xA
[ ∃xA ]
Remarque : Les formules entre [] ci-dessus peuvent être réécrites de façon équivalente à partir de
¬A, (A ∧ B) et ∀xA. En particulier ∃xA se réécrit ¬∀x¬A.
Remarque : par la suite, on s'autorisera à ne mettre que les parenthèses utiles [comme par exemple
dans ∃x(A(x) ∧ B(x) ∧ C(x)), (p→q)→r ou p→(q→r)]. La définition d'une fbf entraîne que les
quantificateurs ont priorité sur les connecteurs binaires.
Définition (arborescence syntaxique d'une fbf)
L'arborescence syntaxique d'une fbf f (notation : ARBO(f)) se définit inductivement de la façon
suivante :
(base) si f est un atome, ARBO(f) est une arborescence réduite à un sommet étiqueté par f
(règles)
si f = ¬A, ARBO(f) est une arborescence dont la racine est étiquetée par ¬ et a un seul fils qui est la
racine de ARBO(A)
si f = QxA, où Q est un quantificateur, ARBO(f) est une arborescence dont la racine est étiquetée
par Qx et a un seul fils qui est la racine de ARBO(A)
si f = (A op B), où op est un opérateur binaire, ARBO(f) est une arborescence dont la racine est
étiquetée par op et qui a deux fils : le fils gauche est la racine de ARBO(A) et le fils droit est la
racine de ARBO(B).
Logique 2 (notes de cours). ML Mugnier. Bases de la logique du premier ordre
2
Exemple : arborescence de la formule ∀x(p(x)→∃y r(x,y))
∀x
à
p(x)
∃y
r(x,y)
Remarque : par abus de langage, on parlera souvent d'arbre syntaxique (même si d'un point de vue
graphe, il s'agit bien d'une arborescence).
On peut définir diverses notions à partir de cette définition : profondeur d'une fbf, ensemble des
sous-fbf d'une fbf, etc.
Exemple (profondeur d’une fbf) :
Soit f une fbf.
(base) Si f est un atome, profondeur(f) = 0
(règles)
Si f = ¬A ou f = ∃x A ou f = ∀x A, profondeur(f) = 1 + profondeur(A)
Si f = (A op B) où op est l'un des connecteurs binaires,
profondeur(f) = 1 + max(profondeur(A), profondeur(B)).
Dans la fbf ∀xA, [ou ∃xA], x est la variable quantifiée, et A est la portée de la quantification ∀x
[∃x]. Une occurrence de la variable x est liée si elle est dans la portée d'une quantification portant
sur x. Sinon, cette occurrence est libre. Une variable est libre si elle a au moins une occurrence
libre. Elle est liée si elle a au moins une occurrence liée. Dans une fbf, une même variable peut donc
être à la fois libre et liée. Toutefois, on peut toujours renommer les variables d'une formule (en
gardant une formule équivalente), de façon à ce qu'une variable ne soit pas à la fois libre et liée.
Définition (formule fermée)
Une fbf est dite fermée (ou close) lorsqu'elle n'a aucune variable libre (et pas lorsque toutes les
variables sont liées, puisqu’une variable peut être libre et liée ...).
Les formules fermées sont celles que l'on utilise pour exprimer des connaissances, lorsque l’on
modélise un problème ; il est toutefois nécessaire de considérer des formules quelconques lorsque
l’on effectue des preuves, en particulier lorsqu’on doit décomposer une formule en sous-formules :
même si la formule de départ est fermée (par exemple ∀x p(x)), les sous-formules (par exemple
p(x)) ne le seront plus forcément.
2. Sémantique
La valeur de vérité d’une fbf (vrai ou faux) dépend de l’interprétation du langage L sur lequel elle
est construite. On peut voir une interprétation de L comme :
(1) un monde constitué d’entités (ou individus, ou objets, …) : l’ensemble des entités de ce
monde s’appelle le domaine de l’interprétation ;
(2) une mise en correspondance de L avec ce monde : les constantes de L donnent un nom à
certaines entités de ce monde (mais pas forcément à toutes) et les prédicats de L décrivent
Logique 2 (notes de cours). ML Mugnier. Bases de la logique du premier ordre
3
certaines propriétés des entités du domaine (si ce sont des prédicats unaires) ou certaines
relations entre les entités du domaine.
Il existe une infinité d’interprétations possibles de L.
Définition (Interprétation)
Soit L = (C, P) un langage du premier ordre où C est l’ensemble des constantes et P est l’ensemble
des prédicats. Une interprétation I de L est constituée d'un ensemble non vide D appelé domaine et
d'une définition du sens des symboles de L sous forme d'applications dans D ou de relations sur D :
•
pour tout a de C, I(a) est un élément de D (il y a une application de C dans D)
•
pour tout p de P, d’arité non nulle, I(p) ⊆ Darité(p)
Si p est d'arité 0 (p peut-être vu comme un symbole propositionnel)
I(p) est égal à vrai ou faux.
Un symbole de constante s'interprète donc comme un élément du domaine d'interprétation et un
prédicat comme une relation sur D (une "table" sur D) ayant pour arité celle du symbole : I(p) est
un sous-ensemble de D si p est d’arité 1 ; c’est un sous-ensemble de D x D si p est d’arité 2, etc.
Notez que deux constantes peuvent désigner le même élément du domaine (cet élément a alors deux
« noms » dans L), et que tous les éléments du domaine n’ont pas forcément de constante associée.
Exemple : L = (C, P) avec C = {a,b,c} et P = {F,C} où F est unaire et C binaire.
v
•
•
Une interprétation possible de L (I1)
Domaine D 1 = {Alan, Bob, Bill, Boule}
Interprétation des constantes de L :
I1(a) = Alan
I1 :
I1(b) = Bob
I1(c) = Bill
a à Alan
b à Bob
c à Bill
2 façons de présenter
l’interprétation des constantes
• Interprétation des prédicats de L :
I1 (F) = {Alan, Boule}
I1(C) = {(Alan, Bill), (Bob, Bill), (Bill, Bill)}
I1(F)
Alan
Boule
I1(C)
Alan
Bob
Bill
2 façons de présenter
l’interprétation des prédicats
Bill
Bill
Bill
v Une autre interprétation possible de L (I2)
•
•
•
Domaine D 2 = N (ensemble des entiers naturels)
Interprétation des constantes de L :
I2(a) = 0
I2(b) = 1
I2(c) = 1
Interprétation des prédicats de L :
I2 (F) = {0, 2, 4, 6, …}
I2(C) = {(0,1), (1,2), (2,3), …}
x appartient à I2(F) si et seulement si x est pair
(x,y) appartient à I2(C) si et seulement si x a pour successeur y.
Logique 2 (notes de cours). ML Mugnier. Bases de la logique du premier ordre
4
Etant données une fbf A sur un langage L et I une interprétation de ce langage, nous voulons définir
une application v(A, I) dans {vrai, faux} (ou {0,1} avec faux = 0 et vrai = 1) qui associera à A une
valeur de vérité pour I. Ceci se fait en utilisant l’interprétation I, le sens donné aux connecteurs
(c’est le même qu’en logique des propositions), et le sens que l'on va donner aux quantificateurs.
Si on considère la définition inductive des fbf on s'aperçoit qu’il faut savoir donner un sens à une
fbf ayant des variables libres, même si on ne veut considérer que les fbf fermées ; en effet, si A est
fermée et si, par exemple, A = ∀x B, on ne peut plus supposer que B est fermée.
On peut faire cela en utilisant la notion d'une assignation des variables libres de la formule : étant
donné une interprétation de domaine D, une assignation des variables (libres) d'une formule A est
une application des variables (libres) de A dans D.
On suppose dans la suite que qu’une même variable n’est pas quantifiée deux fois dans la formule
(pour qu’une assignation ne donne pas deux valeurs à une même variable).
Définition (valeur de vérité d'une fbf pour une interprétation I et une assignation s)
Si I est une interprétation et s est une assignation, l’application v(A, I, s) dans {vrai, faux} est
définie de la manière suivante :
• si A est un atome p(t1, t2, ..., tn), v(A, I, s) = vrai si :
il existe (d1 …dn) ∈ I(p) avec, pour tout i :
si ti est une constante, di = I(ti)
si ti est une variable, di = s(ti)
[• v(⊥, I, s) = faux pour toute I et pour toute s]
• si A = ¬B alors v(A, I, s) = NON(v(B, I, s)), la négation étant interprétée comme en logique des
propositions;
• si A = (B ∧ C) alors v(A, I, s) = ET(v(B, I, s), v(C, I, s)), la conjonction étant interprétée comme
en logique des propositions,
… de même pour les autres connecteurs
• si A = ∀x B alors v(A, I, s) = vrai si pour tout élément d de D, v(B, I, s+[xßd]) = vrai, où
s+[xßd] est l'assignation obtenue à partir de s en donnant à la variable x la valeur d ;
[• si A = ∃x B alors v(A, I, s) = vrai si pour (au moins) un élément d de D, v(B, I, s+[xßd]) = vrai]
Si on considère le prédicat « égalité » (noté =) : v(t1=t2, I, s) est vrai si t1 et t2 sont interprétés par le
même élément de D, c’est-à-dire si d1 = d2, où di est I(ti) ou s(ti) selon que ti est une constante ou
une variable.
Exemple (suite) : avec les interprétations I1 et I2 :
Formule A
∃x C(x,x)
∃x (F(x) ∧ ¬C(x,x))
∀x ¬C(x,x)
C(a,b)
v(A,I1)
vrai
vrai
faux
faux
v(A,I2)
faux
vrai
vrai
vrai
Compléments sur la notion d’assignation
•
•
Pour une fbf fermée A, la valeur de v(A, I, s) est indépendante de s et on la note v(A, I).
Dans le cas où A n'est pas fermée, on a les équivalences suivantes :
"il existe s tel que v(A,I,s) = vrai" ssi v(∃x1…xn A, I) = vrai, où les xi sont les variables libres de
A;
"pour tout s, v(A,I,s) = vrai" ssi v(∀x1…xn A, I) = vrai, où les xi sont les variables libres de A.
Logique 2 (notes de cours). ML Mugnier. Bases de la logique du premier ordre
5
Remarque : dans les définitions qui suivent, pour simplifier, on considérera des fbf fermées. On
peut facilement étendre ces définitions à des fbf quelconques : il faut remplacer « il existe une
interprétation I avec v(A,I) = …» par « il existe une interprétation I et une assignation s
avec v(A,I,s) = …», et « pour toute interprétation I avec v(A,I) = …» par « pour toutes
interprétation I et assignation s avec v(A,I,s) = … ». On aura besoin de considérer les notions de
validité et d’équivalence de fbf quelconques dans la section 4 notamment.
On retrouve les définitions de la logique des propositions :
Définition (fbf satisfiable, valide, …)
Soit A une fbf fermée :
A est satisfiable s’il existe une interprétation I avec v(A, I) = vrai
A est contingente s’il existe I avec v(A, I) = vrai et I’ avec v(A, I’) = faux
A est insatisfiable si pour toute interprétation I , v(A, I) = faux
A est valide si pour toute interprétation I, v(A, I) = vrai
[Si A n’est pas fermée, on a : A est satisfiable s’il existe une interprétation I et une assignation s
telles que v(A,I,s) = vrai ; A est valide si pour toute interprétation I et toute assignation s, v(A,I,s) =
vrai ; etc. ]
Une formule est soit satisfiable, soit insatisfiable.
Et si elle est satisfiable, elle est soit valide, soit contigente.
Définition(modèle/contre-modèle d'une fbf)
Une interprétation I est un modèle d'une fbf fermée A si v(A,I)=vrai.
C'est un contre-modèle d'une fbf A si v(A,I)=faux.
Il est immédiat de vérifier que : A est valide ssi ¬A est insatisfiable.
On a également :
A est satisfiable ssi ¬A n'est pas valide
A est contingente ssi ¬A est contigente.
A est insatisfiable ssi ¬A est valide.
3. Equivalence et conséquence logiques
Définition (formules équivalentes)
Deux fbf fermées A et B (construites sur un même langage du premier ordre L) sont dites
logiquement équivalentes, A ≡ B, lorsque, pour toute interprétation I, v(A, I) = v(B, I).
[Si A et B ne sont pas fermées : A ≡ B, lorsque pour toute interprétation I et toute assignation s,
v(A, I, s) = v(B, I, s)].
On a immédiatement : A ≡ B ssi (A ↔ B) est valide.
Définition (conséquence logique)
Si H1, H2, ..., Hn et C sont des fbf fermées d'un même langage du premier ordre L, on dit que C est
une conséquence logique de H1, H2, ..., Hn, lorsque toute interprétation I de L qui est un modèle
de tous les Hi est un modèle de C. Notation : H1, H2, ..., Hn |= C.
On a immédiatement : pour toutes fbf fermées A et B, A ≡ B ssi A |= B et B |= A
Logique 2 (notes de cours). ML Mugnier. Bases de la logique du premier ordre
6
Théorème
Soient H1, H2, ..., Hn et C des fbf fermées d'un langage du premier ordre. Les propriétés cidessous sont équivalentes :
(i)
H1, H2, ..., Hn |= C
(ii)
H1∧ H2∧ ... ∧ Hn → C est valide
(iii) H1 ∧ H2 ∧ ... ∧ Hn ∧ ¬C est insatisfiable
[Schéma de démonstration : soit I telle que v(Hi, I) = vrai pour tout i ; supposons (i) : on a donc v(C,
I) = vrai, et on en déduit facilement (ii), puis de (ii) on obtient (iii) en prenant la négation de la
formule, et enfin de (iii) on obtient (i) ]
On peut maintenant parler de la "validité", ou "correction", d'un "raisonnement". De façon
générale, un raisonnement consiste à obtenir une conclusion à partir d'un ensemble d'hypothèses.
Imaginons que l'on formule les hypothèses H1, …, Hn (chacune étant une fbf) et qu'on en conclut C
(une fbf). Ce raisonnement est correct (ou valide) si C est une conséquence logique de H1, …, Hn.
4. Quelques équivalences
Pour montrer que deux formules A et B sont équivalentes, on peut s’appuyer directement sur la
notion d’interprétation ; on peut montrer que toute interprétation qui rend vraie A rend aussi vraie
B, et que toute interprétation qui rend fausse A rend aussi fausse B (on applique la définition de
l’équivalence) ; ou bien, on peut montrer que tout modèle de A est un modèle de B (c’est-à-dire que
A |= B), et réciproquement (c’est-à-dire que A |= B).
Nous étudions ci-dessous d’autres façons de montrer l’équivalence entre deux formules : en
s’appuyant sur des équivalences connues pour la logique des propositions (voir théorème de
tautologie) ou en passant d’une formule à l’autre en remplaçant des sous-formules par des formules
équivalentes (voir théorème de substitution).
Théorème de tautologie
Soit A une fbf valide de la logique des propositions ayant p1, p2, ..., pn pour symboles
propositionnels. Soient A1, A2, ..., An des fbf d'un langage du premier ordre L. La fbf A' obtenue à
partir de A en remplaçant, pour tout i, pi par Ai, est valide.
(toute formule valide A de la logique des propositions conduit à une fbf valide de la logique du
premier ordre si on remplace dans l'arbre syntaxique de A, pour tout i, toutes les feuilles étiquetées
par pi par un même arbre syntaxique Ai ; les Ai ne sont pas nécessairement fermées).
Exemples : Si A, B et C sont des fbf d'un langage du premier ordre on a entre autres les
équivalences suivantes entre des formules ayant A, B et C comme sous-formules :
¬¬A ≡ A
(A ∧ B) ≡ (B ∧ A)
A ∧ (B ∧ C) ≡ (A ∧ B) ∧ C
¬(A ∧ B) ≡ ¬A ∨ ¬B
(A → B) ≡¬A ∨ B ≡ ¬(A ∧ ¬B)
Logique 2 (notes de cours). ML Mugnier. Bases de la logique du premier ordre
7
Le théorème de substitution permet d'obtenir, par substitution d'une fbf à une fbf équivalente, des
équivalences entre fbf du premier ordre à partir d'équivalences entre fbf du premier ordre.
Théorème de substitution
Soient A une fbf, B une sous-fbf de A, et B' une fbf équivalente à B. Toute fbf A' obtenue à partir de
A en remplaçant une occurrence de B par une occurrence de B' est équivalente à A (A, B, B', A' ne
sont pas nécessairement fermées).
Exemple : A = ∃x (p(x) à q(x)), B = (p(x)àq(x)), B’=(¬p(x)∨q(x)). En remplaçant dans A, B par
B’, on obtient la fbf suivante équivalente à A : ∃x (¬p(x)∨q(x)).
Nous allons donner quelques équivalences qui ne peuvent pas être obtenues avec le théorème de
tautologie car elles concernent des remplacements ou déplacements de quantificateurs. Ci-dessous,
A et B désignent des fbf, et l'on ne fait pas d'hypothèse sur les variables qu'elles contiennent. La
notation A(xßy) désigne la formule obtenue à partir de A en remplaçant toutes les occurrences de x
par y.
(0) si y ∉ var(A) QxA ≡ QyA(xßy) où Q∈{∀, ∃} renommage d'une variable liée
(1) si x ∉ var(A) ∀xA ≡ ∃xA ≡ A
(2) si x ∉ var(B) (QxA ∧ B) ≡ Qx (A ∧ B) où Q∈{∀, ∃}
(3) si x ∉ var(B) (QxA∨ B) ≡ Qx (A ∨ B) où Q∈{∀, ∃}
(4) ¬∀xA ≡ ∃x ¬A
(5) ¬∃xA ≡ ∀x ¬A
(6) ∀xA ∧ ∀xB ≡ ∀x(A ∧ B) distributivité du ∀ par rapport au ∧.
(7) ∃xA ∨ ∃xB ≡ ∃x(A ∨ B) distributivité du ∃ par rapport au ∨.
(8) QxA ∧ Q'xB ≡ QxQ'y (A ∧ B(x, y)) où Q et Q'∈{∀, ∃} et y ∉{var(A) ∪ var(B)
(9) QxA ∨ Q'xB ≡ QxQ'y (A ∨ B(x, y)) où Q et Q'∈{∀, ∃} et y ∉{var(A) ∪ var(B)
Exemple de démonstration. Prouvons (4) :
• Si ¬∀xA et ∃x ¬A sont des formules fermées : soit I une interprétation.
v(¬∀xA, I) = vrai ssi NON(v(∀xA, I)) = vrai ssi v(∀xA, I) = faux.
ssi on n'a pas, pour tout élément d de D, v(A, I, s+[xßd] = vrai,
où s est une assignation des variables de A qui assigne d à x,
ssi il existe un élément d de D avec v(A, I, s+[xßd] = faux
ssi il existe un élément d de D avec v(¬A, I, s+[xßd]) = vrai
ssi v(∃x¬A, I, s) = vrai
Si ¬∀xA et ∃x ¬A sont des formules non fermées, il faut introduire la notion d’assignation dès
le départ : soit I une interprétation et s une assignation.
v(¬∀xA, I, s) = vrai ssi NON(v(∀xA, I, s)) = vrai ssi v(∀xA, I, s) = faux
ssi on n'a pas, pour tout élément d de D, v(A, I, s+[xßd] = vrai
ssi il existe un élément d de D avec v(A, I, s+[xßd] = faux
ssi il existe un élément d de D avec v(¬A, I, s+[xßd]) = vrai
ssi v(∃x¬A, I, s) = vrai
•
On observe que la différence entre les deux preuves est minime, car dès que l’on décompose une
formule fermée on obtient des sous-formules qui ne sont pas forcément fermées.
Logique 2 (notes de cours). ML Mugnier. Bases de la logique du premier ordre
8
Téléchargement