Professional Documents
Culture Documents
pour l’informatique
P. Clemente
Bibliographie
Outils
http ://www.irisa.fr/celtique/genet/Crypt/cours.pdf
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 13/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Chapitre 1.
Logique Propositionnelle
Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration
Introduction
Vérité de langage
Vérité de fait
Cet énoncé n’est pas une vérité de langage, car il exprime un fait
[quasiment] inconditionnel. Cet énoncé est une vérité de fait.
Vérité logique
Considérons enfin l’énoncé suivant :
Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration
Vocabulaire
Définitions
Propositions et énoncés
(p ⇒ q) ⇒(¬q ⇒ ¬p).
Substitution uniforme
Remarques :
Deux types de symboles sont apparus : X, Y , et (,).
Les parenthèses permettent de déterminer, dans une certaine
mesure, l’ordre dans lequel les règles précédentes ont été
appliquées.
Par exemple, dans la formule
(p ∧ (q ∨ r)), (1)
Exercice 1
Exercice 1
Exercice 2
Exercice 2
Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration
Sémantique
X ¬X
V F
F V
X Y X ∧Y X ∨Y X⇒Y X⇔Y
V V V V V V
V F F V F F
F V F V V F
F F F F V V
Exercice 3
Exercice 3
Exercice 3
Exercice 3
Exercice 3
Formule consistante
Formule consistante
Formule inconsistante
Ensemble de formules
Ensemble de formules
Formules valides
p ¬p p ∧ ¬p ¬(p ∧ ¬p)
V F F V
F V F V
Tautologies
|= A
exprime que A est une tautologie.
E |= A
Problème de la déduction
Problème de la déduction
Principe de déduction
Principe de déduction
Substitution uniforme
1 Il y a 2 modèles pour E :
I1 : P = V, Q = V, R = V ;
I2 : P = V, Q = V, R = F.
2 Il existe au moins un modèle, donc E est consistant.
3 Il n’existe aucun modèle pour E 0 , car P ne peut être V et F en
même temps. Donc E 0 est inconsistant.
1 Il y a 2 modèles pour E :
I1 : P = V, Q = V, R = V ;
I2 : P = V, Q = V, R = F.
2 Il existe au moins un modèle, donc E est consistant.
3 Il n’existe aucun modèle pour E 0 , car P ne peut être V et F en
même temps. Donc E 0 est inconsistant.
1 Il y a 2 modèles pour E :
I1 : P = V, Q = V, R = V ;
I2 : P = V, Q = V, R = F.
2 Il existe au moins un modèle, donc E est consistant.
3 Il n’existe aucun modèle pour E 0 , car P ne peut être V et F en
même temps. Donc E 0 est inconsistant.
1 Il y a 2 modèles pour E :
I1 : P = V, Q = V, R = V ;
I2 : P = V, Q = V, R = F.
2 Il existe au moins un modèle, donc E est consistant.
3 Il n’existe aucun modèle pour E 0 , car P ne peut être V et F en
même temps. Donc E 0 est inconsistant.
1 Il y a 2 modèles pour E :
I1 : P = V, Q = V, R = V ;
I2 : P = V, Q = V, R = F.
2 Il existe au moins un modèle, donc E est consistant.
3 Il n’existe aucun modèle pour E 0 , car P ne peut être V et F en
même temps. Donc E 0 est inconsistant.
Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration
Algorithme de Quine v0
1 On construit un arbre binaire de formules, orienté du haut (la
racine = formule de départ) vers le bas (les feuilles =
propositions).
2 À chaque niveau de l’arbre, on choisit une variable
propositionnelle de la formule à laquelle on substitue la valeur
V pour un arc et F pour l’autre arc.
3 On applique les règles de simplification (cf. ci-après) puis on
poursuit la construction de l’arbre vers le bas, en interprétant
une autre variable propositionnelle.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 60/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique
Algorithme de Quine v0
1 On construit un arbre binaire de formules, orienté du haut (la
racine = formule de départ) vers le bas (les feuilles =
propositions).
2 À chaque niveau de l’arbre, on choisit une variable
propositionnelle de la formule à laquelle on substitue la valeur
V pour un arc et F pour l’autre arc.
3 On applique les règles de simplification (cf. ci-après) puis on
poursuit la construction de l’arbre vers le bas, en interprétant
une autre variable propositionnelle.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 60/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique
¬F −→ V ¬V −→ F
V ⇒ X −→ X X ⇒ V −→ V
F ⇒ X −→ V X ⇒ F −→ ¬X
V ∨ X ou X ∨ V −→ V F ∨ X ou X ∨ F −→ X
V ∧ X ou X ∧ V −→ X F ∧ X ou X ∧ F −→ F
V ⇔ X ou X ⇔ V −→ X F ⇔ X ou X ⇔ F −→ ¬X
Exemple
Exemple
Exercice 4
Exercice 5
Exemple
h“` ´ ` ´” i
s ⇒ (b ∨ t) ∧ (b ∨ a) ⇒ (r ∧ m) ∧ ¬r ⇒ (s ⇒ t)
s ¬s
h“` ´ ` ´” i
V ⇒ (b∨t) ∧ (b∨a) ⇒ (r∧m) ∧¬r ⇒ (V ⇒ t) h“` ´ ` ´” i
h“ F ⇒ (b∨t) ∧ (b∨a) ⇒ (r∧m) ∧¬r ⇒ (F ⇒ t)
` ´” i
(b ∨ t) ∧ (b ∨ a) ⇒ (r ∧ m) ∧ ¬r ⇒ t h“ ` ´” i
V ∧ (b ∨ a) ⇒ (r ∧ m) ∧ ¬r ⇒ V
V
b ¬b
h“ ` ´” i
(V ∨ t) ∧ (V ∨ a) ⇒ (r ∧ m) ∧ ¬r ⇒ t
h“ ` ´” i h“ ` ´” i
V ∧ V ⇒ (r ∧ m) ∧ ¬r ⇒ t (F ∨ t) ∧ (F ∨ a) ⇒ (r ∧ m) ∧ ¬r ⇒ t
h“ ” i h“ ` ´” i
V ⇒ (r ∧ m) ∧ ¬r ⇒ t t ∧ a ⇒ (r ∧ m) ∧ ¬r ⇒ t
h i
(r ∧ m) ∧ ¬r ⇒ t
r ¬r r ¬r
h“ ` ´” i
h i h i h“ ` ´” i t ∧ a ⇒ (F ∧ m) ∧V ⇒t
(V ∧ m) ∧ F ⇒ t (F ∧ m) ∧ V ⇒ t t ∧ a ⇒ (V ∧ m) ∧F ⇒t “ ` ´”
F⇒t F⇒t F⇒t t∧ a⇒F ⇒t
“ ”
V V V t ∧ ¬a ⇒ t
t ¬t
(V ∧ ¬a) ⇒ V (F ∧ ¬a) ⇒ F
¬a ⇒ V F⇒F
V V
[(p ∧ q) ⇒ r] ⇒ [p ⇒ (q ⇒ r)].
(r ⇒ (p ⇒ ¬q)) ⇒ (r ⇒ q).
Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration
Équivalences démontrables.
|= (X ∧ X) ⇔ X Idempotence
|= (X ∨ X) ⇔ X
|= (X ∧Y) ⇔ (Y ∧ X) Commutativité
|= (X ∨Y) ⇔ (Y ∨ X)
|= (X ∧ (Y ∧ Z)) ⇔ ((X ∧ Y ) ∧ Z) Associativité
|= (X ∨ (Y ∨ Z)) ⇔ ((X ∨ Y ) ∨ Z)
|= (X ∧ (Y ∨ Z)) ⇔ ((X ∧ Y ) ∨ (X ∧ Z) Distributivité
|= (X ∨ (Y ∧ Z)) ⇔ ((X ∨ Y ) ∧ (X ∨ Z)
|= (X ∧ (X ∨ Y )) ⇔ X Lois d’absorption
|= (X ∨ (X ∧ Y )) ⇔ X
|= ¬(X ∨ Y ) ⇔ (¬X ∧ ¬Y ) Lois de De Morgan
|= ¬(X ∧ Y ) ⇔ (¬X ∨ ¬Y )
|= (X ⇒ Y ) ⇔ (¬Y ⇒ ¬X) Contraposée
|= (X ∨ Y ) ⇔ (¬X ⇒ Y ) Définitions
|= (X ∧ Y ) ⇔ ¬(X ⇒ ¬Y )
|= (X ⇔ Y ) ⇔ ((X ⇒ Y ) ∧ (Y ⇒ X))
|= (X ∧ V) ⇔ X Élement neutre
|= (X ∨ F) ⇔ X
|= (X ∧ F) ⇔ F Élement absorbant
|= (X ∨ V) ⇔ V
|= (X ∨ ¬X) ⇔ V Complémentarité
|= (X ∧ ¬X) ⇔ F
Dualité de formules
Principe de dualité 1
Si dans une équivalence logique ne comportant pas le symbole ⇒,
on échange les rôles de ∧ et ∨, d’une part, et de V et F d’autre part,
on obtient une nouvelle équivalence logique.
Dualité de formules
Principe de dualité 1
Si dans une équivalence logique ne comportant pas le symbole ⇒,
on échange les rôles de ∧ et ∨, d’une part, et de V et F d’autre part,
on obtient une nouvelle équivalence logique.
Principe de dualité 2
Dans une formule logique, si on échange les rôles de ∧ et ∨, d’une
part, et de V et F d’autre part, et en remplaçant, de plus, chaque
proposition par sa négation, on obtient une formule duale.
Principe de dualité 2
Dans une formule logique, si on échange les rôles de ∧ et ∨, d’une
part, et de V et F d’autre part, et en remplaçant, de plus, chaque
proposition par sa négation, on obtient une formule duale.
Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration
Clause (1)
(l1 ∨ l2 ∨ ... ∨ ln ).
Clause (1)
(l1 ∨ l2 ∨ ... ∨ ln ).
Clause (2)
Clause (2)
(c1 ∧ c2 ∧ ... ∧ cn )
Théorème 1
Toute formule du calcul des propositions admet une FNC lui étant
logiquement équivalente.
(c1 ∧ c2 ∧ ... ∧ cn )
Théorème 1
Toute formule du calcul des propositions admet une FNC lui étant
logiquement équivalente.
FNC et duale
Preuve du théorème 1
L’algorithme ci-dessous est une preuve du théorème 1.
Élimination de l’implication :
(p ⇒ (q ⇒ r)) ⇒ ((p ∧ s) ⇒ r);
¬(p ⇒ (q ⇒ r)) ∨ ((p ∧ s) ⇒ r);
¬(¬p ∨ (q ⇒ r)) ∨ (¬(p ∧ s) ∨ r);
¬(¬p ∨ (¬q ∨ r)) ∨ (¬(p ∧ s) ∨ r);
Transfert de la négation :
¬(¬p ∨ (¬q ∨ r)) ∨ (¬(p ∧ s) ∨ r);
(¬¬p ∧ ¬(¬q ∨ r)) ∨ ((¬p ∨ ¬s) ∨ r);
(¬¬p ∧ (¬¬q ∧ ¬r)) ∨ ((¬p ∨ ¬s) ∨ r);
(p ∧ (q ∧ ¬r)) ∨ ((¬p ∨ ¬s) ∨ r);
Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration
Fin Si
S = {p ∨ q, p ∨ r, ¬q ∨ ¬r, ¬p}
0 ∪ S 00 ) est inconsistant :
Visiblement l’ensemble (S¬p
0 00
(S¬p ∪ S ) est inconsistant si et seulement si {F, ¬q ∨ ¬r} |= F,
c’est-à-dire (F ∧ (¬q ∨ ¬r)) ⇒ F, ce qui est évident.
Il suffit donc de tester l’inconsistance de U = (Sp0 ∪ S 00 ).
S = {p ∨ q, p ∨ r, ¬q ∨ ¬r, ¬p}
0 ∪ S 00 ) est inconsistant :
Visiblement l’ensemble (S¬p
0 00
(S¬p ∪ S ) est inconsistant si et seulement si {F, ¬q ∨ ¬r} |= F,
c’est-à-dire (F ∧ (¬q ∨ ¬r)) ⇒ F, ce qui est évident.
Il suffit donc de tester l’inconsistance de U = (Sp0 ∪ S 00 ).
S = {p ∨ q, p ∨ r, ¬q ∨ ¬r, ¬p}
0 ∪ S 00 ) est inconsistant :
Visiblement l’ensemble (S¬p
0 00
(S¬p ∪ S ) est inconsistant si et seulement si {F, ¬q ∨ ¬r} |= F,
c’est-à-dire (F ∧ (¬q ∨ ¬r)) ⇒ F, ce qui est évident.
Il suffit donc de tester l’inconsistance de U = (Sp0 ∪ S 00 ).
{h, h ⇒ (p ∨ q), p ⇒ c, q ⇒ c} |= c,
Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration
Introduction
Introduction
Principe de résolution
Pour engendrer des conséquences logiques, on utilise le principe
simple suivant :
Soit A, B et X des formules.
Supposons que les deux formules (A ∨ X) et (B ∨ ¬X) sont
vraies.
Si X est vrai aussi, on en déduit que B est vrai.
Si X est faux, on en déduit que A est vrai.
Dans les deux cas, (A ∨ B) est vrai, ce qui s’écrit :
{A ∨ X, B ∨ ¬X} |= (A ∨ B),
{¬X ⇒ A, X ⇒ B} |= (A ∨ B).
Principe de résolution
Pour engendrer des conséquences logiques, on utilise le principe
simple suivant :
Soit A, B et X des formules.
Supposons que les deux formules (A ∨ X) et (B ∨ ¬X) sont
vraies.
Si X est vrai aussi, on en déduit que B est vrai.
Si X est faux, on en déduit que A est vrai.
Dans les deux cas, (A ∨ B) est vrai, ce qui s’écrit :
{A ∨ X, B ∨ ¬X} |= (A ∨ B),
{¬X ⇒ A, X ⇒ B} |= (A ∨ B).
Règle de résolution
Corollaire
Les FNC S et S ∪{r} sont équivalentes. La clause r est alors appelée
[clause] résolvante des clauses s1 et s2 .
Règle de résolution
Corollaire
Les FNC S et S ∪{r} sont équivalentes. La clause r est alors appelée
[clause] résolvante des clauses s1 et s2 .
Règle de résolution
Corollaire
Les FNC S et S ∪{r} sont équivalentes. La clause r est alors appelée
[clause] résolvante des clauses s1 et s2 .
S = {p ∨ q, p ∨ r, ¬q ∨ ¬r, ¬p}
(déjà établie précédemment).
S = {p ∨ q, p ∨ r, ¬q ∨ ¬r, ¬p}
(déjà établie précédemment).
{h, h ⇒ (p ∨ q), p ⇒ c, q ⇒ c} |= c,
{h, h ⇒ (p ∨ q), p ⇒ c, q ⇒ c} |= c,
Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration
Système formel
En général, n ≤ 2.
Exemple — Modus ponens
La règle dite du modus ponens permet de déduire n’importe quelle
formule B à partir des formules A ⇒ B et A. On note cette règle :
A⇒B A
M odus ponens
B
En général, n ≤ 2.
Exemple — Modus ponens
La règle dite du modus ponens permet de déduire n’importe quelle
formule B à partir des formules A ⇒ B et A. On note cette règle :
A⇒B A
M odus ponens
B
A⇒B A
M odus ponens
B
A⇒B A
M odus ponens
B
Exemple
Concernant le principe de résolution, on a donc totale équivalence
entre l’écriture : {A ∨ X, B ∨ ¬X} |= (A ∨ B) et
A∨X B ∨ ¬X
Resolution
A∨B
qui peut aussi s’écrire : {¬X ⇒ A, X ⇒ B} |= (A ∨ B) et
correspond à la règle :
¬X ⇒ A X⇒B
Resolution
A∨B
Exemple
Concernant le principe de résolution, on a donc totale équivalence
entre l’écriture : {A ∨ X, B ∨ ¬X} |= (A ∨ B) et
A∨X B ∨ ¬X
Resolution
A∨B
qui peut aussi s’écrire : {¬X ⇒ A, X ⇒ B} |= (A ∨ B) et
correspond à la règle :
¬X ⇒ A X⇒B
Resolution
A∨B
Théorie de la preuve
Définition — Démonstration
Soit A une formule dans un système formel S. Une démonstration
(ou preuve) de A dans S est une suite finie de formules
(A1 , ..., An ) dans lesquelles :
An = A ;
∀i ∈ [1..n], Ai est soit :
l’instance d’un axiome de S ;
une conséquence des énoncés précédents (A1 , ..., Ai−1 ) par
l’application d’une règle d’inférence de S.
Définition — Théorème
Une formule A est un théorème de S, si c’est le dernier élément
d’une démonstration. On le note ` A. En d’autres termes, A est un
théorème s’il en existe une preuve.
Déduction
Définition — Déduction
Soit A une formule dans un système formel S. Soit H un ensemble
d’hypothèse {H1 , ..., Hn }. Une déduction de A à partir de H est
une suite finie de formules A1 , ...An dans lesquelles :
An = A ;
∀i ∈ [1..n], soit :
Ai est l’instance d’un axiome de S ;
Ai ∈ H
Ai est une conséquence des énoncés précédents (A1 , ..., Ai−1 )
par l’application d’une règle d’inférence de S.
On note alors : H |= A. On dit aussi que H est un modèle de A.
Exercice
Exercice
Réponse :
Une déduction à partir d’un ensemble d’hypothèses vide est une
preuve (cf. déf. preuve). F est donc un théorème, démontrable
uniquement à partir des axiomes.
Définition. Syllogisme.
A⇒B B⇒C
Syllogisme
A⇒C
A⇒B A
M odus ponens
B
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 133/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration
Chapitre 2.
Logique prédicative
Introduction
Syntaxe
Sémantique du calcul des prédicats
Formes prénexes et formes normales
Formes de Skolem, formes clausales
Aspects déductifs et Herbrand
Introduction (1)
Introduction (1)
Introduction (1)
Introduction (1)
Introduction (1)
Introduction (2)
(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.
Introduction (2)
(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.
Introduction (2)
(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.
Introduction (2)
(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.
Introduction (2)
(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.
Introduction (2)
(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.
Introduction (2)
(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.
Introduction (2)
(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.
Introduction (3)
Introduction (3)
Introduction (3)
Introduction (3)
Introduction (3)
Introduction (3)
Introduction (4)
Introduction (4)
Introduction (5)
Introduction (6)
Introduction
Syntaxe
Sémantique du calcul des prédicats
Formes prénexes et formes normales
Formes de Skolem, formes clausales
Aspects déductifs et Herbrand
Exemples
(¬(p)) ∧ (q) devient ¬p ∧ q ;
((¬(p)) ∧ (q)) ⇒ (r) devient ¬p ∧ q ⇒ r ;
Par contre, (¬(p)) ∧ ((q) ⇒ (r)) devient ¬p ∧ (q ⇒ r).
a. ∀(x, y) h. ∀xR(x, x)
b. α(x, y) i. ∀x∃yR(x, x)
c. g(x, y) j. ∃y(y = c ∧ P (y))
d. R(g(x, y)) k. ∃x(P (f (x)) ∧ ∀yR(x, y))
e. P (R(x, y)) l. (∃xP (f (x)) ∧ ∀yR(x, y))
f. x = g(x, y) m. ∀x∀xP (g(f (x), x))
g. R(f (x), g(y, c)) n. ∀x(P (x) ⇒ ∃yR(x, y))
Occurrences de variables
Exemple
Dans la formule suivante, les occurrences de x et y sont en
couleurs : ∀x(P (x) ⇒ ∃yR(x, y))
Exemple de prédicat
(x < y) ou encore Inferieur (x, y) avec deux variables libres.
Exemple de prédicat
∀x(x < z) dépend de la variable libre z.
Exemple de prédicat
(x < y) ou encore Inferieur (x, y) avec deux variables libres.
Exemple de prédicat
∀x(x < z) dépend de la variable libre z.
Exemple de prédicat
(x < y) ou encore Inferieur (x, y) avec deux variables libres.
Exemple de prédicat
∀x(x < z) dépend de la variable libre z.
f. x = g(x, y)
g. R(f (x), g(y, c))
h. ∀xR(x, x)
i. ∀x∃yR(x, x)
j. ∃y(y = c ∧ P (y))
k. ∃x(P (f (x)) ∧ ∀yR(x, y))
l. (∃xP (f (x)) ∧ ∀yR(x, y))
m. ∀x∀xP (g(f (x), x))
n. ∀x(P (x) ⇒ ∃yR(x, y))
i. ∀x∃yR(x, x)
j. ∃y(y = c ∧ P (y))
k. ∃x(P (f (x)) ∧ ∀yR(x, y))
l. (∃xP (f (x)) ∧ ∀yR(x, y))
i. ∀x∃yR(x, x)
j. ∃y(y = c ∧ P (y))
k. ∃x(P (f (x)) ∧ ∀yR(x, y))
l. (∃xP (f (x)) ∧ ∀yR(x, y))
i. ∀x∃yR(x, x)
j. ∃y(y = c ∧ P (y))
k. ∃x(P (f (x)) ∧ ∀yR(x, y))
l. (∃xP (f (x)) ∧ ∀yR(x, y))
Modélisation – Exercice
Introduction
Syntaxe
Sémantique du calcul des prédicats
Formes prénexes et formes normales
Formes de Skolem, formes clausales
Aspects déductifs et Herbrand
Domaine d’interprétation
Une interprétation I est un triplet (D, Ic , Iv ) ayant les propriétés
suivantes :
D : ensemble non vide ; c’est le domaine d’interprétation (ou
domaine du ‘discours’) ; appelé aussi domaine de base ;
Exemple : D1 = {Alice, Bob, Claude, Rex, ...}.
Ic : fonction qui associe à chaque symbole de fonction f
d’arité n, une application Ic (f ) de Dn dans D (y compris pour
les constantes) ;
Exemples de fonctions : pere/1, chien/1, age/1.
Exemples de constantes : a et b.
Ic associe également à chaque symbole de prédicat P d’arité
m, une application Ic (P ) de Dm dans {V; F} ;
Exemples de prédicats : EstU nHumain/1, P arent/2.
Iv : fonction qui associe à toute variable un élément de D.
Exemple : Iv (x) = Alice.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 160/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats
Domaine d’interprétation
Une interprétation I est un triplet (D, Ic , Iv ) ayant les propriétés
suivantes :
D : ensemble non vide ; c’est le domaine d’interprétation (ou
domaine du ‘discours’) ; appelé aussi domaine de base ;
Exemple : D1 = {Alice, Bob, Claude, Rex, ...}.
Ic : fonction qui associe à chaque symbole de fonction f
d’arité n, une application Ic (f ) de Dn dans D (y compris pour
les constantes) ;
Exemples de fonctions : pere/1, chien/1, age/1.
Exemples de constantes : a et b.
Ic associe également à chaque symbole de prédicat P d’arité
m, une application Ic (P ) de Dm dans {V; F} ;
Exemples de prédicats : EstU nHumain/1, P arent/2.
Iv : fonction qui associe à toute variable un élément de D.
Exemple : Iv (x) = Alice.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 160/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats
Domaine d’interprétation
Une interprétation I est un triplet (D, Ic , Iv ) ayant les propriétés
suivantes :
D : ensemble non vide ; c’est le domaine d’interprétation (ou
domaine du ‘discours’) ; appelé aussi domaine de base ;
Exemple : D1 = {Alice, Bob, Claude, Rex, ...}.
Ic : fonction qui associe à chaque symbole de fonction f
d’arité n, une application Ic (f ) de Dn dans D (y compris pour
les constantes) ;
Exemples de fonctions : pere/1, chien/1, age/1.
Exemples de constantes : a et b.
Ic associe également à chaque symbole de prédicat P d’arité
m, une application Ic (P ) de Dm dans {V; F} ;
Exemples de prédicats : EstU nHumain/1, P arent/2.
Iv : fonction qui associe à toute variable un élément de D.
Exemple : Iv (x) = Alice.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 160/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats
Domaine d’interprétation
Une interprétation I est un triplet (D, Ic , Iv ) ayant les propriétés
suivantes :
D : ensemble non vide ; c’est le domaine d’interprétation (ou
domaine du ‘discours’) ; appelé aussi domaine de base ;
Exemple : D1 = {Alice, Bob, Claude, Rex, ...}.
Ic : fonction qui associe à chaque symbole de fonction f
d’arité n, une application Ic (f ) de Dn dans D (y compris pour
les constantes) ;
Exemples de fonctions : pere/1, chien/1, age/1.
Exemples de constantes : a et b.
Ic associe également à chaque symbole de prédicat P d’arité
m, une application Ic (P ) de Dm dans {V; F} ;
Exemples de prédicats : EstU nHumain/1, P arent/2.
Iv : fonction qui associe à toute variable un élément de D.
Exemple : Iv (x) = Alice.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 160/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats
Propriétés
Une formule de F de L est universellement valide ssi pour toute
interprétation et pour toute valuation, F est V.
Une formule F est dite valide ssi il existe une interprétation I telle
que, pour toute valuation, F soit V(I |= F ). I est un modèle de F .
Une formule de F est dite satisfiable ssi il existe une interprétation
I et une valuation, telles que F soitV.
Une formule de F est dite contradictoire ssi pour toute
interprétation I et pour toute valuation, F est F.
Propriétés
Une formule de F de L est universellement valide ssi pour toute
interprétation et pour toute valuation, F est V.
Une formule F est dite valide ssi il existe une interprétation I telle
que, pour toute valuation, F soit V(I |= F ). I est un modèle de F .
Une formule de F est dite satisfiable ssi il existe une interprétation
I et une valuation, telles que F soitV.
Une formule de F est dite contradictoire ssi pour toute
interprétation I et pour toute valuation, F est F.
Instances de formules
La notion d’instance du calcul des proposisions se généralise à la
logique des prédicats avec la restrictions suivantes :
Seules les variables libres peuvent être instanciées.
Modèle de formule
Schémas concernant ∃ :
v. ∃x(A ∨ B) ⇔ (∃xA ∨ ∃xB)
vi. ∃x(A ∧ B) ⇒ (∃xA ∧ ∃xB)
vii. ∃x(A ⇒ B) ⇔ (∃xA ⇒ ∃xB)
Schéma concernant ¬ :
Introduction
Syntaxe
Sémantique du calcul des prédicats
Formes prénexes et formes normales
Formes de Skolem, formes clausales
Aspects déductifs et Herbrand
Théorème 4
Toute formule de la logique des prédicats admet une forme prénexe
lui étant logiquement équivalente.
Suite de l’exemple :
Suite de l’exemple :
Suite de l’exemple :
Suite de l’exemple :
Suite de l’exemple :
Suite de l’exemple :
Suite de l’exemple :
∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ R(a, u, y))].
devient :
∀x[P (x) ∧ ∀y∃u(Q(u, y) ∨ R(a, u, y))].
Suite de l’exemple :
∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ R(a, u, y))].
devient :
∀x[P (x) ∧ ∀y∃u(Q(u, y) ∨ R(a, u, y))].
Suite de l’exemple :
∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ R(a, u, y))].
devient :
∀x[P (x) ∧ ∀y∃u(Q(u, y) ∨ R(a, u, y))].
Introduction
Syntaxe
Sémantique du calcul des prédicats
Formes prénexes et formes normales
Formes de Skolem, formes clausales
Aspects déductifs et Herbrand
Suite de l’exemple :
Dans :
∀x∀y∃u[P (x) ∧ (Q(u, y) ∨ R(a, u, y))]
On remplace u par f (x, y) :
Suite de l’exemple :
Dans :
∀x∀y∃u[P (x) ∧ (Q(u, y) ∨ R(a, u, y))]
On remplace u par f (x, y) :
Suite de l’exemple :
Devient :
Suite de l’exemple :
Devient :
Skolémisation : explications
De quel droit supprime-t-on les quantifications existentielles ?
Soit la formule F = ∀x∃y(¬P (x) ∨ R(x, y)). La forme
skolémisée est Fsko = ∀x(¬P (x) ∨ R(x, f (x))).
En effet, si pour chaque x, il existe y tel qu’une propriété
R(x, y) soit vérifiée, alors on peut introduire une fonction
f (x) = y telle que, ∀x, R(x, f (x)) est vérifiée.
Exemple
Soit par exemple la formule A = ∀x∃y f (x) = y.
On remplace y par une fonction qui à x associe y :
Asko = ∃g∀x f (x) = g(x).
Théorème 5.
Soit F une formule et Fsko sa forme de Skolem :
F admet un modèle ⇔ Fsko en admet un.
Autrement dit, F est satisfiable ⇔ Fsko l’est.
Corallaire du théorème 5.
Soit F une formule et Fsko sa forme de Skolem :
La formule initiale F est insatisfiable ⇔sa forme skolémisée
Fsko l’est.
Autrement dit : la négation de la formule initiale est prouvable
si et seulement si la négation de sa forme skolémisée l’est :
` ¬F ⇔ ` ¬Fsko .
Théorème 6
Toute forme de Skolem admet une forme clausale équivalente.
Théorème 6
Toute forme de Skolem admet une forme clausale équivalente.
Exercice
Les dragons
Considérons les énoncés suivants :
1 Tous les enfants d’un dragon peuvent voler
2 Archie a au moins un parent vert ou rose
3 Un dragon est heureux si tous ses enfants peuvent voler
4 Les dragons verts peuvent voler
5 Un dragon est vert s’il a au moins un parent vert ou rose
Formaliser les énoncés 1 à 5 puis mettre sous forme clausale la
conjonction des énoncés 3 à 5.
Introduction
Syntaxe
Sémantique du calcul des prédicats
Formes prénexes et formes normales
Formes de Skolem, formes clausales
Aspects déductifs et Herbrand
Théorème de Herbrand
Exemple
Soit C = {Homme(x), ¬Homme(f (a))}.
C 0 = {Homme(f (a)), ¬Homme(f (a))} est un ensemble de
réalisations de bases insatisfiable.
Corollaire 1. du théorème 7
Un ensemble de clauses C est satisfiable ssi tout ensemble fini de
réalisations de base est satisfiable.
Théorème de Herbrand
Exemple
Soit C = {Homme(x), ¬Homme(f (a))}.
C 0 = {Homme(f (a)), ¬Homme(f (a))} est un ensemble de
réalisations de bases insatisfiable.
Corollaire 1. du théorème 7
Un ensemble de clauses C est satisfiable ssi tout ensemble fini de
réalisations de base est satisfiable.
Preuve de validité
Technique de résolution
Idée no 1 : utiliser la technique de résolution pour produire F
ou bien une conséquence logique attendue (e.g. théorème).
⇒ Comment adapter la résolution de la logique des
propositions à la logique du premier ordre ?
La résolution de la logique des propositions utilise des FNC,
donc on doit pouvoir la transposer à la LPO.
Exemple
Dans ∀x[P (x, y, z) ∧ Q(a, x)] ⇒ ∃uR(b, f (u), v), les instances
seront obtenues par substitutions sur {y/t1 , z/t2 , v/t3 }, avec
aucune occurrence de x et u dans t1 , t2 ni t3 .
Exemple
Pour :
σ = {x/a, y/f (a), z/g(f (b))} ;
F = P (x, y, z) ;
On obtient σ[F ] = P (a, f (a), g(f (b))).
Définition — Unificateur
Une substitution σ est appelée unificateur d’un ensemble de
formule F1 , ..., Fn ssi σ[F1 ] = ... = σ[Fn ]. L’ensemble F1 , ..., Fn est
alors dit unifiable (ou encore σ-unifiable).
Exemples
Soit l’ensemble F = {P (a, x), P (a, f (y))}.
σ1 = {x/f (a), y/a} est un unificateur possible de F :
σ1 [F ] = {P (a, f (a)), P (a, f (a))}
σ2 = {x/f (z), y/z} est un autre unificateur possible de F :
σ2 [F ] = {P (a, f (z)), P (a, f (z))}
Exemple
L’unificateur minimal de {P (a, x), P (a, f (y))} est {x/f (y)}.
Exemple
Pour E = {P (x, f (y, z)), P (x, g(x))}, l’ensemble de discordance
est {f (y, z), g(x)}.
Principe de résolution
On peut maintenant utiliser le théorème de Herbrand et l’unification
pour appliquer le principe de résolution au calcul des prédicats.
On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.
On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.
On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.
On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.
On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.
On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.
On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.
On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.
On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.
On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.
Chapitre 3.
PROLOG
Introduction
Syntaxe
Principe de fonctionnement
Limites de logiques classiques
Langages impératifs
séquencement des opération totalement spécifié
contrôle total du flot d’exécution
objets et structures du langage multiples
syntaxe complexe mais riche (ou lourde :-))
exemples : Pascal, C, C+, C++, Java, ...
Langages fonctionnels
tout est fonction
base mathématique forte : lambda-calcul
contrôle d’exécution délégué à l’interprète
utilisation intensive de la récursivité
exemples : Lisp, Scheme, Haskell, ...
Langages impératifs
séquencement des opération totalement spécifié
contrôle total du flot d’exécution
objets et structures du langage multiples
syntaxe complexe mais riche (ou lourde :-))
exemples : Pascal, C, C+, C++, Java, ...
Langages fonctionnels
tout est fonction
base mathématique forte : lambda-calcul
contrôle d’exécution délégué à l’interprète
utilisation intensive de la récursivité
exemples : Lisp, Scheme, Haskell, ...
Historique
Utilisé pour
prototyper très rapidement,
tester des idées . . .
Mais aussi pour développer des applications
Dassault Électronique
ECRC (Centre de recherche commun Bull, Siemens)
Orange
...
PROLOG (1)
PROgrammation LOGique
PROLOG : un exemple de langage de programmation logique
On n’écrit que des expressions logique dans le langage
Syntaxe très dépouillé
Calcul des prédicats restreint aux clauses de Horn
Paradigme de programmation
Nativement récursif (mais séquentialité possible)
Non-déterminisme
Forward-checking (profondeur d’abord) avec retour arrière et
coupure possible
Aussi un environnement d’exécution
Interpréteur de commande ou programme compilé stand-alone
ou bibliothèque
Non-déterminisme
PROLOG (2)
Principes de base
L’univers PROLOG est une base de connaissances décrivant
l’état du monde à l’aide de relations, les prédicats, portant
sur des entités, les termes.
On n’écrit que des clauses de Horn : au plus un littéral positif
un seul littéral positif : “fait” ;
un littéral positif et au moins un négatif : “règle” ;
pas de littéral positif : “requête” ou question posée PROLOG.
Les clauses de Horn permettent de :
Forcer le retour dans la base pour continuer la démonstration ;
Limiter le choix clause par clause.
Un prédicat particulier (=) correspond à l’unification.
% Règles
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).
masculin(jim).
Exemple
feminin(pam).
feminin(liz).
feminin(ann).
feminin(pat). Exemple
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).
masculin(jim).
Exemple
feminin(pam).
feminin(liz).
feminin(ann).
feminin(pat). Exemple
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).
masculin(jim).
Exemple
feminin(pam).
feminin(liz).
feminin(ann).
feminin(pat). Exemple
enfant(bob,pam).←
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).
masculin(jim).
Exemple
feminin(pam).
feminin(liz).
feminin(ann).
feminin(pat). Exemple
enfant(bob,pam).
enfant(bob,tom).←
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).
masculin(jim).
Exemple
feminin(pam).
feminin(liz).
feminin(ann).
feminin(pat). Exemple
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).←
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).
masculin(jim).
Exemple
feminin(pam).
feminin(liz).
feminin(ann).
feminin(pat). Exemple
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).←
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).
masculin(jim).
Exemple
feminin(pam).
feminin(liz).
feminin(ann).
feminin(pat). Exemple
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).←
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann).
feminin(pat).
Exemple
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
enfant(bob,pam).
enfant(bob,tom). Exemple
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
enfant(bob,pam).←
enfant(bob,tom). Exemple
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
enfant(bob,pam).
enfant(bob,tom).← Exemple
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom). Exemple
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom). Exemple
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).← Exemple
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob). Exemple
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob). Exemple
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).← Exemple
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob). Exemple
enfant(pat,bob).←
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob). Exemple
enfant(pat,bob).
enfant(tim,liz).←
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob). Exemple
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).←
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob). Exemple
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
←
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X)
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).←
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).← unif. : X=pam
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).← unif. : X=pam
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
Premières requêtes
Connaissances Exemple
masculin(tom).← Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).← unif. : X=pam
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim).← ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).← unif. : X=pam
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).← Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).← unif. : X=pam
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).←
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).← unif. : X=pam
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam).← Echec de ‘X=pam’ Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).← unif. : X=pam
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam). backtrack
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).←
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).← unif. : X=tom
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).← unif. : X=tom
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
X = tom ?
Premières requêtes
Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).← unif. : X=tom
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
X = tom ?
Déclarativité
Connaissances
Frere/2
masculin(tom).
masculin(tim). Considérons la requête suivante :
masculin(bob).
masculin(jim). Est-ce que bob est le frère de liz ?
feminin(pam).
feminin(liz).
?- frere(bob,liz).
feminin(ann).
feminin(pat).
enfant(bob,pam).
enfant(bob,tom).
Backtrack
enfant(liz,tom).
enfant(ann,bob). Le mécanisme de
enfant(pat,bob).
enfant(tim,liz). retour-arrière (backtrack)
enfant(jim,pat).
frere(X,Y) :-
assure la complétude de la
masculin(X), recherche
enfant(X,Z),
enfant(Y,Z).
Demander une nouvelle
solution revient à provoquer
un échec fictif pour forcer le
backtrack
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 255/260
Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Principe de fonctionnement
Connaissances
Frere/2
masculin(tom).
masculin(tim). Considérons la requête suivante :
masculin(bob).
masculin(jim). Est-ce que bob est le frère de liz ?
feminin(pam).
feminin(liz).
?- frere(bob,liz).
feminin(ann).
feminin(pat).
enfant(bob,pam).
enfant(bob,tom).
Backtrack
enfant(liz,tom).
enfant(ann,bob). Le mécanisme de
enfant(pat,bob).
enfant(tim,liz). retour-arrière (backtrack)
enfant(jim,pat).
frere(X,Y) :-
assure la complétude de la
masculin(X), recherche
enfant(X,Z),
enfant(Y,Z).
Demander une nouvelle
solution revient à provoquer
un échec fictif pour forcer le
backtrack
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 255/260
Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Principe de fonctionnement
Connaissances
Frere/2
masculin(tom).
masculin(tim). Considérons la requête suivante :
masculin(bob).
masculin(jim). Est-ce que bob est le frère de liz ?
feminin(pam).
feminin(liz).
?- frere(bob,liz).
feminin(ann).
feminin(pat).
enfant(bob,pam).
enfant(bob,tom).
Backtrack
enfant(liz,tom).
enfant(ann,bob). Le mécanisme de
enfant(pat,bob).
enfant(tim,liz). retour-arrière (backtrack)
enfant(jim,pat).
frere(X,Y) :-
assure la complétude de la
masculin(X), recherche
enfant(X,Z),
enfant(Y,Z).
Demander une nouvelle
solution revient à provoquer
un échec fictif pour forcer le
backtrack
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 255/260
Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Principe de fonctionnement
Propriétés (1)
Récursivité
Lien de parenté
Essayons de définir l’ancestralité : Écrire le prédicat ascendant/2 :
ascendant(X,Y) :-
enfant(Y,X). Condition d’arrêt en premier
ascendant(X,Z) :-
enfant(Z,Y), Information discrimante en premier
ascendant(X,Y).
Récursivité
Lien de parenté
Essayons de définir l’ancestralité : Écrire le prédicat ascendant/2 :
ascendant(X,Y) :-
enfant(Y,X). Condition d’arrêt en premier
ascendant(X,Z) :-
enfant(Z,Y), Information discrimante en premier
ascendant(X,Y).
Récursivité
Lien de parenté
Essayons de définir l’ancestralité : Écrire le prédicat ascendant/2 :
ascendant(X,Y) :-
enfant(Y,X). Condition d’arrêt en premier
ascendant(X,Z) :-
enfant(Z,Y), Information discrimante en premier
ascendant(X,Y).
Récursivité
Lien de parenté
Essayons de définir l’ancestralité : Écrire le prédicat ascendant/2 :
ascendant(X,Y) :-
enfant(Y,X). Condition d’arrêt en premier
ascendant(X,Z) :-
enfant(Z,Y), Information discrimante en premier
ascendant(X,Y).
Récursivité
Lien de parenté
Essayons de définir l’ancestralité : Écrire le prédicat ascendant/2 :
ascendant(X,Y) :-
enfant(Y,X). Condition d’arrêt en premier
ascendant(X,Z) :-
enfant(Z,Y), Information discrimante en premier
ascendant(X,Y).
Monotonie :
Ajouter un fait à un ensemble de règles n’enlève pas de
déductions de cet ensemble.
Intuitivement : ajouter une nouvelle connaissance à un système
ne fera qu’augmenter les déductions faites à partir de ce
système.
Les logiques monotones ne peuvent faire de la révision de
connaissance.
Exemple typique de révision de connaissance
vole(X) :- oiseau(X), not(pinguin(X)). oiseau(titi).
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 259/260
Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Limites de logiques classiques