Diérentes étapes Nous présentons une méthode de réfutation pour le calcul des prédicats : La résolution pour le calcul des prédicats Méthode par réfutation - rappel : A est une conséquence de { A} est insatisfaisable { A} est réfutable. Forme prénexe Skolemisation Forme normale conjonctive et forme clausale Règles de résolution Correction et complétude Delia Kesner (Université Paris Diderot) Logique 2016 1 / 34 Forme prénexe Delia Kesner (Université Paris Diderot) Logique 2016 2 / 34 Calcul d'une forme prénexe Utiliser les équivalences suivantes vues en cours comme des règles orientées : Dénition : Une formule G est dite en forme prénexe elle est de la forme Q 1 x 1... Q n x n A, où chaque Q i est un quanticateur ou et A ne contient pas de quanticateur. Exemple : La formule x. z.(p(x) r(x, z)) est une form prénexe. La formule x.p(x) z.r(x, z) n'est pas une form prénexe. Théorème : Pour toute formule G il existe une formule G en forme prénexe t.q G G. x. A x. A x. A x. A x. A x. B x. (A B) x. A x. B x. (A B) x. A x. B x. (A B) A x. B x. (A B), x / VI (A) A x. B x. (A B), x / VI (A) A x. B x. (A B), x / VI (A) A x. B x. (A B), x / VI (A) A x. B x. (A B), x / VI (A) A x. B x. (A B), x / VI (A) x. B A x. (B A), x / VI (A) x. B A x. (B A), x / VI (A) Delia Kesner (Université Paris Diderot) Logique 2016 3 / 34 Delia Kesner (Université Paris Diderot) Logique 2016 4 / 34
Exemples Skolemisation partielle ( x p(x)) r(x) y (p(y) r(x)) ( x p(x)) ( x r(x)) x (p(x) r(x)) ( x p(x)) ( x r(x)) 2 x y (p(x) r(y)) ( x p(x)) ( x r(x)) 2 x y (p(x) r(y)) ( x p(x)) ( y r(y)) 2 x y (p(x) r(y)) [( x p(x)) ( y r(y))] 4 x y (p(x) r(y)) Dénition : Soit G une formule prénexe de la forme x 1... x n x n+1 Q n+2 x n+2... Q n+i x n+i A. Soit f un nouveau symbole de fonction n-aire. La formule x 1... x n Q n+2 x n+2... Q n+i x n+i {x n+1 f (x 1,..., x n )}(A) est la skolemisation partielle de G. Lemme : Soit G une formule prénexe et soit G sa skolemisation partielle. Alors G a un modèle G a un modèle. Delia Kesner (Université Paris Diderot) Logique 2016 5 / 34 Exemples Delia Kesner (Université Paris Diderot) Logique 2016 6 / 34 Skolemisation G est la skolemisation partielle de G. G G x y z r(x, z) x y r(x, f (x, y)) x z y w w s(w, x, h(z)) x y w w s(w, x, h(g(x))) x z y s(x, x, z) z y s(a, a, z) x y z r(x, y) x y r(x, y) Dénition : Soit G une formule prénexe ayant n quanticateurs. La Skolemisation de G est la formule obtenue par n applications succeves de la skolemisation partielle. Théorème : Soit G la Skolemisation de la formule G. Alors Si G contient n quanticateurs, G contient au plus symboles de fonction. G ne contient pas de quanticateurs. G a un modèle G a un modèle. n nouveaux Delia Kesner (Université Paris Diderot) Logique 2016 7 / 34 Delia Kesner (Université Paris Diderot) Logique 2016 8 / 34
Exemples Forme normale conjonctive pour le calcul des prédicats G est la Skolemisation de G. G G x y z r(x, z) x y r(x, f (x, y)) x z y w w s(w, x, h(z)) x y s(i(x, y), x, h(g(x))) x z y s(x, x, z) y s(a, a, b) Dénition : Un littéral est une formule de la forme r(t 1,..., t n ) ou r(t 1,..., t n ). Une clause est une formule de la forme L 1... L q, q 0, où chaque L i est un littéral. La clause vide s'écrit False. Une formule est en forme normal conjonctive (FNC) elle est de la forme C 1... C n, n 0, où chaque C i est une clause. La FNC vide s'écrit True. Delia Kesner (Université Paris Diderot) Logique 2016 9 / 34 Exemples Delia Kesner (Université Paris Diderot) Logique 2016 10 / 34 Existence de la FNC True est une FNC. False est une FNC. p(h(x)) est une FNC. p(h(x)) p(y) est une FNC. ( p(h(x)) p(y)) p(z) est une FNC. ( p(h(x)) p(y)) (p(z) p(h(x))) est une FNC. (p(x) p(z)) n'est pas une FNC. p(x) ( p(z) p(h(z))) n'est pas une FNC. p(x) ( p(z) p(h(z))) n'est pas une FNC. Théorème : Pour toute formule A sans quanticateurs, il existe une formule A sans quanticateurs en FNC telle que A A. Preuve : Comme dans le cas propositionnel : utiliser les transformations (équivalences) suivantes : A B A B A A (A B) A B (A B) A B A (B C) (A B) (A C) (A B) C (A C) (B C) (A B) C A (B C) (A B) C A (B C) Delia Kesner (Université Paris Diderot) Logique 2016 11 / 34 Delia Kesner (Université Paris Diderot) Logique 2016 12 / 34
Unicité Vers la mise sous forme clausale Soit clu(a) (resp. cle(a)) la clôture universelle (resp. existentielle) d'une formule A. Soit clu( ) = {clu(a) A } et cle( ) = {cle(a) A }. La FNC d'une formule n'est pas unique. Exemple : p p p p p True. Donc, p p, p p p et True sont trois FNC de la formule p p. Lemme : Soit = {A 1,..., A n } un ensemble de formules sans quanticateurs. Soit FNC = {E 1,..., E n } un ensemble de formules où chaque E i est une FNC de A i. Soit C l'ensemble de clauses de FNC construit comme 1 i n {D i 1,..., D ik E i FNC et E i = D i1... D ik }. Alors l'ensemble de formules clu( ) a un modèle l'ensemble de clauses clu(c ) a un modèle. Delia Kesner (Université Paris Diderot) Logique 2016 13 / 34 Delia Kesner (Université Paris Diderot) Logique 2016 14 / 34 Mise sous forme clausale Exemple Théorème : Pour toute formule G il existe un ensemble de clauses C G appelé ensemble adapté à G t.q Preuve : les clauses de C G a ne partagent pas de variables deux à deux, G a un modèle clu(c G ) a un modèle. 1 D'abord de G on xe G 1 = cle(g). G a un modèle G 1 a un modèle. 2 Calculer G 2, la forme prénexe de G 1. On a G 2 G 1. 3 Calculer G 3 = x 1... x m.a (m 0), la Skolemisation de G 2. On a que G 3 a un modèle G 2 a un modèle. 4 Calculer la forme normal conjonctive de A dont les variables sont G = [[q(a) ( x.(q(x) q(f (x))))] z.q(f (f (z)))] 1 G 1 = G. 2 G 2 = z. x. [[q(a) (q(x) q(f (x)))] q(f (f (z)))]. 3 G 3 = G 2. 4 G 4 = z. x.[[q(a) ( q(x) q(f (x)))] q(f (f (z)))]. 5 C G = {q(a), q(x) q(f (x)), q(f (f (z)))}. {x 1,..., x m }. On obtient G 4 = x 1... x m.(c 1... C n ) (m 0, n 0). On a G 4 G 3. 5 Donner comme résultat C G = {C 1,..., C n} qui est un renommage de {C 1,..., C n } an d'eviter les variables communes. On a que G a un modèle clu(c G ) a un modèle. Delia Kesner (Université Paris Diderot) Logique 2016 15 / 34 Delia Kesner (Université Paris Diderot) Logique 2016 16 / 34
Exemple Résolution pour le calcul des prédicats Axiomes : G = ( y.r(u, y) x.q(x, x)) ( x.p(x)) p(u). 1 G 1 = u.(( y.r(u, y) x.q(x, x)) ( x.p(x)) p(u)). 2 G 2 = u. x. y. z.((r(u, y) q(z, z)) p(x) p(u)). 3 G 3 = z.((r(c, b) q(z, z)) p(a) p(c)). 4 G 4 = G 3. 5 C G = {r(c, b) q(z, z), p(a), p(c)}. C Règles d'inférence : (C, où un ensemble de clauses). D r(s 1,..., s n ) C r(t 1,..., t n ) σ(d C) D r(s 1,..., s n ) r(t 1,..., t n ) σ(d r(s 1,..., s n )) D r(s 1,..., s n ) r(t 1,..., t n ) σ(d r(s 1,..., s n )) (coupure) (factorisation) (factorisation) où σ est l'unicateur principal du problème {s 1. = t1,..., s n. = tn } et les clauses C et D ne partagent pas de variables. Delia Kesner (Université Paris Diderot) Logique 2016 17 / 34 Les cas particuliers Delia Kesner (Université Paris Diderot) Logique 2016 18 / 34 Résolution pour le calcul des prédicats Quelques cas particuliers lorsque r est 0-aire : D r C r D C (c) r r (c) r r False r (f ) r r Quelques cas particulier lorsque {s 1. = t1,..., s n. = tn } est uniable avec une substitution σ : r (f ) Notation : Comme dans le cas propositionnel, on écrit : R A si A est dérivée à partir de l'ensemble par résolution (coupure et factorisation) R False si False est dérivée à partir de l'ensemble par résolution (coupure et factorisation) r(s 1,..., s n ) r(t 1,..., t n ) False (c) Notion de réfutation Un ensemble de formules est réfutable on obtient False en lui appliquant la méthode de résolution, c'est à dire, si R False. r(s 1,..., s n ) r(t 1,..., t n ) σr(s 1,..., s n ) (f ) r(s 1,..., s n ) r(t 1,..., t n ) σ r(s 1,..., s n ) (f ) Delia Kesner (Université Paris Diderot) Logique 2016 19 / 34 Delia Kesner (Université Paris Diderot) Logique 2016 20 / 34
Exemple I Montrer que l'ensemble suivant est contradictoire. H 1 : x 0.t(x 0 ) H 2 : x 2.(d(x 2 ) x 1.r(x 1, x 2 )) H 3 : x 3. x 4. (t(x 3 ) q(x 4 )) r(x 3, x 4 ) H 4 : x 5.( d(x 5 ) q(x 5 )) D'abord, on donne un ensemble de clauses C adapté à {H 1, H 2, H 3, H 4 }, C = {t(a), d(x 2 ) r(x 1, x 2 ), t(x 3 ) q(x 4 ) r(x 3, x 4 ), d(b), q(b)} Puis on donne une réfutation de l'ensemble C par la méthode de résolution. Exemple II Montrer que la formule J 4 est conséquence de la formule J 1 J 2 J 3. J 1 : x 0.t(x 0 ) J 2 : x 2.(d(x 2 ) x 1 r(x 1, x 2 )) J 3 : x 3. x 4. (t(x 3 ) q(x 4 )) r(x 3, x 4 ) J 4 : x 5.( d(x 5 ) q(x 5 )) t(x 3 ) q(x 4 ) r(x 3, x 4 ) t(a) D'abord on utilise le fait que J 4 est un conséquence de {J 1, J 2, J 3 } {J 1, J 2, J 3, J 4 } est réfutable. d(x 2 ) r(x 1, x 2 ) q(x 4 ) r(a, x 4 ) r(a, b) q(b) On constate que {J 1, J 2, J 3, J 4 } = {H 1, H 2, H 3, H 4 } donc on applique le raisonnement de l'exemple précédent. d(b) d(b) False Delia Kesner (Université Paris Diderot) Logique 2016 21 / 34 Exemple III Delia Kesner (Université Paris Diderot) Logique 2016 22 / 34 Propriétés de la résolution Montrer que la formule J : x.p(x) y. p(y) est valide. D'abord on utilise le fait que J est valide J est réfutable. On calcule un ensemble de clauses C adapté à J. C = { p(a), p(y)} On donne une réfutation de l'ensemble C par la méthode de résolution. p(a) p(y) False Théorème : La résolution est correcte, i.e., si R A, alors le séquent clu( ) clu(a) est valide et si clu( ) R False, alors n'a pas de modèle. Théorème : La résolution est complète pour la réfutation, i.e., si clu( ) n'a pas de modèle, alors R False. Delia Kesner (Université Paris Diderot) Logique 2016 23 / 34 Delia Kesner (Université Paris Diderot) Logique 2016 24 / 34
Vers la complétude de la résolution Lemmes pour le Théorème de Herbrand Soit Σ une signature contenant au moins une constante. Dénition : L'univers d'herbrand de Σ est l'ensemble des termes clos sur Σ. La base d'herbrand est l'ensemble d'atomes clos sur Σ. Une interprétation de Herbrand de Σ est une interprétation t.q. Son domaine est l'univers d'herbrand Pour chaque f Σ F d'arité n, I(f )(t 1,..., t n ) = f (t 1,..., t n ) Pour chaque p Σ P d'arité n, on se donne un sous-ensemble S p de la base de Herbrand t.q. I(p)(t 1,..., t n ) = V p(t 1,..., t n ) S p. Lemme : Soit t un terme dont les variables libres appartiennent à {x 1,..., x n }. Soit I une interprétation ayant D comme domaine. Soit la substitution τ = {x 1 t 1,..., x n t n } et soient d 1... d n D t.q. [t i ] I = d i. Alors [t] I[x1 :=d 1 ]...[x n :=d n ] = [τ(t)] I. Lemme : Soit G une formule dont les variables libres appartiennent à {x 1,..., x n }. Soit I une interprétation ayant D comme domaine. Soit la substitution τ = {x 1 t 1,..., x n t n } et soient d 1... d n D t.q. [t i ] I = d i. Alors [G] I[x1 :=d 1 ]...[x n :=d n ] = [τ(g)] I. Exercice : Soit G = r(x 1, x 2 ) et τ = {x 1 a, x 2 s(a)}. Soit I(r)(n, m) = V n < m, I(a) = 0 et I(s)(n) = n + 1. Vérier le résultat du lemme précédent. Delia Kesner (Université Paris Diderot) Logique 2016 25 / 34 Théorème de Herbrand Delia Kesner (Université Paris Diderot) Logique 2016 26 / 34 Preuve du théorème de Herbrand Théorème : Un ensemble de clauses C admet un modèle il existe une interprétation I H de Herbrand t.q. I H est un modèle de C. Preuve : Si il existe une interprétation de Herbrand qui est un modèle de C, alors C admet un modèle. Soit C un ensemble de clauses qui admet un modèle. Alors il existe une interprétation I qui est un modèle de C. On va montrer qu'il existe une interprétation I H de Herbrand qui est un modèle de C. En eet, pour chaque symbole de prédicat p, on construit I H (p) comme suit : I H est un modèle de la formule p(t 1,..., t n ) i.e. (t 1,..., t n ) I H (p) i.e. I H (p)(t 1,..., t n ) = V I est un modèle de la formule p(t 1,..., t n ) Delia Kesner (Université Paris Diderot) Logique 2016 27 / 34 I H (p)(t 1,..., t n ) = V I est un modèle de la formule p(t 1,..., t n ) Soit une clause quelconque E = x 1... x n (A 1... A k ) où chaque A i est un littéral. On veut montrer que I H est un modèle de E. Par hypothèse [E] I = V (1) Π a1,...,a n D[(A 1... A k )] I[x1 :=a 1 ]...[x n :=a n ] = V Soient t 1,..., t n une suite arbitraire de termes clos (cette suite existe car l'univers de Herbrand n'est pas vide). Soient d i = [t i ] I (donc d 1,..., d n D) (1) implique en particulier (2) [(A 1... A k )] I[x1 :=d 1 ]...[x n :=d n ] = V implique il existe i t.q. [A i ] I[x1 :=d 1 ]...[x n :=d n ] = V (lemme avec τ = {x 1 t 1,..., x n t n }) (3) [τ(a i )] I = V Delia Kesner (Université Paris Diderot) Logique 2016 28 / 34
Preuve du théorème de Herbrand (3) [τ(a i )] I = V I est un modèle de τ(a i ) (def. Herbrand) I H est un modèle de τ(a i ) [τ(a i )] IH = V implique [τ(a 1... A k )] IH = V (lemme, où [t i ] IH = t i ) [A 1... A k ] IH [x 1 :=t 1 ]...[x n :=t n ] = V implique (les t i sont arbitraires) [ x 1... x n (A 1... A k )] IH = V [E] IH = V I H est un modèle de E Arbres sémantiques complets Dénition : Soit B 0, B 1, B 2,... une énumération de tous les atomes clos d'une signature Σ. L'arbre sémantique complet associé à cette énumération est un arbre (binaire et équilibré) t.q. la racine est B 0 chaque n ud B i possède un arc gauche V et un arc droit F tous les successeurs de B i sont étiquetés par B i+1 Exercice : 1 Construire un arbre sémantique complet A 1 pour l'énumération nie q(a), q(b), r(a), r(b). 2 Construire un arbre sémantique complet A 2 pour l'énumération innie q(a), q(b), q(s(a)), q(s(b)), q(s(s(a))), q(s(s(b))),.... Delia Kesner (Université Paris Diderot) Logique 2016 29 / 34 N ud d'échec pour un ensemble de clauses Delia Kesner (Université Paris Diderot) Logique 2016 30 / 34 Arbres sémantiques partiels Dénition : Soit A un arbre sémantique complet et soit C un ensemble de clauses. Un n ud n de l'arbre A est dit n ud d'échec pour C si le segment de la branche qui va de la racine de A jusqu'à n sut à falsier au moins une instance close d'une clause de C, et aucun prédécesseur de n n'est un n ud d'échec de A. Exercice : Identier dans les arbres A 1 et A 2 au moins un n ud d'échec pour l'ensemble de clauses { r(x) q(x), q(a), r(a)}. Exercice : Si False C, qu'est-ce qu'on peut dire sur les n uds d'échec pour C? Dénition : Soit A un arbre sémantique complet et soit C un ensemble de clauses. Un arbre sémantique partiel associé à C est un arbre obtenu à partir de A en éliminant les sous-arbres issus des n uds d'échec. Dénition : Un arbre sémantique partiel A est clos si A est ni, et toute feuille de A est un n ud d'échec. Exercice : Construire un arbre sémantique partiel clos associé à C = { r(x) q(s(x)), r(a), q(s(a))}. Delia Kesner (Université Paris Diderot) Logique 2016 31 / 34 Delia Kesner (Université Paris Diderot) Logique 2016 32 / 34
Corollaire du théorème de Herbrand Complétude de la résolution Théorème : Soit C un ensemble de clauses. Aucune interprétation de Herbrand ne satisfait C il existe un arbre sémantique partiel associé à C qui est clos. Théorème : La résolution est complète pour la réfutation, i.e. si n'a pas de modèle, alors R False. Corollaire : Un ensemble de clauses C n'a pas de modèle il existe un arbre sémantique partiel associé à C qui est clos. Delia Kesner (Université Paris Diderot) Logique 2016 33 / 34 Delia Kesner (Université Paris Diderot) Logique 2016 34 / 34