Vous êtes sur la page 1sur 23

Programmation Logique

Sup Galilée-INFO2

Céline Rouveirol

2020-2021

1/48
Plan

1 De la logique propositionnelle à la logique des prédicats


Logique propositionnelle
Logique clausale relationnelle
Logique clausale
Sémantique logique des prédicats

2 Inférence en Logique des prédicats


Substitutions, Unification
Formes normales

2/48
Syntaxe de la logique des prédicats
manoir
-

Terme : 0
,
peter ,

une constante
une variable × Y
,
f1
si f est un symbole de fonction n-aire et
2
t1 , . . . , tn sont des termes, f (t1 , . . . , tn ) est un
511 terme. Ex : s(0), s(X ), arbre(2, sag (1), sad(3)) n' }
Atome : Si p est un symbole de prédicat n-aire, t1 , . . . , tn
5 sont des termes, p(t1 , . . . , tn ) est un atome. Ex:
| \
plus(X , 0, X ), entier (s(X )), pere(toto, titi)
6 arbre 13
z
pré ( xie)
.

{ î T
-

20/48
Syntaxe de la logique des prédicats

Littéral : Un atome (littéral +) ou la négation d’un atome


(littéral -)

)
Formule bien formée (fbf) Un atome est une fbf
si F est une fbf, ¬F est une fbf -

si F et G sont des fbfs, F _ G , F ^ G , F G,


etc. sont des fbfs.
si F est une fbf et x une variable de F , 9xF et
8xF sont des fbfs. =
-

21/48
ftp.arentkihtpaomtpffjffpzm )
Variables libres/liées
Soit F une formule. On définit l’ensemble des variables libres et
liées de F de la façon suivante
Si F est un atome VarLibres(F ) = var (F ) et VarLiees(F ) = ;

|
Si F = ¬F1 VarLibres(F ) = VarLibres(F1 ) et
VarLiees(F ) = VarLiees(F1 )
Si F = F1 ? F2 , où ? est un connecteur binaire quelconque,
VarLibres(F ) = VarLibres(F1 ) [ VarLibres(F2 ) et
VarLiees(F ) = VarLiees(F1 ) [ VarLiees(F2 )
Si F = QxF y1 , où Q est une quantificateur,
VarLibres(F ) = VarLibres(F1 ) {x} et
fxt

VarLiees(F ) = VarLiees(F1 ) [ {x}
Soit {X1 , . . . , Xn } = VarLibres(F ). On note 9(F ) la formule
9X1 , . . . , Xn F et symétriquement, 8(F ) la formule
8X1 , . . . , Xn F .

22/48
Syntaxe de la logique des prédicats
go pere CXF)
' ←
pere ( XY ) , pere ( qz )
Clause : Disjonction de littéraux universellement quantifiés
8X1 , . . . , 8Xn , L1 _ . . . _ Ln où Xun 1, . . . , Xn sont les

ftp..vn)
variables apparaissant dans L1 , . . . , Ln . Notations:
t
8X1 , . . . , Xn , (A1 _ . . . _ Ak _ ¬B1 . . . _ ¬Bp ) se
réécrit en A1 , . . . , Ak B1 , . . . , Bp
Interprétation déclarative : A1 ou... ou Ak est vrai si
B1 et ... et Bp sont vrais.
Interprétation procédurale : pour prouver A1 ou ...
ou Ak , il faut prouver B1 et ... et Bp .
Clause définie : Clause ayant un seul littéral positif.

23/48
Syntaxe

Clause unitaire : Clause avec un corps vide Notation P.L. A. ou


A .
But défini, requête : Clause qui ne contient que des littéraux
négatifs. Notation P.L. ¬B1 _ . . . _ Bn ou
B1 , . . . , Bn
Clause de Horn : Toute clause qui est soit une clause définie soit
un but défini.
Clause vide : Représente la contradiction, notée ⇤ (ou ?).
Programme défini : Ensemble de clauses définies ou de buts
définis.

24/48
ÊxË
Interprétation d’une formule de la LP N

Une interprétation I est donnée par:


Domaine de l’interprétation D m
A chaque symbole de constante (arité 0) et à chaque symbole
de fonction d’arité n, I associe une application I (c) de D n
dans D
A chaque symbole de prédicat p d’arité n, I associe une
fonction booléenne I (p) de D n dans {0, 1}. plus tilt )
Valuation de variables: une application de l’ensemble des
ftp.z
variables dans D qui associe à une variable V un élément de D
Evaluation d’un terme selon I : [t]I
- [X ]I ,Val = Val(X )
- [c]I ,Val = I (c)
- [f (t1 , . . . , tn )]I ,Val = I (f )([t1 ]I ,Val , . . . , [tn ]I ,Val )

