Vous êtes sur la page 1sur 20

Rappels de logique pour

Prolog
Logique des propositions
Logique des prédicats
Unification
Logique des propositions
On définit :
z Les propositions : a
a, b
b, cc, …
z Les constantes : Vrai et Faux (V et F)

z Les connecteurs (ou opérateurs logique) :


z (
(conjonction,
j , ET))
z (disjonction, OU)
z ¬ (négation
(négation, NON)
z (implication)
Construction d’une proposition
z Une proposition est une expression qui est soit
vraie, soit fausse, donc interprétée dans
l’ensemble { Vrai, Faux }
z Si a et b sont des propositions
propositions,
alors ¬a, a b, a b, a ֜ b sont des propositions
z On définit l’interprétation associée à chaque
connecteur g grâce aux tables de vérité
Table de vérité

A B A‫ר‬B A‫ש‬B ¬A A B
V V V V F V
V F F V F F
F V F V V V
F F F F V V

A B s’interprète par « si A alors B »


Exemple : il pleut la route est mouillée
Propriété des propositions
z Une proposition est valide si elle est toujours
vraie (q
(quelque
q soit l’interprétation)
p )
z Une proposition est consistante s’il existe une
interprétation
p dans laquelle
q elle est vraie ; elle est
inconsistante dans le cas contraire
z Problème : étant donnée une formule
formule, est-elle
est elle
valide ? consistante ?
z Exemple : que dire de la proposition :
(a b) (¬b ¬a)
Dressons la table de vérité

A B A֜B ¬A ¬B ¬B ֜ ¬A (A֜B) ֜ (¬B ֜ ¬A)

V V V F F V V
V F F F V F V
F V V V F V V
F F V V V V V

(A֜B) ֜ (¬B ֜ ¬A) est valide


Règles de transformation
Les propositions suivantes sont toujours vraies
z a ¬a (loi du tiers exclu)
z ((a b) a) b (modus ponens)
z ((a b) ¬b) ¬a (modus tollens)
z (a b) ((¬bb ¬a) a) (contraposition)
z ¬¬a a (double négation)
z a b ¬a b
z a a a a a (idempotence)
( p )
Loi de De Morgan
A B A‫ר‬B A‫ש‬B ¬A ¬B ¬ A‫¬ר‬B

V V V V F F F
V F F V F V F
F V F V V F F
F F F F V V V

z Lois de De Morgan
¬ (A ‫ ש‬B) = ¬ A ‫ ¬ ר‬B
¬ (A ‫ ר‬B) = ¬ A ‫ ¬ ש‬B
z Commutativité et associativité de ‫ ש‬et ‫ר‬
z Distributivité de ‫ ש‬par rapport à ‫ ר‬et de ‫ ר‬par rapport à ‫ש‬:
A ‫( ש‬B ‫ ר‬C) = (A ‫ ש‬B) ‫( ר‬A ‫ ש‬C)
A ‫( ר‬B ‫ ש‬C) = (A ‫ ר‬B) ‫( ש‬A ‫ ר‬C)
Une énigme policière
z Un meurtre a été commis au laboratoire, le corps se
trouve dans la salle de conférences…
z On dispose des informations suivantes :
z La secrétaire déclare qu’elle a vu l’ingénieur
g dans le couloir qui
donne sur la salle de conférences
z Le coup de feu a été tiré dans la salle de conférences, on l’a
d
donc entendu
t d d de ttoutes
t lles pièces
iè voisines
i i
z L’ingénieur affirme n’avoir rien entendu
z On souhaite démontrer que si la secrétaire dit vrai
vrai, alors
l’ingénieur ment
Formalisation en calcul des
propositions
z p : la secrétaire dit vrai
z q : l’ingénieur
l ingénieur était dans le couloir au moment du
crime
z r : l’ingénieur
l’i é i ét
était
it d
dans une pièce
iè voisine
i i d
de lla
salle de conférences
z s : l’ingénieur a entendu le coup de feu
z t : ll’ingénieur
ingénieur dit vrai
Résolution de l’énigme
z p : la
l secrétaire
é i di dit vraii
z q : l’ingénieur était dans le couloir au moment du crime
z r : l’ingénieur
g était dans une p
pièce voisine de la salle de conférences
z s : l’ingénieur a entendu le coup de feu
z t : l’ingénieur dit vrai

z Les informations de l’énoncé se traduisent par les


implications suivantes :
p q, q r, r s, t ¬s
z Il s’agit de prouver la validité de la proposition :
(p q q r r s t ¬s) s) (p ¬t) t)
Démonstration
(p q q r r s t ¬s) (p ¬t)
z Cette p
proposition
p ne p
peut être fausse q
que si
z (p֜¬t) est faux, c’est-à-dire si p et t vrais
z et si la prémisse est vraie, c’est-à-dire toutes les implications
vraies
z Comme t doit être vrai, s doit être faux, donc r faux, donc
q faux, donc p faux, et il y a contradiction
z Donc la proposition est vraie : si la secrétaire dit vrai,
alors l’ingénieur ment.
Logique des prédicats
On définit :
z Les constantes : Vrai et Faux

