Vous êtes sur la page 1sur 66

Introduction Syntaxe Sémantique inférence

Logique des prédicats

Rym Guibadj, Fabien Teytaud

LISIC, ULCO, EILCO

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 1 / 49
Introduction Syntaxe Sémantique inférence

Motivation

Pour résoudre des problèmes complexes qui demandent des


connaissances d’un expert, nous avons besoin d’un langage
permettant de :
représenter les connaissances d’un expert facilement.
faire des déductions logiques avec ces connaissances.

la logique du premier ordre


base de plusieurs formalismes de représentation des connaissances
et du raisonnement déductif utilisé entre autres par les systèmes
experts.

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 2 / 49
Introduction Syntaxe Sémantique inférence

Motivation

Exemples de raisonnement déductif :


Déduire la maladie du patient et le traitement approprié, à partir
de :
Symptômes d’un patient.
Règles de causalité entre les symptômes et les pathologies.
Règles de causalité sur les traitements.
Diagnostiquer le problème d’un véhicule à partir de :
Symptômes d’un véhicule.
Règles de causalité pour la mécanique auto.

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 3 / 49
Introduction Syntaxe Sémantique inférence

Schéma d’un système expert

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 4 / 49
Introduction Syntaxe Sémantique inférence

Motivation

Exécution de tâches à l’aide d’un agent :


on spécifier à l’agent le but à atteindre : robot qui doit transporter
des objets d’un endroit à un autre.
la liste des opérations à faire pour accomplir le but n’est pas codée
d’avance : l’agent utilise un planificateur pour déterminer les
actions à prendre.
Une formulation sous forme de logique permet à un système
unique de faire plusieurs tâches différentes (suffit de changer le
but).

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 5 / 49
Introduction Syntaxe Sémantique inférence

Introduction
Peut on modéliser les situations suivantes en logique
propositionnelle :
certains étudiants assistent à tous les cours
aucun étudiant n’assiste à un cours non intéressant
dans toute salle d’examen, il y a un étudiant qui, s’il échoue,
alors tout le monde échoue

Avec la logique des propositions, on peut


représenter l’information,
déduire / inférer de nouvelles connaissances.

Mais on ne peut pas


généraliser
utiliser des relations

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 6 / 49
Introduction Syntaxe Sémantique inférence

Introduction

La logique des propositions


suppose que le monde contient des faits

La logique des prédicats


suppose (comme le langage courant) que le monde contient :
Des objets : Gens, maisons, nombres, . . .
Des relations : Frères, plus grand que, . . .
Des fonctions : Le père de, le meilleur ami de, la deuxième
mi-temps de, . . .

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 7 / 49
Introduction Syntaxe Sémantique inférence

Syntaxe

Constantes
Michel, 2, ULCO, . . .
Relations (prédicats)
vrai, >, . . .
Fonctions

. . ., père, . . .
Variables
x,y, . . .
Connecteurs
⇒, ⇔, ∨, ∧, ¬
Egalité (entre termes)
=
Quantificateurs
∀, ∃

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 8 / 49
Introduction Syntaxe Sémantique inférence

Formules atomiques

Formule atomique
prédicat(terme1 , . . . , termen )

Termes
Constante
Variable
Fonction(terme1 , . . . , termen )

Exemples
Frère(Paul, Etienne)
Marié(père(Michel),mère(Sophie))

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 9 / 49
Introduction Syntaxe Sémantique inférence

Formules complexes

Définition
Construites à partir des formules atomiques
Ajouts de connecteurs

Exemple
Frères(John,Richard) ⇒ Frères(Richard, John)

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 10 / 49
Introduction Syntaxe Sémantique inférence

Vérité en logique des prédicats

Les formules sont vraies par rapport à un modèle et une


interprétation.
Le modèle contient au moins un objet (élément du domaine) et
des relations entre eux.
L’interprétation spécifie les associations entre :
les symboles de constantes → les objets
les prédicats → les relations
les fonctions → les relations fonctionnelles

Une formule atomique prédicat(terme1 ,. . .,termen ) est vraie dans un


modèle donné, si la relation à laquelle renvoie le prédicat s’applique
aux objets auxquels renvoient les arguments.

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 11 / 49
Introduction Syntaxe Sémantique inférence

Quantification universelle