25/48
Evaluation d’une formule
On évalue la valeur de vérité d’un littéral p(t1 , . . . , tn ) en
appliquant à chaque élément de D [ti ]I ,Val la fonction
booléenne I (p).
La valeur de vérité d’une formule ¬F1 , F1 _ F2 , F1 ^ F2
F1 ! F2 , etc... est obtenue, de la même façon qu’en logique
propositionnelle, d’après les tables de vérité des connecteurs
_, ^, !, etc.
8X F est vraie si pour toute valuation de X par un élément
d 2 D,[F [X /d]]I ,Val est vraie.
9X F est vraie si il existe une valuation de X par un élément
d 2 D, telle que [F [X /d]]I ,Val est vraie.
Rqes: La vv d’une formule close (sans variable libre) est
indépendante de la valuation des variables choisie.

26/48
Delia Kestner

Hh
Mhthtcx

ËËË :
m
)

-
8x. (H(x) ! M (x))

8x. (M (x) ! H(x))


int )
M Chi
M 1h21
9x. (H(x) ^ M (x))
y A- xtlhlrnix ) )
Kx ( 7hpm Mtn )
Fx Htc) → 7 Mtn )

( (H(x) ^ M (x)))
¬9x.

9x. (H(x) ^ Aimetousleschiens(x))

ÏË ÷
Aimetousleschiens(x) ¥ 8y. (Chien(y) ! Aime(x, y)) he
he

÷
8x. (H(x) ! Connaitdeteste(x))

Connaitdeteste(x) ¥ 8y. (D(y, x) ! C(x, y))

.

+ t
F- f- G
Sémantique
Une interprétation I est un modèle pour une formule close F si F
est vraie dans I , notée I |= F
Une formule F (non close) est satisfiable dans I si 9 F est vraie
dans I
Soit E = {A1 , . . . , An } un ensemble de formules et F une formule.
On dit que G est conséquence logique de E (G |= E ) si pour toute
interprétation I de E (et pour toute valuation de variables si E
contient des formules non closes) [A1 ^ . . . ^ An ]I ,Val = V implique
que [G ]I ,Val = V
Une formule F (non close) est valide dans I si 8 F est vraie dans I
Soit S un ensembles de formules closes. Une interprétation I est un
modèle de S si I est un modèle pour chaque formule, S est
satisfiable si S admet un modèle, valide si toute interprétation I est
modèle de S.

27/48
÷÷÷÷
"
D- f149 A =
pk

Ë÷Ë
-

"

t t
FFG 9y. 8x. A
-
O
|= 8x. 9y. A
9x. (A ^ B) |= 9x. A ^ 9x. B
8x. A _ 8x. B |= 8x. (A _ B)

#
Fr f2 Fz Fr
¥
?

tnrdypcxu )
{

a) f-
"

'
÷
p( 1,1 )
912 PUR
' modèle defz "
Pris
f13,2)
ppçç} , mon modèle
de
Fn E F2 É fa ¥ fzetfz f- Fr

"

p
8x. A ¥ ¬9x. ¬A
.

¬8x. A ¥ 9x. ¬A
9x. A ¥ ¬8x. ¬A
¬9x. A ¥ 8x. ¬A
8x. (A ^ B) ¥ 8x. A ^ 8x. B
9x. (A _ B) ¥ 9x. A _ 9x. B
9x. (A ! B) ¥ 8x. A ! 9x. B
8x. 8y. A ¥ 8y. 8x. A
9x. 9y. A ¥ 9y. 9x. A
Formes normales en logique des prédicats
p → q 7pm

En logique propositionnelle, toute formule a une formule


logiquement équivalente sous forme normale conjonctive
Est-ce le cas pour toute formule en logique des prédicats? ...
presque

35/48
Nouvelles équivalences
Dans la suite, Q et Q 0 dénote un quantificateur parmi {8, 9}, ⇤
dénote ^ ou _. A * c
1 ¬(8X A) ⌘ 9X (¬A)
-
④ put tY v

2 ¬(9X A) ⌘ 8X (¬A)
HXVY plxlvq (4)
3 8Y 8X A ⌘ 8X 8Y A

4 9Y 9X A ⌘ 9X 9Y A

5 8X (A ^ B) ⌘ 8X A ^ 8X B.

