Theoretische Informatik II Vorlesung mit Übungen im SS 2005 Vorlesung: Dienstag 8 - 10 Uhr, Raum 1332 WA Donnerstag 9 - 10 Uhr, Raum 1332 WA Beginn: Dienstag, den 12.04.2003, 815 Uhr. Übungen in 3 Gruppen: Grp. 1: Donnerstag 10 - 11 Uhr, Raum -1319 WA Grp. 2: ” 10 - 11 Uhr, Raum -1607 WA Grp. 3: Montag 10 - 11 Uhr, Raum -1319 WA Ergänzendes Tutorium: Grp. 1: Donnerstag 11 - 12 Uhr, Raum -1319 WA Grp. 2: ” 11 - 12 Uhr, Raum -1607 WA Grp. 3: Montag 11 - 12 Uhr, Raum -1319 WA Homepage: http://www.theory.informatik.uni-kassel.de/ veranstaltungen/theoInf2SS2005/index.html Abschlussklausur: Freitag, den 22. Juli 2005, 1000 - 1300 Uhr in Raum 1603 WA Literatur: Buch zur Vorlesung: Uwe Schöning, Logik für Informatiker. Spektrum Akademischer Verlag, Heidelberg/Berlin, 5. Auflage, 2000. Ergänzende Literatur: B. Heinemann, K. Weihrauch; Logik für Informatiker. Eine Einführung. Teubner Verlag, 1992. H. Hamburger, D. Richards; Logic and Language Models for Computer Science. Prentice Hall, 2002. A. Yasuhara; Recursive Function Theory and Logic. Academic Press, 1971. u.v.m. Einleitung Formale Logik: - Verknüpfen von Aussagen - Beweise: Axiome, Schlussregeln → Theoreme Logik ist Basis der Mathematik: - Was ist Wahrheit? - Welche Theorien sind axiomatisierbar? - Wie sehen die Modelle für gewisse Theorien aus? Informatik verwendet gewisse Teilgebiete der Logik: - Programmverifikation (Korrektheitsbeweise) - Semantik von Programmiersprachen - Automatisches Beweisen (K.I.) - Logik-Programmierung (Prolog) 1 Aufbau der Vorlesung Kap. 1: Aussagenlogik Kap. 2: Prädikatenlogik (erster Stufe) Kap. 3: Programm-Verifikation Kap. 4: Logik-Programmierung (Grundlagen) Folien der Vorlesung sowie Übungsaufgaben finden sich auf der Homepage der Vorlesung im pdf-Format. 2 Kapitel 1. Aussagenlogik 1.1 Grundbegriffe In der Aussagenlogik werden einfache Verknüpfungen zwischen atomaren sprachlichen Gebilden ( Aussagen“) untersucht. ” Beispiele für atomare Aussagen: A = Kassel ist der Nabel der Welt“ ” B = Pferde fressen Heu“ ” Diese atomaren Aussagen können wahr oder falsch sein. Aussagen entstehen durch Verknüpfungen aus atomaren Aussagen: A und B Wie ergeben sich die Wahrheitswerte in solchen Aussagen aus den Wahrheitswerten der darin enthaltenen atomaren Aussagen? 3 Definition (Syntax der Aussagenlogik) Eine atomare Formel hat die Form Ai (i = 1, 2, 3, . . .). Formeln werden induktiv definiert: 1. Alle atomaren Formeln sind Formeln. 2. Sind F und G Formeln, so auch (F ∧ G) und (F ∨ G). 3. Ist F eine Formel, so auch ¬F . ¬F : Negation von F F ∧ G : Konjunktion von F und G F ∨ G : Disjunktion von F und G Tritt eine Formel F als Teil einer Formel G auf, so heißt F eine Teilformel von G. Beispiel: F = ¬((A5 ∧ A6) ∨ (¬A3 ∧ A5)) Teilformeln von F : F, ((A5 ∧ A6) ∨ (¬A3 ∧ A5)), (A5 ∧ A6), A5, A6, (¬A3 ∧ A5), ¬A3, A3 4 Abkürzende Schreibweisen: A, B, C, . . . statt A1, A2, A3, . . . (F1 → F2) statt (¬F1 ∨ F2) (F1 ↔ F2) statt ((F1 ∧ F2) ∨ (¬F1 ∧ ¬F2)) n W ( Fi) statt (..((F1 ∨ F2) ∨ F3) ∨ . . . ∨ Fn) i=1 n V ( i=1 Fi) statt (..((F1 ∧ F2) ∧ F3) ∧ . . . ∧ Fn) Beachte: Formeln sind lediglich syntaktische Objekte. Beispiel: (((¬B → F )∧((B∧F ) → ¬E))∧((E∨¬B) → ¬F )) ↔ (B ∧ ¬(E ∧ F )) 5 Definition (Semantik der Aussagenlogik) Wahrheitswerte {0, 1} (0 = ˆ falsch, 1 = ˆ wahr) Sei D eine Menge von atomaren Formeln, und sei E die Menge der Formeln über D. Eine Abbildung A : D → {0, 1} ist eine Belegung von D. Sie liefert eine Funktion  : E → {0, 1}: 1. Für A ∈ D ist Â(A) := A(A). 2. Â((F ∧G)) := ( 1, falls Â(F ) = 1 und Â(G) = 1 0, sonst 3. Â((F ∨G)) := ( 1, falls Â(F ) = 1 oder Â(G) = 1 0, sonst 4. Â(¬F ) ( 1, falls Â(F ) = 0 0, sonst. := Beachte: Die Funktion  wird durch A eindeutig festgelegt. Schreibweise: A statt Â. 6 Beispiel: Seien A(A) = 1, A(B) = 1 und A(C) = 0. Dann: A(¬((A ∧ B) ∨ C)) ( 1, falls A(((A ∧ B) ∨ C)) = 0 = 0, sonst = ( 0, falls A(((A ∧ B) ∨ C)) = 1 1, sonst = ( 0, falls A((A ∧ B)) = 1 oder A(C) = 1 1, sonst = ( 0, falls A(A) = 1 und A(B) = 1 1, sonst =0 7 Verknüpfungstabellen für ∧, ∨, ¬: A(F ) A(G) A((F ∧ G)) A((F ∨ G)) A(¬F ) 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 Beispiel (Forts.): F = ¬((A ∧ B) ∨ C) Aufbau von F darstellbar durch eine Baumstruktur: GFED @ABC ¬ ONML HIJK ∨ @@@ }} }} } }} }} ONML HIJK ∧ BBB A ∧ ∨ ¬ → ↔ }} }} } } }} @@ @@ @@ C BB BB BB B und“ ” oder“ ” nicht“ ” wenn, dann“ ” genau dann, wenn“ ” 8 Bemerkung: (Induktion über den Formelaufbau) z.z.: Eine Behauptung B gilt für alle Formeln. Beweisprinzip: 1. Zeige, B gilt für alle atomaren Formeln. 2. Zeige, dass B für (F ∧ G), (F ∨ G) und ¬F gilt, wenn B für F und G gilt. Definition (Modell, gültig, erfüllbar) Sei F eine Formel und A eine Belegung. A ist zu F passend, wenn A(A) für alle in F vorkommenden atomaren Formeln A definiert ist. A |= F : A ist passend zu F , und A(F ) = 1. A 6|= F : A ist passend zu F , und A(F ) = 0. Sprechweise: F gilt unter der Belegung A (nicht), A ist (k)ein Modell für F . 9 Ist F eine Menge von Formeln, so ist A ein Modell für F, wenn A |= F für alle F ∈ F gilt. F heißt erfüllbar , wenn F ein Modell hat, sonst ist F unerfüllbar . F heißt Tautologie (gültig), falls A |= F für jede zu F passende Belegung gilt. Schreibweise: |= F : F ist Tautologie. 6|= F : F ist keine Tautologie. 10 Satz Eine Formel F ist eine Tautologie genau dann, wenn ¬F unerfüllbar ist. Beweis F ist Tautologie gdw. jede zu F passende Belegung ist ein Modell für F gdw. A(F ) = 1 für jede zu F passende Belegung gdw. A(¬F ) = 0 für jede zu ¬F passende Belegung gdw. ¬F besitzt kein Modell gdw. ¬F ist unerfüllbar. 2 Das Spiegelungsprinzip der Negation: alle aussagenlogischen Formeln gültige Formeln erfüllbare, aber unerfüllbare nicht gültige Formeln Formeln F | ¬F ¬G | G H | ¬H 11 Definition (Folgerung) Eine Formel G ist eine Folgerung der Formeln F1, . . . , Fk , falls jede Belegung A, die zu F1, . . . , Fk und zu G passend ist, ein Modell für G ist, wenn sie ein Modell für {F1, . . . , Fk } ist. Satz Die folgenden drei Aussagen sind äquivalent: 1. G ist eine!Folgerung ! von F1, . . . , Fk . 2. 3. k V i=1 k V i=1 → G ist eine Tautologie. Fi ! ! Fi ∧ ¬G ist unerfüllbar. Beachte: 6|= ((A → B) → (¬A → ¬B)) Wähle A mit A(A) = 0 und A(B) = 1. Dann folgt: A((A → B)) = 1, aber A((¬A → ¬B)) = 0, was A(((A → B) → (¬A → ¬B))) = 0 liefert. Wahrheitstafel: A B 0 0 0 1 1 0 1 1 A→B 1 1 0 1 ¬A → ¬B 1 0 1 1 C 1 0 1 1 12 Beispiel (Forts.): A1 := (((¬B → F ) ∧ ((B ∧ F ) → ¬E)) ∧ ((E ∨ ¬B) → ¬F )) B E F ¬B ¬B → F B ∧F (B ∧F ) → ¬E E ∨¬B (E ∨¬B) → ¬F 0 0 0 1 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 A2 := B ∧ ¬(E ∧ F ) B E F E ∧ F ¬(E ∧ F ) 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 B ∧ ¬(E ∧ F ) 0 0 0 0 1 1 1 0 A1 ↔ A2 1 1 1 1 1 1 1 1 A1 0 0 0 0 1 1 1 0 Lemma Eine Formel F der Form F = k V i=1 ! Gi ist erfüllbar genau dann, wenn die Formelmenge M = {G1, . . . , Gk } erfüllbar ist. Lemma Seien F und G Formeln, die keine gemeinsame atomare Formel enthalten. Ist (F → G) eine Tautologie, so ist F unerfüllbar oder G ist eine Tautologie. 14 1.2 Äquivalenz und Normalformen Definition Zwei Formeln F und G heißen (semantisch) äquivalent, falls für alle Belegungen A, die sowohl für F als auch für G passend sind, A(F ) = A(G) gilt. Schreibweise: F ≡G Satz (Ersetzbarkeitstheorem) Seien F und G äquivalente Formeln, und sei H eine Formel, in der F als Teilformel (mindestens einmal) vorkommt. Entsteht H 0 aus H, indem ein Vorkommen von F in H durch G ersetzt wird, so sind H und H 0 äquivalent. Beweis: Induktion über den Formelaufbau von H: H ist atomar : H = F und H 0 = G. H ist nicht atomar: (i) H = F : Dann ist H 0 = G. (ii) H = ¬H1 : H10 entstehe aus H1 durch Ersetzung einer Teilformel F durch G. Nach I.V.: H1 ≡ H10 . Also H = ¬H1 ≡ ¬H10 = H 0. (iii) H = H1 ∨ H2 : Dann H = H1 ∨ H2 ≡ H10 ∨ H20 = H 0. (iv) H = H1 ∧ H2 : analog zu (iii). 2 15 Satz Es gelten die folgenden Äquivalenzen: (F ∧ F ) ≡ F (Idempotenz) (F ∨ F ) ≡ F (F ∧ G) ≡ (G ∧ F ) (Kommutativität) (F ∨ G) ≡ (G ∨ F ) ((F ∧ G) ∧ H) ≡ (F ∧ (G ∧ H)) (Assoziativität) ((F ∨ G) ∨ H) ≡ (F ∨ (G ∨ H)) (F ∧ (F ∨ G)) ≡ F (Absorption) (F ∨ (F ∧ G)) ≡ F (F ∧ (G ∨ H)) ≡ ((F ∧ G) ∨ (F ∧ H)) (Distributivität) (F ∨ (G ∧ H)) ≡ ((F ∨ G) ∧ (F ∨ H)) ¬¬F ≡ F (Doppelnegation) ¬(F ∧ G) ≡ (¬F ∨ ¬G) (deMorgansche Regeln) ¬(F ∨ G) ≡ (¬F ∧ ¬G) (F ∨ G) ≡ F , falls F eine Tautologie ist. (F ∧ G) ≡ G, falls F eine Tautologie ist. (F ∨ G) ≡ G, falls F unerfüllbar ist. (F ∧ G) ≡ F , falls F unerfüllbar ist. (F ∨ ¬F ) (F ∧ ¬F ) ≡ ≡ 1 0 Hierbei ist 1 eine Abkürzung für eine Tautologie, und 0 ist eine Abkürzung für eine unerfüllb. Formel. 16 Beispiel: ((A ∨ (B ∨ C)) ∧ (C ∨ ¬A)) ≡ ((B ∧ ¬A) ∨ C) Beweis durch Anwendung obiger Äquivalenzen: ((A ∨ (B ∨ C)) ∧ (C ∨ ¬A)) ≡ (((A ∨ B) ∨ C) ∧ (C ∨ ¬A)) (Assoziativität) ≡ ((C ∨ (A ∨ B)) ∧ (C ∨ ¬A)) (Kommutativität) ≡ (((C ∧ C) ∨ (C ∧ ¬A)) ∨ (((A ∨ B) ∧ C) ∨ ((A ∨ B) ∧ ¬A))) (Distributivität) ≡ (((C ∨ (C ∧ ¬A)) ∨ ((A ∨ B) ∧ C)) ∨ ((A∨B)∧¬A)) (Idempotenz, Assoziativität) ≡ ((C ∨ ((A ∨ B) ∧ C)) ∨ ((A ∨ B) ∧ ¬A)) (Absorption) ≡ (C ∨ ((A ∨ B) ∧ ¬A)) (Absorption, Kommutativität) ≡ (C ∨ (¬A ∧ (A ∨ B))) (Kommutativität) ≡ (C ∨ ((¬A ∧ A) ∨ (¬A ∧ B))) (Distributivität) ≡ (C ∨ (¬A ∧ B)) (Unerfüllbarkeit) ≡ (C ∨ (B ∧ ¬A)) (Kommutativität) ≡ ((B ∧ ¬A) ∨ C) (Kommutativität) 17 Lemma Es gelten folgende Verallgemeinerungen: ¬ n W i=1 ¬ n V i=1 m W i=1 m V i=1 Fi ! Fi ! ≡ n V i=1 ≡ ! Fi ∧ ! Fi ∨ n W i=1 n W j=1 n V j=1 ¬Fi ! ¬Fi ! Gj !! Gj !! ≡ m W i=1 ≡ m V i=1 n W j=1 n V j=1 Fi ∧ Gj Fi ∨ Gj Schreibweise: F1 ∧ F2 ∧ . . . ∧ Fn für (..((F1 ∧ F2) ∧ . . . ∧ Fn) F1 ∨ F2 ∨ . . . ∨ Fn für (..((F1 ∨ F2) ∨ . . . ∨ Fn) 18 !! !! Definition (Normalformen) Ein Literal ist eine atomare Formel oder die Negation einer atomaren Formel (positives/negatives Literal). Die Formel F ist in konjunktiver Normalform (KNF), wenn sie eine Konjunktion von Disjunktionen von Literalen ist: F = n ^ i=1 m _i j=1 Li,j mit Li,j ∈ { Ak , ¬Ak | k ≥ 1 }. Eine Formel F ist in disjunktiver Normalform (DNF), wenn sie eine Disjunktion von Konjunktionen von Literalen ist: F = m _ i=1 m ^i j=1 Li,j mit Li,j ∈ { Ak , ¬Ak | k ≥ 1 }. Satz Für jede Formel F gibt es eine äquivalente Formel in KNF und eine äquivalente Formel in DNF. Beweis: Induktion über den Aufbau von F . F atomar : F ist in KNF und in DNF. 19 (1.) F = ¬G : Nach I.V.: G ≡ G1 = ≡ ¬ i=1 n W ≡ i=1 n W ≡ m Wi j=1 m Vi j=1 m Vi j=1 n V i=1 Also: F = ¬G ≡ ¬G1 = ¬ n W m Wi n V Li,j ¬Li,j Li,j Li,j !! m Wi i=1 j=1 !! !! Li,j !! (deMorgan) !! (DNF) i=1 j=1 ( Ak , falls Li,j = ¬Ak mit Li,j := ¬Ak falls Li,j = Ak . Analog: DNF für G1 ergibt KNF für F (2.) F = (G ∨ H) : DNF für G und H ergeben DNF für F . G≡ n V i=1 Gi und H = Damit: F ≡ ≡ n V k V !j=1 Gi ∨ i=1 n k V V i=1 j=1 (3.) F = (G ∧ H): analog. (KNF). Hj k V j=1 Hj Gi ∨ Hj ! ! (KNF) 2 20 Berechnung der DNF aus der Wahrheitstafel: A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 1 0 0 0 1 1 0 0 : ¬A ∧ ¬B ∧ ¬C : A ∧ ¬B ∧ ¬C : A ∧ ¬B ∧ C F ≡ (¬A ∧ ¬B ∧ ¬C) ∨ (A ∧ ¬B ∧ ¬C) ∨ (A ∧ ¬B ∧ C). Bestimme minimale äquivalente DNF (oder KNF) zu einer gegebenen Formel! 21 1.3 Hornformeln Definition (Hornformeln) Eine Formel F ist eine Hornformel, wenn F in KNF ist, und wenn jede Disjunktion in F höchstens ein positives Literal enthält. Beispiele: Hornformel: F = (A ∨ ¬B) ∧ (¬C ∨ ¬A ∨ D) ∧ (¬A ∨ ¬B) ∧ D ∧ ¬E Keine Hornformeln: G = (A ∨ ¬B) ∧ (C ∨ ¬A ∨ D) H = (A ∨ ¬B) ∨ (C ∧ ¬A) Interpretation von Hornklauseln als Konjunktionen von Implikationen: F ≡ (B → A) ∧ (C ∧ A → D) ∧ (A ∧ B → 0) ∧ (1 → D) ∧ (E → 0) wobei 0 unerfüllbare Formel 1 Tautologie 22 Erfüllbarkeitstest für Hornformeln: Eingabe: Eine Hornformel F 1. Markiere alle Vorkommen von atomaren Formeln A in F , für die F eine Teilformel der Form (1 → A) enthält; 2. while es gibt in F eine Teilformel G = (A1 ∧ . . . ∧ An → B) oder G = (A1 ∧ . . . ∧ An → 0) mit n ≥ 1, so dass A1, . . . , An markiert sind (und B nicht markiert ist) do if G hat die erste Form then markiere alle Vorkommen von B in F else gib unerfüllbar“ aus und halte; ” 3. Gib erfüllbar“ aus und halte. ” 23 Satz Der Markierungsalgorithmus für Hornformeln ist korrekt. Er stoppt nach spätestens n Markierungsschritten, wobei n die Anzahl der in F vorkommenden verschiedenen atomaren Formeln ist. Beweis: Sei F eine Hornformel. 24 Behauptung 1: Ist F erfüllbar, so liefert der Algorithmus die korrekte Antwort. Beweis: Sei B ein Modell für F = D1 ∧ D2 ∧ . . . ∧ Dm, d.h. B(Di) = 1, i = 1, . . . , m. Di = (1 → A): B(A) = 1 und alle Vorkommen von A in F werden in Schritt 1 markiert. Di = (A1 ∧ . . . ∧ An → B): Sind A1, . . . , An markiert, dann gilt B(Aj ) = 1, j = 1, . . . , n. Wegen B(Di) = 1 folgt B(B) = 1, und alle Vorkommen von B in F werden in Schritt 2 markiert. Di = (A1 ∧ . . . ∧ An → 0): Wegen B(Di ) = 1 muss B(Aj ) = 0 sein für ein j ∈ {1, . . . , n}, d.h. Aj ist nicht markiert. Also bricht der Algorithmus nicht in Schritt 2 ab. 2 25 Behauptung 2: Liefert der Algorithmus die Antwort erfüllbar“, dann ” ist A(Ai) := ( 1, falls Ai markiert wird 0, sonst ) ein Modell für F . Beweis: Sei F = D1 ∧ D2 ∧ . . . ∧ Dm. z.z.: A(F ) = 1. Di = (1 → A): A wird markiert in Schritt 1. Also A(A) = 1 und damit A(Di) = 1. Di = (A1 ∧ . . . ∧ An → B): Sind A1, . . . , An markiert, dann wird auch B markiert. Es gelten A(Aj ) = 1 = A(B), 1 ≤ j ≤ n, und damit A(Di) = 1. Di = (A1 ∧ . . . ∧ An → B): Ein Aj (1 ≤ j ≤ n) ist nicht markiert. Dann A(Aj ) = 0 und damit A(Di) = 1. Di = (A1 ∧ . . . ∧ An → 0): Da der Algorithmus in Schritt 2 nicht abbricht, ist ein Aj (1 ≤ j ≤ n) nicht markiert. Also gilt A(Aj ) = 0 und damit A(Di) = 1. 2 26 Beispiel: F = (¬A ∨ ¬B ∨ ¬D) ∧ ¬E ∧ (¬C ∨ A) ∧ C ∧ B ∧ (¬G ∨ D) ∧ G 6 verschiedene atomare Teilformeln: 26 = 64 Belegungen F ≡ (A ∧ B ∧ D → 0) ∧ (E → 0) ∧ (C → A) ∧ (1 → C) ∧ (1 → B) ∧ (G → D) ∧ (1 → G) Schritt 1: Markiere B, C und G: (A ∧ B̂ ∧ D → 0) ∧ (E → 0) ∧ (Ĉ → A) ∧ (1 → Ĉ) ∧ (1 → B̂) ∧ (Ĝ → D) ∧ (1 → Ĝ) Schritt 2: Markiere A und D: ( ∧ B̂ ∧ D̂ → 0) ∧ (E → 0) ∧ (Ĉ → Â) ∧ (1 → Ĉ) ∧ (1 → B̂) ∧ (Ĝ → D̂) ∧ (1 → Ĝ) Ausgabe: unerfüllbar“. ” 27 1.4 Endlichkeitssatz Satz (Endlichkeitssatz, compactness theorem) Eine Menge M von Formeln ist erfüllbar genau dann, wenn jede ihrer endlichen Teilmengen erfüllbar ist. Beweis: Ist M erfüllbar, dann gibt es ein Modell A für M. Dann ist A auch ein Modell für jede (endliche) Teilmenge von M. Sei nun jede endliche Teilmenge von M erfüllbar. z.z.: M hat ein Modell. Für n ≥ 1 sei Mn die Menge der Formeln aus M, die nur die atomaren Formeln A1, . . . , An enthaln ten. Da es nur 22 verschiedene Wahrheitstafeln n für A1, . . . , An gibt, enthält Mn höchstens k ≤ 22 verschiedene Formeln F1, . . . , Fk , die paarweise nicht zueinander äquivalent sind. Mn und {F1, . . . , Fk } haben dieselben Modelle. Sei An ein Modell für Mn. Dann ist An ein Modell für n S i=1 Mi . 28 Konstruktion eines Modells für M: Stufe 0: A := ∅ I := {1, 2, 3, . . .} Stufe n > 0: if es gibt unendlich viele Indizes i ∈ I mit Ai(An) = 1 then A := A ∪ {(An, 1)}; I := I − { i | Ai(An) 6= 1} else A := A ∪ {(An, 0)}; I := I − { i | Ai(An) 6= 0} end Nach n Stufen hat A Definitionsbereich {A1, . . . , An}. Behauptung: A ist ein Modell für M. Beweis: Sei F ∈ M. Dann gibt es ein ` mit F ∈ M`. Also sind A`, A`+1, . . . Modelle für F . In Stufe ` ist A auf {A1, . . . , A`} festgelegt. Es gilt A(Aj ) = Ak (Aj ) für ein k ≥ ` und alle j = 1, . . . , `, d.h. A(F ) = Ak (F ) = 1. 2 29 Bemerkung: Obiger Beweis ist nicht konstruktiv. Folgerung: Eine Menge M von Formeln ist nicht erfüllbar genau dann, wenn sie eine endliche Teilmenge enthält, die nicht erfüllbar ist. Dies liefert einen Test für die Unerfüllbarkeit: M = {F1, F2, F3, . . .} Für i = 1, 2, 3, . . . teste, ob {F1, F2, . . . , Fi } unerfüllbar ist. Dieser Test terminiert genau dann, wenn M unerfüllbar ist. 30 1.5 Resolution Kalkül: syntaktische Umformungsregeln Resolutionskalkül: {F1, F2} → F3 Aufgabe: Unerfüllbarkeit einer Formelmenge nachweisen! R.Kalkül ist korrekt und vollständig. Zur Erinnerung: |= F gdw. ¬F ist unerfüllbar. G ist eine Folgerung von {F1, . . . , Fk } gdw. |= F1 ∧ F2 ∧ . . . ∧ Fk → G gdw. F1 ∧ F2 ∧ . . . ∧ Fk ∧ ¬G ist unerfüllbar. R.Kalkül ist anwendbar auf Formeln in KNF: F = (L1,1 ∨ . . . ∨ L1,n1 ) ∧ . . . ∧ (Lk,1 ∨ . . . ∨ Lk,nk ) Schreibweise: Menge von Klauseln: F = {{L1,1, . . . , L1,n1 }, . . . , {Lk,1, . . . , Lk,nk }} 31 Definition Seien K1, K2 und R Klauseln. R heißt Resolvent von K1 und K2, falls es ein Literal L gibt mit L ∈ K1 und L ∈ K2, und R = (K1 − {L}) ∪ (K2 − {L}). Hierbei ist L := ( ¬Ai, falls L = Ai, Ai , falls L = ¬Ai. Graphische Notation: K2 K1C CC CC CC C R Leere Klausel: {{ {{ { { {{ 2 Beispiel: {A3, ¬A4,NA1} NNN NNN NNN NNN NNN {A3, AI1} II II II II II II {A4, ¬A1} s ss ss s ss ss ss s s {A3, A1, ¬A1} pp ppp p p pp ppp p p pp {A3, A1N } NNN NNN NNN NNN NNN {A3, ¬A1} ss ss ss s s ss ss s s {¬A3} {A3}M MM MMM MM MMM MMM M 2 || || | | || | || 32 Lemma Sind K1 und K2 Hornklauseln, dann ist jeder Resolvent von K1 und K2 wieder eine Hornklausel. Resolutions-Lemma Sei F eine Formel in KNF. Ferner sei R ein Resolvent zweier Klauseln K1 und K2 in F . Dann sind F und F ∪ {R} äquivalent. Beweis: Sei A eine zu F passende Belegung. Gilt A |= F ∪ {R}, so folgt A |= F . Umgekehrt, aus A |= F folgt A |= K1 und A |= K2. Sei R = (K1 − {L}) ∪ (K2 − {L}). (1.) A |= L : A(L) = 0 und A |= K2 implizieren A |= K2 − {L}, d.h. A |= R. (2.) A 6|= L : A |= K1 impliziert A |= K1 − {L}, d.h. A |= R. 2 33 Definition Sei F eine Klauselmenge. Res(F ) := F ∪{ R | R ist Resolvent zweier Klauseln in F }. Res0(F ) := F . Resn+1(F ) := Res(Resn(F )) für alle n ≥ 0. S Resn(F ) Res∗(F ) := n≥0 Lemma Sei F eine endliche Klauselmenge. Dann gibt es ein k ≥ 0 mit Resk (F ) = Res∗(F ). Beweis: F enthält nur die atomaren Formeln A1, . . . , An. Also kommen in Res∗(F ) nur Klauseln über A1, . . . , An vor. Über A1, . . . , An gibt es nur 22n = 4n verschiedene Klauseln. Aus F = Res0(F ) ⊆ Res(F ) ⊆ Res2(F ) ⊆ . . . ⊆ Res∗(F ) sieht man, dass nur endlich viele dieser Inklusionen echt sind. Ist aber Resk (F ) = Resk+1(F ) für ein k, so ist die Folge ab dieser Stelle stationär, d.h. Resk (F ) = Res∗(F ). Also gilt k ≤ 4n . 2 34 Resolutionssatz (der Aussagenlogik) Eine Klauselmenge F ist unerfüllbar gdw. 2 ∈ Res∗(F ). Der Resolutionskalkül ist also widerlegungsvollständig für die Aussagenlogik. Beweis: Korrektheit: Sei 2 ∈ Res∗(F ). Resolutions-Lemma: F ≡ Res1(F ) ≡ Res2(F ) ≡ . . . ≡ Resn(F ) ≡ . . .. Es gibt nun ein n ≥ 0 mit 2 ∈ Resn(F ). Also gibt es K1, K2 ∈ Resn−1(F ), so dass 2 ein Resolvent von K1 und K2 ist, d.h. K1 = {L} und K2 = {L}. Dann ist {K1, K2} unerfüllbar, d.h. Resn−1(F ) (und damit F ) ist unerfüllbar. Vollständigkeit: Sei F unerfüllbar. Wegen dem Endlichkeitssatz können wir o.B.d.A. annehmen, dass F endlich ist. z.z.: 2 ∈ Res∗(F ). Beweis durch Induktion über die Anzahl n der in F vorkommenden atomaren Formeln. 35 I.A.: n = 0 : Dann ist F = {2}. I.V.: Für ein n ≥ 0 gelte, dass 2 ∈ Res∗(G) ist, wenn G eine unerfüllbare Klauselmenge ist, in der nur die atomaren Formeln A1, . . . , An vorkommen. I.S.: F enthalte die atomaren Formeln A1, . . . , An, An+1. Konstruiere zwei Klauselmengen F0 und F1 aus F : F0: streiche alle Vorkommen von An+1 in F , streiche alle Klauseln in F , in denen ¬An+1 vorkommt. F1: streiche alle Vorkommen von ¬An+1 in F , streiche alle Klauseln in F , in denen An+1 vorkommt. Behauptung: F0 und F1 sind unerfüllbar. Beweis: Sei A : {A1, . . . , An} → {0, 1} mit A |= F0. Definiere A0 : {A1, . . . , An, An+1} → {0, 1} durch A0(Ai) := A(Ai) (1 ≤ i ≤ n) und A0(An+1) := 0. Dann folgt A0 |= F : Widerspruch Analog: F1 ist nicht erfüllbar. 2 36 Nach I.V.: 2 ∈ Res∗(F0) und 2 ∈ Res∗(F1). Es gibt eine Folge von Klauseln K1, K2, . . . , Km mit: Km = 2, und für alle i = 1, 2, . . . , m gilt: Ki ∈ F0, oder Ki ist Resolvent von Ka, Kb mit a, b < i. Ferner gibt es eine Folge von Klauseln K10 , K20 , . . . , Kt0 mit: Kt0 = 2, und für alle j = 1, 2, . . . , t gilt: Kj0 ∈ F1, oder Kj0 ist Resolvent von Kc0 , Kd0 mit c, d < j. Die erste Folge liefert eine Folge K̂1, K̂2, . . . , K̂m von Klauseln in Res∗(F ) mit K̂m = 2 oder K̂m = {An+1}. Die zweite Folge liefert eine Folge K̂10 , K̂20 , . . . , K̂t0 von Klauseln in Res∗(F ) mit K̂t0 = 2 oder K̂t0 = {¬An+1}. In jedem Fall folgt dann 2 ∈ Res∗(F ). 2 37 Resolutionsverfahren für Unerfüllbarkeitstest einer KNF-Formel: Eingabe: Eine Formel F in KNF. Bilde aus F eine Klauselmenge F ; repeat G := F ; F := Res(F ) until (2 ∈ F ) or (F = G); if 2 ∈ F then F ist unerfüllbar“ ” else F ist erfüllbar“. ” Korrektheit: Resolutionssatz und -lemma. Beispiel: F = {{¬A, ¬B, ¬D}, {¬E}, {¬C, A}, {C}, {B}, {¬G, D}, {G}} {¬G, 9D} 99 99 99 {G} {D}= == == == {¬A, ¬B, ¬D} ppp ppp p p ppp {¬A, ¬B} N NNN NNN NNN N {B} t tt tt t t tt {¬A}J JJ JJ JJ JJ {¬C, A} {¬C} @ {C} @@ @@ @@ 2 38 Definition Eine Deduktion (Herleitung, Beweis) der leeren Klausel aus einer Klauselmenge F ist eine Folge K1, K2, . . . , Km von Klauseln mit folgender Eigenschaft: - Km = 2 - Für alle i = 1, . . . , m gilt: Ki ∈ F , oder Ki ist Resolvent zweier Klauseln Ka, Kb mit a, b < i. Bemerkung: Eine Klauselmenge F ist unerfüllbar gdw. eine Deduktion der leeren Klausel aus F existiert. Beispiel: F = {{A, B, ¬C}, {¬A}, {A, B, C, }, {A, ¬B}} Eine Deduktion der leeren Klausel aus F : K1 K2 K3 K4 K5 K6 K7 = {A, B, ¬C} = {A, B, C} = {A, B} = {A, ¬B} = {A} = {¬A} =2 (K1 (K2 (K3 (K4 (K5 (K6 (K7 ∈ F) ∈ F) : Resolvent von K1 und K2) ∈ F) : Resolvent von K3 und K4) ∈ F) : Resolvent von K5 und K6) Graphische Darstellung: Resolutionsgraph 39 Beispiel: F := {{¬A, B}, {¬B, C}, {A, ¬C}, {A, B, C}} G := A ∧ B ∧ C Behauptung: G ist Folgerung von F . z.z.: F ∪ {¬G} = F ∪ {¬A, ¬B, ¬C} ist unerfüllbar. {¬A, ¬B,J¬C} JJ JJ JJ JJ JJ JJ J {¬A, B} H {¬B, :C} } }} } }} }} } }} :: :: :: :: : tt tt tt t t tt tt t t == == == == = {¬A} TTT TTTT TTTT TTTT TTTT TTTT TTT {A, C} = {¬A, ¬B} HH HH HH HH HH HH {A, B, C} 2 o ooo o o oo ooo o o oo ooo {A, ¬C} }} }} } }} }} } } {A} 40 Beispiel: F := (¬B ∧ ¬C ∧ D) ∨ (¬B ∧ ¬D) ∨ (C ∧ D) ∨ B Behauptung: |= F . z.z.: ¬F = {{B, C, ¬D}, {B, D}, {¬C, ¬D}, {¬B}} ist unerfüllbar. {B, C, ¬D} A AA AA AA AA AA {B, D} ; ;; ;; ;; ;; ; 77 77 77 77 7 {B, C} 7 {¬C, ¬D} }} }} } }} }} } } {B, ¬C} {B}= {¬B} == == == == = 2 z zz zz z zz zz z z 41 Definition (Einheitsresolution) Ein Resolvent zweier Klauseln K1, K2 darf nur dann gebildet werden, wenn |K1| = 1 oder |K2| = 1 gilt. Satz Die Einheitsresolution ist vollständig für die Klasse der Hornformeln, d.h. eine Menge H von Hornklauseln ist unerfüllbar genau dann, wenn 2 mittels Einheitsresolution aus H hergeleitet werden kann. Bemerkung: Für allgemeine Klauselmengen ist die Einheitsresolution nicht vollständig. Beispiel: F = {{A1, A2}, {¬A1, A2}, {¬A1, ¬A2}, {A1, ¬A2}} Kein Einheitsresolutionsschritt ist anwendbar, aber: {A1, ¬A } A 2 AA AA AA AA AA {A1, A2} {¬A1, A } D 2 DD DD DD DD DD D {A1} PP PPP PPP PPP PPP PPP P 2 l lll lll l l l lll lll l l ll {¬A1, ¬A2} w ww ww w ww ww w w {¬A1} 42