la r´esolution en logique du premier ordre n - … · la r´esolution en logique du premier ordre...
TRANSCRIPT
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Semantique
La Resolution en Logique du PremierOrdre
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction a la resolution
Objectifs
L’objectif de cette partie est de definir une procedure de resolution pourtester si une formule close est une consequence logique d’un ensemble deformules closes, i.e.
�1, . . . ,�n |= �
ou les formules �1, . . . ,�n,� sont des formules closes.La resolution est a la base de la programmation logique.Prenons l’exemple suivant sur le langage qui contient deux predicatsunaires p et q :
8x .(p(x)! q(x)) |= 8x .p(x)! 8x .q(x)
C’est equivalent a dire que 8x .(p(x)! q(x)) ^ ¬(8x .p(x)! 8x .q(x))est insatisfaisable, ce qui equivaut encore a dire que la formule suivanteest insatisfaisable : 8x .(p(x)! q(x)) ^ 8x .p(x) ^ 9x .¬q(x)
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction a la resolution
ObjectifsIl su�t donc demontrer que la formule8x .(p(x)! q(x)) ^ 8x .p(x) ^ 9x .¬q(x) n’est satisfaite dans aucunestructure.
I pour ce faire nous commencons par etendre le langage avec unensemble denombrable C de symboles de constantes, et nouschoississons une constante a 2 C .
I Clairement, la formule 8x .(p(x)! q(x)) ^ 8x .p(x) ^ 9x .¬q(x) estinsatisfaisable si et seulement si la formule8x .(p(x)! q(x)) ^ 8x .p(x) ^ ¬q(a) l’est aussi (exercice).
I Nous essayons maintenant de deduire une contradiction a partir de8x .(p(x)! q(x)) ^ 8x .p(x) ^ ¬q(a).
1. 8x .(p(x)! q(x)) axiome2. 8x .p(x) axiome3. ¬q(a) axiome4. p(a) comme consequence de 25. q(a) comme consequence de 1 et 46. ? contradiction entre 3 et 5
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction a la resolution
Un autre exemple
Montrons que la formule8x .(p(x , f (x))! q(x)) ^ 8x8y .p(f (x), f (y)) ^ 9x .¬q(f (x)) n’estsatisfaite dans aucune structure. On introduit d’abord un symbole deconstante a 2 C , puis :
1. 8x .(p(x , f (x))! q(x)) axiome2. 8x8y .p(f (x), f (y)) axiome3. ¬q(f (a)) axiome4. p(f (a), f (f (a))) comme consequence de 25. q(f (a)) comme consequence de 1 et 46. ? contradiction entre 3 et 5
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction a la resolution
Premiere etape de la resolutionLa premiere etape de la resolution consiste a mettre toutes les formulessous une forme universelle close, i.e. sous la forme :
8x1 . . . 8xn.�(x1, . . . , xn)ou � est une combinaison Booleenne de formules atomiques (et necontient donc plus de quantificateurs).
Cette mise sous forme universelleclose se fait en deux etapes :
1. la mise sous forme normale prenexe :
Q1x1.Q2x2 . . .Qn
xn
.�(x1, . . . , xn)
ou Q1, . . . ,Qn
2 {9, 8} et � ne contient pas de quantificateurs.La formule obtenue est logiquement equivalente a celle de depart.
2. ensuite on elimine les quantificateurs existentiels en introduisant desnouveaux symboles de fonctions et de constantes (tous di↵erents),c’est l’etape de Skolemisation.Par exemple, 9x .¬q(x) est devenu ¬q(a) et 8x9y .p(x , y) deviendra8x .p(x , f (x)) pour un nouveau symbole de fonction f . Cette etapepreserve la satisfaisabilite de la formule.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction a la resolution
Premiere etape de la resolutionLa premiere etape de la resolution consiste a mettre toutes les formulessous une forme universelle close, i.e. sous la forme :
8x1 . . . 8xn.�(x1, . . . , xn)ou � est une combinaison Booleenne de formules atomiques (et necontient donc plus de quantificateurs). Cette mise sous forme universelleclose se fait en deux etapes :
1. la mise sous forme normale prenexe :
Q1x1.Q2x2 . . .Qn
xn
.�(x1, . . . , xn)
ou Q1, . . . ,Qn
2 {9, 8} et � ne contient pas de quantificateurs.La formule obtenue est logiquement equivalente a celle de depart.
2. ensuite on elimine les quantificateurs existentiels en introduisant desnouveaux symboles de fonctions et de constantes (tous di↵erents),c’est l’etape de Skolemisation.Par exemple, 9x .¬q(x) est devenu ¬q(a) et 8x9y .p(x , y) deviendra8x .p(x , f (x)) pour un nouveau symbole de fonction f . Cette etapepreserve la satisfaisabilite de la formule.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction a la resolution
Premiere etape de la resolutionLa premiere etape de la resolution consiste a mettre toutes les formulessous une forme universelle close, i.e. sous la forme :
8x1 . . . 8xn.�(x1, . . . , xn)ou � est une combinaison Booleenne de formules atomiques (et necontient donc plus de quantificateurs). Cette mise sous forme universelleclose se fait en deux etapes :
1. la mise sous forme normale prenexe :
Q1x1.Q2x2 . . .Qn
xn
.�(x1, . . . , xn)
ou Q1, . . . ,Qn
2 {9, 8} et � ne contient pas de quantificateurs.La formule obtenue est logiquement equivalente a celle de depart.
2. ensuite on elimine les quantificateurs existentiels en introduisant desnouveaux symboles de fonctions et de constantes (tous di↵erents),c’est l’etape de Skolemisation.Par exemple, 9x .¬q(x) est devenu ¬q(a) et 8x9y .p(x , y) deviendra8x .p(x , f (x)) pour un nouveau symbole de fonction f . Cette etapepreserve la satisfaisabilite de la formule.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction a la resolution
Deuxieme etape de la resolution : mise sous forme clausale
Comme dans la logique propostionnelle, pour appliquer la regle decoupure, on doit d’abord mettre l’ensemble des formules sous formeclausale.Il faudra generaliser la notion de litteral : un litteral sera une formuleatomique ou sa negation.
1. chaque formule est mise sous forme universelle close8x1 . . . 8xn.�(x1, . . . , xn)
2. ensuite chaque formule � est mise sous forme normale conjonctive
3. enfin, comme pour toutes formules , 0, 8x .( ^ 0) estequivalente a (8x . ) ^ (8x . 0), on obtient une conjonction dedisjonctions universellement quantifiees.
4. chaque disjonction obtenue represente une clause, et on peutrenommer ses variables puisqu’elles sont universellement quantifiees,de telle sorte que deux clauses ne partagent pas les memes variables.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction a la resolution
Deuxieme etape de la resolution : exemple de formeclausale
1. Partons desformules :8x .(p(x , f (x))! q(x)), 8x8y .p(f (x), f (y)),¬q(f (a))
2. cet ensemble est logiqement equivalent a8x .(p(x , f (x))! q(x)), 8y8z .p(f (y), f (z)),¬q(f (a))
3. nous obtenons alors l’ensemble de clauses
{¬p(x , f (x)) _ q(x), p(f (y), f (z)),¬q(f (a))}
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction a la resolution
Derniere etape : applications de la regle de coupureContrairement a la logique propositionnelle, pour appliquer la regle decoupure, il est necessaire d’unifier les termes. Par exemple a partir de
1. ¬p(x , f (x)) _ q(x)2. p(f (y), f (z))3. ¬q(f (a))
on voudrait appliquer la regle de coupure entre 1. et 3, mais il faut unifierq(x) et ¬q(f (a)), en prenant x 7! f (a). L’intuition est que comme¬p(x , f (x)) _ q(x) est vraie pour tout x , elle est vraie aussi pour x quivaut f (a). Nous obtenons alors :
4. ¬p(f (a), f (f (a))) resolution entre 1. et 3. sur q avec x 7! f (a)
Finalement, nous obtenons une contradiction entre 2 et 4 en unifiantp(f (y), f (z)) avec p(f (a), f (f (a))). Il su�t de prendre y qui vaut a et zqui vaut f (a).
5. ? contradiction entre 2. et 4. avec y 7! a, z 7! f (a)
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction a la resolution
Resolution : correction et completude
On pourra montrer que la resolution est correcte et complete :
ICorrection : S’il existe une refutation par resolution de l’ensemblede clauses, alors il est insatisfaisable
ICompletude : Si un ensemble de clauses est insatisfaisable, alors ilexiste une refutation par resolution de cet ensemble de clauses.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction a la resolution
Resolution : terminaison
I En logique propositionnelle, on a vu que la methode de resolutiontermine : tant qu’on n’arrive pas a deriver la clause vide, on continued’appliquer la regle de coupure. Si on ne peut plus generer denouvelles clauses et que la clause vide n’a pas ete derivee, alorsl’ensemble de clauses est satisfaisable.
I ce n’est pas le cas en general pour la methode de resolution enlogique propositionnelle, il se peut que la procedure ne termine pas.C’est le cas en particulier lorsque l’ensemble de clauses estsatisfaisable.
I En fait, A. Church a montre en 1936, a partir des travaux d’A.Turing, qu’il n’existe pas de procedure qui permet de decider lasatisfaisabilite d’une formule de la logique du premier ordre.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Introduction a la resolution
Resolution : Plan
1. forme prenexe, Skolemisation
2. forme clausale
3. unification
4. resolution et correction
5. completude de la resolution
6. programmation logique
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme prenexe
89 Formules prenexes
Objectif : definir une forme standard pour les formules du premier ordre.Une formule � est prenexe si et seulement si elle est de la forme
Q1x1 · Q2x2 · . . .Qn
xn
· �
ou chaque Qi
est un quantificateur (existentiel ou universel), tous les xi
sont di↵erents et � est une formule sans quantificateur.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme prenexe
90 Formules prenexes
Rappel : Formules equivalentes
1. 9x · � et 9y · �(y/x) (x libre dans � et y n’apparaıt pas dans �)
2. 8x · � et 8y · �(y/x) (idem)
3. 8x · (� ^ ) et 8x · � ^ (x non libre dans )
4. 9x · (� _ ) et 9x · � _ (idem)
5. ¬8x · � et 9x · ¬�6. ¬9x · � et 8x · ¬�7. (8x · �) _ et 8x · (� _ ) (x non libre dans )
8. (9x · �) ^ et 9x · (� ^ ) (x non libre dans )
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme prenexe
91 Formules prenexes
TheoremePour toute formule de la logique du premier ordre, il existe une formuleprenexe equivalente.
Preuve. Par induction sur la structure des formules.Cas de base : Si � est une formule atomique. Evident.Cas inductif : Si
I � ⌘ ¬ et est supposee equivalente a une forme prenexeQ1x1.Q2x2...Qn
xn
. 0. Apres application de (5) ou (6) on obtient :
� ⌘ Q ,1x1.Q
,2x2...Q
,n
xn
.¬ 0
ou Q 0i
= 9 si Qi
= 8 et Q 0i
= 8 si Qi
= 9 ; cette formule est enforme prenexe.
I Si � ⌘ 8x · alors on sait qu’il existe 0 ⌘ en forme prenexe etdonc � ⌘ 8x · 0 est en forme prenexe.
I Si � ⌘ 9x · , justification similaire.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme prenexe
92 Formules prenexes
TheoremePour toute formule de la logique du premier ordre, il existe une formuleprenexe equivalente.
Preuve (Suite).
I � ⌘ 1 ^ 2. On sait par hypothese d’induction qu’il existe 2formules prenexes ,
1 et ,2 telles que 1 ⌘ ,
1 et 2 ⌘ ,2.
Il y a plusieurs cas a considerer. Soit ,1 ⌘ 8x · ,,
1 ou ,1 ⌘ 9x · ,,
1 .Si x n’est pas libre dans ,
2 on applique (3) ou (8) pour sortir laquantification. Si x est libre dans ,
2 on applique d’abord lesproprietes (2) ou (1) (renommage) et on applique (3) ou (8) commeau dessus.Finalement � est equivalente a 8x · (...) ou 9x · (...) avec 1quantificateur en moins a l’interieur. On itere ensuite cettetransformation.
I � ⌘ 1 _ 2, idem mais avec (1), (2), (4), (7).
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme prenexe
93 Formules prenexes
TheoremePour toute formule de la logique du premier ordre, il existe une formuleprenexe equivalente.
Preuve (Suite).
I � ⌘ 1 ! 2
on sait que 1 ⌘ ,1 et 2 ⌘ ,
2 or � ⌘ ¬ 1 _ 2. On utilise lesregles pour ¬ et _.
I � ⌘ 1 $ 2 est equivalent a � ⌘ ( 1 ! 2) ^ ( 1 2).
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme prenexe
94 Formules prenexes
Exercice : donner la formule prenexe equivalente a la formule
8x · 8y · ( (r(x , y) ^ ¬x = y)! 9z(y = g(x , h(z , z))))
Pour cela, on transforme successivement la formule de la facon suivante :
8x · 8y · ( (r(x , y) ^ ¬x = y)! 9z(y = g(x , h(z , z))))
8x · 8y · ((¬r(x , y) _ x = y) _ 9z(y = g(x , h(z , z))))
8x · 8y · 9z · ((¬r(x , y) _ x = y) _ (y = g(x , h(z , z))))
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme prenexe
94 Formules prenexes
Exercice : donner la formule prenexe equivalente a la formule
8x · 8y · ( (r(x , y) ^ ¬x = y)! 9z(y = g(x , h(z , z))))
Pour cela, on transforme successivement la formule de la facon suivante :
8x · 8y · ( (r(x , y) ^ ¬x = y)! 9z(y = g(x , h(z , z))))
8x · 8y · ((¬r(x , y) _ x = y) _ 9z(y = g(x , h(z , z))))
8x · 8y · 9z · ((¬r(x , y) _ x = y) _ (y = g(x , h(z , z))))
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme prenexe
95 Forme Normale Conjonctive
Nous adaptons les notions de litteral, clause et forme normale
conjonctive/disjonctive pour la logique du premier ordre :
Iun litteral est une formule atomique ou une negation d’une formule
atomique ;
Iune clause est une disjonction de litteraux ;
Iune formule prenexe
Q1x1 · Q2x2 · . . .Qn
xn
· �est sous forme normale conjonctive, respectivement forme normaledisjonctive, si la formule sans quantificateur � est une clause ou une
conjonction de clauses, respectivement une disjonction de conjonctions de
litteraux.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme prenexe
96 Forme Normale Conjonctive
Par exemple, la formule
8x · 8y · 9z · ((¬r(x , y) _ x = y) ^ (y = g(x , h(z , z))))
est sous forme normale conjonctive.
TheoremeToute formule de la logique du premier ordre est equivalente a uneformule prenexe sous forme normale conjonctive (respectivementdisjonctive).
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Skolemisation
97 Forme de Skolem
I Skolemisation : suppression des quantificateurs existentiels.
I Note : cette suppression ne fournit pas une formule equivalente,mais preserve la satisfaisabilite.
Definition
I une formule � est dite universelle si elle est prenexe et si tous lesquantificateurs qui apparaissent dans � sont universels ;
I soit L un langage du premier ordre, un langage L0 est une extensionde Skolem de L si L0 est obtenu en ajoutant a L une infinite desymboles de fonctions de chaque arite et une infinite de symboles deconstantes.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Skolemisation
98 Forme de Skolem
I Une formule prenexe close � de L0 est soit universelle, soit de laforme 8x1 · . . . 8xk · 9x · ou est prenexe. Dans ce dernier cas, ilse peut que k = 0 et � est de la forme 9x · . La transformation quel’on applique a � si elle contient au moins un quantificateurexistentiel, consiste a lui associer une formule
8x1 · . . . 8xk · (f (x1, . . . , xk)/x),ou f est un symbole de fonction n’apparaissant pas dans la formule .
I Dans le cas particulier ou k = 0, c’est-a-dire � ⌘ 9x · , on luiassocie la formule (c/x) ou c est une constante n’apparaissant pasdans . La formule �1 ainsi obtenue possede un quantificateurexistentiel en moins que �.
I Cette transformation est appelee pas de Skolemisation .
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Skolemisation
99 Forme de Skolem
Quand on ecrit
⌘ 8x · 9y · p(x , y)
en rapport avec une structure M, on exprime que pour chaque element ndu domaine assigne a x , on peut choisir un element m pour y tel que
(n,m) 2 pM
Notons que l’on peut “approximer” p en associant a chaque valeur pourx une valeur fixe f (x) pour y , ou f est une nouvelle fonction. Il su�t quel’interpretation de f satisfasse (n, f M
0(n)) 2 pM pour tout element n du
domaine ou M0 est une intepretation qui est “compatible” avec M etqui interprete la nouvelle fonction f .
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Skolemisation
100 Forme de Skolem
Nous avons parle d’approximation, pourquoi ?Considerons a nouveau la formule
⌘ 8x · 9y · p(x , y)
et une interpretation M1 telle que
MM1 = {1, 2} etpM1 = {(1, 1), (1, 2), (2, 1), (2, 2)}
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Skolemisation
101 Forme de Skolemet considerons
0 ⌘ 8x · p(x , f (x))
avec f un nouveau symbole de fonction, et nous etendons M1 en M01
pour interpreter f :
f M01(1) = 2, f M
01(2) = 1
alors on a M01|= 0. Mais on considere M2 avec
pM2 = {(1, 1), (2, 2)}
et M02 l’extension de M2 avec a nouveau :
f M02(1) = 2, f M
02(2) = 1
alors on a
M2|= mais M02 6 |= 0
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Skolemisation
102 Forme de Skolem
I Intuitivement, en remplacant la quantification existentielle par unefonction, on se limite a une dependance fonctionnelle entre lesvariables x et y alors qu’en general on a des dependancesrelationnelles entre variables (donc on limite le choix possible desmodeles d’une formule).
I On va maintenant formaliser cette notion de suppression desquantificateurs existentiels, appelee Skolemisation , et montrer quecette transformation preserve la satisfaisabilite mais pas la validitedes formules.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Skolemisation
103 Skolemisation
Soit � une formule close en forme prenexe du langage L0, possedant nquantificateurs existentiels :
I une forme de Skolem de � est une formule obtenue en appliquant nfois successivement le pas de skolemisation ;
I les nouvelles fonctions et constantes introduites au cours de cestransformations s’appellent les fonctions et constantes de Skolem .
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Skolemisation
104 Skolemisation
TheoremeLe pas de skolemisation preserve la satisfaisabilite des formules : soit �une formule prenexe et �1 une formule obtenue de � par un pas deSkolemisation, alors � est satisfaisable ssi �1 est satisfaisable.
Preuve. Supposons que µ est un modele de �1.
1. Si � ⌘ 8x1 · ... · 8xk · 9x · et�1 ⌘ 8x1 · ... · 8xk · (f (x1, ..., xk)/x) et le resultat provient de lavalidite de la formule
8x1 · ... · 8xk · (f (x1, ..., xk)/x)! 8x1 · ... · 8xk · 9x ·
2. et si � ⌘ 9x · et �1 ⌘ (c/x) et le resultat de la validite de laformule (c/x)! 9x · .
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Skolemisation
105 Skolemisation
Preuve (Suite). Supposons que µ soit un modele de � on va enrichir µpour interpreter les termes de Skolem et satisfaire �1.
1. Soit � ⌘ 8x1 · ... · 8xk · 9x · et�1 ⌘ 8x1 · ... · 8xk · (f (x1, ..., xk)/x).On sait que µ |= � et donc, pour n’importe quel vecteur de valeursa1, ..., ak 2 Mµ, il existe une valeur a
µ |= �(a1/x1, ..., ak/xk , a)
on construit µ0 en attribuant l’interpretation f µ0(a1, ..., ak) = a pour
chaque vecteur a1, ..., ak .Il est claire que µ0 |= �1
2. � ⌘ 9x · et �1 ⌘ (c/x)On sait qu’il existe une valeur v pour x telle que µ, v |= . Donc ilsu�t de prendre cµ
0= v(x) et on a µ0 |= (c/x)
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme Clausale
106 Forme Clausale
I Un prealable a l’application de la methode de resolution est la misesous forme clausale .
I Considerons un ensemble ⌃ de formules closes et une formule close�, la question “� est une consequence logique de ⌃ ?” estequivalente par refutation a la question suivante : “l’ensemble deformules ⌃ [ {¬�} est-il non satisfaisable ?”.
I Une maniere de repondre a cette question consiste a transformer cetensemble de formules en un ensemble S de clauses, puis appliquerles regles de resolution aux clauses de S .
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme Clausale
107 Forme ClausaleLa suite de transformations qui permet de passer d’un ensemble deformules ⌃ a un ensemble de clauses, est constitue par :
1. la mise sous forme prenexe et normale de chacune des formules de⌃ ; notons que cette transformation preserve l’equivalence ;
Pour tout � 2 ⌃, construire �p
sous forme prenexe
2. la mise sous forme de Skolem de chacune des formules obtenues ;cette transformation preserve la satisfaisabilite mais pasl’equivalence ;
Pour tout �p
, construire 8x1 . . . 8xn�s par Skolemisation de �p
ou �s
ne contient pas de quantificateurs.3. mettre les formules �
s
sous forme normale conjonctiveV
i
C�,i ou lesformules C�,i sont des disjonctions.
4. l’ensemble de clauses obtenu est {C�,i | � 2 ⌃}.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme Clausale
108 Forme Clausale : Exemple
Considerons la formule suivante :
8x8y8z .[(8x .r(x , x)) ^ [(8x .r(x , y))! (9y .r(y , x) ^ 8y .r(y , z))]]
1. Mise sous forme prenexe : renommage
8x8y8z .[(8x 0.r(x 0, x 0))^[(8x 00.r(x 00, y))! (9y 0.r(y 0, x)^8y 00.r(y 00, z))]]
2. Mise sous forme prenexe : application des regles d’equivalence
8x8y8z .[8x 09x 00.(r(x 0, x 0) ^ (r(x 00, y)! (9y 0.r(y 0, x) ^ 8y 00.r(y 00, z))))]8x8y8z .[8x 09x 009y 08y 00.(r(x 0, x 0) ^ (r(x 00, y)! (r(y 0, x) ^ r(y 00, z))))]8x8y8z8x 09x 009y 08y 00.[r(x 0, x 0) ^ (r(x 00, y)! (r(y 0, x) ^ r(y 00, z)))]
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme Clausale
108 Forme Clausale : Exemple
Considerons la formule suivante :
8x8y8z .[(8x .r(x , x)) ^ [(8x .r(x , y))! (9y .r(y , x) ^ 8y .r(y , z))]]
1. Mise sous forme prenexe : renommage
8x8y8z .[(8x 0.r(x 0, x 0))^[(8x 00.r(x 00, y))! (9y 0.r(y 0, x)^8y 00.r(y 00, z))]]
2. Mise sous forme prenexe : application des regles d’equivalence
8x8y8z .[8x 09x 00.(r(x 0, x 0) ^ (r(x 00, y)! (9y 0.r(y 0, x) ^ 8y 00.r(y 00, z))))]8x8y8z .[8x 09x 009y 08y 00.(r(x 0, x 0) ^ (r(x 00, y)! (r(y 0, x) ^ r(y 00, z))))]8x8y8z8x 09x 009y 08y 00.[r(x 0, x 0) ^ (r(x 00, y)! (r(y 0, x) ^ r(y 00, z)))]
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme Clausale
108 Forme Clausale : Exemple
Considerons la formule suivante :
8x8y8z .[(8x .r(x , x)) ^ [(8x .r(x , y))! (9y .r(y , x) ^ 8y .r(y , z))]]
1. Mise sous forme prenexe : renommage
8x8y8z .[(8x 0.r(x 0, x 0))^[(8x 00.r(x 00, y))! (9y 0.r(y 0, x)^8y 00.r(y 00, z))]]
2. Mise sous forme prenexe : application des regles d’equivalence
8x8y8z .[8x 09x 00.(r(x 0, x 0) ^ (r(x 00, y)! (9y 0.r(y 0, x) ^ 8y 00.r(y 00, z))))]8x8y8z .[8x 09x 009y 08y 00.(r(x 0, x 0) ^ (r(x 00, y)! (r(y 0, x) ^ r(y 00, z))))]8x8y8z8x 09x 009y 08y 00.[r(x 0, x 0) ^ (r(x 00, y)! (r(y 0, x) ^ r(y 00, z)))]
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme Clausale
109 Forme Clausale : ExempleEnsuite il faut appliquer la Skolemisation :
8x8y8z8x 09x 009y 08y 00.[r(x 0, x 0) ^ (r(x 00, y)! (r(y 0, x) ^ r(y 00, z)))]8x8y8z8x 09y 08y 00.[r(x 0, x 0) ^ (r(f (x , y , z , x 0), y)! (r(y 0, x) ^ r(y 00, z)))]8x8y8z8x 08y 00.[r(x 0, x 0)^(r(f (x , y , z , x 0), y)!(r(g(x , y , z , x 0), x)^r(y 00, z)))]
Enfin, nous mettons sous forme normale conjonctive et nous obtenonsl’ensemble de clauses :
{r(x 0, x 0), ¬r(f (x , y , z , x 0), y) _ r(g(x , y , z , x 0), x),¬r(f (x , y , z , x 0), y) _ r(y 00, z)}
Remarque : chaque ensemble de clauses est equivalent a la conjonctionde leurs clotures universelles, on obtient donc un ensemble de clausesequivalent en renommant chaque variable de clause. Par exemple,l’ensemble ci-dessus est equivalent a :
{r(x0, x0), ¬r(f (x1, y , z , x 0), y) _ r(g(x1, y , z , x 0), x1),¬r(f (x2, y3, z , x 0), y3) _ r(y 00, z)}
Dans la suite, on suppose que les clauses ne partagent aucune
variable.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme Clausale
110 Forme Clausale
TheoremeSi S est l’ensemble des formules obtenues a partir de ⌃ en appliquant lasuite des transformations precedentes, alors S est satisfaisable si etseulement si ⌃ est satisfaisable.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Forme Clausale
111 Exercice
Mettre les formules suivantes sous forme clausale :
1. 8x · 9y · (p(x , y)$ 9z · q(z , x))2. ¬(9x · q(x , a)! ¬(8z · (8u · p(u, a, z)! ¬9w · r(w))))
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
112 Unification : quelques definitions
Definition
I une substitution ↵ est une fonction de l’ensemble des variables dansl’ensemble des termes ;
I dans la suite, le domaine d’une substitution, c’est-a-dire{x | ↵(x) 6= x}, est suppose fini. Si le domaine est {x1, x2, . . . , xn} etsi pour i = 1, 2, . . . , n, t
i
est le terme ↵(xi
), la substitution ↵ estnotee :
(t1/x1, t2/x2, . . . , tn/xn)
I la substitution ↵ appliquee a une formule �(x1, x2, . . . , xn), notee↵(�), est la formule obtenue en substituant le terme ↵(x
i
) a chaqueoccurrence de la variable x
i
dans �, pour tout i = 1, 2, . . . , n.
Notons que cette notion de substitution generalise la notion desubstitution d’un terme a une variable que nous avons introduiteprecedement.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
113 Exemple
Dans la suite nous considerons un langage L comportant un symbole depredicat binaire r , un symbole de fonction unaire f , deux symboles defonctions binaires g , h, un symbole de fonction ternaire k et deuxconstante c , d . Soit la substitution
↵ : (g(d , z)/x , f (z)/y , d/z)
et la clause
C ⌘ r(x , f (y)) _ ¬r(g(y , c), z)
la clause ↵(C ) est
r(g(d , z), f (f (z))) _ ¬r(g(f (z), c), d)
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
114 Unification de formules atomiques
DefinitionUn ensemble de formules atomiques
{A1,A2, . . . ,An
}
est unifiable s’il existe une substitution ↵ telle que↵(A1) = ↵(A2) = · · · = ↵(A
n
).
Ainsi, les formules atomiques
r(x , f (y)), r(g(y , c), z), r(g(d , v), f (d))
sont unifiables par la substitution
(g(d , c)/x , d/y , f (d)/z , c/v)
ou x , y , z , v sont des variables et c , d des constantes.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
115 Extension des substitutions aux termes
I Si ↵ est une substitution, alors il existe une fonction unique ↵ del’ensemble des termes dans lui-meme, qui prolonge ↵ et qui respectela structure des termes.
I La valeur de ↵(t) est definie par induction sur le terme t :I
si t est une constante c, on pose ↵(c) = c ;I
si t est une variable x , on pose ↵(x) = ↵(x) ;I
si t est de la forme f (t1, t2, . . . , tn) et si on suppose definis ↵(t1),↵(t2), ..., ↵(tn) on pose ↵(t) = f (↵(t1), ↵(t2), . . . , ↵(tn)).
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
116 Extension des substitutions aux termes
I pour calculer l’e↵et d’une substitution a un terme t(x1, x2, . . . , xn), ilsu�t de substituer le terme ↵(x
i
) a chaque occurrence de la variablexi
dans le terme t ;
I si ↵ est une substitution et t un terme clos, c’est-a-dire sansvariable, alors ↵(t) = t.
I Dans la suite, on notera ↵ au lieu de ↵.
I Par exemple, si ↵ = (f (x , x)/x , a/y , g(x)/z) alors↵(f (g(x), f (z , y))) = f (g(f (x , x), f (g(x), a))).
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
117 Quelques definitions
Definition
I une substitution ↵ est un unificateur de deux termes t et t 0 si↵(t) = ↵(t 0) ;
I soit un ensemble fini de couples de termes, noteS = {(t
i
, t 0i
) | i = 1, 2, . . . ,m} ; une substitution ↵ est un unificateurde S si, pour tout i = 1, 2, . . . ,m, ↵(t
i
) = ↵(t 0i
) ;
I un unificateur � de S est principal si pour tout unificateur ↵ de S , ilexiste une substitution � telle que ↵ = � � � ;
I une substitution � est un unificateur principal d’un ensemble fini deformules atomiques {A1,A2, . . . ,An
} si�(A1) = �(A2) = · · · = �(A
n
) et si pour tout unificateur ↵ de cetensemble de formules, il existe une substitution � telle que↵ = � � �.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
118 Exemple : t = h(x , g(y , z)) et t 0 = h(f (z), v) sont-ils unifiables ?
I oui, par exemple par la substitution�1 = (f (a)/x , a/y , g(a, a)/v , a/z) ou par la substitution�2 = (f (a)/x , y/y , g(y , a)/v , a/z)
I certains unificateurs sont plus “generaux” que d’autres, par exemple�2 est plus general que �1, car �1 peut etre obtenu a partir de �2 ensubstituant a a y .
I un unificateur principal ne peut pas etre generalise, et on va voirqu’il n’en existe qu’un seul a renommage des variables pres.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
118 Exemple : t = h(x , g(y , z)) et t 0 = h(f (z), v) sont-ils unifiables ?
I oui, par exemple par la substitution�1 = (f (a)/x , a/y , g(a, a)/v , a/z) ou par la substitution�2 = (f (a)/x , y/y , g(y , a)/v , a/z)
I certains unificateurs sont plus “generaux” que d’autres, par exemple�2 est plus general que �1, car �1 peut etre obtenu a partir de �2 ensubstituant a a y .
I un unificateur principal ne peut pas etre generalise, et on va voirqu’il n’en existe qu’un seul a renommage des variables pres.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
118 Exemple : t = h(x , g(y , z)) et t 0 = h(f (z), v) sont-ils unifiables ?
I oui, par exemple par la substitution�1 = (f (a)/x , a/y , g(a, a)/v , a/z) ou par la substitution�2 = (f (a)/x , y/y , g(y , a)/v , a/z)
I certains unificateurs sont plus “generaux” que d’autres, par exemple�2 est plus general que �1, car �1 peut etre obtenu a partir de �2 ensubstituant a a y .
I un unificateur principal ne peut pas etre generalise, et on va voirqu’il n’en existe qu’un seul a renommage des variables pres.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
119 Exemple : t = h(x , g(y , z)) et t 0 = h(f (z), v) sont-ils unifiables ?
I Construisons maintenant un unificateur principal. Si ↵ est ununificateur de t, t 0, il doit satisfaire : ↵(t) = ↵(t 0), c’est-a-dire
h(↵(x), g(↵(y),↵(z))) = h(f (↵(z)),↵(v))
La substitution ↵ doit donc satisfaire
↵(x)=f (↵(z)) et ↵(v)=g(↵(y),↵(z))
.Il su�t donc de prendre deux termes arbitraires t1, t2 respectivementpour ↵(y),↵(z) et ↵ doit satisfaire ↵(x) = f (t2) et ↵(v) = g(t1, t2)pour obtenir un unificateur de t et t 0.Par exemple, on peut prendre t1 = u et t2 = u0 pour deux variablesu, u0, et donc ↵ = (f (u0)/x , u/y , u0/z , g(u, u0)/v).
I Montrons que ↵ est principal. Soit ↵0 un unificateur de t et t 0, i.e.↵0(y) = t 01 et ↵0(z) = t 02 pour deux termes t1, t2, et ↵0 satisfait↵0(x) = f (t 02) et ↵
0(v) = g(t 01, t02). Si on pose � = (t 01/u, t
02/u
0) alors↵0 = � � ↵, donc ↵ est un unificateur principal.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
119 Exemple : t = h(x , g(y , z)) et t 0 = h(f (z), v) sont-ils unifiables ?
I Construisons maintenant un unificateur principal. Si ↵ est ununificateur de t, t 0, il doit satisfaire : ↵(t) = ↵(t 0), c’est-a-dire
h(↵(x), g(↵(y),↵(z))) = h(f (↵(z)),↵(v))
La substitution ↵ doit donc satisfaire
↵(x)=f (↵(z)) et ↵(v)=g(↵(y),↵(z))
.Il su�t donc de prendre deux termes arbitraires t1, t2 respectivementpour ↵(y),↵(z) et ↵ doit satisfaire ↵(x) = f (t2) et ↵(v) = g(t1, t2)pour obtenir un unificateur de t et t 0.Par exemple, on peut prendre t1 = u et t2 = u0 pour deux variablesu, u0, et donc ↵ = (f (u0)/x , u/y , u0/z , g(u, u0)/v).
I Montrons que ↵ est principal. Soit ↵0 un unificateur de t et t 0, i.e.↵0(y) = t 01 et ↵0(z) = t 02 pour deux termes t1, t2, et ↵0 satisfait↵0(x) = f (t 02) et ↵
0(v) = g(t 01, t02). Si on pose � = (t 01/u, t
02/u
0) alors↵0 = � � ↵, donc ↵ est un unificateur principal.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
120 Hauteur d’un terme
La hauteur i d’un terme d’un langage du premier ordre mesure lacomplexite de ce terme.Formellement : soit L un langage du premier ordre. La suite desensembles T
n
est definie par recurrence sur l’entier n :
I T0 est la reunion de l’ensemble des constantes et de celui desvariables ;
I Tn
est suppose defini ; on prend t 2 Tn+1 si t 2 T
n
ou si t est de laforme f (t1, t2, . . . , tk) pour un symbole de fonction f d’arite k etchaque t
i
2 Tn
.
La hauteur d’un terme t est le plus petit entier n tel que t 2 Tn
.Notons la propriete suivante :
PropositionSi ↵ est une substitution, alors pour tout terme t, la hauteur de ↵(t) estsuperieure ou egale a la hauteur de t.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
121 Unificateurs principaux
TheoremeSi � et �0 sont des unificateurs principaux de deux termes t et t 0, alors ilssont egaux a une permutation des variables pres.
Preuve. Si � et �0sont des unificateurs principaux de t et t0 alors il existe �
et � tels que
� = � � �0et �0
= � � �
Donc � = � � � � � et � � � est l’identite.
� transforme necessairement une variable en une autre variable. En e↵et, sinon
� ne pourrait pas reattribuer une variable au terme ainsi cree, cela contredirait
le resultat qu’une substitution ne peut pas faire descendre la hauteur d’un
terme. De meme l’association d’une constante serait irreversible.
Le meme raisonnement peut etre fait sur �.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
122 Quelques definitions supplementaires
Definition
I la hauteur d’un couple de termes (t, t 0) est le minimum des hauteursdes termes t, t 0 ;
I la hauteur d’un ensemble fini S de couples de termes est lemaximum des hauteurs des couples de S ;
I un systeme est un ensemble fini de couples de termes.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
123 Simplification
LemmeEtant donne un systeme S de couples de termes, il existe une suite finiede transformations qui preservent les unificateurs de S, s’il en existe, et letransforme en un systeme S1 de hauteur nulle, appele systeme simplifie .
Preuve. Soit S un systeme de hauteur h > 0. La transformation quenous allons definir ci-dessous permet soit de montrer que S n’est pasunifiable, soit de determiner un systeme S 0 qui est de hauteur h0 < h etqui a les memes unificateurs que S .
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
La transformation peut-etre definie de la facon suivante :I remplacer si possible chaque couple (t, t 0) de termes de hauteur
h > 0 par un ensemble de couples de termes de hauteur h0 < hI
Soient deux termes t et t0 tels que
t = f (t1, t2, ..., tn)
t0 = f 0(t,1, t,2, ..., t
,m
)
alors soit :
If 6= f
0 et les termes t et t0 ne sont pas unifiables et donc S n’a pasd’unificateur
If = f
0 et donc n = m et on remplace le couple (t, t0) par l’ensembledes couples (t
i
, t,i
) pour i = 1, 2, ..., n, qui sont de hauteurs h
0 < h etont les memes unificateurs que (t, t0).
Apres applications successives de ces transformations, on obtient, si S estunifiable, un ensemble S 0 de hauteur h = 0. On peut simplifier cetensemble en appliquant les deux regles suivantes (qui preservent lesunificateurs) :
I s’il existe plusieurs couples identiques dans S 0, on n’en conservequ’un ;
I on elimine les couples de la forme (t, t) ou t est un terme.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
125 Simplification : exemple
1. {(f (g(x), f (x , y)), f (z , f (g(y), z))), (f (a, g(u)), f (a, u0))}2. {(g(x), z), (f (x , y), f (g(y), z)), (a, a), (g(u), u0)}3. {(g(x), z), (x , g(y)), (y , z), (a, a), (g(u), u0)}4. {(g(x), z), (x , g(y)), (y , z), (g(u), u0)}
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
126 Simplification : autre exemple
I {(k(f (c , g(x4, x5)), f (c , g(x5, x4)), x2), k(x2, x2, x6))}I systeme simplifie ?
I {(f (c , g(x4, x5)), x2), (f (c , g(x5, x4)), x2), (x2, x6)}
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
126 Simplification : autre exemple
I {(k(f (c , g(x4, x5)), f (c , g(x5, x4)), x2), k(x2, x2, x6))}I systeme simplifie ?
I {(f (c , g(x4, x5)), x2), (f (c , g(x5, x4)), x2), (x2, x6)}
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
Forme Resolue
DefinitionUn systeme S de couples de termes est sous forme resolue si chaqueequation est de la forme (x , t) ou t est un terme et x est une variable quin’apparaıt pas dans t ni dans d’autres couples de termes.
I S 0 = {(x , f (y)), (z , y), (v , g(y , y))} est sous forme resolue.
I remarque : un systeme sous forme resolue definit une substitution.Par exemple ici, S 0 definit la substitution (f (y)/x , y/z , g(y , y)/v).
I nous allons definir un algorithme d’unification qui transforme unsysteme en un systeme sous forme resolue, lorsque le systeme estunifiable.
I cet algorithme applique successivement des regles de transformationsau systeme qui preservent l’ensemble des unificateurs.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
Algorithme d’UnificationINPUT : S , systeme de couples de termes
1. Transformer le systeme S avec la premiere regle qui s’applique parmiles regles suivantes :1.1 transformer tout couple de la forme (t, x) ou t n’est pas une variable
en un couple (x , t).1.2 supprimer les couples de la forme (x , x).1.3 simplifier le systeme. Si ce n’est pas possible, alors l’algorithme
s’arrete car il n’existe pas d’unificateur.
1.4 Soit (x , t) un couple du systeme tel que x apparaıt ailleurs dans le
systeme. Si x apparaıt dans t, alors terminer l’algorithme car le
systeme n’est pas unifiable. Sinon, remplacer dans les autres
equations du systeme toutes les occurrences de x par t.
2. recommencer l’etape 1 sur le nouveau systeme tant que c’estpossible
OUTPUT : si l’algorithme n’a pas conclu que le systeme n’est pasunifiable et que l’on ne peut plus appliquer de regle, alors le systemeobtenu est sous forme resolue. On retourne alors la substitution qu’ildefinit.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
129 ExemplePartons du systeme
S1 = {(f (c , g(x4, x5)), x2), (f (c , g(x5, x4)), x2), (x2, x6)}.
On peut appliquer la premiere regle pour “orienter” les couples :
S2 = {(x2, f (c , g(x4, x5))), (x2, f (c , g(x5, x4))), (x6, x2)}.
Le systeme est deja sous forme simplifiee. Appliquons la regle 4 avec lecouple (x2, f (c , g(x4, x5))). On remplace toutes les occurences de x2 parf (c , g(x4, x5)) et on obtient le systeme S3 =
{(x2, f (c , g(x4, x5))), (f (c , g(x4, x5)), f (c , g(x5, x4))), (x6, f (c , g(x4, x5)))}.
qui peut etre simplifie en un systeme S4 =
{(x2, f (c , g(x4, x5))), (x4, x5), (x5, x4), (x6, f (c , g(x4, x5)))}.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
130 Exemple
Prenons maintenant l’equation (x4, x5) et appliquons la regle 4, onobtient S5 =
{(x2, f (c , g(x5, x5))), (x4, x5), (x5, x5), (x6, f (c , g(x5, x5)))}.
On applique la regle 2 est on obtient enfin
Sr
= {(x2, f (c , g(x5, x5))), (x4, x5), (x6, f (c , g(x5, x5)))}.
qui est sous forme resolue. Rermarquez qu’on ne peut plus appliqueraucune des regles.Le systeme est donc unifiable par la substitution(f (c , g(x5, x5))/x2, x5/x4, f (c , g(x5, x5))/x6). Nous allons voir quel’algorithme retourne toujours un unificateur principal.Exercice Unifier le systeme {(g(y), x), (f (x , h(x), y), f (g(z),w , z))}.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Unification
131 Terminaison et correction de l’algorithme d’unification
TheoremeL’algorithme d’unification termine. Si il termine avec un echec, alors lesysteme n’est pas unifiable. Si il termine avec succes, alors le systemeobtenu est en forme resolue et definit un unificateur principal du systemed’origine.
Preuve non donnee en cours.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Resolution
132 Regle de la resolution ...
Formules Positives et NegativesSoit C un clause.
I les formules atomiques de C apparaissant sans negation sont ditespositives et celles apparaissant precedees d’une negation sont ditesnegatives ;
I la clause C peut etre notee (N,P) ou N, respectivement P , estl’ensemble des formules atomiques negatives, respectivementpositives de C .
Principe de la regleLa regle de resolution permet de deduire une nouvelle clause a partir dedeux clauses C1 et C2. Elle opere en deux temps
1. d’abord unification d’un ensemble de formules atomiques negativesde C1 et positives de C2,
2. puis coupure sur la formule atomique obtenue.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Resolution
133 ... Formellement
Soit C1 = (N1,P1) et C2 = (N2,P2) deux clauses separees , c’est-a-diresans variables communes (il su�t de renommer des variables dans unedes clauses si necessaire).S’il existe P 0
1 ✓ P1 et N 02 ✓ N2 tels que l’ensemble des formules atomiques
P 01 [ N 0
2 soit unifiable et si � est un unificateur principal, la nouvelleclause C , deduite des deux clauses C1,C2 par resolution, est definie par
N = �(N1) [ �(N2 \ N 02) et
P = �(P1 \ P 01) [ �(P2)
La clause C est dite deduite par resolution des clauses C1 et C2
relativement a l’unificateur � (et P 01, N
02). On dit que la clause C est un
resolvant de C1 et C2 relativement a �.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Resolution
134 Exemple
Soit L = {p|1, q|1, s|1, r |2, f |1} et soient les deux clauses suivantes :
I C1 ⌘ ¬s(z) _ p(z) _ q(z)
I C2 ⌘ ¬p(f (y)) _ r(x , y)
I la clause C1 est decrite par l’ensemble P1 = {p(z), q(z)} etN1 = {s(z)}.
I la clause C2 est decrite par l’ensemble P2 = {r(x , y)} etN2 = {p(f (y))}.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Resolution
135 Exemple
On considere les sous-ensembles de C1 et C2 suivants :
P 01 = {p(z)}, N 0
2 = {p(f (y))}
Nous allons unifier {p(f (y)), p(z)}
On considere donc le systeme S = {(z , f (y))} de hauteur zero qui estunifie par �(z) = f (y).
Nous pouvons maintenant calculer C3 (la clause resolvante) comme :C3 ⌘ ¬s(f (y)) _ q(f (y)) _ r(x , y)
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Resolution
136 Preuve par resolution
DefinitionSoit S un ensemble de clauses et C une clause. Une preuve par resolutionde C a partir de S est une suite finie de clauses C1,C2, . . . ,Cn
telles queCn
= C et pour tout i = 1, 2, . . . , n :
I soit Ci
est une clause de S ;
I soit il existe 1 j , k < i tels que Ci
soit un resolvant de Cj
,Ck
.
L’existence d’une preuve C par resolution a partir de S est notee S `R
C .Une refutation de S est une preuve de la clause vide , i.e. (;, ;), a partirde S .
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Resolution
137 Exercice
Montrez que l’ensemble de clauses :
I ¬p(x) _ p(y)
I p(z) _ q(z)
I ¬p(c)I ¬q(d)
possede une refutation.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Resolution
Necessite de considerer des ensembles de litteraux
I Appliquez la methode de resolution pour montrer l’insatisfaisabilitedes clauses
I C1 = p(a, x) _ p(x , a)I C2 = ¬p(a, x) _ ¬p(x , a)
en vous imposant d’unifier des paires de litteraux seulement, et nondes paires d’ensembles de litteraux, i.e. en supposant que dans laregle de coupure, P 0
1 et N 02 sont des ensembles singletons.
I Un pas de coupure donne toujours la clause p(a, x) _ ¬p(a, x). Lamethode “par singletons” n’est donc pas complete. Par contre, enunifiant tous les litteraux, on obtient par un pas de coupure la clausevide directement, avec la substitution a/x .
I On peut neanmoins obtenir une methode complete “par singletons”,mais il faut alors ajouter la regle de factorisation : etant donnee uneclause de la forme l1 _ l2 _ C et un unificateur principal � de l1 _ l2(s’il existe), on genere la clause �(l1) _ �(C ). C’est une variante quiest souvent decrite dans la litterature.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Resolution
Necessite de considerer des ensembles de litteraux
I Appliquez la methode de resolution pour montrer l’insatisfaisabilitedes clauses
I C1 = p(a, x) _ p(x , a)I C2 = ¬p(a, x) _ ¬p(x , a)
en vous imposant d’unifier des paires de litteraux seulement, et nondes paires d’ensembles de litteraux, i.e. en supposant que dans laregle de coupure, P 0
1 et N 02 sont des ensembles singletons.
I Un pas de coupure donne toujours la clause p(a, x) _ ¬p(a, x). Lamethode “par singletons” n’est donc pas complete. Par contre, enunifiant tous les litteraux, on obtient par un pas de coupure la clausevide directement, avec la substitution a/x .
I On peut neanmoins obtenir une methode complete “par singletons”,mais il faut alors ajouter la regle de factorisation : etant donnee uneclause de la forme l1 _ l2 _ C et un unificateur principal � de l1 _ l2(s’il existe), on genere la clause �(l1) _ �(C ). C’est une variante quiest souvent decrite dans la litterature.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Resolution
139 Adequation et Completude de la resolution
On a le theoreme suivant (non demontre dans ce cours) :
TheoremeUn ensemble de clauses S est non satisfaisable si, et seulement si, ilexiste un refutation de S par resolution.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique des Predicats
Resolution
140 Exercice
Soit un langage du premier ordre L = {q, r , f , a} ou q, r sont dessymboles de predicats binaires, f est une fonction unaire, a un symbolede constante. Demontrer avec la methode de resolution que la formulesuivante est valide :
[(8x .8y .(q(x , y)! r(f (x), f (y)))) ^ (8x .q(x , a))]! 9y .8x .r(f (x), y)