6 9X (A _ B) ⌘ 9X A _ 9X B

7 Les équivalences du type : QX (A ⇤ C ) ⌘ QX A ⇤ C sont


-

vérifiées si C ne contient pas la variable X


-
N
8 Les équivalences du type :

QX A ⇤ Q 0 X B ⌘ QX Q 0 Y (A ⇤ B[X /Y ]) où Y est une


variables qui n’apparaı̂t ni dans A ni dans B

36/48
flatte txpcxt :

V-ypl47Dn.da.b.ch
jlb face) ) -

p¥¥'l%Ë!
_

D- faire}
Equivalences, suite -

M'â%, .pk.ch
Attention, les formules suivantes ne sont que des conséquences
logiques: FFG
- 9X 8YA |= 8Y 9XA
-

t:#*
- 8XA _ 8XB |= 8X (A _ B)
: - 9X (A ^ B) |= 9XA ^ 9XB
Place ) }
t

|
Une formule F est sous forme rectifiée si
VarLibres(F ) \ VarLiees(F ) = ; O
:tpu% txplx.fm)
si Qi et Qj sont deux occurrences distinctes de quantificateurs
en F , Qi et Qj portent sur deux variables di↵érentes.
-

Principe de renommage: si X est une variable apparaissant dans F


et Q un quantificateur 2 {9, 8}. Q X F ⌘ Q Y F [X /Y ]

37/48
8x. A ¥ ¬9x. ¬A
¬8x. A ¥ 9x. ¬A
9x. A ¥ ¬8x. ¬A
¬9x. A ¥ 8x. ¬A
8x. (A ^ B) ¥ 8x. A ^ 8x. B
9x. (A _ B) ¥ 9x. A _ 9x. B
9x. (A ! B) ¥ 8x. A ! 9x. B
8x. 8y. A ¥ 8y. 8x. A
9x. 9y. A ¥ 9y. 9x. A
x2
/ V I(A)

8x. A ¥ 9x. A ¥A
8x. (A ^ B) ¥ A ^ 8x. B
9x. (A ^ B) ¥ A ^ 9x. B
8x. (A _ B) ¥ A _ 8x. B
9x. (A _ B) ¥ A _ 9x. B
9x. (A ! B) ¥ A ! 9x. B
8x. (A ! B) ¥ A ! 8x. B
9x. (B ! A) ¥ 8x. B ! A
8x. (B ! A) ¥ 9x. B ! A
Mise sous forme normale

On peut associer à une formule close F un ensemble de clauses qui


admet un modèle si et ssi F est satisfiable.
1 Mise sous forme prénexe (équivalente à F )
2 Skolémisation (préservation de la satisfiabilité de F ), donc il
existe une skolémisation de F insatisfiable si et ssi F est
insatisfiable
3 Mise sous forme clausale (conjonction de disjonctions)

38/48
Forme prénexe
Une fbf F est sous forme prénexe lorsqu’elle a la forme
suivante Q1 X1 . . . Qn Xn G où les Qi sont des quantificateurs
et G ne contient aucun quantificateur.
Toute formule de LPO a une formule équivalent en forme
prénexe
Le principe est le même que pour la mise sous forme clausale
pour les formules de la logique des propositions + on
”repousse” les quantificaticateurs à l’extérieur de la formule
en utilisant les équivalences vues au transparent 30
• J
(8X p(X )) ! (9X q(X )) ⌘ 9X (¬p(X ) _ q(X ))
-

(9X (p(X ) ! q(X ))) ! (8X p(X ) ! 9X q(X )) ⌘


8X 9Y ((p(X ) ^ ¬q(X )) _ (¬p(Y ) _ q(Y )))

39/48
Formes clausale - de Skolem *
f11 912
Une fbf est en forme clausale si elle est la fermeture
universelle d’une conjonction de disjonction de littéraux
Si F est une fbf quelconque, il n’est pas toujours possible de
trouver une forme clausale équivalente à F
Si F est est insatisfiable, c’est toujours possible
La forme de skolem associée à une formule sous forme prénexe
Q1 X1 . . . Qn Xn F , avec F sous la forme d’une conjonction de
disjonction de littéraux d’un langage du premier ordre
s’obtient en supprimant les quantificateurs existentiels de
gauche à droite de la façon suivante:

40/48
Etripertoto

toton a

ty photo , Y )

Défaire }
t

t"ËËi
.

=
=

ǧpHtj
ftp.afcblr-afk/--a¢

Vous aimerez peut-être aussi