Logik für Informatiker 1 1.1 Wintersemester 2013/14 Aussagenlogik Grundbegriffe der Aussagenlogik atomare/elementare sprachliche Gebilde: A = „Bayern München ist deutscher Fußballmeister“ B = „Würzburg ist eine große Stadt“ C = „Würzburg hat über 300.000 Einwohner“ Man nennt diese Gebilde auch atomare Formeln oder Atome. Atome können – je nach Interpretation – wahr oder falsch sein. In der Praxis hat man oft eine Standard–Interpretation im Sinne, von der wir in der Logik aber absehen. Prof. Dr. Dietmar Seipel 1 Logik für Informatiker Wintersemester 2013/14 Wir bezeichnen alle denkbaren Atome mit Buchstaben A, B, C, . . . , oder durchnummeriert mit A1 , A2 , . . . , oder mit allgemeinen Zeichenketten (’Erkältung’), ohne ihnen eine inhaltliche Interpretation zu geben. Wir interessieren uns dafür, wie sich die Wahrheitswerte von komplexeren Formeln aus den Wahrheitswerten der atomaren Formeln zusammensetzen: F = A ∨ ¬B Baumdarstellung: A B ? ¬ U ∨ ? F Prof. Dr. Dietmar Seipel 2 Logik für Informatiker Wintersemester 2013/14 Wahrheitswerte: • 0 (falsch), • 1 (wahr) 4 mögliche Interpretationen: A B F I1 0 0 1 I2 1 0 1 I3 0 1 0 I4 1 1 1 Für jede Belegung I (Interpretation) der beteiligten Atome A und B mit Wahrheitswerten, ergibt sich der Wahrheitswert I(F ) für die Formel F . Prof. Dr. Dietmar Seipel 3 Logik für Informatiker Wintersemester 2013/14 Definition (Syntax der Aussagenlogik) Aufbau (komplexer) Formeln 1. Alle atomaren Formeln sind Formeln. Die Menge der atomaren Formeln bezeichnen wir mit A. 2. Für alle Formeln F und G sind auch • die Konjunktion (F ∧ G) und • die Disjunktion (F ∨ G) Formeln. Die Klammen kann man meist weglassen. 3. Für jede Formel F ist auch die Negation ¬F wieder eine Formel. Die Menge aller Formeln bezeichnen wir mit F. Es gilt A ⊆ F. Eine Formel F , die als Teil einer Formel G auftritt, heißt Teilformel von G. Prof. Dr. Dietmar Seipel 4 Logik für Informatiker Wintersemester 2013/14 Beispiel (Formeln, Teilformeln) • G = (A ∨ ¬B) hat die Teilformeln A, B, ¬B, G • F = ((A ∧ B) ∨ (¬A ∧ ¬B)) hat die Teilformeln A, B, ¬A, ¬B, (A ∧ B), (¬A ∧ ¬B), F Abkürzende Schreibweisen: (F1 → F2 ) für (¬F1 ∨ F2 ) (Implikation) (F1 ↔ F2 ) für ((F1 ∧ F2 ) ∨ (¬F1 ∧ ¬F2 )) (Äquivalenz) Wn ( i=1 Fi ) für (. . . ((F1 ∨ F2 ) ∨ F3 ) ∨ . . . ∨ Fn ) Vn ( i=1 Fi ) für (. . . ((F1 ∧ F2 ) ∧ F3 ) ∧ . . . ∧ Fn ) Prof. Dr. Dietmar Seipel 5 Logik für Informatiker Wintersemester 2013/14 Wegen der Kommutativität und der Assoziativität der Junktoren ∧ und ∨, kommt es auf die Reihenfolge und Klammerung in den folgenden Formeln nicht an: (F1 ∧ F2 ) ist gleichwertig zu (F2 ∧ F1 ), (F1 ∨ F2 ) ist gleichwertig zu (F2 ∨ F1 ), ((F1 ∧ F2 ) ∧ F3 ) ist gleichwertig zu (F1 ∧ (F2 ∧ F3 )), ((F1 ∨ F2 ) ∨ F3 ) ist gleichwertig zu (F1 ∨ (F2 ∨ F3 )). Es wird sich später zeigen, daß folgende Formeln unter jeder denkbaren Interpretation I wahr sind; man nennt sie Tautologien: ((F1 ∧ F2 ) ↔ (F2 ∧ F1 )), ((F1 ∨ F2 ) ∨ F3 ) ↔ (F1 ∨ (F2 ∨ F3 )), (¬(F1 ∧ F2 ) ↔ (¬F1 ∨ ¬F2 )). Die letzte Formel entspricht einer der beiden Regeln von De Morgan. Prof. Dr. Dietmar Seipel 6 Logik für Informatiker Wintersemester 2013/14 Die beiden arithmetischen Operatoren Multiplikation und Addition sind ebenfalls kommutativ und assoziativ, die Division allerdings nicht: 8 ÷ 4 = 2 6= 0.5 = 4 ÷ 8, (8 ÷ 4) ÷ 2 = 1 6= 4 = 8 ÷ (4 ÷ 2). Es gilt wie in der Arithmetik die Regel “Punkt vor Strich”. Dabei entspricht die Konjunktion ∧ der Multiplikation (Punkt), und die Disjunktion ∨ entspricht der Addition (Strich). Also gilt: • F1 ∧ F2 ∨ F3 entspricht (F1 ∧ F2 ) ∨ F3 . • Die andere Bindung F1 ∧ (F2 ∨ F3 ) erreicht man durch Klammerung. Prof. Dr. Dietmar Seipel 7 Logik für Informatiker Wintersemester 2013/14 Wahrheitswerte: 0,1 Boolesche Operatoren: ∧, ∨, ¬ Verknüpfungstafeln: ∧ 0 1 ∨ 0 1 0 0 0 0 0 1 1 0 1 1 1 1 ¬ 0 1 1 0 abgeleitete Verknüpungstafeln: Prof. Dr. Dietmar Seipel F →G 0 1 F ↔G 0 1 0 1 1 0 1 0 1 0 1 1 0 1 8 Logik für Informatiker Wintersemester 2013/14 Definition (Semantik der Aussagenlogik) Eine Interpretation ist eine Abbildung I : D → {0, 1}, die zunächst für eine Teilmenge D ⊆ A der atomaren Formeln definiert ist (Belegung). Sie kann wie folgt zu einer (partiellen) Abbildung I : F → {0, 1} auf der Menge F aller Formeln erweitert werden: 1. Für atomare Formeln A ∈ D ist I bereits definiert. 2. Für Konjunktionen und Disjunktionen gilt I((F ⊗ G)) = I(F ) ⊗ I(G), für ⊗ ∈ {∧, ∨} (Homomorphismus). Prof. Dr. Dietmar Seipel 9 Logik für Informatiker Wintersemester 2013/14 D.h. I((F ∧ G)) I((F ∨ G)) = = 1, 0, 1, 0, falls I(F ) = 1 und I(G) = 1 sonst falls I(F ) = 1 oder I(G) = 1 sonst 3. Für eine Formel ¬F gilt I(¬F ) = ¬I(F ). D.h. I(¬F ) = 1 0, falls I(F ) = 0 sonst Induktive Definition: „von einfachen Formeln auf komplexere Formeln gehen“ Prof. Dr. Dietmar Seipel 10 Logik für Informatiker Wintersemester 2013/14 Eine Interpretation I heißt zu einer Formel F passend, falls I für alle in F vorkommenden atomaren Formeln A definiert ist (d.h. A ∈ D). Dabei ist die Erweiterung von I auch auf F definiert, d.h. I(F ) ∈ {0, 1}. Ansonsten erklären wir I auf F als undefiniert. Beispiel (Interpretationen) Zur Formel F = ¬((A ∧ B) ∨ C) sind die folgenden beiden Interpretation I und J passend: I A B C 1 1 0 J A B C D 1 0 1 1 I und J definieren alle in F vorkommenden Atome, nämlich A, B und C. J definiert sogar noch ein weiteres Atom D. Prof. Dr. Dietmar Seipel 11 Logik für Informatiker Wintersemester 2013/14 Formel: F = ¬((A ∧ B) ∨ C) Baumdarstellung: A B R ∧ R Prof. Dr. Dietmar Seipel C ∨ ? ¬ ? F 12 Logik für Informatiker Wintersemester 2013/14 Interpretation I: I A B C 1 1 0 Auswertung der Formel: I(¬ ((A ∧ B) ∨ C)) = I(A) = 1 ¬ I((A ∧ B) ∨ C) = ¬ (I(A ∧ B) ∨ I(C)) = ¬ (((I(A) ∧ I(B)) ∨ I(C)) = 0. | {z } | {z } | {z } 1 1 0 {z } | 1 {z } | 1 Prof. Dr. Dietmar Seipel R I(B) = 1 I(C) = 0 ∧ 1 R ∨ 1 ? ¬ 0 ? I(F ) = 0 13 Logik für Informatiker Wintersemester 2013/14 Boolesche Funktion Wenn man eine Formel F als boolesche Funktion f auffaßt, die zu gegebenen Wahrheitswerten ai = I(Ai ) für die in F vorkommenden Atome Ai einen Wahrheitswert berechnet, dann gilt f (a1 , . . . , an ) = I(F ). Also kann man z.B. für F = ¬ ((A ∧ B) ∨ C) schreiben: f (a, b, c) = ¬ ((a ∧ b) ∨ c), f (1, 1, 0) = ¬ ((1 ∧ 1) ∨ 0) = 0. Die Interpretation I wird also zu einer Variablenbelegung (1, 1, 0): I Prof. Dr. Dietmar Seipel A B C 1 1 0 14 Logik für Informatiker Wintersemester 2013/14 Exkurs: Auswertung in P ROLOG In der Logikprogrammierung werden auch die Rückgabewerte von Berechnungen als Parameter der zugehörigen Prädikate behandelt. Sei die Liste Assignment = [A1 =v1 ,...,An =vn ] eine Zuweisung von Wahrheitswerten vi an die atomaren Formeln Ai , d.h. eine Interpretation. Für eine atomare Formel A wird der Wahrheitswert Value mittels member(A=Value, Assignment) in Assignment nachgeschaut: evaluate_boolean_formula(Assignment, A, Value) :boolean_formula_is_atomic(A), member(A=Value, Assignment). Mittels boolean_formula_is_atomic(A) wird getestet, ob A eine atomare Formel ist, d.h. ohne Konjunktion, Disjunktion bzw. Negation. Prof. Dr. Dietmar Seipel 15 Logik für Informatiker Wintersemester 2013/14 Berechnungsbeispiel mit Trace in P ROLOG: [trace] ?- Formula = a, Assignment = [a=1, b=0], eval(Assignment, Formula, Value). Call: (8) Call: (9) Exit: (9) Call: (9) Exit: (9) Exit: (8) Value = 1. eval([a=1, b=0], a, Value) ? creep boolean_formula_is_atomic(a) ? skip boolean_formula_is_atomic(a) ? creep member(a=Value, [a=1, b=0]) ? skip member(a=1, [a=1, b=0]) ? skip eval([a=1, b=0], a, 1) ? skip evaluate_boolean_formula wurde als eval abgekürzt. Prof. Dr. Dietmar Seipel 16 Logik für Informatiker Wintersemester 2013/14 Die Konjunktion in P ROLOG /* boolean_and(U, V, W) <W is derived as the boolean conjunction of the truth values U and V. */ boolean_and(0, boolean_and(0, boolean_and(1, boolean_and(1, 0, 1, 0, 1, 0). 0). 0). 1). Das Prädikat boolean_and/3 ist hier als Wahrheitswertetabelle realisiert. Prof. Dr. Dietmar Seipel 17 Logik für Informatiker Wintersemester 2013/14 Berechnungsbeispiel: ?- boolean_and(1, 0, W). W = 0 . Man kann die Berechnung sogar umkehren, und nach allen Paaren von Wahrheitswerten U und V fragen, deren Konjunktion 0 ist: ?- boolean_and(U, V, 0). U = 0, V = 0 ; U = 0, V = 1 ; U = 1, V = 0 Dabei wird durch die Eingabe von ; hinter einer Lösung die Berechnung der nächsten Lösung angestoßen. Prof. Dr. Dietmar Seipel 18 Logik für Informatiker Wintersemester 2013/14 Auswertung komplexer Formeln Der Wahrheitswert einer Konjunktion (A,B) ergibt sich durch Konjunktion der Wahrheitswerte der beiden Glieder A und B: evaluate_boolean_formula( Assignment, (A,B), Value) :evaluate_boolean_formula(Assignment, A, V_A), evaluate_boolean_formula(Assignment, B, V_B), boolean_and(V_A, V_B, Value). Zunächst werden die Wahrheitswerte V_A und V_B der beiden Glieder A und B berechnet, danach deren Konjunktion. Prof. Dr. Dietmar Seipel 19 Logik für Informatiker Wintersemester 2013/14 Im D DK ist auch folgende funktionale Schreibweise möglich: evaluate_boolean_formula( Assignment, (A,B), Value) :Value <= boolean_and( evaluate_boolean_formula(Assignment, A), evaluate_boolean_formula(Assignment, B) ). Jetzt wird direkt ein verschachtelter Ausdruck ausgewertet, anstelle mittels evaluate_boolean_formula/3 (unten abgekürzt: eval ) vorher die Zwischenresultate V_A und V_B zu erzeugen. Zugehörige Umformung: eval (I, A, VA ), eval (I, B, VB ), and(VA , VB , V ) 7→ VA <= eval (I, A), VB <= eval (I, B), V <= and (VA , VB ) 7→ V <= and(eval (I, A), eval(I, B)). I steht für Assignment und V für Value. Prof. Dr. Dietmar Seipel 20 Logik für Informatiker Wintersemester 2013/14 Der Wahrheitswert einer Disjunktion (A;B) ist 1, falls der Wahrheitswert von mindestens einem der beiden Glieder A und B gleich 1 ist, sonst ist er 0: evaluate_boolean_formula( Assignment, (A;B), Value) :evaluate_boolean_formula(Assignment, A, V_A), evaluate_boolean_formula(Assignment, B, V_B), boolean_or(V_A, V_B, Value). boolean_or(0, boolean_or(0, boolean_or(1, boolean_or(1, Prof. Dr. Dietmar Seipel 0, 1, 0, 1, 0). 1). 1). 1). 21 Logik für Informatiker Wintersemester 2013/14 Der Wahrheitswert einer Negation -A ergibt sich durch Negation des Wahrheitswerts von A. evaluate_boolean_formula(Assignment, -A, Value) :evaluate_boolean_formula(Assignment, A, V_A), boolean_not(V_A, Value). boolean_not(0, 1). boolean_not(1, 0). Prof. Dr. Dietmar Seipel 22 Logik für Informatiker Wintersemester 2013/14 Berechnungsbeispiel: ?- Formula = -((a,b;c)), Assignment = [a=1, b=1, c=0], evaluate_boolean_formula( Assignment, Formula, Value). Value = 0 Es gilt “Punkt vor Strich”, d.h. -((a,b;c)) bedeutet -((a,b);c) bzw. ¬((a ∧ b) ∨ c). Die zusätzliche äußere Klammerung in -((a,b;c)) ist erforderlich. In der ungeklammerten Formel -(a,b;c) faßt P ROLOG das - als binären Operator mit den zwei Argumenten a und b;c auf. Prof. Dr. Dietmar Seipel 23 Logik für Informatiker Wintersemester 2013/14 Trace in P ROLOG: ?- trace. true. [trace] Call: Call: Call: Exit: Call: Exit: Call: Exit: Exit: Prof. Dr. Dietmar Seipel ?- eval([a=1, b=1, c=0], -((a,b;c)), Value). (7) (8) (9) (9) (9) (9) (9) (9) (8) eval(..., - (a,b;c), _G402) ? creep eval(..., (a,b;c), _G573) ? creep eval(..., (a,b), _G573) ? skip eval(..., (a,b), 1) ? creep eval(..., c, _G579) ? skip eval(..., c, 0) ? creep or(1, 0, _G582) ? skip or(1, 0, 1) ? creep eval(..., (a,b;c), 1) ? creep 24 Logik für Informatiker Wintersemester 2013/14 Call: (8) not(1, _G402) ? skip Exit: (8) not(1, 0) ? creep Exit: (7) eval(..., - (a,b;c), 0) ? creep Value = 0 . [trace] ?- Aus Platzgründen haben wir die Prädikatensymbole abgekürzt und die Variablenbelegung [a=1, b=1, c=0] in eval/3 mittels ... angedeutet. Prof. Dr. Dietmar Seipel 25 Logik für Informatiker Wintersemester 2013/14 Modelle Definition (Modelle) Sei F eine Formel und I : D → {0, 1} eine Interpretation. 1. I ist ein Modell von (für) F , falls • I zu F passend ist und • I(F ) = 1 gilt. Schreibweise: I |= F . Dann sagen wir auch: F gilt unter (in, bezüglich) I. 2. Andernfalls ist I kein Modell von (für) F . Schreibweise: I 6|= F . Dann sagen wir auch: F gilt unter I nicht. Prof. Dr. Dietmar Seipel 26 Logik für Informatiker Wintersemester 2013/14 Beispiel (Modelle) Die folgende Formel F repräsentiert des exklusive Oder: F = (A ∨ B) ∧ (¬A ∨ ¬B) ≡ A ⊕ B. Interpretationen: I1 A B 0 1 I2 A B 1 1 I1 und I2 sind passend zu F , aber nur I1 ist ein Modell für F : I1 F, I2 2 F . Es gibt hier noch ein weiteres Modell I3 für F : I3 A B 1 Prof. Dr. Dietmar Seipel 0 27 Logik für Informatiker Wintersemester 2013/14 Man kann alle möglichen passenden Interpretationen über den in F vorkommenden atomaren Formeln in einer Wahrheitswertetafel zusammenstellen: A B F I4 0 0 0 I1 0 1 1 I3 1 0 1 I2 1 1 0 In der Spalte für F wird der Wahrheitswert I(F ) angegeben. I ist ein Modell für F , g.d.w. I(F ) = 1 ist. Prof. Dr. Dietmar Seipel 28 Logik für Informatiker Wintersemester 2013/14 Definition (Erfüllbarkeit, Gültigkeit) 1. Eine Formel F heißt erfüllbar, falls F mindestens ein Modell besitzt, andernfalls unerfüllbar. 2. Eine Menge M von Formeln heißt erfüllbar, falls es eine Interpretation I gibt, welche für alle Formeln F ∈ M ein Modell ist: ∃(I : D → {0, 1}) : ∀F ∈ M : I F Insbesondere muß I natürlich auch passend sein zu allen F ∈ M . 3. Eine Formel F heißt gültig (oder Tautologie), falls jede zu F passende Interpretation ein Modell für F ist. Dann schreiben wir auch F ; anderenfalls 2 F . Prof. Dr. Dietmar Seipel 29 Logik für Informatiker Wintersemester 2013/14 Beispiel (Erfüllbarkeit, Gültigkeit) 1. Die Formel F = A ∨ B ist erfüllbar: A B F 0 0 0 0 1 1 1 0 1 1 1 1 2. Die Formel G = A ∨ ¬A ist gültig (Tautologie); die Formel H = ¬G = ¬(A ∨ ¬A) ist unerfüllbar: Prof. Dr. Dietmar Seipel A G H 0 1 0 1 1 0 30 Logik für Informatiker Wintersemester 2013/14 Die beiden passenden Interpretationen I1 und I2 erfüllen G: I1 G, I2 G. I1 A I2 0 A 1 3. Die zu H äquivalente Formel H ′ = ¬A ∧ A ist ebenfalls unerfüllbar. 4. Die Formel F = (A ∨ B) ∧ (¬A ∨ ¬B) zum exklusiven Oder ist erfüllbar, aber keine Tautologie: Prof. Dr. Dietmar Seipel A B F 0 0 0 0 1 1 1 0 1 1 1 0 31 Logik für Informatiker Wintersemester 2013/14 Zum Feststellen der Erfüllbarkeit bzw. Gültigkeit einer Formel F genügt es, die endlich vielen Interpretationen, die genau auf den in F vorkommenden atomaren Formeln definiert sind, zu testen. Falls die Formel n verschiedene atomare Formeln enthällt, so sind dies genau 2n Interpretationen. Wahrheitswertetafeln: F1 = A → B, F2 = (A ∧ (A → B)) → B, F3 = A ∨ ¬A, F4 = (A ∧ B) ∨ (A ∧ ¬C). F2 und F3 sind offenbar Tautologien. Prof. Dr. Dietmar Seipel 32 Logik für Informatiker Wintersemester 2013/14 A B F1 A ∧ F1 F2 A B C F4 0 0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 0 1 A F3 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 Offenbar gilt: I(F1 ) = I(A → B) = 1, genau dann, wenn I(A) ≤ I(B). Prof. Dr. Dietmar Seipel 33 Logik für Informatiker Wintersemester 2013/14 Exkurs: Berechnung von Wahrheitswertetafeln in P ROLOG ?- Formula = -((a,b;c)), Atoms = [a,b,c], boolean_formula_to_truth_table(Formula, Atoms). Mittels boolean_formula_to_models(Formula, Atoms, Models) werden nur die Modelle ausgegeben. Prof. Dr. Dietmar Seipel 34 Logik für Informatiker Wintersemester 2013/14 Satz (Tautologie, Erfüllbarkeit) Eine Formel F ist genau dann eine Tautologie, wenn ¬F unerfüllbar ist. Beweis: F ist eine Tautologie: ⇔ jede zu F passende Interpretation ist ein Modell für F ⇔ jede zu ¬F passende Interpretation ist kein Modell für ¬F ⇔ ¬F besitzt kein Modell ⇔ ¬F ist unerfüllbar Prof. Dr. Dietmar Seipel 35 Logik für Informatiker 1.2 Wintersemester 2013/14 Äquivalenz und Normalformen Im folgenden lassen wir – falls möglich – die äußersten Klammern einer Formel meist weg. Definition (F ≡ G) Zwei Formeln F und G heißen (semantisch) äquivalent, falls für alle Interpretation I, • die sowohl für F als auch für G passend sind, • I(F ) = I(G) gilt. Beispiel (Äquivalenz) 1. A ∨ B ≡ B ∨ A (Kommutativität) 2. A ∨ ¬A ≡ (A ∧ (A → B)) → B Prof. Dr. Dietmar Seipel (beides Tautologien) 36 Logik für Informatiker Wintersemester 2013/14 Ersetzbarkeit Sei F ≡ F ′ , und H eine Formel, in der F als Teilformel auftritt. Sei H ′ die Formel, welche man durch Ersetzen aller Vorkommen von F in H durch F ′ erhält. Dann gilt H ≡ H ′ . Beispiel (Ersetzbarkeit) Aus F ≡ F ′ folgt F ∧ G ≡ F ′ ∧ G, (F ∧ G) → K ≡ (F ′ ∧ G) → K. Prof. Dr. Dietmar Seipel 37 Logik für Informatiker Wintersemester 2013/14 Satz (Äquivalenz) Indempotenz Absorption Kommutativität F ⊗ F ≡ F , für ⊗ ∈ {∧, ∨}, F ∧ (F ∨ G) ≡ F ≡ F ∨ (F ∧ G), F ⊗ G ≡ G ⊗ F , für ⊗ ∈ {∧, ∨}, Assoziativität (F ⊗ G) ⊗ H ≡ F ⊗ (G ⊗ H), für ⊗ ∈ {∧, ∨}, Distributivität F ∧ (G ∨ H) ≡ (F ∧ G) ∨ (F ∧ H), F ∨ (G ∧ H) ≡ (F ∨ G) ∧ (F ∨ H), Prof. Dr. Dietmar Seipel 38 Logik für Informatiker Wintersemester 2013/14 Doppelnegation De Morgan–Regeln ¬(¬F ) ≡ F , ¬(F ∧ G) ≡ ¬F ∨ ¬G, ¬(F ∨ G) ≡ ¬F ∧ ¬G, Resolution Tautologie–Regeln F ≡ (F ∨ G) ∧ (F ∨ ¬G), F ∨ G ≡ F , F ∧ G ≡ G, falls F eine Tautologie ist. Unerfüllbarkeits–Regeln F ∨ G ≡ G, F ∧ G ≡ F , falls F unerfüllbar ist. Prof. Dr. Dietmar Seipel 39 Logik für Informatiker Wintersemester 2013/14 Beweis: Alle Äquivalenzen können leicht mittels Wahrheitstafeln nachgeprüft werden: F G F ∧G ¬(F ∧ G) ¬F 0 0 0 ¬G ¬F ∨ ¬G ¬¬F 0 1 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 0 0 0 0 1 Man erkennt: (DM) ¬(F ∧ G) ≡ ¬F ∨ ¬G, (DN) ¬(¬F ) ≡ F. Die duale Aussage von (DM) zeigen wir durch Einsetzen von ¬F ′ für F und von ¬G′ für G und anschließende Doppelnegation. Prof. Dr. Dietmar Seipel 40 Logik für Informatiker Wintersemester 2013/14 Aufgrund • der ersten De Morgan–Regel (DM), • der Regel für Doppelnegation (DN), und • der Regel zur Ersetzbarkeit (E) erhalten wir nun folgendes: ¬F ′ ∧ ¬G′ DN ¬¬(¬F ′ ∧ ¬G′ ) DM ′ ′ ∨ ¬¬G ¬(¬¬F | {z } | {z }) ≡ ≡ ≡ F′ DN E ≡ ≡ G′ DN ¬(F ′ ∨ G′ ) u.s.w. Prof. Dr. Dietmar Seipel 41 Logik für Informatiker Wintersemester 2013/14 Bemerkungen: (i) Das Assoziativgesetz erlaubt es bei mehrgliedrigen Konjunktionen bzw. Disjunktionen auf die Klammerung zu verzichten: z.B. für ∧: A ∧ B ∧ C ∧ D ≡ (A ∧ B) ∧ (C ∧ D) ≡ A ∧ (B ∧ C) ∧ D ≡ A ∧ (B ∧ (C ∧ D)) ≡ ((A ∧ B) ∧ C) ∧ D ≡ (A ∧ (B ∧ C)) ∧ D (ii) Aufgrund der Kommutativität wären sogar beliebige Permutationen von A, B, C, D möglich: A∧ B ∧ C ∧ D ≡ B ∧ D ∧ C ∧ A ≡ ... (iii) Die Distributivität gilt hier symmetrisch für ∧ und ∨, im Gegensatz zu „ · “ und „+“: a · (b + c) = a · b + a · c. Vertauscht mann · und +, so gilt die arithmetische Regel nicht. Prof. Dr. Dietmar Seipel 42 Logik für Informatiker Wintersemester 2013/14 Definition (Literal) Sei A eine atomare Formel. 1. Dann sind A (positives Literal) und seine Negation ¬A (negatives Literal) Literale. 2. Man nennt die beiden Literale A und ¬A komplementär. Seien die Li , mit 1 ≤ i ≤ m, Literale. Vm 1. Die Konjunktion i=1 Li ist unerfüllbar, falls sie zwei komplementäre Literale enthält. V0 2. Die leere Konjunktion K = i=1 Li ist eine Tautologie. Wm 3. Die Disjunktion i=1 Li ist eine Tautologie, falls sie zwei komplementäre Literale enthält. W0 4. Die leere Disjunktion D = i=1 Li ist unerfüllbar. Prof. Dr. Dietmar Seipel 43 Logik für Informatiker Wintersemester 2013/14 Normalformen Definition (Normalformen) Gegeben seien Literale Lij , für 1 ≤ i ≤ m, 1 ≤ j ≤ ni . 1. Eine Formel F ist in konjunktiver Normalform (KNF), falls sie eine Konjunktion von Disjunktionen ist: Vm Wni F = i=1 ( j=1 Lij ). 2. Eine Formel F ist in disjunktiver Normalform (DNF), falls sie eine Disjunktion von Konjunktionen ist: Wm Vni F = i=1 ( j=1 Lij ). Falls F eine Formel über n Atomen ist, so genügt es ni ≤ n zu wählen. Andernfalls sind die Teil–Disjunktionen/Konjunktionen redundant, da sie komplementäre Literale enthalten. Prof. Dr. Dietmar Seipel 44 Logik für Informatiker Wintersemester 2013/14 Falls zwei Literale innerhalb derselben Wni 1. Disjunktion Di = j=1 Lij komplementär sind, so kann man die Vm Wni Tautologie Di aus F = i=1 ( j=1 Lij ) entfernen. Vni 2. Konjunktion Ki = j=1 Lij komplementär sind, so kann man die Wm Vni unerfüllbare Teilformel Ki aus F = i=1 ( j=1 Lij ) entfernen. In beiden Fällen erhält man eine äquivalente, kürzere Formel F ′ . Beispiel (Komplementäre Literale in Normalform) (A ∨ B) ∧ (B ∨ ¬B) ≡ (A ∨ B). (A ∧ B) ∨ (B ∧ ¬B) ≡ (A ∧ B). Prof. Dr. Dietmar Seipel 45 Logik für Informatiker Wintersemester 2013/14 Beispiel (Normalformen) F = ¬(A ∧ (B ∨ C)) Prof. Dr. Dietmar Seipel A B C F 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 −→ in DNF: ¬A ∧ ¬B ∧ C −→ in KNF: ¬A ∨ B ∨ ¬C 46 Logik für Informatiker Wintersemester 2013/14 KNF: FK = (¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C) DNF: FD = (¬A ∧ ¬B ∧ ¬C) ∨ (¬A ∧ ¬B ∧ C) ∨ (¬A ∧ B ∧ ¬C) ∨ (¬A ∧ B ∧ C) ∨ (A ∧ ¬B ∧ ¬C) DNF und KNF sind nicht eindeutig: Durch Umformung von F erhalten wir hier eine weitere, kompaktere zu F äquivalente DNF und KNF: F = ¬(A ∧ (B ∨ C)) ≡ ¬A ∨ ¬(B ∨ C) ≡ ¬A ∨ (¬B ∧ ¬C) ≡ (¬A ∨ ¬B) ∧ (¬A ∨ ¬C) | {z } {z } | DNF Prof. Dr. Dietmar Seipel KNF 47 Logik für Informatiker Wintersemester 2013/14 Die KNF–Darstellung aufgrund der Nullstellen erinnert an die Polynomdarstellung aus der Analysis. Ein Polynom vom Grad 2 mit den zwei Nullstellen 2 und 3 und dem führenden Koeffizienten 1 hat die Darstellung p(X) = (X − 2) · (X − 3). Durch die Produktdarstellung wird erreicht, daß das Polynom genau für die beiden Nullstellen den Wert 0 hat, denn ein Produkt ist genau dann 0, wenn einer der beiden Faktoren 0 ist. Auch wenn das Polynom keine zwei Nullstellen hat, kann man eine ähnliche Überlegung anstellen. Eine Analogie zur DNF–Darstellung kann man nicht so leicht ziehen. Prof. Dr. Dietmar Seipel 48 Logik für Informatiker Wintersemester 2013/14 Wahrheitswertetabelle → Normalformen Zwei Formeln F und G sind (semantisch) äquivalent genau dann, wenn sie dieselben Wahrheitswertetabellen haben. Da es nur zwei Wahrheitswerte gibt, genügt es bereits, wenn F und G dieselben Einsstellen haben: I(F ) = 1 ⇐⇒ I(G) = 1. Ebenso genügt es, wenn F und G dieselben Nullstellen haben: I(F ) = 0 ⇐⇒ I(G) = 0. Dies muß für alle zu beiden Formeln passenden Interpretationen I gelten. Prof. Dr. Dietmar Seipel 49 Logik für Informatiker Wintersemester 2013/14 Gegeben sei eine Formel F über n Atomen A1 , . . . , An . DNF: Ist I eine Interpretation mit I(F ) = 1, so bilden wir eine Konjunktion αI = αI1 ∧ αI2 ∧ . . . ∧ αIn der Länge n mit A , i αIi = ¬Ai , falls I(Ai ) = 1 falls I(Ai ) = 0 Dann ist FD eine DNF für F : W FD = αI . I: I(F )=1 Für eine Interpretation J ist J(αI ) = 1 genau dann, wenn J = I ist. Also haben F und FD dieselben Einsstellen, und es gilt F ≡ FD . Prof. Dr. Dietmar Seipel 50 Logik für Informatiker Wintersemester 2013/14 Aus den Einsstellen von F bildet man die Konjunktionen αI der DNF: α(0,0,0) α(0,0,1) α(0,1,0) α(0,1,1) α(1,0,0) = = = = = ¬A ∧ ¬B ∧ ¬C, ¬A ∧ ¬B ∧ C, ¬A ∧ B ∧ ¬C, ¬A ∧ B ∧ C, A ∧ ¬B ∧ ¬C. Wir repräsentieren hier eine Interpretation I durch ein Tupel von Wahrheitswerten. DNF: FD = α(0,0,0) ∨ α(0,0,1) ∨ α(0,1,0) ∨ α(0,1,1) ∨ α(1,0,0) = (¬A ∧ ¬B ∧ ¬C) ∨ (¬A ∧ ¬B ∧ C) ∨ (¬A ∧ B ∧ ¬C) ∨ (¬A ∧ B ∧ C) ∨ (A ∧ ¬B ∧ ¬C) Prof. Dr. Dietmar Seipel 51 Logik für Informatiker Wintersemester 2013/14 KNF: Ist I eine Interpretation mit I(F ) = 0, so bilden wir eine Disjunktion βI = βI1 ∨ βI2 ∨ . . . ∨ βIn der Länge n mit ¬A , i i βI = Ai , falls I(Ai ) = 1 falls I(Ai ) = 0 Dann ist FK eine KNF für F : V FK = βI . I: I(F )=0 Für eine Interpretation J ist J(βI ) = 0 genau dann, wenn J = I ist. Also haben F und FK dieselben Nullstellen, und es gilt F ≡ FK . Prof. Dr. Dietmar Seipel 52 Logik für Informatiker Wintersemester 2013/14 Aus den Nullstellen von F bildet man die Disjunktionen βI der KNF: β(1,0,1) = ¬A ∨ B ∨ ¬C, β(1,1,0) = ¬A ∨ ¬B ∨ C, β(1,1,1) = ¬A ∨ ¬B ∨ ¬C. Wir repräsentieren hier eine Interpretation I durch ein Tupel von Wahrheitswerten. KNF: FK = β(1,0,1) ∧ β(1,1,0) ∧ β(1,1,1) = (¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C) Prof. Dr. Dietmar Seipel 53 Logik für Informatiker Wintersemester 2013/14 Eindeutigkeit Die DNF/KNF, in der jede Konjunktion/Disjunktion die Länge n hat und jedes Atom Ai genau einmal (als Ai oder als ¬Ai ) enthält, ist eindeutig – abgesehen von der Reihenfolge der Teilformeln (Kommutativität). FD = (¬A ∧ ¬B ∧ ¬C) ∨ (¬A ∧ ¬B ∧ C) ∨ (¬A ∧ B ∧ ¬C) ∨ (¬A ∧ B ∧ C) ∨ (A ∧ ¬B ∧ ¬C) ≡ (¬A ∧ C ∧ ¬B) ∨ (¬A ∧ ¬B ∧ ¬C) ∨ (¬A ∧ B ∧ ¬C) ∨ (¬A ∧ B ∧ C) ∨ (A ∧ ¬B ∧ ¬C), FK = (¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C) ≡ (¬A ∨ C ∨ ¬B) ∧ (¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ ¬C). Konjunktionen/Disjunktionen mit mehr als n Atomen müssen eines der Atome entweder doppelt oder komplementär enthalten. Somit können sie verkürzt bzw. ganz weggelassen werden. Prof. Dr. Dietmar Seipel 54 Logik für Informatiker Wintersemester 2013/14 Aus einer KNF GK für eine Formel G kann man eine DNF für die Formel F = ¬G bilden: Vn Wmi GK = i=1 j=1 Lij Dann erhalten wir aus GK mittels De Morgan (DM) eine DNF für F : DM F = ¬G ≡ ¬GK ≡ n _ i=1 mit Lij ≡ ¬Lij : A , k Lij = ¬Ak , ¬ mi _ j=1 DM Lij ≡ mi n ^ _ i=1 j=1 ¬Lij ≡ mi n ^ _ Lij i=1 j=1 falls Lij = ¬Ak falls Lij = Ak Analog erhält man aus einer DNF GD für G eine KNF für F = ¬G. Prof. Dr. Dietmar Seipel 55 Logik für Informatiker Wintersemester 2013/14 Für die boolesche Formel F = ¬(A ∨ B) zum N OR ist G = A ∨ B bereits in DNF. Mittels De Morgan (DM) kann man daraus eine KNF für F gewinnen: DM F = ¬G ≡ ¬A ∧ ¬B. Diese kann man aufgrund der Resolutions–Regel noch erweitern, so daß jedes Atom in jeder Disjunktion vorkommt: • Aus ¬A erhält man durch Erweiterung um B bzw. ¬B die beiden Disjunktionen ¬A ∨ B und ¬A ∨ ¬B. • Aus ¬B erhält man durch Erweiterung um A bzw. ¬A die beiden Disjunktionen A ∨ ¬B und ¬A ∨ ¬B. Prof. Dr. Dietmar Seipel 56 Logik für Informatiker Wintersemester 2013/14 Aufgrund der Idempotenz können wir eine der beiden doppelten Disjunktionen ¬A ∨ ¬B eliminieren und erhalten folgende weitere KNF: F ≡ (¬A ∨ B) ∧ (¬A ∨ ¬B) ∧ (A ∨ ¬B). Man erkennt, daß diese genau die drei Nullstellen von F widerspiegelt: A B G F 0 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 Wir haben also dasselbe Resultat erhalten wie bei der Konstruktion aufgrund der Wahrheitswertetabelle. Es gilt β(1,0) = ¬A ∨ B, β(1,1) = ¬A ∨ ¬B und β(0,1) = A ∨ ¬B. Prof. Dr. Dietmar Seipel 57 Logik für Informatiker Wintersemester 2013/14 Existenz und Konstruktion der Normalformen Durch die obige Konstruktion aus den Konjunktionen αI bzw. den Disjunktionen βI ist die Existenz einer DNF bzw. KNF für jede Formel F eigentlich bereits gezeigt. Der folgende Satz zeigt dies noch einmal, und zwar durch strukturelle Induktion über den Aufbau der Formel F . Dabei wird gezeigt, wie man die Normalformen für 1. Negationen, 2. Disjunktionen und 3. Konjunktionen aus den Normalformen ihrer Bestandteile konstruieren kann. Prof. Dr. Dietmar Seipel 58 Logik für Informatiker Wintersemester 2013/14 Satz (Normalformen) Für jede Formel F gibt es eine äquivalente Formel F ′ in KNF bzw. DNF. Beweis: Strukturelle Induktion über den Aufbau der Formel F Induktionsanfang: Falls F eine atomare Formel ist, so ist F bereits in KNF bzw. in DNF. Induktionsschritt: 1. Sei F = ¬G eine Negation: Nach Induktionsannahme gibt es zu G äquivalente Formeln GK in KNF und GD in DNF. Wie bereits gezeigt kann man aus GK / GD eine zu F äquivalente Formel in DNF / KNF bilden. Prof. Dr. Dietmar Seipel 59 Logik für Informatiker Wintersemester 2013/14 2. Sei F = G ∨ H eine Disjunktion: Nach Induktionsannahme gibt es zu G, H äquivalente Formeln • GK und HK in KNF und • GD und HD in DNF der folgenden Form: Vn GK = i=1 βi , Vn′ HK = j=1 βj′ , GD = HD = Dabei sind Wm i=1 αi , Wm′ ′ j=1 αj . • βi , βj′ Disjunktionen und • αi , αj′ Konjunktionen von Literalen. Prof. Dr. Dietmar Seipel 60 Logik für Informatiker Wintersemester 2013/14 Wir erhalten nach dem Distributivgesetz (D) eine KNF: F = = D ≡ = D ≡ G ∨ H ≡ GK ∨ HK Vn′ ′ GK ∨ j=1 βj Vn′ ′ ) (G ∨ β K j j=1 Vn′ Vn ′ (( β ) ∨ β i j) j=1 i=1 Vn′ Vn ′ j=1 i=1 (βi ∨ βj ) Dies ist eine KNF, da die βi ∨ βj′ Disjunktionen von Literalen sind. Diese KNF enthält m · n Disjunktionen von Literalen. In der Praxis kann man diese Darstellung oft vereinfachen. Prof. Dr. Dietmar Seipel 61 Logik für Informatiker Wintersemester 2013/14 Wir erhalten durch disjunktive Verkettung eine DNF: F = = = G ∨ H ≡ GD ∨ HD Wm Wm′ ′ ( i=1 αi ) ∨ ( j=1 αj ) Wm+m′ αi i=1 Dabei setzen wir αm+j = αj′ , für 1 ≤ j ≤ m′ . Dies eine DNF, da die αi Konjunktionen von Literalen sind. 3. Der Induktionsschritt für eine Konjunktion F = G ∧ H erfolgt analog zur Disjunktion. Prof. Dr. Dietmar Seipel 62 Logik für Informatiker Wintersemester 2013/14 Beispiel (DNF, KNF) Für die folgende Formel F ist G = A und H = B ∧ C: F = A ∨ (B ∧ C). F ist bereits in DNF. Nach unserem Schema erhalten wir genau diese DNF durch disjunktive Verkettung der zwei DNFs • GD = α1 = A und • HD = α1′ = B ∧ C. Eine KNF für F erhalten wir nach dem Distributivgesetz durch Kombination der zwei KNFs • GK = β1 = A und • HK = β1′ ∧ β2′ , mit β1′ = B und β2′ = C. Die KNF ist (β1 ∨ β1′ ) ∧ (β1 ∨ β2′ ) = (A ∨ B) ∧ (A ∨ C). Prof. Dr. Dietmar Seipel 63 Logik für Informatiker Wintersemester 2013/14 Für die folgende Formel F ist G = A ∨ (D ∧ E) und H = B ∧ C: F = (A ∨ (D ∧ E)) ∨ (B ∧ C). Eine DNF für F erhalten wir durch Weglassen der Klammerung um G: A ∨ (D ∧ E) ∨ (B ∧ C). Eine KNF für F erhalten wir nach dem Distributivgesetz durch Kombination der zwei KNFs • GK = β1 ∧ β2 , mit β1 = A ∨ D und β2 = A ∨ E, und • HK = β1′ ∧ β2′ , mit β1′ = B und β2′ = C. Die KNF ist (β1 ∨ β1′ ) ∧ (β1 ∨ β2′ ) ∧ (β2 ∨ β1′ ) ∧ (β2 ∨ β2′ ) = (A ∨ D ∨ B) ∧ (A ∨ D ∨ C) ∧ (A ∨ E ∨ B) ∧ (A ∨ E ∨ C). Prof. Dr. Dietmar Seipel 64 Logik für Informatiker Wintersemester 2013/14 Exkurs: Berechnung von Normalformen Aus dem Beweis ergeben sich P ROLOG–Regeln zur Berechnung von Normalformen (knf, dnf): boolean_normalize(knf, (A;B), Cs) :boolean_normalize(knf, A, As), boolean_normalize(knf, B, Bs), findall( C, ( member(C1, As), member(C2, Bs), append(C1, C2, C) ), Cs ). boolean_normalize(dnf, (A;B), Cs) :boolean_normalize(dnf, A, As), boolean_normalize(dnf, B, Bs), append(As, Bs, Cs). Prof. Dr. Dietmar Seipel 65 Logik für Informatiker Wintersemester 2013/14 boolean_normalize(knf, (A,B), Cs) :boolean_normalize(knf, A, As), boolean_normalize(knf, B, Bs), append(As, Bs, Cs). boolean_normalize(dnf, (A,B), Cs) :boolean_normalize(dnf, A, As), boolean_normalize(dnf, B, Bs), findall( C, ( member(C1, As), member(C2, Bs), append(C1, C2, C) ), Cs ). Prof. Dr. Dietmar Seipel 66 Logik für Informatiker Wintersemester 2013/14 Zur Berechnung einer KNF für eine Formel ¬A braucht man eine DNF für die Formel A; analoges gilt für die DNF: boolean_normalize(knf, -A, Cs) :boolean_normalize(dnf, A, Cs_2), maplist( literals_to_complements, Cs_2, Cs ). boolean_normalize(dnf, -A, Cs) :boolean_normalize(knf, A, Cs_2), maplist( literals_to_complements, Cs_2, Cs ). Das Prädikat literals_to_complements/2 berechnet die Komplemente zu einer Liste von Literalen. Prof. Dr. Dietmar Seipel 67 Logik für Informatiker Wintersemester 2013/14 Für atomare Formeln A wird eine Liste [[A]] bestehend aus einer Einerliste [A] erzeugt: boolean_normalize(_, A, [[A]]) :boolean_formula_is_atomic(A), !. Man kann jederzeit für weitere Typen von Formeln – wie z.B. Implikation und exklusives Oder – P ROLOG–Regeln zur Erzeugung einer KNF / DNF angeben. Prof. Dr. Dietmar Seipel 68 Logik für Informatiker Wintersemester 2013/14 Der folgende Test bestimmt den Funktor F und die Stelligkeit N von A. Wenn das Paar F:N nicht in der angegebenen Menge liegt, d.h. wenn A keine • Negation (Funktor “-” mit Stelligkeit 1), • Konjunktion (Funktor “,” mit Stelligkeit 2) oder • Disjunktion (Funktor “;” mit Stelligkeit 2) ist, dann ist A atomar: boolean_formula_is_atomic(A) :\+ ( functor(A, F, N), member(F:N, [’-’:1, ’,’:2, ’;’:2]) ). Prof. Dr. Dietmar Seipel 69 Logik für Informatiker Wintersemester 2013/14 Berechnungsbeispiel: ?- Formula = -((a,(b;c))), boolean_normalize(knf, Formula, Cs), boolean_normal_form_to_formula(knf, Cs, F). Cs = [[-a, -b], [-a, -c]], F = ((-a;-b), (-a;-c)) ?- Formula = -((a,(b;c))), boolean_normalize(dnf, Formula, Cs), boolean_normal_form_to_formula(dnf, Cs, F). Cs = [[-a], [-b, -c]], F = (-a ; -b,-c) Es gilt wieder “Punkt vor Strich”, d.h. (-a;-b,-c) bedeutet (-a;(-b,-c)) bzw. ¬a ∨ (¬b ∧ ¬c). Prof. Dr. Dietmar Seipel 70 Logik für Informatiker Wintersemester 2013/14 Weitere Regeln Für beliebige aussagenlogische Formeln F , F1 , F2 und G gilt: Resolution: (F1 ∨ G) ∧ (F2 ∨ ¬G) → F1 ∨ F2 ist eine Tautologie, (F ∨ G) ∧ (F ∨ ¬G) ≡ F. Implikation: F ∨ ¬G ≡ G → F. Moduns Ponens: (G ∧ (G → F )) → F ist eine Tautologie. Prof. Dr. Dietmar Seipel 71 Logik für Informatiker Wintersemester 2013/14 Mithilfe der Resolutions–Regel (F ∨ G) ∧ (F ∨ ¬G) ≡ F kann eine KNF vereinfacht werden: HK = (¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C) ≡ (¬A ∨ ¬B) ∧ (¬A ∨ ¬C). Denn wir können folgende Ersetzungen vornehmen: (¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ ¬C) ≡ (¬A ∨ ¬C), (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C) ≡ (¬A ∨ ¬B). Die Teilformel ¬A ∨ ¬B ∨ ¬C, die in beiden Ersetzungen verwendet wird, kann man aufgrund der Idempotenz duplizieren. Aufgrund der Kommutativität und der Assoziativität der Konjunktion ∧ kann man die zu ersetzenden Teilformeln erzeugen. Prof. Dr. Dietmar Seipel 72 Logik für Informatiker 1.3 Wintersemester 2013/14 Hornformeln Definition (Hornformeln) Eine Formel F ist eine Hornformel, falls F in KNF ist und jedes Disjunktionglied in F höchstens ein positives Literal enthält. nach dem Logiker Alfred Horn Beispiel (Hornformeln) 1. F = (¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C) ist eine Hornformel. 2. G = A ∨ B ist keine Hornformel. Prof. Dr. Dietmar Seipel 73 Logik für Informatiker Wintersemester 2013/14 Aus der Definition der Implikation F → G ≡ ¬F ∨ G und den Regeln von De Morgan ergibt sich die Regelschreibweise A1 ∧ . . . ∧ An → B: ¬A1 ∨ . . . ∨ ¬An ∨ B ≡ ¬(A1 ∧ . . . ∧ An ) ∨ B ≡ A1 ∧ . . . ∧ An → B. Wir nennen die Konjunktion A1 ∧ . . . ∧ An den Rumpf und B den Kopf der Regel. Unter der Annahme, daß die Konjunktion stärker bindet als die Implikation, können wir die Klammern um den Regelrumpf weglassen. Wir setzen 0 = 2D (leere Disjunktion) und 1 = 2K (leere Konjunktion). 0 ist eine unerfüllbare Formel, 1 ist eine Tautologie, und es gilt: ¬A1 ∨ . . . ∨ ¬An ≡ ¬(A1 ∧ . . . ∧ An ) ≡ A1 ∧ . . . ∧ An → 0 B ≡ 1→B Wir nennen A1 ∧ . . . ∧ An → 0 eine Integritätsbedingung, 1 → B ein Fakt. Prof. Dr. Dietmar Seipel 74 Logik für Informatiker Wintersemester 2013/14 Folglich kann man eine Hornformel als Konjunktion von Implikationen schreiben (prozedurale Deutung): F H = (¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C) ≡ (A ∧ C → B) ∧ (A ∧ B → C) ∧ (A ∧ B ∧ C → 0) = A ∧ (¬A ∨ B) ∧ (¬A ∨ ¬C) ≡ (1 → A) ∧ (A → B) ∧ (A ∧ C → 0). Wir können eine KNF–Formel F = β1 ∧ . . . ∧ βn auch als Menge von Disjunktionen auffassen: F = { β1 , . . . , βn } Dann können wir für die Teilformeln βi ∈ F schreiben. Prof. Dr. Dietmar Seipel 75 Logik für Informatiker Wintersemester 2013/14 Interpretationen als Mengen von Atomen Eine Menge I von atomaren Formeln repräsentiert eine Interpretation I ′ von F : 1, falls A ∈ I I ′ (A) = 0, falls A ∈ /I Beispiel Die Menge I = { A, C } repräsentiert die folgende Interpretation: I′ A B C D 1 1 0 0 I ′ ist hier nur für eine Auswahl von Atomen, die uns interessieren, angegeben. Prof. Dr. Dietmar Seipel 76 Logik für Informatiker Wintersemester 2013/14 I verletzt eine Regel A1 ∧ . . . ∧ An → B, falls { A1 , . . . , An } ⊆ I und B 6∈ I. Die zugehörige Interpretation I ′ ist noch kein Modell der Regel, da sie den Regelrumpf erfüllt, nicht aber den Regelkopf. • Falls B = 0 ist (Integritätsbedingung), so kann I nicht zu einer Menge erweitert werden, die ein Modell der Regel repräsentiert. • Andernfalls repräsentiert die um das Atom B aus dem Regelkopf erweiterte Menge I ∪ { B } ein Modell der Regel. Beispiel Die obige Interpretation zu I = { A, C } verletzt die Regel A → B, da A ∈ I und B 6∈ I. I kann zu einem Modell I ∪ { B } = { A, B, C } erweitert werden. Prof. Dr. Dietmar Seipel 77 Logik für Informatiker Wintersemester 2013/14 Effizienter Erfüllbarkeitstest für Hornformeln F 1. Sei I die Menge aller Kopfatome B zu den Fakten (1 → B) ∈ F . 2. Solange sich I verändert: • Falls es eine verletzte Integritätsbedingung (A1 ∧ . . . ∧ An → 0) ∈ F gibt, so ist F unerfüllbar, und der Algorithmus kann stoppen. Wir setzen dann I = ▽. • Andernfalls fügen wir die Menge J aller atomaren Formeln B zu den verletzten Regeln (A1 ∧ . . . ∧ An → B) ∈ F zu I hinzu: I = I ∪ J. Falls am Ende I 6= ▽ gilt, so ist F ist erfüllbar, und I repräsentiert ein Modell I ′ von F . Prof. Dr. Dietmar Seipel 78 Logik für Informatiker Wintersemester 2013/14 Beispiel (Erfüllbarkeitstest) F = (¬A ∨ ¬B ∨ C) ∧ A ∧ D ∧ (¬D ∨ B) ∧ (¬C ∨ ¬E) ≡ (A ∧ B → C) ∧ (1 → A) ∧ (1 → D) ∧ (D → B) ∧ (C ∧ E → 0) Nach Schritt 1 erhalten wir wegen (1 → A), (1 → D) ∈ F : I0 = { A, D }. Nach i Durchläufen von Schritt 2: I1 = { A, D, B }, wegen (D → B) ∈ F, I2 = { A, D, B, C }, wegen (A ∧ B → C) ∈ F. Die Regel (C ∧ E → 0) feuert als einzige nicht, so daß am Ende I2 ein Modell I2′ von F repräsentiert: I2′ Prof. Dr. Dietmar Seipel A B C D E 1 1 1 0 1 79 Logik für Informatiker Wintersemester 2013/14 Eigenschaften des Erfüllbarkeitstests Zu jedem Zeitpunkt des Algorithmus gilt für die aktuelle Menge I: Für alle Atome A ∈ I und alle Modelle M von F gilt M (A) = 1 (falls es überhaupt Modelle M von F gibt). Beweis durch vollständige Induktion über die Anzahl N der Schleifendurchläufe: N = 0: Ist (1 → B) ∈ F , so muß offenbar M (B) = 1 gelten. N → N + 1: Seien A1 , . . . , An ∈ I nach N Schleifendurchläufen. Dann gilt nach Induktionsannahme für jedes Modell M von F : • Ist r = (A1 ∧ . . . ∧ An → B) ∈ F dann gilt auch M (B) = 1, sonst würde M 6|= r gelten. Also gilt auch für das im N + 1–ten Schleifendurchlauf zu I hinzukommende Atom B: M (B) = 1. • Ist r = (A1 ∧ . . . ∧ An → 0) ∈ F , dann gibt es kein Modell M für F , denn aus M (A1 ) = . . . = M (An ) = 1 folgt M 6|= r. Prof. Dr. Dietmar Seipel 80 Logik für Informatiker Wintersemester 2013/14 Falls der Algorithmus mit I 6= ▽ terminiert, so ist I ′ ein Modell für F , denn für alle Implikationen r ∈ F gilt I ′ |= r: • Fakt r = (1 → B): Nach Schritt 1 gilt B ∈ I und somit I ′ (B) = 1, d.h. I ′ |= r. • Integritätsbedingung r = (A1 ∧ . . . ∧ An → 0): Für mindesten ein i gilt Ai ∈ / I, sonst hätte der Algorithmus mit I = ▽ gestoppt. Deshalb gilt I ′ (A1 ∧ . . . ∧ An ) = 0, und somit I ′ |= r. • Regel r = (A1 ∧ . . . ∧ An → B): I ′ (A1 ∧ . . . ∧ An ) = 1 ist äquivalent zu A1 ∈ I, . . . , An ∈ I. Also ist B ∈ I, sonst würde Schritt 2 noch einmal ausgeführt. Dies ist wiederum gleichbedeutend mit I ′ (B) = 1. Also gilt I ′ |= r. Prof. Dr. Dietmar Seipel 81 Logik für Informatiker Wintersemester 2013/14 Minimale Modelle, kleinstes Modell Sei M eine Klauselmenge. 1. Ein Modell I ′ von M heißt minimal, falls die zugehörige Menge I = { A | I ′ (A) = 1 } von wahren Atomen minimal ist: d.h., es gibt kein anderes Modell J ′ von M mit J = { A | J ′ (A) = 1 } ( I. 2. Ein Modell I ′ von M heißt kleinstes Modell, falls für alle Modelle J ′ von M gilt: I ⊆ J. Wenn es ein kleinstes Modell gibt, so ist dieses eindeutig; außerdem ist es dann auch das einzige minimale Modell. Sei F eine Hornformel. 1. Bei Erfüllbarkeit berechnet der Test das kleinste Modell I ′ für F . Definiert man 0 < 1, so gilt I ′ (A) ≤ J ′ (A), für alle Atome A. 2. Falls der Algorithmus mit I = ▽ stoppt, so gibt es kein Modell für F . Prof. Dr. Dietmar Seipel 82 Logik für Informatiker Wintersemester 2013/14 {A, B} Beispiel (Minimale Modelle, kleinstes Modell) 1. Die Formel G = A∨B {A} {B} ∅ hat zwei minimale Modelle I1′ und I2′ mit den folgenden zugehörigen Mengen I1 = { A } und I2 = { B } von wahren Atomen. Also hat G kein kleinstes Modell, und somit gibt es keine zu G äquivalente Hornformel. Daneben hat G noch ein nicht–minimales Modell zu I3 = { A, B }. 2. Die erweiterte Formel H = (A ∨ B) ∧ ¬B ist dagegen äquivalent zur folgenden Hornformel: H ≡ A ∧ ¬B. Prof. Dr. Dietmar Seipel 83 Logik für Informatiker Wintersemester 2013/14 Terminierung Sei nF die Anzahl der atomaren Formeln in F . Da in jeder außer der letzten Iteration mindestens ein Atom zu I hinzukommen muß, stoppt der Erfüllbarkeitstest nach höchstens nF Iterationen. Satz (Korrektheit des Erfüllbarkeitstests) 1. Falls der Algorithmus mit I 6= ▽ terminiert, so repräsentiert die berechnete Menge I ein Modell für F, ja sogar das kleinste Modell für F , und F ist erfüllbar. 2. Falls der Algorithmus mit I = ▽ terminiert, so gibt es kein Modell für F , und F ist unerfüllbar. Prof. Dr. Dietmar Seipel 84 Logik für Informatiker Wintersemester 2013/14 Regeln, Fakten und Integritätsbedingungen 1. Regeln A1 ∧ . . . ∧ An → B mit n ≥ 1 und B 6= 0 dienen beim Erfüllbarkeitstest zu Erweiterung der Menge I von Atomen. 2. Hornformeln F ohne Fakten 1→B sind immer erfüllbar, und die berechnete Menge I ist leer: I = ∅, d.h., in I ′ sind alle Atome falsch. 3. Hornformeln F ohne Integritätsbedingungen A1 ∧ . . . ∧ An → 0 sind immer erfüllbar. Prof. Dr. Dietmar Seipel 85 Logik für Informatiker Wintersemester 2013/14 Exkurs: Logikprogrammierung Wenn wir in Hornformeln komplexere Atome zulassen, dann sind wir bei einem Spezialfall der Prädikatenlogik, nämlich der Logikprogrammierung. Die Regel grandparent(X , Z ) ← parent(X , Y ) ∧ parent(Y , Z ) entspricht der Konjunktion aller Instanzen parent(x , y) ∧ parent(y, z ) → grandparent(x , z ), bei denen die Variablen X, Y, Z durch Personen x, y, z ersetzt wurden. Ein Beispiel wäre die Instanz parent(’William’, ’Charles’) ∧ parent(’Charles’, ’Elizabeth’) → grandparent(’William’, ’Elizabeth’). Prof. Dr. Dietmar Seipel 86 Logik für Informatiker Wintersemester 2013/14 Zusammen mit den Fakten 1 → parent(’Elizabeth’, ’George’), 1 → parent(’Charles’, ’Elizabeth’), 1 → parent(’William’, ’Charles’), würde der Erfüllbarkeitstest folgende Mengen ableiten: I0 = { parent(’Elizabeth’, ’George’), parent(’Charles’, ’Elizabeth’), parent(’William’, ’Charles’) }, I1 = I0 ∪ { grandparent(’Charles’, ’George’), grandparent(’William’, ’Elizabeth’) }. Er würde bereits nach der ersten Iteration keine neuen Fakten mehr ableiten. Prof. Dr. Dietmar Seipel 87 Logik für Informatiker 1.4 Wintersemester 2013/14 Minimale Modelle für Klauselmengen Eine Klausel ist eine Disjunktion von Literalen. Aus der Definition der Implikation F → G ≡ ¬F ∨ G und den Regeln von De Morgan ergibt sich eine Implikationsschreibweise für Klauseln: ¬A1 ∨ . . . ∨ ¬An ∨ B1 ∨ . . . ∨ Bk ≡ ¬ (A1 ∧ . . . ∧ An ) ∨ (B1 ∨ . . . ∨ Bk ) ≡ A1 ∧ . . . ∧ An → B1 ∨ . . . ∨ Bk Unter der Annahme, daß auch die Disjunktion stärker bindet als die Implikation, können wir auch die Klammern um den Regelkopf B1 ∨ . . . ∨ Bk weglassen. Dann gilt außerdem: ¬A1 ∨ . . . ∨ ¬An ≡ ¬ (A1 ∧ . . . ∧ An ) ≡ A1 ∧ . . . ∧ An → 0 B1 ∨ . . . ∨ Bk ≡ 1 → B1 ∨ . . . ∨ Bk Prof. Dr. Dietmar Seipel 88 Logik für Informatiker Wintersemester 2013/14 Eine KNF–Formel β1 ∧ . . . ∧ βn kann somit als endliche Klauselmenge M = { β1 , . . . , βn } in Implikationsschreibweise aufgefaßt werden. 1. Man nennt Implikationen der Art A1 ∧ . . . ∧ An → B1 ∨ . . . ∨ Bk auch Regeln. 2. Regeln mit n = 0 Rumpfatomen nennen wir Fakten: 1 → B1 ∨ . . . ∨ Bk Falls M keine Fakten enthält, ist M immer erfüllbar, und M hat ein kleinstes Modell I ′ , in dem alle Atome falsch sind. 3. Regeln mit k = 0 Kopfatomen nennen wir Integritätsbedingungen: A1 ∧ . . . ∧ An → 0 M ist erfüllbar, falls es keine Integritätsbedingungen enthält. 1 ist die leere Konjunktion, und 0 ist die leere Disjunktion. Prof. Dr. Dietmar Seipel 89 Logik für Informatiker Wintersemester 2013/14 Beispiel (Modelle) 1. M = { c → a ∨ b } enthält keine Fakten. Somit hat M ein kleinstes Modell, in dem alle Atome falsch sind. 2. M = { 1 → a ∨ b } hat bekanntermaßen zwei minimale Modelle, nämlich zu den Mengen I1 = { a } und I2 = { b } von Atomen, sowie ein nicht–minimales Modell zu I3 = { a, b }. 3. M = { 1 → a, a → 0 } ist unerfüllbar. Wegen des Fakts 1 → a müßte eine Modell a wahr machen, was wegen der Integritätsbedingung a → 0 aber unmöglich ist. Für viele praktische Anwendungen ist man nur an den minimalen Modellen einer Klauselmenge interessiert. Prof. Dr. Dietmar Seipel 90 Logik für Informatiker Wintersemester 2013/14 Man kann den Erfüllbarkeitstest zu einem Algorithmus zur Bestimmung der minimalen Modelle einer endlichen Klauselmenge M erweitern. Der erweiterte Algorithmus arbeitet nicht mit einer einzigen Menge I von Atomen, sondern mit einer Menge I solcher Mengen von Atomen. Die Mengen I ∈ I werden nach folgender Schlußregel erweitert: { A1 , . . . , An } ⊆ I, (A1 ∧ . . . ∧ An → B1 ∨ . . . ∨ Bk ) ∈ M I ∪ { B1 }, . . . , I ∪ { Bk } Aus einer Menge I werden also k Mengen I ∪ { Bi }. A1 Die Menge I kann man als Baum veranschaulichen. ..? . An 1. Jeder Ast entspricht einer Menge I ∈ I. 2. Falls man alle Atome Ai auf dem Ast finden kann, so wird der Ast um eine Verzweigung erweitert. Prof. Dr. Dietmar Seipel B1 ... ^ Bk 91 Logik für Informatiker Wintersemester 2013/14 Beispiel (Berechnung der minimalen Modelle) Für die Klauselmenge M = { b1 → a, b2 → a, 1 → b1 ∨ b2 } erhalten wir die folgende Mengenfolge: I0 = { ∅ }, I1 = { { b1 }, { b2 } }, b1 ? a R b2 ? a In = { { a, b1 }, { a, b2 } }, für alle n ≥ 2. Zur Erweiterung von I = ∅ können nur Fakten verwendet werden. Zuerst wird I = ∅ wegen des Fakts 1 → b1 ∨ b2 um b1 bzw. b2 erweitert. Beide Erweiterungen können dann wegen der Regel bi → a jeweils um a erweitert werden. Prof. Dr. Dietmar Seipel 92 Logik für Informatiker Wintersemester 2013/14 Der gezeigte Baum T1 entspricht genau der Berechnung. T2 : T1 : b1 ? a R ? a b2 ? a b1 R b2 Der kompaktere Baum T2 repräsentiert ebenfalls die Resultatsmenge I2 = { { a, b1 }, { a, b2 } }, er spiegelt aber nicht die Berechnungsreihenfolge wider. Prof. Dr. Dietmar Seipel 93 Logik für Informatiker Wintersemester 2013/14 Definition (Regel: feuert, verletzt) Sei I eine Menge von Atomen. 1. Eine Regel A1 ∧ . . . ∧ An → B 1 ∨ . . . ∨ B k feuert unter I falls { A1 , . . . , An } ⊆ I. 2. I verletzt eine Regel A1 ∧ . . . ∧ An → B 1 ∨ . . . ∨ B k , falls { A1 , . . . , An } ⊆ I und { B1 , . . . , Bk } ∩ I = ∅. Falls I eine Regel verletzt, so ist die zugehörige Interpretation noch kein Modell dieser Regel, da sie den Rumpf erfüllt, nicht aber den Kopf. Wenn man I um eines der Kopfatome Bi erweitert, so verletzt I ∪ { Bi } die Regel nicht mehr. Prof. Dr. Dietmar Seipel 94 Logik für Informatiker Wintersemester 2013/14 Die Berechnung der minimalen Modelle einer Klauselmenge behandelt Fakten 1 → B1 ∨ . . . ∨ Bk nicht separat, sondern als Regeln A1 ∧ . . . ∧ An → B 1 ∨ . . . ∨ B k mit n = 0 Rumpfatomen. • Ein Fakt feuert unabhängig von I, da { A1 , . . . , An } = ∅ ⊆ I. • I verletzt ein Fakt, falls { B1 , . . . , Bk } ∩ I = ∅. Während wir beim Erfüllbarkeitstest mit den Kopfatomen der Fakten starten, kann die Berechnung nun mit I = { ∅ } starten. Am Anfang werden dann offensichtlich von I = ∅ genau die Fakten verletzt; diese feuern im ersten Erweiterungsschritt und erweitern I. Später müssen die Fakten – genau wie alle anderen Regeln, die schon gefeuert haben – nicht mehr berücksichtigt werden. Prof. Dr. Dietmar Seipel 95 Logik für Informatiker Wintersemester 2013/14 Die Berechnung startet mit I = { ∅ }, d.h. mit einer leeren Menge I in I. I wird schrittweise verändert durch Erweiterung bzw. Eliminierung seiner Elemente I ∈ I. Zur Erweiterung von I werden alle von I verletzten Regeln r1 , . . . , rm ∈ M herangezogen. Wenn wir aus jeder Regel ri ein Kopfatom Bi auswählen, dann repräsentiert die Erweiterung J = I ∪ { B1 , . . . , Bm } ein Modell dieser Regeln. Sei I M die Menge all dieser Erweiterungen J: I M = { I ∪ { B1 , . . . , Bm } | für alle 1 ≤ i ≤ m : Bi ist ein Atom aus dem Kopf von ri }. Falls I keine Regeln verletzt, so ist I M = { I }. Dann ersetzen wir I in I durch die Erweiterungen aus I M . Prof. Dr. Dietmar Seipel 96 Logik für Informatiker Wintersemester 2013/14 Beispiel (Berechnung der minimalen Modelle) Für die Klauselmenge M = { 1 → b, b → a1 ∨ a2 , b → c1 ∨ c2 } erhalten wir ∅M = { { b } }, { b }M = { { b, a1 , c1 }, { b, a1 , c2 }, { b, a2 , c1 }, { b, a2 , c2 } }, denn • I = ∅ verletzt nur das Fakt 1 → b, und • I = { b } verletzt die beiden Regeln b → a1 ∨ a2 und b → c1 ∨ c2 , so daß man 4 Erweiterungen J bilden kann. Prof. Dr. Dietmar Seipel 97 Logik für Informatiker Wintersemester 2013/14 Damit erhalten wir die folgende Mengenfolge: I0 = { ∅ }, ? b I1 = { { b } }, In = { { b, a1 , c1 }, a1 { b, a1 , c2 }, { b, a2 , c1 }, { b, a2 , c2 } }, für alle n ≥ 2. c1 ^ c2 R c1 a2 ^ c2 Zuerst wird I = ∅ wegen des Fakts 1 → b um b erweitert. Dann wird I = { b } aufgrund der verletzten Regeln b → a1 ∨ a2 und b → c1 ∨ c2 in einem Schritt zu 4 Mengen erweitert. Die Mengen I ∈ I2 verletzen keine Regeln mehr. Prof. Dr. Dietmar Seipel 98 Logik für Informatiker Wintersemester 2013/14 Für die Klauselmenge M = { 1 → a1 ∨ a2 , 1 → c 1 ∨ c 2 } erhalten wir ∅M = { { a1 , c1 }, { a1 , c2 }, { a2 , c1 }, { a2 , c2 } }. Da Fakten 1 → B1 ∨ . . . ∨ Bk spezielle Regeln A1 ∧ . . . ∧ An → B 1 ∨ . . . ∨ B k mit n = 0 Rumpfatomen sind, • verletzt I = ∅ beide Fakten in M , • so daß man 4 Erweiterungen J bilden kann. 1 steht für die leere Konjunktion, die in jeder Interpretation erfüllt ist. Prof. Dr. Dietmar Seipel 99 Logik für Informatiker Wintersemester 2013/14 Ein Berechnungsast zu I kann in zwei Fällen auch wieder absterben: 1. Falls eine Integritätsbedingung r ∈ M unter I verletzt ist, so stirbt der Ast ab. Da r dann eine Regel mit k = 0 Kopfatomen ist, kann man kein Kopfatom wählen, um r zu erfüllen. Also gilt I M = ∅. Wenn wir wieder I durch die Mengen aus I M ersetzen, dann wird I faktisch eliminiert. Dies entspricht der Setzung I = ▽ aus dem bekannten Erfüllbarkeitstest. 2. Wir wollen nur die minimalen Modelle berechnen. Deswegen kann man zusätzlich noch einen Ast absterben lassen, falls es einen anderen Ast zu einer kleineren Menge J ( I gibt. Wir sagen dann J subsumiert I. In beiden Fällen wird I aus I eliminiert. Prof. Dr. Dietmar Seipel 100 Logik für Informatiker Wintersemester 2013/14 Definition (min(I)) Sei I eine Menge von Mengen von Atomen. Dann enthält min(I) alle I ∈ I, für die es keine Menge J ∈ I, mit J ( I, gibt. Beispiel (Minimale Interpretationen) Für die Menge I = { { a, b }, { a, b, a2 }, { a, b, c2 }, { a2 , b, c2 } } gilt min(I) = { { a, b }, { a2 , b, c2 } }. Die beiden nicht–minimalen Mengen { a, b, a2 } und { a, b, c2 } werden von { a, b } subsumiert und somit eliminiert. Prof. Dr. Dietmar Seipel 101 Logik für Informatiker Wintersemester 2013/14 Beispiel (Berechnung der minimalen Modelle) 1. Für die Klauselmenge M = { a → c, 1 → a ∨ b, a ∧ c → 0 } erhalten wir die folgende Mengenfolge: I0 = { ∅ }, I1 = { { a }, { b } }, a ^ b I2 = { { a, c }, { b } }, In = { { b } }, für alle n ≥ 3. ? ⋆ c Der Ast zu { a, c } stirbt im dritten Schritt wegen der verletzten Integritätsbedingung a ∧ c → 0 ab. Prof. Dr. Dietmar Seipel 102 Logik für Informatiker Wintersemester 2013/14 2. Für die Klauselmenge ? b M = { 1 → b, b → a ∨ a2 , b → a ∨ c2 } erhalten wir die folgende Mengenfolge: a R a2 I0 = { ∅ }, I1 = { { b } }, a ^ ⋆ c2 a⋆ ^ c2 In = { { b, a }, { b, a2 , c2 } }, für alle n ≥ 2. Zuerst wird I = ∅ wegen des Fakts 1 → b um b erweitert. Dann wird I = { b } aufgrund der Regeln b → a1 ∨ a2 und b → c1 ∨ c2 in einem Schritt zu 4 Mengen erweitert. Das doppelte Atom a im linkesten Ast wird auf ein Atom reduziert. Die beiden nicht–minimalen Mengen { b, a, a2 } und { b, a, c2 } werden von { b, a } subsumiert und somit eliminiert. Prof. Dr. Dietmar Seipel 103 Logik für Informatiker Wintersemester 2013/14 3. Für die Klauselmenge M = { b → a, 1 → a ∨ b } erhalten wir die folgende Mengenfolge: I0 = { ∅ }, I1 = { { a }, { b } }, a ^ b ? a ⋆ In = { { a } }, für alle n ≥ 2. Die Erweiterung { a, b } wird von { a } subsumiert; sie ist deswegen nicht–minimal, und der entsprechende Ast stirbt ab. Prof. Dr. Dietmar Seipel 104 Logik für Informatiker Wintersemester 2013/14 Algorithmus zur Berechnung der minimalen Modelle Sei M eine Klauselmenge. 1. Sei I = { ∅ }. 2. Solange sich I verändert: • Ersetze zuerst alle I ∈ I durch ihre Erweiterungen aus I M : S I 7→ I∈I I M . Falls I eine Integritätsbedingung aus M verletzt, so wird I ersatzlos eliminiert, denn I M = ∅. • Eliminiere dann nicht–minimale Mengen aus I: I 7→ min(I). Am Ende repräsentiert I die Menge der minimalen Modelle von M . Prof. Dr. Dietmar Seipel 105 Logik für Informatiker Wintersemester 2013/14 Beispiel (Berechnung der minimalen Modelle) Für die Klauselmenge M = { a → c, 1 → a ∨ b, a → c1 ∨ c2 , b → d } erhalten wir die folgenden Mengen und Modellbäume: I0 = { ∅ }, I1 = { { a }, { b } }, In = { { a, c, c1 }, { a, c, c2 }, { b, d } }, für alle n ≥ 2. · · · a ^ a b ? c c1 Prof. Dr. Dietmar Seipel ^ b ? d ^ c2 106 Logik für Informatiker Wintersemester 2013/14 Wir wollen uns den Fall I 7→ ansehen. S M I für I = I1 nochmals genauer I∈I Für die Klauselmenge M = { a → c, 1 → a ∨ b, a → c1 ∨ c2 , b → d } und die Menge I = { { a }, { b } } von Interpretationen gilt |{z} |{z} I1 I2 I1M = { a }M = { { a, c, c1 }, { a, c, c2 } }, I2M = { b }M = { { b, d } }. I1 verletzt die Regeln a → c und a → c1 ∨ c2 . I2 verletzt die Regel b → d. Also erhalten wir S I 7→ I∈I I M = I1M ∪ I2M = { { a, c, c1 }, { a, c, c2 }, { b, d } }. Es gilt in diesem Fall min(I) = I. Prof. Dr. Dietmar Seipel 107 Logik für Informatiker Wintersemester 2013/14 Der Algorithmus terminiert, da eine verletzte Regel in jedem Berechnungsast nur einmal zur Erweiterung herangezogen werden kann. Satz (Minimale Modelle einer Klauselmenge) Sei M eine endliche Klauselmenge. 1. Die berechnete Menge I repräsentiert die minimalen Modelle von M . 2. Falls der Algorithmus mit I = ∅ terminiert, so gibt es kein Modell für M , und M ist somit unerfüllbar. Für erfüllbare Hornformeln wird das kleinste Modell berechnet. Auch dieser Algorithmus terminiert nach höchstens nM Iterationen, wenn nM die Anzahl der atomaren Formeln in M ist, denn es muß in jeder außer der letzten Iteration mindestens ein Atom zu einem Ast hinzukommen. Prof. Dr. Dietmar Seipel 108 Logik für Informatiker Wintersemester 2013/14 1.5 Der Endlichkeitssatz (Kompaktheitssatz) Satz (Endlichkeit, Kompaktheit) Eine Formelmenge M ist genau dann erfüllbar, wenn jede endliche Teilmenge von M erfüllbar ist. Beweis: 1. Ein Modell für M ist offensichtlich auch ein Modell für jede Teilmenge von M . 2. Nehmen wir also an, daß jede endliche Teilmenge von M erfüllbar ist, also ein Modell besitzt. Wir betrachten nun die speziellen Teilmengen Mn von M , welche genau die Formeln F ∈ M enthalten, die nur die atomaren Formeln A1 , . . . , An enthalten. Prof. Dr. Dietmar Seipel 109 Logik für Informatiker Wintersemester 2013/14 Dann gilt offenbar: M1 ⊆ M2 ⊆ . . . ⊆ Mn ⊆ M. M0 M1 ... Mn M Die Mengen Mn können i.a. unendlich groß sein. Falls M unendlich viele Atome enthält, dann gibt es kein n mit Mn = M . Prof. Dr. Dietmar Seipel 110 Logik für Informatiker Wintersemester 2013/14 Für die endliche Formelmenge M = { a ∨ b, ¬a ∨ c, ¬b ∨ d, ¬a ∨ c1 ∨ c2 } und die Reihenfolge (A1 , . . . , A6 ) = (a, b, c, d, c1 , c2 ) erhalten wir M1 = ∅, M2 = { a ∨ b }, M3 = { a ∨ b, ¬a ∨ c }, M4 = { a ∨ b, ¬a ∨ c, ¬b ∨ d }, M5 = M4 , M6 = { a ∨ b, ¬a ∨ c, ¬b ∨ d, ¬a ∨ c1 ∨ c2 } = M. Prof. Dr. Dietmar Seipel 111 Logik für Informatiker Wintersemester 2013/14 Da alle Formeln F ∈ Mn aber nur n Atome enthalten können, n gibt es nur maximal 22 grundsätzlich verschiedene Formeln F1 , . . . , Fk ∈ Mn . 2n Denn es gibt genau k = 2 verschiedene Wahrheitswertetafeln: • jede Tafel hat 2n Zeilen, und • jede Auswahl einer Teilmenge von Zeilen mit der Belegung 1 (alle anderen Zeilen haben dann die Belegung 0) ergibt eine andere Tafel. Jede Formel F ∈ Mn ist also äquivalent zu einer der Formeln Fi : F ≡ Fi . Prof. Dr. Dietmar Seipel 112 Logik für Informatiker Wintersemester 2013/14 Deshalb ist jedes Modell für Mn′ = {F1 , . . . , Fk } auch ein Modell für Mn . Da Mn′ endlich ist, besitzt Mn nach Voraussetzung ein Modell In . Beispiel: A1 A2 A3 I1 0 ... ... I2 0 1 ... I3 .. . 1 .. . 0 .. . 1 .. . Wegen Mi ⊆ Mn , für alle 1 ≤ i ≤ n, ist In auch ein Modell für Mi : In |= Mi , für alle 1 ≤ i ≤ n. Prof. Dr. Dietmar Seipel 113 Logik für Informatiker Wintersemester 2013/14 Für die endliche Formelmenge M = { a ∨ b, ¬a ∨ c, ¬b ∨ d, ¬a ∨ c1 ∨ c2 } könnte man folgendes erhalten: a b c d c1 I1 0 I2 0 1 I3 1 0 1 I4 1 0 1 0 I5 1 0 1 0 0 I6 1 0 1 0 1 c2 0 Die fehlenden Einträge der Tabelle können beliebig sein. Prof. Dr. Dietmar Seipel 114 Logik für Informatiker Wintersemester 2013/14 Für die endliche Formelmenge N = { a ∨ b, a ∨ c, a ∨ ¬c } könnte man folgendes erhalten: a b I1 0 I2 0 1 I3 1 0 c 1 Die fehlenden Einträge der Tabelle können beliebig sein. Das Modell I2 von N2 = { a ∨ b } ist kein Modell von N3 = N . Aus a ∨ c und a ∨ ¬c folgt I3 (a) = 1. Also muß man beim Übergang von I2 zu I3 den Wahrheitswert von a von 0 auf 1 ändern. Aber I3 ist ein Modell von N2 . Prof. Dr. Dietmar Seipel 115 Logik für Informatiker Wintersemester 2013/14 Wir wollen nun aus den Modellen In der Mn ein Modell I für M konstruieren. Dazu definieren wir stufenweise die Wahrheitswerte I(An ) der Atome An . Dazu benötigen wir folgende Indexmengen: n = 0: J0 = IN+ = {1, 2, . . . }, n − 1 → n: Sei 1 = { j ∈ Jn−1 | Ij (An ) = 1 }, Jn−1 0 Jn−1 = { j ∈ Jn−1 | Ij (An ) = 0 }. Dann setzen wir J 1 , n−1 Jn = J 0 , n−1 Prof. Dr. Dietmar Seipel 1 falls Jn−1 unendlich sonst 116 Logik für Informatiker Wintersemester 2013/14 Wenn wir z.B. die fehlenden Tabelleneinträge auf 0 und In = I6 , für n ≥ 6, setzen, dann erhalten wir folgende Mengen Jn : a b c d c1 c2 I1 0 0 0 0 0 0 I2 0 1 0 0 0 0 I3 1 0 1 0 0 0 I4 1 0 1 0 0 0 I5 1 0 1 0 0 0 I6 1 0 1 0 1 0 Jn = { 3, . . . }, für 1 ≤ n ≤ 4, Jn = { 6, . . . }, für 5 ≤ n. Auf den ersten 4 Atomen sind alle Interpretationen In ab n = 3 gleich, auf den weiteren Atomen erst ab n = 6. Prof. Dr. Dietmar Seipel 117 Logik für Informatiker Wintersemester 2013/14 Offenbar gilt J0 ⊇ J1 ⊇ . . . ⊇ Jn . Per Induktion nach n zeigt man, daß alle Indexmengen Jn unendlich sind, denn • J0 ist unendlich, und 1 0 • es muß immer mindestens eine der beiden Mengen Jn−1 oder Jn−1 unendlich sein. Für alle Ij mit j ∈ Jn hat An denselben Wahrheitswert: Ij (An ) = V ∈ {0, 1}, für alle j ∈ Jn , und wir setzen I(An ) = V. Prof. Dr. Dietmar Seipel 118 Logik für Informatiker Wintersemester 2013/14 Wir wollen nun zeigen, daß I ein Modell von M ist. Sei also F ∈ M eine beliebige Formel. Dann gilt F ∈ Mn , für ein n ∈ IN+ , denn in F können nur endlich viele Atome Ai1 , . . . , Ail , mit 1 ≤ i1 < i2 < . . . < il ≤ n, vorkommen. Aus Mn ⊆ Mi , für alle i ≥ n, folgt nun F ∈ Mi . Deshalb ist jede Interpretation Ii , mit i ≥ n, auch ein Modell für F . Da Jn unendlich ist, gibt es einen Index i ∈ Jn , mit i ≥ n. Für diesen Index i gilt: Ii (A1 ) = I(A1 ), . . . , Ii (An ) = I(An ). Denn der Index i liegt in Jn , und damit auch in allen Jm , mit 0 ≤ m ≤ n, und es gilt i ∈ Jm ⇒ Ii (Am ) = I(Am ). Deshalb ist I natürlich auch ein Modell für F , da I auf allen relevanten Atomen A1 , . . . , An mit Ii übereinstimmt. Prof. Dr. Dietmar Seipel 119 Logik für Informatiker Wintersemester 2013/14 Der Endlichkeitssatz gilt nur für Formelmengen M , in denen alle Formeln F ∈ M endlich sind. Sei zum Beispiel F0 = A1 ∨ A2 ∨ . . . = W∞ n=1 An die unendliche Disjunktion der Atome Ai , und Fn = ¬An , für n ∈ IN+ . Dann hat die Formelmenge M = { Fn | n ∈ IN0 } kein Modell, obwohl jede endliche Teilmenge M ′ ⊆ M ein Modell besitzt. Prof. Dr. Dietmar Seipel 120 Logik für Informatiker Wintersemester 2013/14 Die komplette Menge M hat kein Modell I, da • wegen F0 mindestens ein Atom An in I wahr sein müsste und • wegen der Formeln Fn , mit n ∈ IN+ , aber alle Atome An in I falsch sein müssten. Es müßte also gelten: (∃n ∈ IN+ I(An ) = 1) ∧ (∀n ∈ IN+ I(An ) = 0). Für eine endliche Teilmenge M ′ ⊆ M kann man aber ein Modell I angeben. Es gibt es einen Index n ∈ IN+ , mit Fm 6∈ M ′ , für alle m > n. • Wir setzen I(Am ) = 0, für m ≤ n, und erfüllen damit die Formeln Fm , mit 1 ≤ m ≤ n, und • wir setzen I(Am ) = 1, für m > n, und erfüllen damit die Formel F0 . Damit ist I ein Modell für M ′ . Prof. Dr. Dietmar Seipel 121 Logik für Informatiker Wintersemester 2013/14 Hier hat sogar jede echte Teilmenge M ′ ( M ein Modell. Wir setzen • I(An ) = 0, für alle n ∈ IN+ , mit Fn ∈ M ′ , und • I(An ) = 1, für alle n ∈ IN+ , mit Fn 6∈ M ′ . Dann erfüllt I alle Formeln Fn , mit n ∈ IN+ und Fn ∈ M ′ . • Falls F0 6∈ M ′ , so erfüllt I auch M ′ . • Falls F0 ∈ M ′ , so muß es wegen M ′ ( M eine Formel Fn geben, mit n ∈ IN+ und Fn 6∈ M ′ . Dann ist I(An ) = 1, und somit erfüllt I auch F0 . Also erfüllt I auch wieder M ′ . Prof. Dr. Dietmar Seipel 122 Logik für Informatiker Wintersemester 2013/14 Eine alternative Beweisidee für den Endlichkeitssatz baut auf dem Erfüllbarkeits–Algorithmus auf. Wir starten mit einem leeren Berechnungsbaum, und wir verwenden sukzessive die endlichen Klauselmengen Mn′ zur Erweiterung. • Falls irgendwann alle Äste abgestorben sind, so ist Mn′ unerfüllbar. • Andernfalls bleibt immer mindestens ein Ast am Leben. Wir können dann wie folgt einen Ast finden, der nicht abstirbt: • Wir starten in der Wurzel des Berechnungsbaums. • Wir folgen einem Ast, dessen Teilbaum nicht komplett abstirbt. Auf diese Weise finden wir eine Menge I von Atomen, so daß die zugehörige Interpretation I ′ ein Modell für M ist. Prof. Dr. Dietmar Seipel 123 Logik für Informatiker Wintersemester 2013/14 1.6 Resolution Ein Klausel K ist eine Disjunktion von Literalen: K = L1 ∨ . . . ∨ Ln . Die Reihenfolge der Literale in K ist unerheblich; wir können K auch als Menge { L1 , . . . , Ln } von Literalen ansehen. Deswegen schreiben wir Li ∈ K, für 1 ≤ i ≤ n, und wir bezeichnen mit K\Li = L1 ∨ . . . ∨ Li−1 ∨ Li+1 ∨ . . . ∨ Ln die Klausel, welche man aus K durch Weglassen von Li erhält. Eine endliche Klauselmenge M entspricht einer Formel F in KNF: F = (L1,1 ∨ . . . ∨ L1,n1 ) ∧ . . . ∧ (Lm,1 ∨ . . . ∨ Lm,nm ). Prof. Dr. Dietmar Seipel 124 Logik für Informatiker Wintersemester 2013/14 Definition (Resolvente) Seien K1 und K2 Klauseln mit A ∈ K1 und ¬A ∈ K2 , für ein Atom A. Dann heißt K = (K1 \A) ∨ (K2 \¬A) eine Resolvente von K1 und K2 nach A. K1 K2 U K Spezialfall Für K1 = A ∨ K und K2 = ¬A ∨ K erhalten wir die Resolvente (K1 \A) ∨ (K2 \¬A) = K ∨ K = K. Prof. Dr. Dietmar Seipel 125 Logik für Informatiker Wintersemester 2013/14 Beispiel (Resolvente) Für die beiden Klauseln K1 = A ∨ B ∨ C, K2 = ¬A ∨ B ∨ ¬D A∨B∨C ¬A ∨ B ∨ ¬D gilt K1 \ A = B∨C R B ∨ C ∨ ¬D K2 \ ¬A = B ∨ ¬D, und wir erhalten die Resolvente K = B ∨ C ∨ ¬D. Nur wenn eine Klausel K ein Atom A und dessen Negation ¬A enthält (z.B. K = A ∨ B ∨ ¬A), dann kann man sie mit sich selbst resolvieren: K1 = K2 = K. Dann ist K eine Tautologie, und die Resolvente ist wieder K. Prof. Dr. Dietmar Seipel 126 Logik für Informatiker Wintersemester 2013/14 Beispiel (Resolvente) Die beiden möglichen Resolventen aus K1 = A ∨ ¬B ∨ C und K2 = B ∨ ¬C sind Tautologien: A ∨ ¬B ∨ C B ∨ ¬C R A ∨ C ∨ ¬C A ∨ ¬B ∨ C B ∨ ¬C R A ∨ ¬B ∨ B ¬A A R 2 Wir bezeichnen hier die leere Disjunktion 2D kurz mit 2. Prof. Dr. Dietmar Seipel 127 Logik für Informatiker Wintersemester 2013/14 Resolutionslemma Sei M ein Klauselmenge und K1 , K2 ∈ M . Ist K eine Resolvente von K1 und K2 (nach einem Atom A), so sind M und M ∪ {K} äquivalent: M ≡ M ∪ {K}. Beweis: Sei I eine zu M – und damit auch zu M ∪ {K} – passende Interpretation. Falls I |= M ∪ {K}, dann gilt natürlich auch I |= M . Also nehmen wir nun I |= M an. Sei K1 = A ∨ K1′ und K2 = ¬A ∨ K2′ . Dann gilt K = K1′ ∨ K2′ . • Falls I |= A, so folgt aus I |= K2 auch I |= K2′ . • Falls I |= ¬A, so folgt aus I |= K1 auch I |= K1′ . Also gilt in beiden Fällen I |= K1′ ∨ K2′ = K. Deshalb gilt I |= M ∪ {K}. Prof. Dr. Dietmar Seipel 128 Logik für Informatiker Wintersemester 2013/14 Definition (Resolutionsmengen) Sei M eine Klauselmenge. Res(M ) = M ∪ { K | K ist eine Resolvente zweier Klauseln K1 , K2 ∈ M }. Ferner definieren wir: Res 0 (M ) = M, Res n+1 (M ) = Res(Res n (M )), für n ≥ 0, S ∗ Res (M ) = n≥0 Res n (M ). Offensichtlich gilt die sogenannte Monotonie–Eigenschaft: M ⊆ M ′ ⇒ Res(M ) ⊆ Res(M ′ ). Prof. Dr. Dietmar Seipel 129 Logik für Informatiker Wintersemester 2013/14 Beispiel (Resolutionsmengen) Für die Klauselmenge M = { c ∨ ¬a, a ∨ b, c1 ∨ c2 ∨ ¬a, d ∨ ¬b } erhalten wir die folgenden Resolutionsmengen: Res 0 (M ) = M, Res 1 (M ) = M ∪ { b ∨ c, b ∨ c1 ∨ c2 , a ∨ d }, Res 2 (M ) = Res 1 (M ) ∪ { c ∨ d, c1 ∨ c2 ∨ d }, Res 3 (M ) = Res 2 (M ). 1. Iteration: • Aus c ∨ ¬a und a ∨ b erhalten wir b ∨ c. • Aus a ∨ b und c1 ∨ c2 ∨ ¬a erhalten wir b ∨ c1 ∨ c2 . • Aus a ∨ b und d ∨ ¬b erhalten wir a ∨ d. Prof. Dr. Dietmar Seipel 130 Logik für Informatiker Wintersemester 2013/14 c ∨ d kann redundant auf zwei unterschiedlichen Wegen abgeleitet werden: c ∨ ¬a U b∨c a∨b d ∨ ¬b U c∨d a∨b c ∨ ¬a d ∨ ¬b U a∨d U c∨d In diesem Fall sind die verwendeten Klauseln aus M (an den Blättern des Baumes) jeweils dieselben. Nur die inneren Knoten der Bäume sind anders. Prof. Dr. Dietmar Seipel 131 Logik für Informatiker Wintersemester 2013/14 2. Iteration: • Aus c ∨ ¬a und a ∨ d erhalten wir c ∨ d. • Aus c1 ∨ c2 ∨ ¬a und a ∨ d erhalten wir c1 ∨ c2 ∨ d. • Aus d ∨ ¬b und b ∨ c erhalten wir ebenfalls c ∨ d. • Aus d ∨ ¬b und b ∨ c1 ∨ c2 erhalten wir ebenfalls c1 ∨ c2 ∨ d. Sowohl c ∨ d als auch c1 ∨ c2 ∨ d werden also redundant auf zwei unterschiedlichen Wegen abgeleitet. In der Praxis versucht man redundante Ableitungen möglichst zu vermeiden. Prof. Dr. Dietmar Seipel 132 Logik für Informatiker Wintersemester 2013/14 Für die Klauselmenge M = { p ∨ q, ¬p ∨ ¬q, p ∨ ¬q, ¬p ∨ q } erhalten wir die folgenden Resolutionsmengen: Res 0 (M ) = M, Res 1 (M ) = M ∪ { p, q, ¬p, ¬q, p ∨ ¬p, q ∨ ¬q }, Res 2 (M ) = Res 1 (M ) ∪ { 2 }, Res 3 (M ) = Res 2 (M ). Aus ¬p ∨ ¬q und p ∨ ¬q erhalten wir z.B. die Resolvente ¬q. In Iteration 2 kann die leere Klausel 2 kann auf zwei unterschiedlichen Wegen abgeleitet werden: • aus p und ¬p und • aus q und ¬q. Prof. Dr. Dietmar Seipel 133 Logik für Informatiker Wintersemester 2013/14 Man kann zeigen: M = Res 0 (M ) ⊆ Res 1 (M ) ⊆ . . . ⊆ Res n (M ) ⊆ Res ∗ (M ). Außerdem gilt: M ≡ Res n (M ) ≡ Res ∗ (M ), für alle n ∈ IN0 , und wegen Res 0 (M ) ⊆ Res 1 (M ) auch S S Res ∗ (Res(M )) = n≥1 Res n (M ) = n≥0 Res n (M ) = Res ∗ (M ). Resolutionssatz der Aussagenlogik (Widerlegungsvollständigkeit) Eine Klauselmenge M ist genau dann unerfüllbar, wenn 2 ∈ Res ∗ (M ). Beweis: Korrektheit: Angenommen 2 ∈ Res ∗ (M ). Dann ist Res ∗ (M ) unerfüllbar, und wegen M ≡ Res ∗ (M ) ist auch M unerfüllbar. Prof. Dr. Dietmar Seipel 134 Logik für Informatiker Wintersemester 2013/14 Vollständigkeit: Angenommen M ist unerfüllbar. Aufgrund des Endlichkeitstatzes gibt es bereits eine endliche Teilmenge M ′ ⊆ M , welche unerfüllbar ist. Wir können zusätzlich voraussetzen, daß M ′ keine Tautologien der Form A ∨ ¬A ∨ C enthält. Seien A1 , . . . , An alle in M ′ vorkommenden Atome. Wir zeigen nun per Induktion nach n, daß 2 ∈ Res ∗ (M ). n = 0: Da M ′ = ∅ erfüllbar ist, gilt M ′ = {2} und somit 2 ∈ M ′ ⊆ Res ∗ (M ′ ) ⊆ Res ∗ (M ). n → n + 1: Wir resolvieren Klauselpaare K1 ∨ An+1 und K2 ∨ ¬An+1 aus M ′ nach An+1 und setzen: M1 = { K1 | K1 ∨ An+1 ∈ M ′ }, M2 = { K2 | K2 ∨ ¬An+1 ∈ M ′ }. Prof. Dr. Dietmar Seipel 135 Logik für Informatiker Wintersemester 2013/14 Sei ferner M3 = { K3 ∈ M ′ | An+1 kommt nicht in K3 vor } die Menge aller Klauseln aus M ′ , in denen An+1 werder positiv als An+1 noch negativ als ¬An+1 vorkommt. Dann gilt M ′′ = (M1 ∨ M2 ) ∪ M3 ⊆ Res(M ′ ), wobei M1 ∨ M2 = { K1 ∨ K2 | K1 ∈ M1 , K2 ∈ M2 }. Die Menge M ′′ enthält nur Formeln über A1 , . . . , An . Angenommen M ′′ ist erfüllbar mit einem Modell I. • Angenommen I 6|= M1 und I 6|= M2 . Dann gibt es K1 ∈ M1 und K2 ∈ M2 mit I 6|= K1 und I 6|= K2 , und somit I 6|= K1 ∨ K2 ∈ M1 ∨ M2 ⊆ M ′′ , ein Widerspruch. • Also gilt I |= M1 oder I |= M2 (oder beides). Prof. Dr. Dietmar Seipel 136 Logik für Informatiker Wintersemester 2013/14 Wir zeigen: wenn M ′ unerfüllbar ist, dann ist auch M ′′ unerfüllbar. M′ ≡ M M1 ? R M2 M3 N ? M = (M1 ∨ M2 ) ∪ M3 ⊆ Res(M ′ ) ′′ M ′ = ({An+1 } ∨ M1 ) ∪ ({¬An+1 } ∨ M2 ) ∪ M3 Wenn M ′ die Atome A1 , . . . , An+1 enthält, dann kann M ′′ nur noch die Atome A1 , . . . , An enthalten. Prof. Dr. Dietmar Seipel 137 Logik für Informatiker Wintersemester 2013/14 Wir konstruieren nun ein Modell I ′ für M ′ : M ′ = ({An+1 } ∨ M1 ) ∪ ({¬An+1 } ∨ M2 ) ∪ M3 . 1. Falls I |= M1 , so setzen wir: I(B), falls B ∈ {A , . . . A } 1 n I ′ (B) = 0, falls B = An+1 • Wegen I |= M1 gilt I ′ |= {An+1 } ∨ M1 . • Wegen I ′ |= ¬An+1 gilt auch I ′ |= {¬An+1 } ∨ M2 . 2. Falls I |= M2 , so setzen wir: I(B), falls B ∈ {A , . . . , A } 1 n I ′ (B) = 1, falls B = An+1 • Wegen I |= An+1 gilt I ′ |= {An+1 } ∨ M1 . • Wegen I ′ |= M2 gilt auch I ′ |= {¬An+1 } ∨ M2 . In beiden Fällen gilt wegen I |= M3 auch I ′ |= M3 . Prof. Dr. Dietmar Seipel 138 Logik für Informatiker Wintersemester 2013/14 Also gilt in beiden Fällen I ′ |= M ′ , im Widerspruch zu der Annahme, daß M ′ unerfüllbar ist. Also haben wir gezeigt, daß M ′′ unerfüllbar ist. Da M ′′ nur noch die n Atome A1 , . . . , An enthalten kann, gilt somit nach Induktionsannahme 2 ∈ Res ∗ (M ′′ ). Wegen Res ∗ (M ′′ ) ⊆ Res ∗ (Res(M ′ )) = Res ∗ (M ′ ) ⊆ Res ∗ (M ), gilt nun also 2 ∈ Res ∗ (M ). Prof. Dr. Dietmar Seipel 139 Logik für Informatiker Wintersemester 2013/14 Die Konstruktion aus dem Beweis zum Resolutionssatz funktioniert für beliebige Klauselmengen M und Atome A: M1 = { K1 | K1 ∨ A ∈ M }, M2 = { K2 | K2 ∨ ¬A ∈ M }, M3 = { K3 ∈ M | A kommt nicht in K3 vor }. Die Transformation M 7→ M ′′ = (M1 ∨ M2 ) ∪ M3 erhält die Widerlegungseingenschaften: M ist unerfüllbar ⇔ 2 ∈ Res ∗ (M ) ⇔ M ′′ ist unerfüllbar ⇔ 2 ∈ Res ∗ (M ′′ ) M ′′ enthält das Atom A nicht mehr. Prof. Dr. Dietmar Seipel 140 Logik für Informatiker Wintersemester 2013/14 Beispiel (Transformation) Aus der Klauselmenge M = { p ∨ q, ¬p ∨ ¬q, p ∨ ¬q, ¬p ∨ q } erhalten wir für das Atom A = p: M1 = { q, ¬q } = M2 , M3 = ∅, M ′′ = M1 ∨ M2 = { q ∨ ¬q, q, ¬q } ≡ { q, ¬q }. Tautologien – wie q ∨ ¬q – kann man frühzeitig aus der weiteren Betrachtung ausschließen. Die nochmalige Transformation für das Atom A = q erzeugt aus M ′′ nun M ′′′′ = { 2 }. Also ist M unerfüllbar. Prof. Dr. Dietmar Seipel 141 Logik für Informatiker Wintersemester 2013/14 Definition (Deduktion) Eine Deduktion (Herleitung, Beweis) einer Klausel K aus einer Klauselmenge M ist eine Folge K1 , K2 , . . . , Km von Klauseln, mit Km = K, und ∀ 1 ≤ i ≤ m: • Ki ∈ M oder • Ki ist die Resolvente aus zwei Klauseln Ki1 und Ki2 , mit 1 ≤ i1 ≤ i2 ≤ i − 1. Eine Klauselmenge M ist genau dann unerfüllbar, wenn eine Deduktion der leeren Klausel K = 2 aus M existiert. Prof. Dr. Dietmar Seipel 142 Logik für Informatiker Wintersemester 2013/14 Beispiel (Deduktion) Für die Klauselmenge M = { c ∨ ¬a, a ∨ b, c1 ∨ c2 ∨ ¬a, d ∨ ¬b } erhalten wir z.B. die folgende Deduktion K1 , . . . , K5 von K = c ∨ d: K1 = c ∨ ¬a K2 = a ∨ b U K3 = b ∨ c K4 = d ∨ ¬b U K5 = c ∨ d Prof. Dr. Dietmar Seipel 143 Logik für Informatiker Wintersemester 2013/14 Beispiel (Deduktion) M = { p ∨ q, ¬p ∨ ¬q, p ∨ ¬q, ¬p ∨ q }. Deduktion: K1 = p ∨ q, Resolutionsgraph: K1 K2 K4 K5 K2 = p ∨ ¬q, K3 = p, K4 = ¬p ∨ ¬q, N K3 N K6 K5 = ¬p ∨ q, K6 = ¬p, K7 = 2. Prof. Dr. Dietmar Seipel R K7 = 2 144 Logik für Informatiker Wintersemester 2013/14 Definition (Lineare Deduktion) Eine lineare Deduktion (Herleitung, Beweis) einer Klausel K aus einer Klauselmenge M ist eine Folge K1 , K2 , . . . , K2·m+1 ungerader Länge von Klauseln, mit K2·m+1 = K und • K1 ∈ M und • ∀ 1 ≤ i ≤ m: K2·i+1 ist eine Resolvente aus K2·i−1 und einer Klausel K2·i ∈ M . K1 und die Klauseln K2·i mit geradem Index sind also alle in M , die anderen Klauseln K2·i+1 mit ungeradem Index sind Resolventen. Prof. Dr. Dietmar Seipel 145 Logik für Informatiker Wintersemester 2013/14 K1 ∈ M K2 ∈ M ? K3 ? K2·i−1 K2·i ∈ M ? K2·i+1 ? K2·m−1 K2·m ∈ M ? K2·m+1 Prof. Dr. Dietmar Seipel 146 Logik für Informatiker Wintersemester 2013/14 Beispiel (Lineare Deduktion) 1. Für die Horn–Klauselmenge M = { c ∨ ¬a, a ∨ b, c1 ∨ c2 ∨ ¬a, d ∨ ¬b } haben wir bereits eine lineare Deduktion K1 , . . . , K5 von K = c ∨ d gesehen. 2. Man kann zeigen, daß es für die Nicht–Horn–Klauselmenge M = { p ∨ q, ¬p ∨ ¬q, p ∨ ¬q, ¬p ∨ q } keine lineare Deduktion der leeren Klausel K = 2 gibt. Die oben angegebene Deduktion von K = 2 war nicht linear. Prof. Dr. Dietmar Seipel 147 Logik für Informatiker Wintersemester 2013/14 Aus dem Erfüllbarkeitstest für Horn–Klauselmengen folgt: Für alle unerfüllbaren Horn–Klauselmengen M gibt es eine lineare Deduktion K1 , K2 , . . . , K2·m+1 der leeren Klausel K = 2, die mit einer Integritätsbedingung K1 ∈ M beginnt. Für diese Deduktion gilt dann: • Auch alle anderen Klauseln K2·i+1 mit ungeradem Index sind Integritätsbedingungen. • Alle Klauseln K2·i mit geradem Index sind Regeln (einschließlich der Fakten) aus M mit einem positiven Atom, dem Kopfatom. Auch die leere Klausel K = 2 kann man als Integritätsbedingung ansehen, da sie keine positiven Atome enthält. Prof. Dr. Dietmar Seipel 148 Logik für Informatiker Wintersemester 2013/14 Beispiel (Lineare Deduktion) Für die unerfüllbare Horn–Klauselmenge M = { a, b, ¬a ∨ ¬b } gibt es z.B. die folgende lineare Deduktion von K = 2: K1 = ¬a ∨ ¬b K2 = a ? K3 = ¬b K4 = b ? K5 = 2 Prof. Dr. Dietmar Seipel 149