∀ <variables> <formule>
“Tous les étudiants de Calais aiment l’intelligence artificielle” :
∀ x Etudiant(x,Calais) ⇒ Aime(x,IA).
∀ x P ssi P est vrai avec x pouvant être tous les objets du modèle.
Réécriture possible avec un ensemble de conjonction
(Etudiant(Albert,Calais) ⇒ Aime(Albert,IA) ∧
(Etudiant(Bertrand,Calais) ⇒ Aime(Bertrand,IA) ∧
...

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 12 / 49
Introduction Syntaxe Sémantique inférence

Quantification existentielle

∃ <variables> <formule>
“Il existe au moins un étudiant de Calais qui aime l’intelligence
artificielle” :
∃ x Etudiant(x,Calais) ∧ Aime(x,IA).
∃ x P ssi P est vrai avec x pouvant être (au moins) un objet du
modèle.
Réécriture possible avec un ensemble de disjonction
(Etudiant(Albert,Calais) ∧ Aime(Albert,IA) ∨
(Etudiant(Bertrand,Calais) ∧ Aime(Bertrand,IA) ∨
...

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 13 / 49
Introduction Syntaxe Sémantique inférence

Attention

⇒ est le connecteur principal avec ∀


Une erreur courante est d’utiliser ∧
∀ x Etudiant(x,Calais) ∧ intelligent(x) signifie :
”tous les étudiants sont à Calais et tous les étudiants sont
intelligents”
∧ est le connecteur principal avec ∃
Une erreur courante est d’utiliser ⇒
∃ x Etudiant(x,Calais) ⇒ intelligent(x) est vrai :
s’il existe quelqu’un qui n’est pas étudiant à Calais

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 14 / 49
Introduction Syntaxe Sémantique inférence

Propriétés des quantificateurs

Equivalence
∀ x ∀ y est équivalent à ∀ y ∀ x
∃ x ∃ y est équivalent à ∃ y ∃ x
Attention : ∀ x ∃ y n’est pas équivalent à ∃ y ∀ x
∃ y ∀ x Etudie(x,y) : ”il existe un module étudié de tous”
∀ x ∃ y Etudie(x,y) :”tout le monde suit un module (pour tout
étudiant, il existe un module au quel il est inscrit)”

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 15 / 49
Introduction Syntaxe Sémantique inférence

Propriétés des quantificateurs

Equivalence
∀ x ∀ y est équivalent à ∀ y ∀ x
∃ x ∃ y est équivalent à ∃ y ∃ x
Attention : ∀ x ∃ y n’est pas équivalent à ∃ y ∀ x
∃ y ∀ x Etudie(x,y) : ”il existe un module étudié de tous”
∀ x ∃ y Etudie(x,y) :”tout le monde suit un module (pour tout
étudiant, il existe un module au quel il est inscrit)”

Dualité
∀ x Aime(x,les glaces) est équivalent à ¬ ∃ x ¬ Aime(x, les
glaces)
∃ x Aime(x,les épinards) est équivalent à ¬ ∀ x ¬ Aime(x, les
épinards)

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 15 / 49
Introduction Syntaxe Sémantique inférence

Notion d’égalité

terme1 = terme2 est vrai dans une interprétation ssi terme1 et


terme2 renvoient au même objet
Exemple :
Père ( Richard ) = Henri est vrai ssi la fonction Père appliquée à
l’objet Richard renvoie Henri
Définition de Frères en fonction de Parent :

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 16 / 49
Introduction Syntaxe Sémantique inférence

Notion d’égalité

terme1 = terme2 est vrai dans une interprétation ssi terme1 et


terme2 renvoient au même objet
Exemple :
Père ( Richard ) = Henri est vrai ssi la fonction Père appliquée à
l’objet Richard renvoie Henri
Définition de Frères en fonction de Parent :
∀ x,y Frères(x,y) ⇔ ( ¬ (x=y) ∧ ∃ m,p ¬ (m=p) ∧ Parent (m,x) ∧
Parent (p,x) ∧ Parent (m,y) ∧ Parent (p,y))

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 16 / 49
Introduction Syntaxe Sémantique inférence

Modélisation d’expressions courantes

Exemples
C(x) : x est un client , F(x) : x est français, V(x) : x est végétarien,
E(x) : x est un employé

Tous les clients sont français :


Quelques clients ne sont pas végétariens :
Aucun employé n’est un client :
Tous les employés sont végétariens :

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 17 / 49
Introduction Syntaxe Sémantique inférence

Modélisation d’expressions courantes

Exemples
C(x) : x est un client , F(x) : x est français, V(x) : x est végétarien,
E(x) : x est un employé

Tous les clients sont français : ∀x, C(x) → F (x)


Quelques clients ne sont pas végétariens :∃x, C(x) ∧ ¬V (x)
Aucun employé n’est un client : ∀x, E(x) → ¬C(x)
Tous les employés sont végétariens : ∀x, E(x) → V (x)

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 17 / 49
Introduction Syntaxe Sémantique inférence

Modélisation d’expressions courantes


Exemples
C(x) : x est un client , F(x) : x est français, V(x) : x est végétarien,
E(x) : x est un employé

Tous les clients sont français : ∀x, C(x) → F (x)


Quelques clients ne sont pas végétariens :∃x, C(x) ∧ ¬V (x)
Aucun employé n’est un client : ∀x, E(x) → ¬C(x)
Tous les employés sont végétariens : ∀x, E(x) → V (x)

Notes
Tous les A sont B : ∀x, A(x) → B(x)
Seuls les A sont B : ∀x, B(x) → A(x)
Aucun A n’est B : ∀x, A(x) → ¬B(x)
Quelques A sont B : ∃x, A(x) ∧ B(x)

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 17 / 49
Introduction Syntaxe Sémantique inférence

Variables libres et liées 1/3


Idée
Soit la formule : ∃x y < x
La portée du quantificateur ∃ est y < x
Seule la variable x fait l’objet de la quantification, elle est dite liée
y ne fait pas l’objet de la quantification, et est dite libre

Définition
Une occurrence d’une variable x dans une formule atomique est libre
Si une occurrence x est libre (resp. liée) dans une formule A alors elle
est libre (resp. liée) dans A → B, A ⇔ B, A ∧ B, A ∨ B, ¬A, ∀yA, et ∃yA
si y 6= x

Formule close
Une formule est close lorsque toutes les occurrences des variables qui y
figurent sont liées

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 18 / 49
Introduction Syntaxe Sémantique inférence

Variables libres et liées 2/3

F1 : Q(a, f (x))
Formule atomique comportant une occurrence de x, x est donc
libre.
F2 : ∀z Q(a, f (x))
F2 = ∀z F1 , comme z 6= x, le fait que x soit libre dans F1 entraine
que x est libre dans F2 .
F3 : ∀x ∀y Q(x, y) → ∃z P(z)
F3 est une formule close (x et y liées par ∀ et z liée à ∃).
F4 : Q(b, b) → ∀x (P(x) ∨ ∃x Q(x, y))
y est libre.
∀x ne peut lier qu’une variable libre c’est à dire x dans P(x).
L’occurrence de x dans Q(x, y ) est elle liée par ∃x.
Donc les deux variables x sont liées (mais différemment).

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 19 / 49
Introduction Syntaxe Sémantique inférence

Variables libres et liées 3/3

Remarques
Une variable liée ne possède pas d’identité propre et peut être
remplacée par n’importe quel autre nom de variable qui
n’apparaı̂t pas dans la formule.
∀x A(x) est identique à ∀y A(y)
Pour éviter les ambiguı̈tés, mieux vaut utiliser des noms de
variables différents.

Exemple
Soit F : x < y → ∀x (x = y ∨ ∃y y < x)
Les variables x, y sont à la fois libres et liées. Il vaut mieux
renommer les occurrences :
F : x < y → ∀z (z = y ∨ ∃t t < z)

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 20 / 49
Introduction Syntaxe Sémantique inférence

Sémantique

But de la sémantique
Donner un sens à une formule de la logique des prédicats et
décider ensuite si elle est vraie ou fausse.
Il faut indiquer :
A quoi réfèrent les objets (constantes, variables et termes) de la
formule.
A quoi renvoient les symboles de prédicats et de fonctions de la
formule.

Plusieurs étapes
Il faut décider du modèle (le langage).
L’interprétation (la réalisation) du langage.
La valuation (trouver la valeur de vérité).

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 21 / 49
Introduction Syntaxe Sémantique inférence

Sémantique : interprétation

Soit “Richard est le frère Jean”

Le modèle (domaine) :
Richard
Jean
La relation de fraternité

Interprétation :
La constante R renvoie à Richard
La constante J renvoie à Jean
Le prédicat F renvoie à la relation de fraternité

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 22 / 49
Introduction Syntaxe Sémantique inférence

Exemple d’interprétation
Soit la formule :
∀x(A(x) ∧ B(f (x), a)), définie sur le domaine ∆ = {4, 5}.
A et B sont des prédicats, f est une fonction, x une variable et a une constante.

Voici une première interprétation I 1


Ic1 [a] = 4.
If1 [f](4) = 5, If1 [f](5) = 4.
Ip1 [A](4) = V, Ip1 [A](5) = F.
Ip1 [B](4,4) = V, Ip1 [B](5,4) = V.

Voici une seconde interprétation I 2


Ic2 [a] = 5.
If2 [f](4) = 5, If2 [f](5) = 4.
Ip2 [A](4) = F, Ip2 [A](5) = V.
Ip2 [B](4,5) = V, Ip2 [B](5,5) = F.

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 23 / 49
Introduction Syntaxe Sémantique inférence

Valuation
Comme dans la logique des propositions, les formules ont une valeur
de vérité qui dépendent de l’interprétation choisie. Cette valeur de
vérité est établie comme suit :
La valeur de vérité d’une formule atomique est la valeur de vérité
du prédicat selon l’interprétation I.
La valeur de vérité d’une formule contenant des variables
quantifiées est :
si F = ∃x G, la valeur de F sera vraie si la valeur de G selon I est
vraie pour au moins une valeur de x ∈ ∆, sinon la valeur de F est
fausse.
si F = ∀x G, la valeur de F sera vraie si la valeur de G selon I est
vraie pour toutes les valeurs de x ∈ ∆, sinon la valeur de F est
fausse.
La valeur de vérité d’une formule non atomique construite à
partir de formules atomiques, est calculée au moyen des tables
de vérité des connecteurs.

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 24 / 49
Introduction Syntaxe Sémantique inférence

Exemple de valuation

Soit l’exemple précédent : ∀x (A(x) ∧ B(f (x), a)), définie sur le


domaine ∆ = {4, 5} avec l’interprétation I 1 :
Ic1 [a] = 4.
If1 [f](4) = 5, If1 [f](5) = 4.
Ip1 [A](4) = V, Ip1 [A](5) = F.
Ip1 [B](4,4) = V, Ip1 [B](5,4) = V.

Après valuation, on obtient la table de vérité suivante :

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 25 / 49
Introduction Syntaxe Sémantique inférence

Exemple de valuation

Soit l’exemple précédent : ∀x (A(x) ∧ B(f (x), a)), définie sur le


domaine ∆ = {4, 5} avec l’interprétation I 1 :
Ic1 [a] = 4.
If1 [f](4) = 5, If1 [f](5) = 4.
Ip1 [A](4) = V, Ip1 [A](5) = F.
Ip1 [B](4,4) = V, Ip1 [B](5,4) = V.

Après valuation, on obtient la table de vérité suivante :

x A(x) f (x) B(f (x), a) A(x) ∧ B(f (x), a)


4 V 5 V V
5 F 4 V F

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 25 / 49
Introduction Syntaxe Sémantique inférence

Exemple de valuation

Soit l’exemple précédent : ∀x (A(x) ∧ B(f (x), a)), définie sur le


domaine ∆ = {4, 5} avec l’interprétation I 1 :
Ic1 [a] = 4.
If1 [f](4) = 5, If1 [f](5) = 4.
Ip1 [A](4) = V, Ip1 [A](5) = F.
Ip1 [B](4,4) = V, Ip1 [B](5,4) = V.

Après valuation, on obtient la table de vérité suivante :

x A(x) f (x) B(f (x), a) A(x) ∧ B(f (x), a)


4 V 5 V V
5 F 4 V F

∀ x (A(x) ∧ B(f (x), a)) : Faux

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 25 / 49
Introduction Syntaxe Sémantique inférence

Validité et satisfiabilité

Formule satisfiable
Une formule vraie pour au moins une interprétation du modèle

Formule valide
Une formule vraie pour toutes les interprétations possibles du modèle

Exemple
Soit la formule ∀x A(x) ∨ ∃y A(y ) sur ∆ = {1, 2} Elle possède 4
interprétations possibles :

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 26 / 49
Introduction Syntaxe Sémantique inférence

Validité et satisfiabilité
Formule satisfiable
Une formule vraie pour au moins une interprétation du modèle

Formule valide
Une formule vraie pour toutes les interprétations possibles du modèle

Exemple
Soit la formule ∀x A(x) ∨ ∃y A(y ) sur ∆ = {1, 2} Elle possède 4
interprétations possibles :
Ip1 [A](1) = V , Ip1 [A](2) = V
Ip2 [A](1) = V , Ip2 [A](2) = F
Ip3 [A](1) = F , Ip3 [A](2) = V
Ip4 [A](1) = F , Ip4 [A](2) = F

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 26 / 49
Introduction Syntaxe Sémantique inférence

Exemple de satisfiabilité

x y A(x) A(y ) ∀ x A(x) ∃ y A(y ) ∀ x A(x) ∨ ∃ y A(y )

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 27 / 49
Introduction Syntaxe Sémantique inférence

Exemple de satisfiabilité
x y A(x) A(y ) ∀ x A(x) ∃ y A(y ) ∀ x A(x) ∨ ∃ y A(y )
1 1 V V
1 2 V V
I1 V V V
2 1 V V
2 2 V V
1 1 V V
1 2 V F
I2 F V V
2 1 F V
2 2 F F
1 1 F F
1 2 F V
I3 F V V
2 1 V F
2 2 V V
1 1 F F
1 2 F F
I4 F F F
2 1 F F
2 2 F F

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 27 / 49
Introduction Syntaxe Sémantique inférence

Substitution 1/2

Définition
Substituer une variable xi par un terme ti avec xi 6= ti .
On note :
θ = {x1 /t1 , . . . , xn /tn }
sub(θ, t) : appliquer la substitution θ au terme t

Exemple
t = g(x, y , f (x, y))
θ = {x/a, y/f (x, a)} : substituer les variables x et y par a et
f (x, y).

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 28 / 49
Introduction Syntaxe Sémantique inférence

Substitution 1/2

Définition
Substituer une variable xi par un terme ti avec xi 6= ti .
On note :
θ = {x1 /t1 , . . . , xn /tn }
sub(θ, t) : appliquer la substitution θ au terme t

Exemple
t = g(x, y , f (x, y))
θ = {x/a, y/f (x, a)} : substituer les variables x et y par a et
f (x, y).
t 0 = Sub(θ, t) = g(a, f(x,a),f(a,f(x,a)))
Si on applique une deuxième fois la meme substitution :

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 28 / 49
Introduction Syntaxe Sémantique inférence

Substitution 1/2

Définition
Substituer une variable xi par un terme ti avec xi 6= ti .
On note :
θ = {x1 /t1 , . . . , xn /tn }
sub(θ, t) : appliquer la substitution θ au terme t

Exemple
t = g(x, y , f (x, y))
θ = {x/a, y/f (x, a)} : substituer les variables x et y par a et
f (x, y).
t 0 = Sub(θ, t) = g(a, f(x,a),f(a,f(x,a)))
Si on applique une deuxième fois la meme substitution :
t 00 = Sub(θ, t 0 ) = g(a,f(a,a), f(a,f(a,a)))

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 28 / 49
Introduction Syntaxe Sémantique inférence

Substitution 2/2

Remarque 1
Le terme t peut contenir des variables qui peuvent se retrouver
quantifiées (liées) une fois la substitution faite. Il faut dans ce cas
faire attention et renommer les variables de sorte à ce que toutes les
variables de t restent libres dans F .

Remarque 2
Il ne faut pas confondre ces substitutions avec les interprétations. La
substitution remplace syntaxiquement une variable par un terme pour
produire un nouvel énoncé, alors qu’une interprétation fait
correspondre une variable à un objet du domaine.

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 29 / 49
Introduction Syntaxe Sémantique inférence

Unification
Définition
Deux formules sont unifiables s’il existe une substitution des
variables qui les rendent identiques.
Unifier deux formules : les rendre identiques en leur appliquant
une substitution.

Exemples
Peut on unifier F1 : A(x, g(b, x)) et F2 : A(a, g(y, b)) ?
θ = {x/a, y /b}
Sub(θ, F1 ) = A(a, g(b, a))
Sub(θ, F2 ) = A(a, g(b, b))
F1 et F2 ne sont pas unifiables.
Peut on unifier F3 : A(x, a, z) et F4 : A(c, a, y )) ?
θ = {x/c, y/z}
Sub(θ, F3 ) = A(c, a, z)
Sub(θ, F4 ) = A(c, a, z)
F3 et F4 sont unifiables.

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 30 / 49
Introduction Syntaxe Sémantique inférence

Principe de résolution
Définition
Comme pour la logique des propositions, on peut appliquer la
résolution pour déduire des énoncés à partir de faits.
Pour la logique des propositions
A partir de (p1 ∨ . . . ∨ pm ),(q1 ∨ . . . ∨ qn ), si pi = ¬qj , on déduit :
(p1 ∨ . . . ∨ pi−1 ∨ pi+1 ∨ . . . ∨ pm ∨ q1 ∨ . . . ∨ qj−1 ∨ qj+1 ∨ . . . ∨ qn )
Pour la logique des prédicats
A partir de (p1 ∨ . . . ∨ pm ),(q1 ∨ . . . ∨ qn ), si pi et ¬qj sont unifiables
par θ on déduit :
(p1 ∨ . . . ∨ pi−1 ∨ pi+1 ∨ . . . ∨ pm ∨ q1 ∨ . . . ∨ qj−1 ∨ qj+1 ∨ . . . ∨ qn )

Exemple
F1 = Animal(x) ∨ Aimer (g(x), x)
F2 = ¬Aimer (u, v ) ∨ ¬Tuer (u, v )
Avec θ = {u/g(x), v /x} on unifie F1 et F2 ,
et on déduit Animal(x) ∨ ¬Tuer (g(x), x)
Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 31 / 49
Introduction Syntaxe Sémantique inférence

Forme normale conjonctive

Pour faire une résolution les formules doivent être en CNF.

Transformation en CNF
1 Élimination des implications et des équivalences
2 Réécrire en forme prénexe (mettre les quantificateurs en début)
3 Skolémisation (suppression du ∃)
4 Suppression des quantificateurs universels (∀)
5 Distribution de ∨ sur ∧

∀x(∀y Animal(y) ⇒ Aimer (x, y)) ⇒ (∃y Aimer (y , x))

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 32 / 49
Introduction Syntaxe Sémantique inférence

1. Elimination des implications

Comme en logique propositionnelle : P ⇒ Q ≡ ¬P ∨ Q

∀x(∀yAnimal(y )⇒Aimer (x, y)) ⇒ (∃yAimer (y , x))


∀x(∀y ¬Animal(y )∨Aimer (x, y)) ⇒ (∃yAimer (y , x))
∀x(∀y ¬Animal(y ) ∨ Aimer (x, y))⇒(∃yAimer (y , x))
∀x(∃yAnimal(y ) ∧ ¬Aimer (x, y ))∨(∃yAimer (y , x))

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 33 / 49
Introduction Syntaxe Sémantique inférence

2. Mettre sous forme prénexe

Définition
Une forme prénexe est une formule de la forme Q1 x1 . . . Qd xd M avec
Qi un quantificateur et M une formule sans quantificateur. Pour cela
on utilise les équivalences suivantes :
¬∀p ≡ ∃x¬p.
¬∃p ≡ ∀x¬p.
(∀xA) ∨ B ≡ ∀x(A ∨ B) ssi x n’est pas liée dans B.
(∃xA) ∨ B ≡ ∃x(A ∨ B) ssi x n’est pas liée dans B.
(∀xA) ∧ B ≡ ∀x(A ∧ B) ssi x n’est pas liée dans B.
(∃xA) ∧ B ≡ ∃x(A ∧ B) ssi x n’est pas liée dans B.
Si x est liée dans B alors il faut renommer x avec une substitution.

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 34 / 49
Introduction Syntaxe Sémantique inférence

2. Mettre sous forme prénexe

∀x(∃yAnimal(y ) ∧ ¬Aimer (x, y )) ∨ (∃yAimer (y , x))


∀x(∃yAnimal(y ) ∧ ¬Aimer (x, y )) ∨ (∃zAimer (z, x))
∀x(∃yAnimal(y ) ∧ ¬Aimer (x, y )) ∨ (∃zAimer (z, x))
∀x∃y ∃z(Animal(y ) ∧ ¬Aimer (x, y )) ∨ Aimer (z, x)

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 35 / 49
Introduction Syntaxe Sémantique inférence

3. Skolémisation

Définition
Il s’agit de supprimer les quantificateurs existentiels en les remplaçant
avec une constante ou un terme qui ne sont pas dans le domaine.
Il y a deux possibilités :
∃x∀yA(x, y ) devient ∀yA(a, y) (remplacé par la constante a).
∀y ∃xA(x, y) devient ∀yA(f (y ), y) (remplacé par le terme f (y ). f
est appelé fonction de Skolem).
Attention les deux formules ne sont pas équivalentes, mais si on
déduit G de la première alors on peut la déduire de la seconde.

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 36 / 49
Introduction Syntaxe Sémantique inférence

3. Skolémisation

∀x∃y ∃z(Animal(y ) ∧ ¬Aimer (x, y )) ∨ Aimer (z, x)


∀x∃y (Animal(y) ∧ ¬Aimer (x, y)) ∨ Aimer (g(x), x)
∀x∃y (Animal(y) ∧ ¬Aimer (x, y)) ∨ Aimer (g(x), x)
∀x(Animal(f (x)) ∧ ¬Aimer (x, f (x))) ∨ Aimer (g(x), x)

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 37 / 49
Introduction Syntaxe Sémantique inférence

4. Suppression des quantificateurs universels

Comme toutes les variables sont maintenant universellement


quantifiées on peut supprimer les ∀ (ils deviennent implicites).
∀x(Animal(f (x)) ∧ ¬Aimer (x, f (x))) ∨ Aimer (g(x), x)
(Animal(f (x)) ∧ ¬Aimer (x, f (x))) ∨ Aimer (g(x), x)

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 38 / 49
Introduction Syntaxe Sémantique inférence

5. Distribution de ∨ sur ∧

Comme pour la logique des propositions :


(P ∧ Q) ∨ R ≡ (P ∨ R) ∧ (Q ∨ R)
(Animal(f (x)) ∧ ¬Aimer (x, f (x))) ∨ Aimer (g(x), x)
(Animal(f (x)) ∨ Aimer (g(x), x)) ∧ (¬Aimer (x, f (x)) ∨
Aimer (g(x), x))

La formule est en CNF. Elle comporte deux clauses :


(Animal(f (x)) ∨ Aimer (g(x), x))
(¬Aimer (x, f (x)) ∨ Aimer (g(x), x))

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 39 / 49
Introduction Syntaxe Sémantique inférence

Exemple

Faits
Les personnes qui ont la grippe A doivent prendre du Tamiflu
Les personnes qui ont de la fièvre et qui toussent ont la grippe A
Ceux qui ont une température supérieure à 38˚ ont de la fièvre
Pierre tousse et a une température supérieure à 38˚

Peut-on déduire que


Pierre doit prendre du Tamiflu

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 40 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1
Faits
Pour tout crime, il y a quelqu’un qui l’a commis.
Seuls les malhonnêtes commettent des crimes.
Ne sont arrêtés que les gens malhonnêtes.
Les gens malhonnêtes arrêtés ne commettent pas de crimes.
Il y a des crimes.

Question
Il y a des gens malhonnêtes non arrêtés.

Codage en prédicats
x est un crime : Crime(x).
x a commis y : Commis(x,y).
x est malhonnête : Malhonnête(x).
x est arrêté : Arrêté(x).
Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 41 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

Faits
Pour tout crime, il y a quelqu’un qui l’a commis.
Seuls les malhonnêtes commettent des crimes.
Ne sont arrêtés que les gens malhonnêtes.
Les gens malhonnêtes arrêtés ne commettent pas de crimes.
Il y a des crimes.

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 42 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

Faits
Pour tout crime, il y a quelqu’un qui l’a commis.
∀x(Crime(x) ⇒ ∃yCommis(y , x)). (F1)
Seuls les malhonnêtes commettent des crimes.
Ne sont arrêtés que les gens malhonnêtes.
Les gens malhonnêtes arrêtés ne commettent pas de crimes.
Il y a des crimes.

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 42 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

Faits
Pour tout crime, il y a quelqu’un qui l’a commis.
∀x(Crime(x) ⇒ ∃yCommis(y , x)). (F1)
Seuls les malhonnêtes commettent des crimes.
∀x, y (Crime(x) ∧ Commis(y, x) ⇒ Malhonnete(y )). (F2)
Ne sont arrêtés que les gens malhonnêtes.
Les gens malhonnêtes arrêtés ne commettent pas de crimes.
Il y a des crimes.

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 42 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

Faits
Pour tout crime, il y a quelqu’un qui l’a commis.
∀x(Crime(x) ⇒ ∃yCommis(y , x)). (F1)
Seuls les malhonnêtes commettent des crimes.
∀x, y (Crime(x) ∧ Commis(y, x) ⇒ Malhonnete(y )). (F2)
Ne sont arrêtés que les gens malhonnêtes.
∀x(Arrete(x) ⇒ Malhonnete(x)). (F3)
Les gens malhonnêtes arrêtés ne commettent pas de crimes.
Il y a des crimes.

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 42 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

Faits
Pour tout crime, il y a quelqu’un qui l’a commis.
∀x(Crime(x) ⇒ ∃yCommis(y , x)). (F1)
Seuls les malhonnêtes commettent des crimes.
∀x, y (Crime(x) ∧ Commis(y, x) ⇒ Malhonnete(y )). (F2)
Ne sont arrêtés que les gens malhonnêtes.
∀x(Arrete(x) ⇒ Malhonnete(x)). (F3)
Les gens malhonnêtes arrêtés ne commettent pas de crimes.
∀x, y (Malhonnete(x) ∧ Arrete(x) ∧ Crime(y ) ⇒ ¬Commis(x, y )).
(F4)
Il y a des crimes.

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 42 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

Faits
Pour tout crime, il y a quelqu’un qui l’a commis.
∀x(Crime(x) ⇒ ∃yCommis(y , x)). (F1)
Seuls les malhonnêtes commettent des crimes.
∀x, y (Crime(x) ∧ Commis(y, x) ⇒ Malhonnete(y )). (F2)
Ne sont arrêtés que les gens malhonnêtes.
∀x(Arrete(x) ⇒ Malhonnete(x)). (F3)
Les gens malhonnêtes arrêtés ne commettent pas de crimes.
∀x, y (Malhonnete(x) ∧ Arrete(x) ∧ Crime(y ) ⇒ ¬Commis(x, y )).
(F4)
Il y a des crimes.
∃x(Crime(x)). (F5)

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 42 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

But
Il y a des gens malhonnêtes non arrêtés.

On cherche à montrer
{F 1, F 2, F 3, F 4, F 5, ¬Q} |= ∅

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 43 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

But
Il y a des gens malhonnêtes non arrêtés.
∃x(Malhonnete(x) ∧ ¬Arrete(x)), (Q).
∀x(¬(Malhonnete(x) ∧ ¬Arrete(x))), (¬Q).

On cherche à montrer
{F 1, F 2, F 3, F 4, F 5, ¬Q} |= ∅

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 43 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

Traduction en CNF
Pour tout crime, il y a quelqu’un qui l’a commis.
∀x(¬Crime(x) ∨ ∃yCommis(y , x)). (F1)
∀x∃y (¬Crime(x) ∨ Commis(y , x)).
∀x(¬Crime(x) ∨ Commis(f (x), x)).
¬Crime(x) ∨ Commis(f (x), x). (F1)

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 44 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

Traduction en CNF
Seuls les malhonnêtes commettent des crimes.
∀x, y (Crime(x) ∧ Commis(y, x) ⇒ Malhonnete(y )). (F2)
∀x, y (¬(Crime(x) ∧ Commis(y, x)) ∨ Malhonnete(y )).
(¬Crime(x) ∨ ¬Commis(y , x) ∨ Malhonnete(y )). (F2)

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 45 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

Traduction en CNF
Ne sont arrêtés que les gens malhonnêtes.
∀x(Arrete(x) ⇒ Malhonnete(x)). (F3)
∀x(¬Arrete(x) ∨ Malhonnete(x)).
¬Arrete(x) ∨ Malhonnete(x). (F3).

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 46 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

Traduction en CNF
Les gens malhonnêtes arrêtés ne commettent pas de crimes.
∀x, y (Malhonnete(x) ∧ Arrete(x) ∧ Crime(y ) ⇒ ¬Commis(x, y )).
(F4)
∀x, y (¬(Malhonnete(x)∧Arrete(x)∧Crime(y ))∨¬Commis(x, y )).
∀x, y (¬Malhonnete(x) ∨ ¬Arrete(x) ∨ ¬Crime(y) ∨
¬Commis(x, y )).

x, y (¬Malhonnete(x) ∨ ¬Arrete(x) ∨ ¬Crime(y ) ∨ ¬Commis(x, y)).


(F4).

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 47 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

Traduction en CNF
Il y a des crimes.
∃x(Crime(x)). (F5).
(Crime(C1)). (F5).

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 48 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

Traduction en CNF
Il y a des gens malhonnêtes non arrêtés.
∀x(¬(Malhonnete(x) ∧ ¬Arrete(x))), ¬(Q)
∀x(¬Malhonnete(x) ∨ Arrete(x))
¬Malhonnete(x) ∨ Arrete(x), (¬Q)

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 49 / 49
Introduction Syntaxe Sémantique inférence

Exemple 1

¬Crime(x) ∨ Commis(f (x), x). (F1)


¬Crime(x) ∨ ¬Commis(y , x) ∨ Malhonnete(y). (F2)
¬Arrete(x) ∨ Malhonnete(x). (F3)
¬Malhonnete(x) ∨ ¬Arrete(x) ∨ ¬Crime(y ) ∨ ¬Commis(x, y ).
(F4)
Crime(C1). (F5)
¬Malhonnete(x) ∨ Arrete(x). (¬Q)

Rym Guibadj, Fabien Teytaud (LISIC, ULCO, EILCO) Logique des prédicats 50 / 49

Vous aimerez peut-être aussi