7. Logique des propositions (fin) Résolution Vocabulaire Zéro

publicité
Résolution
• C’est une méthode automatisable permettant de déduire des
propositions à partir d’autres. Autrement dit, c’est de la
démonstration automatique.
• C’est une méthode purement syntaxique qui fut mise au point en 1965
par Robinson.
7. Logique des propositions (fin)
• C’est sur cette méthode que repose le principe du langage de
programmation logique Prolog, inventé à Marseille en 1972.
• Restreinte à la logique des propositions (logique d’ordre 0), cette
méthode s’appelle la zéro-résolution (ZR).
• Cette méthode n’est pas complète. Pour toute tautologie, on n’aura
pas forcément de preuve dans ZR (il y a moyen de contourner ce manque).
• Par ailleurs, cette méthode est correcte : ce que l’on prouve dans
ZR est forcément toujours vrai.
1
^
• On note
ZR
une déduction.
2
Vocabulaire
Zéro-Résolution
• Un littéral est une variable booléenne ou sa négation.
• On appellera clause toute formule mise sous forme de disjonction de
littéraux.
Une preuve dans le système formel ZR de S
c où S est un
ensemble de clauses {c1, … , cn}n≥0 et c une clause est une
suite de clauses D1, …, Dr, r≥1, telles que :
Dr = c
pour tout i, 1≤i≤r, une des propriétés suivantes est
vraie :
1. Di ΠS
2. Di = R ( Dj, Dk, l, ÿl) avec j<i, k<i
3. Di = Dj avec j<i, à une répétition près.
•
On note une telle preuve {c1, … cn}n≥0
•
On obtient une preuve que c est une conséquence de S.
Théorème Toute formule peut être mise sous Forme Normale Conjonctive
i.e sous la forme de conjonctions de clauses.
(admis : la démonstration se ferait par récurrence sur le nombre de connecteurs)
• Soient A et B deux clauses avec
A = l ⁄ l1⁄ … ⁄ lp, p≥0
et
B = ÿl ⁄ k1⁄ … ⁄ kq, q≥0.
Le résolvant de A et B pour l et ÿl est ainsi défini :
R ( A, B , l, ÿl) = l1⁄ … ⁄ lp ⁄ k1⁄ … ⁄ kq
On a le droit d’y enlever toute répétition.
• On peut donc voir apparaître la clause vide, ce que l’on
interprètera comme l’absurde.
3
^
•
ZR
c
4
1
Exemple 1
Exemple 2
On veut montrer
• Preuve dans le système formel ZR :
D1
D2
D3
D4
D5
D6
D7
D8
=
=
=
=
=
=
=
=
ÿp ⁄ ÿq ⁄ r
ÿp ⁄ q
R ( D1, D2, q, ÿq) = ÿp ⁄ r ⁄ ÿp
ÿp ⁄ r
p
R ( D4, D5, p, ÿp) = r
ÿr
R ( D6, D7, r, ÿr) = ®
• On a ainsi montré que
( ((pŸq) Æ r)
(pÆq)
Ÿ
p )
Æ
r.
.
®
D1
D2
D3
D4
D5
D6
D7
=
=
=
=
=
=
=
ÿp ⁄ q
ÿq ⁄ r
R ( D1, D2, q, ÿ q) = ÿp ⁄ r
ÿr
R ( D3, D4, r, ÿ r) = ÿp
p
R ( D5, D6, ÿp, p) = ®
• On en déduit que {p Æ q, q Æ r}
p Æ r. Cette dernière
implication est bien une conséquence des deux premières.
5
6
Commentaires
•
ZR
• On met les éléments de S sous forme de clause :
S = {ÿp ⁄ q, ÿq ⁄ r, p, ÿr }
• Preuve dans ZR :
v
v
v
v
v
v
v
Ÿ
ZR
• On part de S = {p Æ q, q Æ r, ÿ (p Æ r) }. On montre que S
^
• On pourrait procéder avec la table de vérité. On trouverait
dans chaque cas 0 comme valeur de vérité.
v
v
v
v
v
v
v
v
• On veut montrer dans ZR la transitivité de l’implication.
A-t-on : {p Æ q, q Æ r}
p Æ r ?
^
^
• On part de S = {ÿp ⁄ ÿq ⁄ r, ÿp ⁄ q, p, ÿr}.
que S ZR
® .
Limite de la logique des propositions
Le problème de cette méthode est de ne pas être complet. Cela se
traduit par le fait que chaque tautologie n’a pas de démonstration
directe par ZR.
•
Le calcul des propositions est simple mais ne peut pas
rendre compte de la totalité des raisonnements.
Exemple :
•
Par exemple, il ne permet pas faire allusion aux propriétés
d’une variable.
Il ne permet pas non plus de décrire des relations entre
plusieurs variables.
•
Il leur reconnaît simplement deux états : elles sont vraies
ou elles sont fausses.
p Æ (p ⁄ q )
^
Il faut partir de ÿ ( p Æ ( p ⁄ q ) ).
En fait, ÿ ( p Æ ( p ⁄ q ) ) ≡ p Ÿ ÿ( p ⁄ q ) ≡ p Ÿ ÿp Ÿ ÿq
Ensuite, on peut prouver que {p, ÿp, ÿq}
®
ZR
•
C’est pour cela que l’on dit que la ZR est un détecteur absolu de
contradictions.
•
On va donc étudier comment généraliser le calcul des
propositions afin de mieux formaliser le raisonnement.
•
On avance ici «#à l’aveuglette#» : c’est ce que l’on appelle le chaînage
avant. C’est le chaînage arrière qui est utilisé en programmation logique.
•
On définit le calcul des prédicats (logique du 1er ordre).
7
8
2
Informatique et logique du 1er ordre
Parmi les innombrables usages de la logique du 1er ordre en
informatique, citons-en deux importants :
• Les langages de programmation peuvent être typés ou
fortement typés.
On a besoin de la logique du 1er ordre pour décrire le
principe même du typage.
8. Logique des prédicats
• Les bases de données et particulièrement des langages comme
SQL se fondent sur le calcul des prédicats.
9
10
Calcul des prédicats
Calcul des prédicats :
En bref,
•
Un prédicat p est une fonction d’un nombre fini de variables ou de
constantes dans IB .
•
Les constantes et les variables sont issues d’un même ensemble
appelé le domaine.
Exemple
si p signifie «#être pair#». Sur le domaine des entiers, p(2) est vrai mais
p(3) est faux.
•
Une interprétation sera la définition d’un domaine et de prédicats
sur ce domaine.
•
Apparaissent les quantificateurs, l’un existentiel, noté $ et
l’autre universel, noté ".
" x p(x)
$ x p(x)
11
syntaxe
•
On dispose :
• d’un ensemble dénombrable de variables V = {x,y,w,v,v1,… }
sur un domaine D
• d’un ensemble dénombrable de constantes C = {c1,c2, … } Õ D
• des symboles {n, ® , $, ", ÿ, ⁄, Ÿ, Æ, ´, (, ) }.
•
On se donne un ensemble fini de prédicats P définis sur le même
domaine.
Exemple :
Une variable peut représenter n’importe quel étudiant, une constante représente
précisément l’un d’eux, un prédicat pourrait être le fait d’être admis à un diplôme.
•
Les variables et les constantes t1, t2, … tJ seront appelées les
termes d’un prédicat p d’arité j dans l’expression p(t1, t2, … tJ ).
•
p(t1, t2, … tJ ) est appelé un atome.
12
3
Calcul des prédicats :
•
Définition inductive de l’ensemble des formules F du calcul des
prédicats :
(B)
Les atomes sont des formules de F
(I)
si F ΠF, alors
si F, F’ Œ F, alors
(ÿ F) Œ F
(F
(F
(F
(F
Ÿ F’
⁄ F’
Æ F’
´ F’
) Œ
) Œ
) Œ
) Œ
Variables libres ou liées
syntaxe
F
F
F
F
si F est une formule et x une variable, alors
( $ x) F ΠF
si F est une formule et x une variable, alors
( " x) F ΠF
•
Chacune des fois où une variable x apparaît dans une formule F est
appelée une occurrence de x dans F.
•
On dit qu’une occurrence de x dans F est liée si un quantificateur
porte sur cette occurrence de x.
Dans le cas contraire, on parle d’occurrence libre.
•
On peut construire les arbres d’expression de ces formules pour
s’y retrouver entre occurrence liée et libre.
•
Une variable est libre si toutes ses occurrences sont libres, une
variable est liée si elle a au moins une occurrence liée.
On parle aussi de variable muette dans ce dernier cas.
•
Précédence des opérateurs (du plus prioritaire au moins prioritaire)
ÿ " $
Ÿ ⁄
Æ ´
13
14
Exemples
1.
2.
3.
( " x) ( $ y) (
p ( x,y) Æ ( $ x)
Calcul des prédicats :
q ( x,y,c) )
Toutes les occurrences de x et y dans p ou q sont liées mais
celles de x ne sont pas toutes liées au même quantificateur.
( " x) ( p ( x,y) Æ ( $ x) ( $ y) q ( x,y,c) )
Toutes les occurrences de x dans p ou q sont liées, celles de y
dans p est libre.
( " x) ( u ( x)
⁄ ( $ x ) w ( x) )
L’occurrence de x dans u est liée au ", celle de x dans w est liée
seulement au $.
On a l’équivalence :
( " x) ( u ( x) ⁄ ( $ x ) ( w ( x)) )
≡
( " x) ( u ( x) ⁄ ( $ y ) ( w ( y)) )
15
sémantique
• Une interprétation I est la donnée :
• d’un domaine non vide D éventuellement infini
• d’une évaluation dans D de chaque variable (susceptibles
d’occurrences libres)
•
•
d’un ensemble P de prédicats. Un prédicat d’arité i sera
défini sur Di.
d’applications : à chaque prédicat p de P d’arité i,
correspond une application de Di dans IB .
• La valeur (de vérité) de la formule F sous l’interprétation I
est notée
v (I,F)
• Pour l’instant, seuls les atomes A ont une valeur fixée par I
v (I,A)
16
4
Calcul des prédicats :
sémantique
La valeur de vérité de F est donnée par v (I,F) ainsi définie :
•
on étend à toutes les formules la valuation v (I,A) définie pour l’instant que
pour les atomes A :
• si F = A,
v (I,F) = v (I,A) ΠIB
si
si
• si
• si
• si
•
•
•
F
F
F
F
F
=
=
=
=
=
ÿF’,
F’ Ÿ F",
F’ ⁄ F",
F’ Æ F",
F’ ´ F",
v
v
v
v
v
(I,F)
(I,F)
(I,F)
(I,F)
(I,F)
=
=
=
=
=
v
v
v
v
(I,F’)
(I,F’) . v (I,F")
(I,F’) + v (I,F")
(I,F’) + v (I,F")
( v (I,F’) + v (I,F") ) . (v (I,F") + v (I,F’) )
appelons Gxd la formule G où toutes les occurrences libres de x ont été
remplacées par d fixé dans D :
• si F = " x G,
v (I,F) = 1 si pour tout d de D, v (I, Gxd) = 1
•
si F = $ x G,
v
v
v
v
(I,F) = 0
(I,F) = 1
(I, Gxd) =
(I,F) = 0
Vocabulaire (rappel)
(suite)
sinon
s’il existe un d de D tel que
1
sinon.
• Une formule F est valide si, pour toute interprétation I :
v (I,F) = 1
* On dit aussi que F est une tautologie.
• Une formule F est satisfiable si il existe une interprétation I telle
que :
v (I,F) = 1
* On dit que I satisfait F et on le note : I
F.
* Une telle interprétation I est appelée un modèle pour F.
• Une formule F est insatisfiable si, pour toute interprétation I on a:
v (I,F) = 0
* On dit que F est une antilogie.
• Soient F et F’ deux formules, F et F’ sont équivalentes et on note
F ≡ F’
ssi, pour toute interprétation I, on a : v (I,F) = v (I,F’).
17
18
Exemple
" x " y ( p( x,y)
Appelons F
Négation et quantifications
Æ $ z ( p( x,z) Ÿ p(z,y) ) )
la formule entière et G l’implication, on a F :
•
Que deviennent les négations des formules quantifiées ?
" x " y ( G ).
• Première interprétation I1 pour F
•
•
le domaine D1 de I1 est l’ensemble des réels
le prédicat binaire p est l’ordre <
ÿ si p( x,y) est faux, G est vraie.
ÿ si p( x,y) est vrai, alors x<y. Posons z = ( x+y)/2. Alors, p( x,z)
est vrai et p( z,y) aussi.
ÿ en conclusion, v (I1,F) = 1 et I1 constitue un modèle pour F.
•
•
le domaine D2 de I2 est l’ensemble des entiers naturels
le prédicat binaire p est encore l’ordre <
19
$ x
(ÿ F )
ÿ
($ x G )
" x
(ÿ G )
≡
Il faut démontrer que ÿ ( " x F ) ´ $ x ÿ F est valide.
Commençons par montrer que ÿ ( " x F ) Æ $ x ÿ F est valide.
•
ÿ si p( x,y) est faux, G est vraie.
ÿ si p( x,y) est vrai, alors x<y. Il n’existe pas d’entiers entre x
et y dès lors que x et y sont consécutifs. G peut être fausse.
ÿ en conclusion, v (I2,F) = 0. F ne saurait être valide.
(" x F ) ≡
Démonstration de la première équivalence :
• Deuxième interprétation I2 pour F
•
•
ÿ
•
•
Supposons que F est une tautologie, " x F est aussi une tautologie.
Alors, ÿ ( " x F ) est une antilogie. Et l’implication
ÿ ( " x F ) Æ $ x ÿ F est bien une tautologie.
Supposons que F n’est pas une tautologie. Il existe une interprétation
I pour laquelle F est fausse. Alors, $ x ÿ F est une tautologie. Et
l’implication ÿ ( " x F ) Æ $ x ÿ F est une tautologie.
Reste à donner une démonstration analogue pour la réciproque.
20
5
Exemple
•
On cherche à simplifier la formule F :
ÿ(" x $ y $ z $ t
•
Autres identités remarquables
•
p( x,y,z,t) )
" x
$ x
On applique les règles de négation d’une expression quantifiée :
F ≡
$ x (ÿ ($ y $ z $ t
p( x,y,z,t) )
≡
$ x " y ( ÿ ($ z $ t p( x,y,z,t) )
≡
$ x " y " z ( ÿ ($ t p( x,y,z,t) )
≡
$ x " y " z " t ÿ p( x,y,z,t)
On a les identités :
•
( F Ÿ G ) ≡ ( " x
( F ⁄
G ) ≡
G )
F ) ⁄ ( $ x
G )
Par contre, n’inventez pas des identités qui n’existent pas !
A : " x ( F ⁄ G )
B : ( " x F ) ⁄ ( " x
A
≡
G )
B
C : $ x ( F Ÿ G)
D : ( $ x F ) Ÿ ( $ x
C
21
( $ x
F ) Ÿ ( " x
G )
D
≡
22
Contre-exemple
•
Prenons l’alphabet (français) pour domaine et les deux prédicats :
– v(x) = 1 si x est une voyelle
– c(x) = 1 si x est une consonne
•
Il n’est pas équivalent de dire :
«#toute lettre de l’alphabet est une consonne ou une voyelle#»
puis
«#toutes les lettres de l’alphabet sont des consonnes ou toutes les
lettres de l’alphabet sont des voyelles#»
•
Il n’est pas non plus équivalent de dire :
«#il existe dans l’alphabet au moins une consonne et une voyelle#»
puis
«#il existe dans l’alphabet une lettre à la fois consonne et voyelle#».
23
6
Téléchargement