Ecole Supérieure d’Ingénieurs de Luminy Département Informatique LOGIQUE FORMELLE ET DEMONSTRATION AUTOMATIQUE Notes de cours Henry KANOUI Octobre 2006 Logique et démonstration automatique – H. KANOUI 1 INTRODUCTION 1) décrire les structures du raisonnement déductif : démonstrations rigoureuses, mécanisation des preuves 2) syntaxe : langage de symboles sans référence au contenu. définit les énoncés bien formés ou suites de symboles bien agencés ou formules ex : une grammaire du français définit les phrases correctes mais qui peuvent ne pas avoir de sens règles d’inférence qui permettent de déduire de nouvelles formules par un procédé « mécanique » toujours sans faire référence au sens. C’est ce qu’on appelle un système formel 3) sémantique : donner un sens aux symboles et par suite aux formules Une interprétation définit un monde possible dans lequel les formules sont vraies ou fausses 4) lien syntaxe - sémantique Partant d’un ensemble de formules E, d’une formule f et d’une interprétation I telles que : - la formule f se déduit de l’ensemble des formules de E - les formules de E sont toutes vraies par l’interprétation I Questions : - est-ce que la formule f est vraie (resp. fausse) dans l’interprétation I ? - est-ce que la formule f est à la fois vraie et fausse dans l’interprétation I ? Logique et démonstration automatique – H. KANOUI 2 PLAN DU COURS Horaires : 20 heures de cours et TD Bibliographie - Outils Logiques pour l’Intelligence Artificielle – JP Delahaye – Eyrolles (1986) - First-Order Logic and Automated Theorem Proving – M. Fitting – Springer (1996) - Introduction to mathematical logic – E. Mendelson – 4ème ed. – Chapman & Hall (1996) - Gödel, Escher, Bach: les brins d’une guirlande éternelle – D. Hofstadter – InterEditions (1985) 1. Systèmes formels • Définitions • Propriétés • Exemples 2. Calcul propositionnel • Syntaxe • Sémantique : notion d’interprétation et de modèle • Modèle de Herbrand • Propriétés et principaux résultats Logique et démonstration automatique – H. KANOUI 3. Calcul des prédicats • Syntaxe • Substitutions, unification • Sémantique : interprétations et modèles • Propriétés et principaux résultats 4. Eléments de démonstration automatique • Tableaux sémantiques • Résolution sans variables • Résolution avec variables • Stratégies : définitions et propriétés 3 SYSTEMES FORMELS Définition : S = < Σ , F, A , R > Σ: F ⊂ Σ* : A⊂F: R: alphabet au moins dénombrable formules bien formées (récursif ) axiomes (récursif) règles d’inférences : f1 , f2 ,…, fn |-r g Déduction dans un S.F. Une déduction à partir de h1 , h2 ,…, hn (hypothèses) est une suite finie f1 , …, fp telle que ∀ i : fi est un axiome ou fi ∈ { h1 , h2 ,…, hn } ou il existe fi0 , fi1 ,…, fik placés avant fi et une règle r tels que fi0 , fi1 ,…, fik |-r fi On écrit alors : h1 , h2 ,…, hn |-S fp Logique et démonstration automatique – H. KANOUI 4 Théorème d’un S.F. t est un théorème de S ssi |-S t On écrit : t ∈ TS Remarque Les manipulations sont purement syntaxiques comme dans tout S.F. Même si une interprétation s’impose à l’esprit, tout ce que l’on pense être vrai n’est pas forcément un théorème Il se peut qu’il n’y ait aucune adéquation entre le formalisme, les règles d’inférence et la vérité Par exemple 1+1+1 = 111 ∉ TS car 1+1+1 = 111 ∉ F Logique et démonstration automatique – H. KANOUI 5 PROPRIETES DES SYSTEMES FORMELS Cohérent : il existe des fbf qui ne sont pas des théorèmes Décidable : pour tout f ∈ F le problème « f ∈ TS » a une réponse oui ou non (algorithme) Correct : si f ∈ TS » alors f est vraie notion d’interprétation (sémantique) Complet : f ∈ TS » ssi f est vraie Si le S.F. comporte un symbole de négation (¬) Consistant : il n’existe pas de fbf f∈F telle que f∈TS et ¬f∈TS Catégorique : pour tout f ∈ F on a f ∈ TS ou ¬ f ∈ TS Saturé : pour tout f∈F si f∉TS alors S∪{¬f} est inconsistant Logique et démonstration automatique – H. KANOUI 6 RESULTATS GENERAUX Proposition 1 Si h1,…,hk |- f1 et h1,…,hk |- f2 et … et h1,…,hk |- fn et f1,…,fn |- g alors h1,…,hk |- g Proposition 2 L’ensemble des déductions est récursif C’est à dire qu’il existe un programme qui pour toute suite finie d’éléments f1,…,fn de Σ* indique en un temps fini si cette suite est une déduction ou pas. Proposition 3 L’ensemble des théorèmes est récursivement énumérable C’est à dire qu’il existe un programme qui calcule la liste de tous les théorèmes de S. Proposition 4 Il existe des SF pour lesquels l’ensemble des théorèmes n’est pas récursif . Ainsi, alors qu’il y a toujours un moyen algorithmique qui détermine en un temps fini si une suite de formule est une déduction ou pas, il n’y en a pas en général qui détermine si une fbf est un théorème ou pas. Logique et démonstration automatique – H. KANOUI 7 INTERPRETATION DANS LES SYSTEMES FORMELS SF : formaliser ou modéliser un univers concret. établir une correspondance entre le SF et cet univers de sorte que : les formules du SF aient un sens dans l’univers. les axiomes du SF soient des énoncés « vrais » dans l’univers les règles d’inférence du SF soient des raisonnement valides dans l’univers. On souhaite que la correspondance soit complète tous les énoncés vrais de l’univers correspondent à des théorèmes. une telle correspondance est une interprétation du SF c’est un isomorphisme du SF dans l’univers) système pg: - alphabet Σ = {o, p, g } - fbf F = {on p ok g om ; m,n,k>0} - axiomes A = {x p o g x o ; x non vide} - règles R = {x p y g z |- x p y o g z o ; x,y,z non vides} On remarque que l’ensemble T des théorèmes est récursif. Logique et démonstration automatique – H. KANOUI 8 1ère interprétation pour le système pg I[p] = ‘+’ I[g] = ‘=’ I[o] = ‘1’ … I[on] = ‘n’ isomorphisme entre et N muni de l’addition entre 2 entiers 2ème interprétation pour le système pg I’[p] = ‘=’ I’[g] = ‘oté de’ I’[o] = ‘1’ … I’[on] = ‘n’ isomorphisme entre pg et N muni de la soustraction entre 2 entiers Ces 2 interprétations modélisent donc correctement N pour les opérations indiquées Logique et démonstration automatique – H. KANOUI 9 système pg modifié Ajoutons un 2ème schéma d’axiomes : A’ = {x p o g x ; x non vide} f1 : oo p o g oo est un théorème (ax 2) f2 : oo p oo g ooo est un théorème (règle) => contradiction avec le monde extérieur I[f1] est 2+1=2 I[f2] est 2+2=3 Explication : contradiction interne au système o p o g oo (ax 1) o p o g o (ax 2) interprété par interprété par 1+1=2 1+1=1 Ce 2ème axiome a « brisé » l’isomorphisme entre le SF et le monde réel, donc entre les symboles et les concepts Que faire ? changer l’interprétation !: I[p]= ‘+’ et I[g] = ‘≥’ Les axiomes sont alors interprétés par : et les théorèmes contradictoires par : Logique et démonstration automatique – H. KANOUI 1+1≥2 et 1+1≥1 2+1≥2 et 2+2≥3 10 Complétude Le SF pg d’origine avec la 1ère interprétation est complet : toute addition de 2 nombres est représentée par un théorème (elle est démontrable). Il est correct (aucune assertion fausse n’est un théorème). Après modification du SF pg, il n’en est plus de même. Il y a des vérités exprimables qui ne sont plus des théorèmes. Par exemple : 2+3≥1 est exprimé par la fbf : oo p ooo g o qui n’est pas un théorème. A : x p o g x o, comme x est non vide, le nombre de « o » après le « g » est >1. A’ : x p o g x , un seul « o » entre le « p » et le « g ». Règle x p y g z |- x p y o g z o engendre plus de 1 « o » après le g (z n’est pas vide). La fbf : oo p ooo g o ne peut donc pas être produite et donc n’est pas un théorème. Explication : I est « trop large », pas assez rigoureuse. Que faire ? Il y a 2 façons d’y remédier : - ajouter de nouvelles règles et rendre le système plus fort - restreindre l’interprétation. I[g] = « supérieur de 1 ou égal à » la fbf : oo p ooo g o n’est plus un théorème. Logique et démonstration automatique – H. KANOUI 11 CALCUL PROPOSITIONNEL ou LOGIQUE PROPOSITIONNELLE Définition du S.F. CP0 (syntaxe) Σ = { variables propositionnelles } ∪ { ¬ , → , (, ) } F = le plus petit ensemble contenant les variables propositionnelles et fermé pour la règle : si f et g ∈ F, alors ¬f ∈ F et (f → g) ∈ F. A ={ (f → (g → f )) pour f , g ∈ F } ∪ { ((f → (g → h )) → ((f → g) → (f → h)) ; f,g,h∈F} ∪ { (¬f → ¬g ) → (g → f) pour f , g ∈ F } R = {f , f → g |- g pour f , g ∈ F } f∧g f∨g f↔g pour pour pour modus ponens ¬ (f → ¬g ) ¬f → g (f → g) ∧ (g → f) Logique et démonstration automatique – H. KANOUI 12 Proposition 1 Pour toute fbf A du calcul propositionnel, la fbf (A→A) est un théorème : |- (A→A) Proposition 2 Si A1,A2,…,An-1 |- (An→B) alors A1,A2,…,An |- B Proposition 3 : Théorème de déduction (réciproque de la précédente) Si A1,A2,…,An |- B alors A1,A2,…,An-1 |- (An→B) Exemple |- (A→(B→C)) → (B→(A→C)) ssi (A→(B→C)) |- (B→(A→C)) ssi (A→(B→C)) , B |- (A→C) ssi (A→(B→C)) , B , A |- C. Proposition 4 : Toutes les formules suivantes sont des théorèmes. ((A→B) →((B→C) →(A→C))) (B→((B→C) →C)) (¬B→(B→C)) (¬¬B→B) Logique et démonstration automatique – H. KANOUI (B→¬¬B) ((A→B) →(¬B→¬A)) (B→(¬C→¬ (B→C))) ((B→A) →((¬B→A) →A))) 13 INTERPRETATION DU CP0 (SEMANTIQUE) Définition Une interprétation est une application I : { formules atomiques } → { V, F }. C’est à dire qu’on se donne la valeur de vérité (V ou F) pour chaque variable propositionnelle. I est alors prolongée sur tout F par : F si I [f ] = V I [¬f ] = V si I[f]=F ou I[g]=V I[f→g]= V si I [f ] = F I [f ∧ g ]= F sinon V si I [f ]=I [g ]=V F sinon I [f ↔ g ] = F sinon V si I [f]=V ou I[g]=V I[f∨g]= F sinon Logique et démonstration automatique – H. KANOUI V si I [f ] = I [g ] 14 Définitions f est une tautologie si I [f ] = V pour toute interprétation I. On écrit : |= f. {f1 ,…, fn} est satisfiable ou consistant si il existe une interprétation I tq I [f1 ] =…= I [fn ] = V On dit que I est un modèle de { f1 ,…, fn }. Sinon { f1 ,…, fn } est insatisfiable ou inconsistant f est inconsistant ssi ¬f est une tautologie. g est une conséquence de f1 ,…, fn si chaque fois que I [f1 ] =…= I [fn ] = V on a I [g ] = V. ou : tout modèle de { f1 ,…, fn } est un modèle de g. On écrit : f1 ,…, fn |= g. Proposition 5 Si A et B sont 2 fbf on a : |= (A→B) ssi A|=B |= (A↔B) ssi A|=B et B|=A (ce qu’on écrit : A≡B) si |=A et si |=(A→B) alors |=B |= (A∧B) ssi |=A et |=B si |=A ou |=B alors |= (A∨B) Logique et démonstration automatique – H. KANOUI 15 THEOREMES FONDAMENTAUX Proposition 6 (théorème de correction) Pour toute fbf A: si |- A alors |=A Autrement dit, les formules qui sont des théorèmes (validité syntaxique) sont aussi des tautologies (validité sémantique. Le système est « correct » : tout ce qu’on peut déduire est « vrai ») Proposition 7 Soit A une tautologie utilisant les propositions p1,…,pn et B1,…,Bn des formules quelconques. La formule A’ obtenue à partir de A en remplaçant chaque pi par Bi est une tautologie. Proposition 8 (théorème de complétude) Pour toute formule A, si |=A alors |-A Autrement dit, toutes les tautologies (validité sémantique) sont des théorèmes (validité syntaxique) : tout ce qui est « vrai » peut être déduit. Avec la prop. 6, il y a donc équivalence entre ce qui est « vrai » et ce qu’on peut démontrer. Le SF CP0 est une modélisation correcte du calcul des propositions. Logique et démonstration automatique – H. KANOUI 16 Corollaire 1 (théorème de décidabilité) Le calcul propositionnel est décidable ou encore l’ensemble T des théorèmes du CP0 est récursif. Corollaire 2 Pour toutes formules B1,…,Bn et A, on a : B1,…,Bn |=A ssi B1,…,Bn |-A Proposition 9 (théorème de compacité) Soit K un ensemble de formules. Si pour toute partie finie K’ de K il existe une interprétation I partout vraie sur K’, alors il existe une interprétation J partout vraie sur K. Proposition 10 (théorème de finitude) Soit K un ensemble de formules et B une formule. Si K|=B alors il existe une partie finie K’ de K telle que K’|=B . Logique et démonstration automatique – H. KANOUI 17 Proposition 11 Si K est un ensemble de formules et A une formule on a : K |= A ssi K |- A Proposition 12 (méthode de réfutation) Les 3 énoncés suivants sont équivalents : f1 ,…, fn |= g (E1) |= [f1 ∧…∧ fn → g] (E2) {f1 ,…, fn , ¬g} est insatisfiable (E3) En d’autres termes, pour prouver g à partir de f1 ,…, fn , on montre que ¬g introduit une contradiction (raisonnement par l’absurde) Logique et démonstration automatique – H. KANOUI 18 FORMES NORMALES Littéral C’est une formule atomique ou la négation d’une formule atomique Clause C’est une disjonction de littéraux : f ∈ F est une clause si f = ∨i=1,..n pi où chaque pi est un littéral Clause duale C’est une conjonction de littéraux : f ∈ F est une clause si f = ∧i=1,..n pi où chaque pi est un littéral Forme normale conjonctive C’est une conjonction de clauses : f ∈ F est sous forme normale conjonctive si f = ∧i=1,..n ci où On a : f = ∧i [∨j,i pj,i ] chaque ci est une clause appelée conjoint de f. Forme normale disjonctive C’est une disjonction de clauses duales : f ∈ F est sous forme normale disjonctive si f = ∨i=1,..n di où chaque di est une clause duale appelée disjoint de f. On a : f = ∨i [∧j,i pj,i ] Logique et démonstration automatique – H. KANOUI 19 Théorème : Toute formule f ∈ F peut être mise sous f.n. conjonctive Remplacer : f↔g f→g f∨(g∧h) (f∧g)∨h ¬(f∧g) ¬(f∨g) ¬¬ f par (f→g)∧(g→f) ¬f ∨ g ( f ∨ g ) ∧ (f ∨ h ) ( f ∨ h ) ∧ (g ∨ h ) ¬f ∨ ¬g ¬f ∧ ¬g f Théorème Toute formule f ∈ F peut être mise sous forme normale disjonctive Remplacer : f↔g par f→g f ∧(g∨h) (f∨g)∧h ¬(f∧g) ¬(f∨g) ¬¬ f Logique et démonstration automatique – H. KANOUI (f→g)∧(g→f) ¬f ∨ g ( f ∧ g ) ∨ (f ∧ h ) ( f ∧ h ) ∨ (g ∧ h ) ¬f ∨ ¬g ¬f ∧ ¬g f 20 CALCUL des PREDICATS ou LOGIQUE du 1er ORDRE SYMBOLES – ALPHABET : Σ Σ est la réunion des ensembles disjoints et dénombrables les parenthèses : « (» et « ) » les symboles logiques : (implique), ¬ (non) le quantificateur universel : ∀ (pour tout) symboles fonctionnels : {a, b, c, f, g, h, …} A tout s.f.on associe un entier n : son rang. Les symboles fonctionnels de rang 0 sont les constantes : a, b, c, … variables : V = {x, y, z, …} symboles relationnels : {p, q, r, …} A tout s.r. on associe un entier n : son rang. Les symboles relationnels de rang 0 sont les propositions Logique et démonstration automatique – H. KANOUI 21 EXPRESSIONS : Σ* expression : suite finie de symboles. expression terminale : ne contient pas de variables. Termes : T plus petit sous ensemble de Σ* tel que : toute variable est un terme, si f est un s.f. de rg n et t1,… ,tn ∈ T alors f (t1,… ,tn) ∈ T cas particulier n = 0 : f() notée f est une constante ∈ T Formules atomiques ou prédicats : FA plus petit sous ensemble de Σ* tel que : si r est un s.r. de rg n et t1, … ,tn∈T alors r(t1,…,tn) ∈ FA. cas particulier n = 0 : r() notée r est une proposition Formules : F C’est le plus petit sous ensemble de Σ* tel que : toute formule atomique est une formule : FA ⊂ F si p et q ∈ F et x ∈ V alors ¬p, pq et ∀x p ∈ F Logique et démonstration automatique – H. KANOUI 22 Variables liées, variables libres Formule A ∈ FA ¬A A→B ∀xA Exemple : Variables liées Variables libres {variables de A} ∅ {variables liées de A} {variables libres de A} {var. libres de A}∪ {var. liées de A}∪ {var. libres de B} {var. liées de B} {var. liées de A}∪{x} {var. libres de A}- {x} B = ∀x p(x,y,z) → (∀z q(z) → r(z)) variables(B) = {x,y,z} var. liées(B) = {x,z} var. libres(B) = {y,z} une variable peut être à la fois libre et liée dans une même formule. le « z » qui intervient dans la 1ère sous-formule n’a rien à voir avec le « z » qui intervient dans la 2ème sous-formule. Logique et démonstration automatique – H. KANOUI 23 Renommage de x par z dans A A est une formule et x une variable liée de A. B une sous-formule de A dans laquelle x n’est pas libre z une variable qui n’apparaît pas dans A. remplacer toute occurrence de x par z dans B, et recommencer jusqu’à ce que x ne soit plus liée dans A. Exemple : A = (p(x) → ∀y ∀x r(x,y) ∧ ∀x q(x)) après renommage A = (p(x) → ∀y ∀z r(z,y) ∧ ∀u q(u)) Formule close : c’est une formule sans variable libre. Ex : ∀x ∀y (p(x,y) → ∀z r(x,y,z)) Logique et démonstration automatique – H. KANOUI 24 DEFINITION DU S.F. CP1 (SYNTAXE) Σ = alphabet F = formules définis comme précédemment T = termes A= {(A → (B → A )) ((A→(B→C))→((A→B) → (A→C))} (¬A → ¬B ) → (B → A)} ∀xA(x) → A(t)} (( D → B ) → ( D → ∀xB ))} Ax1 Ax2 Ax3 Ax4 Ax5 A, B, C, D ∈ F, t ∈ T , x ∈ V et x n’est pas libre dans D R = {A , A→B |- B pour A , B ∈ F } modus ponens {A |- ∀xA pour A , B ∈ F et x ∈ V } généralisation Logique et démonstration automatique – H. KANOUI 25 Conventions d’écriture : A∧B pour ¬ (A → ¬B ) A∨B pour ¬A → B A↔B pour (A → B) ∧ (B → A) ∃xA pour ¬(∀x ¬A)) On a alors en particulier : ∀x A est équivalente à ¬∃x ¬A ¬(A∧B) est équivalente à ¬A∨¬B ¬(A∨B) est équivalente à ¬A∧¬B ¬¬A est équivalente à A Exemple de déduction : ∀x ∀y p(x,y) |- ∀z p(z,z) f1 : ∀x ∀y p(x,y) f2 : ∀x ∀y p(x,y) → ∀y p(z,y) f3 : ∀y p(z,y) f4 : ∀y p(z,y) → p(z,z) f5 : p(z,z) f6 : ∀z p(z,z) Logique et démonstration automatique – H. KANOUI hyp Ax4 mp Ax4 mp gen 26 Proposition 1 A → A est un théorème. Autrement dit : |- A → A. Proposition 2 Si A1 ,…, An-1 |- (An → B) alors : A1 ,…, An |- B Proposition 3 (théorème de déduction) A1 ,…, An , B étant des formules closes, si : A1 ,…, An |- B alors : A1 ,…, An-1 |- (An → B) Logique et démonstration automatique – H. KANOUI 27 INTERPRETATION ET MODELE DU S.F. CP1 (SEMANTIQUE) La notion d’interprétation permet de traiter rigoureusement la notion de vérité et amène deux questions fondamentales : Les théorèmes du CP1 sont-ils toujours « vrais » ? Les formules « vraies » sont-elles des théorèmes ? Logique et démonstration automatique – H. KANOUI 28 Définitions L est un langage du 1er ordre sur l’alphabet Σ. On définit une interprétation I en se donnant : un ensemble non vide D appelé base de l’interprétation une application I[f] : Dn → D pour tout s.f. f de rg n cas particulier : n = 0 et f est une constante et I[f]∈D une relation I[p] : Dn → {V, F} pour tout s.r. de rg n cas particulier : n = 0 ; r est une proposition et I[f]∈{V,F} On étend I à l’ensemble des termes : I[x] = a où x ∈ V et a est un élément arbitraire de D I[f( t1 , … , tn )] = I[f] (I[t1], … , I[tn]) où f est un s.f. de rg n et t1 , … , tn ∈ T Puis aux formules atomiques : I[r( t1 , … , tn )] = I[r] ( I[t1], … , I[tn]) où r est un s.f. de rg n et t1 , … , tn ∈ T Puis aux formules (p et q étant des formules quelconques) : I[¬p] = V ssi I[p] = F et I[pq] = V ssi I[q] = V chaque fois que I[p] = V Et aux formules closes (x étant une variable libre dans p) : I[∀x p] = V ssi I[p x/a] = V pour tout a ∈ D où px/a consiste à substituer x par a dans p. Logique et démonstration automatique – H. KANOUI 29 Conséquences I[p∨q] = V ssi I[p] = V ou I[q] = V I[p∧q] = V ssi I[p] = I[q] = V I[∃xp] = V ssi I[p x/a] = V pour au moins un a ∈ D où x est libre dans p et px/a consiste à substituer x par a dans p. Exemple : L contient - la constante 0, - une fonction unaire s - une fonction binaire « + » qu’on note en infixé. Alors s(s(0)+s(x)) et s(x+s(x+s(0))) sont des termes. Voici plusieurs choix pour I (interprétation) et A (valuation) D ={0, 1, 2, …} ; 0I = 0 ; sI est la fonction successeur et +I est l’addition. Alors, si A est une valuation telle que xA = 3 : - A I [s(s(0)+s(x))] = xA + 3 = 6 - A I [s(x+s(x+s(0)))] = 2xA + 3 = 9 D = {a, b}+ ; 0I = a ; sI est la fonction qui ajoute « a » à la fin d’un mot et +I est la concaténation. Alors, si A est une valuation telle que xA = aba : - A I [s(s(0)+s(x))] = aabaaa - A I [s(x+s(x+s(0)))] = abaabaaaaa Logique et démonstration automatique – H. KANOUI 30 MODELES Une interprétation I satisfait la formule Φ si I[Φ] = V. Dans ce cas I est un modèle de Φ. Exemple s.f. : {f} pas de constantes une seule fonction (unaire) s.r. : {p} une seule relation et elle est binaire Φ = ∀x(p(x,f(x)) → p(f(x),x)) ett l’interprétation I définie par D = {e1,e2,e3} I[f] (e1) = e2 ; I[f] (e2) = e3 ; I[f] (e3) = e1 I[p] (e1,e2) = V ; I[p] (e2,e1) = V ; I[p] (ei,ej) = F ailleurs Alors I[Φ] = I[∀x(p(x,f(x)) → p(f(x),x))] = V ssi : - I[(p(x,f(x)) → p(f(x),x))]x/e1 = V - I[(p(x,f(x)) → p(f(x),x))]x/e2 = V - I[(p(x,f(x)) → p(f(x),x))]x/e3 =V pour x=e1 : I[p] (e1, I[f] (e1)) = I[p] (e1, e2)=V pour x=e2 : I[p] (e2, I[f] (e2)) = I[p] (e2, e3) = F pour x=e3 : I[p] (e3, I[f] (e3)) = I[p] (e3, e1) = F et I[p] (I[f] (e1),e1) = I[p] (e2,e1) = V et I[p] (I[f] (e2),e2) = I[p] (e3,e2) = F et I[p] (I[f] (e3),e3) = I[p] (e1,e3) = F Donc I est un modèle de la formule Φ Logique et démonstration automatique – H. KANOUI 31 Définitions Une formule Φ est une tautologie si elle est satisfaite par toute interprétation. C’est à dire que pour toute interprétation I, on a I(Φ) = V. On écrit |= Φ D’après la définition, la formule Φ contenant les variables libres x1, … , xn est une tautologie ssi la formule fermée ∀ x1 … ∀xnΦ est une tautologie Exemples |= (p(x) ∨¬p(x)) |=∀x(p(x) ∧ q(x)) ↔ (∀yp(y) ∧∀zq(z)) Contrairement au cas propositionnel le nombre d’interprétations différentes pour une formule donnée n’est pas fini : on ne peut pas énumérer toutes les interprétations. Il faut raisonner. Une formule Φ est une conséquence de Φ1 ,…, Φn si tout modèle de { Φ1 ,…, Φn } est un modèle de Φ. On écrit : Φ1 ,…, Φn |= Φ. Exemple ∀x∀y(q(x,y)→p(x,y)) ; ∀z q(z,z) |= ∀x p(x,x) Logique et démonstration automatique – H. KANOUI 32 Définitions (suite) Une formule Φ est satisfiable ou consistante si elle possède un modèle. Dans le cas contraire, elle est insatisfiable ou inconsistante. Si Φ est close, on montre facilement que Φ est insatisfiable ssi ¬Φ est satisfiable. Un ensemble de formules est satisfiable ou consistant si il existe une interprétation qui satisfait chacune des formules de l’ensemble. Dans le cas contraire il est insatisfiable ou inconsistant. Exemples L’ensemble de formules {∀x∀y (p(x,x)→(p(y,y)→p(x,y))) ; ∀z p(z,z)} est satisfiable. L’ensemble de formules {∃a p(a) ;∀x(p(x)→¬r(x)) ;∀y(¬r(y)→q(y));∀z (q(z)→¬p(z))} est insatisfiable alors que tout sous ensemble de 3 de ces formules est satisfiable. Logique et démonstration automatique – H. KANOUI 33 THEOREMES FONDAMENTAUX Proposition 4 Soit Γ un ensemble de formules closes et B une formule close. Alors Γ |=B ssi Γ ∪{¬B} est insatisfiable. Proposition 5 (correction) Soit A une formule. Si |-A alors |=A Autrement dit, les formules qui sont des théorèmes (c’est à dire sont « démontrables » : validité syntaxique) sont des tautologies (elles sont « vraies » : validité sémantique) Proposition 6 (complétude) Si |= A alors |- A Autrement dit, les formules qui sont des tautologies (elles sont « vraies » : validité sémantique) sont des théorèmes (c’est à dire sont « démontrables » : validité syntaxique) Proposition 7 (méthode de réfutation) f1 ,…, fn |= g ssi |= [f1 ∧…∧ fn → g] ssi { f1 ,…, fn , ¬g } est insatisfiable Proposition 8 Le CP1 est indécidable. Autrement dit il n’existe pas d’algorithme qui pour toute formule f indique en un temps fini si on a |- f ou NON Logique et démonstration automatique – H. KANOUI 34 PREPARATION DES FORMULES FORME PRENEXE Définition On dit qu’une formule A du CP1 est sous forme prénexe si elle s’écrit : A = Q1x1 Q2x2 … Qnxn B où chaque Qi est ∀ ou ∃ et B une formule ne contenant aucun quantificateur. La partie Q1x1 Q2x2 … Qnxn est appelée préfixe de A. La partie B est appelée matrice de A. SKOLEMISATION Définition Soit A = Q1x1 Q2x2 … Qnxn B une formule sous forme prénexe. On appelle forme de Skolem de A et on note AS la formule obtenue comme suit : le préfixe de AS est celui de A auquel on a retiré toutes les quantifications ∃xi le corps de AS est obtenu à partir de B en remplaçant chaque xi quantifiées par ∃ par fi (xi1 xi2 … xik ) où fi est un nouveau symbole fonctionnel et xi1 xi2 … xik sont les variables quantifiées par ∀ et placées devant le ∃xi dans le préfixe de A. Dans le cas où il n’y a aucun quantificateur ∀ devant ∃xi le symbole qui remplace xi est une nouvelle constante. Logique et démonstration automatique – H. KANOUI 35 Exemple A = ∃x p(x,f(x)) ; AS = p(a,f(a)) où a est une nouvelle constante A = ∃x ∀y ∃z ∀t ∃u p(x,y,z,t,u) ; AS = ∀y∀t p(a,y,f1(y),u, f2(y,u)) Proposition 1 (théorème de Skolem) Soit { A1 A2 … An } un ensemble fini de formules du 1er ordre et { A1S A2S … AnS } leurs formes de Skolem. Alors : { A1 A2 … An } admet un modèle de base E ssi { A1S A2S … AnS } admet un modèle de base E FORME CLAUSALE Proposition 2 Tout ensemble fini de formules Φ peut être transformé en un ensemble fini de clauses C équivalent, c’est à dire que Φ est inconsistant ssi C est inconsistant. On rappelle qu’une clause est une disjonction de littéraux (comme pour le CP0). Logique et démonstration automatique – H. KANOUI 36 ∃ x (∀y (∃z p(x,y,z)→ q(x))) → ∀x q(x) Algorithme de transformation sur Eliminer les implications ↔ et → en remplaçant :A→B par¬A∨B et A↔B par ¬((A→B)→ ¬(B→A)) ¬(∃ x (∀y (¬(∃z p(x,y,z))∨ q(x)))) ∨ ∀x q(x) 2. Réduire la portée des négations : remplacer ¬(A ∧ B) par ¬A ∨ ¬B ¬(A ∨ B) par ¬A ∧ ¬B (∀ x (∃y (¬ (¬(∃z p(x,y,z))∨ q(x)))) ∨ ∀x q(x) ¬¬ A par A (∀ x (∃y (¬ (∀z ¬p(x,y,z))∧ ¬ q(x))) ∨ ∀x q(x) ¬∃xA par ∀x ¬A ¬∀x A par ∃x¬A (∀ x (∃y (∃z p(x,y,z)∧ ¬ q(x))) ∨ ∀x q(x) 1. (∀ x (∃y (∃z p(x,y,z)∧ ¬ q(x))) ∨ ∀ u q(u) 3. Renommer les variables 4. Eliminer les existentiels (skolémisation) 5. Mettre la formule sous forme prénexe 6. Distribuer les « ∨ » sur les « ∧ » et les « ∧ » sur les « ∨ » 7. Passer à la forme clausale: Logique et démonstration automatique – H. KANOUI ∀ x (p(x, f(x),g(x))∧ ¬ q(x)) ∨ ∀ u q(u) ∀ x ∀ u (p(x, f(x),g(x))∧ ¬ q(x)) ∨ q(u)) ∀ x ∀ u [(p(x, f(x),g(x)) ∨ q(u)) ∧ (¬ q(x) ∨ q(u))] { p(x, f(x),g(x)) ∨ q(u)) ; ¬ q(x) ∨ q(u) } 37 INTERPRETATION & THEOREME DE HERBRAND Soit Φ=∀x1…∀xn ϕ une formule sous forme de skolem dont on souhaite étudier la satisfiabilité : Une interprétation de Herbrand est une interprétation dans un domaine particulier UΦ appelé Univers de Herbrand, défini de manière à restreindre au maximum le domaine d’interprétation permettant de décider que la formule Φ=∀x1…∀xn ϕ est satisfiable ou pas. Univers de Herbrand UΦ est l’ensemble minimal construit ainsi : - on part de UΦ = ∅ - pour chaque constante a apparaissant dans Φ on ajoute le symbole de constante a dans UΦ. - si UΦ ne contient pas de constante, on choisit une constante arbitraire, c, qu’on ajoute dans UΦ. - pour chaque fonction f de rang n apparaissant dans Φ, et pour chaque n-uplet d’éléments (t1,…,tn) déjà présents dans UΦ, on ajoute à UΦ le nouveau terme f(t1,…,tn). UΦ est l’ensemble de tous les termes sans variables construits à partir des constantes et des fonctions apparaissant dans Φ. Logique et démonstration automatique – H. KANOUI 38 Remarques : - UΦ n’est pas vide, il contient au moins une constante - dès que Φ contient une fonction, UΦ est infini. - UΦ est au moins dénombrable : on peut le construire par ordre d’éléments (termes) de longueur croissante. - les éléments de UΦ sont des symboles à usage purement syntaxique, sans signification concrète, puisqu’on garde les symboles de fonctions de Φ sans les interpréter. Logique et démonstration automatique – H. KANOUI 39 Atomes de Herbrand Ensemble KΦ de toutes les formes prédicatives du type p(t1,…,tn) ou p est un symbole relationnel de rang n de Φ et (t1,…,tn ) un n-uplet de termes pris dans UΦ. Les atomes de Herbrand ne contiennent plus de variables : ils sont assimilés à des propositions du CP0 A chacun de ces atomes de Herbrand sans variable on peut donc attribuer une valeur de vérité {V,F} exactement comme on le fait en calcul propositionnel. Interprétations de Herbrand Les interprétations de Herbrand de Φ sont alors exactement déterminées par ces valeurs de vérité: ϕ x1/t1,…, xn/tn ne contient plus de variable et est donc assimilée à une formule du CP0 construite avec les atomes de Herbrand ci-dessus, pour laquelle on sait calculer la valeur de vérité Logique et démonstration automatique – H. KANOUI 40 Exemple : Φ=∀x∀y p(x,a) ∨ q(x,f(y)) UΦ = {a, f(a), f(f(a)), ….f(f(…f(a)…)), …} PΦ={p(a,a),p(f(a),a),p(f(f(a)),a),…,q(a,f(a)),q(f(a),f(a)), q(f(a),f(f(a))), …, q(f(f(a)),f(a)),…} Une 1ère interprétation des atomes de Herbrand : - I[p(fk(a),a)] = V si k est impair, F sinon - I[q(fk(a),fm(a))] = V si k = m et F sinon ne satisfait pas Φ car I[p(f(f(a)),a) ∨ q(f(f(a)),f(a)) ] = F Une 2ème interprétation des atomes de Herbrand : - J[p(fk(a),a)] = V si k >0, et J[p(a,a) = F - J[q(fk(a),fm(a))] = V si k < m et F sinon satisfait Φ. En effet : - si on substitue x par fk(a) avec k ≠ 0, le premier prédicat est satisfait : J[p(fk(a),a)] = V - si on substitue x par a (i.e. fk(a) avec k = 0) le premier prédicat n’est pas satisfait : J[p(a,a)] = F mais le 2ème l’est : J[q(a,fm(a))] = V car m>0. Logique et démonstration automatique – H. KANOUI 41 Théorème de Herbrand Soit Φ=∀x1…∀xn ϕ une formule sous forme de skolem. Ces 2 propositions sont équivalentes : (1) Φ possède un modèle (2) Φ possède un modèle de Herbrand de base UΦ Preuve (1) ⇒ (2) est trivial (2) ⇒ (1) Soit I un modèle de Φ et D son domaine. Comme Φ est de skolem, de matrice ϕ, I est un modèle de Φ signifie que I[ϕ] = V pour toute instance sans variable ϕ de ϕ. A partir de I on va construire une interprétation de Herbrand J qui est un modèle de Φ : - On commence par construire UΦ et KΦ - On définit ensuite la valeur de vérité attribuée par J aux atomes de Herbrand par : J[p(t1,…,tn)] = V ssi I[p](I[t1],…,I[tn]) = V ∈ KΦ Il s’ensuit que I et J donnent les mêmes valeurs de vérité aux instances sans variables des formules atomiques de ϕ, et donc qu’ils donnent les mêmes valeurs de vérité aux instances sans variables de ϕ toute entière. Donc si I est un modèle de Φ, J l’est aussi. CQFD. Logique et démonstration automatique – H. KANOUI 42 Généralisation 1) Φ n’est plus une formule mais un ensemble fini de formules. Le théorème ci-dessus reste valide 2) Φ est un ensemble fini de clauses. Le théorème ci-dessus reste valide En pratique Lorsque Φ = { A1,…,An } est un ensemble fini de clauses : - Φ est inconsistant ssi Φ n’a pas de modèle de Herbrand (théorème de Herbrand) - Φ n’a pas de modèle de Herbrand ssi SΦ est inconsistant - SΦ est inconsistant ssi une des formules F0∧F1 ∧…∧Fk est inconsistante pour un certain k (théorème de compacité pour le CP0). La « mécanisation » consiste alors à engendrer dans un ordre convenable les sous ensembles {F0}, puis {F0, F1}, puis {F0, F1,F2}, etc. et tester à chaque fois l’inconsistance jusqu’à y arriver. Logique et démonstration automatique – H. KANOUI 43 Exemple : Φ = {A1, A2, A3, A4} avec : A1 = ¬ p(x) ∨ q(x, f(x)) A2 = ¬ p(x) ∨ r(f(x)) A3 = p(a) A4 = ¬ q(x ,y) On calcule : KΦ = {p(a), r(a), q(a, a), p(f(a)), r(f(a)), q(a, f(a)), q(f(a), a), q(f(a), f(a)), p(f(f(a))), …} Et: F0 = ¬ p(a) ∨ q(a, f(a)) F2 = p(a) F4 = ¬ p(f(a)) ∨ q(f(a), f(f(a))) F6 = ¬ q(a ,f(a)) etc. F1 = ¬ p(a) ∨ r(f(a)) F3 = ¬ q(a ,a) F5 = ¬ p(f(a)) ∨ r(f(f(a))) F7 = ¬ q(f(a), a) Alors : F0 ∧ F1 …∧ F5 est satisfiable avec: I[p(a)] = I[q(a,f(a))] = I[r(f(a))] = V et I[q(a,a)] = I[p(f(a))] = F. Il n’en est plus de même pour F0 ∧ F1 …∧ F5 ∧ F6. Logique et démonstration automatique – H. KANOUI 44 Remarque On peut reformuler ces notions comme suit : Soit L un langage contenant au moins une constante Une interprétation de Herbrand I de L est telle que : le domaine de I est l’ensemble des termes terminaux de L tout terme terminal de L est interprété par lui-même : I[t] = t L’interprétation par I de toute formule fermée est déterminée par les valeurs données par I aux littéraux positifs de L On en déduit (reformulation de la proposition 3): une interprétation de Herbrand I satisfait une clause C ssi elle satisfait toute instance terminale de C un ensemble de clauses est consistant ssi il existe une interprétation de Herbrand qui le satisfait un ensemble de clauses est consistant ssi l’ensemble des instances terminales de ses clauses l’est un ensemble de clauses est inconsistant ssi il existe un ensemble fini d’instances terminales de ses clauses inconsistant Logique et démonstration automatique – H. KANOUI 45 DEMONSTRATION AUTOMATIQUE L’objet fondamental de la démonstration automatique est de trouver un algorithme général qui, étant donnés Φ = { Ai } et B répond à la question : Est-il vrai que : {A1A2…An}|- B ? Ce qui est équivalent à : est-il vrai que : {A1A2…An}|= B ? Ou: est-il vrai que : {A1A2…An , ¬ B} n’a pas de modèle ? Cet algorithme général n’existe pas. Mais il existe des algorithmes semi-décidables ou complets qui résolvent le problème suivant : Si Φ |- B alors l’algorithme s’arrête au bout d’un temps fini et donne comme résultat une démonstration de B à partir de Φ. Dans le cas contraire, l’algorithme peut ne pas s’arrêter. Logique et démonstration automatique – H. KANOUI 46 Voici un tel algorithme : début Transformer {A1,A2…,An,¬B} en clauses Φ Calculer le système de Herbrand associé SΦ Si SΦ est fini alors Si SΦ est satisfiable alors résultat : « B n’est pas conséquence de {A1…An} » Sinon résultat : « B est conséquence de {A1…An} » finsi Sinon F :=∅ Répéter Soit F0 la 1ère formule de SΦ F := F∪{ F0} SΦ := SΦ −{ F0} jusqu’à « F insatisfiable » résultat := « B est conséquence de {A1…An} » finsi fin Logique et démonstration automatique – H. KANOUI 47 Sauf dans le cas où SΦ est fini, cet algorithme s’arrête si B est une conséquence de {A1A2…An} et tournera sans fin sinon METHODE DE RESOLUTION Le problème: {A1A2…An}|- B ? se ramène à l’étude de la consistance d’un ensemble de clauses {C1C2…Cm} La méthode de résolution est un moyen aussi efficace que possible de résoudre ce problème. RESOLUTION SANS VARIABLES Définition La résolution sans variable est un système formel défini par : Σ = { variables propositionnelles } ∪ { ¬ , ∨} F = ensemble de toutes les clauses sans répétition : p1∨ p2∨... pk∨ ¬q1∨ ¬q2∨... ¬qm avec k, m ≥0 pour k=m=0, on obtient la clause vide notée A = ∅ : pas d’axiome R = {f∨p ; g∨¬p |- f∨g} : cut : f∨g est la résolvante des clauses f∨p et g∨¬p Logique et démonstration automatique – H. KANOUI 48 Remarque Sur les clauses, la résolution généralise modus ponens: ¬A ∨ B ; A |- B et modus tollens : ¬A ∨ B ; ¬B |- ¬A Et exprime la transitivité de l’implication : A → B ; B → C |- A → C car : ¬A ∨ B ; ¬B ∨ C |- ¬A ∨ C Exemple 1 A ∨ B ∨ C ; ¬A∨ B ∨ C ; ¬B ∨ C |- C A∨B∨C hyp ¬A∨ B ∨ C B∨C ¬B∨ C C hyp cut hyp cut Logique et démonstration automatique – H. KANOUI 49 Exemple 2 A ∨ B ; A∨ ¬B ; ¬A ∨ B ; ¬A ∨ ¬B |- A∨B A∨ ¬B A ¬A ∨ B ¬A ∨ ¬B ¬A hyp hyp cut hyp hyp cut cut Logique et démonstration automatique – H. KANOUI 50 Proposition 1 Si F est un ensemble de clauses et C une clause, et si F |- C alors F |= C. Démonstration En effet, F contient nécessairement les 2 clauses p ∨ f ; ¬p ∨ g et C = f ∨ g Soit I une interprétation qui satisfait F. Si I[p]=V alors I[g]=V sinon I[f]=V Donc I[f ∨ g] = V et I satisfait C Proposition 2 Un ensemble F de clauses est insatisfiable ssi F |- Démonstration Si F |- alors F |= (prop. 1). Si F possède un modèle I, I est aussi modèle de la clause vide, ce qui est impossible. En conséquence, F n’a pas de modèle et donc F est insatisfiable. c’est que F contient un littéral A et sa négation ¬A. Donc F est insatisfiable. On ne démontrera pas la réciproque Logique et démonstration automatique – H. KANOUI 51 Remarque La méthode de résolution sans variable est correcte et complète. Elle permet de savoir si un ensemble de clauses est satisfiable ou pas. Le système formel associé est malgré tout moins puissant que le CP0 : - d’une part il n’accepte que des clauses - d’autre part alors que dans le CP0 on a : H1 ; H2 ;... Hn |- T ssi H1 ∧ H2 ∧... Hn |= T ceci n’est plus vrai pour la RSV. Par exemple on a : A |= A ∨ B mais non : A |- A ∨ B Logique et démonstration automatique – H. KANOUI 52 SUBSTITUTION - UNIFICATION Substitution : σ : V T identique presque partout On note σ = { x1= v1 ; x2= v2 ; … ; xn= vn } On étend ensuite σ à T par : vi si t est xi σ.t = σ (t) = t si t est une const ou une var ≠ des xi f (σ(t1), σ(t2), …,σ(tn)) si t est f (t1,t2,…,tn) Composition de substitutions : σ.θ (t) = θ (σ (t)) Ex : σ = {x=a ; y=f(z) ; z=x } θ = { x=b ; z=c ; u=d} σ.θ = {x=a ;y=f (c) ; u=d} Logique et démonstration automatique – H. KANOUI 53 Renommage et substitution : A est une formule et x est libre dans A, t est un terme. A[x→t] est obtenue à partir de A en remplaçant chaque occurrence de x par t dans A, Unification trouver si elle existe une substitution qui rend plusieurs termes égaux. un unifieur de l’ensemble des termes S = {t1, t2, …,tn} est la substitution σ telle que σ.t1 = σ.t2 = …= σ.tn restriction : si x est une variable et t un terme, on ne peut les unifier que si x n’a pas d’occurrence dans t (occur-check). Plus grand unifieur σ est le pgu de deux termes s et t si, pour tout unifieur θ de s et t, il existe λ telle que θ = λ . σ Exemple t = f(x,a) et s= f(g(u),w). θ = { u= 12 ; x = g(u) ; w = a } est un unifieur de s et t. σ = { x = g(u) ; w = a } en est un autre, plus général que θ puisque : θ = λ . σ avec λ = { u = 12} Logique et démonstration automatique – H. KANOUI 54 Algorithme d’unification de 2 termes f et g 0. θ = ε (substitution vide) 1. Si θ(f) ≠ θ(g) faire - parcourir en parallèle θ(f) et θ(g) de gauche à droite et s’arrêter sur les 1ers symboles différents. Soient t1 et t2 les sous termes respectifs de θ(f) et θ(g) commençant à ce symbole - si ni t1 ni t2 ne sont des variables alors ECHEC - si t1 est une variable avec occurrence dans t2 alors ECHEC - si t2 est une variable avec occurrence dans t1 alors ECHEC - sinon t1 (resp. t2) est une variable, mais pas t2 (resp. t1) Poser θ={t1=t2}.θ (resp. θ={t2=t1}.θ) et aller en 1. 2. θ est le pgu de f et g. FIN Logique et démonstration automatique – H. KANOUI 55 Exemple g(x,f(x),c) g(u,w,w) g(u,f(u)) g(w,w) g(x,f(x),c) g(u,w,w) {x = u} g(u,f(u)) g(w,w) {u=w} g(u,f(u),c) g(u,w,w) {x=u ; w = f(u)} g(w,f(w)) g(w,w) {u=w w=f(w)} g(u,f(u),c) g(u,f(u),f(u)) {x=u;w=f(u);w=c} échec (occur check) échec (conflit) Logique et démonstration automatique – H. KANOUI 56 RESOLUTION AVEC VARIABLES Idée générale On part de formules sous forme clausale dans lesquelles les variables libres sont implicitement universellement quantifiées P(x , b) ∨ ¬Q(x , y) ¬P(a , z) ∨ R(z) On peut trouver une substitution qui rend les 2 littéraux de tête complémentaires. Avec {x = a ; z = b} on obtient : P(a , b) ∨ ¬Q(a , y) ¬P(a , b) ∨ R(b) et on peut procéder comme dans le cas propositionnel pour obtenir la résolvante : ¬Q(a , y) ∨ R(b) La règle de résolution systématise cette démarche en trouvant la substitution que rend les littéraux complémentaires. Logique et démonstration automatique – H. KANOUI 57 La résolution avec variables est un système formel défini par : Σ = le même que pour le CP1 F = ensemble de toutes les clauses du CP1 sans répétition: p1∨ p2∨... pk∨ ¬q1∨ ¬q2∨... ¬qm avec k, m ≥0 pour k=m=0, on obtient la clause vide notée A = ∅ : pas d’axiome R = {résolution ; factorisation} Résolution L1∨L2∨…Ln ; ¬K1∨K2∨…Km |- σ[ΘL2∨…ΘLn∨K2∨…Km ] - Θ est une substitution de renommage : Θ[L1 ∨ L2 ∨… Ln ] et K1 ∨ K2 ∨… Km n’ont pas de variable libre commune - σ est le plus grand unifieur de ΘL1 et K1 : σ (ΘL1) = σK1 Factorisation L1 ∨ L2 ∨… Ln |- σL2 ∨… σLn - est le plus grand unifieur de L1 et L2: σL1 = σL2 Logique et démonstration automatique – H. KANOUI 58 Proposition 2bis Un ensemble F de clauses (du CP1) est insatisfiable ssi F |- Exemple 1 Exemple 2 S={ P(x) ∨ P(y) ; ¬P(u) ∨ ¬P(v) } T={¬P(x)∨P(f(x)) ;P(a) ; ¬P(f(z))} 1. P(x) ∨ P(y) 2. P(x) 3. ¬P(u) ∨ ¬P(v) 4. ¬P(v) 5. 1. ¬P(x) ∨ P(f(x)) 2. P(a) 3. P(f(a)) 4. ¬P(f(z)) 5. hypothèse factorisation de 1. hypothèse résolution 2. et 3. résolution 2. et 4. hypothèse hypothèse résolution 1. et 2. hypothèse résolution 3. et 4. Remarque Le CP1 sous forme clausale, sans axiome et muni de la règle de résolution et de la règle de factorisation (ou diminution) est correct et complet : Sans la factorisation on ne produit pas la clause vide. En effet la résolution appliquée à 2 clauses binaires produit une clause binaire. Logique et démonstration automatique – H. KANOUI 59 Exemple 3 Tout crime a un auteur Seuls les gens malhonnêtes commettent des crimes On n’arrête que les gens malhonnêtes Les gens malhonnêtes arrêtés ne commettent pas de crime Il y a des crimes En déduire qu’il y a des gens malhonnêtes non arrêtés Traduction des énoncés 1. 2. 3. 4. 5. 6. ∀x ( crime (x) → ∃y commet(y,x) ) ∀x ∀y (( crime(x) ∧ commet(y,x)) → malhonnete(y) ) ∀x ( arrete(x) → malhonnete(x) ) ∀y ((malhonnete(y) ∧ arrete(y)) → ¬∃x(crime(x) ∧ commet(y,x)) ∃x crime(x) ¬ ∃y (malhonnete(y) ∧ ¬ arrete(y)) Logique et démonstration automatique – H. KANOUI 60 Passage à la forme clausale 1. 2. 3. 4. 5. 6. ¬ crime (x) ∨ commet(f(x),x) ¬ crime(x) ∨ ¬ commet(y,x)) ∨ malhonnete(y) ¬ arrete(x) ∨ malhonnete(x) ¬malhonnete(y)∨¬arrete(y)∨¬crime(x) ∨¬commet(y,x) crime(a) ¬ malhonnete(y) ∨ arrete(y) Logique et démonstration automatique – H. KANOUI 61 1. ¬ crime (x) ∨ commet(f(x),x) 2. ¬ crime(x) ∨ ¬ commet(y,x)) ∨ malhonnete(y) 3. ¬ arrete(x) ∨ malhonnete(x) 4. ¬malhonnete(y)∨¬arrete(y)∨ ¬crime(x) ∨¬commet(y,x) 5. crime(a) 6. ¬ malhonnete(y) ∨ arrete(y) Démonstration 1. ¬ crime (x) ∨ commet(f(x),x) 2. ¬ crime(x) ∨ ¬ commet(y,x)) ∨ malhonnete(y) 3. ¬ arrete(x) ∨ malhonnete(x) 4. ¬malhonnete(y)∨¬arrete(y)∨¬crime(x) ∨¬commet(y,x) 5. crime(a) 6. ¬ malhonnete(y) ∨ arrete(y) 7. commet(f(a),a) rés. 5. & 1. 8. ¬ crime(a) ∨ malhonnete(f(a)) 9. malhonnete(f(a)) rés. 7. & 2. rés. 8 & 5. Ce qqu’un est malhonnête Qqu’un a commis le crime 10. ¬ malhonnete(f(a)) ∨ ¬ arrete(f(a)) ∨ ¬ crime(a) 11. ¬ malhonnete(f(a)) ∨ ¬ arrete(f(a)) rés. 10. & 5. 12. ¬ arrete(f(a)) rés. 11. & 9. 13. ¬ malhonnete(f(a)) rés. 12. & 6. 14. rés. 13. & 9. Contredit 6. Logique et démonstration automatique – H. KANOUI 62 rés. 7. & 4. STRATEGIES D’UTILISATION DE LA RESOLUTION Deux approches pour montrer qu’un ensemble S est insatisfaisable avec les règles de résolution et de factorisation. Techniques de gestion des ensembles de clauses manipulées Techniques d’exploration de l’arbre de déduction Logique et démonstration automatique – H. KANOUI 63 STRATEGIES D’UTILISATION DE LA RESOLUTION 1. Techniques de gestion des ensembles de clauses SATURATION On part d’un ensemble de clauses S0 dont on cherche à savoir s’il est satisfiable ou non On effectue toutes les résolutions et les factorisations sur S0. On ajoute les clauses produites pour obtenir S1. On recommence sur S1 et on obtient S2 puis S3 etc. On s’arrête dès qu’on produit dans Si ou que Si+1 = Si . La méthode est : Correcte : on n’obtient que si S0 est insatisfiable Complète : si S0 est insatisfiable on le montre en temps fini Mais : si S0 est satisfiable il se peut que Si+1 ≠ Si pour tout i. exemple : {p(a) ; ¬p(x) ∨ p(f(x))} En tout cas très inefficace car la taille de Si augmente exponentiellement Logique et démonstration automatique – H. KANOUI 64 STRATEGIES D’UTILISATION DE LA RESOLUTION SATURATION AVEC SIMPLIFICATION Comme ci-dessus en supprimant les tautologies et les clauses subsumées : Tautologies : vraies dans toute interprétation. exemple : p(f(x)) ∨ q(x) ∨ ¬r(x) ∨ ¬p(f(x)) C1 subsume C2 si il ex. σ et C3 tq. C2 = σC1∨C3 . exemple : p(x)∨q(a) subsume p(a)∨q(a)∨r(f(x))∨r(b) la méthode est : Correcte : on n’obtient que si S0 est insatisfiable Complète : si S0 est insatisfiable on le montre en temps fini exemple : S={r(a) ∨ p(a) ; p(x) ∨ ¬r(b) ; r(b) ; ¬p(b) ; r(a) ∨ r(c) ∨ ¬r(a)} Logique et démonstration automatique – H. KANOUI 65 STRATEGIES D’UTILISATION DE LA RESOLUTION PREFERENCE DES CLAUSES SIMPLES (VARIANTE : PREFERENCE DES CLAUSES UNITAIRES) Au lieu d’ajouter d’un seul coup toutes les clauses on n’en construit qu’une seule « bien choisie », la plus courte. exemple S0 = {r(x) ∨ ¬p(x) ; ¬r(b) ; ¬r(c) ∨ q(x) ∨ r(f(a)) ; p(b) } S1 = S0 ∪{¬p(b)} S2 = S1 ∪{} Mais la méthode est incomplète. exemple : S0 ={¬p(x) ∨ p(f(x)) ; p(a) ; ¬p(a) ∨ ¬p(b) ∨ ¬p(c) ; p(b) ; p(c)} S1 = S0 ∪{¬p(f(a))} S2 = S1 ∪{¬p(f(f(a)))} ….. alors qu’on peut obtenir en 3 étapes à partir des 4 dernières clauses à condition de passer par une clause à 2 littéraux. Pour la rendre complète ajouter une étape de saturation de temps en temps Logique et démonstration automatique – H. KANOUI 66 STRATEGIES D’UTILISATION DE LA RESOLUTION 2. Techniques d’exploration de l’arbre de déduction ARBRE DE DEDUCTION D’UN ENSEMBLE DE CLAUSES S C’est l’arbre (infini) dont toute branche issue de la racine passe par des nœuds f1, …, fn constituant une déduction au sens du système formel CP0 ou CP1. exemple : S = {A, ¬A∨ B, ¬B } Logique et démonstration automatique – H. KANOUI 67 A Branche la plus gauche f1 : A (hyp) f2 :¬A∨B (hyp) f3 : ¬B (hyp) f B (rés. f1 & f2) f5 : (rés. f3 & f4) ¬A∨ B ¬B B ¬A ¬A Logique et démonstration automatique – H. KANOUI Branche la plus à droi f1 : A (hyp) f2 :¬A∨B (hyp) f3 :¬B (hyp) f4 : ¬A (rés 2 & f3) f5 : B (rés f1 & f2) f6 : (rés. f3 & f5) B 68 STRATEGIES D’UTILISATION DE LA RESOLUTION Les implémentations de la résolution reviennent à construire au moins implicitement et à explorer cet arbre en recherchant les branches qui conduisent à la clause vide. La stratégie de construction/d’exploration de cet arbre influe sur le résultat (et le comportement) en se fondant sur 2 choix : 1. choix d’un sous-arbre de l’arbre des déductions défini par une limitation sur les déductions prises en compte 2. choix d’un procédé d’exploration de ce sous-arbre en profondeur d’abord en largeur d’abord Logique et démonstration automatique – H. KANOUI 69 PROFONDEUR D’ABORD AVEC RETOUR ARRIERE (« BACKTRACKING ») 23 1 11 2 10 12 4 22 14 20 5 3 9 15 7 6 13 8 19 17 16 21 18 On construit l’arbre par branches successives, de gauche à droite. A tout instant on a en mémoire les nœuds d’une branche de l’arbre. Logique et démonstration automatique – H. KANOUI 70 La méthode est Correcte Non complète AVANTAGES On retrouve facilement un objet présent Se programme facilement Optimise l’espace mémoire INCONVENIENT Se perd dans la 1ère branche infinie rencontrée Logique et démonstration automatique – H. KANOUI 71 LARGEUR D’ABORD 1 2 4 3 5 9 6 10 7 11 8 12 On construit l’arbre par niveaux successifs. Au niveau n on a en mémoire 2n nœuds. Logique et démonstration automatique – H. KANOUI 72 La méthode est Correcte Complète AVANTAGES Parcourt l’arbre en entier même s’il est infini INCONVENIENT Très coûteux de descendre profondément dans l’arbre dès que le nombre de branches devient important Logique et démonstration automatique – H. KANOUI 73 STRATEGIES D’UTILISATION DE LA RESOLUTION (choix du sous-arbre à explorer) STRATEGIE LINEAIRE On choisit une clause C0 de S On obtient Ci+1 par résolution ou diminution de Ci et d’une autre clause. exemple S={¬A∨ ¬B ; A∨ ¬C ; C ; B ∨ ¬D ; D ∨ B } et C0 = ¬A∨ ¬B Correcte Complète « en largeur d’abord » incomplète sinon. ex : S = {¬p(x)∨ p(f(x)), ¬p(a), p(x)} Logique et démonstration automatique – H. KANOUI 74 STRATEGIE INPUT On choisit une clause C0 de S On obtient Ci+1 par résolution ou diminution d’une clause de S et d’une parmi {C1 ,…, Ci } exemple : S = {¬A ; A∨ ¬B ; A∨ ¬C ∨ ¬D ; C ; D ∨ ¬C } et C0 = ¬A Correcte Non complète même « en largeur d’abord ». cf : S = {A∨ B ; A∨ ¬B ; ¬A ∨ B ; ¬A ∨ ¬B} MAIS ON A LE RESULTAT SUIVANT : Si S est insatisfiable, si C0 ne comporte que des littéraux négatifs et si toutes les autres clause de S ont exactement un littéral positif (clauses de Horn) alors : Il existe une déduction input de racine C0 conduisant à la clause vide Cette déduction n’utilise jamais la règle de factorisation En outre : La stratégie input en largeur d’abord est complète pour les clauses de Horn. La stratégie input en profondeur d’abord est complète pour les clauses de Horn dans le cas où l’arbre de déduction est fini. C’est toujours le cas dans CP0, mais pas dans CP1. Logique et démonstration automatique – H. KANOUI 75 STRATEGIE ORDONNEE L’ordre des littéraux dans les clauses et les résolvantes est important : les clauses sont des suites ordonnées de littéraux et non des ensembles de littéraux : La résolution se fait entre les littéraux de tête de chacune des clauses On ordonne le résultat : les littéraux de la clause qui contenait le résultat négatif en premier exemple C1 = A1 L2 …Ln et C2 = ¬B1 Q2 …Qm ont pour résolvante la clause ordonnée σ (Q2 …Qm L2 …Ln) où σ est le pgu de A1 et B1 (s’ils sont unifiables). Logique et démonstration automatique – H. KANOUI 76 ET ON A LE RESULTAT SUIVANT : Si S est insatisfiable, si C0 ne comporte que des littéraux négatifs et si toutes les autres clause de S sont des clauses de Horn ordonnées en plaçant le littéral positif en tête alors : Il existe une déduction à la fois input et ordonnée de racine C0 conduisant à la clause vide Etant « input » cette stratégie n’utilise jamais la règle de factorisation, elle est correste et elle est complète pour les clauses de Horn dans le cas où l’arbre de déduction est fini. ET CA, C’EST PROLOG. Logique et démonstration automatique – H. KANOUI 77 CALCUL DES REPONSES Pour une stratégie input ordonnée : S = {p(a) ; p(b) ; r(f(x)) ∨ ¬p(x) ; q(y) ∨ ¬r(y) ; q(c)} ensemble de clauses ordonnées C = ¬q(z) clause négative ordonnée. 3 déductions input ordonnées conduisent à la clause vide : f0 :¬r(z) f0 :¬r(z) {y=z} {y=z} f1 :¬p(x) f1 :¬p(x) {y=z ;z=f(x)} {y=z ; z=f(x)} f2 : f2 : {y=z ;z=f(x) ;x=a} {y=z ;z=f(x) ; x=a} Résultat : z = f(a) S |= q(f(a)) Logique et démonstration automatique – H. KANOUI Résultat : z = f(b) S |= q(f(b)) f0 : {z=c} Résultat : z = c S |= q(c) 78 En général Si S est un ensemble de clauses de Horn ordonnées (littéral positif en tête) Si C une clause négative dont les variables libres sont {x1 x2 …xn} Si S ∪ {C}est insatisfiable alors Chaque déduction input ordonnée se terminant par la clause vide au moyen de la substitution σ= {x1= t1 ;x2 = t2… xn = tn} définit les objets t1 , t2 …, tn de l’univers de Herbrand tels que S |= σC En pratique Pour savoir quels sont les objets t pour lesquels p(t) est une conséquence de S il suffit d’explorer l’arbre des déductions input ordonnées par une stratégie en largeur d’abord (ou en profondeur d’abord, mais on n’est pas complet) de noter à chaque fois que la clause vide est rencontrée l’objet t qui lui est associé. Prolog ne procède pas autrement pour calculer et afficher la « solution » d’un but. Logique et démonstration automatique – H. KANOUI 79 ARBRES (TABLEAUX) SEMANTIQUES Un moyen simple pour déterminer si une formule F est insatisfiable, ou en produire un modèle. On construit un arbre renversé dont la racine est F. Des règles pour compléter cet arbre par de nouvelles formules au dessous de celles qui y figurent déjà. Ces règles se référent à la signification des connecteurs et des quantificateurs. Négation ¬(∀x C) ↓ ∃x ¬C ¬¬ C ↓ C ¬ (C ∨ D) ↓ ¬C ¬D ¬ (C→D) ↓ C ¬D ¬(∃x C) ↓ ∀x ¬C ¬(C ∧ D) ¬(C ↔ D) Logique et démonstration automatique – H. KANOUI ¬C ¬D C ¬D ¬C D 80 Conjonction Implication C∧D ↓ C D Disjonction C→D Equivalence ¬C C D Quantificateur universel ∀x C(x) ↓ C(a) Quantificateur existentiel ∃x C(x) ↓ C(b) Logique et démonstration automatique – H. KANOUI C∨D D C↔D C D ¬C ¬D Règle U Ici a est toute constante déjà présente Règle E Ici b est une nouvelle constante 81 branche : séquence de formules partant de la racine et développée vers le bas par application des règles. branche fermée ⊗ : qui contient une formule et sa négation Plus aucune règle n’est appliquée à cette branche. Règle U chaque fois qu’une nouvelle constante est introduite par la règle E en dessous de F, le règle U peut être à nouveau appliquée à F avec cette nouvelle constante. si aucune règle ne s’applique sur une branche et si aucune constante n’apparaît dans cette branche, alors il faut introduire une nouvelle constante pour une application ultérieurement possible de la règle U sur cette branche Principe Si toutes les branches deviennent fermées, la formule de départ est insatisfiable. Si une branche reste ouverte, elle peut être utilisée pour construire un modèle de la formule de départ. Le domaine de ce modèle est l’ensemble des constantes qui apparaissent sur cette branche. Logique et démonstration automatique – H. KANOUI 82 Proposition 1 Soit K un ensemble de formule fermées clos pour les règles définissant les tableaux sémantiques : - si F ∈ K et si F (resp F) ↓ ↓ C C B par une des règles alors C∈ K (resp. C∈ K et B∈ K) - si F ∈ K et si F B (resp. F) C B C G H par une des règles alors B ∈ K ou C∈ K (resp. B et G ∈ K ou C et H ∈ K) Si K ne contient pas simultanément une formule et sa négation, et si au moins une formule de K contient une constante, alors K possède un modèle dont le domaine est l’ensemble D de toutes les constantes apparaissant dans les formules de K. Logique et démonstration automatique – H. KANOUI 83 Proposition 2 Si toutes les branches d’un arbre sémantique sont fermées, alors la formule F à la racine de l’arbre est insatisfiable. Exemple 1 : |= ∀xC(x)→C(b) ? 1. 2. 3. 4. 5. ¬(∀xC(x)→C(b)) ↓ ∀xC(x) (1) ¬C(b) (1) ↓ C(b) (2) ↓ ⊗ Donc ¬(∀xC(x)→C(b)) est insatisfiable et ∀xC(x)→C(b) est logiquement valide --------------------------------------------------- Logique et démonstration automatique – H. KANOUI 84 Exemple 2 : |= ∀x(C(x)→D(x)) → (∀xC(x)→∀xD(x)) ? 1. 2. 3. 4. 5. 6. 7. 8. 9. ¬[∀x(C(x)→D(x)) → (∀xC(x)→∀xD(x))] ∀x(C(x)→D(x)) (1) ¬(∀xC(x)→∀xD(x)) (1) ∀xC(x) (3) ¬(∀xD(x)) (3) ∃x¬D(x) (5) ¬D(b) (6) C(b) (4) C(b) → D(b) (2) 10. ¬C(b) ⊗ D(b) ⊗ (9) Donc ∀x(C(x)→D(x)) → (∀xC(x)→∀xD(x)) est logiquement valide --------------------------------------------------- Logique et démonstration automatique – H. KANOUI 85 Exemple 3 : |=∃xA(x)→∀xA(x) ? 1. 2. 3. 4. 5. 6. ¬[∃xA(x)→∀xA(x)] ∃xA(x) ¬(∀xA(x)) A(b) ∃x¬A(x) ¬A(c) (1) (1) (2) (3) (5) Plus aucune règle ne s’applique. La branche reste ouverte. On définit alors l’interprétation I suivante : - domaine : D={b , c} - A(b) = Vrai ; A(c) = Faux I[∃x¬A(x)] = Vrai et I[∀xA(x)] = Faux. I[∃xA(x)→∀xA(x)] = Faux et donc ∃xA(x)→∀xA(x) n’est pas logiquement valide --------------------------------------------------Logique et démonstration automatique – H. KANOUI 86 Exemple 4 : |= ∃y∀xB(x,y) → ∀x∃yB(x,y) ? 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ¬[∃y∀xB(x,y) → ∀x∃yB(x,y)] ∃y∀xB(x,y) (1) ¬(∀x∃yB(x,y)) (1) ∀xB(x,b) (2) ∃x¬(∃yB(x,y)) (3) B(b,b) (4) ¬(∃yB(c,y)) (5) B(c,b) (4) ∀y¬B(c,y) (7) ¬B(c,b) (9) ⊗ Donc ∃y∀xB(x,y) → ∀x∃yB(x,y) est une tautologie Remarque : étape 6 : B(b,b) n’a pas servi. Cette formule est quand même produite pour être sûr d’être exhaustif : sur une branche donnée, on applique la règle U dès qu’une nouvelle constante apparaît sur cette branche. --------------------------------------------------Logique et démonstration automatique – H. KANOUI 87 Exemple 5 : |= ∀xB(x)→∃xB(x) ? ¬[∀xB(x)→∃xB(x)] ∀xB(x) (1) ¬(∃xB(x)) (1) ∀x¬B(x) (3) B(b) (2) ¬B(b) (4) ⊗ Donc ∀xB(x)→∃xB(x) est une tautologie. 1. 2. 3. 4. 5. 6. Remarque : l’étape 6 introduit une nouvelle constante pour la règle U car sinon la branche se terminerait sans contenir aucune constante. --------------------------------------------------- Logique et démonstration automatique – H. KANOUI 88 Exemple 6 : |= ∀x¬A(x,x) → ∃x∀y¬A(x,y) ? 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ¬[∀x¬A(x,x) → ∃x∀y¬A(x,y)] ∀x¬A(x,x) ¬(∃x∀y¬A(x,y)) ∀x¬(∀y¬A(x,y)) ¬A(a1,a1) ¬(∀y¬A(a1,y)) ∃y¬¬A(a1,y) ¬¬A(a1, a2) A(a1, a2) ¬A(a2, a2) ¬(∀y¬A(a2,y)) ∃y¬¬A(a2,y) ¬¬A(a2, a3) A(a2, a3) (1) (1) (3) (2) (4) (6) (7) (8) (2) (4) (11) (12) (13) Cette branche ne finit jamais et on obtient une suite de constantes a1, a2, a3, …avec les formules : A(an, an+1) et et ¬A(an, an). Logique et démonstration automatique – H. KANOUI 89 On définit alors l’interprétation I par : - A(an, an+1) = Vrai - A(an, am) = Faux I[∀x¬A(x,x)] = Vrai I[∃x∀y¬A(x,y)] = Faux. Donc ∀x¬A(x,x) → ∃x∀y¬A(x,y) n’est pas logiquement valide. Logique et démonstration automatique – H. KANOUI 90