la r´esolution en logique du premier ordre n - … · la r´esolution en logique du premier ordre...

19
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´ edicats emantique La R´ esolution en Logique du Premier Ordre INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´ edicats Introduction ` a la r´ esolution Objectifs L’objectif de cette partie est de d´ efinir une proc´ edure de esolution pour tester si une formule close est une cons´ equence logique d’un ensemble de formules closes, i.e. φ 1 ,..., φ n | = φ o` u les formules φ 1 ,..., φ n , φ sont des formules closes. La r´ esolution est ` a la base de la programmation logique. Prenons l’exemple suivant sur le langage qui contient deux pr´ edicats unaires 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 suivante est 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 Pr´ edicats Introduction ` a la r´ esolution Objectifs Il sut donc d´ emontrer que la formule 8x .(p(x ) ! q(x )) ^8x .p(x ) ^9x .¬q(x ) n’est satisfaite dans aucune structure. I pour ce faire nous commen¸cons par ´ etendre le langage avec un ensemble d´ enombrable C de symboles de constantes, et nous choississons une constante a 2 C . I Clairement, la formule 8x .(p(x ) ! q(x )) ^8x .p(x ) ^9x .¬q(x ) est insatisfaisable si et seulement si la formule 8x .(p(x ) ! q(x )) ^8x .p(x ) ^ ¬q(a) l’est aussi (exercice). I Nous essayons maintenant de d´ eduire une contradiction ` a partir de 8x .(p(x ) ! q(x )) ^8x .p(x ) ^ ¬q(a). 1. 8x .(p(x ) ! q(x )) axiome 2. 8x .p(x ) axiome 3. ¬q(a) axiome 4. p(a) comme cons´ equence de 2 5. q(a) comme cons´ equence de 1 et 4 6. ? contradiction entre 3 et 5 INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique La Logique des Pr´ edicats Introduction ` a la r´ esolution Un autre exemple Montrons que la formule 8x .(p(x , f (x )) ! q(x )) ^8x 8y .p(f (x ), f (y )) ^9x .¬q(f (x )) n’est satisfaite dans aucune structure. On introduit d’abord un symbole de constante a 2 C , puis : 1. 8x .(p(x , f (x )) ! q(x )) axiome 2. 8x 8y .p(f (x ), f (y )) axiome 3. ¬q(f (a)) axiome 4. p(f (a), f (f (a))) comme cons´ equence de 2 5. q(f (a)) comme cons´ equence de 1 et 4 6. ? contradiction entre 3 et 5

Upload: buique

Post on 13-Sep-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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

Page 2: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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.

Page 3: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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.

Page 4: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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.

Page 5: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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))))

Page 6: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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 .

Page 7: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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.

Page 8: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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 .

Page 9: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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)))]

Page 10: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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.

Page 11: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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))).

Page 12: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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.

Page 13: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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 �.

Page 14: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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)}

Page 15: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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.

Page 16: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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.

Page 17: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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 .

Page 18: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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.

Page 19: La R´esolution en Logique du Premier Ordre n - … · La R´esolution en Logique du Premier Ordre ... La r´esolution est `a la base de la programmation logique. Prenons l’exemple

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)