INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique Emmanuel Filiot Département d’Informatique Faculté des Sciences Université Libre de Bruxelles Année académique 2011-2012 Basé sur le cours Logique Informatique du Pr. J.-F. Raskin 1- INFO-F-302 - / Littéraux et Clauses Rappels Une formule propositionnelle φ est un littéral si et seulement si φ est une proposition ou la négation d’une proposition. Une valuation V satisfait un ensemble de formules A = {φ1 , . . . , φn }, que l’on note V |= A, si et seulement si V |= φ1 ∧ · · · ∧ φn . Si A = ∅, alors toute valuation V satisfait A. Donc, p et ¬p sont des littéraux. Définition Une formule propositionnelle φ est une clause si φ = ψ1 ∨ ψ2 ∨ · · · ∨ ψn où n ≥ 1 et chaque ψi , 1 ≤ i ≤ n, est un littéral . Par exemple, p ∨ ¬q ∨ r est une clause. 2- INFO-F-302 - La Logique Propositionnelle / La Résolution Clauses et ensembles de littéraux Une clause ¬a1 ∨ ¬a2 ∨ · · · ∨ ¬am ∨ b1 ∨ b2 ∨ · · · ∨ bn où a1 , a2 , . . . , am , b1 , b2 , . . . , bn sont des propositions peut être écrite comme l’implication : a1 ∧ a2 ∧ · · · ∧ am → b1 ∨ b2 ∨ · · · ∨ bn ou encore comme une paire d’ensembles (N, P) où N = {a1 , a2 , . . . , am } et P = {b1 , b2 , . . . , bn } (N pour négatif et P pour positif). Donc N contient l’ensemble des propositions qui apparaissent négativement dans la clause, alors que P contient l’ensemble des propositions qui apparaissent positivement dans la clause. 3- INFO-F-302 - La Logique Propositionnelle / La Résolution Différents types de clauses Une clause (N, P) est une clause négative si P = ∅ ; une clause positive si N = ∅ ; une clause vide si N = P = ∅ (on la note ⊥) ; une clause tautologique si N ∩ P 6= ∅. 4- INFO-F-302 - La Logique Propositionnelle / La Résolution Interprétation des clauses Définition Une valuation V satisfait une clause C = (N, P), ce que l’on note V |= C , si et seulement si il existe a ∈ N tel que V (a) = faux ou si il existe b ∈ P tel que V (b) = vrai. Et donc, 5- 1 La clause vide n’est satisfaite par aucune fonction d’interprétation. 2 La clause vide est la seule clause non satisfaisable. 3 Une clause tautologique est satisfaite par toutes les fonctions d’interprétation. INFO-F-302 - La Logique Propositionnelle / La Résolution Interprétation des ensembles de clauses Nous étendons maintenant les notions de satisfaction, satisfaisabilité, validité et conséquence logique aux ensembles de clauses : Définition 1 Un ensemble de clauses S est satisfait par la fonction d’interprétation V si et seulement si on a que V |=C pour toute clause C ∈ S. 6- 2 Un ensemble de clauses S est satisfaisable si et seulement si il existe une fonction d’interprétation qui satisfait S. 3 Un ensemble de clauses S est valide si et seulement si toute fonction d’interprétation V satisfait S. 4 Une clause C est une conséquence logique d’un ensemble de clauses S, ce que l’on note S |= C si et seulement si pour toute valuation V qui satisfait S, V satisfait C . INFO-F-302 - La Logique Propositionnelle / La Résolution Interprétation des ensembles de clauses Et donc, L’ensemble vide de clause est valide et donc satisfaisable. Soit S un ensemble de clauses et C une clause tautologique, S ∪ {C } est satisfaisable (respectivement valide) si et seulement si S est satisfaisable (respectivement valide). Ce dernier corollaire nous indique que, lorsque l’on veut vérifier la satisfaisabilité ou la validité d’un ensemble de clauses, on peut toujours supprimer les clauses tautologiques. 7- INFO-F-302 - La Logique Propositionnelle / La Résolution Equivalence entre ensembles de clauses et formules Proposition Toute formule φ est équivalente à un ensemble fini de clauses. Preuve : utiliser la mise sous FNC. Exercice : calculer un ensemble de clauses équivalent à ¬(p ↔ (q → r )). 8- INFO-F-302 - La Logique Propositionnelle / La Résolution Règle de coupure Exemples de coupure |= (¬φ ∨ ψ) ∧ φ → ψ (Modus Ponens). |= (¬φ ∨ ψ) ∧ (φ ∨ ψ 0 ) → ψ ∨ ψ 0 . Définition Etant données deux clauses C1 = (N1 , P1 ) et C2 = (N2 , P2 ) et une proposition p telles que p ∈ P1 et p ∈ N2 , c’est-à-dire p apparaît positivement dans C1 et négativement dans C2 , on obtient la clause C3 = (N3 , P3 ) (le résolvant) par coupure avec p où : N3 = N1 ∪ (N2 \ {p}) ; P3 = (P1 \ {p}) ∪ P2 . On note par C1 , C2 `cp C3 le fait que C3 est déductible de C1 , C2 par coupure sur la proposition p. Par exemple, ({e}, {b, p}), ({p}, {a, b}) `cp ({e}, {a, b}), autrement noté, ¬e ∨ b ∨ p, ¬p ∨ a ∨ b `cp ¬e ∨ a ∨ b. 9- INFO-F-302 - La Logique Propositionnelle / La Résolution Validité de la règle de coupure Théorème Si C3 = (N3 , P3 ) est une clause obtenue par la règle de coupure à partir des clauses C1 = (N1 , P1 ) et C2 = (N2 , P2 ) alors C3 est une conséquence logique de C1 et C2 . Preuve. Pour montrer que la règle de coupure est adéquate, nous devons montrer que si C1 , C2 `cp C3 alors C1 , C2 |= C3 . Par définition de |=, cela revient à montrer que pour toute fonction d’interprétation V telle que V |=C1 et V |=C2 , on a V |=C3 . On considère deux cas : 1 Si V (p) = vrai, alors comme V |=C et p apparaît négativement dans 2 C2 , on a que V |=(N2 \ {p}, P2 ), et donc V |=(N1 ∪ N2 \ {p}, P1 \ {p} ∪ P2 ), i.e. V |=C3 . 2 Si V (p) = faux, alors comme V |=C et p apparaît positivement dans 1 C1 , on a que V |=(N1 , P1 \ {p}), et donc V |=(N1 ∪ N2 \ {p}, P1 \ {p} ∪ P2 ), i.e. V |=C3 . 10- INFO-F-302 - La Logique Propositionnelle / La Résolution Preuve par coupure Définition Soit S un ensemble de clauses et C une clause. Une preuve de C par coupure à partir de S est une suite finie de clauses C1 , C2 , . . . , Cn où Cn = C et pour tout i, 1 ≤ i ≤ n, on a que : soit Ci ∈ S ; ou il existe k, l , 1 ≤ k < l < i et une proposition p tels que Ck , Cl `cp Ci . On note par S`c C le fait que C est déductible de S par coupure. Par exemple : de S = {(¬q ∨ p), (¬r ∨ q), (r ∨ s)}`c s ∨ p avec la preuve par coupure suivante : 1 2 3 4 5 11- ¬q ∨ p ¬r ∨ q r ∨s p ∨ ¬r s ∨p prémisse prémisse prémisse q, 1, 2 r , 3, 4 INFO-F-302 - La Logique Propositionnelle / La Résolution Adéquation des preuves par coupure Théorème Pour tout ensemble de clauses S et pour toute clause C , si S`c C alors S |= C . Preuve. La preuve est laissée en exercice. Indices : utiliser la validité de la règle de coupure et raisonner par induction sur la longueur de la preuve. 12- INFO-F-302 - La Logique Propositionnelle / La Résolution Réfutation Définition Une réfutation d’un ensemble S de clauses par coupure est une dérivation de la clause vide à partir de S. Théorème Si il existe un réfutation de S par coupure alors l’ensemble de clauses S est non satisfaisable. Par exemple, {p, ¬p ∨ q, ¬q ∨ r , ¬r } est non satisfaisable : 13- INFO-F-302 - La Logique Propositionnelle / La Résolution Réfutation Définition Une réfutation d’un ensemble S de clauses par coupure est une dérivation de la clause vide à partir de S. Théorème Si il existe un réfutation de S par coupure alors l’ensemble de clauses S est non satisfaisable. Par exemple, {p, ¬p ∨ q, ¬q ∨ r , ¬r } est non satisfaisable : 1 2 3 4 5 6 7 13- p ¬p ∨ q ¬q ∨ r ¬r q r ⊥ prémisse prémisse prémisse prémisse p, 1, 2 q, 2, 5 r , 4, 6 INFO-F-302 - La Logique Propositionnelle / La Résolution Preuve par réfutation et preuve de conséquence logique Question Comment peut-on se servir de la notion de réfutation pour vérifier qu’une formule φ est une conséquence logique d’un ensemble fini de formules ψ1 , ψ2 , . . . , ψn ? 14- INFO-F-302 - La Logique Propositionnelle / La Résolution Preuve par réfutation et preuve de conséquence logique Question Comment peut-on se servir de la notion de réfutation pour vérifier qu’une formule φ est une conséquence logique d’un ensemble fini de formules ψ1 , ψ2 , . . . , ψn ? Il suffit de procéder de la façon suivante : 1 transformer la conjonction ψ1 ∧ ψ2 ∧ · · · ∧ ψn en un ensemble fini S de clauses (cette transformation est toujours possible) ; 2 3 14- de la même façon, transformer ¬φ en un ensemble S 0 de clauses ; construire l’ensemble de toutes les clauses D déductibles par coupure de S ∪ S 0 . INFO-F-302 - La Logique Propositionnelle / La Résolution Preuve par réfutation et preuve de conséquence logique Si la clause vide appartient à l’ensemble D alors l’ensemble D n’est pas satisfaisable et donc l’ensemble S ∪ S 0 ne l’est pas non plus, ce qui revient à dire que la formule ψ1 ∧ ψ2 ∧ · · · ∧ ψn ∧ ¬φ n’est pas satisfaisable et donc φ est une conséquence logique de l’ensemble {ψ1 , ψ2 , . . . , ψn }. 15- INFO-F-302 - La Logique Propositionnelle / La Résolution Complétude de la méthode par réfutation Lemme Si un ensemble S de clauses est non satisfaisable et ne contient pas la clause vide, alors il existe une proposition p et deux clauses C1 , C2 ∈ S telles que p ∈ P2 et p ∈ N1 . Preuve. Nous établissons ce lemme en raisonnant par l’absurde. Faisons l’hypothèse que S est non satisfaisable, ne contient pas la clause vide et ne contient pas une proposition p avec la propriété requise. Par conséquent, p apparaît soit toujours négativement ou toujours positivement. Montrons maintenant que l’on peut établir la satisfaisabilité de S, ce qui constitue une contradiction. Pour satisfaire S, il suffit de prendre la fonction d’interprétation V tel que V (p) = vrai si p apparaît toujours positivement dans S et V (p) = faux si p apparaît toujours négativement dans S. Une fois que V est définie pour chaque proposition comme expliqué ci-dessus et vu que S ne contient pas la clause vide, il est facile d’établir que V |=S, ce qui est une contradiction avec l’hypothèse de départ qui dit que S est non satisfaisable. 16- INFO-F-302 - La Logique Propositionnelle / La Résolution Complétude de la méthode par réfutation Lemme Si un ensemble S de clauses est non satisfaisable et ne contient pas la clause vide, alors il existe une proposition p et deux clauses C1 , C2 ∈ S telles que p ∈ P2 et p ∈ N1 . Conséquence On peut appliquer la règle de coupure ! 16- INFO-F-302 - La Logique Propositionnelle / La Résolution Complétude de la méthode par réfutation Notations Les propositions d’une clause C = (N, P) sont l’ensemble des propositions qui apparaissent dans l’ensemble N ∪ P ; cet ensemble est noté S Prop(C ). Les propositions d’un ensemble S de clauses est l’ensemble C ∈S Prop(C ) ; cet ensemble est noté Prop(S). Etant donné un ensemble S de clauses et une proposition p, on note Sp le sous-ensemble de clauses de S qui contiennent la proposition p, c’est-à-dire, Sp = {C ∈ S | p ∈ Prop(C )}. 17- INFO-F-302 - La Logique Propositionnelle / La Résolution Complétude de la méthode par réfutation Pas de résolution Soit S un ensemble de clauses qui ne contient pas de clauses tautologiques et une proposition p telle qu’il existe C1 , C2 et p ∈ N1 et p ∈ P2 , donc p apparaît négativement dans C1 et positivement dans C2 . On définit le résolvant de S par p comme l’ensemble des clauses {C3 | ∃C1 , C2 ∈ Sp , p ∈ N1 , p ∈ P2 et C1 , C2 `cp C3 } c’est-à-dire l’ensemble des clauses que l’on peut obtenir à partir de deux clauses de S par coupure sur p ; nous notons par Res(S, p) cet ensemble de clauses et par RRes(S, p) le sous-ensemble de clauses non tautologiques de Res(S, p). 18- INFO-F-302 - La Logique Propositionnelle / La Résolution Complétude de la méthode par réfutation Pas de résolution Etant donné un ensemble S de clauses et une proposition p, l’ensemble de clauses S 0 = (S \ {Sp }) ∪ RRes(S, p) est l’ensemble obtenu par un pas de résolution sur p à partir de S. 19- INFO-F-302 - La Logique Propositionnelle / La Résolution Complétude de la méthode par réfutation Pas de résolution Proposition Si S 0 est un ensemble de clauses obtenu à partir de S (qui ne contient pas de clauses tautologiques) par un pas de résolution sur p alors : 1 S 0 ne contient pas de clauses tautologiques ; 2 S 0 est satisfaisable si et seulement si S est satisfaisable ; 3 Prop(S 0 ) = Prop(S) \ {p}. (preuve laissée comme exercice) 20- INFO-F-302 - La Logique Propositionnelle / La Résolution Complétude de la méthode par réfutation Théorème Si un ensemble S de clauses est non satisfaisable, alors on peut déduire la clause vide à partir de S avec un nombre fini de pas de résolution. Preuve. On fait la preuve par induction sur le nombre n de propositions. Si n = 0, alors S = {⊥} ne contient que la clause vide. Supposons que n > 0. 1 Soit T ⊆ S l’ensemble de clauses non-tautologiques de S. Puisque S est non satisfaisable et que tout clause tautologique est satisfaisable, T est non satisfaisable. 2 d’après le lemme préc’edent, il existe une proposition p qui apparaît négativement dans une clause de T et positivement dans une autre. On peut donc appliquer un pas de résolution, et construire ainsi un ensemble T 0 de clauses qui ne contiennent pas p, et tel que T 0 est insatisfaisable. Par HI, on peut dd́uire la clause vide de T 0 avec un nombre fini de pas de résolution, et donc on peut déduire de T , et donc de S, la clause vide avec un nombre fini de pas de résolution. 21- INFO-F-302 - La Logique Propositionnelle / La Résolution Complétude de la méthode par réfutation Théorème Si un ensemble S de clauses est non satisfaisable, alors on peut déduire la clause vide à partir de S avec un nombre fini de pas de résolution. Remarques on a vu que la réciproque est vraie. pour décider si une formule est satisfaisable avec la méthode de résolution, il faut calculer tous les résolvants et tester que la clause vide n’en fait pas partie. 21- INFO-F-302 - La Logique Propositionnelle / La Résolution