z Les connecteurs : ¬
z Les variables : x, y, z, …

z Les fonctions : ff, g


g, h
h, …
z Les prédicats : p, q, r, … dont ceux d’arité 0 : a, b,
c, …
z Les quantificateurs : ,
Définitions
z Terme :
z Une variable est un terme
z Une constante est un terme
z Si t1,, t2,, …,, tn sont des termes,, alors f(t1,t2,…,tn)
( , , , ) est
un terme
z Exemple : fils(x)
z Atome :
z S t1,, t2,, …,, tn so
Si sont des termes,
e es, eet p u
un p
prédicat,
éd ca , a
alors
os
p(t1,t2,…,tn) est un atome
z Exemple : pere(x,y)( y)
Construction d’une formule dans
la logique des prédicats
z Vrai, Faux sont des formules
z Un atome est une formule
z Si F1 et F2 sont les formules, alors ¬F1, F1 F2, F1 F2,
F1 F2 sont des formules
z Si F est une formule, x F et x F sont des formules
z Exemples :
z ‫׊‬x pere(x,fils(x))
z ‫׊‬x ‫׊‬y ‫׊‬z (pere(x,y)‫ר‬pere(y,z))
(pere(x y)‫ר‬pere(y z)) ֜ papy(x,z)
papy(x z)
z Remarque : la logique des propositions est un cas particulier
de la logique des prédicats
Définitions
z Littéral
z Un atome est un littéral (positif)
z La négation d’un
d un atome est un littéral (négatif)
z Une clause est une formule qui a la forme d’une
disjonction de littéraux
z Exemple : P(x,y) ‫¬ ש‬Q(z)
z Une clause concrète est une clause sans variable
z Une clause de Horn est une clause de la forme :
r1 r2 … rn h
On peut toujours transformer une formule en un
ensemble de clauses
Unification
z Deux termes t1 et t2 sont unifiables s’il existe une
substitution σ des variables de t1 et t2 telle que σ t1
= σ t2
z Exemples
z pere(X,jean) s’unifie avec pere(Y,Z)
si X | Y et jean | Z
z pere(jean,mere(X)) s’unifie avec pere(Y,mere(pierre))
si jean | Y et X | pierre
L’énigme policière en Prolog
z On dispose des informations suivantes :
z La secrétaire déclare qu’elle
qu elle a vu l’ingénieur
l ingénieur dans le
couloir qui donne sur la salle de conférences
z Le coup de feu a été tiré dans la salle de conférences
conférences,
on l’a donc entendu de toutes les pièces voisines
z L’ingénieur
L ingénieur affirme n’avoir
n avoir rien entendu
z On souhaite démontrer que si la secrétaire dit
vrai,i alors
l l’i
l’ingénieur
é i mentt
L’énigme policière en Prolog
z Un individu entend un bruit s’il se trouve dans une pièce
voisine de celle où le bruit a été produit
z entend(Ind,Bruit) :- lieu(Ind,Piece1), lieu(Bruit,Piece2),
voisin(Piece1,Piece2).
z Faits relatifs à l’énigme :
z voisin(couloir,salle_de_conf).
z voisin(salle_de_conf, couloir).
z lieu(coup_de_feu,salle_de_conf).
z li (i
lieu(ingenieur,couloir)
i l i ) :- secretaire_dit_vrai.
t i dit i
z ingenieur_ment :- entend(ingenieur,coup_de_feu).
L’énigme policière en Prolog
z Hypothèse
z secretaire dit vrai
secretaire_dit_vrai.
z Pour la démonstration, on pose la requête :
z i
ingenieur_ment.
i t

Vous aimerez peut-être aussi