Formale Logik Logik für Informatiker Ziel • Formalisierung und Automatisierung rationalen Denkens • Rational richtige Ableitung von neuem Wissen aus gegebenem Viorica Sofronie-Stokkermans Rolle der Logik in der Informatik • Anwendung innerhalb der Informatik Spezifikation, Programmentwicklung, Programmverifikation e-mail: [email protected] • Werkzeug für Anwendungen außerhalb der Informatik Künstliche Intelligenz, Wissensrepräsentation 1 Logik in der Informatik 3 Modellierung Was ist Logik? • Mathematisch? ja • Unverständlich? hoffentlich nein Abstraktion • Reine Theorie ohne praktischen Nutzen? nein: Verifikation von Hardware, Software, Protokollen Sprachverarbeitung und Wissensrepräsentation Abfragensprachen für Datenbanken; ... 2 4 Modellierung Beispiel: Aufzug Adäquatheit des Modells oben oben mitte mitte unten unten Wenn formulierbare Aussage wahr im Modell, dann entsprechende Aussage wahr in Wirklichkeit Aufzug mitte Oben gedruckt F.nach oben 5 7 Beispiel: Aufzug Modellierung: Strukturen oben oben oben Aufzug oben Mitte gedruckt oben Aufzug oben Mitte gedruckt Aufzug oben Mitte gedruckt F.nach unten mitte oben mitte mitte unten unten Aufzug mitte Unten gedruckt F.nach unten mitte F.nach unten mitte F.nach unten unten unten unten v(AufzugOben) = wahr v(AufzugMitte) = wahr v(AufzugOben) = wahr v(AufzugMitte) = wahr 6 v(MitteGedrückt) = wahr v(UntenGedrückt) = wahr v(MitteGedrückt) = wahr v(FährtNachUnten) = wahr v(FährtNachUnten) = wahr v(FährtNachUnten) = wahr 8 Modellierung: Strukturen oben oben Aufzug oben Mitte gedruckt oben Formale Logik Aufzug oben Mitte gedruckt • Syntax welche Formeln? F.nach unten mitte mitte Aufzug mitte Unten gedruckt mitte F.nach unten Aufzug mitte • Semantik Modelle (Strukturen) F.nach unten unten Wann ist eine Formel wahr (in einer Struktur)? unten unten • Deduktionsmechanismus Ableitung neuer wahrer Formeln v(AufzugOben) = wahr v(AufzugMitte) = wahr v(AufzugOben) = wahr v(AufzugMitte) = wahr v(MitteGedrückt) = wahr v(UntenGedrückt) = wahr v(MitteGedrückt) = wahr v(FährtNachUnten) = wahr v(FährtNachUnten) = wahr v(FährtNachUnten) = wahr 9 11 Modellierung: Strukturen oben Aufzug oben Mitte gedruckt oben oben Aussagenlogik: Syntax Die Welt besteht aus Fakten Aufzug oben Mitte gedruckt Bausteine: Atomare Aussagen F.nach unten mitte mitte Aufzug mitte Unten gedruckt mitte Beispiele: Aufzug ist oben: F.nach unten Aufzug mitte AufzugOben F.nach unten unten unten Mittlerer Knopf gedrückt: unten MitteGedrückt Verknüpft mit logischen Operatoren Aussagen beziehen sich auf Strukturen (Formale) Aussagen sind in jeder einzelnen Struktur zu wahr oder falsch auswertbar 10 und oder impliziert nicht ∧ ∨ → ¬ 12 Aussagenlogik: Syntax Aussagenlogik: Semantik Der Aufzug ist oben und der Aufzug ist nicht unten Komplexe Aussagen: AufzugOben ∧ ¬AufzugUnten Beispiele: falsch in: Wenn mittlerer Knopf gedrückt, dann Aufzug nicht in der Mitte oben MitteGedrückt → ¬AufzugMitte mitte Aufzug mitte Unten gedruckt Der Aufzug ist oben und der Aufzug ist nicht unten AufzugOben ∧ ¬AufzugUnten F.nach unten unten 13 Aussagenlogik: Semantik Aussagenlogik: Deduktionsmechanismus Der Aufzug ist oben und der Aufzug ist nicht unten • Deduktionsmechanismus Ableitung neuer wahrer Formeln AufzugOben ∧ ¬AufzugUnten wahr in: oben 15 Aufzug oben Mitte gedruckt Syllogismen: F.nach unten P→Q P mitte Q Beispiel: unten AufzugUnten → ¬AufzugOben AufzugUnten ¬AufzugOben 14 16 Aussagenlogik: Deduktionsmechanismus Prädikatenlogik Deduktionsmechanismus im allgemeinen Reichere Struktur Kalkül • Objekte (Elemente) Leute, Häuser, Zahlen, Theorien, Farben, Jahre, ... • Relationen (Eigenschaften) rot, rund, prim, mehrstöckig, ... ist Bruder von, ist größer als, ist Teil von, hat Farbe, besitzt, .. =, ≥, ... In dieser Vorlesung: • Wahrheitstafeln • Logische Umformung • Funktionen +, Mitte von, Vater von, Anfang von, ... • Resolutionskalkül • Tableaukalkül • DPLL 17 Prädikatenlogik 19 Beispiel: Tante Agatha Eine kleine Logelei: Aussagenlogik: Die Welt besteht aus Fakten Jemand, der in Schloss Dreadbury wohnt, hat Tante Agatha ermordet. Agatha, ihr Butler und ihr Neffe Charles waren die einzigen Bewohner von Schloss Dreadbury. Ein Mörder hasst immer sein Opfer und ist niemals reicher als sein Opfer. Charles hasst niemanden, den Tante Agatha gehasst hat. Agatha hat jeden gehasst außer ihrem Butler. Der Butler hasst jeden, der nicht reicher ist als Tante Agatha. Der Butler hasst jeden, den Tante Agatha gehasst hat. Niemand hasst jeden. Agatha war nicht der Butler. ... aber: Aussagenlogik hat nur beschränkte Ausdruckskraft Beispiele: • Die Aussage “Alle Menschen sind sterblich” erfordert eine Formel für jeden Mensch. • Die Aussage “Jede natürliche Zahl ist entweder gerade oder ungerade” erfordert eine Formel für jede Zahl. Wer hat Tante Agatha ermordet? 18 20 Beispiel: Tante Agatha Beispiel: Tante Agatha Zuerst formalisieren wir das Problem: Der Butler hasst jeden, der nicht reicher ist als Tante Agatha. Der Butler hasst jeden, den Tante Agatha gehasst hat. E x (schlossbewohner(x) ∧ ermordet(x, a)) ◮ Agatha, ihr Butler und ihr Neffe Charles waren die einzigen Bewohner von Schloss Dreadbury. x (hasst(a, x) → hasst(b, x)) Niemand hasst jeden. ◮ A x (schlossbewohner(x) ↔ (x = a ∨ x = b ∨ x = c)) E A ◮ ¬ reicher(x, a) → hasst(b, x)) x (¬ A ◮ A ◮ Jemand, der in Schloss Dreadbury wohnt, hat Tante Agatha ermordet. x ¬ hasst(x, y )) y (¬ Agatha war nicht der Butler. ◮ ¬a=b 21 Beispiel: Tante Agatha Prädikatenlogik: Deduktionsmechanismus • Deduktionsmechanismus Ein Mörder hasst immer sein Opfer und ist niemals reicher als sein Opfer. Ableitung neuer wahrer Formeln A A ◮ 23 x, y (ermordet(x, y ) → hasst(x, y )) x, y (ermordet(x, y ) → ¬ reicher(x, y )) Syllogismen: Charles hasst niemanden, den Tante Agatha gehasst hat. A A x(P(x) → Q(x)) x (hasst(c, x) → ¬ hasst(a, x)) A ◮ x(Q(x) → R(x)) A x(P(x) → R(x)) Agatha hat jeden gehasst außer ihrem Butler. A ◮ ¬ hasst(a, x) ↔ x = b) x (¬ 22 24 Beispiel: Tante Agatha Beispiel: Tante Agatha Nun können wir aus den Formeln neue Formeln ableiten. Damit wissen wir schon, dass Charles nicht der Mörder ist. Beispielweise so: Die weitere Berechnung ist aber mühsam. ermordet(x, y ) → hasst(x, y ) hasst(c, y ) → ¬hasst(a, y ) Glücklicherweise können wir die Arbeit einem automatischen Theorembeweiser überlassen. ermordet(c, y ) → ¬hasst(a, y ) ermordet(c, y ) → ¬hasst(a, y ) ¬hasst(a, y ) → y = b ermordet(c, y ) → y = b 25 Beispiel: Tante Agatha 27 Prädikatenlogik: Deduktionsmechanismus Nun können wir aus den Formeln neue Formeln ableiten. In dieser Vorlesung: Beispielweise so: • Resolutionskalkül • Tableaukalkül ermordet(x, y ) → hasst(x, y ) hasst(c, y ) → ¬hasst(a, y ) ermordet(c, y ) → ¬hasst(a, y ) ermordet(c, y ) → ¬hasst(a, y ) ¬hasst(a, y ) → y = b ermordet(c, y ) → y = b ermordet(c, y ) → y = b ¬(a = b) ¬ermordet(c, a) 26 28 Das ganze Bild Das ganze Bild Probleme Probleme (Beschreibung in natürlicher Sprache) (Beschreibung in natürlicher Sprache) Formalisierung Formalisierung Logische Sprache: Syntax Aussagenlogik / Logische Sprache: Syntax Prädikatenlogik Aussagenlogik / Formel Prädikatenlogik Deduktion Formel Modelle: Semantik Kalkül Logik Modelle: Semantik Vollständigkeit Gültige Formel (automatische) Kalkül Logik Vollständigkeit Beweisbare Formel Gültige Formel Korrektheit Beweisbare Formel Korrektheit 29 Das ganze Bild 31 Inhalt der Vorlesung • 1. Einführung: Motivation, Beweisstrategien (insb. Induktion) Probleme • 2. Aussagenlogik (Beschreibung in natürlicher Sprache) – Syntax und Semantik – Deduktionsmechanismen: - Resolution, Vollständigkeits- und Korrektheitsbeweise - Analytische Tableaux; DPLL Formalisierung Modellierung Logische Sprache: Syntax Aussagenlogik / • 3. Prädikatenlogik Prädikatenlogik – Syntax und Semantik Formel Modelle: Semantik Kalkül – Deduktionsmechanismen: - Resolution, Vollständigkeits- und Korrektheitsbeweise - Analytische Tableaux Logik Vollständigkeit Gültige Formel Beweisbare Formel • 4. Weitere Aussichten - Nichtklassische Logiken; Logiken höherer Stufe - Anwendungen: z.B. Datenbanken oder Verifikation Korrektheit 30 32 Einführung: Zusammenfassung Mathematisches Beweisen Mathematische Aussagen • Ziel und Rolle der Formalen Logik in der Informatik • Modellierung, Adäquatheit der Modellierung - haben oft die Form: Wenn A, dann B. • Wesentliche Komponenten für jede Logik: Syntax, Semantik, Deduktionsmechanismus (Kalkül) - als Formel: A → B • Beispiel Aussagenlogik: Syntax, Semantik, Syllogismen Mathematischer Beweis • Beispiel Prädikatenlogik: Syntax, Semantik, Syllogismen - bzgl. eines vorgegebenen Axiomensystems • The Whole Picture: - mit Hilfe von Inferenzregeln – Formel in der “wahren Welt” / (semantisch) gültige Formel, gültige Formel / ableitbare Formel – Vollständigkeit und Korrektheit von Kalkülen 33 1. Grundlegende Beweisstrategien 35 Grundlegende Beweisstrategien Mathematische Aussagen der Form A → B (Wenn A, dann B) - Direkter Beweis: Annahme: A gilt. Benutze A, Axiome, und Inferenzregeln um B zu beweisen. Behauptung: Das Quadrat einer ungeraden natürlichen Zahl n ist stets ungerade. Beweis: Es sei n eine ungerade natürliche Zahl. Dann lässt sich n darstellen als n = 2k + 1, wobei k eine natürliche Zahl oder Null ist. Daraus folgt mit Hilfe der ersten binomischen Formel n2 = (2k + 1)2 = 4k 2 + 4k + 1 = 2 · (2k 2 + 2k) + 1. Aus der Möglichkeit, n2 so darzustellen folgt, dass n2 ungerade ist. 34 36 Grundlegende Beweisstrategien Grundlegende Beweisstrategien Mathematische Aussagen der Form A → B (Wenn A, dann B) Mathematische Aussagen, die nicht die Form A → B haben - Beweis durch Kontraposition: Beweis von ¬B → ¬A. - Äquivalenzbeweis (A ⇔ B) (A genau dann, wenn B) Beweise dass A → B und dass B → A. (Wenn A, dann B, und wenn B, dann A.) - Beweis durch Widerspruch: Beweise dass A ∧ ¬B → falsch Behauptung: Ist die Wurzel aus einer geraden natürlichen Zahl n eine natürliche Zahl, so ist diese gerade. n gerade und √ n = k ∈ N → k gerade Beweis durch Kontraposition: Zu zeigen: √ n = k ∈ N und k ungerade → n ungerade. 37 39 Grundlegende Beweisstrategien Grundlegende Beweisstrategien - Beweis durch Fallunterscheidung Um B zu beweisen, beweise dass A1 → B, . . . , An → B, wobei A1 ∨ · · · ∨ An ≡ wahr Mathematische Aussagen der Form A → B (Wenn A, dann B) - Beweis durch Kontraposition: Beweis von ¬B → ¬A. - Beweis durch Widerspruch: Beweise dass A ∧ ¬B → falsch Behauptung: Jede Primzahl p≥3 hat die Form p = 4·k±1 mit einer natürlichen Zahl k. Beweis: Man unterscheidet folgende vier Fälle für die Zahl p, von denen immer genau einer eintritt: Behauptung: Ist die Wurzel aus einer geraden natürlichen Zahl n eine natürliche Zahl, so ist diese gerade. 1. 2. 3. 4. √ Beweis: Angenommen, n = k wäre ungerade. Dann ist wegen der bereits bewiesenen Behauptung auch k 2 = n ungerade, und das ist ein Widerspruch zu der Voraussetzung, dass n gerade ist. √ Also ist die getroffene Annahme falsch, d.h., n ist gerade. p p p p = = = = 4k 4k + 1 4k + 2 4k + 3 = 4(k + 1) − 1 Im ersten dieser Fälle ist p durch 4 teilbar und damit keine Primzahl, im dritten Fall ist p durch 2 teilbar und somit ebenfalls keine Primzahl. Also muss einer der Fälle zwei oder vier eintreten, das heißt p hat die Form p = 4 · k ± 1 mit einer natürlichen Zahl k. 38 40 Grundlegende Beweisstrategien Grundlegende Beweisstrategien - Beweis durch Fallunterscheidung Um B zu beweisen, beweise dass A1 → B, . . . , An → B, wobei A1 ∨ · · · ∨ An ≡ wahr Aussagen mit Quantoren Es sei angemerkt, dass die Fallunterscheidung zwar vollständig sein muss, aber die untersuchten Fälle sich nicht gegenseitig ausschließen müssen. E A E x (p(x) → q(x)) Sei a ein geeignetes Element aus U. Beweis der Implikation p(a) → q(a). Damit folgt x ∈ U : p(x) → q(x). E x y A(x, y ) 41 Grundlegende Beweisstrategien 43 Grundlegende Beweisstrategien Aussagen mit Quantoren Beweise mittels Vollständiger Induktion A x ∈ U : (p(x) → q(x)) A Behauptung: n ∈ N : (n ist gerade und | √ A Wähle a beliebig aus U. Beweis der Implikation p(a) → q(a). Da a beliebig gewählt werden kann, folgt x ∈ U : p(x) → q(x) √ n ist eine natürliche Zahl → n ist gerade). {z } {z } | p(n) Beweis: Sei n beliebig aus N. Wir zeigen, dass wenn n gerade ist und √ Zahl ist, dann n gerade ist (das wurde auf Seite 6 bewiesen). q(n) √ n eine natürliche 42 44 Induktion Induktion über die natürlichen Zahlen Wesentliches Beweisprinzip in Mathematik und Logik Idee: Definition der natürlichen Zahlen Einfache Version (A1) 0 ist eine natürliche Zahl (A2) Jede natürliche Zahl n hat einen Nachfolger S(n) (A3) Aus S(n) = S(m) folgt n = m (A4) 0 ist nicht Nachfolger einer natürlichen Zahl (A5) Jede Menge X , die 0 und mit jeder natürlichen Zahl n auch deren Nachfolger S(n) enthält, umfasst alle natürlichen Zahlen. Induktion über die natürlichen Zahlen N (natural induction) Generalization Noethersche Induktion (noetherian induction/ induction over well-founded partially ordered sets) 45 47 Emmy Noether Induktion über die natürlichen Zahlen (A5) Geboren 1882 in Erlangen Jede Menge X , die 0 und mit jeder natürlichen Zahl n auch deren Nachfolger S(n) enthält, umfasst alle natürlichen Zahlen. A X Menge: Falls Gestorben 1934 in Princeton (USA) 0 ∈ X , und A n ∈N:n ∈X →n+1∈X so A Mitbegründerin der modernen Algebra n∈N:n∈X Induktionssatz Gelten die beiden Aussagen: - p(0) und - n ∈ N : p(n) → p(n + 1), dann gilt auch n ∈ N : p(n). Allgemein heißt eine geordnete algebraische Struktur noethersch, wenn es in ihr keine unendlich absteigenden Ketten gibt. A A 46 48 Induktion über die natürlichen Zahlen (A5) Induktion über die natürlichen Zahlen Struktur eines Induktionsbeweises Jede Menge X , die 0 und mit jeder natürlichen Zahl n auch deren Nachfolger S(n) enthält, umfasst alle natürlichen Zahlen. A X Menge: Falls Induktionsbasis: Beweise p(0) Induktionsvoraussetzung: Für ein beliebig gewähltes 0 ∈ X , und n ∈ N gilt p(n) A n ∈N:n ∈X →n+1∈X (3) Induktionsschluss: n∈N:n∈X Induktionssatz Gelten die beiden Aussagen: - p(0) und - n ∈ N : p(n) → p(n + 1), dann gilt auch n ∈ N : p(n). Folgere p(n + 1) aus der Induktionsvoraussetzung p(n) A so (1) (2) Induktionsbasis Induktionsschritt A A 49 51 Induktion über die natürlichen Zahlen Beispiel Behauptung: Die Summe der ersten n ungeraden Zahlen ist n2 . n−1 X Für alle n ∈ N, (2i + 1) = n2 . Struktur eines Induktionsbeweises (1) Induktionsbasis: Beweise p(0) (2) Induktionsschritt: Beweise p(n) → p(n + 1) i=0 für ein beliebiges n ∈ N 50 52 Beispiel Beispiel Behauptung: Die Summe der ersten n ungeraden Zahlen ist n2 . n−1 X n−1 X Für alle n ∈ N, (2i + 1) = n2 . p(n) : (2i + 1) = n2 Behauptung: Die Summe der ersten n ungeraden Zahlen ist n2 . n−1 X n−1 X (2i + 1) = n2 . Für alle n ∈ N, p(n) : (2i + 1) = n2 i=0 i=0 i=0 i=0 (1) Induktionsbasis: Beweise p(0) n = 0: 0 = 02 (1) Induktionsbasis: Beweise p(0) OK (2) Induktionsvoraussetzung: Für ein beliebig gewähltes n−1 X (2i + 1) = n2 n ∈ N gilt p(n): (3) Induktionsschluss: Folgere p(n + 1) aus p(n) n X (2i + 1) = (n + 1)2 . p(n + 1) : i=0 i=0 Beweis: n X (2i + 1) = ( i=0 n−1 X p(n) 2 2 (2i + 1)) + (2n + 1) = n + (2n + 1) = (n + 1) . i=0 53 Beispiel 55 Verallgemeinerte vollständige Induktion Behauptung: Die Summe der ersten n ungeraden Zahlen ist n2 . n−1 X n−1 X Für alle n ∈ N, (2i + 1) = n2 . p(n) : (2i + 1) = n2 i=0 Verallgemeinerte vollständige Induktion Gelten die beiden Aussagen: p(0) und n ∈ N : p(0) ∧ p(1) ∧ · · · ∧ p(n) → p(n + 1) i=0 A Induktionsbasis: Beweise p(0) OK (2) Induktionsvoraussetzung: Für ein beliebig gewähltes n−1 X n ∈ N gilt p(n): (2i + 1) = n2 dann gilt die Aussage A (1) n ∈ N : p(n). i=0 54 56 Wohlfundierte (Noethersche) Induktion Beispiel • Verallgemeinerte vollständige Induktion Verallgemeinerte vollständige Induktion Gelten die beiden Aussagen: Gilt die Aussage: A A dann gilt die Aussage A n ∈ N : p(n). A dann gilt die Aussage A n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) p(0) und n ∈ N : p(0) ∧ p(1) ∧ · · · ∧ p(n) → p(n + 1) n ∈ N : p(n). Induktionsvoraussetzung: Äquivalent Für ein beliebig gewähltes n ∈ N, gilt p(k) für alle k < n Gelten die beiden Aussagen: Induktionsschluss: Folgere p(n) aus der Induktionsvoraussetzung p(0) und n ∈ N : ( k ∈ N : (k < n + 1 → p(k)) → p(n + 1)) A A A dann gilt die Aussage n ∈ N : p(n). 57 59 Wohlfundierte (Noethersche) Induktion Beispiel Verallgemeinerte vollständige Induktion Satz: Jede natürliche Zahl lässt sich als Produkt von Primzahlen darstellen. p(n): n lässt sich als Produkt von Primzahlen darstellen. Gelten die beiden Aussagen: p(0) und n ∈ N : p(0) ∧ p(1) ∧ · · · ∧ p(n) → p(n + 1) A Induktionsvoraussetzung: p(k) gilt für alle k < n Induktionsschluss: Folgere p(n) aus der Induktionsvoraussetzung A dann gilt die Aussage Beweis: Sei n ∈ N beliebig gewählt. n ∈ N : p(n). Fallunterscheidung: Äquivalent Fall 1: n Primzahl. Dann lässt sich n als Produkt von Primzahlen darstellen. Gilt die Aussage: Fall 1: n keine Primzahl. Dann n = k1 · k2 , mit k1 , k2 ∈ N, k1 , k2 > 1. A A n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) A dann gilt die Aussage Da aber ki < n, i = 1, 2 ist nach Induktionsvoraussetzung bereits eine Darstellung als Produkt von Primzahlen für ki bekannt. n ∈ N : p(n). Multipliziert man diese beiden Produkte miteinander, so erhält man eine Darstellung für n. 58 60 A A n ∈ N : p(n) dann gilt Theorem: Falls P dann gilt Q n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) A A n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) A Theorem: Falls Wohlfundierte (Noethersche) Induktion A Wohlfundierte (Noethersche) Induktion n ∈ N : p(n) P Q Beweis: Zu zeigen: P → Q Kontrapositionsbeweis: Wir zeigen, dass ¬Q → ¬P Verallgemeinerung E A Annahme: ¬Q := ¬( n ∈ N : p(n)) ≡ n ∈ N : ¬p(n). - beliebige Menge A statt N > wohlfundierte Ordnung auf N: es gibt keine unendliche Folge x1 , . . . , xn , . . . mit x1 > x2 > · · · > xn > . . . . - < “partielle” Ordnung auf A Sei Y = {n ∈ N | ¬p(n)} 6= ∅. Dann hat Y ein minimales Element m, d.h. m(m ∈ Y ∧ ( k ∈ N : (k < m → k 6∈ Y ))) = ¬P. - < wohlfundiert (es gibt keine unendliche Folge x1 , . . . , xn , . . . mit x1 > x2 > · · · > x n > . . . ) A E 61 63 Wohlfundierte (Noethersche) Induktion Binäre Relationen Definition: A Theorem: Falls A n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) A n ∈ N : p(n) dann gilt Eine binäre Relation R über einer Menge A ist eine Teilmenge von A × A. P R binäre Relation: R ⊆ A × A. Q Statt (x, y ) ∈ R schreiben wir: R(x, y ) oder xRy . Beweis: Zu zeigen: P → Q Kontrapositionsbeweis: Wir zeigen, dass ¬Q → ¬P E A Annahme: ¬Q := ¬( n ∈ N : p(n)) ≡ n ∈ N : ¬p(n). > wohlfundierte Ordnung auf N: es gibt keine unendliche Folge x1 , . . . , xn , . . . mit x1 > x2 > · · · > xn > . . . . Sei Y = {n ∈ N | ¬p(n)} 6= ∅. Dann hat Y ein minimales Element m, d.h. m(m ∈ Y ∧ ( k ∈ N : (k < m → k 6∈ Y ))) = ¬P. A 62 64 E Partielle Ordnungen Partielle Ordnungen Definition: Definition: Eine binäre Relation R über einer Menge A ist eine partielle Ordnung gdw. Eine binäre Relation R über einer Menge A ist eine partielle Ordnung gdw. R ist transitiv: A R ist antisymmetrisch • • R ist antisymmetrisch A • R ist reflexiv: A R ist transitiv: A • • A R ist reflexiv: A • x ∈ A(xRx) x, y , z ∈ A(xRy ∧ yRz → xRz) x, y ∈ A(xRy ∧ yRx → x = y ) x ∈ A(xRx) x, y , z ∈ A(xRy ∧ yRz → xRz) x, y ∈ A(xRy ∧ yRx → x = y ) Beispiele: • (N, ≤) • (A, R), wobei A = {0, a, b, 1} und R = {(0, 0), (0, a), (0, 1), (a, a), (a, 1), (b, b), (b, 1), (1, 1)} R partielle Ordnung: a und b in R unvergleichbar. 65 Partielle Ordnungen Totale Ordnungen Definition: Definition: Sei (A, R) eine partiell geordnete Menge. R ist eine totale Ordnung gdw. R(x, y ) oder R(y , x) für alle x, y ∈ A. Eine binäre Relation R über einer Menge A ist eine partielle Ordnung gdw. • R ist reflexiv: A • R ist transitiv: A • R ist antisymmetrisch 67 A x ∈ A(xRx) x, y , z ∈ A(xRy ∧ yRz → xRz) x, y ∈ A(xRy ∧ yRx → x = y ) Dann heißt (A, R) eine partiell geordnete Menge 66 68 Minimum Wohlfundierte partielle Ordnungen Definition: Sei (A, R) eine partiell geordnete Menge. Sei (A, ≤) eine partiell geordnete Menge. Sei A′ ⊆ A, und m ∈ A′ . m ist ein Minimales Element von A′ , gdw.: es gibt kein x ∈ A′ mit x ≤ m, x 6= m. Definition: x < y gdw.: (x ≤ y und x 6= y ) (für x, y ∈ A) 69 Minimum Wohlfundierte partielle Ordnungen Definition: Sei (A, R) eine partiell geordnete Menge. A′ 71 Sei (A, ≤) eine partiell geordnete Menge. A′ . Sei ⊆ A, und m ∈ m ist ein Minimales Element von A′ , gdw.: es gibt kein x ∈ A′ mit x ≤ m, x 6= m. Definition: x < y gdw.: (x ≤ y und x 6= y ) (für x, y ∈ A) Definition (Noethersch / wohlfundiert) (A, ≤) heißt noethersch (oder wohlfundiert) gdw.: Beispiele: Es gibt keine unendlich absteigende Kette in A, das heißt: • (N, ≤). Sei A′ = {3, 5, 7, 9} ⊆ N. 3 ist ein Minimales Element von A′ . Es gibt keine unendliche Folge (xi )i∈N , mit • xi ∈ A für alle i ∈ N und • xi+1 < xi für alle i ∈ N. • Sei (A, R) wobei A = {a, b, c, d} und R = {(a, a), (a, b), (c, c), (c, b), (c, d), (e, e), (e, d), (b, b), (d, d)} (Unendlich aufsteigende Ketten sind zulässig) Sei A′ = {a, b, c} ⊆ A. A′ hat zwei minimale Elemente: a und c. 70 72 Beispiele Wohlfundierte partielle Ordnungen (N, ≤) is wohlfundiert Lemma. (A, ≤) ist noethersch (wohlfundiert) gdw.: jede nicht-leere Teilmenge von A hat (mindestens) ein Minimales Element. (Z, ≤) ist nicht wohlfundiert (0 ∪ { n1 | n ∈ N}, ≤) ist nicht wohlfundiert (R, ≤) ist nicht wohlfundiert Beweis: “←” Statt P → Q, beweisen wir wieder ¬Q → ¬P. Annahme: (A, ≤) ist nicht noethersch, d.h. es gibt eine unendliche Folge (xi )i∈N , mit • xi ∈ A für alle i ∈ N und • xi+1 < xi für alle i ∈ N. Sei A′ = {xi | i ∈ N}. Wir zeigen, dass A′ keinen minimalen Element hat: Sei a ∈ A′ . Dann a = xi für einen i ∈ N. Dann ist xi+1 < a; deshalb kann a nicht minimal sein. 73 75 Wohlfundierte partielle Ordnungen Wohlfundierte partielle Ordnungen Lemma. (A, ≤) ist noethersch (wohlfundiert) gdw.: jede nicht-leere Teilmenge von A hat (mindestens) ein Minimales Element. Lemma. (A, ≤) ist noethersch (wohlfundiert) gdw.: jede nicht-leere Teilmenge von A hat (mindestens) ein Minimales Element. Beweis: “→” Statt P → Q, beweisen wir ¬Q → ¬P. Nota bene Sei A′ ⊆ A nicht-leere Teilmenge von A, die kein minimales Element enthält. Sei x1 ∈ A′ . Da x1 nicht minimal ist, gibt es x2 ∈ A′ mit x2 < x1 . Da x2 nicht minimal ist, gibt es x3 ∈ A′ mit x3 < x2 < x1 . Wir können deswegen eine unendliche absteigende Kette von Elementen aus A bilden, d.h. A ist nicht noethersch. Es genügt nicht, dass A ein minimales Element hat (selbst dann nicht, wenn ≤ total ist). Beispiel: (0 ∪ { 74 1 | n ∈ N}, ≤) n 76 A A n ∈ N : p(n) Theorem: Falls P n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) A A dann gilt n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) A Theorem: Falls Verallgemeinerte vollständige Induktion n ∈ N : p(n) dann gilt Q Beweis: < wohlfundiert (es gibt keine unendliche Folge x1 , . . . , xn , . . . mit x1 > x2 > · · · > x n > . . . ) A Verallgemeinerte vollständige Induktion P Q Beweis: Zu zeigen: P → Q Kontrapositionsbeweis: Wir zeigen, dass ¬Q → ¬P E A Annahme: ¬Q := ¬( n ∈ N : p(n)) ≡ n ∈ N : ¬p(n). > wohlfundierte Ordnung auf N: es gibt keine unendliche Folge x1 , . . . , xn , . . . mit x1 > x2 > · · · > xn > . . . . Verallgemeinerung - beliebige Menge A statt N - < “partielle” Ordnung auf A - < wohlfundiert Sei Y = {n ∈ N | ¬p(n)} 6= ∅. Dann hat Y ein minimales Element m, d.h. m(m ∈ Y ∧ ( k ∈ N : (k < m → k 6∈ Y ))) = ¬P. A E 77 79 Wohlfundierte (Noethersche) Induktion Wohlfundierte (Noethersche) Induktion Sei (A, ≤) noethersch (wohlfundiert). Sei p ein Prädikat auf A, d.h., eine Funktion p : A → {wahr , falsch} (Eigenschaft der Elementen aus A, die wahr oder falsch sein kann.) Theorem: (Verallgemeinerte vollständige Induktion) P Theorem. Falls Q dann gilt Sei (A, ≤) noethersch (wohlfundiert). Sei p ein Prädikat auf A, d.h., eine Funktion p : A → {wahr , falsch} A Sei Y = {y ∈ X | ¬p(y )} 6= ∅. Dann hat Y ein minimales Element x0 , d.h. x0 (x0 ∈ Y ∧ ( y ∈ X : (y < x0 → y 6∈ Y ))). Q E A A x ∈ A : p(x) P 78 A A dann gilt Q E Theorem. (Noethersche Induktion) x ∈ A : ( y ∈ A : (y < x → p(y )) → p(x)) x ∈ X : p(x) P Beweis: zu zeigen: P → Q. Kontrapositionsbeweis: ¬Q → ¬P Annahme: ¬Q := (¬ x ∈ X :p(x)) ≡ ( x ∈ X :¬p(x)). > wohlfundierte Ordnung auf X : es gibt keine unendliche Folge x1 , . . . , xn , . . . mit x1 > x2 > · · · > xn > . . . . (Eigenschaft der Elementen aus A, die wahr oder falsch sein kann.) Falls x ∈ X : ( y ∈ X : (y < x → p(y )) → p(x)) A A n ∈ N : p(n) A n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) A A dann gilt A Falls 80 Wohlfundierte (Noethersche) Induktion Fehlerquellen Sei (A, ≤) noethersch (wohlfundiert). Sei p ein Prädikat auf A, d.h., eine Funktion p : A → {wahr , falsch} (Eigenschaft der Elementen aus A, die wahr oder falsch sein kann.) A x ∈ X : ( y ∈ X : (y < x → p(y )) → p(x)) A dann gilt Behauptung: Alle Menschen haben die gleiche Haarfarbe A Theorem. Falls Was ist hier falsch? x ∈ X : p(x) P p(n) : In einer Menge von n Menschen haben alle die gleiche Haarfarbe Q Induktionbasis: n = 1 Beweis: zu zeigen: P → Q. Kontrapositionsbeweis: ¬Q → ¬P Annahme: ¬Q := (¬ x ∈ X :p(x)) ≡ ( x ∈ X :¬p(x)). Für eine Menge mit nur einem Menschen gilt die Behauptung trivial E A > wohlfundierte Ordnung auf X : es gibt keine unendliche Folge x1 , . . . , xn , . . . mit x1 > x2 > · · · > xn > . . . . Sei Y = {y ∈ X | ¬p(y )} 6= ∅. Dann hat Y ein minimales Element x0 , d.h. x0 (x0 ∈ Y ∧( y ∈ X : (y < x0 → y 6∈ Y ))) = ¬P. | {z } {z } | A E ¬p(x0 ) y <x0 →p(y ) 81 83 Fehlerquellen Fehlerquellen Häufige Fehler bei Induktionsbeweisen Was ist hier falsch? • Ordnung ist nicht noethersch • Nicht alle Minima (Induktionsanfänge) bedacht Behauptung: Alle Menschen haben die gleiche Haarfarbe • Bei Induktionsschritt die Grenzfälle nicht bedacht p(n) : In einer Menge von n Menschen haben alle die gleiche Haarfarbe Induktionsvoraussetzung: p(n) wahr. Induktionsschritt: Beweise, dass aus p(n), p(n + 1) folgt. n + 1 Menschen werden in eine Reihe gestellt. Der Mensch links außen wird rausgeschickt. Nun kann die Induktionsbehauptung angewendet werden und alle verbliebenen haben die gleiche Haarfarbe (mit dem rechts außen). 82 84 Fehlerquellen Produktordnung Was ist hier falsch? Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen. Dann ist die Produktordnung ≤produkt auf A × B gegeben durch: Behauptung: Alle Menschen haben die gleiche Haarfarbe (x, y ) ≤produkt (x ′ , y ′ ) gdw. (x ≤A x ′ und y ≤B y ′ ) p(n) : In einer Menge von n Menschen haben alle die gleiche Haarfarbe Induktionsvoraussetzung: p(n) wahr. Lemma: Wenn (A, ≤A ) und (B, ≤B ) noethersch sind, dann ist (A × B, ≤produkt ) noethersch. Induktionsschritt: Beweise, dass aus p(n), p(n + 1) folgt. n + 1 Menschen werden in eine Reihe gestellt. Der Mensch rechts außen wird rausgeschickt. Die Induktionsbehauptung kann angewendet werden und alle verbliebenen haben die gleiche Haarfarbe (mit dem links außen). Also haben die beiden außen die gleiche Haarfarbe, wie die in der Mitte, und die haben auch alle die gleiche Haarfarbe Also haben alle n + 1 Menschen die gleiche Haarfarbe. 85 87 Lemma: (X , ≤) noethersch gdw: für jede unendliche Folge Beispiele von noetherschen Ordnungen (xi )i∈N mit xi ∈ X für alle i ∈ N und mit Produktordnung x1 ≥ x2 ≥ x3 ≥ · · · ≥ . . . xn ≥ . . . es gibt ein m ∈ N so dass xm = xk für alle k ≥ m. Ordnungen auf kartesischen Produkten Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen. Dann ist die Produktordnung ≤produkt auf A × B gegeben durch: • Die Produktordnung (x, y ) ≤produkt (x ′ , y ′ ) gdw. (x ≤A x ′ und y ≤B y ′ ) • Die lexikographische Ordnung Lemma: Wenn (A, ≤A ) und (B, ≤B ) noethersch sind, dann ist (A × B, ≤produkt ) noethersch. Beweis: Sei ((xi , yi ))i∈N unendliche Folge in A × B mit (x1 , y1 ) ≥produkt (x2 , y2 ) ≥produkt (x3 , y3 ) ≥produkt · · · ≥produkt (xn , yn ) ≥produkt . . . Dann x1 ≥A x2 ≥A x3 ≥A . . .≥A xn ≥A . . . und y1 ≥B y2 ≥B y3 ≥B . . .≥B yn ≥B . . . Da (A, ≤A ) noethersch ist, es gibt m1 so dass xm1 = xk für alle k ≥ m1 . Da (B, ≤B ) noethersch ist, es gibt m2 so dass xm2 = xj für alle j ≥ m2 . Sei m = max(m1 , m2 ). Dann (xm , ym ) = (xi , yi ) für alle i ≥ m. 86 Das zeigt, dass (A × B, ≤produkt ) noethersch ist. 88 Lemma: (X , ≤) noethersch gdw: für jede unendliche Folge (xi )i∈N mit xi ∈ X für alle i ∈ N und mit x1 ≥ x2 ≥ x3 ≥ · · · ≥ . . . xn ≥ . . . es gibt ein m ∈ N so dass xm = xk für alle k ≥ m. Lexikographische Ordnung Lexikographische Ordnung Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen. Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen. Dann ist die lexikographische Ordnung ≤ auf A × B gegeben durch: Dann ist die lexikographische Ordnung ≤ auf A × B gegeben durch: (x, y ) ≤ (x ′ , y ′ ) gdw. x = x ′ und y = y ′ oder x <A x′ (x, y ) ≤ (x ′ , y ′ ) gdw. x = x ′ und y = y ′ oder x <A x ′ oder oder x = x ′ und y <B y ′ x = x ′ und y <B y ′ Lemma: Wenn (A, ≤A ) und (B, ≤B ) noethersch sind, dann ist (A × B, ≤) noethersch. Lemma: Wenn (A, ≤A ) und (B, ≤B ) noethersch sind, dann ist (A × B, ≤) noethersch. Beweis: Sei ((xi , yi ))i∈N unendliche Folge in A × B mit (x1 , y1 ) ≥ (x2 , y2 ) ≥ (x3 , y3 ) ≥ · · · ≥ (xn , yn ) ≥ . . . 89 Lemma: (X , ≤) noethersch gdw: für jede unendliche Folge (xi )i∈N mit xi ∈ X für alle i ∈ N und mit x1 ≥ x2 ≥ x3 ≥ · · · ≥ . . . xn ≥ . . . es gibt ein m ∈ N so dass xm = xk für alle k ≥ m. Fall 2: x1 = x2 = · · · = xi1 ≥A xi1 +1 = . . . = xi2 ≥A . . . . Da (A, ≤A ) noethersch ist, es gibt m2 so dass xm2 = xk für alle k ≥ m2 . 91 Lemma: (X , ≤) noethersch gdw: für jede unendliche Folge Lexikographische Ordnung (xi )i∈N mit xi ∈ X für alle i ∈ N und mit Lexikographische Ordnung x1 ≥ x2 ≥ x3 ≥ · · · ≥ . . . xn ≥ . . . es gibt ein m ∈ N so dass xm = xk für alle k ≥ m. Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen. Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen. Dann ist die lexikographische Ordnung ≤ auf A × B gegeben durch: Dann ist die lexikographische Ordnung ≤ auf A × B gegeben durch: (x, y ) ≤ (x ′ , y ′ ) gdw. x = x ′ und y = y ′ oder (x, y ) ≤ (x ′ , y ′ ) gdw. x = x ′ und y = y ′ oder x <A x ′ oder x <A x ′ oder x = x ′ und y <B y ′ x = x ′ und y <B y ′ Lemma: Wenn (A, ≤A ) und (B, ≤B ) noethersch sind, dann ist (A × B, ≤) noethersch. Lemma: Wenn (A, ≤A ) und (B, ≤B ) noethersch sind, dann ist (A × B, ≤) noethersch. Beweis: Sei ((xi , yi ))i∈N unendliche Folge in A × B mit Beweis: Sei ((xi , yi ))i∈N unendliche Folge in A × B mit (x1 , y1 ) ≥ (x2 , y2 ) ≥ (x3 , y3 ) ≥ · · · ≥ (xn , yn ) ≥ . . . Fall 1: Die ersten Komponenten sind alle gleich: Dann y1 ≥B y2 ≥B . . . . (B, ≤B ) noethersch ist, es gibt m1 so dass xm1 = xj für alle j ≥ m1 . (x1 , y1 ) ≥ (x2 , y2 ) ≥ (x3 , y3 ) ≥ · · · ≥ (xn , yn ) ≥ . . . Sei m = max(m1 , m2 ). Dann (xm , ym ) = (xi , yi ) für alle i ≥ m. 90 Das zeigt, dass (A × B, ≤) noethersch ist. 92 Beispiel für Induktion: Ackermann-Funktion ACK (x, y ) = 8 > > < y +1 > > : Beispiel für Induktion: Ackermann-Funktion falls x = 0 ACK (x − 1, 1) falls x 6= 0 und y = 0 ACK (x − 1, ACK (x, y − 1)) falls x 6= 0 und y 6= 0 ACK (x, y ) = 8 > > < y +1 > > : falls x = 0 ACK (x − 1, 1) falls x 6= 0 und y = 0 ACK (x − 1, ACK (x, y − 1)) falls x 6= 0 und y 6= 0 Theorem. ACK ist eine totale Funktion auf N × N. Induktionsvoraussetzung: ACK (m′ , n′ ) definiert für alle (m′ , n′ ) < (m, n). Die Ackermann-Funktion ist eine 1926 von Wilhelm Ackermann gefundene, extrem schnell wachsende mathematische Funktion, mit deren Hilfe in der theoretischen Informatik Grenzen von Computer- und Berechnungsmodellen aufgezeigt werden können. Induktionsschritt: Beweis durch Fallunterscheidung • m = 0: ACK (0, n) = n + 1 (definiert) • m 6= 0, n = 0. Dann (m − 1, 1) < (m, 0), d.h. ACK (m − 1, 1) definiert Aber ACK (m, 0) = ACK (m − 1, 1), so ACK (m, n) definiert. • m 6= 0, n 6= 0. Dann (m, n − 1) < (m, n), d.h. ACK (m, n − 1) definiert. (m − 1, z) < (m, z), d.h. ACK (m − 1, ACK (m, n − 1)) definiert. 93 95 Beispiel für Induktion: Ackermann-Funktion 8 > > < y +1 ACK (x, y ) = ACK (x − 1, 1) > > : ACK (x − 1, ACK (x, y − 1)) Zusammenfassung falls x = 0 • Grundlegende Beweisstrategien falls x 6= 0 und y = 0 • Induktion über die natürlichen Zahlen falls x 6= 0 und y 6= 0 • Partielle Ordnung, totale Ordnung, minimale Elemente • Noethersche (wohlfundierte) Menge Theorem. ACK ist eine totale Funktion auf N × N. • Noethersche Induktion (Theorem, Beweis) Induktionbasis: ACK (0, 0) = 1 (definiert) • Fehlerquellen • Produktordnung/Lexikographische Ordnung • Beispiel für noethersche Induktion: Ackermann-Funktion 94 96 2. Aussagenlogik Beispiel: Das 8-Damen Problem Beschreibung des Problems Für jedes Feld des Schachbretts eine aussagenlogische Variable Dij Mit der Vorstellung, dass Dij den Wert wahr hat, wenn auf dem Feld (i, j) eine Dame steht. Wir benutzen kartesische Koordinaten zur Notation von Positionen 97 Beispiel: Das 8-Damen Problem 99 Beispiel: Das 8-Damen Problem Man platziere acht Damen so auf einem Schachbrett, dass sie sich gegenseitig nicht bedrohen. Beispiel: Auf dem Feld (5, 7) steht eine Dame 7→ D57 wahr. Einschränkungen pro Feld: Fij Falls auf dem Feld (5, 7) eine Dame steht: • keine andere Dame auf Feld (5,1), (5,2), (5,3), (5,4),(5,5), (5,6), (5,8) • keine andere Dame auf Feld (1,7), (2,7), (3,7), (4,7),(6,7), (7,7), (8,7) • keine andere Dame auf Feld (6,8), (4,6), (3,5), (2,4),(1,3) • keine andere Dame auf Feld (4,8), (6,6), (7,5), (8,4) 98 100 Beispiel: Das 8-Damen Problem Beispiel: Das 8-Damen Problem Beispiel: Auf dem Feld (5, 7) steht eine Dame 7→ D57 wahr. Beispiel: Auf dem Feld (5, 7) steht eine Dame 7→ D57 wahr. Einschränkungen pro Feld: Fij Einschränkungen pro Feld: Fij Falls auf dem Feld (5, 7) eine Dame steht: D57 → ¬D58 ∧ ¬D5,6 ∧ ¬D5,5 ∧ ¬D5,4 ∧ ¬D5,3 ∧ ¬D5,2 ∧ ¬D5,1 D57 → ¬D17 ∧ ¬D2,7 ∧ ¬D3,7 ∧ ¬D4,7 ∧ ¬D6,7 ∧ ¬D7,7 ∧ ¬D87 • keine andere Dame auf Feld (5,8), (5,6), (5,5), (5,4),(5,3), (5,2), (5,1) D57 → ¬D68 ∧ ¬D4,6 ∧ ¬D3,5 ∧ ¬D2,4 ∧ ¬D1,3 D57 → ¬D58 ∧ ¬D5,6 ∧ ¬D5,5 ∧ ¬D5,4 ∧ ¬D5,3 ∧ ¬D5,2 ∧ ¬D5,1 D57 → ¬D48 ∧ ¬D6,6 ∧ ¬D7,5 ∧ ¬D8,4 • keine andere Dame auf Feld (1,7), (2,7), (3,7), (4,7),(6,7), (7,7), (8,7) D57 → ¬D17 ∧ ¬D2,7 ∧ ¬D3,7 ∧ ¬D4,7 ∧ ¬D6,7 ∧ ¬D7,7 ∧ ¬D87 | {z D57 → ¬D68 ∧ ¬D4,6 ∧ ¬D3,5 ∧ ¬D2,4 ∧ ¬D1,3 Für jedes k mit 1 ≤ k ≤ 8: F57 Globale Einschränkungen • keine andere Dame auf Feld (6,8), (4,6), (3,5), (2,4),(1,3) • keine andere Dame auf Feld (4,8), (6,6), (7,5), (8,4) } Rk := D1,k ∨ D2,k ∨ D3,k ∨ D4,k ∨ D5,k ∨ D6,k ∨ D7,k ∨ D8,k D57 → ¬D48 ∧ ¬D6,6 ∧ ¬D7,5 ∧ ¬D8,4 103 101 Beispiel: Das 8-Damen Problem Beispiel: Das 8-Damen Problem Struktur: Wahrheitswerte für die atomaren Aussagen Dij Beispiel: Auf dem Feld (5, 7) steht eine Dame 7→ D57 wahr. Einschränkungen pro Feld: Fij D57 → ¬D58 ∧ ¬D5,6 ∧ ¬D5,5 ∧ ¬D5,4 ∧ ¬D5,3 ∧ ¬D5,2 ∧ ¬D5,1 Modell für Fij (Rk ): Wahrheitswerte für die atomaren Aussagen Dij so dass Fij wahr (bzw. Rk wahr). D57 → ¬D17 ∧ ¬D2,7 ∧ ¬D3,7 ∧ ¬D4,7 ∧ ¬D6,7 ∧ ¬D7,7 ∧ ¬D87 D57 → ¬D68 ∧ ¬D4,6 ∧ ¬D3,5 ∧ ¬D2,4 ∧ ¬D1,3 D57 → ¬D48 ∧ ¬D6,6 ∧ ¬D7,5 ∧ ¬D8,4 | {z F57 Lösung des 8-Damen Problems: Eine aussagenlogische Struktur beschreibt eine Lösung des 8-DamenProblems genau dann, wenn sie ein Modell der Formeln } • Fij für alle 1 ≤ i, j ≤ 8 • Rk für alle 1 ≤ k ≤ 8 ist. 102 104 Beispiel: Aufzug Modellierung: Strukturen oben oben oben oben Aufzug oben Mitte gedruckt Aufzug oben Mitte gedruckt Aufzug oben Mitte gedruckt F.nach unten mitte oben mitte mitte unten unten Aufzug mitte Unten gedruckt F.nach unten mitte F.nach unten mitte F.nach unten unten unten unten v(AufzugOben) = wahr v(AufzugMitte) = wahr v(AufzugOben) = wahr v(AufzugMitte) = wahr v(MitteGedrückt) = wahr v(UntenGedrückt) = wahr v(MitteGedrückt) = wahr v(FährtNachUnten) = wahr v(FährtNachUnten) = wahr v(FährtNachUnten) = wahr 105 107 Beispiel: Aufzug Modellierung: Strukturen oben oben Aufzug oben Mitte gedruckt oben Aufzug oben Mitte gedruckt oben F.nach unten mitte oben mitte mitte mitte unten unten Aufzug mitte Oben gedruckt Aufzug mitte Unten gedruckt mitte F.nach unten Aufzug mitte F.nach unten unten F.nach oben unten unten v(AufzugOben) = wahr v(AufzugMitte) = wahr v(AufzugOben) = wahr v(MitteGedrückt) = wahr v(UntenGedrückt) = wahr v(MitteGedrückt) = wahr v(FährtNachUnten) = wahr v(FährtNachUnten) = wahr v(FährtNachUnten) = wahr v(AufzugMitte) = wahr 106 108 Modellierung: Strukturen oben Aufzug oben Mitte gedruckt oben F.nach unten mitte mitte unten unten oben Aufzug mitte Unten gedruckt mitte Aussagenlogik Die Welt besteht aus Fakten die wahr oder falsch sein können. Aufzug oben Mitte gedruckt F.nach unten Aufzug mitte F.nach unten unten Aussagen beziehen sich auf Strukturen (Formale) Aussagen sind in jeder einzelnen Struktur zu wahr oder falsch auswertbar 109 Formale Logik 111 2.1 Syntax der Aussagenlogik • Syntax welche Formeln? • Semantik Modelle (Strukturen) Wann ist eine Formel wahr (in einer Struktur)? • Deduktionsmechanismus Ableitung neuer wahrer Formeln 110 112 Syntax der Aussagenlogik: Logische Zeichen Formeln der Aussagenlogik ⊤ Symbol für die Formel “wahr” Definition: Menge ForΠ der Formeln über Π: ⊥ Symbol für die Formel “falsch” Die kleinste Menge mit: • ⊤ ∈ ForΠ und ⊥∈ ForΠ ¬ Negationssymbol (“nicht”) • Π ⊆ ForΠ • Wenn F , G ∈ ForΠ , dann auch ∧ Konjunktionssymbol (“und”) ¬F , (F ∧ G ), (F ∨ G ), (F → G ), (F ↔ G ) ∨ Disjunktionssymbol (“oder”) Elemente von ForΠ . → Implikationssymbol (“wenn . . . dann”) ↔ Symbol für Äquivalenz (“genau dann, wenn”) ( ) die beiden Klammern 113 115 Vokabular der Aussagenlogik Aussagenformeln Abzählbare Menge von Symbolen, etwa ForΠ Menge der Formeln über Π: ::= ⊥ (Falsum) | ⊤ (Verum) | P, | ¬F | (F ∧ G ) (Konjunktion) | (F ∨ G ) (Disjunktion) • atomare Aussagen | (F → G ) (Implikation) • Atome | (F ↔ G ) (Äquivalenz) F, G, H Π = {P0 , . . . , Pn } oder Π = {P0 , P1 , . . . } Bezeichnungen für Symbole in Π P∈Π (atomare Formel) (Negation) • Aussagenvariablen 114 116 Konventionen zur Notation Terminologie Eine Formel F , die als Teil einer Formel G auftritt, heißt Teilformel von G . • Klammereinsparungen werden nach folgenden Regeln vorgenommen: – ¬ >p ∧ >p ∨ >p → >p ↔ (Präzedenzen), – ∨ und ∧ sind assoziativ und kommutativ, • F ist eine Teilformel von F 9 = • F = ¬G und → H Teilformel von G ; • F = F1 ρ F2 (wo ρ ∈ {∨, ∧, ⇒, ⇔}) H Teilformel von F1 oder F2 H Teilformel von F 9 > > = > > ; → H Teilformel von F 117 Beispiel: 8-Damenproblem 119 2.2 Strukturelle Induktion Induktion über Formelaufbau Aussagenlogische Variablen Di,j bedeutet: Auf dem Feld (i, j) steht eine Dame. Formeln “Wenn auf dem Feld (5, 7) eine Dame steht, kann keine Dame auf Feld (5,8), (5,6), (5,5), (5,4),(5,3), (5,2), (5,1) stehen”: D57 → ¬D58 ∧ ¬D5,6 ∧ ¬D5,5 ∧ ¬D5,4 ∧ ¬D5,3 ∧ ¬D5,2 ∧ ¬D5,1 118 120 Induktion über Formelaufbau: Beispiel Induktion über Formelaufbau: Beispiel Lemma: Ist F ∈ ForΠ und sind F1 , F2 Teilformeln von F , dann gilt Lemma: Ist F ∈ ForΠ und sind F1 , F2 Teilformeln von F , dann gilt • F2 ist Teilformel von F1 , oder • F2 ist Teilformel von F1 , oder • F1 ist Teilformel von F2 , oder • F1 ist Teilformel von F2 , oder • F1 , F2 liegen getrennt • F1 , F2 liegen getrennt Beweis: Durch noethersche Induktion über den Formelaufbau • A = ForΠ • Teilformel: Teilformelrelation auf A: F Teilformel G (alternative Notation: Teilformel(F , G )) gdw. F Teilformel von G . Relation Teilformel partielle Ordnung; noethersch 121 123 Induktion über Formelaufbau: Beispiel Strukturelle Induktion Menge aller aussagenlogischen Formeln ForΠ Basismenge: Lemma: Ist F ∈ ForΠ und sind F1 , F2 Teilformeln von F , dann gilt ⊤, ⊥; P0 , P1 , P2 , . . . sind aussagenlogische Formeln (atomare Formeln) Erzeugungsregel: Wenn F1 , F2 aussagenlogische Formeln sind, dann sind auch ¬F1 , F1 ∧ F2 , F1 ∨ F2 , F1 → F2 , F1 ↔ F2 aussagenlogische Formeln • F2 ist Teilformel von F1 , oder • F1 ist Teilformel von F2 , oder ForΠ kleinste Menge, die- ⊤, ⊥ und Π enthält • F1 , F2 liegen getrennt - zusammen mit F auch ¬F enthält - zusammen mit F1 , F2 auch F1 opF2 enthält (op ∈ {∧, ∨, →, ↔}) Beweis: Durch noethersche Induktion über den Formelaufbau 122 124 Strukturelle Induktion Semantik der Aussagenlogik Menge aller aussagenlogischen Formeln ForΠ ⊤, ⊥; P0 , P1 , P2 , . . . sind aussagenlogische Formeln (atomare Formeln) Basismenge: Π eine aussagenlogische Signatur Erzeugungsregel: Wenn F1 , F2 aussagenlogische Formeln sind, dann sind auch ¬F1 , F1 ∧ F2 , F1 ∨ F2 , F1 → F2 , F1 ↔ F2 aussagenlogische Formeln Aussagenvariablen für sich haben keine Bedeutung. Hierfür müssen Wertebelegungen (Valuationen) explizit oder implizit aus dem Kontext zur Verfügung stehen. ForΠ kleinste Menge, die- ⊤, ⊥ und Π enthält - zusammen mit F auch ¬F enthält - zusammen mit F1 , F2 auch F1 opF2 enthält (op ∈ {∧, ∨, →, ↔}) Eine Valuation (Wertebelegung) ist eine Abbildung Gelten die beiden Aussagen: - p(A) für alle atomaren Formeln A ∈ {⊤, ⊥} ∪ Π A dann gilt auch A : Π → {0, 1} A - F ∈ForΠ : ((F = ¬F1 ∧p(F1 ))→p(F )) ∧ F ∈ ForΠ : p(F ). ((F = F1 opF2 ∧p(F1 )∧p(F2 ))→p(F )) Wir werden Wertebelegungen auch Aussagenlogische Strukturen, Aussagenlogische Modelle oder Interpretationen nennen. 125 127 2.3 Semantik der Aussagenlogik Semantik der Aussagenlogik Π eine aussagenlogische Signatur Aussagenvariablen für sich haben keine Bedeutung. Hierfür müssen Wertebelegungen (Valuationen) explizit oder implizit aus dem Kontext zur Verfügung stehen. Eine Wertebelegung ist eine Abbildung A : Π → {0, 1} Beispiel: 126 A B C 0 1 0 (Bei drei Symbolen gibt es 8 mögliche Modelle) 128 Semantik der Aussagenlogik Semantik der Aussagenlogik Auswertung von Formeln in einem Modell Auswertung von Formeln in einem Modell Sei A : Π → {0, 1} eine Wertebelegung. Sei A : Π → {0, 1} eine Wertebelegung. A∗ A∗ : ForΠ → {0, 1} wird wie folgt definiert: : ForΠ → {0, 1} wird wie folgt definiert: A∗ (⊥) = 0 A∗ (⊤) = 1 A∗ (P) = A(P) 129 Semantik der Aussagenlogik 131 Semantik der Aussagenlogik Auswertung von Formeln in einem Modell Auswertung von Formeln in einem Modell Sei A : Π → {0, 1} eine Wertebelegung. Sei A : Π → {0, 1} eine Wertebelegung. A∗ : ForΠ → {0, 1} wird wie folgt definiert: A∗ : ForΠ → {0, 1} wird wie folgt definiert: 8 < 0 A∗ (¬F ) = : 1 A∗ (⊥) = 0 A∗ (⊤) = 1 130 falls A∗ (F ) = 1 falls A∗ (F ) = 0 132 Semantik der Aussagenlogik Wahrheitstafel für die logischen Operatoren Auswertung von Formeln in einem Modell Sei A : Π → {0, 1} eine Wertebelegung. A∗ : ForΠ → {0, 1} wird wie folgt definiert: 8 < 0 A (F1 ∧ F2 ) = : 1 8 < 0 A∗ (F1 ∨ F2 ) = : 1 ∗ falls A∗ (F1 ) = 0 oder A∗ (F2 ) = 0 falls A∗ (F1 ) = A∗ (F2 ) = 1 falls A∗ (F1 ) falls A∗ (F1 ) = 1 oder A∗ (F2 ) = 1 = A∗ (F2 ) P ¬P 0 1 1 0 ∧ 0 1 ∨ 0 1 0 0 0 0 0 1 1 0 1 1 1 1 → 0 1 ↔ 0 1 0 1 1 0 1 0 1 0 1 1 0 1 =0 133 Semantik der Aussagenlogik 135 Semantik der Aussagenlogik Auswertung von Formeln in einem Modell Auswertung von Formeln in einem Modell Sei A : Π → {0, 1} eine Wertebelegung. Sei A : Π → {0, 1} eine Π-Valuation. A∗ : ForΠ → {0, 1} wird induktiv über Aufbau von F wie folgt definiert: A∗ : ForΠ → {0, 1} wird wie folgt definiert: 8 < 1 A∗ (F1 → F2 ) = : 0 8 < 1 A∗ (F1 ↔ F2 ) = : 0 A∗ (⊥) = 0 A∗ (⊤) = 1 falls A∗ (F1 ) falls A∗ (F1 ) falls = 0 oder A∗ (F2 ) = 1 und A∗ (F2 ) =1 A∗ (P) = A(P) =0 A∗ (¬F ) = 1 − A∗ (F ) A∗ (F ρG ) = Bρ (A∗ (F ), A∗ (G )) A∗ (F1 ) = A∗ (F2 ) Bρ (x, y ) berechnet entschpr. der Wahrheitstafel für ρ sonst z.B. : B∨ (0, 1) = (0 ∨ 1) = 1; B→ (1, 0) = (1 → 0) = 0 Wir schreiben normalerweise A statt A∗ . 134 136 Beispiel Gültigkeit und Erfüllbarkeit Sei A : {P, Q, R} → {0, 1} mit A(P) = 1, A(Q) = 0, A(R) = 1. Definition: F gilt in A (oder A ist Modell von F ) gdw. A(F ) = 1. Notation: A |= F A∗ ((P ∧ (Q ∨ ¬P)) → R) = A∗ (P ∧ (Q ∨ ¬P) → A∗ (R) = (A∗ (P) ∧ A∗ (Q ∨ ¬P)) → A∗ (R) = (A(P) ∧ (A(Q) ∨ ¬A(P))) → A(R) = (1 ∧ (0 ∨ ¬1)) → 1 = 1 Definition: F ist (allgemein-) gültig (oder eine Tautologie) F , für alle A : Π → {0, 1} gdw.: A |= Notation: |= F Definition: F heißt erfüllbar gdw. es A : Π → {0, 1} gibt, so dass A |= F . Sonst heißt F unerfüllbar (oder eine Kontradiktion). 137 Modell einer Formel(menge) 139 Tautologien und Kontradiktionen Definition: Interpretation A ist Modell einer Formel F ∈ ForΠ , falls Tautologien: Formel, die stets wahr sind. Beispiele: p ∨ (¬p) (Prinzip vom ausgeschlossenen Dritten) (Tertium non datur) A∗ (F ) = 1. Definition: Interpretation A ist Modell einer Formelmenge M ⊆ ForΠ , falls p ↔ ¬¬p (Prinzip der doppelten Negation) A∗ (F ) = 1 für alle F ∈ M Kontradiktionen: Formel, die stets falsch sind. Beispiel: p ∧ ¬p Notation: A |= F • Die Negation einer Tautologie ist eine Kontradiktion A |= M • Die Negation einer Kontradiktion ist eine Tautologie 138 140 Beispiele Beispiele Die folgenden Formeln sind Tautologien: Die folgenden Formeln sind erfüllbar, aber keine Tautologien (1) (p → ¬p) → (¬p) (1) p (2) (p ∧ (p → q)) → q (2) p → (p ∧ q) (3) (p ∧ q) → p (3) (p ∨ q) → (p ∧ q) (p ∧ q) → q (4) p ↔ q (4) p → (p ∨ q) q → (p ∨ q) (5) (p → q) → [(q → r ) → (p → r )] (6) (((p → q) ∧ (q → r )) ∧ p) → r 141 143 Beispiele Beispiele Die folgenden Formeln sind Tautologien: Die folgenden Formeln sind unerfüllbar: (1) (p → ¬p) → (¬p) (1) ¬((p → ¬p) → (¬p)) (2) (p ∧ (p → q)) → q (2) (p ∧ (p → q)) ∧ ¬q (3) (p ∧ q) → p (3) ¬((p ∧ q) → p) (p ∧ q) → q (4) ¬(p → (p ∨ q)) p → (p ∨ q) (5) (p → q) ∧ ¬[(q → r ) → (p → r )] q → (p ∨ q) (6) (((p → q) ∧ (q → r )) ∧ p) ∧ ¬r (4) (5) (p → q) → [(q → r ) → (p → r )] (6) (((p → q) ∧ (q → r )) ∧ p) → r • (1)–(6) sind alle erfüllbar. 142 144 Folgerung und Äquivalenz Beispiel F = (A ∨ C ) ∧ (B ∨ ¬C ) Definition: F impliziert G (oder G folgt aus F ), gdw.: für alle A : Π → {0, 1} gilt: Wenn A |= F , dann A |= G . G = (A ∨ B) Überprüfe, ob F |= G Notation: F |= G Definition: F und G sind äquivalent gdw.: für alle A : Π → {0, 1} gilt: A |= F gdw. A |= G . Notation: F ≡ G . Erweiterung auf Formelmengen N in natürlicher Weise, z.B.: N |= G gdw.: für alle A : Π → {0, 1} gilt: falls A |= F , für alle F ∈ N, so A |= G . A B C (A ∨ C ) (B ∨ ¬C ) (A ∨ C ) ∧ (B ∨ ¬C ) (A ∨ B) 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 145 Beispiel F = (A ∨ C ) ∧ (B ∨ ¬C ) Syntax: Beispiel G = (A ∨ B) “Worin besteht das Geheimnis Ihres langen Lebens?”, wurde ein 100 Jähriger gefragt. Überprüfe, ob F |= G A B C 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 0 (A ∨ C ) 147 (B ∨ ¬C ) (A ∨ C ) ∧ (B ∨ ¬C ) “Ich halte mich streng an die Diätregeln: (A ∨ B) • Wenn ich kein Bier zu einer Mahlzeit trinke, dann habe ich immer Fisch. • Immer wenn ich Fisch und Bier zur selben Mahlzeit habe, verzichte ich auf Eiscreme. • Wenn ich Eiscreme habe oder Bier meide, dann rühre ich Fisch nicht an.” 146 148 Beispiel 1 Beispiel 1 ◮ ¬B→F Wenn ich kein Bier zu einer Mahlzeit trinke, dann habe ich immer Fisch. ◮ F ∧B→ ¬E ◮ ¬B→F ◮ E ∨¬B→ ¬F Immer wenn ich Fisch und Bier zur selben Mahlzeit habe, verzichte ich auf Eiscreme. ◮ F ∧B→ ¬E Wir möchten wissen, welche Menüs solche Diätregeln erfüllen. z.B.: Wenn ich Eiscreme habe oder Bier meide, dann rühre ich Fisch nicht an. Formalisierung: ◮ E ∨¬B→ ¬F • kein Bier, Fisch und Eiscreme erfüllt 3. Diätregel nicht! B 7→ falsch, F 7→ wahr, E 7→ wahr • Bier, Fisch, keine Eiscreme erfüllt alle Diätregeln B 7→ wahr, F 7→ wahr, E 7→ falsch 149 151 Beispiel 1 Beispiel 1 ◮ ¬B→F ◮ ¬B→F ◮ F ∧B→ ¬E ◮ F ∧B→ ¬E ◮ E ∨¬B→ ¬F ◮ E ∨¬B→ ¬F Wir möchten wissen, welche Menüs solche Diätregeln erfüllen. Wir möchten wissen, welche Menüs solche Diätregeln erfüllen. z.B.: z.B.: Formalisierung: 0:falsch, 1:wahr A : {B, F , E } → {0, 1} • kein Bier, Fisch und Eiscreme erfüllt 3. Diätregel nicht! • kein Bier, Fisch und Eiscreme erfüllt 3. Diätregel nicht! A(B) = 0, A(F ) = 1, A(E ) = 1 • Bier, Fisch, keine Eiscreme erfüllt alle Diätregeln • Bier, Fisch, keine Eiscreme erfüllt alle Diätregeln A(B) = 1, A(F ) = 1, A(E ) = 0 150 152 Beispiel 1 Modell einer Formel ◮ ¬B→F Definition: Interpretation A ist Modell einer Formel F ∈ ForΠ , falls A∗ (F ) = 1. ◮ F ∧B→ ¬E ◮ E ∨¬B→ ¬F Notation: A |= F Π = {B, F , E } Mögliche Interpretation (Wertebelegung): A(B) = 1, A(F ) = 0, A(E ) = 1 Beispiel: A : Π(= {B, F , E }) → {0, 1} mit: A(B) = 1, A(F ) = 0, A(E ) = 1 A(B) = 1: “Ich habe Bier” A(F ) = 0: “Ich habe kein Fisch” A(E ) = 1: “Ich habe Eiskreme” Da A(¬B → F ) = 1, ist A ein Modell der Formel ¬B → F A |= ¬B → F 153 Beispiel 1 155 Modell einer Formelmenge ◮ ¬B→F Definition: Interpretation A ist Modell einer Formelmenge M ⊆ ForΠ , falls ◮ F ∧B→ ¬E A∗ (F ) = 1 für alle F ∈ M ◮ E ∨¬B→ ¬F Notation: A |= M Beispiel 1: A : {B, F , E } → {0, 1} mit A(B) = 1, A(F ) = 0, A(E ) = 1 Π = {B, F , E } • Da A(¬B → F ) = 1; A(F ∧ B → ¬E ) = 1; ist A ein Modell der Formelmenge Mögliche Interpretation (Wertebelegung): A(B) = 1, A(F ) = 0, A(E ) = 1 M = {¬B → F , Auswertung von Formeln: A∗ (¬B → F ) F ∧ B → ¬E , A(E ∨ ¬B → ¬F ) = 1, E ∨ ¬B → ¬F } = A∗ (¬B) → A∗ (F ) = ¬A(B) → A(F ) = (¬1 → 0) = (0 → 0) = 1 154 156 Modell einer Formelmenge Erster Kalkül: Wahrheitstafelmethode Definition: Interpretation A ist Modell einer Formelmenge M ⊆ ForΠ , falls Jede Formel F enthält endlich viele Aussagenvariablen. A(F ) ist nur von den Werten dieser Aussagenvariablen abhängig. ∗ A (F ) = 1 für alle F ∈ M F enthält n Aussagenvariablen: Notation: A |= M ⇒ 2n Wertbelegungen notwendig um zu überprüfen, ob F erfüllbar/unerfüllbar/allgemeingültig ist oder nicht. Beispiel 1: A : {B, F , E } → {0, 1} mit A(B) = 1, A(F ) = 0, A(E ) = 1 • Da A(¬B → F ) = 1; A(F ∧ B → ¬E ) = 1; ist A ein Modell der Formelmenge {¬B → F , F ∧ B → ¬E , A(E ∨ ¬B → ¬F ) = 1, ⇒ Wahrheitstafel E ∨ ¬B → ¬F ) • F allgemeingültig (Tautologie): A(F ) = 1 für alle Wertbelegungen • F erfüllbar: A(F ) = 1 für zumindest eine Wertbelegung Beispiel 2: A′ : {B, F , E } → {0, 1} mit A′ (B) = 0, A′ (F ) = 0, A′ (E ) = 1 • F unerfüllbar: A(F ) = 0 für alle Wertbelegungen • Da A′ (¬B → F ) = ¬A′ (B) → A′ (F ) = (¬0 → 0) = (1 → 0) = 0 ist A′ kein Modell der Formelmenge {¬B → F , F ∧ B → ¬E , E ∨ ¬B → ¬F ) 157 159 Unerfüllbarkeit und Allgemeingültigkeit Äquivalenz Definition: F und G sind äquivalent gdw.: für alle A : Π → {0, 1} gilt: A |= F gdw. A |= G . Theorem. F ist allgemeingültig gdw. ¬F ist unerfüllbar. Notation: F ≡ G . Zwei Formeln sind logisch äquivalent, wenn sie in den gleichen Modellen wahr sind Beispiel: (P → Q) ≡ (¬Q → ¬P) 158 (Kontraposition) 160 Wichtige Äquivalenzen Wichtige Äquivalenzen Die folgenden Äquivalenzen sind für alle Formeln F , G , H gültig: Die folgenden Äquivalenzen sind für alle Formeln F , G , H gültig: (F ∧ F ) ≡ F (F ∧ G ) ≡ F , falls G Tautologie (F ∨ F ) ≡ F (Idempotenz) (F ∨ G ) ≡ ⊤, falls G Tautologie (Tautologieregeln) (F ∧ G ) ≡ (G ∧ F ) (F ∨ G ) ≡ (G ∨ F ) (F ∧ G ) ≡ ⊥, falls G unerfüllbar (Kommutativität) (F ∨ G ) ≡ F , falls G unerfüllbar (F ∧ (G ∧ H)) ≡ ((F ∧ G ) ∧ H) (F ∨ (G ∨ H)) ≡ ((F ∨ G ) ∨ H) (Tautologieregeln) (Assoziativität) (F ∧ (F ∨ G )) ≡ F (F ∨ (F ∧ G )) ≡ F (Absorption) (F ∧ (G ∨ H)) ≡ ((F ∧ G ) ∨ (F ∧ H)) (F ∨ (G ∧ H)) ≡ ((F ∨ G ) ∧ (F ∨ H)) (Distributivität) 161 Wichtige Äquivalenzen Wichtige Äquivalenzen mit ⊤/⊥ (A ∧ ¬A) ≡ ⊥ Die folgenden Äquivalenzen sind für alle Formeln F , G , H gültig: (¬¬F ) ≡ F 163 (A ∨ ¬A) ≡ ⊤ (Doppelte Negation) (Tertium non datur) (A ∧ ⊤) ≡ A ¬(F ∧ G ) ≡ (¬F ∨ ¬G ) ¬(F ∨ G ) ≡ (¬F ∧ ¬G ) (De Morgan’s Regeln) (F → G ) ≡ (¬G → ¬F ) (Kontraposition) (F → G ) ≡ (¬F ∨ G ) (Elimination Implikation) F ↔ G ≡ (F → G ) ∧ (G → F ) (Elimination Äquivalenz) (A ∧ ⊥) ≡ ⊥ 162 164 Wichtige Äquivalenzen (Zusammengefasst) (F ∧ F ) ≡ F (F ∧ G ) ≡ (G ∧ F ) (F ∨ F ) ≡ F (F ∨ G ) ≡ (G ∨ F ) (F ∧ (G ∧ H)) ≡ ((F ∧ G ) ∧ H) (F ∨ (G ∨ H)) ≡ ((F ∨ G ) ∨ H) (F ∧ (F ∨ G )) ≡ F (F ∨ (F ∧ G )) ≡ F (F ∧ (G ∨ H)) ≡ ((F ∧ G ) ∨ (F ∧ H)) (F ∨ (G ∧ H)) ≡ ((F ∨ G ) ∧ (F ∨ H)) (¬¬F ) ≡ F ¬(F ∧ G ) ≡ (¬F ∨ ¬G ) ¬(F ∨ G ) ≡ (¬F ∧ ¬G ) (F → G ) ≡ (¬G → ¬F ) (F → G ) ≡ (¬F ∨ G ) F ↔ G ≡ (F → G ) ∧ (G → F ) Substitutionstheorem (Idempotenz) Theorem. Seien F und G äquivalente Formeln. Sei H eine Formel mit (mindestens) einem Vorkommen der Teilformel F . (Kommutativität) (Assoziativität) Dann ist H äquivalent zu H ′ , wobei H ′ aus H hervorgeht, indem (irgend) ein Vorkommen von F in H durch G ersetzt wird. (Absorption) (Distributivität) Beweis: Strukturelle Induktion. (Doppelte Negation) Induktionsbasis: Beweisen. dass das Theorem für alle atomaren Formeln gilt. (De Morgan’s Regeln) Induktionsvoraussetzung: Sei H eine Formel (die nicht atomar ist) Annahme: Theorem gilt für alle Teilformeln von F , die nicht gleich F sind. (Kontraposition) Induktionsschritt: Beweis durch Fallunterscheidung: (Elimination Implikation) Fall 1: H = ¬H1 . (Elimination Äquivalenz) Induktionvoraussetzung: Theorem gilt für H1 . Folgere, dass Theorem auch für H gilt. Fall 2: H = H1 op H2 . Induktionvoraussetzung: Theorem gilt für H1 , H2 . Folgere, dass Theorem auch für H gilt. 167 165 Substitutionstheorem Ein zweiter Kalkül: Logische Umformung Definition: Äquivalenzumformung Theorem. Seien F und G äquivalente Formeln. Sei H eine Formel mit (mindestens) einem Vorkommen der Teilformel F . • (Wiederholte) Ersetzung einer (Unter-)Formel durch äquivalente Formel • Anwendung des Substitutionstheorems Dann ist H äquivalent zu H ′ , wobei H ′ aus H hervorgeht, indem (irgend) ein Vorkommen von F in H durch G ersetzt wird. A∨B ≡B ∨A Theorem Äquivalenzumformung bildet mit den aufgelisteten wichtigen Äquivalenzen einen vollständigen Kalkül: impliziert Wenn F und G logisch äquivalent sind, kann F in G umgeformt werden. Beispiel: (C ∧ (A ∨ B)) ≡ (C ∧ (B ∨ A)) Anwendung: Test für Erfüllbarkeit/Unerfüllbarkeit/Allgemeingültigkeit 166 168 Beispiel Beispiel (P → Q) ∧ ¬((Q → R) → (P → R)) (P → Q) ∧ ¬((Q → R) → (P → R)) ≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R)) ≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R)) (Elimination Implikation) (Elimination Implikation) 169 Beispiel Beispiel (P → Q) ∧ ¬((Q → R) → (P → R)) ≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R)) 171 (P → Q) ∧ ¬((Q → R) → (P → R)) (Elimination Implikation) ≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R)) (Elimination Implikation) ≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R)) (De Morgan’s Regel,∨) ≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R)) 170 (Elimination Implikation) 172 Beispiel Beispiel (P → Q) ∧ ¬((Q → R) → (P → R)) (P → Q) ∧ ¬((Q → R) → (P → R)) ≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R)) (Elimination Implikation) ≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R)) (De Morgan’s Regel,∨) ≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R)) ≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (¬¬P ∧ ¬R)) ≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R)) (Elimination Implikation) ≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R)) (De Morgan’s Regel,∨) ≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R)) (Elimination Implikation) ≡(¬P ∨ Q) ∧ (Doppelte Negation, De Morgan, ∨) ((¬Q ∨ R) ∧ (¬¬P ∧ ¬R)) ≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (P ∧ ¬R)) (Elimination Implikation) (Doppelte Negation, De Morgan, ∨) (Doppelte Negation) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R)) (Distributivität) 173 175 Beispiel Beispiel (P → Q) ∧ ¬((Q → R) → (P → R)) (P → Q) ∧ ¬((Q → R) → (P → R)) ≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R)) (Elimination Implikation) ≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R)) (De Morgan’s Regel,∨) ≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R)) ≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (¬¬P ∧ ¬R)) ≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (P ∧ ¬R)) ≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R)) (Elimination Implikation) ≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R)) (De Morgan’s Regel,∨) ≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R)) (Elimination Implikation) (Doppelte Negation, De Morgan, ∨) ≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (¬¬P ∧ ¬R)) ≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (P ∧ ¬R)) (Doppelte Negation) (Elimination Implikation) (Doppelte Negation, De Morgan, ∨) (Doppelte Negation) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R)) (Distributivität) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ ¬R ∧ P)) (Kommutativität) 174 176 Beispiel Beispiel (P → Q) ∧ ¬((Q → R) → (P → R)) (P → Q) ∧ ¬((Q → R) → (P → R)) ≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R)) (Elimination Implikation) ≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R)) (De Morgan’s Regel,∨) ≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R)) ≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (¬¬P ∧ ¬R)) ≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (P ∧ ¬R)) ≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R)) (De Morgan’s Regel,∨) ≡(¬P ∨ Q) ∧ (Doppelte Negation, De Morgan, ∨) ((¬Q ∨ R) ∧ (¬¬P ∧ ¬R)) ≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (P ∧ ¬R)) (Doppelte Negation) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R)) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ ¬R ∧ P)) (Kommutativität) ≡(¬P ∨ Q) ∧ (¬Q ∧ P ∧ ¬R) (Elimination Implikation) ≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R)) (Elimination Implikation) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R)) (Distributivität) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ ⊥) ≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R)) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ ¬R ∧ P)) (Äquivalenzen mit ⊥) (Äquivalenzen mit ⊥) (Elimination Implikation) (Doppelte Negation, De Morgan, ∨) (Doppelte Negation) (Distributivität) (Kommutativität) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ ⊥) (Äquivalenzen mit ⊥) ≡(¬P ∧ ¬Q ∧ P ∧ ¬R) ∨ (Q ∧ ¬Q ∧ P ∧ ¬R) (Distributivität) ≡(¬P ∨ Q) ∧ (¬Q ∧ P ∧ ¬R) ≡(¬P ∧ P ∧ ¬Q ∧ ¬R) ∨ (Q ∧ ¬Q ∧ P ∧ ¬R) (Äquivalenzen mit ⊥) (Kommutativität) ≡((¬P ∧ P) ∧ ¬Q ∧ ¬R) ∨ ((Q ∧ ¬Q) ∧ P ∧ ¬R) (Assoziativität) 177 179 Beispiel Beispiel (P → Q) ∧ ¬((Q → R) → (P → R)) (P → Q) ∧ ¬((Q → R) → (P → R)) ≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R)) (Elimination Implikation) ≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R)) (De Morgan’s Regel,∨) ≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R)) ≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (¬¬P ∧ ¬R)) ≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (P ∧ ¬R)) ≡ (¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R)) (Elimination Implikation) ≡ (¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R)) (De Morgan’s Regel,∨) ≡ (¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R)) (Elimination Implikation) ≡ (¬P ∨ Q) ∧ (Doppelte Negation, De Morgan, ∨) ((¬Q ∨ R) ∧ (¬¬P ∧ ¬R)) ≡ (¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (P ∧ ¬R)) (Doppelte Negation) (Elimination Implikation) (Doppelte Negation, De Morgan, ∨) (Doppelte Negation) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R)) (Distributivität) ≡ (¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R)) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ ⊥) (Äquivalenzen mit ⊥) ≡ (¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ ⊥) (Äquivalenzen mit ⊥) ≡(¬P ∧ ¬Q ∧ P ∧ ¬R) ∨ (Q ∧ ¬Q ∧ P ∧ ¬R) (Distributivität) ≡ (¬P ∧ ¬Q ∧ P ∧ ¬R) ∨ (Q ∧ ¬Q ∧ P ∧ ¬R) (Distributivität) ≡ (¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ ¬R ∧ P)) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ ¬R ∧ P)) (Kommutativität) ≡(¬P ∨ Q) ∧ (¬Q ∧ P ∧ ¬R) ≡(¬P ∧ P ∧ ¬Q ∧ ¬R) ∨ (Q ∧ ¬Q ∧ P ∧ ¬R) ≡ (¬P ∨ Q) ∧ (¬Q ∧ P ∧ ¬R) (Äquivalenzen mit ⊥) (Kommutativität) (Distributivität) (Kommutativität) (Äquivalenzen mit ⊥) ≡ (¬P ∧ P ∧ ¬Q ∧ ¬R) ∨ (Q ∧ ¬Q ∧ P ∧ ¬R) (Kommutativität) ≡ ⊥ ∨ ⊥≡⊥ (Äquivalenzen mit ⊥) ≡ ((¬P ∧ P) ∧ ¬Q ∧ ¬R) ∨ ((Q ∧ ¬Q) ∧ P ∧ ¬R) (Assoziativität) 178 180 Allgemeingültigkeit/Folgerung Unser Ziel F , G Formeln; N Formelmenge. Kalkül(e) zur systematischen Überprüfung von Erfüllbarkeit (für Formeln und/oder Formelmengen) Theorem. F |= G gdw. |= F → G . Theorem. N ∪ {F } |= G gdw. N |= F → G . Dazu brauchen wir “Normalformen” Theorem. F ≡ G gdw. |= F ↔ G . 181 Unerfüllbarkeit/Allgemeingültigkeit/Folgerung 183 2.4 Normalformen F , G Formeln; N Formelmenge. Theorem. F ist allgemeingültig gdw. ¬F ist unerfüllbar. Theorem. F |= G gdw. F ∧ ¬G ist unerfüllbar. Theorem. N |= G gdw. N ∪ ¬G ist unerfüllbar. Nota bene: falls N unerfüllbar, so N |= G für jede Formel G ... auch für ⊥. Notation: N |= ⊥ für N unerfüllbar. 182 184 Normalformen Normalformen Definition: Definition: • Atom: aussagenlogische Variable Disjunktive Normalform (DNF): Eine Disjunktion von Konjunktionen von Literalen. • Literal: Atom, oder negation eines Atoms mehrstellig, einstellig oder nullstellig Definition: Beispiele: Klausel: Eine Disjunktion von Literalen (P ∧ ¬Q) ∨ (Q ∧ ¬R ∧ ¬S) • mehrstellige Disjunktionen (P ∨ ¬Q ∨ R), (P ∨ P ∨ ¬Q) P ∧Q • einstellige Disjunktionen P P ∨ (Q ∧ R) • die nullstellige Disjunktion (leere Klausel) ⊥ P ∨Q P ∨P ⊥ 185 187 Normalformen Normalformel Definition: Eigenschaften: Konjunktive Normalform (KNF): Eine Konjunktion von Disjunktionen von Literalen, d.h., eine Konjunktion von Klauseln • Zu jeder aussagenlogischen Formel gibt es: - eine äquivalente Formel in KNF - eine äquivalente Formel in DNF mehrstellig, einstellig oder nullstellig • Diese äquivalenten Formeln in DNF bzw. KNF sind nicht eindeutig Beispiele: (P ∨ ¬Q) ∧ (Q ∨ ¬R ∨ ¬S) P ∨Q P ∧ (Q ∨ R) P ∧Q P ∧P ⊤ 186 188 Normalformel Beispiel Eigenschaften: F : • Zu jeder aussagenlogischen Formel gibt es: - eine äquivalente Formel in KNF - eine äquivalente Formel in DNF • Diese äquivalenten Formeln in DNF bzw. KNF sind nicht eindeutig • Solche Formeln können aus einer Wahrheitstafel abgelesen werden (P ∨ Q) ∧ ((¬P ∧ Q) ∨ R) (P ∨ Q) ¬P (¬P ∧ Q) ((¬P ∧ Q) ∨ R) F 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 P Q R 0 0 0 0 0 0 0 1 0 189 191 Beispiel F : Beispiel (P ∨ Q) ∧ ((¬P ∧ Q) ∨ R) P Q R F : (P ∨ Q) ¬P (¬P ∧ Q) ((¬P ∧ Q) ∨ R) F 0 1 0 (P ∨ Q) ∧ ((¬P ∧ Q) ∨ R) P Q R (P ∨ Q) ¬P (¬P ∧ Q) ((¬P ∧ Q) ∨ R) F 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 DNF: 190 0 1 0 (¬P ∧ Q ∧ ¬R) ∨ (¬P ∧ Q ∧ R) ∨ (P ∧ ¬Q ∧ R) ∨ (P ∧ Q ∧ R) 192 Beispiel F : Normalformel (P ∨ Q) ∧ ((¬P ∧ Q) ∨ R) DNF für F : (P ∨ Q) ¬P (¬P ∧ Q) ((¬P ∧ Q) ∨ R) F 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 P Q R 0 0 0 0 0 0 1 0 1 0 1 0 ¬F _ A(P1 ) (P1 A(Pn ) ∧ · · · ∧ Pn ) A:{P1 ,...,Pn }→{0,1} A(F )=1 1 wobei: P 0 = ¬P P1 = P Theorem Für alle Interpretationen A′ : {P1 , . . . , Pn } → {0, 1}: _ A(P ) A(P ) (P1 1 ∧ · · · ∧ Pn n )) = 1. A′ (F ) = 1 gdw. A′ ( DNF für ¬F : (¬P ∧ ¬Q ∧ ¬R) ∨ (¬P ∧ ¬Q ∧ R) ∨ (P ∧ ¬Q ∧ ¬R) ∨ (P ∧ Q ∧ ¬R) A:{P1 ,...,Pn }→{0,1} A(F )=1 193 195 Beispiel F : Normalformel (P ∨ Q) ∧ ((¬P ∧ Q) ∨ R) (P ∨ Q) ¬P (¬P ∧ Q) ((¬P ∧ Q) ∨ R) F 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 P Q R 0 0 0 0 0 0 1 0 1 0 1 0 DNF für F : ¬F _ A(P1 ) (P1 A(Pn ) ∧ · · · ∧ Pn ) A:{P1 ,...,Pn }→{0,1} A(F )=1 1 wobei: P 0 = ¬P P1 = P KNF für F: ¬F ′ , wobei F ′ die DNF von ¬F ist. DNF für ¬F : (¬P ∧ ¬Q ∧ ¬R) ∨ (¬P ∧ ¬Q ∧ R) ∨ (P ∧ ¬Q ∧ ¬R) ∨ (P ∧ Q ∧ ¬R) KNF für F : (P ∨ Q ∨ R) ∧ (P ∨ Q ∨ ¬R) ∧ (¬P ∨ Q ∨ R) ∧ (¬P ∨ ¬Q ∨ R) 194 196 Normalformel Umformung in KNF: Beispiel Gegeben: Eigenschaften: P ↔ (Q ∨ R) • Zu jeder aussagenlogischen Formel gibt es: - eine äquivalente Formel in KNF - eine äquivalente Formel in DNF 1. Elimination von ↔ (P → (Q ∨ R)) ∧ ((Q ∨ R) → P) • Diese äquivalenten Formeln in DNF bzw. KNF sind nicht eindeutig 2. Elimination von → • Solche Formeln können aus einer Wahrheitstafel abgelesen werden (¬P ∨ Q ∨ R) ∧ (¬(Q ∨ R) ∨ P) • Solche Formeln können durch Umformungen hergestellt werden 3. “Nach innen schieben” von ¬ (¬P ∨ Q ∨ R) ∧ ((¬Q ∧ ¬R)) ∨ P) 4. “Nach innen schieben” von ∨ (¬P ∨ Q ∨ R) ∧ (¬Q ∨ P) ∧ (¬R ∨ P)) 197 Umformung in KNF 199 Beispiel zur exponentiellen Länge der KNF Vier Schritte: Gegeben: An = (P11 ∧ P12 ) ∨ · · · ∨ (Pn1 ∧ Pn2 ) 1. Elimination von ↔ Verwende A ↔ B ≡ (A → B) ∧ (B → A) Zu An äquivalente KNF ^ 2. Elimination von → Verwende A → B ≡ (¬A ∨ B) (P1,f (1) ∨ · · · ∨ Pn,f (n) ) f :{1,...,n}→{1,2} 3. “Nach innen schieben” von ¬ Größe der KNF: Verwende de Morgans Regeln und ¬¬A ≡ A • Klausel in KNF von An : 2n 4. “Nach innen schieben” von ∨ Beweis: Induktion Verwende Distributivität von ∨ über ∧ 198 200 Beispiel zur exponentiellen Länge der KNF KNF: Mengenschreibweise Gegeben: Notation: An = (P11 ∧ P12 ) ∨ · · · ∨ (Pn1 ∧ Pn2 ) Klausel als Menge von Literalen n = 1 : A1 = P11 ∧P12 Länge: 21 Formel in KNF als Menge von Klauseln Länge: 22 Beispiel: n = 2 : A2 = (P11 ∧P12 )∨(P21 ∧P22 ) ≡ ((P11 ∧P12 )∨P21 )∧((P11 ∧P12 )∨P22 ) ≡ (P11 ∨P21 )∧(P12 ∨P21 )∧(P11 ∨P22 )∧(P12 ∨P22 ) n = 3 : A3 = (P11 ∧P12 )∨(P21 ∧P22 )∨(P31 ∧P32 ) | {z } ≡ (P ∨ Q ∨ R) ∧ (P ∨ Q ∨ ¬R) ∧ (¬P ∨ Q ∨ R) ∧ (¬P ∨ ¬Q ∨ R) A2 ((P11 ∨P21 )∧(P 12 ∨P21 )∧(P11 ∨P22 )∧(P12 ∨P22 ))∨(P31 ∧P32 ) | {z KNF (A2 ) } { {P, Q, R}, {P, Q, ¬R}, {¬P, Q, R}, {¬P, ¬Q, R} } ≡ (((P11 ∨P21 )∧(P12 ∨P21 )∧(P11 ∨P22 )∧(P12 ∨P22 ))∨P31 )∧ (((P11 ∨P21 )∧(P12 ∨P21 )∧(P11 ∨P22 )∧(P12 ∨P22 ))∨P32 ) ≡ (((P11 ∨P21 ∨P31 )∧(P12 ∨P21 ∨P31 )∧(P11 ∨P22 ∨P31 )∧(P12 ∨P22 ∨P31 )∧ (((P11 ∨P21 ∨P32 )∧(P12 ∨P21 ∨P32 )∧(P11 ∨P22 ∨P32 )∧(P12 ∨P22 ∨P32 ) Länge: 23 201 203 Beispiel zur exponentiellen Länge der KNF KNF: Mengenschreibweise Gegeben: An = (P11 ∧ P12 ) ∨ · · · ∨ (Pn1 ∧ Pn2 ) Bedeutung der leeren Menge • Klausel in KNF von An : 2n • Leere Klausel = leere Menge von Literalen Beweis durch Induktion Induktionsvoraussetzung: KNF von An hat 2n Klausel KNF (An ) = C1 ∧ · · · ∧ C2n , Ci = (Li1 ∨ · · · ∨ Lini ) Klausel Induktionsschritt: Zu zeigen: KNF von An+1 hat 2n+1 Klausel An+1 = ≡ ≡ ≡ ≡ = leere Disjunktion =⊥ • Leere Menge von Klauseln (P11 ∧ P12 ) ∨ · · · ∨ (Pn1 ∧ Pn2 ) ∨ (P(n+1),1 ∧ P(n+1),2 ) ((P11 ∧ P12 ) ∨ · · · ∨ (Pn1 ∧ Pn2 )) ∨ (P(n+1),1 ∧ P(n+1),2 ) | {z } = leere Konjunktion =⊤ An (C1 ∧ · · · ∧ C2n ) ∨ (P(n+1),1 ∧ P(n+1),2 ) | {z } KNF (An ) ((C1 ∧ · · · ∧ C2n ) ∨ P(n+1),1 ) ∧ ((C1 ∧ · · · ∧ C2n ) ∨ P(n+1),2 ) (C1 ∨ P(n+1),1 ) ∧ · · · ∧ (C2n ∨ P(n+1),1 ) ∧ (C1 ∨ P(n+1),2 ) ∧ · · · ∧ (C2n ∨ P(n+1),2 ) | {z } | {z } 2n 2n 202 204 Vereinfachung der KNF: Subsumption Das SAT-Problem (Erfüllbarkeitsproblem) Erfüllbarkeitsproblem für DNF Formeln W V Sei F = ni=1 ( m j=1 Lij ) in DNF V F unerfüllbar gdw. ( m j=1 Lij ) unerfüllbar für alle i = 1, . . . , n Vm gdw. ( j=1 Lij ) enthält zwei komplementäre Literale für alle i Theorem (Subsumption Regel) Enthält eine KNF-Formel (= Klauselmenge) Klauseln K , K ′ mit K ⊂ K′ dann entsteht eine äquivalente Formel, wenn K ′ weggelassen wird. Allgemeingültigkeit für DNF Formeln Beweis: F in KNF allgemeingültig gdw. jede Disjunktion zwei komplementäre Literale enthält. K = {L1 , . . . , Lp } ⊆ {L1 , . . . , Lp , Lp+1 , . . . , Lm } = K ′ F enthält K ∧ K ′ K ∧ K′ = ≡ (L1 ∨ · · · ∨ Lp ) ∧ ((L1 ∨ · · · ∨ Lp ) ∨ Lp+1 ∨ . . . Lm ) (L1 ∨ · · · ∨ Lp ) = K (Absorption) 205 Das SAT-Problem (Erfüllbarkeitsproblem) 207 Das SAT-Problem (Erfüllbarkeitsproblem) Definition: SAT-Problem Definition: SAT-Problem Gegeben: Eine aussagenlogische Formel F Gegeben: Eine aussagenlogische Formel F Frage: Ist F erfüllbar? Frage: Ist F erfüllbar? NB: F allgemeingültig gdw. ¬F nicht erfüllbar Theorem (ohne Beweis) SAT ist ein NP-vollständiges Problem 206 208 NP Teilklassen des Erfüllbarkeitsproblems Zur Erinnerung: Definition: • P ist die Klasse aller Probleme, die in polynomieller Zeit entscheidbar sind. k-KNF Formel: KNF-Formeln, deren Klauseln höchstens k Literale haben • NP ist die Klasse aller Probleme, die nichtdeterministisch in polynomieller Zeit entscheidbar sind. Theorem • Erfüllbarkeit für Formeln in KNF: NP-vollständig Ein Entscheidungsproblem ist genau dann in NP, wenn eine gegebene Lösung für das entsprechende Suchproblem in Polynomialzeit überprüft werden kann. • Erfüllbarkeit für Formeln in 3-KNF: NP-vollständig (ohne Beweis) (Beweisidee) • Erfüllbarkeit für Formeln in 2-KNF: polynomiell entscheidbar • Erfüllbarkeit für Formeln in DNF: polynomiell entscheidbar SAT ist in NP: • Rate eine “Lösung” (Interpretation A mit A(F ) = 1) • Überprüfe, ob A wirklich eine “Lösung” ist (i.e. ob A(F ) = 1) kann in Polynomialzeit überprüft werden 209 211 NP-Vollständigkeit 3-SAT Zur Erinnerung: Theorem Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig “SAT ist NP-vollständig” heißt: • SAT ist nichtdeterministisch in polynomieller Zeit entscheidbar Beweis • 3-SAT ist ein Spezialfall von SAT und deshalb wie SAT in NP. • Jedes nichtdeterministisch in polynomieller Zeit entscheidbare Problem kann in polynomieller Zeit auf SAT reduziert werden • Um zu zeigen, dass 3-SAT ebenfalls NP-vollständig ist, müssen wir zeigen, dass jedes SAT Problem in polynomieller Zeit auf das 3-SAT Problem reduzierbar ist. • Wenn es stimmt, dass NP 6= P, dann ist SAT nicht in polynomieller Zeit entscheidbar 210 212 3-SAT 3-SAT Theorem Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig Theorem Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig Beweis (Teil 2) Beweis (Teil 4) Wir zeigen, dass jedes SAT Problem in polynomieller Zeit auf das 3-SAT Problem reduzierbar ist. C = L1 ∨ L2 ∨ L3 ∨ L4 ; C0 = (L1 ∨ L2 ∨ H) ∧ (¬H ∨ L3 ∨ L4 ), F ′ sei aus F entstanden durch Ersetzung von C durch C0 . zu zeigen: F ′ erfüllbar gdw. F erfüllbar Gegeben sei eine Formel F in KNF. Wir transformieren F in eine Formel F ′ in 3-KNF, so dass: “⇐” Sei A eine erfüllende Belegung für F . A weist mindestens einem Literal aus C den Wert 1 zu. Wir unterscheiden zwei Fälle: F ist erfüllbar gdw. F ′ ist erfüllbar. Eine k-Klausel sei eine Klausel mit k Literalen. 1) Falls L1 oder L2 den Wert 1 haben, so ist F ′ für A(H) = 0 erfüllt. 2) Falls L3 oder L4 den Wert 1 haben, so ist F ′ für A(H) = 1 erfüllt. Aus einer 1- bzw 2-Klausel können wir leicht eine äquivalente 3-Klausel machen, indem wir ein Literal wiederholen. Also ist F ′ in beiden Fällen erfüllbar. Was machen wir mit k-Klauseln für k > 3? 213 215 3-SAT 3-SAT Theorem Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig Theorem Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig Beweis (Teil 3) Beweis (Teil 5) Sei C beispielsweise eine 4-Klausel der Form C = L1 ∨ L2 ∨ L3 ∨ L4 ; C0 = (L1 ∨ L2 ∨ H) ∧ (¬H ∨ L3 ∨ L4 ), F ′ sei aus F entstanden durch Ersetzung von C durch C0 . zu zeigen: F ′ erfüllbar gdw. F erfüllbar C = L1 ∨ L2 ∨ L3 ∨ L4 . In einer Klauseltransformation ersetzen wir C durch die Teilformel “⇒” Sei A eine erfüllende Belegung für F ′ . Wir unterscheiden zwei Fälle: C0 = (L1 ∨ L2 ∨ H) ∧ (¬H ∨ L3 ∨ L4 ), 1) Falls A(H) = 0, so muss A(L1 ) = 1 oder A(L2 ) = 1. wobei H eine zusätzlich eingeführte Hilfsvariable bezeichnet. 2) Falls A(H) = 1, so muss A(L3 ) = 1 oder A(L4 ) = 1 F ′ sei aus F entstanden durch Ersetzung von C durch C0 . In beiden Fällen erfüllt A somit auch C , i.e. auch F . zu zeigen: F ′ erfüllbar gdw. F erfüllbar 214 216 3-SAT Horn-Formeln Defintion: Theorem Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig Horn-Formel: Formel in KNF, in der jede Klausel höchstens ein positives Literal enthält Beweis (Teil 6) Wir verallgemeinern die Klauseltransformation für k ≥ 4: Notation: als Implikation Jede Klausel der Form L1 ∨ L2 ∨ · · · ∨ Lk−1 ∨ Lk wird durch eine Formel der Form (L1 ∨ L2 ∨ ... ∨ Lk−2 ∨ H) ∧ (¬H ∨ Lk−1 ∨ Lk ) ¬P1 ∨ · · · ∨ ¬Pn ∨ P P1 ∧ · · · ∧ Pn → P ¬P1 ∨ · · · ∨ ¬Pn PA ∧ · · · ∧ Pn → P →P ersetzt. P1 ∧ · · · ∧ Pn : Rumpf Die Erfüllbarkeitsäquivalenz folgt analog zum Fall k = 4. P: Kopf 217 219 Bis jetzt Horn Formel: Beispiele • Das SAT-Problem (Erfüllbarkeitsproblem) Klausel • Teilklassen des Erfüllbarkeitsproblems k-KNF Formel: KNF-Formeln, deren Klauseln höchstens k Literale haben Theorem • Erfüllbarkeit für Formeln in KNF: NP-vollständig (ohne Beweis) Literalmengen Implikationen ¬P {¬P} P→ Q ∨ ¬R ∨ ¬S {Q, ¬R, ¬S} R ∧S →Q ¬Q ∨ ¬S {¬Q, ¬S} Q∧S → R {R} →R ¬Q ∨ P {¬Q, P} Q→P • Erfüllbarkeit für Formeln in 3-KNF (3-SAT): NP-vollständig • Erfüllbarkeit für Formeln in 2-KNF: polynomiell entscheidbar (nächste Vorlesung) • Erfüllbarkeit für Formeln in DNF: polynomiell entscheidbar W V F = ni=1 ( m j=1 Lij ) Formel in DNF unerfüllbar gdw. für alle Vm i, ( j=1 Lij ) enthält zwei komplementäre Literale. 218 220 Horn Formel: Beispiele Klausel Literalmengen Erfüllbarkeitsproblem für Horn-Formeln Theorem Die Erfüllbarkeit von Horn-Formeln ist in quadratischer Zeit entscheidbar. Implikationen ¬P {¬P} P→ Q ∨ ¬R ∨ ¬S {Q, ¬R, ¬S} R, S → Q ¬Q ∨ ¬S {¬Q, ¬S} Q, S → R {R} →R Beweis: (Idee) ¬Q ∨ P {¬Q, P} Q→P Ziel: A : Π → {0, 1} mit A(F ) = 1. Falls keine Fakten in F : F erfüllbar. Sonst: Für alle Fakten → P in F : A(P) := 1; Wiederhole das Verfahren für F ′ , entstanden aus F durch Ersetzung von P mit ⊤. 221 Erfüllbarkeitsproblem für Horn-Formeln 223 Erfüllbarkeitstest für Horn-Formeln Eingabe: F = D1 ∧ · · · ∧ Dn eine Hornformel Lemma. Sei F Hornformel die keine Fakten enthält. Dann ist F erfüllbar. (die Klausel Di enthält höchstens ein positives Literal) Beweis: Sei A : Π → {0, 1} mit A(P) = 0 für alle P ∈ Π. Dann A(F ) = 1. Ein Atom in H zu markieren, bedeutet, es an allen Stellen seines Auftretens in H zu markieren 222 224 Erfüllbarkeitstest für Horn-Formeln 0: 2.5 Der aussagenlogische Resolutionkalkül IF keine Fakten (Klausel → A) vorhanden THEN Ausgabe: erfüllbar 1: ELSE markiere alle Fakten in F (Atome A mit → A in H) IF keine Klausel A1 ∧ · · · ∧ An → B in F , so dass alle Atome in A1 , . . . , An markiert aber B nicht THEN Ausgabe: erfüllbar ELSE wähle die erste solche Klausel IF B leer THEN Ausgabe: unerfüllbar ELSE markiere überall B in F GOTO 1 225 Zusammenfassung: Normalformen 227 Der aussagenlogische Resolutionkalkül • Literale, Klauseln Wesentliche Eigenschaften • Konjunktive und Disjunktive Normalform • Widerlegungskalkül: Testet auf Unerfüllbarkeit • Ablesen von DNF und KNF aus Wahrheitstafeln • Voraussetzung: Alle Formeln in konjunktiver Normalform • Umformen in KNF • Eine einzige Regel • Mengenschreibweise • Operiert auf Klauseln (in Mengenschreibweise) • Subsumption • SAT-Problem (SAT, 3-SAT, 2-SAT, DNF-SAT) • Horn-Formeln • Erfüllbarkeitstest für Hornformeln 226 228 Resolutionskalkül Resolution: Weiteres Beispiel Zu zeigen: Definition: Resolutionsregel (einzige Regel des Kalküls) (P → Q) → ((Q → R) → (P → R)) C1 ∪ {P} {¬P} ∪ C2 C1 ∪ C2 ist allgemeingültig wobei Dazu zeigen wir, dass • P eine aussagenlogische Variable ¬[(P → Q) → ((Q → R) → (P → R))] • C1 , C2 Klauseln (können leer sein) unerfüllbar ist. Definition: Klauselnormalform: C1 ∪ C2 heißt Resolvente von C1 ∪ {P}, C2 ∪ {¬P} {{¬P, Q}, {¬Q, R}, {P}, {¬R}} 229 231 Resolution: Beispiel Resolution: Weiteres Beispiel Gegeben die Klauselmenge: Klauselnormalform: M = {{P1 , P2 }, {P1 , ¬P2 }, {¬P1 , P2 }, {¬P1 , ¬P2 }} M = {{¬P, Q}, {¬Q, R}, {P}, {¬R}} Resolution: Ableitung der leeren Klausel aus M: {P1 , P2 } {P1 , ¬P2 } {P1 } {¬P1 , P2 } {¬P1 , ¬P2 } {¬P1 } {P1 } {¬P1 } ⊥ Insgesamt: M ⊢Res ⊥ also: M unerfüllbar 230 (1) {¬P, Q} gegeben (2) {¬Q, R} gegeben (3) {P} gegeben (4) {¬R} gegeben (5) {Q} aus (1) und (3) (6) {R} aus (2) und (5) (7) ⊥ aus (4) und (6) 232 Resolution: Bemerkungen Ohne Mengenschreibweise Resolutionsregel: Vorsicht bei Klauseln mit mehreren Resolutionsmöglichkeiten • Zwei Klauseln können mehr als eine Resolvente haben z.B.: {A, B} und {¬A, ¬B} C1 ∨ P ¬P ∨ C2 C1 ∨ C2 • {A, B, C } und {¬A, ¬B, D} haben NICHT {C , D} als Resolvente Faktorisieren: Heuristik: Immer möglichst kleine Klauseln ableiten C ∨L∨L C ∨L 233 235 Notwendigkeit der Mengenschreibweise Resolution mit Faktorisierung Die Menge Die Menge E = {P1 ∨ ¬P2 , ¬P1 ∨ P2 , ¬P1 ∨ ¬P2 , P1 ∨ P2 } E = {P1 ∨ ¬P2 , ¬P1 ∨ P2 , ¬P1 ∨ ¬P2 , P1 ∨ P2 } ist unerfüllbar. ist unerfüllbar. Es gibt folgende Resolutionsmöglichkeiten (mit Faktorisieren) Es gibt folgende Resolutionsmöglichkeiten (ohne Mengenschreibweise) P1 ∨ ¬P2 ¬P1 ∨ P2 ¬P2 ∨ P2 ¬P1 ∨ P2 ¬P1 ∨ ¬P2 ¬P1 ∨ ¬P1 P1 ∨ ¬P2 ¬P1 ∨ P2 ¬P1 ∨ P1 ¬P1 ∨ P2 P1 ∨ P2 P2 ∨ P2 P1 ∨ ¬P2 ¬P1 ∨ ¬P2 ¬P2 ∨ ¬P2 ¬P1 ∨ ¬P2 P1 ∨ P2 ¬P1 ∨ P1 P1 ∨ ¬P2 P1 ∨ P2 P1 ∨ P1 ¬P1 ∨ ¬P2 P1 ∨ P2 ¬P2 ∨ P2 Auf diese Weise ist ⊥ nicht herleitbar P1 ∨ ¬P2 ¬P1 ∨ P2 ¬P2 ∨ P2 P1 ∨ ¬P2 ¬P1 ∨ P2 ¬P1 ∨ P1 P1 ∨ ¬P2 ¬P1 ∨ ¬P2 ¬P2 ∨ ¬P2 ¬P1 ∨ P2 ¬P1 ∨ ¬P2 ¬P1 ∨ P2 P1 ∨ P2 ¬P1 ∨ ¬P2 P1 ∨ P2 ¬P1 ∨ ¬P1 P2 ∨ P2 ¬P1 ∨ P1 P1 ∨ P1 ¬P1 ∨ ¬P1 P2 ∨ P2 ¬P2 ∨ ¬P2 P1 ¬P1 P2 ¬P2 P1 ∨ ¬P2 P1 ∨ P2 P1 ∨ P1 ¬P1 ∨ ¬P2 P1 ∨ P2 ¬P2 ∨ P2 P1 ¬P1 ⊥ 234 236 Resolution: Beispiel Resolution: Korrektheit Gegeben die Klauselmenge: Theorem Für eine Menge M von Klauseln gilt: Falls M ⊢Res ⊥, so M unerfüllbar. M = {{P1 , P2 }, {P1 , ¬P2 }, {¬P1 , P2 }, {¬P1 , ¬P2 }} Beweis: Annahme: M ⊢Res ⊥. Zu zeigen: M unerfüllbar. Resolution: {P1 , P2 } {P1 , ¬P2 } {P1 } Widerspruchsbeweis: wir zeigen, dass ein Widerspruch entsteht, wenn die zu beweisende Behauptung falsch wäre. {¬P1 , P2 } {¬P1 , ¬P2 } {¬P1 } {P1 } Wir nehmen an, dass M erfüllbar. Sei A : Π → {0, 1} mit A(C ) = 1 für alle C ∈ M. {¬P1 } ⊥ Lemma: C1 ∨ P, C2 ∨ ¬P |= C1 ∨ C2 Beweis: Sei A Interpretation mit A(C1 ∨ P) = 1 und A(C2 ∨ ¬P) = 1. Zu zeigen: A(C1 ∨ C2 ) = 1 Fall 1: A(C1 ) = 1. Dann A(C1 ∨ C2 ) = 1. Insgesamt: M ⊢Res ⊥ also: M unerfüllbar Fall 2: A(C1 ) = 0. Dann A(P) = 1. Da A(C2 ∨ ¬P) = 1, so A(C2 ) = 1, d.h. A(C1 ∨ C2 ) = 1. 237 Resolution 239 Resolution: Korrektheit Sei F eine Klauselmenge und Theorem Für eine Menge M von Klauseln gilt: Falls M ⊢Res ⊥, so M unerfüllbar. Res(F ) = F ∪ {R | R ist eine Resolvente zweier Klauseln aus F } Res0 (F ) = F Beweis: Annahme: M ⊢Res ⊥, i.e. ⊥∈ Resn (M) Resn+1 (F ) = Res(Resn (F )) Zu zeigen: M unerfüllbar. Res⋆ (F ) = S n∈N Widerspruchsbeweis: wir zeigen, dass ein Widerspruch entsteht, wenn die zu beweisende Behauptung falsch wäre. Resn (F ) (bezeichnet die Vereinigung der Resolventen aus aller möglichen Resolutionsschritte Wir nehmen an, dass M erfüllbar. Sei A : Π → {0, 1} mit A(C ) = 1 für alle C ∈ M. auf F ) Notation: Falls C ∈ Res⋆ (F ), so schreiben wir F ⊢Res C . Lemma: C1 ∨ P, C2 ∨ ¬P |= C1 ∨ C2 Definition: Beweis für C (aus F ): C1 , . . . Cn , wobei: Cn = C und für alle 1 ≤ i ≤ n: (Ci ∈ F oder Ci Resolvente für j1 , j2 <i). Cj1 Cj2 Ci Induktion: Fur alle m ∈ N gilt: Falls D ∈ Resm (M), so A(D) = 1. mit Da ⊥∈ Resn (M), A(⊥) = 1. Widerspruch! 238 240 Resolution: Vollständigkeit Resolution: Vollständigkeit M0 sei aus M entstanden durch Ersetzung von Pn+1 durch ⊥: - Pn+1 wird aus allen Klauseln gelöscht, - Klauseln, die ¬Pn+1 enthalten werden ebenfalls gelöscht Theorem. Für jede endliche Menge M von Klauseln gilt: falls M unerfüllbar, so M ⊢Res ⊥. M1 sei aus M entstanden durch Ersetzung von Pn+1 durch ⊤: - ¬Pn+1 wird aus allen Klauseln gelöscht, - Klauseln, die Pn+1 enthalten werden ebenfalls gelöscht Beweis: Induktion: p(n): Fakten: Sei M Menge von Klauseln mit n Aussagenvariablen. • M0 , M1 enthalten nur Aussagenvariablen {P1 , . . . , Pn } Falls M unerfüllbar, so M ⊢Res ⊥ • M0 , M1 unerfüllbar Induktionsbasis: n = 0. dann M = {⊥}, d.h. M ⊢Res ⊥ Induktionsvoraussetzung: Induktionsschritt: Annahme: p(n) gilt. Beweise p(n + 1). M0 ⊢Res ⊥, i.e. es gibt C1 , C2 , . . . , Cm Beweis (aus M0 ) für ⊥ Sei M Menge von Klauseln mit Aussagenvariablen {P1 , . . . , Pn , Pn+1 }. Pn+1 zurück: C1′ , C2′ , . . . , Cm′ Beweis (aus M) für ⊥ oder Pn+1 M0 sei aus M entstanden durch Ersetzung von Pn+1 durch ⊥ M1 sei aus M entstanden durch Ersetzung von Pn+1 durch ⊤ M1 ⊢Res ⊥, i.e. es gibt D1 , D2 , . . . , Dk Beweis (aus M1 ) für ⊥ ¬Pn+1 zurück: D1′ , D2′ , . . . , Dk′ Beweis (aus M) für ⊥ oder ¬Pn+1 241 Resolution: Vollständigkeit 9 > > = > > ; ⇒ M ⊢Res ⊥ 243 Resolution: Vollständigkeit M0 sei aus M entstanden durch Ersetzung von Pn+1 durch ⊥: - Pn+1 wird aus allen Klauseln gelöscht, - Klauseln, die ¬Pn+1 enthalten werden ebenfalls gelöscht Theorem. Für jede endliche Menge M von Klauseln gilt: falls M unerfüllbar, so M ⊢Res ⊥. M1 sei aus M entstanden durch Ersetzung von Pn+1 durch ⊤: - ¬Pn+1 wird aus allen Klauseln gelöscht, - Klauseln, die Pn+1 enthalten werden ebenfalls gelöscht Es gilt auch: Fakten: Theorem. Für jede Menge M von Klauseln gilt: falls M unerfüllbar, so M ⊢Res ⊥. • M0 , M1 enthalten nur Aussagenvariablen {P1 , . . . , Pn } • M0 , M1 unerfüllbar Induktionsvoraussetzung: M0 ⊢Res ⊥, i.e. es gibt C1 , C2 , . . . , Cm Beweis (aus M0 ) für ⊥ M1 ⊢Res ⊥, i.e. es gibt D1 , D2 , . . . , Dk Beweis (aus M1 ) für ⊥ 242 244 2-SAT 2.5 1-Resolution Korrekt aber unvollständig. Theorem Erfüllbarkeit für Formeln in 2-KNF (2SAT) ist polynomiell entscheidbar Beweis (Krom, 1967) Fall 1: Für jede Aussagenvariable P, entweder enthalten alle Klauseln P oder ¬P: erfüllbar. Fall 2: Es gibt Klauseln C1 = L1 ∨ P, C2 = L2 ∨ ¬P Resolutionschritt; Resolvente L1 ∨ L2 (Mengennotation) Fakt: Resolventen sind immer auch in 2-KNF. Wenn F n Aussagenvariablen enthält, gibt es 2n mögliche Literale, und ≤ 4n2 nicht-leere verschiedene 2-KNF Klauseln. F ist erfüllbar gdw. ⊥6∈ Res∗ (F ) Wenn wir Res∗ (F ) berechnen: nicht mehr als (4n2 )2 Resolutionsschritte notwendig. 7→ Erfüllbarkeit von F ist polynomiell entscheidbar. 245 247 Andere Kalküle 1-Resolution • 1-Resolution Syllogismus (in der ersten Vorlesung erwähnt): • Das Davis-Putnam-Verfahren P • Semantische Tableaux P→C C 1-Resolution (unit resolution) {P} 246 {¬P} ∪ C C {¬P} {P} ∪ C C 248 1-Resolution Andere Kalküle • 1-Resolution Die 1-Resolution (unit resolution) benutzt dieselbe Notation wie im Resolutionskalkül. Die 1-Resolutionsregel ist ein Spezialfall der allgemeinen Resolutionsregel: • Das Davis-Putnam-Verfahren • Semantische Tableaux {P} {¬P} ∪ C C {¬P} {P} ∪ C C 249 1-Resolution 251 2.7 Das Davis-Putnam-Verfahren Die 1-Resolution (unit resolution) benutzt dieselbe Notation wie im Resolutionskalkül. Die 1-Resolutionsregel ist ein Spezialfall der allgemeinen Resolutionsregel: {P} {¬P} ∪ C C {¬P} {P} ∪ C C Der 1-Resolutionskalkül ist nicht vollständig. Die Klauselmenge M = {{P1 , P2 }, {P1 , ¬P2 }, {¬P1 , P2 }, {¬P1 , ¬P2 }} ist nicht erfüllbar, aber mit 1-Resolution ist aus M nichts ableitbar, also auch nicht ⊥. 250 252 Das Davis-Putnam-Verfahren Das Davis-Putnam-Verfahren Gegeben: N Klauselmenge Gegeben: N Klauselmenge Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell) Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell) Allgemenine Idee: • 1-Resolution + Fallunterscheidung Martin Davis and Hilary Putnam, 1960 • N Klauselmenge, P Aussagenvariable in N. N[P 7→⊥]: aus N entstanden durch Ersetzung von P durch ⊥ - P wird aus allen Klauseln gelöscht, 7→ Resolventen mit {¬P} - Klauseln, die ¬P enthalten werden ebenfalls gelöscht Subsumption N[P 7→ ⊤]: aus N entstanden durch Ersetzung von P durch ⊤ - ¬P wird aus allen Klauseln gelöscht, 7→ Resolventen mit {P} - Klauseln, die P enthalten werden ebenfalls gelöscht Subsumption N unerfüllbar gdw. (N[P 7→⊥] unerfüllbar und N[P 7→ ⊤] unerfüllbar) 253 255 Das Davis-Putnam-Verfahren Das Davis-Putnam-Verfahren N: eine Menge von Klauseln Gegeben: N Klauselmenge Programm DP(N): Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell) IF (N = ⊤) THEN Return “wahr” Allgemeine Idee: ELSE IF (N = ⊥) THEN Return “falsch” • 1-Resolution + Fallunterscheidung ELSE IF (N enthält Klausel {P}) THEN return DP(N[P 7→ ⊤]) ELSE IF (N enthält Klausel {¬P}) THEN return DP(N[P 7→⊥]) • N Klauselmenge, P Aussagenvariable in N. N[P 7→⊥]: aus N entstanden durch Ersetzung von P durch ⊥ - P wird aus allen Klauseln gelöscht, - Klauseln, die ¬P enthalten werden ebenfalls gelöscht N[P 7→ ⊤]: aus N entstanden durch Ersetzung von P durch ⊤ - ¬P wird aus allen Klauseln gelöscht, ELSE IF (N enthält pures Literal P (d.h. ¬P kommt in N nicht vor)) THEN return DP(N[P 7→ ⊤]) ELSE IF (N enthält pures Literal ¬P (d.h. P kommt in N nicht vor)) THEN return DP(N[P 7→ ⊥]) ELSE { - Klauseln, die P enthalten werden ebenfalls gelöscht Sei P Aussagenvariable in N N unerfüllbar gdw. (N[P 7→⊥] unerfüllbar und N[P 7→ ⊤] unerfüllbar) IF (DP(N ∪ {¬P}) THEN return “wahr” ELSE return DP(N ∪ {P}) } 254 256 Das Davis-Putnam-Verfahren Das Davis-Putnam Verfahren: Beispiel N: eine Menge von Klauseln (¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R) Programm DP(N): IF (N = ⊤) THEN Return “wahr” R ∧ ¬R ∧ (P ∨ ¬R) ELSE IF (N = ⊥) THEN Return “falsch” ddd dddddQ7d→d⊤ ELSE IF (N enthält Klausel {P}) THEN return DP(N[P 7→ ⊤]) ELSE IF (N enthält Klausel {¬P}) THEN return DP(N[P 7→⊥]) ELSE IF (N enthält pures Literal P (d.h. ¬P kommt in N nicht vor)) THEN return DP(N[P 7→ ⊤]) ELSE IF (N enthält pures Literal ¬P (d.h. P kommt in N nicht vor)) THEN return DP(N[P 7→ ⊥]) ELSE { Sei P Aussagenvariable in N IF (DP(N[P 7→ ⊥]) THEN return “wahr” ELSE return DP(N[P 7→ ⊤]) } 257 259 Das Davis-Putnam Verfahren: Beispiel Das Davis-Putnam Verfahren: Beispiel (¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R) (¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R) R ∧ ¬R ∧ (P ∨ ¬R) R ¬R ⊥ ddd dddddQ7d→d⊤ (oder: R7→⊥) ⊥ 258 260 Das Davis-Putnam Verfahren: Beispiel Das Davis-Putnam Verfahren: Beispiel (¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R) (¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R) R ∧ ¬R ∧ (P ∨ ¬R) R ¬R ⊥ ddd dddddQ7d→d⊤ YYYYYY YYYYY Q7→⊥ ¬P ∨ R R ∧ ¬R ∧ (P ∨ ¬R) ddd dddddQ7d→d⊤ YYYYYY YYYYY Q7→⊥ ¬P ∨ R R7→⊤ (oder: R7→⊥) R ¬R ⊥ (oder: R7→⊥) ¬P P7→⊥ ⊥ ⊥ ⊤ A = (P 7→ 0, R 7→ 1, Q 7→ 0) 261 263 Das Davis-Putnam Verfahren: Beispiel Das Davis-Putnam Verfahren Das Davis-Putnam Verfahren: 1-Resolution + Fallunterscheidung (¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R) R ∧ ¬R ∧ (P ∨ ¬R) ddd dddddQ7d→d⊤ YYYYYY YYYYY Q7→⊥ ¬P ∨ R R7→⊤ R ¬R ⊥ (oder: R7→⊥) ¬P Weiterentwicklung: Das Davis-Putnam-Logemann-Loveland Verfahren (DPLL) Martin Davis, Hilary Putnam, George Logemann and Donald W. Loveland ⊥ 1962 262 264 DPLL DPLL Gegeben: N Klauselmenge Gegeben: N Klauselmenge Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell) Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell) Idee: Erfüllende Wertebelegung inkrementell gebildet. Idee: Erfüllende Wertebelegung inkrementell gebildet. “partielle Wertebelegungen” Wir beginnen mit der leeren Belegung und versuchen diese Belegung zu einem Modell für N zu erweitern. Falls A partielle Wertebelegung, so können Literale und Klauseln in A wahr, falsch oder undefiniert sein. Eine Klausel ist wahr in A, wenn ein Literal in C wahr ist; falsch, wenn alle Literale falsch sind. Sonst ist C undefiniert (unresolved). 265 DPLL 267 Einerklauseln (Unit clauses) Definition. Sei A eine Interpretation. Sei C = L1 ∨ · · · ∨ Ln ∨ L ∈ N, so dass L1 , . . . , Ln falsch in A und L nicht definiert. Gegeben: N Klauselmenge Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell) Dann heißt C Einerklausel (Unit clause). Idee: Erfüllende Wertebelegung inkrementell gebildet. “partielle Wertebelegungen” Lemma. Seien A eine Interpretation und C = L1 ∨ · · · ∨ Ln ∨ L ∈ N, so dass L1 , . . . , Ln falsch in A und L nicht definiert. Wir beginnen mit der leeren Belegung und versuchen diese Belegung zu einem Modell für N zu erweitern. Es gibt ein Modell von N, das A erweitert, genau dann, wenn es ein Modell von N gibt, das A erweitert und L wahr macht. 266 268 Pure Literale Pure Literale Definition: Ein Literal L heißt pur in einer Klauselmenge N (Klauseln seien Mengen von Literalen), wenn Definition: Ein Literal L heißt pur in einer Klauselmenge N (Klauseln seien Mengen von Literalen), wenn • L Element einer Klausel in N ist und • L Element einer Klausel in N ist und • das Komplement von L in keiner Klausel von N enthalten ist. • das Komplement von L in keiner Klausel von N enthalten ist. Eine Klausel C in einer Klauselmenge N heißt pur in N, wenn C ein in N pures Literal enthält. Eine Klausel C in einer Klauselmenge N heißt pur in N, wenn C ein in N pures Literal enthält. Lemma. Lemma. Für jede pure Klausel C in einer Klauselmenge N: N erfüllbar gdw. N\{C } erfüllbar Für jede pure Klausel C in einer Klauselmenge N: N erfüllbar gdw. N\{C } erfüllbar Beweis: “⇒” Falls N erfüllbar, ist N\{C } auch erfüllbar. “⇐” Annahme: N\{C } erfüllbar (sei A Modell), C enthält ein in N pures Literal L. ( A(Q) falls Q 6= P ′ ′ L = ¬P: A : Π → {0, 1} mit A (Q) = ist Modell für N. 0 falls Q = P 269 271 Pure Literale Pure Literale Definition: Ein Literal L heißt pur in einer Klauselmenge N (Klauseln seien Mengen von Literalen), wenn Definition: Ein Literal L heißt pur in einer Klauselmenge N (Klauseln seien Mengen von Literalen), wenn • L Element einer Klausel in N ist und • L Element einer Klausel in N ist und • das Komplement von L in keiner Klausel von N enthalten ist. • das Komplement von L in keiner Klausel von N enthalten ist. Eine Klausel C in einer Klauselmenge N heißt pur in N, wenn C ein in N pures Literal enthält. Lemma. Eine Klausel C in einer Klauselmenge N heißt pur in N, wenn C ein in N pures Literal enthält. Für jede pure Klausel C in einer Klauselmenge N: N erfüllbar gdw. N\{C } erfüllbar Lemma. Für jede pure Klausel C in einer Klauselmenge N: N erfüllbar gdw. N\C erfüllbar Lemma. Sei A eine partielle Wertebelegung. Für jedes pure Literal L in einer Klauselmenge N gilt: Es gibt ein Modell von N, das A erweitert genau dann, wenn es ein Modell von N gibt, das A erweitert und L wahr macht. Beweis: “⇒” Falls N erfüllbar, ist N\{C } auch erfüllbar. “⇐” Annahme: N\{C } erfüllbar (sei A Modell), C enthält ein in N pures Literal L. ( A(Q) falls Q 6= P L = P: A′ : Π → {0, 1} mit A′ (Q) = ist Modell für N. 1 falls Q = P 270 272 DPLL Eine alternative Formulierung N: eine Menge von Klauseln, A partielle Wertebeleung Zustand: M||F Programm DPLL(N, A): wobei: IF (alle Klauseln in N wahr in A) THEN Return “wahr” - M Sequenz von Literalen (partielle Wertebelegung) ELSE IF (eine Klausel in N falsch in A) Return “falsch” (Ld : Entscheidungsliteral) ELSE IF (N enthält Einerklausel {P}) THEN return DPLL(N, A ∪ {P 7→ 1}) - F Klauselmenge ELSE IF (N enthält Einerklausel {¬P}) THEN return DPLL(N, A ∪ {P 7→ 0}) ELSE IF (N enthält pures Literal P) THEN return DPLL(N, A ∪ {P 7→ 1}) ELSE IF (N enthält pures Literal ¬P) THEN return DPLL(N, A ∪ {P 7→ 0}) ELSE { Sei P undefinierte Aussagenvariable in N IF (DPLL(N, A(P 7→ 0))) THEN return “wahr” ELSE return DPLL(N, A ∪ {P 7→ 1}) 273 275 DPLL Eine alternative Formulierung N: eine Menge von Klauseln, A partielle Wertebeleung UnitPropagation Programm DPLL(N, A): M||F , C ∨ L ⇒ M, L||F , C ∨ L falls M |= ¬C , und L undef. in M IF (alle Klauseln in N wahr in A) THEN Return “wahr” Decide ELSE IF (eine Klausel in N falsch in A) Return “falsch” ELSE IF (N enthält Einerklausel {P}) THEN return DPLL(N, A ∪ {P 7→ 1}) M||F ⇒ M, Ld ||F ELSE IF (N enthält Einerklausel {¬P}) THEN return DPLL(N, A ∪ {P 7→ 0}) Fail ELSE IF (N enthält pures Literal P) THEN return DPLL(N, A ∪ {P 7→ 1}) M||F , C ⇒ Fail ELSE IF (N enthält pures Literal ¬P) THEN return DPLL(N, A ∪ {P 7→ 0}) Backjump ELSE { Sei P undefinierte Aussagenvariable in N M, Ld , N||F ⇒ M, L′ ||F IF (DPLL(N, A(P 7→ 0))) THEN return “wahr” ELSE return DPLL(N, A ∪ {P 7→ 1}) Am Anfang: A = ∅ DPLL(N, ∅) 274 falls L oder ¬L kommt in F vor, L undef. in M falls M |= ¬C , M enthält kein Entscheidungsliteral 8 > es gibt eine Klausel C ∨ L′ mit: > > > > < F |= C ∨ L′ , M |= ¬C , falls > > L′ undef. in M > > > ′ : L oder ¬L′ kommt in F vor. 276 Eine alternative Formulierung Backjump M, Ld , N||F ⇒ M, L′ ||F Beispiel 8 > es gibt eine Klausel C ∨ L′ mit: > > > > < F |= C ∨ L′ , M |= ¬C , falls > > L′ undef. in M > > > ′ : L oder ¬L′ kommt in F vor. Wertebelegung: Klauselmenge: ∅ ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ¬P1 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Pure Literal) ⇒ (Pure Literal) Es gibt mehrere mögliche backjump Klauseln. Ein Kandidat ist ¬L1 ∨ · · · ∨ ¬Ln wo L1 , . . . , Ln alle Entscheidungsliterale in MLd N sind. (Es gibt manchmal bessere Kandidaten). 277 279 Beispiel Beispiel Wertebelegung: Klauselmenge: Wertebelegung: Klauselmenge: ∅ ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ∅ ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ¬P1 ¬P3 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ¬P1 278 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Pure Literal) ⇒ (Pure Literal) 280 Beispiel Beispiel Wertebelegung: Klauselmenge: Wertebelegung: Klauselmenge: ∅ ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Pure Literal) ∅ ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Pure Literal) ¬P1 ¬P3 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Decide) ¬P1 ¬P3 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Decide) ¬P1 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Pure Literal) ¬P1 ¬P1 ¬P3 P5 d ¬P1 ¬P3 P5 d ¬P6 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ ¶5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 281 Klauselmenge: ∅ ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ¬P1 ¬P3 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ¬P1 ¬P1 ¬P3 P5 d ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (UnitProp) ⇒ (Backtrack) 283 Beispiel Wertebelegung: ⇒ (Pure Literal) Beispiel Wertebelegung: Klauselmenge: ⇒ (Pure Literal) ∅ ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Pure Literal) ⇒ (Decide) ¬P1 ¬P3 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Decide) ⇒ (Pure Literal) ⇒ (UnitProp) ¬P1 ¬P1 ¬P3 P5 d ¬P1 ¬P3 P5 d ¬P6 ¬P1 ¬P3 ¬P5 282 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Pure Literal) ⇒ (UnitProp) ⇒ (Backtrack) 284 Beispiel DPLL Das DPLL-Verfahren (Davis-Putnam-Logemann-Loveland) Wertebelegung: Klauselmenge: ∅ ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Pure Literal) ¬P1 ¬P3 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Decide) ¬P1 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ¬P1 ¬P3 P5 d ¬P1 ¬P3 P5 d ¬P6 ¬P1 ¬P3 ¬P5 ¬P1 ¬P3 ¬P5 P6 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Pure Literal) ⇒ (UnitProp) ⇒ (Backtrack) ⇒ (UnitProp) • Das bekannteste und am meisten verbreitete Verfahren zur systematischen Suche eines Modells • wurde in den letzten Jahrzehnten mit Hilfe von Heuristiken und Lernverfahren stark verbessert 285 287 Beispiel Andere Kalküle • 1-Resolution Wertebelegung: Klauselmenge: ∅ ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Pure Literal) ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Decide) ¬P1 ¬P1 ¬P3 ¬P1 ¬P3 P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 d ¬P1 ¬P3 P5 d ¬P6 ¬P1 ¬P3 ¬P5 ¬P1 ¬P3 ¬P5 P6 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Pure Literal) • Das Davis-Putnam-Verfahren • Semantische Tableaux ⇒ (UnitProp) ⇒ (Backtrack) ⇒ (UnitProp) Die Klauselmenge ist erfüllbar. Modell: A(P1 ) = 0, A(P3 ) = 0, A(P5 ) = 0, A(P6 ) = 1 A(P2 ), A(P4 ) beliebig. 286 288 2.8 Der aussagenlogische Tableaukalkül Der aussagenlogische Tableaukalkül Wesentliche Eigenschaften • Widerlegungskalkül: Testet auf Unerfüllbarkeit • Beweis durch Fallunterscheidung • Top-down-Analyse der gegebenen Formeln 289 291 Der aussagenlogische Tableaukalkül Der aussagenlogische Tableaukalkül Geschichte Vorteile • Beth (1955), Hintikka (1955) and Schütte (1956) • Intuitiver als Resolution • Analytic tableaus: Smullyan 1968 • Formeln müssen nicht in Normalform sein • Automatisches Beweisen/Mechanisierung: • Falls Formelmenge erfüllbar ist (Test schlägt fehl), wird ein Gegenbeispiel (eine erfüllende Interpretation) konstruiert Kanger 1957, Prawitz 1960, Wang 1960, Davis 1960, Maslov 1968. Nachteile • Weiterentwicklung/Verfeinerungen: Loveland 1968 (Model elimination), • Mehr als eine Regel Kowalski, Kuehner 1971 (SL-resolution) Bibel 1975, Andrews 1976 ... 290 292 Formeltypen Formeltypen Konjunktive Formeln: Typ α Disjunktive Formeln: Typ β • ¬¬F • ¬(F ∧ G ) • F ∧G • F ∨G • ¬(F ∨ G ) • F →G • ¬(F → G ) Zuordnungsregeln Formeln / Unterformeln Disjunktive Formeln: Typ β • ¬(F ∧ G ) • F ∨G β β1 β2 ¬(F ∧ G ) ¬F ¬G F ∨G • F →G F →G F G ¬F G 293 Formeltypen 295 Regeln des (aussagenlogischen) Tableaukalküls Konjunktive Formeln: Typ α p∧q | p | q α • ¬¬F Konjunktiv α1 • F ∧G α2 • ¬(F ∨ G ) • ¬(F → G ) β Zuordnungsregeln Formeln / Unterformeln β1 | β2 α F ∧G α1 G ¬F ¬G ¬(F → G ) F ¬G ¬¬F F φ ¬φ ⊥ 294 / p α2 F ¬(F ∨ G ) p∨q Disjunktiv Widerspruch \ q φ ¬φ | ⊥ 296 Instanzen der α und β-Regel Determinismus von Kalkül und Regeln Instanzen der α-Regel Determinismus P ∧Q ¬(P ∨ Q) ¬(P → Q) ¬¬P P ¬P P P Q ¬Q ¬Q • Die Regeln sind alle deterministisch • Der Kalkül aber nicht: Auswahl der nächsten Formel, auf die eine Regel angewendet wird Instanzen der β-Regel Heuristik P ∨Q ¬(P ∧ Q) P→Q P | Q ¬P | ¬Q ¬P | Q • Nicht-verzweigende Regeln zuerst: α vor β Nota bene: Dieselbe Formel kann mehrfach (auf verschiedenen Ästen) verwendet werden 297 299 Ein Tableau für {P ∧ ¬(Q ∨ ¬R), ¬Q ∨ ¬R} Formale Definition des Kalküls Definition Tableau: Binärer Baum, dessen Knoten mit Formeln markiert sind 1. P ∧ ¬(Q ∨ ¬R) 2. ¬Q ∨ ¬R PPP P 3. ¬Q 5. P 10. P 6. ¬(Q ∨ ¬R) 11. ¬(Q ∨ ¬R) 7. ¬Q 8. ¬¬R 9. R 4. ¬R Definition Dieses Tableau ist nicht “maximal”, aber der erste “Ast” ist. Dieser Ast ist nicht “geschlossen” (enthält keinen Widerspruch), also ist die Menge {1, 2} erfüllbar. (Diese Begriffe werden auf den nächsten Seiten erklärt.) Tableauast: Maximaler Pfad in einem Tableau (von Wurzel zu Blatt) 298 300 Formale Definition des Kalküls Formale Definition des Kalküls Sei M eine Formelmenge Definition. Initialisierung Ast B eines Tableaus für M ist geschlossen, wenn Das Tableau, das nur aus dem Knoten 1 besteht, ist ein Tableau für M F , ¬F ∈ B ∪ M Erweiterung • T ein Tableau für M Definition. • B ein Ast von T Ein Tableau ist geschlossen, wenn jeder seiner Äste geschlossen ist. • F eine Formel auf B oder in M, die kein Literal ist T ′ entstehe durch Erweiterung von B gemäß der auf F anwendbaren Regel (α oder β) Definition. Ein Tableau für M, das geschlossen ist, ist ein Tableaubeweis für (die Unerfüllbarkeit von) M Dann ist T ′ ein Tableau für M. 301 303 Formale Definition des Kalküls Beispiel Nota bene: Zu zeigen: Alle Äste in einem Tableau für M enthalten implizit alle Formeln in M (P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S)) allgemeingültig Wir zeigen, dass ¬[(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S))] unerfüllbar ist. 302 304 Beispiel Klauseltableau: Beispiel M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} } 1. ¬[(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S))] 2. (P → (Q → R)) [11 ] 3. ¬((P ∨ S) → ((Q → R) ∨ S)) [12 ] 4. P ∨S [31 ] 5. ¬((Q → R) ∨ S)) [32 ] 6. ¬(Q → R) [51 ] ¬S [52 ] 7. hhhhhhh h 8. ¬P 9. [21 ] Q→R [22 ] XXXX X 10. P [41 ] 11. S [42 ] geschlossenes Tableau. 305 Klauseltableau 307 Klauseltableau: Beispiel M Menge von Klauseln M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} } Änderungen ¬P • Keine α-Regel ii 1. TTTTTT iiii TTT i i i i Q • Erweiterungsregel kann Verzweigungsgrad > 2 haben • Alle Knoten im Tableau enthalten Literale 306 308 Klauseltableau: Beispiel Klauseltableau: Beispiel M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} } ¬P P u uuu hhhh 1. UUUUUUUU h h h h UU hhh Q KKK w JJJJ www ¬Q P M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} } ¬Q P ⊥ V ggggg 1. VVVVVVVV g g g g VV ggg ¬P K u Q LLLL K u K uuu uuu ¬Q P ¬Q PPP pp P III s ppp sss P Q R ¬P ⊥ ⊥ ⊥ ⊥ ¬Q ⊥ ⊥ 309 311 Korrektheit und Vollständigkeit des Tableaukalküls Klauseltableau: Beispiel M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} } Theorem. P ggg 1. VVVVVVV gggg VVVV g g g g ¬P K u Q LLLL KK u uuu uuu ¬Q O ¬Q P OOO pp III s p s s p s P Q R ¬P Eine Formelmenge M ist unerfüllbar genau dann, wenn es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt ¬Q 310 312 Korrektheit und Vollständigkeit des Tableaukalküls Kern des Korrektheitsbeweises Theorem (Korrektheit) Falls es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt (d.h. ein Tableau für M, das geschlossen ist) so ist M unerfüllbar. Theorem. Eine Formelmenge M ist unerfüllbar genau dann, wenn es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt ... alternativ: Falls M erfüllbar ist, hat M kein geschlossenes Tableau. Korrektheit: “⇐” Falls es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt (d.h. ein Tableau für M, das geschlossen ist) so ist M unerfüllbar. ... alternativ: Falls M erfüllbar ist, hat M kein geschlossenes Tableau. 313 315 Korrektheit und Vollständigkeit des Tableaukalküls Kern des Korrektheitsbeweises Theorem (Korrektheit) Falls es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt (d.h. ein Tableau für M, das geschlossen ist) so ist M unerfüllbar. Theorem. Eine Formelmenge M ist unerfüllbar genau dann, wenn es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt ... alternativ: Falls M erfüllbar ist, hat M kein geschlossenes Tableau. Definition. Ein Tableauast ist erfüllbar, wenn die Menge seiner Formeln erfüllbar ist Vollständigkeit: “⇒” Ein Tableau ist erfüllbar, wenn es (mindestens) einen erfüllbaren Ast hat Falls M unerfüllbar ist, gibt es einen Tableaubeweis für (die Unerfüllbarkeit von) M (d.h. ein Tableau für M, das geschlossen ist). Lemma 1. Jedes Tableau für eine erfüllbare Formelmenge M ist erfüllbar Lemma 2. Ein geschlossenes Tableau ist nicht erfüllbar ... Also: Kein geschlossenes Tableau für erfüllbare Formelmenge 314 316 Lemma 1: Beweis Lemma 1: Beweis Definition.Tableauast ist erfüllbar, wenn die Menge seiner Formeln erfüllbar ist. Tableau ist erfüllbar, wenn es (mindestens) einen erfüllbaren Ast hat Definition. Tableauast ist erfüllbar, wenn die Menge seiner Formeln erfüllbar ist. Tableau ist erfüllbar, wenn es (mindestens) einen erfüllbaren Ast hat Lemma 1. Jedes Tableau für eine erfüllbare Formelmenge M ist erfüllbar Beweis: Induktion Lemma 1. Jedes Tableau für eine erfüllbare Formelmenge M ist erfüllbar Beweis: Induktion p(n): Falls M erfüllbar und das Tableau T in n Schritten aus M gebildet wurde, ist T erfüllbar Induktionsschritt: Annahme p(n) gilt. Zu zeigen: p(n + 1). p(n): Falls M erfüllbar und das Tableau T in n Schritten aus M gebildet wurde, ist T erfüllbar Sei T ein in n + 1 Schritten gebildetes Tableau für M. Dann gibt es ein Tableau T ′ für M (in n Schritten gebildet), ein Ast B von T ′ und eine Formel F auf B oder in M, die kein Literal ist, so dass T durch die Erweiterung von B gemäß der auf F anwendbaren Regel (α oder β) entstanden ist. Induktionsbasis: T wurde in einem Schritt gebildet. Initialisierung Das Tableau, das nur aus dem Knoten 1 besteht, ist ein Tableau für M Induktionsvoraussetzung: T ′ erfüllbar, d.h. hat (mindestens) einen erfüllbaren Ast B ′ . Fall 2: B ′ = B d.h. B erfüllbar. Sei A Modell für die Formeln NB auf B. da M erfüllbar ist, ist ein solches Tableau erfüllbar Fall 2a: α-Regel angewandt F ≡ F1 ∧ F2 . Dann ist A Modell für NB ∪ {F1 , F2 }, d.h.: die Erweiterung von B mit dieser α-Regel ist erfüllbar, so T erfüllbar. 317 319 Lemma 1: Beweis Lemma 1: Beweis Definition.Tableauast ist erfüllbar, wenn die Menge seiner Formeln erfüllbar ist. Tableau ist erfüllbar, wenn es (mindestens) einen erfüllbaren Ast hat Definition.Tableauast ist erfüllbar, wenn die Menge seiner Formeln erfüllbar ist. Tableau ist erfüllbar, wenn es (mindestens) einen erfüllbaren Ast hat Lemma 1. Jedes Tableau für eine erfüllbare Formelmenge M ist erfüllbar Lemma 1. Jedes Tableau für eine erfüllbare Formelmenge M ist erfüllbar Beweis: Induktion Beweis: Induktion p(n): Falls M erfüllbar und das Tableau T in n Schritten aus M gebildet wurde, ist T erfüllbar p(n): Falls M erfüllbar und das Tableau T in n Schritten aus M gebildet wurde, ist T erfüllbar Induktionsschritt: Annahme p(n) gilt. Zu zeigen: p(n + 1). Induktionsschritt: Annahme p(n) gilt. Zu zeigen: p(n + 1). Sei T ein in n + 1 Schritten gebildetes Tableau für M. Dann gibt es ein Tableau T ′ für M (in n Schritten gebildet), ein Ast B von T ′ und eine Formel F auf B oder in M, die kein Literal ist, so dass T durch die Erweiterung von B gemäß der auf F anwendbaren Regel (α oder β) entstanden ist. Sei T ein in n + 1 Schritten gebildetes Tableau für M. Dann gibt es ein Tableau T ′ für M (in n Schritten gebildet), ein Ast B von T ′ und eine Formel F auf B oder in M, die kein Literal ist, so dass T durch die Erweiterung von B gemäß der auf F anwendbaren Regel (α oder β) entstanden ist. Induktionsvoraussetzung: T ′ erfüllbar, d.h. hat (mindestens) einen erfüllbaren Ast B ′ . Induktionsvoraussetzung: T ′ erfüllbar, d.h. hat (mindestens) einen erfüllbaren Ast B ′ . Fall 2: B ′ = B d.h. B erfüllbar. Sei A Modell für die Formeln NB auf B. Fall 1: B ′ 6= B. Dann ist B ′ auch Ast in T , d.h. T erfüllbar. Fall 2b: β-Regel angewandt F ≡F1 ∨F2 . Dann 1=A(F )=A(F1 )∨A(F2 ), so A(F1 )=1 oder A(F2 )=1. Dann A|=NB ∪{Fi }, i=1 oder 2, d.h. A Modell für alle Formeln auf der Erweiterung von B mit F1 oder F2 , so T erfüllbar. 318 320 Lemma 2: Beweis Lemma 3: Beweis Definition. Lemma 3. B offener Ast in voll expandiertem Tableau, dann B ∪ M erfüllbar. Tableauast ist erfüllbar, wenn die Menge seiner Formeln erfüllbar ist Beweis: (für klausale Tableaux) Tableau ist erfüllbar, wenn es (mindestens) einen erfüllbaren Ast hat Sei N die Menge der Formeln auf B. Da B offen ist, ist ⊥ nicht in N. Seien C ∨ A, D ∨ ¬A zwei Klauseln in N die komplementäre Literale enthalten. Einer von C , D ist nicht leer (sonst wäre B geschlossen). Lemma 1. Jedes Tableau für eine erfüllbare Formelmenge M ist erfüllbar Annahme: C nicht leer. Da B voll expandiert ist, wurde die β-Regel für C ∨ A angewandt (auch für D ∨ ¬A falls D nicht leer). Lemma 2. Ein geschlossenes Tableau ist nicht erfüllbar Fall Fall Fall Fall Beweis: Kontraposition Annahme: T erfüllbar. Dann hat T einen erfüllbaren Ast B. Falls die Menge der Formeln auf B (und M) erfüllbar ist, kann B nicht ⊥ enthalten, d.h. B kann nicht geschlossen sein. 1: A, ¬A ∈ B: unmöglich, da B offen ist. 2: A, L ∈ B mit L Literal in D. N erfüllbar gdw. N\{D ∨ ¬A} erfüllbar. 3: L, ¬A ∈ B, mit L Literal in C . N erfüllbar gdw. N\{C ∨ A} erfüllbar. 4: L1 , L2 ∈ B, mit L1 Literal in C , L2 Literal in D. N erfüllbar gdw. N\{C ∨ A, D ∨ ¬A} erfüllbar. N 7→ N ′ , N ′ Klauselmenge ohne komplementäre Literale und ohne ⊥ Die Erfüllbarkeit von N ′ folgt aus der Vollständigkeit der Resolution. 321 Kern des Vollständigkeitsbeweises 323 Klauseltableau: Einschränkungen des Suchraums Definition. Regularität: Ein Tableau heißt voll expandiert, wenn Kein Literal darf auf einem Ast mehr als einmal vorkommen • jede Regel • auf jede passende Formel Schwache Konnektionsbedingung (Connection calculus) • auf jedem offenen Ast Bei Erweiterung von Ast B muss mindestens eines der neuen Literale komplementär zu Literal in B ∪ M sein. angewendet worden ist. Starke Konnektionsbedingung (Modellelimination) Lemma 3. B offener Ast in voll expandiertem Tableau, dann B ∪ M erfüllbar. Bei Erweiterung von Ast B muss mindestens eines der neuen Literale komplementär zum Blatt von B sein – außer beim ersten Schritt. ... Also: Voll expandiertes Tableau für unerfüllbares M ist geschlossen 322 324 Klauseltableau: Einschränkungen des Suchraums Klauseltableau: Weiteres Beispiel Behauptung Theorem (hier ohne Beweis) Regularität, starke und schwache Konnektionsbedingung erhalten Vollständigkeit. Dann müssen sie ans Meer mit Vollpension, mit Pool und ohne Flug. M ∧ V ∧ P ∧ ¬F Jedoch Zu zeigen: Bei starker Konnektionsbedingung kann ungünstige Erweiterung in Sackgasse führen. {¬F → (V ∧ M), (M ∧ F ) ∨ (M ∧ ¬P) ∨ (V ∧ P), ¬P → (F ∧ M ∧ ¬V ), (P ∧ ¬F ) ∨ (V ∧ ¬P)} |= (bei schwacher Konnektionsbedinung nicht) Wir zeigen, dass die folgende Konjunktion unerfüllbar ist: (¬F → (V ∧ M), (M ∧ F ))∧ ((M ∧ F ) ∨ (M ∧ ¬P) ∨ (V ∧ P))∧ (¬P → (F ∧ M ∧ ¬V ))∧ ((P ∧ ¬F ) ∨ (V ∧ ¬P))∧ ¬M ∨ ¬V ∨ ¬P ∨ F (Negation der Behauptung) Beispiel: M = {{P}, {¬Q}, {¬P, Q}, {¬P, R}} Zuerst {¬P, Q}: OK Zuerst {¬P, R}: Sackgasse M ∧ V ∧ P ∧ ¬F 325 Klauseltableau: Weiteres Beispiel 327 Klauseltableau: Weiteres Beispiel Signatur: F : Flugreise V : Vollpension M: Meer P: Pool ¬F → (V ∧ M) (M ∧ F ) ∨ (M ∧ ¬P) ∨ (V ∧ P) Falls sie nicht mit dem Flugzeug fliegen, besteht der Vater auf Vollpension am Meer. ¬F → (V ∧ M) Die Mutter möchte mindestens einen ihrer drei Wünsche erfüllt sehen: ans Meer fliegen, oder am Meer ohne Pool, oder Vollpension und Pool. (M ∧ F ) ∨ (M ∧ ¬P) ∨ (V ∧ P) ¬P → (F ∧ M ∧ ¬V ) Gibt es keinen Pool, so besteht Tochter Lisa auf einer Flugreise und Urlaub am Meer und darauf, dass keine Vollpension gebucht wird. (P ∧ ¬F ) ∨ (V ∧ ¬P) ¬P → (F ∧ M ∧ ¬V ) Auch dem Baby soll einer seiner Wünsche erfüllt werden: erstens einen Pool und nicht fliegen oder zweitens Vollpension, dann aber ohne Pool. Negation der Behauptung (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) F ∨V F ∨M M ∨V M∨P M ∨ ¬P ∨ V F ∨M ∨V F ∨M ∨P F ∨ ¬P ∨ V P ∨F P ∨M P ∨ ¬V P ∨V ¬F ∨ V ¬F ∨ ¬P ¬M ∨ ¬V ∨ ¬P ∨ F (P ∧ ¬F ) ∨ (V ∧ ¬P) 326 328 Klauseltableau: Weiteres Beispiel Terminierung Beobachtung Aussagenlogische Resolution (für Klauselmengen in Mengennotation) terminiert, für jede endliche Menge von Klauseln. Konstruktion des Konnektionstableaus • bei Beginn mit Klausel (1) Beweis: Es gibt nicht mehr als 22n Klauseln (in Mengennotation) mit n Aussagenvariablen. • mit Regularität • mit starker Konnektionsbedingung 7→ nicht mehr als (22n )2 mögliche Anwendungen der Resolutionsregel. Dann: Nahezu deterministische Beweiskonstruktion 329 331 Klauseltableau: Weiteres Beispiel (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) F ∨V F ∨M M ∨V M ∨P M ∨ ¬P ∨ V F ∨M ∨V F ∨M ∨P F ∨ ¬P ∨ V P ∨F P ∨M P ∨ ¬V P ∨V ¬F ∨ V ¬F ∨ ¬P ¬M ∨ ¬V ∨ ¬P ∨ F Terminierung Das Davis-Putnam und das DPLL Verfahren terminieren ebenfalls. 1 Beweis (Idee auf Beispiel) F V V F P P V P P F V Wertebelegung: Klauselmenge: ∅ ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ¬P1 ¬P1 ¬P3 F F ¬P1 ¬P3 P5 d ¬P1 ¬P3 P5 d ¬P6 M M V P ¬P1 ¬P3 ¬P5 ¬P1 ¬P3 ¬P5 P6 F ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ∨ ¬P5 ∨ ¬P5 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Pure Literal) ⇒ (Pure Literal) ⇒ (Decide) ⇒ (UnitProp) ⇒ (Backtrack) ⇒ (UnitProp) Noether’sche Ordnung auf partiellen Wertebelegungen (Wieviele Literale sind undefiniert? Gibt es Entscheidungsliterale? Partielle Wertebelegungen werden mit jedem Schritt kleiner. 330 332 Terminierung Zusammenfassung: Tableaukalkül Beweis durch Widerspruch und Fallunterscheidung Ähnliches Resultat für Tableaux? • Tableauregeln (mit uniformer Notation) • Formale Definition des Kalküls • Korrektheit und Vollständigkeit • Klauseltableau • Regularität • Schwache und starke Konnektionsbedingung • Strikte Tableaux • Terminierung 333 Terminierung 335 3. Prädikatenlogik Definition. Ein Tableau ist strikt, falls für jede Formel F die entsprechende Erweiterungsregel höchstens einmal auf jeden Ast, der die Formel enthält, angewandt wurde. Theorem. Sei T ein striktes aussagenlogisches Tableau. Dann ist T endlich. Beweis: Neue Formeln mit denen ein Tableau erweitert wird sind ⊥, (⊤) oder Teilformeln der Formel, auf der die Erweiterungsregel angewandt wird. Da T strikt ist, wird für jede Formel F die entsprechende Erweiterungsregel höchstens einmal auf jeden Ast, der die Formel enthält, angewandt. Dann sind alle Äste in T endlich, und so ist auch T endlich (König’s Lemma). 334 336 Rückblick: Vor- und Nachteile von Aussagenlogik Prädikatenlogik + Aussagenlogik ist deklarativ: Syntaxelemente entsprechen Fakten Reichere Struktur + Aussagenlogik erlaubt konjunktive / disjunktive / negative Aussagen (im Gegensatz zu vielen Datenstrukturen und Datenbanken) • Objekte (Elemente) Leute, Häuser, Zahlen, Theorien, Farben, Jahre, ... + Aussagenlogik ist kompositional: Bedeutung von F1 ∧ F2 leitet sich ab aus der von F1 und F2 • Relationen (Eigenschaften) rot, rund, prim, mehrstöckig, ... ist Bruder von, ist größer als, ist Teil von, hat Farbe, besitzt, .. =, ≥, ... + Bedeutung in Aussagenlogik ist kontextunabhängig (im Gegensatz zu natürlicher Sprache) • Funktionen +, Mitte von, Vater von, Anfang von, ... − Aussagenlogik hat nur beschränkte Ausdruckskraft (im Vergleich zu natürlicher Sprache) Beispiele: • Die Aussage “Alle Menschen sind sterblich” erfordert eine Formel für jeden Mensch. 337 339 Rückblick: Vor- und Nachteile von Aussagenlogik Weitere Logiken + Aussagenlogik ist deklarativ: Syntaxelemente entsprechen Fakten Logik + Aussagenlogik erlaubt konjunktive / disjunktive / negative Aussagen (im Gegensatz zu vielen Datenstrukturen und Datenbanken) + Aussagenlogik ist kompositional: Bedeutung von F1 ∧ F2 leitet sich ab aus der von F1 und F2 Aussagenlogik Fakten wahr/falsch Prädikatenlogik Objekte, Funktionen, wahr/falsch Relationen + Bedeutung in Aussagenlogik ist kontextunabhängig (im Gegensatz zu natürlicher Sprache) − Aussagenlogik hat nur beschränkte Ausdruckskraft (im Vergleich zu natürlicher Sprache) Temporallogik Fakten, Zeitpunkte wahr/falsch Mehrwertige Logik Fakten wahr/falsch/unbekannt Fuzzy-Logik Fakten [0, 1] ... ... ... Beispiele: • Die Aussage “Jede natürliche Zahl ist entweder gerade oder ungerade” erfordert eine Formel für jede Zahl. 338 340 Syntax der Prädikatenlogik: Logische Zeichen Syntax der Prädikatenlogik: Vokabular Wie in der Aussagenlogik Definition ⊤ Symbol für die Formel “wahr” (Formel, die immer wahr ist) ⊥ Symbol für die Formel “falsch” (Formel, die immer falsch ist) Prädikatenlogische Signatur: Paar Σ = (Ω, Π) wobei: • Ω eine Menge von Funktionssymbolen f mit Stelligkeit n ≥ 0, geschrieben f /n, ¬ Negationssymbol (“nicht”) z.B. 2/0, koblenz/0, c/0, sqrt/1, leftLegOf/1, +/2, -/2 ∧ Konjunktionssymbol (“und”) ∨ Disjunktionssymbol (“oder”) → Implikationssymbol (“wenn . . . dann”) ↔ Symbol für Äquivalenz (“genau dann, wenn”) • Π Menge von Prädikatensymbolen p mit Stelligkeit m ≥ 0, geschrieben p/m z.B. bruderVon/1, > /2, ≈ /2, . . . ( ) die beiden Klammern Quantoren Bemerkung: Das Gleichheitsprädikat ≈ kann (muss aber nicht) enthalten sein. Es wird infix notiert. Allquantor (“für alle”) Existenzquantor (“es gibt”) E A 341 Syntax der Prädikatenlogik: Vokabular 343 Syntax der Prädikatenlogik: Vokabular Signatur Definition. Zweck: Festlegung der nichtlogischen Symbole Funktionsssymbole mit Stelligkeit n = 0 heißen Konstante z.B. 2, koblenz, c Σ = (Ω, Π), Definition. Prädikatensymbole mit Stelligkeit n = 0 heißen Aussagenvariablen 342 344 Syntax der Prädikatenlogik: Vokabular Terme Variablen Terme sind also vollständig geklammerte Ausdrücke, die wir auch als markierte, geordnete Bäume auffassen können. Die Knoten sind mit Funktionssymbolen oder Variablen markiert. Jeder mit einem Funktionssymbol f der Stelligkeit n markierte Knoten hat genau n Unterbäume, einen für jedes Argument von f . Prädikatenlogik erlaubt die Formulierung abstrakter (schematischer) Aussagen. Technisches Hilfmittel hierfür sind die Variablen. Wir nehmen an, dass X eine vorgegebene Menge von abzählbar unendlich vielen Symbolen ist, die wir für (die Bezeichnung von) Variablen verwenden. 345 347 Terme Beispiele Terme über Σ (bzw. Σ-Terme) werden nach folgenden syntaktischen Regeln gebildet: s, t, u, v ::= | x ,x ∈X (Variable) f (s1 , ..., sn ) , f /n ∈ Ω (F-Terme) Σ = (Ω, Π) Ω = {Jan/0, Vater /1, Mutter /1} {x, y , z} ⊆ X Terme: Mit TΣ (X ) bezeichnen wir die Menge der Σ-Terme x Jan Vater (x) Vater (Jan) Menge TΣ (X ) der Σ-Terme: Mutter (x) Mutter (Jan) Die kleinste Menge mit: X ⊆ TΣ (X ) Vater (Mutter (x)) Vater (Mutter (Jan)) Wenn • f ∈ Ω, • n ist die Stelligkeit von f • t1 , . . . , tn ∈ TΣ (X ) dann f (t1 , . . . , tn ) ∈ TΣ (X ) 346 348 Beispiele Beispiele Σ = (Ω, Π) Σ = (Ω, Π) Σ = {0/0, 1/0, succ/1, +/2} Ω = {Jan/0, Anna/0, Vater /1, Mutter /1} {x, y , z} ⊆ X Π = {Mann/1, Frau/1, Bruder /2, ≈ /2} Terme: {x, y , z} ⊆ X x, y , z, 0, 1 Atome: succ(x), succ(0), succ(1) x + y , x + z, x + 0, x + 1, (x + (succ(y ) + 1)), ... +(x, y ), +(x, z), +(x, 0), +(x, 1), +(x, +(succ(y ), 1)) Infix Mann(x) Mann(Jan) Mann(Anna) Mann(Vater (x)) Frau(Vater (Jan)) Mann(Vater (Jan)) Bruder (x, y ) Bruder (x, Jan) Bruder (x, Anna) Präfix Vater (Jan) ≈ Vater (Anna) Vater (x) ≈ Mutter (y ) 349 351 Atome Beispiele Σ = (Ω, Π) Atome (Atomare Formeln) über Σ genügen dieser Syntax: A, B h ::= | p(s1 , ..., sm ) , p/m ∈ Π (s ≈ t) (Gleichung) Ω = {0/0, 1/0, succ/1, +/2} i Π = {≤, ≈} {x, y , z} ⊆ X Ist m = 0, so handelt es sich bei p um eine Aussagenvariable. Wir verwenden insbesondere die Buchstaben P, Q, R, S, um Aussagenvariablen zu bezeichnen Atome: x ≤ y , z ≈ 0, 0≤1 succ(x) ≤ succ(0), succ(1) ≈ succ(0) x + y ≤ x + z, x + 0 ≈ x + 1 (x + (succ(y ) + 1)) ≤ z, ... Infix Präfix: ≤ (+(x, y ), +(x, z)), 350 + (x, 0) ≈ +(x, 1), ≤ (+(x, +(succ(y ), 1)), z) 352 Literale | A (positives Literal) ¬A (negatives Literal) Formeln über Σ: F, G, H ::= ⊥ (Falsum) | ⊤ (Verum) | A (atomare Formel) | ¬F | (F ∧ G ) (Konjunktion) | (F ∨ G ) (Disjunktion) | (F → G ) (Implikation) | (F ↔ G ) (Äquivalenz) | | (Negation) xF (Allquantifizierung) E ::= A L Formeln xF (Existenzquantifizierung) 353 355 Klauseln | ⊥ L1 ∨ . . . ∨ Lk , k ≥ 1 Menge ForΣ der Formeln über Σ: (leere Klausel) Die kleinste Menge, die (nichtleere Klausel) • Alle atomare Formeln enthält, • ⊤ ∈ ForΣ , ⊥ ∈ ForΣ , • Wenn F , G ∈ ForΣ , dann auch ¬F , F ∧ G , F ∨ G , F → G , F ↔ G ∈ ForΣ , • Wenn F ∈ ForΣ und x ∈ X , dann A ::= E C, D Formeln xF ∈ ForΣ , xF ∈ ForΣ 354 356 Konventionen zur Notation Beispiel “Es gibt jemand, der in Landau studiert und schlau ist” • Klammereinsparungen werden nach folgenden Regeln vorgenommen: – ¬ ∧ >p ∨ >p → >p >p ↔ (Präzedenzen), Ω = {landau/0} – ∨ und ∧ sind assoziativ und kommutativ. Π = {studiertIn/2, schlau/1} E x(studiertIn( x , landau ) ∧ schlau( x )) |{z} | {z } |{z} • Qx1 , . . . , xn F für Qx1 . . . Qxn F . Variable Konstante Term | • Terme und Atome in Infix-, Präfix-, Postfix- oder Mixfixnotation; Beispiele: s +t für +(s, t) s≤t für ≤ (s, t) −s für −(s) 0 für 0() | | {z Variable Term Atom {z Formel {z Term } | {z Atom } } Formel 357 359 Beispiel Beispiel: Peano-Arithmetik “Alle, die in Koblenz studieren, sind schlau” ΣPA = (ΩPA , ΠPA ) ΩPA = {0/0, +/2, ∗/2, s/1} ΠPA = {≤ /2, < /2, ≈ /2} +, ∗ infix; ∗ >p + Π = {studiertIn/2, schlau/1} A x(studiertIn( x , koblenz ) → schlau( x )) |{z} | {z } |{z} | | Variable Konstante Term Term {z Atom {z Formel {z Formel Variable Formelbeispiele über dieser Signatur sind Term } | {z Atom } E A A A A E A | E Ω = {koblenz/0} } x, y (x ≤ y ↔ z(x + z ≈ y )) x y (x + y ≈ y ) x, y (x ∗ s(y ) ≈ x ∗ y + x) x, y (s(x) ≈ s(y ) → x ≈ y ) x y x <y } } 358 360 Bemerkungen zum Beispiel Beispiel: Tante Agatha Wie man an diesen Formeln sieht, sind die Symbole ≤, <, 0 redundant, da sie über + in PL mit Gleichheit definiert werden können. So definiert die erste Formel ≤, während die zweite Formel die Null definiert. Die Eliminierung der zugehörigen Existenzquantoren durch Skolemisierung (siehe unten) führt dann aber die Funktionssymbole wieder ein. Zuerst formalisieren wir das Problem: Jemand, der in Schloss Dreadbury wohnt, hat Tante Agatha ermordet. E ◮ x (schlossbewohner(x) ∧ ermordet(x, a)) Agatha, ihr Butler und ihr Neffe Charles waren die einzigen Bewohner von Schloss Dreadbury. A ◮ x (schlossbewohner(x) ↔ (x ≈ a ∨ x ≈ b ∨ x ≈ c)) 361 363 Beispiel: Tante Agatha Beispiel: Tante Agatha Ein Mörder hasst immer sein Opfer und ist niemals reicher als sein Opfer. ◮ A A Jemand, der in Schloss Dreadbury wohnt, hat Tante Agatha ermordet. Agatha, ihr Butler und ihr Neffe Charles waren die einzigen Bewohner von Schloss Dreadbury. Ein Mörder hasst immer sein Opfer und ist niemals reicher als sein Opfer. Charles hasst niemanden, den Tante Agatha gehasst hat. Agatha hat jeden gehasst außer ihrem Butler. Der Butler hasst jeden, der nicht reicher ist als Tante Agatha. Der Butler hasst jeden, den Tante Agatha gehasst hat. Niemand hasst jeden. Agatha war nicht der Butler. x, y (ermordet(x, y ) → hasst(x, y )) x, y (ermordet(x, y ) → ¬ reicher(x, y )) Charles hasst niemanden, den Tante Agatha gehasst hat. A ◮ x (hasst(c, x) → ¬ hasst(a, x)) Agatha hat jeden gehasst außer ihrem Butler. ◮ 362 A Wer hat Tante Agatha ermordet? ¬ hasst(a, x) ↔ x ≈ b) x (¬ 364 Beispiel: Tante Agatha Beispiel Der Butler hasst jeden, der nicht reicher ist als Tante Agatha. A ¬ reicher(x, a) → hasst(b, x)) x (¬ y A Der Butler hasst jeden, den Tante Agatha gehasst hat. }| z }| { ( x p(x) { → q(x, y )) A ◮ Bind. A ◮ Bindungsbereich z x (hasst(a, x) → hasst(b, x)) Niemand hasst jeden. E A ◮ x ¬ hasst(x, y )) y (¬ Agatha war nicht der Butler. ◮ ¬a≈b 365 367 Beispiel A E p(z) → A In QxF , Q ∈ { , }, heißt F der Bindungsbereich des Quantors Qx. Ein Auftreten einer Variablen x heißt gebunden, wenn es zum Bindungsbereich eines Quantors Qx gehört. Alle anderen Auftreten von Variablen heißen frei. E Gebundene und freie Variablen x (q(x, z) ∧ z r (y , z)) • x gebunden Formeln ohne freie Variablen heißen Satzformen. Variablenfreie Formeln heißen Grundformeln. • y frei • z frei und gebunden 366 368 Substitution eines Termes für eine Variable Beispiel Mit F [s/x] bezeichnen wir das Resultat der Substitution aller freien Auftreten von x in F durch den Term s. F [s/x] sei durch strukturelle Induktion über den Aufbau von F wie folgt definiert: Σ = (Ω, Π), mit Ω = {f /1, g /2, a/0}, Π = {p/2, ≈ /2} E A ( x(p(x, g (f (x), y ))) ∧ z(x ≈ g (y , z)))[g (y , z)/x] = = A E = A E = A E s ′ ′ x ; falls x 6= x f (s1 [s/x], . . . , sn [s/x]) ⊥ ⊤ p(s1 [s/x], . . . , sn [s/x]) (u[s/x] ≈ v [s/x]) ¬(F [s/x]) (F [s/x]ρG [s/x]) ; für alle binären Junktoren ρ ∈ {∧, ∨, →, ↔} QxF Qz((F [z/y ])[s/x]) ; falls y 6= x, z neue Variable A = = = = = = = = = = = x(p(x, g (f (x), y )))[g (y , z)/x] ∧ x(p(x, g (f (x), y ))) ∧ x(p(x, g (f (x), y ))) ∧ x(p(x, g (f (x), y ))) ∧ E x[s/x] ′ x [s/x] f (s1 , . . . , sn )[s/x] ⊥[s/x] ⊤[s/x] p(s1 , . . . , sn )[s/x] (u ≈ v )[s/x] ¬F [s/x] (F ρG )[s/x] (QxF )[s/x] (QyF )[s/x] z(x ≈ g (y , z))[g (y , z)/x] u(((x ≈ g (y , z))[u/z])[g (y , z)/x]) u((x ≈ g (y , u))[g (y , z)/x]) u(g (y , z) ≈ g (y , u)) 369 Problematik 371 Substitution allgemein Der Grund für die Umbenennung der gebundenen Variablen y in eine neue unbenutzte“ Variable z ist die Vermeidung des Einfangens freier Variablen ” in s. Definition. Substitutionen sind Abbildungen σ : X → TΣ (X ), so dass der Bereich von σ, d.h. die Menge Sollte y in s auftreten, wären sonst diese Auftreten nach erfolgter Substitution gebunden. dom(σ) = {x ∈ X | σ(x) 6= x}, endlich ist. Die Menge der eingeführten Variablen, d.h. der Variablen die in einem der Terme σ(x), für x ∈ dom(σ), auftreten, wird mit codom(σ) bezeichnet. Substitutionen schreiben wir auch als [s1 /x1 , . . . , sn /xn ], xi pw. verschieden, und meinen dann die Abbildung [s1 /x1 , . . . , sn /xn ](y ) = ( si , falls y = xi y, sonst Ab jetzt schreiben wir für die Applikation σ(x) von Substitutionen xσ. 370 372 Anwendung einer Substitution 3.2 Semantik Homomorphe“ Fortsetzung von σ auf Terme und Formeln: ” f (s1 , . . . , sn )σ = f (s1 σ, . . . , sn σ) ⊥σ = ⊥ ⊤σ = ⊤ p(s1 , . . . , sn )σ = p(s1 σ, . . . , sn σ) (u ≈ v )σ = (uσ ≈ v σ) ¬F σ = ¬(F σ) (F ρG )σ = (F σρG σ) ; für alle binären Junktoren ρ (QxF )σ = Qz((F [z/x])σ); wobei z neue“ Variable ” Abänderung einer Substitution σ an x zu t: ( t, σ[x → t](y ) = σ(y ), falls y = x sonst 373 Beispiel 375 Semantik Semantik geben bedeutet für logische Systeme, einen Begriff von Wahrheit für Formeln zu definieren. Das hier für die Prädikatenlogik zu definierende Konzept geht auf Tarski zurück. Σ = (Ω, Π), mit Ω = {f /1, g /2, a/0}, Π = {p/2, ≈ /2} E A ( x(p(x, g (f (x), y ))) ∧ z(x ≈ g (y , z)))[g (y , z)/x, f (x)/y , a/z] = E A = A = A E = A E x(p(x, g (f (x), y )))[g (y , z)/x, f (x)/y , a/z] ∧ z(x ≈ g (y , z))[g (y , z)/x, f (x)/y , a/z] E u(p(u, g (f (u), f (x)))) ∧ u(p(u, g (f (u), f (x)))) ∧ u(p(u, g (f (u), f (x)))) ∧ v (((x ≈ g (y , z))[v /z])[g (y , z)/x, f (x)/y , a/z]) In der klassischen Logik (zurückgehend auf Aristoteles) gibt es nur“ die ” zwei Wahrheitswerte wahr“ und falsch“, die wir mit 1 und 0 bezeichnen. ” ” v ((x ≈ g (y , v ))[g (y , z)/x, f (x)/y , a/z]) v (g (y , z) ≈ g (f (x), u)) 374 376 Strukturen Wert eines Terms in A bzgl. β Definition. Durch strukturelle Induktion definieren wir: Eine Σ-Struktur (bzw. Σ-Interpretation bzw. Σ-Modell) ist ein Tripel A(β)(x) = β(x), A = (U, (fA : U n → U)f /n∈Ω , (pA ⊆ U m )p/m∈Π ) x ∈X A(β)(f (s1 , . . . , sn )) = fA (A(β)(s1 ), . . . , A(β)(sn )), f /n ∈ Ω wobei U 6= ∅ eine Menge, genannt Universum von A. Oft identifizieren wir U mit A, wenn die Interpretation der Funktions- und Prädikatensymbole eindeutig aus dem Kontext hervorgeht. Mit Σ-Str bezeichnen wir die Menge aller Σ-Strukturen. 377 Valuationen 379 Wert eines Terms in A bzgl. β Wert eines Terms in A bzgl. β, A(β)(t): Variablen für sich haben keine Bedeutung. Hierfür müssen Wertebelegungen (Valuationen) explizit oder implizit aus dem Kontext zur Verfügung stehen. • Falls t = x ∈ X : A(β)(t) = β(x) • Falls t = c eine Konstante: A(β)(t) = cA Definition. • Falls t = f (t1 , . . . , tn ): A(β)(t) = fA (A(β)(t1 ), . . . , A(β)(tn )) Unter einer (Variablen-) Belegung oder einer Valuation (über einer Σ-Struktur A) versteht man eine Abbildung Beispiel: Σ = ({+/2, 0/0}, {≤, ≈}) N = (N, {0N , +N : N × N → N}, {≤N ⊆ N × N, ≈N }) 0N = 0 ∈ N, +N (n1 , n1 ) = n1 + n2 ∈ N β : {x, y , z} → N mit β(x) = 5, β(y ) = 10, β(z) = 3 β:X →U N (β)((x + (y + z)) + (z + 0)) = = (β(x) +N (β(y ) +N β(z))) +N (β(z) +N 0N ) = = (5 + (10 + 3)) + (3 + 0) = 21 378 380 Wahrheitswert einer Formel in A bzgl. β Wahrheitswert einer Formel in A bzgl. β Die Menge der Wahrheitswerte sei {0, 1}. A(β)(¬F ) = 1 A(β) : ForΣ → {0, 1} wird induktiv über Aufbau von F wie folgt definiert: g.d.w. A(β)(F ) = 0 A(β)(F ρG ) = Bρ (A(β)(F ), A(β)(G )) mit Bρ die ρ zugeordnete Boolesche Funktion A(β)(⊥) = 0 A(β)(⊤) = 1 381 Wahrheitswert einer Formel in A bzgl. β g.d.w. (A(β)(s1 ), . . . , A(β)(sn )) ∈ pA A(β)( xF ) = min{A(β[x → a])(F )} = a∈U A(β)(s) = A(β)(t) E A(β)(s ≈ t) = 1 g.d.w. Wahrheitswert einer Formel in A bzgl. β A A(β)(p(s1 , . . . , sn )) = 1 383 A(β)( xF ) = max{A(β[x → a])(F )} = a∈U ( 1 0 8 > > < 1 > > : 0 falls A(β[x 7→ a])(F ) = 1 für alle a ∈ U sonst falls A(β[x 7→ a])(F ) = 1 für mindestens sonst ein a ∈ U Für x ∈ X und a ∈ U bezeichne β[x → a] : X → U die Belegung, mit 8 <a falls x = y β[x → a](y ) := :β(y ) sonst 382 384 Beispiel Gültigkeit und Erfüllbarkeit Definition. F gilt in A unter β: UN = {0, 1, 2, . . .} 0N = 0 ∈ UN A, β |= F g.d.w. A(β)(F ) = 1 sN : UN → UN , sN (n) = n + 1 +N : UN2 → UN , +N (n, m) = n + m Definition. F gilt in A (A ist Modell von F ): ∗N : UN2 → UN , ∗N (n, m) = n ∗ m A |= F g.d.w. A, β |= F , für alle β : X → UA ≤N = “kleiner-gleich” ⊆ UN2 <N = “kleiner” ⊆ UN2 Definition. F ist (allgemein-) gültig: Mit β(x) = 1, β(y ) = 3 ergibt sich beispielsweise: |= F g.d.w. A |= F , für alle A ∈ Σ-Str N(β)(s(x) + s(0)) = 3 N(β)(x + y ≈ s(y )) = 1 A = 1 A = 0 E A = 1 N(β)( x, y (x + y ≈ y + x)) N(β)( z z ≤ y ) N(β)( x y x < y ) F heißt erfüllbar gdw. es A und β gibt, so daß A, β |= F . Sonst heißt F unerfüllbar. 385 Modelle, Gültigkeit, Erfüllbarkeit 387 Folgerung und Äquivalenz Definition. F impliziert G (oder G folgt aus F ), i.Z. F |= G gdw. für alle A ∈ Σ-Str und β : X → UA gilt: Falls A, β |= F , so A, β |= G . Definition. F und G sind äquivalent gdw. für alle A ∈ Σ-Str und β : X → UA gilt: A, β |= F genau dann, wenn A, β |= G . Satz. F impliziert G gdw. (F → G ) ist gültig Satz. F und G sind äquivalent gdw. (F ↔ G ) ist gültig. Erweiterung auf Formelmengen N in natürlicher Weise, z.B.: N |= G gdw. für alle A ∈ Σ-Str und β : X → UA : falls A, β |= F , für alle F ∈ N, so A, β |= G . 386 388 Gültigkeit und Unerfüllbarkeit Universelle Quantifizierung Faustregel → ist der logische (Top-level-)Operator mit F gültig genau dann, wenn ¬F unerfüllbar A Nachweis von Gültigkeit (und damit Folgerung oder Äquivalenz) durch Unerfüllbarkeitstest: Häufiger Fehler A Verwendung von ∧ mit Beispiel “Alle, die in Koblenz studieren, sind schlau” A x(studiertIn(x, koblenz) → schlau(x)) Richtig: A Falsch: x(studiertIn(x, koblenz) ∧ schlau(x)) “Alle studieren in Koblenz und sind schlau”, d.h. “Alle studieren in Koblenz und alle sind schlau” 389 391 Universelle Quantifizierung Existenzielle Quantifizierung Intuition Intuition. A E Beispiel: Beispiel: A E entspricht: entspricht xF entspricht in etwa der (unendlichen) Konjunktion aller Instanzen von F xF entspricht in etwa der (unendlichen) Disjunktion aller Instanzen von F . x(studiertIn(x, koblenz) → schlau(x)) x(studiertIn(x, landau) ∧ schlau(x)) (studiertIn(student1, koblenz) → schlau(student1)) (studiertIn(student1, landau) ∧ schlau(student1)) ∧ (studiertIn(student2, koblenz) → schlau(student2)) ∨ (studiertIn(student2, landau) ∧ schlau(student2)) ∧ ... ∨ ... ∧ (studiertIn(koblenz, koblenz) → schlau(koblenz)) ∨ (studiertIn(landau, landau) ∧ schlau(landau)) 390 392 Universelle Quantifizierung Eigenschaften von Quantoren Faustregel Verschiedene Quantoren kommutieren NICHT E ∧ ist der logische (Top-level-)Operator mit Beispiel: E A x y Mutter (y , x) Häufiger Fehler Jeder hat eine Mutter E Verwendung von → mit (richtig) A E y x Mutter (y , x) Es gibt eine Person, die die Mutter von jedem ist Beispiel “Es gibt jemand, der in Landau studiert und schlau ist” A E E A A E E x y F |= y x F Es gibt eine Signatur Σ = (Ω, Π) und eine Formel F mit: E Falsch: Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt: x(studiertIn(x, landau) ∧ schlau(x)) E A Richtig: x(studiertIn(x, landau) → schlau(x)) “Es gibt jemanden, der, falls er/sie in Landau studiert, schlau ist” Trivial wahr, wenn es irgendjemanden gibt, der nicht in Landau studiert x y F 6|= y x F 393 395 Eigenschaften von Quantoren Eigenschaften von Quantoren Dualität der Quantoren A A A E E E x... ist das gleiche wie ¬ x¬... x... ist das gleiche wie ¬ x¬... Beispiel: A x mag(x, eiskrem) ist das gleiche wie ¬ x ¬mag(x, eiskrem) A A y xF A E x mag(x, broccoli) ist das gleiche wie ¬ x ¬mag(x, broccoli) E E Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt: (2) E A 394 (1) A A A E E x yF ≡ y xF E E E (2) E A A Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt: x yF ≡ A y x x y ist das gleiche wie y x (1) E Quantoren gleicher Art kommutieren x y ist das gleiche wie (falsch) x F ≡ ¬ x ¬F x F ≡ ¬ x ¬F 396 Eigenschaften von Quantoren Eigenschaften von Quantoren A A A x(... ∨ ...) ist NICHT das gleiche wie ( x...) ∨ ( x...) A A A Beispiel Beispiel A x (eiskrem(x) ∨ broccoli(x)) ist NICHT das gleiche wie A x (studiert(x) ∧ arbeitet(x)) ist das gleiche wie A A ( x eiskrem(x)) ∨ ( x broccoli(x)) A A ( x studiert(x)) ∧ ( x arbeitet(x)) A x (gerade(x) ∨ ungerade(x)) ist NICHT das gleiche wie Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F , G gilt: A A x(... ∧ ...) ist das gleiche wie ( x...) ∧ ( x...) A ( x gerade(x)) ∨ ( x ungerade(x)) A A A x(F ∧ G ) ≡ distributiert NICHT über ∨ A distributiert über ∧ xF ∧ xG Es gibt eine Signatur Σ = (Ω, Π) und Σ-Formeln F , G mit: A A A x(F ∨ G ) 6≡ xF ∨ xG 397 399 Eigenschaften von Quantoren Eigenschaften von Quantoren E distributiert NICHT über ∧ E E E x(... ∧ ...) ist NICHT das gleiche wie ( x...) ∧ ( x...) Beispiel E E E x (gerade(x) ∧ ungerade(x)) ist NICHT das gleiche wie ( x gerade(x)) ∧ ( x ungerade(x)) E E ( x eiskrem(x)) ∨ ( x broccoli(x)) E x (eiskrem(x) ∨ broccoli(x)) ist das gleiche wie Es gibt eine Signatur Σ = (Ω, Π) und Σ-Formeln F , G mit: Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F , G gilt: E E Beispiel E E x(... ∨ ...) ist das gleiche wie ( x...) ∨ ( x...) E E distributiert über ∨ E x(F ∧ G ) 6≡ xF ∧ xG E E E x (F ∨ G ) ≡ ( x F ) ∨ ( x G ) 398 400 Eigenschaften von Quantoren Beispiele: Familienverhältnisse Quantoren gleicher Art kommutieren • “Brüder sind Geschwister” x y (bruder (x, y ) → geschwister (x, y )) A A Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt: (1) x yF ≡ y xF (2) x yF ≡ y xF E E A A • “bruder” ist symmetrisch x y (bruder (x, y ) → bruder (y , x)) A A • “Ein Cousin ersten Grades ist das Kind eines Geschwisters eines Elternteils” x y (cousin1(x, y ) → p ps (elternteil(p, x) ∧ geschwister (ps , p) ∧ elternteil(ps , y ))) Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt: x y F |= y x F Es gibt eine Signatur Σ = (Ω, Π) und eine Formel F mit: x y F 6|= y x F E E E E A A Verschiedene Quantoren kommutieren NICHT A A E A • Definition für “Bruder, der nicht nur Halbbruder ist” x ybruder (x, y ) ↔ (¬(x ≈ y )∧ A E A A A E E A Dualität der Quantoren E E m v (¬(m = v )∧ Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt: x F ≡ ¬ x ¬F (1) (2) x F ≡ ¬ x ¬F elternteil(m, x) ∧ elternteil(v , x) A E elternteil(m, y ) ∧ elternteil(v , y ))) E A 401 403 Eigenschaften von Quantoren Strukturelle Induktion distributiert über ∧ Sei p(F ) eine Eigenschaft der Formeln in Prädikatenlogik Behauptung: Für alle Formeln F , p(F ) gilt A Beweis durch Strukturelle Induktion: Induktionsbasis: Zu zeigen: p(F ) gilt für F ∈ {⊤, ⊥} und für alle atomaren Formeln. A E Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F , G gilt: x (F ∨ G ) ≡ ( x F ) ∨ ( x G ) E Induktionsvoraussetzung: Sei F eine Formel (nicht atomar oder ⊤ oder ⊥). E E distributiert NICHT über ∨ Annahme: p(G ) gilt für alle Teilformeln G von F (mit G 6= F ) A Es gibt eine Signatur Σ = (Ω, Π) und Σ-Formeln F , G mit: x(F ∨ G ) 6≡ xF ∨ xG Induktionsschritt: Zu zeigen: p(F ) gilt: A A A distributiert NICHT über ∧ E Es gibt eine Signatur Σ = (Ω, Π) und Σ-Formeln F , G mit: x(F ∧ G ) 6≡ xF ∧ xG E 402 Fall 1 F = ¬G Fall 2 F = G 1 ∨ G2 Fall 3 F = G 1 ∧ G2 Fall 4 F = G 1 → G2 Fall 5 F = G 1 ↔ G2 Fall 6 F = Fall 7 F = xG xG E A distributiert über ∨ A A Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F , G gilt: x(F ∧ G ) ≡ xF ∧ xG 404 E E Strukturelle Induktion Substitutionen und Valuationen Theorem (Substitutionslemma) Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F , Variablen x und Terme t gilt: Sei p(t) eine Eigenschaft der Terme in Prädikatenlogik Behauptung: Für alle Terme t, p(t) gilt Beweis durch Strukturelle Induktion: A, β |= F [t/x] g.d.w. A, β[x → A(β)(t)] |= F Induktionsbasis: Zu zeigen: p(t) gilt für t ∈ X und für alle Konstanten. Beweis: Strukturelle Induktion 1. Induktionsbasis: Zu zeigen: Die Eigenschaft gilt für ⊤, ⊥ und alle atomaren Formeln. Induktionsvoraussetzung: Sei t ein Term (nicht Variable oder Konstante). Fall 1: F = ⊤ Dann F [t/x] = ⊤; A(β)(F [t/x])=A(β)(⊤)=1=A(β[x→A(β)(t)])(⊤)=A(β[x→A(β)(t)])(F ) Annahme: p(s) gilt für alle Teilterme s von t (mit s 6= t) Fall 2: F = ⊥ Dann F [t/x] = ⊥; A(β)(F [t/x])=A(β)(⊥)=0=A(β[x→A(β)(t)])(⊥)=A(β[x→A(β)(t)])(F ). Induktionsschritt: Zu zeigen: p(t) gilt: Fallunterschied über alle f ∈ Ω mit t = f (t1 , . . . , tn ). Fall 3: F = p(t1 , . . . , tn ) mit p/n ∈ Ω. Dann F [t/x] = p(t1 [t/x], . . . , tn [t/x]). A(β)(F [t/x])=A(β)(p(t1 [t/x], .., tn [t/x]))=1 iff (A(β)(t1 [t/x]), .., A(β)(tn [t/x]))∈pA A(β[x→A(β)(t)])(p(t1 , .., tn ))=1 iff (A(β[x→A(β)(t)])(t1 ), .., A(β[x→A(β)(t)])(tn ))∈pA Lemma: A(β)(ti [t/x]) = A(β[x→A(β)(t)])(ti ). Äquivalenz folgt daraus. 405 407 Substitutionen und Valuationen Substitutionen und Valuationen Theorem (Substitutionslemma) Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F , Variablen x und Terme t gilt: Theorem (Substitutionslemma) Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F , Variablen x und Terme t gilt: A, β |= F [t/x] g.d.w. A, β[x → A(β)(t)] |= F A, β |= F [t/x] g.d.w. A, β[x → A(β)(t)] |= F Beweis: ctd. 2. Induktionsvoraussetzung: Sei F eine Formel (nicht atomar oder ⊤ oder ⊥). Annahme: p(G ) gilt für alle Teilformeln G von F (mit G 6= F ) 3. Induktionsschritt: Zu zeigen: p(F ) gilt: Fall 1: F = ¬G . Dann F [t/x] = ¬(G [t/x]). A(β)(F [t/x]) = A(β)(¬(G [t/x]) = 1 iff A(β)(G [t/x]) = 0 iff (Ind.Voraus.) A(β[x→A(β)(t)])(G )=0 iff A(β[x→A(β)(t)])(¬G )=1 iff A(β[x→A(β)(t)])(F )=1 Beweis: Strukturelle Induktion Wir benutzen folgendes Lemma: Lemma: Für alle Σ-Strukturen A, Wertebelegungen β, Variable x und Terme ti , t: A(β)(ti [t/x]) = A(β[x → A(β)(t)])(ti ) Fall 2-5: F = G1 opG2 , op ∈ {∨, ∧, →, ↔. Dann F [t/x] = G1 [t/x]opG2 [t/x]. A(β)(F [t/x])=A(β)(G1 [t/x]opG2 [t/x])=A(β)(G1 [t/x])opB A(β)(G2 [t/x])= (I.V.) A(β[x→A(β)(t)])(G1 )opB A(β[x→A(β)(t)])(G2 )=A(β[x→A(β)(t)])(G1 opG2 ). | {z } F 406 408 Substitutionen und Valuationen Substitutionen und Valuationen Theorem (Substitutionslemma) Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F , Variablen x und Terme t gilt: Theorem (Substitutionslemma) Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F , Variablen x und Terme t gilt: A, β |= F [t/x] g.d.w. A, β[x → A(β)(t)] |= F A yG . E Fall 7: F = yG . Ähnlich zu Fall 6. A Fall 6: F = A, β |= F [t/x] g.d.w. A, β[x → A(β)(t)] |= F A Fall 6.1: y = x. Dann F [t/x] = xG [t/x] = xG . A(β)(F [t/x])=A(β)( xG )=min{A(β[x 7→ a])(G ) | a ∈ UA } A(β[x→A(β)(t)])( xG )=min{A(β[x→A(β)(t)][x→a])(G ) | a ∈ UA } = min{A(β[x 7→ a])(G ) | a ∈ UA }. A A A A Fall 6.2: y 6= x, t enthält nicht y . Dann F [t/x] = yG [t/x] = y (G [t/x]). A(β)(F [t/x])=A(β)( y (G [t/x])=min{A(β[y →a])(G [t/x])|a∈UA } = (Ind.Vor.) min{A(β[y →a, x→A(β[y →a])(t))(G )|a∈UA }= min{A(β[y →a, x→A(β)(t)])(G )|a∈UA } (y kommt in t nicht vor) A(β[x→A(β)(t)])( yG )= = min{A(β[x→A(β)(t)][y →a])(G )|a∈UA }= min{A(β[y 7→ a, x→A(β)(t)])(G ) = |a∈UA }. A A 409 411 Substitutionen und Valuationen Substitutionen und Valuationen Theorem (Substitutionslemma) Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F , Variablen x und Terme t gilt: Theorem (Substitutionslemma) Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F , Variablen x und Terme t gilt: A, β |= F [t/x] g.d.w. A, β[x → A(β)(t)] |= F A, β |= F [t/x] g.d.w. A, β[x→A(β)(t)] |= F A yG . Fall 6.3: y 6= x, t enthält y . Dann F [t/x] = ′ A Fall 6: F = y ′ G [y ′ /y ][t/x]. Allgemeiner gilt für beliebige Substitutionen σ: ′ A A(β)(F [t/x])=A(β)( y (G [y /y ][t/x])= ′ ′ =min{A(β[y →a])(G [y /y ][t/x])|a∈UA } = (Ind.Vor.) = min{A(β[y ′ →a, x→A(β[y ′ →a])(t))(G [y ′ /y ])|a∈UA }= (Ind.Vor.) ′ ′ = min{A(β[y →a, x→A(β[y →a])(t), y →a])(G )|a∈UA } = [ Rem: A(β[y ′ →a, x→A(β[y ′ →a])(t)])(y ′ ) = a] ′ = min{A(β[x→A(β)(t), y →a])(G )|a∈UA } (y kommt in t u. G nicht Theorem. A, β |= F σ g.d.w. A, β ◦ σ |= F , wobei β ◦ σ : X → A die Wertebelegung mit β ◦ σ(x) = A(β)(xσ), für alle Variablen x. A A(β[x→A(β)(t)])( yG )=min{A(β[x→A(β)(t)][y →a])(G )|a∈UA }= =min{A(β[y 7→ a, x→A(β)(t)])(G )|a∈UA }. 410 412 Substitutionen und Valuationen 2.3 Algorithmische Probleme Theorem (Substitutionslemma) Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F , Variablen x und Terme t gilt: A, β |= F [t/x] g.d.w. A, β[x→A(β)(t)] |= F Allgemeiner gilt für beliebige Substitutionen σ: Theorem. A, β |= F σ g.d.w. A, β ◦ σ |= F , wobei β ◦ σ : X → A die Wertebelegung mit β ◦ σ(x) = A(β)(xσ), für alle Variablen x. Beweis: σ = [t1 /x1 , . . . tn /xn ] Induktion nach Anzahl n von Variablen in dom(σ) = {x1 , . . . , xn } 413 415 Umbenennung von Variablen Algorithmische Probleme Lemma Gültigkeit(F ): |= F ? Für alle Σ-Formeln F , Variablen x gilt: Erfüllbarkeit(F ): F erfüllbar? A A xF ≡ z F [z/x] wobei z eine neue Variable ist. Modelltest(F ,A): A |= F ? 414 (Σ fest) (Σ fest) (Σ fest) 416 Ausblick: Kalküle, Entscheidbarkeit Ausblick: Kalküle, Entscheidbarkeit Kalküle Kalküle Es gibt korrekte und vollständige Kalküle für Prädikatenlogik (z.B. Resolution) Es gibt korrekte und vollständige Kalküle für Prädikatenlogik (z.B. Resolution) Aber diese Kalküle können die Erfüllbarkeit von Formeln NICHT entscheiden Aussagenlogik Allgemeingültigkeit, Erfüllbarkeit, Unerfüllbarkeit ENTSCHEIDBAR Prädikatenlogik • Es gibt Σ, so dass Gültigkeit(F ) unentscheidbar. • Menge der allgemeingültigen Formeln REKURSIV AUFZÄHLBAR • Menge der unerfüllbaren Formeln REKURSIV AUFZÄHLBAR • Menge der erfüllbaren Formeln NICHT REKURSIV AUFZÄHLBAR 417 Ausblick: Kalküle, Entscheidbarkeit 419 Rekursiv Aufzählbar Kalküle Informelle Definition. Als rekursiv aufzählbare Menge Es gibt korrekte und vollständige Kalküle für Prädikatenlogik (z.B. Resolution) (auch semi-entscheidbare Menge, positiv semi-entscheidbare Menge, halb-entscheidbare Menge, berechenbar aufzählbare Menge, kurz r.e., c.e) wird in der Berechenbarkeitstheorie eine aufzählbare Menge A (z.B. eine Teilmenge von N) bezeichnet, wenn es einen Algorithmus gibt, der die Elemente von A aufzählt. Aber diese Kalküle können die Erfüllbarkeit von Formeln NICHT entscheiden Äquivalent ist folgende Definition: es gibt einen Algorithmus, der 1 ausgibt wenn die Eingabe in A ist, und auf anderen Eingaben 0 ausgibt oder nicht hält. 418 420 Zusammenfassung: Syntax und Semantik 2.4 Normalformen • Prädikatenlogische Signatur • Term, Atom, Formel • Prädikatenlogisches Modell • Auswertung von Formeln in Modellen • Erfüllbarkeit, Gültigkeit; Folgerung, Äquivalenz • Eigenschaften von Quantoren (Vertauschbarkeit untereinander und mit ∧, ∨) • Entscheidbarkeit der Erfüllbarkeit von Formeln 421 423 Normalformen, Skolemisierung, Herbrandmodelle Unser Ziel Kalküle zur systematischen Überprüfung von Erfüllbarkeit Vorteile von Normalformen (für Formeln und/oder Formelmengen) • Reduktion der logischen Konzepte • einfache Datenstrukturen für Beweisverfahren 422 424 Negationsnormalform Bereinigte Formeln Definition. Eine Formel F ∈ ForΣ ist bereinigt, falls: Definition. Eine Formel F ∈ ForΣ ist in Negationsnormalform (NNF), falls: • →, ↔ kommen in F nicht vor • Keine Variable in F sowohl gebunden als auch frei vorkommt • jedes Negationszeichen in F steht direkt vor einem Atom (insbes. auch kein ¬¬) • Keine Variable mehr als einmal in F quantifiziert ist 425 427 Negationsnormalform Bereinigte Formeln Definition. Eine Formel F ∈ ForΣ ist in Negationsnormalform (NNF), falls: Definition. Eine Formel F ∈ ForΣ ist bereinigt, falls: • →, ↔ kommen in F nicht vor • Keine Variable in F sowohl gebunden als auch frei vorkommt • jedes Negationszeichen in F steht direkt vor einem Atom (insbes. auch kein ¬¬) • Keine Variable mehr als einmal in F quantifiziert ist Beispiele: Bereinigt Beispiele: P ∨Q ¬P, E A P, E NNF: x y (p(x) ∨ q(x, y ) ∨ z r (x, z)) (¬P ∨ Q) ∧ (R ∨ (Q ∧ ¬P)) p(x, y ) ∨ ¬q(y ) nicht NNF: ¬¬P, ¬(P ∨ Q) p(x, y ) → q(x) 426 428 Bereinigte Formeln Pränexe Normalform Definition: Pränexe Formeln sind von der Form Definition. Eine Formel F ∈ ForΣ ist bereinigt, falls: Q 1 x1 . . . Q n xn F , • Keine Variable in F sowohl gebunden als auch frei vorkommt E A wobei F quantorenfrei, Qi ∈ { , }. Hierbei heißt Q1 x1 . . . Qn xn der Quantorenpräfix und F die Matrix der Formel. • Keine Variable mehr als einmal in F quantifiziert ist Beispiele: Beispiele Bereinigt In Pränexnormalform P ∨Q p(x) ∨ q(x) E E A x y (p(x) ∨ q(x, y ) ∨ z r (x, z)) E A x y (p(x) ∨ q(y )) Nicht bereinigt Nicht in Pränexnormalform E A p(x) ∨ x q(x) A ( x p(x)) ∨ ( y q(y )) A A ( x p(x)) ∨ ( x q(x)) 429 431 Pränexe Normalform Pränexe Normalform Definition: Pränexe Formeln sind von der Form Theorem. Zu jeder Formel F ∈ ForΣ gibt es eine äquivalente Formel in Pränexnormalform Q 1 x1 . . . Q n xn F , E A wobei F quantorenfrei, Qi ∈ { , }. Hierbei heißt Q1 x1 . . . Qn xn der Quantorenpräfix und F die Matrix der Formel. Konstruktiver Beweis • Formel bereinigen • Formel in NNF transformieren (Negationszeichen nach innen) E A – ¬ F ≡ ¬F – aussagenlogische Umformungen • Alle Quantoren nach vorne (Reihenfolge unverändert lassen) 430 432 Beispiel Pränexe Normalform Theorem. Zu jeder Formel F ∈ ForΣ gibt es eine äquivalente Formel in Pränexnormalform A E A F := ( x((p(x) ∨ q(x, y )) ∧ z r (x, y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) Konstruktiver Beweis 1. Bereinigung F ≡ F1 := ( x ′ ((p(x ′ )∨q(x ′ , y ))∧ z ′ r (x ′ , y , z ′ )))→((p(z)∧q(x, z))∧ z ′′ r (z ′′ , x, y )) A • Formel bereinigen E A 2. NNF • Formel in NNF transformieren (Negationszeichen nach innen) – ¬ F ≡ ¬F (DeMorgan) – aussagenlogische Umformungen (De Morgan) E E A A A E A z ′′ r (z ′′ , x, y )) ¬ ¬ ≡ A A E E A E E =: z ′ ¬r (x ′ , y , z ′ )) ∨ ((p(z) ∧ q(x, z)) ∧ A x ′ ((¬p(x ′ ) ∧ ¬q(x ′ , y )) ∨ ≡ E ≡ ≡ A ≡ ¬ E ¬( x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z ′ r (x ′ , y , z ′ ))) ∨ ((p(z) ∧ q(x, z)) ∧ z ′′ r (z ′′ , x, y )) x ′ ¬((p(x ′ ) ∨ q(x ′ , y )) ∧ z ′ r (x ′ , y , z ′ ))) ∨ ((p(z) ∧ q(x, z)) ∧ z ′′ r (z ′′ , x, y )) x ′ (¬(p(x ′ ) ∨ q(x ′ , y )) ∨ ¬ z ′ r (x ′ , y , z ′ ))) ∨ ((p(z) ∧ q(x, z)) ∧ z ′′ r (z ′′ , x, y )) F1 ≡ ¬ • Alle Quantoren nach vorne (Reihenfolge unverändert lassen) F2 3. Alle Quantoren nach vorne 7→ Pränexnormalform ′ ′ A E x z | A F2 ≡ z ′′ ′ ′ ′ ′ ′′ ((¬p(x ) ∧ ¬q(x , y )) ∨ ¬r (x , y , z )) ∨ ((p(z) ∧ q(x, z)) ∧ r (z , x, y )) {z } Pränexnormalform von F 433 435 Pränexe Normalform Pränexe Normalform Theorem. Zu jeder Formel F ∈ ForΣ gibt es eine äquivalente Formel in Pränexnormalform Äquivalenzbeweis Folgt aus: ). Falls x nicht in G vorkommt: A E E E E ( xF ) ∧ G ≡ (Quantoren nach vorne) (Pränexnormalform) ( xF ) ∨ G ≡ A Fall 3,4,5: F = G1 opG2 (op ∈ {∨, →, ↔}) analog A A Fall 6: F = A (Bereinigung) A = A E E , A = I .V . ′ y G′) Fall 2: F = G1 ∧ G2 ≡ (Q1 x1 . . . Qn xn G1′ ) ∧ (Q1′ y1 . . . Qm m 2 ′ y ′ G ′ [y ′ /y ]) ≡ (Q1 x1′ . . . Qn xn′ G1′ [xi′ /xi ]) ∧ (Q1′ y1′ . . . Qm m 2 i i ′ y ′ (G ′ [x ′ /x ] ∧ G ′ [y ′ /y ]) ≡ Q1 x1′ . . . Qn xn′ Q1′ y1′ . . . Qm m 1 i i 2 i i ¬F Aussagenlogische Umformungen zur Berechnung der NNF: Äquivalenzerhaltend Induktionsschritt: Zu zeigen: F äquivalent zu einer Formel in Pränexnormalform. x(Q1 x1 . . . Qn xn G ′ ) E Induktionsvoraussetzung (I.V.): Jede Teilformel G von F (G 6= F ) ist äquivalent zu einer Formel in Pränexnormalform. I .V . xG ≡ A ¬ F ≡ Sei F eine Formel, die nicht ⊤, ⊥ und nicht atomar ist. Fall 6: F = A ¬ F ≡ ¬F Induktionsbasis: ⊤, ⊥ und jede atomare Formel F = q(t1 , . . . , tn ) sind in Pränexnormalform, d.h. sind äquivalent zu einer Formel in Pränexnormalform. I .V . Fall 1: F = ¬G ≡ ¬(Q1 x1 . . . Qn xn G ′ ) ≡ Q 1 x1 . . . Q n xn ¬G ′ (wobei E Direkter Beweis: Strukturelle Induktion x(F ∧ G ) x(F ∨ G ) ( xF ) ∧ G ≡ x(F ∧ G ) (Pränexnormalform) ( xF ) ∨ G ≡ x(F ∨ G ) E xG analog 434 436 Pränexe Normalform Beispiel Alternatives Verfahren (ohne Bereinigung, ohne NNF) A ⇒P Qx¬F ⇒P Qy (F [y /x] ρ G ), y neu, ρ ∈ {∧, ∨} (QxF → G ) ⇒P Qy (F [y /x] → G ), y neu (F ρ QxG ) ⇒P Qy (F ρ G [y /x]), y neu, ρ ∈ {∧, ∨, →} E ¬QxF (QxF ρ G ) E (F → G ) ∧ (G → F ) A ⇒P E ⇒P (F ↔ G ) A F := ( x((p(x) ∨ q(x, y )) ∧ z r (x, y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) Herstellung von pränexer Normalform durch ⇒P : x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z r (x ′ , y , z)) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) (¬Q) und E E = = A A Hierbei ist Q der zu Q duale Quantor, d.h. . 437 439 Beispiel E A A F := ( x((p(x) ∨ q(x, y )) ∧ z r (x, y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) E ⇒P E E x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z r (x ′ , y , z)) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) A E 438 ⇒P A E A F := ( x((p(x) ∨ q(x, y )) ∧ z r (x, y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) A Beispiel x ′ ( z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ ))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) 440 Beispiel Beispiel F := ( x((p(x) ∨ q(x, y )) ∧ z r (x, y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) ⇒P E A ⇒P E A ⇒P A E ⇒P A E ⇒P A A E E x ′ ( z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ ))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) A x ′ z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ )) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) x ′ z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ )) → x′ z′ z ′′ (((p(x ′ ) ∨ q(x ′ , y )) ∧ A A E E E A E E x ′ z ′ (((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ ))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) E A x ′ ( z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ ))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z r (x ′ , y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) A E x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z r (x ′ , y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) A A ⇒P A ⇒P E ⇒P A F := ( x((p(x) ∨ q(x, y )) ∧ z r (x, y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) r (x ′ , y , z ′ )) z ′′ ((p(z) ∧ q(x, z)) ∧ r (z ′′ , x, y → ((p(z) ∧ q(x, z)) ∧ r (z ′′ , x, y 441 443 Beispiel Skolemnormalform Definition. Eine Formel F ∈ ForΣ ist in Skolemnormalform (SNF), falls: A E A F := ( x((p(x) ∨ q(x, y )) ∧ z r (x, y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) E ⇒P E ⇒P A E ⇒P A ⇒P E A E x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z r (x ′ , y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) • F ist in Pränexnormalform • F enthält nur universelle Quantoren A E x ′ ( z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ ))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) A x ′ z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ )) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) A z ′′ ((p(z) ∧ q(x, z)) ∧ r (z ′′ , x, y Beispiele: In Skolemnormalform A A x y (p(x) ∨ q(y )) Nicht in Skolemnormalform A A x p(x) ∨ y q(y ) E A x ′ z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ )) → x y (p(x) ∨ q(y )) 442 444 Skolemisierung Skolemisierung Skolemisierung: Transformation ⇒S : ∗ F ⇒P A ⇒S x1 , . . . , xn F [f (x1 , . . . , xn )/y ] E A wobei f /n ein neues Funktionssymbol (Skolemfunktion). ∗ G ⇒S H |{z} |{z} pränexe Form pränex, kein E x1 , . . . , xn yF Zusammen: Theorem: Seien F , G und H wie oben angenommen. Dann: (1) F und G sind äquivalent. (2) G erfüllbar gdw. H erfüllbar (bzgl. Σ-Str) (bzgl. Σ′ -Str) ′ wobei Σ = (Ω ∪ SKF , Π), wenn Σ = (Ω, Π). 445 Skolemisierung 447 Klauselnormalform (konjunktive Normalform) Transformationsregeln ⇒K Beispiel (1) Gegeben: (2) E A E A w ( x(p(w , x) ∨ y (q(w , x, y ) ∧ z r (y , z)))) (3) Pränexnormalform: (4) E A E A (5) w x y z((p(w , x) ∨ (q(w , x, y ) ∧ r (y , z)))) (6) Skolemisierung: (7) A A w y ((p(w , sk(w )) ∨ (q(w , sk(w ), y ) ∧ r (y , g (w , y ))))) (8) (9) (10) (F ↔ G ) ⇒K (F → G ) ∧ (G → F ) ¬(F ∨ G ) ⇒K (¬F ∧ ¬G ) (F → G ) ⇒K (¬F ∨ G ) (¬F ∨ ¬G ) ¬(F ∧ G ) ⇒K (F ∧ G ) ∨ H ⇒K (F ∨ H) ∧ (G ∨ H) (F ∧ ⊥) ⇒K ⊥ ⇒K F ¬¬F (F ∧ ⊤) (F ∨ ⊤) (F ∨ ⊥) ⇒K ⇒K ⇒K F F ⊤ Die ersten 5 Regeln, zusammen mit Regel (¬Q), stellen die Negationsnormalform (NNF) her. 446 448 Gesamtbild ∗ ⇒P Q1 y1 . . . Qn yn G ⇒S A F ∗ ∗ A x1 , . . . , xn | {z } weglassen | Herbrand-Interpretationen (G quantorenfrei) x1 , . . . , xm H ⇒K 2.5 (H quantorenfrei) ni _ k ^ i=1 Lij j=1 | {z } Klauseln {z F′ Ci } N = {C1 , . . . , Ck } heißt Klausel(normal)form (KNF) von F. Merke: Die Variablen in Klauseln sind implizit allquantifiziert. Falls F freie Variablen enthält, werden diese Variablen mit Konstanten ersetzt (F (x) erfüllbar gdw. xF (x) erfüllbar) E Theorem: F ist erfüllbar, gdw. F ′ erfüllbar, gdw. N erfüllbar. Viel Optimierungspotential vorhanden, wenn nur Erfüllbarkeit bewahrt werden muß und kann: Größenexplosion, kleine Stelligkeit von Skolemfunktionen. 449 Beispiel Herbrand-Interpretationen A Ab jetzt betrachten wir, falls nichts Anderes angegeben, immer nur PL ohne Gleichheit. Ω enthalte immer mindestens ein Konstantensymbol. E A E F ≡ z(( x(p(z, x))) → ( y (q(z, y ) ∧ ( xr (y , x))))) Definition. Herbrand-Interpretationen (über Σ) sind Σ-Strukturen A mit: Pränexnormalform: A E ≡ A ≡ E ′ ′ E z(( x(p(z, x))) → ( y (q(z, y ) ∧ ( x r (y , x ))))) A A E ≡ E ≡ E A ′ 1. UA = TΣ (Bereinigung) ′ E A E E z((¬ xp(z, x)) ∨ ( y (q(z, y ) ∧ ( x r (y , x ))))) E F z(( x¬p(z, x)) ∨ ( y (q(z, y ) ∧ ( x ′ r (y , x ′ ))))) z x y x ′ (¬p(z, x) ∨ (q(z, y ) ∧ r (y , x ′ ))) f (Pränexnormalform) fA (△, . . . , △) = A y (¬p(sk1 , sk2 ) ∨ (q(sk1 , y ) ∧ r (y , sk3 (y )))) △ (Erfüllbarkeitsäquivalente Formel in Skolemnormalform) ... △ d.h. vorgegeben sind Terme als Daten und Funktionen als Termkonstruktoren. Klauselnormalform: Variabel sind nur die Interpretationen der Prädikatensymbole A ⇒∗ K Menge der Grundterme, d.h. variablenfreien Terme über Σ 2. fA : (s1 , . . . , sn ) 7→ f (s1 , . . . , sn ), f /n ∈ Ω (NNF) Skolemisierung z 7→ sk1 ; x 7→ sk2 ; x ′ 7→ sk3 (y ) ⇒∗ S 451 y ((¬p(sk1 , sk2 ) ∨ q(sk1 , y )) ∧ (¬p(sk1 , sk2 ) ∨ r (y , sk3 (y )))) pA ⊆ TΣm , pm ∈ Π Klauselmenge: N = {{¬p(sk1 , sk2 ), q(sk1 , y )}, {¬p(sk1 , sk2 ), r (y , sk3 (y ))}} 450 452 Herbrand-Interpretationen als Mengen von Grundatomen Existenz von Herbrand-Modellen Definition. Eine Herbrand-Interpretation I heißt Herbrand-Modell von F , falls I |= F . Satz. Jede Menge von Grundatomen I identifiziert genau eine HerbrandInterpretation A durch Theorem [Herbrand] Sei N eine Menge von Σ-Klauseln. N erfüllbar (s1 , . . . , sn ) ∈ pA genau dann, wenn p(s1 , . . . , sn ) ∈ I g.d.w. N hat Herbrand-Modell (über Σ) g.d.w. GΣ (N) hat Herbrand-Modell (über Σ) wobei GΣ (N) = {C σ Grundklausel | C ∈ N, σ : X → TΣ } Im folgenden werden wir daher nicht zwischen Herbrand-Interpretationen (über Σ) und Mengen von Σ-Grundatomen unterscheiden. die Menge der Grundinstanzen von N ist. [Beweis später im Zusammenhang mit dem Vollständigkeitsbeweis für Resolution.] 453 455 Herbrand-Interpretationen als Mengen von Grundatomen Beispiel für GΣ Bzgl. ΣPres erhält man für Beispiel: ΣPres = ({0/0, s/1, +/2}, {< /2, ≤ /2}) C = (x < y ) ∨ (y ≤ s(x)) folgende Grundinstanzen: N als Herbrand-Interpretation über ΣPres I ={ (0 < 0) ∨ (0 ≤ s(0)) (s(0) < 0) ∨ (0 ≤ s(s(0))) ... (s(0) + s(0) < s(0) + 0) ∨ (s(0) + 0 ≤ s(s(0) + s(0))) ... 0 ≤ 0, 0 ≤ s(0), 0 ≤ s(s(0)), . . . , 0 + 0 ≤ 0, 0 + 0 ≤ s(0), . . . , . . . , (s(0) + 0) + s(0) ≤ s(0) + (s(0) + s(0)) ... s(0) + 0 < s(0) + 0 + 0 + s(0) . . .} 454 456 2.6 Wiederholung: Resolutionskalkül (Mengennotation) Prädikatenlogische Resolution Resolutionsregel: C ∪ {A} {¬A} ∪ D C ∪D C ∪ D: Resolvente A: resolviertes Atom 457 459 Wiederholung: Aussagenlogische Resolution Beispielrefutation (Mengennotation) Aussagenlogische Klauseln entsprechen Grundklauseln und umgekehrt. 458 1. {¬P(f (a)), ¬P(f (a)), Q(b)} 2. {P(f (a)), Q(b)} (gegeben) 3. {¬P(g (b, a)), ¬Q(b)} (gegeben) 4. {P(g (b, a))} (gegeben) 5. {¬P(f (a)), Q(b)} (gegeben) (Res. 2. in 1.) 6. {Q(b)} (Res. 2. in 5.) 7. {¬P(g (b, a))} (Res. 6. in 3.) 8. ⊥ (Res. 4. in 9.) 460 Wiederholung: Resolutionskalkül (Klauselnotation) Wiederholung: Korrektheit und Vollständigkeit Aussagenlogische Resolution ist korrekt und vollständig. Resolutionsregel: C ∨A • Mengennotation: Resolutionsregel ¬A ∨ D C ∨D • Klauselnotation: Resolutionsregel + Faktorisieren C ∨ D: Resolvente A: resolviertes Atom Faktorisieren: C ∨L∨L C ∨L ∨“ wird in Klauseln als assoziativ und kommutativ aufgefaßt. ” 461 463 Beispielrefutation (Klauselnotation) Prädikatenlogische Resolution: Idee Grundidee 1. ¬P(f (a)) ∨ ¬P(f (a)) ∨ Q(b) (gegeben) 2. P(f (a)) ∨ Q(b) (gegeben) 3. ¬P(g (b, a)) ∨ ¬Q(b) (gegeben) 4. P(g (b, a)) (gegeben) 5. ¬P(f (a)) ∨ Q(b) ∨ Q(b) 6. ¬P(f (a)) ∨ Q(b) 7. Q(b) ∨ Q(b) 8. Q(b) 9. ¬P(g (b, a)) (Res. 8. in 3.) • die Elternklauseln keine Variablen gemeinsam haben (bereinigt) 7→ ggf. umbenennen ⊥ (Res. 4. in 9.) • σ(L) = σ(L′ ) 10. Vor Resolutionsschritt durch geeignete Substitution komplementäres Paar von Literalen erzeugen Möglichkeit für Resolutionsregel (Res. 2. in 1.) C1 ∪ {L} C2 ∪ {¬L′ } C1 σ ∪ C2 σ (Fakt. 5.) (Res. 2. in 6.) wobei (Fakt. 7.) Nachteil: Viel zu viele Substitutionen σ mit σ(L) = σ(l ′ ) Idee: Wähle die “allgemeinste” Substitution, mit σ(L) = σ(l ′ ) 462 464 Unifikation . Unifikation nach Martelli/Montanari . Sei E = {s1 = t1 , . . . , sn = tn } (si , ti Terme oder Atome) eine Menge von Gleichheitsproblemen. (1) t = t, E ⇒MM E Definition: Eine Substitution σ heißt ein Unifikator von E g.d.w. (2) f (s1 , . . . , sn ) = f (t1 , . . . , tn ), E ⇒MM s1 = t1 , . . . , sn = tn , E (3) f (. . .) = g (. . .), E ⇒MM ⊥ (4) x = t, E ⇒MM x = t, E [t/x] A 1 ≤ i ≤ n : si σ = ti σ. Existiert ein Unifikator, so heißt E unifizierbar. . . . . Definition: σ heißt allgemeiner als τ a Ist . . falls x ∈ var (E ), x 6∈ var (t) σ ≤ τ :⇔ es gibt Subst.̺ : σ ◦ ̺ = τ wobei (σ ◦ ̺)(x) := (xσ)̺ die Komposition von σ und ̺ als . . x = t, E (5) Abbildungen.a ⇒MM ⊥ falls x 6= t, x ∈ var (t) wohldefiniert, weil σ ◦ ̺ einen endlichen Bereich hat. . (6) t = x, E . ⇒MM x = t, E falls t 6∈ X 465 467 Ein paar simple Fakten Beispiel 1 . . {f (g (a, x), g (y , b)) = f (x, g (v , w )), f (x, g (v , w )) = f (g (x, a), g (v , b)} • Jeder Term ist mit sich selbst unifizierbar (mittels id) • Terme der Gestalt f (s1 , . . . , sn ), f (t1 , . . . , tn ) sind unifizierbar g.d.w. si und ti unifizierbar für 1 ≤ i ≤ n (2) ⇒MM (5) • Atome der Gestalt p(s1 , . . . , sn ), p(t1 , . . . , tn ) sind unifizierbar g.d.w. si und ti unifizierbar für 1 ≤ i ≤ n ⇒MM • Terme der Gestalt f (s1 , . . . , sn ), g (t1 , . . . , tm ) sind niemals unifb. . . . . {g (a, x) = x, g (y , b) = g (v , w ), x = g (x, a), g (v , w ) = g (v , b)} ⊥ nicht unifizierbar • Atome der Gestalt p(s1 , . . . , sn ), q(t1 , . . . , tn ) sind niemals unifb. • Eine Variable x und ein Term t, der x nicht enthält, sind immer unifb. (mittels [t/x]) • Eine Variable x und ein Term t 6= x, der x enthält, sind niemals unifizierbar 466 468 Beispiel 2 Unifikation: Haupteigenschaften . . Definition. Eine Substitition σ heißt idempotent, wenn σ ◦ σ = σ. {f (g (a, x), g (y , b)) = g (x, g (v , w )), f (x, g (v , w )) = f (g (x, a), g (v , b)} (3) ⇒MM ⊥ Lemma. σ ist idempotent gdw. dom(σ) ∩ codom(σ) = ∅. nicht unifizierbar Theorem. ∗ 1. E ⇒MM ⊥ gdw. E nicht unfizierbar. ∗ . . 2. E unifizierbar gdw. E ⇒MM x1 = u1 , . . . , xk = uk , mit xi pw. verschieden, xi 6∈ var (uj ), 1 ≤ i, j ≤ k. ∗ . . 3. Falls E ⇒MM x1 = u1 , . . . , xk = uk , mit xi pw. verschieden, xi 6∈ var (uj ) so σ = [u1 /x1 , . . . , uk /xk ] ist allgemeinster Unifikator von E . 469 Beispiel 3 Unifikation: Haupteigenschaften . . {f (g (a, x), g (y , b)) = f (z, g (v , w )), f (z, g (v , w )) = f (g (x, a), g (v , b)} (2) ⇒MM (4) . . . . {g (a, x) = z, g (y , b) = g (v , w ), z = g (x, a), g (v , w ) = g (v , b)} . 471 . . . ⇒MM {z = g (a, x), g (y , b) = g (v , w ), g (a, x) = g (x, a), g (v , w ) = g (v , b)} ⇒∗MM {z = g (a, x), y = v , b = w , a = x, x = a, v = v , w = b} ⇒∗MM {z = g (a, x), y = v , b = w , a = x, x = a, w = b} ⇒∗MM {z = g (a, a), y = v , b = b, a = a, x = a, w = b} ⇒∗MM {z = g (a, a), y = v , x = a, w = b} . . . . . . . . . . . . . . . . . . . . Theorem. E unifizierbar g.d.w. es gibt allgemeinsten Unifikator σ von E , so dass: (1) σ idempotent und (2) dom(σ) ∪ codom(σ) ⊆ var (E ). Notation: σ = mgu(E ) ( most general unifier“) ” Problem: exponentielles Anwachsen der Terme möglich. . . . Beispiel: E = {x1 ≈ f (x0 , x0 ), x2 ≈ f (x1 , x1 ), . . . , xn ≈ f (xn−1 , xn−1 )} Allgemeinster Unifikator: m.g.u. [x1 7→ f (x0 , x0 ), x2 7→ f (f (x0 , x0 ), f (x0 , x0 )), ...] xi 7→ kompletter binärer Baum der Höhe i Zeit/Raum: exponentiell [g (a, a)/z, v /y , a/x, w /b] Idee: Terme: azyklische Termgraphen 470 472 Beweisideen Beispiel {L} ∪ C1 = {p(a, x), p(x, x)} | {z } • Falls E ⇒MM E ′ , dann σ Unifikator von E gdw. σ Unifikator von E ′ . (⊥ habe keinen Unifikator.) L • Bzgl. ⇒MM irreduzible E sind trivialerweise nicht unifizierbar (E = ⊥) oder haben die Form einer idempotenten Substitution. In diesem Fall ist die Substitution der allgemeinste Unifikator. {L′ } • ⇒MM ist Noethersch. Eine geeignete lexikographische Ordnung auf Gleichungsmengen E (mit ⊥ minimal und kleiner als alle Gleichungsmengen) zeigt dieses. Man vergleiche in dieser Reihenfolge: . 1. Anzahl der definierten Variablen (d.h. Variablen x in Gleichung x = t mit x 6∈ var (t)), die auch außerhalb ihrer Definition in E vorkommen Allgemeinster Unifikator von L, L′ : ∪ C2 = {¬p(y , y )} | {z } L′ . {p(a, x) = p(y , y )} . . . . ⇒MM {a = y , x = y } ⇒MM {y = a, x = a} σ = [a/y , a/x] 2. Mengenordnung induziert von (i) der Größe (Anzahl der Symbole) einer . . Gleichung; (ii) bei gleicher Größe betrachten wir x = t kleiner als t = x, falls t 6∈ X . C2 ∪ {¬L′ } C1 ∪ {L} C1 σ ∪ C2 σ R := {p(x, x)}σ ∪ {}σ = {p(a, a)} • σ ist idempotent wegen der Substitution in Regel 4. dom(σ) ⊆ var (E ), weil keine neuen Variablen eingeführt werden. 473 475 Prädikatenlogische Resolutionsregel Prädikatenlogische Resolutionsregel Prädikatenlogische Resolutionsregel Resolutionsregel in dieser Form alleine unvollständig für Prädikatenlogik Beispiel: C1 ∪ {L} C2 ∪ {¬L′ } C1 σ ∪ C2 σ {{p(x), p(y )}, {¬p(u), ¬p(v )}} • unerfüllbar wobei • aber nur Resolventen der Länge 2 • die Elternklauseln keine Variablen gemeinsam haben (bereinigt) 7→ ggf. umbenennen • σ ein allgemeinster Unifikator (MGU) von L, L′ ist. 474 476 Faktorisierung Beispiel Faktorisierung {L1 , . . . , Ln } ∪ C ({L1 , . . . , Ln } ∪ C )σ wobei • σ allgemeinster Unifikatior (MGU) von {L1 , . . . , Ln } ist 1. P(x) ∨ P(f (x)) ∨ ¬Q(x) [Gegeben] 2. ¬P(y ) [Gegeben] 3. P(g (x ′ , x ′′ )) 4. P(f (x)) ∨ ¬Q(x) [Res. 1, 2] 5. ¬Q(x) [Res. 4, 2] 6. Q(x ′′ ) [Res. 3, 2] 7. ⊥ ∨ Q(x ′′ ) [Gegeben; Bereinigt] ({L1 , . . . , Ln } ∪ C )σ heißt Faktor von {L1 , . . . , Ln } ∪ C 477 Beispiel für Faktorisierung 479 Resolutionskalkül Res für allgemeine Klauseln {p(x), p(y ), r (y , z)} {p(x), r (x, z)} C ∨A D ∨ ¬B (C ∨ D)σ falls σ = mgu(A, B) [Resolution] {p(x), p(y ), p(a), r (y , z)} {p(a), r (a, z)} C ∨ L1 ∨ L2 (C ∨ A)σ falls σ = mgu(A, B) [Faktorisierung] Es wird immer implizit angenommen, dass die Variablen in einer der beiden Prämissen der Resolutionsregel ggfs. (bijektiv) umbenannt werden, so dass sie disjunkt mit denen der anderen Prämisse sind. Dieses implizite Umbenennen werden wir nicht formalisieren. Welche Variablennamen man verwendet ist egal. Beispielsweise könnte man sich vorstellen, dass am Anfang alle Klauseln paarweise variablendisjunkt sind und das Unifikatoren so gewählt werden, dass in ihrem Wertebereich nur neue Variablen vorkommen. 478 480 Allgemeine Resolution mit implizitem Faktorisieren Wichtig: Häufige Fehlerquellen • Das Bereinigen (Umbenennen) nicht vergessen! Günstiger ist es, Resolutionsregel und Faktorisierungsregel in eine Regel zusammenzuziehen. • Das Faktorisierungen (falls möglich) nicht vergessen! • Selbstresolution ist möglich! C ∨ L1 ∨ . . . ∨ Ln D∨ (C ∨ D)σ ¬L′1 ∨ ... ∨ ¬L′m • wobei die Elternklauseln keine Variablen gemeinsam haben (bereinigt) 7→ ggf. umbenennen • σ = mgu(L1 , . . . , Ln , L′1 , . . . , L′m ) 481 483 Allgemeine Resolution: Beispiel Notation Sei N eine Klauselmenge und (Hier verwenden wir Resolution mit implizitem Faktorisieren.) Res(N) = N ∪ {R | R ist eine Resolvente zweier Klauseln aus N Man sieht, dass (i) beim Instanziieren verschiedene Literale gleich werden können, und dass (ii) i. allg. mehrere verschiedene Instanzen einer Klausel an einem Beweis partizipieren. oder Resultat der Faktorisierung einer Klausel aus N} 1. P(x) ∨ P(f (a)) ∨ ¬Q(x) [Gegeben] Res0 (N) = N 2. ¬P(y ) [Gegeben] Resn+1 (N) = Res(Resn (N)) 3. P(g (x ′ , x ′′ )) ∨ Q(x ′′ ) [Gegeben] 4. ¬Q(f (a)) [RIF 1, 2] 5. Q(x ′′ ) [RIF 3, 2] 6. ⊥ [RIF 4, 5] Res⋆ (N) = S n∈N Resn (N) (bezeichnet die Vereinigung der Ergebnisse aus aller möglichen Resolutions- und Faktorisierungsschritte auf N) 482 484 Resolution: Korrektheit Resolution: Vollständigkeit Theorem Für eine Menge N von Klauseln gilt: Falls ⊥∈ Res∗ (N), so N unerfüllbar. Theorem Für eine Menge N von Klauseln gilt: Falls N unerfüllbar, so ⊥∈ Res∗ (N). Beweis: Wie bei Aussagenlogik. Beweisplan: Einzelne Regelanwendung erhält die Erfüllbarkeit der Klauselmenge 1. Sei N eine unter Res saturierte Menge allgemeiner Klauseln, d.h. Res(N) ⊆ N. Dann ist auch GΣ (N) saturiert. Auch dies einfach zu beweisen wie in Aussagenlogik (beachte dabei: Variablen in Klauseln sind universell quantifiziert) Beweis: “Lifting-Lemma” 2. Sei N eine Menge von Σ-Klauseln. N erfüllbar g.d.w. N besitzt Herbrand-Modell über Σ. 3. Sei N Menge allgemeiner Klauseln mit Res(N) ⊆ N. Dann N |= ⊥ genau dann, wenn ⊥ ∈ N. 485 487 Resolution: Korrektheit Lifting-Lemma Theorem Für eine Menge N von Klauseln gilt: Falls ⊥∈ Res∗ (N), so N unerfüllbar. x(C1 ∨ L1 ), A |= C ? ? yσ A A Beweis: Annahme: A |= C1 ∨ L1 , A |= C2 ∨ ¬L2 (d.h. A |= Lemma. Falls x(C2 ∨ ¬L2 )) Cσ Sei σ = mgu(L1 , L2 ). Zu zeigen: A |= x(C1 ∨ C2 )σ. Dσ [aussagenlogische Resolution] C′ A Sei β beliebig. A(β)((C1 ∨ C2 )σ) = A(β ◦ σ)(C1 ∨ C2 ) D ? ? yσ dann gibt es τ , so dass (Substitution-Lemma) C D C ′′ ? ? y • Fall 1: A(β ◦ σ)(C1 ) = 1. Dann A(β)((C1 ∨ C2 )σ) = 1. • Fall 2: A(β ◦ σ)(C1 ) = 0. Laut Annahme, A(β ◦ σ)(C1 ∨ L1 ) = 1, so A(β ◦ σ)(L1 ) = 1. Dann: A(β ◦ σ)(L2 ) = A(β)(L2 σ) = A(β)(L1 σ) = A(β ◦ σ)(L1 ) = 1. Also: A(β ◦ σ)(¬L2 ) = 0. [allgemeine Resolution] τ C ′ = C ′′ τ Aber A(β ◦ σ)(C2 ∨¬L2 )=1, so A(β ◦ σ)(C2 )=1. Dann A(β)((C1 ∨C2 )σ)=1. Entsprechend für Faktorisieren. 486 488 Lifting-Lemma: Beweis Saturiertheit von Mengen allgemeiner Klauseln Beweis (Idee) Theorem. Sei N eine unter Res saturierte Menge allgemeiner Klauseln, d.h. Res(N) ⊆ N. Dann ist auch GΣ (N) saturiert, d.h. Sei C = C1 ∨ L1 , D = C2 ∨ ¬L2 . C σ = C1 σ ∨ L1 σ, Dσ = C2 σ ∨ ¬L2 σ. Res(GΣ (N)) ⊆ GΣ (N). L1 σ = L2 σ und C ′ = (C1 ∨ C2 )σ. Beweis. Sei C ′ ∈ Res(GΣ (N)). D.h. es gibt: (i) Grundinstanzen C σ und Dσ ′ von N mit Resolvente C ′ , oder (ii) Grundinstanz C σ s.d. C ′ durch Faktorisierung abgeleitet. L1 , L2 unifizierbar. Sei ρ = mgu(L1 , L2 ). Die Resolvente C ′′ ist dann (C1 ∨ C2 )ρ. (i) Ist C ′ Resolvente, so können wir o.B.d.A. annehmen, dass σ = σ ′ . (Nur wenn C und D nicht variablen-disjunkt wären, könnte dies schiefgehen. Dann aber dürfen und müssen wir die Variablen in einer Klausel umbenennen.) ρ ist allgemeiner als σ, d.h. es gibt eine Substitution τ mit σ(x) = τ (ρ(x)) für alle x ∈ X . Wegen des Lifting-Lemmas sind C und D resolvierbar mit einer Resolvente C ′′ so dass C ′′ τ = C ′ , für eine geeignete Substitution τ . Weil C ′′ ∈ N nach Voraussetzung, ist C ′ ∈ GΣ (N). C ′′ τ = (C1 ∨ C2 )ρτ = (C1 ∨ C2 )σ = C ′ . (ii) Analog für den Fall, dass C ′ durch Faktorisierung abgeleitet wurde. 489 491 Saturiertheit von Mengen allgemeiner Klauseln Satz von Herbrand Sei N eine Klauselmenge und Theorem (Herbrand) Sei N eine Menge von Σ-Klauseln. Res(N) = N ∪ {R | R ist eine Resolvente zweier Klauseln aus N oder Resultat der Faktorisierung einer Klausel aus N} N erfüllbar g.d.w. N besitzt Herbrand-Modell über Σ Beweis: Res0 (N) = N “⇐” trivial Resn+1 (N) = Res(Resn (N)) “⇒” ⋆ Res (N) = S n n∈N N 6|= ⊥ Res (N) (bezeichnet die Vereinigung der Resolventen aus aller möglichen Resolutionsschritte ⇒ ⊥ 6∈ Res ∗ (N) (Res. korrekt) ⇒ ⊥ 6∈ GΣ (Res ∗ (N)) ⇒ GΣ (Res ∗ (N)) hat ein (’aussagenlogisches’) Modell auf N) ⇒ GΣ (Res ∗ (N)) hat ein Herbrand Modell I ⇒ I |= Res ∗ (N) ⇒ I |= N 490 (I Herbrand-Modell) (N ⊆ Res ∗ (N)) 492 Korrektheit und Vollständigkeit der allgemeinen Resolution Prädikatenlogische Resolution: Beispiel (1) Gegeben die Formel F : Theorem Sei N Menge allgemeiner Klauseln mit Res(N) ⊆ N. Dann: A A ( x y (p(x, y ) → q(x, y ))∧ A A x y (r (x, y ) → s(x, y )) )→ E N |= ⊥ genau dann, wenn ⊥ ∈ N A A ( x y (( z(p(x, z) ∧ r (z, y ))) → E Proof: “⇐” trivial ( z(q(x, z) ∧ s(z, y ))))) “⇒:” Sei N Klauselmenge mit Res(N) ⊆ N. Dann Res(GΣ (N)) ⊆ GΣ (N) (Theorem Seite 10) ) Gezeigt werden soll die Allgemeingültigkeit von F mittels Resolution Annahme: N |= ⊥. Dann GΣ (N) |= ⊥ (Wir haben gezeigt, dass GΣ (N) 6|= ⊥ ⇒ GΣ (N) hat Herbrand Modell I und I |= N) Aber GΣ (N) |= ⊥ gdw. ⊥ ∈ GΣ (N) (aussag.log. Resol. vollständig + korrekt). Es ist leicht zu sehen, dass ⊥ ∈ GΣ (N) gdw. ⊥ ∈ N. 493 Resolution: Vollständigkeit 495 Prädikatenlogische Resolution: Beispiel (2) Dazu zeigen wir die Unerfüllbarkeit von ¬F : Theorem Für eine Menge N von Klauseln gilt: Falls N unerfüllbar, so ⊥∈ Res∗ (N). A A ¬(( x y (p(x, y ) → q(x, y ))∧ A A x y (r (x, y ) → s(x, y )) Beweis: )→ E Sei M = Res∗ (N). Dann Res(M) ⊆ M. So: M |=⊥ gdw. ⊥∈ M. A A ( x y (( z(p(x, z) ∧ r (z, y ))) → Widerspruchsbeweis: E ( z(q(x, z) ∧ s(z, y )))) Annahme: ⊥6∈ Res∗ (N). Dann Res∗ (N) 6|=⊥, d.h. Res∗ (N) hat ein Modell A. )) Da N ⊆ Res∗ (N), A |= N, d.h. N 6|=⊥. Diese Formel muss zunächst in Klauselnormalform transformiert werden 494 496 Prädikatenlogische Resolution: Beispiel (3) Prädikatenlogische Resolution: Beispiel (5) Elimination der Implikationen: Negation an den Allquantoren vorbei: A A A A ¬(¬( x y (¬p(x, y ) ∨ q(x, y ))∧ (( x y (¬p(x, y ) ∨ q(x, y ))∧ A A A A x y (¬r (x, y ) ∨ s(x, y )) ∨ ) ∧ E E E A A ( x y (¬( z(p(x, z) ∧ r (z, y )))∨ E ) x y (¬r (x, y ) ∨ s(x, y )) ( x y ¬(¬( z(p(x, z) ∧ r (z, y )))∨ E E ( z(q(x, z) ∧ s(z, y )))) z(q(x, z) ∧ s(z, y ))) )) )) 497 Prädikatenlogische Resolution: Beispiel (4) 499 Prädikatenlogische Resolution: Beispiel (6) De Morgan: Äußere Negation nach innen schieben: A A (( x y (¬p(x, y ) ∨ q(x, y ))∧ A A (( x y (¬p(x, y ) ∨ q(x, y ))∧ A A x y (¬r (x, y ) ∨ s(x, y )) A A x y (¬r (x, y ) ∨ s(x, y )) ) ∧ E ) ∧ E E ( x y (( z(p(x, z) ∧ r (z, y )))∧ E A A ¬( x y (¬( z(p(x, z) ∧ r (z, y )))∨ E ¬ z(q(x, z) ∧ s(z, y ))) E z(q(x, z) ∧ s(z, y ))) )) )) 498 500 Prädikatenlogische Resolution: Beispiel (7) Prädikatenlogische Resolution: Beispiel (9) Negation am Quantor vorbei: Bereinigen der Formel führt zu: A A A A (( x y (¬p(x, y ) ∨ q(x, y ))∧ (( x y (¬p(x, y ) ∨ q(x, y ))∧ A A A A ) ∧ ) ∧ x ′ y ′ (¬r (x ′ , y ′ ) ∨ s(x ′ , y ′ )) E E E E E ( x y (( z(p(x, z) ∧ r (z, y )))∧ E x y (¬r (x, y ) ∨ s(x, y )) ( x ′′ y ′′ (( z(p(x ′′ , z) ∧ r (z, y ′′ )))∧ A A z¬(q(x, z) ∧ s(z, y ))) z ′ (¬q(x ′′ , z ′ ) ∨ ¬s(z ′ , y ′′ ))) )) )) 501 Prädikatenlogische Resolution: Beispiel (8) 503 Prädikatenlogische Resolution: Beispiel (10) Da die Formel bereinigt und in NNF ist, kann man alle Quantoren nach vorne ziehen: x y x ′ y ′ x ′′ y ′′ z z ′ ( A A E A A A A A A x y (¬r (x, y ) ∨ s(x, y )) E (( x y (¬p(x, y ) ∨ q(x, y ))∧ A E De Morgan ) ∧ (¬p(x, y ) ∨ q(x, y ))∧ E E E (¬r (x ′ , y ′ ) ∨ s(x ′ , y ′ )) A p(x ′′ , z)∧ ( x y (( z(p(x, z) ∧ r (z, y )))∧ z(¬q(x, z) ∨ ¬s(z, y ))) r (z, y ′′ ∧ )) (¬q(x ′′ , z ′ ) ∨ ¬s(z ′ , y ′′ )) Nun ist die Formel in Negationsnormalform ) Nun ist die Formel in Pränexnormalform, die Matrix der Formel ist auch schon in konjunktiver Normalform 502 504 Prädikatenlogische Resolution: Beispiel (11) Prädikatenlogische Resolution: Beispiel (13) In Klauselmengenschreibweise: Skolemisieren von x ′′ und y ′′ : x y x′ y ′ z z′( A E A A A A 1. {¬p(x, y ), q(x, y )} (¬p(x, y ) ∨ q(x, y ))∧ 2. {¬r (x ′ , y ′ ), s(x ′ , y ′ )} (¬r (x ′ , y ′ ) ∨ s(x ′ , y ′ )) 3. {p(f (x, y , x ′ , y ′ ), h(x, y , x ′ , y ′ ))} p(f (x, y , x ′ , y ′ ), z)∧ 4. {r (h(x, y , x ′ , y ′ ), g (x, y , x ′ , y ′ ))} r (z, g (x, y , x ′ , y ′ ))∧ 5. {¬q(f (x, y , x ′ , y ′ ), z ′ ), ¬s(z ′ , g (x, y , x ′ , y ′ ))} (¬q(f (x, y , x ′ , y ′ ), z ′ ) ∨ ¬s(z ′ , g (x, y , x ′ , y ′ ))) ) 505 Prädikatenlogische Resolution: Beispiel (12) 507 Prädikatenlogische Resolution: Beispiel (14) Skolemisieren von z: 1. {¬p(x, y ), q(x, y )} A E A A A A 2. {¬r (x ′ , y ′ ), s(x ′ , y ′ )} (¬p(x, y ) ∨ q(x, y ))∧ 3. {p(f (x, y , x ′ , y ′ ), h(x, y , x ′ , y ′ ))} 4. {r (h(x, y , x ′ , y ′ ), g (x, y , x ′ , y ′ ))} 5. {¬q(f (x, y , x ′ , y ′ ), z ′ ), ¬s(z ′ , g (x, y , x ′ , y ′ ))} x y x′ (¬r (x ′ , y ′ ) y′ ∨ z z′( s(x ′ , y ′ )) p(f (x, y , x ′ , y ′ ), h(x, y , x ′ , y ′ ))∧ r (h(x, y , x ′ , y ′ ), g (x, y , x ′ , y ′ ))∧ Resolution der Klauseln 1. und 3. Dazu zunächst Umbenennung der Variablen x, y in 3., um die Klauseln variablendisjunkt zu machen (¬q(f (x, y , x ′ , y ′ ), z ′ ) ∨ ¬s(z ′ , g (x, y , x ′ , y ′ ))) ) Verwendeter MGU: [f (u, v , x ′ , y ′ )/x, h(u, v , x ′ , y ′ )/y ] 1 : {¬p(x, y ), q(x, y )} 3′ : {p(f (u, v , x ′ , y ′ ), h(u, v , x ′ , y ′ ))} 6 : {q(f (u, v , x ′ , y ′ ), h(u, v , x ′ , y ′ ))} 506 508 Prädikatenlogische Resolution: Beispiel (15) Prädikatenlogische Resolution: Beispiel (17) 1. {¬p(x, y ), q(x, y )} 1. {¬p(x, y ), q(x, y )} 2. {¬r (x ′ , y ′ ), s(x ′ , y ′ )} 2. {¬r (x ′ , y ′ ), s(x ′ , y ′ )} 3. {p(f (x, y , x ′ , y ′ ), h(x, y , x ′ , y ′ ))} 3. {p(f (x, y , x ′ , y ′ ), h(x, y , x ′ , y ′ ))} 4. {r (h(x, y , x ′ , y ′ ), g (x, y , x ′ , y ′ ))} 4. {r (h(x, y , x ′ , y ′ ), g (x, y , x ′ , y ′ ))} 5. {¬q(f (x, y , x ′ , y ′ ), z ′ ), ¬s(z ′ , g (x, y , x ′ , y ′ ))} 5. {¬q(f (x, y , x ′ , y ′ ), z ′ ), ¬s(z ′ , g (x, y , x ′ , y ′ ))} 6. {q(f (u, v , x ′ , y ′ ), h(u, v , x ′ , y ′ ))} 6. {q(f (u, v , x ′ , y ′ ), h(u, v , x ′ , y ′ ))} 7. {s(h(x, y , u, v ), g (x, y , u, v ))} 8. {¬s(h(u, v , u ′ , v ′ ), g (u, v , u ′ , v ′ ))} Resolution der Klauseln 2 und 4. Dazu zunächst Umbenennung der Variablen x ′ , y ′ in 4, um die Klauseln variablendisjunkt zu machen Resolution der Klauseln 7 und 8. Dazu zunächst Umbenennung der Variablen u, v in 8, um die Klauseln variablendisjunkt zu machen. Verwendeter MGU: [h(x, y , u, v )/x ′ , g (x, y , u, v )/y ′ ] Verwendeter MGU: [u ′′ /x, v ′′ /y , u ′ /u, v ′ /v ] 2 : {¬r (x ′ , y ′ ), s(x ′ , y ′ )} 4′ : {r (h(x, y , u, v ), g (x, y , u, v ))} 7 : {s(h(x, y , u, v ), g (x, y , u, v ))} 7 : {s(h(x, y , u, v ), g (x, y , u, v ))} 8′ : {¬s(h(u ′′ , v ′′ , u ′ , v ′ ), g (u ′′ , v ′′ , u ′ , v ′ ))} ⊥ 509 Prädikatenlogische Resolution: Beispiel (16) 511 Prädikatenlogische Resolution: Beispiel (18) 1. {¬p(x, y ), q(x, y )} 2. {¬r (x ′ , y ′ ), s(x ′ , y ′ )} Damit ist die leere Klausel ⊥ abgeleitet, 3. {p(f (x, y , x ′ , y ′ ), h(x, y , x ′ , y ′ ))} also ist die Klauselmenge unerfüllbar, 4. {r (h(x, y , x ′ , y ′ ), g (x, y , x ′ , y ′ ))} also ist die Formel ¬F unerfüllbar, 5. {¬q(f (x, y , x ′ , y ′ ), z ′ ), ¬s(z ′ , g (x, y , x ′ , y ′ ))} also ist die Formel F allgemeingültig 6. {q(f (u, v , x ′ , y ′ ), h(u, v , x ′ , y ′ )} 7. {s(h(x, y , u, v ), g (x, y , u, v ))} Resolution der Klauseln 5 und 6. Dazu zunächst Umbenennung der Variablen x ′ , y ′ in 6, um die Klauseln variablendisjunkt zu machen. Verwendeter MGU: [u/x, v /y , u ′ /x ′ , v ′ /y ′ , h(u, v , u ′ , v ′ )/z ′ ] 5 : {¬q(f (x, y , x ′ , y ′ ), z ′ ), ¬s(z ′ , g (x, y , x ′ , y ′ ))} 6 : {q(f (u, v , u ′ , v ′ ), h(u, v , u ′ , v ′ )} 8 : {¬s(h(u, v , u ′ , v ′ ), g (u, v , u ′ , v ′ ))} 510 512 Wiederholung: Der aussagenlogische Tableaukalkül Zusammenfassung: Prädikatenlogische Resolution • Prädikatenlogische Resolutionsregel Wesentliche Eigenschaften • Faktorisierung • Kombination von Resolution und Faktorisierung • Widerlegungskalkül: Testet auf Unerfüllbarkeit • Häufige Fehlerquellen • Beweis durch Fallunterscheidung • Korrektheit und Vollständigkeit • Top-down-Analyse der gegebenen Formeln 513 2.7 515 Wiederholung: Der aussagenlogische Tableaukalkül Tableaukalkül Vorteile • Intuitiver als Resolution • Formeln müssen nicht in Normalform sein • Falls Formelmenge erfüllbar ist (Test schlägt fehl), wird ein Gegenbeispiel (eine erfüllende Interpretation) konstruiert Nachteile • Mehr als eine Regel 514 516 Formeltypen Formeltypen Konjunktive Formeln: Typ α Disjunktive Formeln: Typ β • ¬¬F • ¬(F ∧ G ) • F ∧G • F ∨G • ¬(F ∨ G ) • F →G • ¬(F → G ) Zuordnungsregeln Formeln / Unterformeln Disjunktive Formeln: Typ β • ¬(F ∧ G ) • F ∨G β β1 β2 ¬(F ∧ G ) ¬F ¬G F ∨G • F →G F →G F G ¬F G 517 Formeltypen 519 Regeln des (aussagenlogischen) Tableaukalküls Konjunktive Formeln: Typ α p∧q | p | q α • ¬¬F Konjunktiv α1 • F ∧G α2 • ¬(F ∨ G ) • ¬(F → G ) β Zuordnungsregeln Formeln / Unterformeln β1 | β2 α F ∧G α1 G ¬F ¬G ¬(F → G ) F ¬G ¬¬F F φ ¬φ ⊥ 518 / p α2 F ¬(F ∨ G ) p∨q Disjunktiv Widerspruch \ q φ ¬φ | ⊥ 520 Instanzen der α und β-Regel Beispiel Instanzen der α-Regel 1. ¬[(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S))] P ∧Q ¬(P ∨ Q) ¬(P → Q) ¬¬P 2. (P → (Q → R)) [11 ] P ¬P P P 3. ¬((P ∨ S) → ((Q → R) ∨ S)) [12 ] Q ¬Q ¬Q Instanzen der β-Regel P ∨Q ¬(P ∧ Q) P→Q P | Q ¬P | ¬Q ¬P | Q 4. P ∨S [31 ] 5. ¬((Q → R) ∨ S)) [32 ] 6. ¬(Q → R) [51 ] ¬S [52 ] 7. hhhhhhh h 8. ¬P 9. [21 ] Q→R [22 ] XXXX X 10. P [41 ] 11. S [42 ] geschlossenes Tableau. 521 523 Beispiel Beispiel Zu zeigen: Geschlossenes Tableau gefunden (P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S)) allgemeingültig ... also ist die Formel ¬[(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S))] unerfüllbar, Wir zeigen, dass ¬[(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S))] ... d.h. die Formel unerfüllbar ist. (P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S)) ist allgemeingültig 522 524 Zusätzlich: Prädikatenlogische Formeltypen ¬F [t/x] δ(t) xF F [t/x] A A E ¬ xF F [t/x] δ E xF γ(t) ¬ xF A γ Instanzen der γ-Regel existentiell xF (x) F (t) E universell Instanzen der γ und δ-Regel ¬ xF (x) ¬F (t) ¬F [t/x] Instanzen der δ-Regel A E ¬ xF (x, y1 , . . . , yn ) xF (x, y1 , . . . , yn ) F (f (y1 , . . . , yn ), y1 , . . . , yn ) ¬F (f (y1 , . . . , yn ), y1 , . . . , yn ) wobei f eine neue Skolemfunktion ist und y1 , . . . , yn die freien Variablen in xF (x, y1 , . . . , yn ) (resp. xF (x, y1 , . . . , yn )) sind. A E 525 527 Zusätzlich: Prädikatenlogische Tableauregeln Determinismus der Regeln α- und β-Regeln γ-Regel A γ γ(t) xq(x) | q(t) universell deterministisch (wie in Aussagenlogik) wobei t ein beliebiger Term ist. γ-Regel δ-Regel E δ δ(f (y1 ,...,yn )) • hochgradig nicht-deterministisch existentiell xp(x, y1 , . . . , yn ) | p(f (y1 , . . . , yn ), y1 , . . . , yn ) • muss für Vollständigkeit mehrfach angewendet werden (pro Ast) • Grund für Nicht-Terminierung wobei f eine neue Skolemfunktion ist, und y1 , . . . , yn die freien Variablen in δ sind. δ-Regel Skolemisierung ist also ein Bestandteil des Kalküls und wird nicht als ein Vorverarbeitungsschritt vorausgesetzt. Aber natürlich könnte man ebensogut vorher Skolemisieren, was auch Vorteile haben kann. • nicht-deterministisch • muss dennoch nur einmal pro Ast und Formel angewendet werden 526 528 Formale Definition des Kalküls Definition: Tableau (mit freien Variablen) Fast wie in der Aussagenlogik definiert (kleine Änderungen) Sei M = {F1 , . . . , Fn } eine Formelmenge (Definition auf den folgenden Seiten). Initialisierung Das Tableau, das nur aus dem Knoten 1 besteht, ist ein Tableau für M Erweiterung • • • • T ein Tableau für M B ein Ast von T F eine Formel auf B oder in M, die kein Literal ist T ′ entstehe durch Erweiterung von B gemäß der auf F anwendbaren Regel (α, β, γ oder δ) Dann ist T ′ ein Tableau für M. Substitutionsregel • Ist T ein Tableau für M und • ist σ eine Substitution, so ist auch T σ ein Tableau für M. 529 531 Formale Definition des Kalküls Formale Definition des Kalküls Definition Definition. Tableau: Binärer Baum, dessen Knoten mit Formeln markiert sind Ast B eines Tableaus für M ist geschlossen, wenn Definition F , ¬F ∈ B ∪ M Tableauast: Maximaler Pfad in einem Tableau (von Wurzel zu Blatt) Definition. Ein Tableau ist geschlossen, wenn jeder seiner Äste geschlossen ist. Definition. Ein Tableau für M, das geschlossen ist, ist ein Tableaubeweis für (die Unerfüllbarkeit von) M 530 532 Beispiel Beispiel S ∩Q = ∅ Unerfüllbarkeit der Menge M E (1) Modellierung (¬ x(S(x) ∧ Q(x)) E Eine Aussage über Mengen ∧ ¬ x(S(x) ∧ Q(x)) (1) (2) (2) P ⊆ Q ∪R A ∧ A (3) P=∅ → Q 6= ∅ (¬( xP(x))) → ( yQ(y )) ∧ (¬( xP(x))) → ( yQ(y )) (3) (4) Q ∪R ⊆ S A ) A x((Q(x) ∨ R(x)) → S(x)) (4) (5) P ∩R 6= ∅ E (5) E E E x((Q(x) ∨ R(x)) → S(x)) x(P(x) → (Q(x) ∨ R(x)) → E x((P(x) ∧ R(x))) E x(P(x) → (Q(x) ∨ R(x)) ¬ x((P(x) ∧ R(x))) 533 535 Modellierung S ∩Q = ∅ (2) P ⊆ Q ∪R A (3) P=∅ → Q 6= ∅ (¬( xP(x))) → ( yQ(y )) ∧ (4) Q ∪R ⊆ S A ) (5) P ∩R 6= ∅ (¬ x(S(x) ∧ Q(x)) x(P(x) → (Q(x) ∨ R(x)) E E x((Q(x) ∨ R(x)) → S(x)) ∧ (6) ¬¬ xP(x) [31 , β] ∧ eeeee 1 XXXXXXXXXX eeeeee E E (1) E Eine Aussage über Mengen Beispiel → E Beispiel (7) yQ(y ) [32 , β] (8) xP(x) [61 , α] (9) Q(d) [7, δ] (10) P(c) [8, δ] (∗∗) (11) ¬(P(c) ∧ R(c)) [5, γ] E x((P(x) ∧ R(x))) (12) ¬P(c) [111 , β] YYYYYY Y ffffff (13) ¬R(c) [112 , β] 14 : P(c) → (Q(c) ∨ R(c)) [2, γ] ⊥ 15 : ¬P(c) [141 , β] ⊥ 534 e eeeeee 16 : Q(c) ∨ R(c) [142 , β] XXXXXX 17 : Q(c) [161 , β] 18 : R(c) [162 , β] (∗) ⊥ 536 Beispiel Bemerkungen Nota bene: Ast (*), Fortsetzung: 17 : Q(c) [161 , β] Alle Äste in einem Tableau für M enthalten implizit alle Formeln in M 19 : ¬(S(c) ∧ Q(c)) [1, γ] 20 : ¬S(c) [191 , β] e eeeeee Die Substitutionsregel ändert potentiell alle Formeln des Tableau. Das ist das Globale an der Beweismethode. 21 : ¬Q(c) [192 , β] 22 : Q(c) ∨ R(c) → S(c) [4, γ] ⊥ 23 : ¬(Q(c) ∨ R(c)) [221 , β] 24 : S(c) [222 , β] 25 : ¬Q(c) [231 , α] ⊥ YYYYYY YY Nimmt man die Substitutionsregel wörtlich, so zählt man, in Verbindung mit der γ-Regel, alle Substitutionsinstanzen allquantifizierter Formeln auf, ein Rückschritt im Vergleich zur Resolution. Das braucht man aber nicht. 26 : ¬R(c) [232 , α] ⊥ 537 539 Beispiel Beispiel A E 1. ¬[ w x p(x, w , f (x, w )) → w x y p(x, w , y )] (7) yQ(y ) [32 , β] 2. A E (9) Q(d) [7, δ] 3. ¬ w x y p(x, w , y ) 4. A 5. ¬ x y p(x, v1 , y ) 6. ¬ y p(b(v1 ), v1 , y ) 7. p(v2 , a, f (v2 , a)) 4(v2 ) [γ] 8. ¬p(b(v1 ), v1 , v3 ) 6(v3 ) [γ] (30) : Q(d) ∨ R(d) → S(d) [4, γ] ⊥ YYYYYY YY (31) : ¬(Q(d) ∨ R(d)) [301 , β] (32) : S(d) [302 , β] (33) : ¬Q(d) ⊥ [311 , α] 12 [α] x p(x, a, f (x, a)) 2(a) [δ] 3(v1 ) [γ] E (29) : ¬Q(d) [272 , β] 11 [α] E A XXXXXX e eeeeeee w x p(x, w , f (x, w )) E A E E (27) : ¬(S(d) ∧ Q(d)) [1, γ] (28) : ¬S(d) [271 , β] E A E Ast (**), Fortsetzung: 5(b(v1 )) [δ] 7. und 8. sind (modulo Unifikation) komplementär: . . . v2 = b(v1 ), a = v1 , f (v2 , a) = v3 (34) : ¬R(d) [312 , α] ist lösbar mit mgu σ = [a/v1 , b(a)/v2 , f (b(a), a)/v3 ] und somit ist T σ ein geschlossenes (lineares) Tableau für Formel 1. ⊥ 538 540 Formale Definition des Kalküls Tableaus mit freien Variablen Neue γ-Regel γ γ(y ) A Problem: Es ist sehr schwierig, zu “raten”, welche Instanzen im Beweis nützlich sind. xq(x) | q(y ) universell wobei y eine neue freie Variable ist Idee: Neue Abschlussregel • Substitutionsregel auf Unifikatoren komplementärer Formeln beschränken! L1 • γ-Regel führen nur freien Variablen ein (Tableaus mit freien Variablen) ¬L2 ⊥ Freie Variablen (Dummies, Platzhalten) werden ’bei Bedarf’ (bei Abschluss) instantiiert (wie bei Resolution). Widerspruch p(y ) ¬p(a) ⊥ mgu: [a/y ] wobei L1 , L2 unifizierbare Literale. Wir sprechen von einem AMGU-Tableau, wenn die Substitutionsregel nur für Substitutionen σ angewendet wird, für die es einen Pfad in T mit Literalen ¬A und B gibt, so daß σ = mgu(A, B). Nota bene: Allgemeinster Unifikator von L1 , L2 wird auf das ganze Tableau angewendet. 541 Tableaus mit freien Variablen Konvention Wir nehmen an, dass die Menge der Variablen X in 2 disjunkte unendliche Teilmengen Xf und Xg partitioniert ist, und dass: Neue γ-Regel A γ γ(y ) xq(x) | q(y ) universell • Für gebundene Variablen nur solche aus Xg verwendet werden. (Vermeidet das Einfangproblem bei Substitution.) wobei y eine neue freie Variable ist • Die Variabeln, die durch die neue γ-Regel eingeführt werden immer aus Menge Xf gewählt sind. Neue Abschlussregel L1 ¬L2 ⊥ 543 Widerspruch p(y ) ¬p(a) ⊥ mgu: [a/y ] wobei L1 , L2 unifizierbare Literale. 542 544 Prädikatenlogische Klauseltableaux Korrektheit und Vollständigkeit Klauseltableaux für eine Klauselmenge S Theorem • Abschlussregel wie zuvor Eine Formelmenge M ist unerfüllbar genau dann, wenn es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt. • Keine α, keine δ-Regel • β- und γ-Regel zusammengefasst: – Sei B ein Ast in T – Sei C = {L1 , . . . , Ln } eine Klausel in S – Sei C ′ = C σ = {L′1 , . . . , L′n } aus C durch Variablenumbenennung Dann kann B erweitert werden, indem n Blätter mit L′1 , . . . , L′n angehängt werden. 545 Beispiel Korrektheit Bei gegebener Signatur Σ bezeichnen wir mit Σsko das Ergebnis der Hinzunahme unendlich vieler neuer Skolemfunktionen zu Σ, die wir in der δ-Regel verwenden dürfen. S = {{p(0)}, {¬p(x), p(s(x))}, {¬p(s(s(0)))}} 1 ¬p(x1 ) m p(0) RRRRR mmmm llll p(s(x1 )) 547 Sei A eine Σsko -Interpretation, T ein Tableau, und β eine Variablenbelegung über A. SSS S ⊥ ¬p(x2 ) [0/x1 ] ⊥ ¬p(s(s(0))) [s(0)/x2 ] ⊥ p(s(x2 )) Definition. T heißt (A, β)-erfüllt, wenn es einen Pfad Pβ in T gibt, so dass A, β |= F , für jede Formel F auf Pβ . Definition. T heißt erfüllbar, falls es ein A gibt, so dass für jede Variablenbelegung β das Tableau T (A, β)-erfüllt ist. (D.h. wir dürfen Pβ in Abhängigkeit von β wählen.) [s(0)/x2 ] 546 548 Korrektheit Striktheitbedingung Sei M = {F1 , . . . , Fn } eine Formelmenge (so dass Fi keine freien Variablen enthält). Definition. Ein Tableau ist strikt, falls für jede Formel F die entsprechende Erweiterungsregel höchstens einmal auf jeden Ast, der die Formel enthält, angewandt wurde. Theorem Sei T ein Tableau für {F1 , . . . , Fn }. {F1 , . . . , Fn } erfüllbar genau dann, wenn T erfüllbar. Beweis: “ ⇐ ”: Falls T erfüllbar, so gibt es eine Struktur A, so dass für jede Variablenbelegung β das Tableau T (A, β)-erfüllt ist, d.h. es gibt einen Pfad Pβ in T , so dass A, β |= F , für jede Formel F auf Pβ . Dann ist aber leicht zu sehen, dass A, β |= M (Alle Äste in einem Tableau für M enthalten implizit alle Formeln in M). 549 Striktheitsbedingung für γ unvollständig ¬[ x p(x) → (p(a) ∧ p(b))] A 1. Sei M = {F1 , . . . , Fn } eine Formelmenge (so dass Fi keine freien Variablen enthält). A Korrektheit 551 2. 3. Theorem Sei T ein Tableau für {F1 , . . . , Fn }. {F1 , . . . , Fn } erfüllbar genau dann, wenn T erfüllbar. 11 x p(x) ¬(p(a) ∧ p(b)) 4. 12 p(v1 ) 2(v1 ) XXXX X 5. ¬p(a) 31 6. ¬p(b) 32 Beweis von “ ⇒ ” durch Induktion über die Tiefe von T . Tableau mit Tiefe 1 (mit einem Knoten) erfüllbar wenn {F1 , . . . , Fn } erfüllbar. Würde die Striktheitsbedingung für γ gelten, wäre das Tableau nur noch durch Anwendung der Substitutionsregel weiter expandierbar. Aber es gibt keine Substitution (für v1 ), unter der beide Pfade gleichzeitig abgeschlossen werden können. Induktionsvoraussetzung: Implikation gilt für alle Tableaux mit Tiefe ≤ n. Induktionsschritt: Sei T ein Tableau mit Tiefe n + 1. T entsteht durch eine Erweiterung mit einer α, β, γ oder δ-Regel aus einem Tableau mit Tiefe ≤ n. α/β-Regeln: Beweis wie für Aussagenlogik; γ-Regel: Offensichtlich. Bei δ müssen die Ideen aus dem Beweis der Bewahrung von Erfüllbarkeit bei Skolemisierung verwendet werden. 550 552 Mehrfachanwendung von γ löst das Problem Vollständigkeit A ¬[ x p(x) → (p(a) ∧ p(b))] A 2. 3. ¬(p(a) ∧ p(b)) 12 p(v1 ) 2v1 4. XXXX X ¬p(a) 5. 31 Theorem {F1 , . . . , Fn } erfüllbar genau dann, wenn es kein geschlossenes, striktes (mit Ausnahme von γ) AMGU-Tableau für {F1 , . . . , Fn } gibt. 11 x p(x) 6. ¬p(b) 32 7. p(v2 ) 2v2 Der Punkt ist, dass die verschiedenen Anwendungen von γ auf jeweils neue freie Variablen für x einsetzen dürfen. A 1. Beweis (Idee, Klauseltableaux) Zum Beweis definiert man einen fairen Tableaux-Expansionssprozess, der gegen ein unendliches Tableau konvergiert, wo auf jedem Pfad jede γ-Formel in alle Varianten (modulo Wahl der freien Variablen) expandiert wurde. Man kann dann wieder zeigen, dass alle Pfade bis auf Redundanz unter Resolution saturiert sind. Hierzu verwendet man die Lifting-Argumente für Resolutionsinferenzen, um die AMGU-Einschränkung als vollständig zu beweisen. x p(x) Jetzt liefert zweifache Anwendung der AMGU-Regel die Substitution [a/v1 , b/v2 ] und somit ein geschlossenes Tableau. 553 Wie oft muss γ angewendet werden? 555 Vom Kalkül zur Beweissuchprozedur • Vollständigkeit der Tableauregeln garantiert nur Existenz eines geschlossenen Tableaus. Theorem Es gibt keine berechenbare Funktion f : ForΣ × ForΣ → N, so dass, falls eine Satzform F unerfüllbar, es ein geschlossenes Tableau für F gibt, wobei für Formeln xG , die in T vorkommen, die γ-Regel auf jedem Pfad, auf dem xG vorkommt, höchstens f (F , xG )-mal angewendet worden ist. • Eine systematische Beweissuchprozedur ist notwendig, um einen Beweis zu finden. A A A Tableaukonstruktion ist nicht-deterministisch: Choice points Sonst wäre Unerfüllbarkeit bzw. Gültigkeit in Logik erster Stufe entscheidbar, weil man nur Tableaux in einer Tiefe aufzählen müsste, die durch f beschränkt wird. Daher sind Tableaux mit freien Variablen i.allg. notwendigerweise unbeschränkt in ihrer Tiefe. • Nächster zu betrachtender Ast? • Abschluss- oder Erweiterung? A wirkt wie eine unendliche Konjunktion. Durch iteratives Anwenden von γ, in Verbindung mit der Substitutionsregel, können alle Instanzen F [t/x] aufgezählt und untereinander, also konjunktiv, in jedem Pfad durch xF eingesetzt werden. • Falls Abschluss: Mit welchem Literal-Paar? A • Falls Erweiterung: Mit welcher Formel? 554 556 Vom Kalkül zur Beweissuchprozedur Beispiel Bevorzugung eines Abschlusses Schlechte Wahl kann das Finden eines Beweises verhindern! p(0) Harmlos: Astauswahl A x(p(x) → p(s(x))) Beliebige Strategie (z.B. links nach rechts) führt zum Erfolg ¬p(s(s(0))) Mit Fairnessstrategie handhabbar: Formelauswahl p(X1 ) → p(s(X2 )) Jede Formel auf jedem Ast, γ-Formeln beliebig oft ¬p(X1 ) Kritisch: Abschluss erfordert Backtracking VVVVV VV ii iiii p(X2 ) → p(s(X2 )) ⊥ Alternativ: Keinen Abschluss machen, bis sich alle Äste zugleich schließen lassen p(s(X1 )) (mgu: [0/X1 ]) ¬p(X2 ) hh hhhhh p(s(X2 )) ... ⊥ (mgu: [0/X2 ]) 559 557 Beispiel Beispiel Unfaire Bevorzugung einer Formel Abschluss statt Erweiterung A xp(x) p(a) | A x((p(b) ∧ p(c) → p(x)) → ¬(q(x) → (q(b) ∨ q(c)))) q ∧ ¬q ¬q(d) | p(X1 ) ((p(b) ∧ p(c) → p(X )) → ¬(q(X ) → (q(b) ∨ q(c)))) ZZZZZZZZ dd d ZZ d d d dddd | ¬(p(b) ∧ p(c) → p(X )) p(X2 ) p(b) ∧ p(c) q(X ) ¬p(X ) ¬(q(b) ∨ q(c)) ¬(q(X ) → (q(b) ∨ q(c)))) ... 558 560 Zusammenfassung Anwendungsbereiche Prädikatenlogische Tableaukalküle VERIFIKATION MATHEMATIK • γ- und δ-Regel Aufgaben − Beweisen − Beweisuberprufung • Determinismus der Regeln • Tableaux mit freien Variablen neue γ- und neue Abschlussregel Theorien • Prädikatenlogische Klauseltableaux − Zahlen − Polynomen • Beweissuchprozedur Aufgaben − Programme − Korrektheit − Terminierung − reaktive/hybride Systeme − Sicherheit Theorien − Zahlen − Funktionen auf Zahlenbereichen − Datentypen − Funktionen auf Zahlenbereichen − Algebren DATENBANKEN Aufgaben − Konsistenz − Anfragen beantworten − Kleiner Suchraum Theorien − Logik erster Stufe − Datalog − ... − Komplexe Theorien − Funktionen − Zahlen komplexe Systeme (MAS, mit eingebetteter Software, Datenbanken) 561 563 4. Anwendungen Anwendungsbereiche MATHEMATIK Aufgaben − Beweisen − Beweisuberprufung VERIFIKATION Aufgaben − Programme − Korrektheit − Terminierung − reaktive/hybride Systeme − Sicherheit DATENBANKEN Aufgaben − Konsistenz − Anfragen beantworten − Kleiner Suchraum Theorien − Logik erster Stufe Formale Methoden − Datalog Theorien − ... − Zahlen Verfahren: Probleme → 7 als logische Formeln kodiert − Komplexe Theorien − Funktionen auf − Datentypen Zahlenbereichen − Funktionen - Verifikationsaufgaben: zu Erfüllbarkeit/Gültigkeitstests − Funktionen auf Zahlenbereichen − Zahlen − Algebren Theorien − Zahlen − Polynomen reduziert komplexe Systeme (MAS, mit eingebetteter Software, Datenbanken) 562 564 Beispiel: Sicherheitsprotokole Beispiel: Sicherheitsprotokolle Das folgende Schlüsselaustauschverfahren wurde 1993 von den beiden Kryptographen Neuman und Stubblebine vorgeschlagen: Ziel: zwei Personen (Alice und Bob) wollen miteinander kommunizieren • über ein unsicheres Daten- oder Telefonnetz, • sicher, d. h., ohne dass ein Eindringling (Charlie) mithören oder sich als Alice oder Bob ausgeben kann. Schritt 1: Alice schickt Bob die Nachricht 1: A, Na. Die Nachricht enthäIt den Namen von Alice, A, und eine Zufallszahl Na. Hilfsmittel: Verschlüsselung Die Aufgabe von Na liegt darin, diesen Protokollauf eindeutig zu kennzeichnen, um das wiederholen von • Alice und Bob vereinbaren einen gemeinsamen Schlüssel und nutzen ihn, um ihr Gespräch zu verschlüsseln. Nachrichten durch einen Angreifer sinnlos werden zu lassen. • Nur wer den Schlüssel kennt, kann das Gespräch entschlüsseln. Alice schickt (offen) Identifikation und Zufallszahl an Bob. 567 565 Beispiel: Sicherheitsprotokolle Beispiel: Sicherheitsprotokolle Bob schickt die Nachricht 2 : B, E (Kbt, A, Na, Tb), Nb an Trust. Problem: wie kommen die Gesprächspartner an den gemeinsamen Schlüssel? Nachdem Bob die Nachricht von Alice erhalten hat, weiss er, • Persönliche Übergabe kommt nicht immer in Frage. dass sie einen sicheren Schlüssel mit ihm etablieren will. • Wird der gemeinsame Schlüssel über das Netz unverschlüsselt verschickt, könnte Charlie ihn abfangen oder austauschen. Deshalb schickt Bob die Nachricht 2 an Trust. Schritt 2: Die Nachricht enthält: - seinen Namen, B, - einen verschlüsselten Mittelteil • Annahme: es gibt eine sichere Schlüsselzentrale, mit der Alice und Bob jeweils einen gemeinsamen Schlüssel vereinbart haben. - eine von Bob generierte Zufallszahl, Nb, - Tb: Zeitspanne für die Gültigkeitsdauer des Schlüssels Der Term E (Kbt, A, Na, Tb) steht für die Nachricht A, Na, Tb verschlüsselt mit dem Schlüssel Kbt, dem sicheren Schlüssel zwischen Bob und Trust. Bob leitet Nachricht weiter an Schlüsselzentrale ( Trust“). ” 566 568 Beispiel: Sicherheitsprotokolle Beispiel: Sicherheitsprotokolle Trust schickt die Nachricht 3 Bob liest Nachricht 4, entschlüsselt den ersten Teil und erhält E (Kat, B, Na, Kab, Tb), E (Kbt, A, Kab, Tb), Nb an Alice. Schritt 3: Nachdem Trust Bob’s Nachricht gelesen und entschlüsselt hat, so auch den Schlüssel Kab. Schritt 5: Diesen verwendet er dann zur Entschlüsselung des zweiten generiert er den sicheren Schlüssel Kab für die Kommunikation Teils und vergleicht die enthaltene Zufallszahl Nb mit der, zwischen Alice und Bob. die er ursprünglich in Nachricht 2 an Trust schickte. Er verschickt den Schlüssel mit Nachricht 3 an Alice. Auf diese Weise ist sich Bob sicher, dass die Nachricht Der erste Teil der Nachricht kann von Alice entschlüsselt werden, von Alice stammt und Kab der gewünschte Schlüssel ist. während sie den zweiten Teil später einfach an Bob weiterleitet, siehe Schritt 4. Trust schickt Nachricht an Alice. Darin: ein neuer gemeinsamer Schlüssel, einmal für Alice und einmal für Bob verschlüsselt. Alice und Bob können nun mit dem gemeinsamen Schlüssel kommunizieren. 569 571 Beispiel: Sicherheitsprotokolle Beispiel: Sicherheitsprotokolle Alice schickt die Nachricht 4: A, Na 1. A 2. B B, Nb , EKbt (A, Na , Tb ) T 3. T EKat (B, Na , Kab , Tb ), EKbt (A, Kab , Tb ), Nb A 4. A EKbt (A, Kab , Tb ), EKab (Nb ) B B E (Kbt, A, Kab, Tb), E (Kab, Nb) an Bob. Schritt 4: Alice liest Nachricht 3, entschlüsselt den ersten Teil durch den gemeinsamen Schlüssel Kat mit Trust und erhält so den neuen Schlüssel Kab, um mit Bob zu kommunizieren. Sie leitet den zweiten Teil von Trust’s Nachricht an Bob weiter und fügt die Nachricht E (Kab, Nb) hinzu. Alice leitet den neuen gemeinsamen Schlüssel weiter an Bob. 570 572 Beispiel: Sicherheitsprotokolle Formalisierung der Eigenschaften des Protokolls Ist das Verfahren sicher? 1. A, Na (1) Ak(key (at, t)) (2) M(sent(a, b, pair (a, na))) Formel (1) beschreibt, dass Alice am Anfang den Schlüssel at für die Kommunikation mit Trust besitzt. (Wir lassen “K ” bei der Benamung von Schlüsseln weg.) Formel (2) formalisiert Nachricht 1. Nachrichten werden durch die dreistellige Funktion “sent” ausgedrückt, wobei das erste Argument den Absender bezeichnet, das zweite den Empfänger und das dritte den Inhalt der Nachricht. Die Konstante a bezeichnet Alice, b Bob, t Trust und i Intruder. Wir übersetzen das Problem in Formeln und lassen sie von einem Theorembeweiser untersuchen. Die Funktionen “pair” (triple, quadr) gruppieren Sequenzen von Nachrichten entsprechender Länge. 573 Beispiel: Sicherheitsprotokolle 575 Formalisierung der Eigenschaften des Protokolls Zuerst formalisieren wir die Eigenschaften des Protokolls: 2. B, Nb, E (Kbt, A, Na, Tb) • Wenn Alice/Bob/Trust eine Nachricht in einem bestimmten Format bekommt, dann schickt er/sie eine andere Nachricht ab. (3) Bk(key (bt, t)) A (4) xa, xna[M(sent(xa, b, pair (xa, xna))) → M(sent(b, t, triple(b, nb(xna), encr (triple(xa, xna, tb(xna)), bt)))))] Formel (3): Bob besitzt den Schlüssel bt zur Kommunikation mit Trust. Dann formalisieren wir die Eigenschaften des Angreifers: Formel (4): Wann immer er eine Nachricht in der Form von Nachricht 1 erhält (Formel 2), schickt er die Anfrage nach einem Schlüssel an Trust wie in Nachricht 2 festgelegt. • Wenn eine Nachricht übermittelt wird, kann Charlie sie mithören. • Wenn Charlie eine verschlüsselte Nachricht bekommt und den passenden Schlüssel hat, kann er sie entschlüsseln. Die Verschlüsselung wird mit Hilfe der zweistelligen Funktion “encr” beschrieben. Das erste Argument der Funktion ist die zu verrschlüsselnde Nachricht und das zweite Argument der benutzte Schlüssel. • Wenn Charlie eine Nachricht hat, dann kann er sie an Alice/Bob/Trust abschicken. Alle Symbole die mit einem kleinen x anfangen, bezeichnen Variablen. Die Funktionen nb und tb generieren Bob’s Zufallszahl und Ablaufdatum aus xna, xa’s (Alice’s ) Zufallszahl. ... 574 576 Formalisierung der Eigenschaften des Protokolls Formalisierung des Angreifers Der Angreifer wird als unermüdlicher Hacker implementiert, der keine Möglichkeit unversucht lässt, das Protokoll anzugreifen. 3. E (Kat, B, Na, Kab, Tb), E (Kbt, A, Kab, Tb), Nb (5) Tk(key (at, a))) ∧ Tk(key (bt, b)) Er hört alle Nachrichten ab und zerlegt sie in ihre Bestandteile, solange er dazu nicht einen Schlüssel braucht, den er nicht hat. A (6) xb, xnb, xa, xna, xbet, xbt, xat, xk [(M(sent(xb, t, triple(xb, xnb, encr (triple(xa, xna, xbet), xbt)))) ∧ Tk(key (xbt, xb)) ∧ Tk(key (xat, xa))) → M(sent(t, xa, triple(encr (quadr (xb, xna, kt(xna), xbet), xat), encr (triple(xa, kt(xna), xbet), xbt), xnb)))] Die Bestandteile werden dann auf jeder Art und Weise zu neuen Nachrichten beliebiger Länge komponiert. Jeder Bestandteil wird als Schlüssel in Betracht gezogen und sowohl zum verschlüsseln als auch zum entschlüsseln verwendet. (5) Trust besitzt die Schlüssel für Alice und Bob und ... Alle so generierten Nachrichten werden verschickt. (6) ... antwortet entsprechend des Protokolls auf Nachricht 2. Die Menge aller Nachrichten(teile), die der Intruder so erhält, wird durch das Prädikat “Im” ausgedrückt. Entschlüsselung wird hierbei durch Unifikation mit einer entsprechenden Termstruktur realisiert, wobei zusätzlich überprüft wird, dass Trust die benötigten Schlüssel auch besitzt. Trust generiert den neuen Schlüssel durch die Funktion kt aus der Zufallszahl xna. 577 579 Formalisierung der Eigenschaften des Protokolls Der Angreifer • Die Teilnehmer (Participants) sind Alice, Bob, Trust und Intruder: 4. E (Kbt, A, Kab, Tb), E (Kab, Nb) xnb, xbet, xk, xm, xb, xna [M(sent(t, a, triple(encr (quadr (xb, xna, xk, xbet), at), xm, xnb)) → (M(sent(a, xb, pair (xm, encr (xnb, xk)))) ∧ Ak(key (xk, xb)))] • Intruder hört alle Nachrichten ab. (10) u, v [Im(pair (u, v )) → (Im(u) ∧ Im(v ))] (12) (13) (14) A 578 (11) A Formel (8) beschreibt Bob’s Verhalten nachdem er Alices Nachricht erhalten hat. Bob entschlüsselt die Nachricht und extrahiert den neuen Schlüssel. • Er dekomponiert und entschlüsselt alle Nachrichten, soweit er dafür den Schlüssel besitzt. A Formel (7): Alice antwortet in korrekter Weise auf Nachricht 3 und merkt sich den neuen Schlüssel. xa, xb, xm[M(sent(xa, xb, xm)) → Im(xm)] A A xbet, xk, xnb, xa, xna [M(sent(xa, b, pair (encr (triple(xa, xk, tb(xna)), bt), encr (nb(xna), xk))) → Bk(key (xk, xa))] A (8) (9) P(a) ∧ P(b) ∧ P(t) ∧ P(i) A (7) u, v , w [Im(triple(u, v , w )) → (Im(u) ∧ Im(v ) ∧ Im(w ))] u, v , w , z[Im(quadr (u, v , w , z)) → (Im(u) ∧ Im(v ) ∧ Im(w ) ∧ Im(z))] u, v , w [(Im(encr (u, v )) ∧ Ik(key (v , w )) → Im(u)] 580 Der Angreifer Automatische Analyse Die Formalisierung des Protokolls, Formeln (1)-(8) zusammen mit den Angreiferformeln (9)-(20) und der Erfolgsbedingung für den Angreifer kann man nun in einen Theorembeweiser eingeben. • Alle Nachrichten(teile) werden auf alle möglichen Arten neu komponiert. (15) A (16) A (17) A u, v [(Im(u) ∧ Im(v ) → Im(pair (u, v ))] u, v , w [(Im(u) ∧ Im(v ) ∧ Im(w )) → Im(triple(u, v , w )) u, v , w , z[(Im(u) ∧ Im(v ) ∧ Im(w ) ∧ Im(z)) → Im(quadr (u, v , w , z)) Dieser antwortet “erfüllbar”. Das beweist dann automatisch, dass der Angreifer das Protokoll brechen kann und der kritische Schlüssel die Zufallszahl Na ist. • Jeder Nachrichtenteil wird auch als Schlüssel aufgefasst und zur Verschlüsselung benutzt. (18) A (19) A u, v , w [(Im(v ), P(w ) → Ik(key (v , w ))] u, v , w [(Im(v ), P(w ), Ik(key (v , w ))) → Im(encr (u, v ))] • Der Angreifer schickt alles was er hat an jeden. A (20) x, y , u[(P(x) ∧ P(y ) ∧ Im(u)) → M(sent(x, y , u))] 581 Formalisierung 583 Beispiel: Sicherheitsprotokolle Zum Schluss müssen wir noch formalisieren was es bedeutet, dass der Angreifer Erfolg hat. Was kann passieren? Dies ist dann der Fall, wenn er einen Schlüssel zur Kommunikation mit Bob hat, von dem Bob glaubt, es sei ein Schlüssel für Alice. E x[Ik(key (x, b)) ∧ Bk(key (x, a))] Charlie fängt die letzte Nachricht von Alice ab. 582 584 Beispiel: Sicherheitsprotokolle Beispiel: Sicherheitsprotokolle Intruder schickt die Nachricht 5: Was kann passieren? E (Kbt, A, Na, Tb), E (Na, Nb) an Bob. Was kann passieren? Das Problem des Protokolls liegt darin, dass die Nachricht E (Kbt, A, Kab, Tb) in Nachricht 4 und die Nachricht E (Kbt, A, Na, Tb) in Nachricht 2 fast identisch sind. Die beiden Nachrichten unterscheiden sich nur an der 2. Position. (Nachricht 4 enthält dort den Schlüssel Kab, Nachricht 2 die Zufallszahl Na.) Da der Intruder alle Nachrichten lesen und auch selbst Nachrichten schicken kann, fängt er also Nachricht 4 ab, wiederholt den obigen Teil aus Nachricht 2 und fügt E (Na, Nb) hinzu. Die beiden Zufallszahlen wurden bereits unverschlüsselt verschickt. Bob startet Kommunikation mit Alice . . . Charlie schickt eine veränderte Nachricht an Bob. 585 Beispiel: Sicherheitsprotokolle 587 Beispiel: Sicherheitsprotokolle Was kann passieren? Was kann passieren? Bob entschlüsselt die Nachricht und denkt, sie komme von Alice, und dass Na der sichere Schlüssel zur Kommunikation mit Alice ist. . . . aber spricht in Wirklichkeit mit Charlie. 586 588 Beispiel: Sicherheitsprotokolle Andere Anwendungsbereiche Der Fehler ist tatsächlich leicht zu beheben. VERIFIKATION Theorien Dieser Angriff lässt sich reparieren, in dem man die Elemente des Protokolls typisiert, so dass Zufallszahlen und Schlüssel nicht mehr austauschbar sind. − Zahlen − Polynomen Theorien − Zahlen − Funktionen auf Zahlenbereichen Dies lässt sich dann auch wieder formalisieren; der Theoremenbeweise antwortet jetzt “unerfüllbar”. Aufgaben − Programme − Korrektheit − Terminierung − reaktive/hybride Systeme − Sicherheit − Algebren − Datentypen − Funktionen auf Zahlenbereichen Beispiel: Geometrie a d (A1) (A2) A A A A Aufgaben − Beweisen − Beweisuberprufung Mit ein wenig Erfahrung erkennt man aus der Ausgabe des Theorembeweisers, wie es geht. A A A A MATHEMATIK b c x y u v (T (x, y , u, v )→P(x, y , u, v ) x y u v (P(x, y , u, v )→E (x, y , v , u, v , y ) (A3) T (a, b, c, d) A1 ∧ A2 ∧ A3 → E (a, b, d, c, d, b) 589 591 Beispiel: Sicherheitsprotokolle Andere Anwendungsbereiche Literatur MATHEMATIK [1] Neuman, B. C. and Stubblebine, S. G., 1993, A note on the use of timestamps as nonces, ACM SIGOPS, Operating Systems Review, 27(2), 10-14. Aufgaben − Beweisen − Beweisuberprufung Theorien [2] Weidenbach, C., 1999, Towards an automatic analysis of security protocols in first-order logic, in H. Ganzinger, ed., 16th International Conference on Automated Deduction, CADE-16, Vol. 1632 of LNAI, Springer, pp. 378-382. − Zahlen − Polynomen − Funktionen auf Zahlenbereichen − Algebren 590 VERIFIKATION Aufgaben − Programme − Korrektheit − Terminierung − reaktive/hybride Systeme − Sicherheit Theorien − Zahlen − Datentypen − Funktionen auf Zahlenbereichen Beispiel: Programmverifikation int [] BubbleSort(int[] a) { int i, j, t; for (i := |a| − 1; i > 0; i := i − 1) { for (j := 0; j < i; j := j + 1) { if (a[j] > a[j + 1]){t := a[j]; a[j] := a[j + 1]; a[j + 1] := t}; }} return a} 592 Andere Anwendungsbereiche Beispiel: ETCS Fallstudie AVACS: ETCS Fallstudie [Jacobs,VS’06,’07; Faber,Jacobs,VS’07] Controllers MATHEMATIK Aufgaben − Beweisen − Beweisuberprufung Theorien RBC VERIFIKATION Aufgaben − Programme − Korrektheit − Terminierung − reaktive/hybride Systeme − Sicherheit braking + reaction distance Überprüfe: − Zahlen − Polynomen Theorien − Zahlen − Funktionen auf Zahlenbereichen − Algebren • Kein “overflow” • Substanzen in der richtigen Proportion • ... andernfalls: − Datentypen − Funktionen auf Zahlenbereichen Tank kann in ≤ 200s geleert werden. Anzahl der Züge: n>0 Z Minimaler sicherer Abstand: lalarm > 0 R Minimale / maximale Geschwindigkeit : 0 ≤ min < max R Zeit zwischen Updates: ∆t > 0 R ′ Zugpositionierung vor/nach Update: pos, pos :Z→R 593 Weitere Anwendungebereiche 595 Beispiel: ETCS Fallstudie AVACS: ETCS Fallstudie [Jacobs,VS’06,’07; Faber,Jacobs,VS’07] Controllers − Zahlen − Polynomen − Funktionen auf Zahlenbereichen − Algebren braking + reaction distance Zugkontrollsysteme Update(pos, pos′ ) : RBC Theorien − Zahlen − Datentypen − Funktionen auf Zahlenbereichen • • braking + reaction distance ... • Task: Keine Kollision i (i = 0 → pos(i) + ∆t∗min ≤ pos ′ (i) ≤ pos(i) + ∆t∗max) i (0 < i < n ∧ pos(i − 1) > 0 ∧ pos(i − 1) − pos(i) ≥ lalarm → pos(i) + ∆t ∗ min ≤ pos ′ (i) ≤ pos(i) + ∆t∗max) Induktive Invariante: Keine Kollision Sicher(pos)∧Update(pos, pos′ )∧¬Sicher(pos′ ) |=⊥ 594 Sicher(pos) : A Theorien Aufgaben − Programme − Korrektheit − Terminierung − reaktive/hybride Systeme − Sicherheit A Aufgaben − Beweisen − Beweisuberprufung RBC VERIFIKATION A MATHEMATIK i, j(i<j→pos(i)>pos(j)) 596 Weitere Logiken Weitere Logiken • Alternativen zur klassischen Logik • Alternativen: z.B. Mehrwertige Logiken. • Erweiterungen der klassischen Logik Wahrheitswerten: Menge W mit 0, 1 ∈ W z.B: W = {0, 1, unbekannt} W = {0, n1 , n2 , . . . , n−1 , 1} n oder W = [0, 1]. In neuerer Zeit haben mehrwertige Logiken im Bereich der Informatik hohe praktische Bedeutung gewonnen. Sie ermöglichen den Umgang mit der Tatsache, dass Datenbanken nicht nur eindeutig bestimmte, sondern auch unbestimmte, fehlende oder sogar widersprüchliche Informationen enthalten können. 597 599 Weitere Logiken Weitere Logiken • Alternativen: z.B. Mehrwertige Logiken • Erweiterungen: Ausgangspunkt für die Entwicklung mehrwertiger Logiken war die Frage, ob Annahme, das es nur zwei Wahrheitswerte 0 (falsch) und 1 (wahr) geben kann nicht zu Einschränkungen führen kann. In einer nichtklassischen Erweiterung der klassischen Logik werden zusätzliche logische Operatoren hinzugefügt. Für Aussagen über die Zukunft stellte bereits Aristoteles diese Frage, indem er argumentierte, dass die Wahrheit einer Aussage wie “Morgen wird eine Seeschlacht stattfinden” erst am Abend des morgigen Tages feststehen wird und dass sie bis zu diesem Zeitpunkt noch als unbestimmt betrachtet werden muss. • Modale Logiken: Zusätzliche logische Operatoren: “2”: steht für “Es ist notwendig, dass...”. “3”: steht für “Es ist möglich, dass...”. • Dynamische Logik: Zusätzliche logische Operatoren: [α], <α>, α Programm. [α]F : F gilt nach jeder Ausführung von α <α>: es gibt eine Ausführung von α nach der F gilt 598 600 Weitere Logiken Logik höherer Stufe • Erweiterungen: Logik höherer Stufe erweitert die Prädikatenlogik erster Stufe um die Möglichkeit, über alle Relationen/Funktionen zu quantifizieren. In einer nichtklassischen Erweiterung werden zusätzliche logische Operatoren hinzugefügt. • Temporale Logiken: Erweiterungen der Logik, durch die zeitliche Abläufe erfasst werden können. Die Aussagenlogik kann Aussagen, deren Wahrheitswerte sich mit der Zeit ändern, nicht oder nur mit Mühe adäquat behandeln. So ist “Es regnet” nur wahr, wenn es am Ort und zur Zeit der Äusserung gerade regnet, sonst nicht. Klassische Logiken zählen daher den Äußerungszeitpunkt zu den Wahrheitsbedingungen. 601 Weitere Logiken 603 Acknowledgements • Erweiterungen: Für die Vorbereitung der Vorlesungsmaterialien habe ich Material zu den Vorlesungen von: In einer nichtklassischen Erweiterung werden zusätzliche logische Operatoren hinzugefügt. • Bernhard Beckert (Logik für Informatiker“, gehalten an der Universität Koblenz-Landau) • Temporale Logiken: Erweiterungen der Logik, durch die zeitliche Abläufe erfasst werden können. • Harald Ganzinger, Uwe Waldmann, Viorica Sofronie-Stokkermans (Äutomated Reasoning“, gehalten an der Universität des Saarlandes) • Ulrich Furbach (Logik für Informatiker“, gehalten an der Universität KoblenzLandau) benutzt. Zeitlogiken führen Operatoren ein, so dass jeder Fall der Äusserung des Satzes unter denselben Wahrheitsbedingungen steht. Material aus anderen Vorlesungen: Diese Operatoren lassen es zu, differenziertere zeitliche Aussagen logisch zu analysieren, so dass der Wahrheitswert von “Es hat geregnet”, “Es wird regnen”, “Es regnet immer” von der Erfüllung von “Es regnet” zu bestimmten Zeitpunkten abhängig ist. • Ulrich Furbach: Logic for Computer Scientists. Vorlesungsskriptum und Wikibook • Harald Ganzinger, Viorica Sofronie-Stokkermans, Uwe Waldmann: Folien Äutomated ReasoningSSS 2004. Online: http://www.mpi-inf.mpg.de/ uwe/lehre/autreas/readings.html. Temporale Logik wird in der Informatik für die Programm Spezifikation und Verifikation benutzt. • Gert Smolka: Einführung in die Computationale Logik; SS 2003. Online at http://www.ps.uni-sb.de/courses/cl-ss03/skript/. 602 604 Literatur Aussagenlogik, Prädikatenlogik: • Melvin Fitting: First-Order Logic and Automated Theorem Proving. SpringerVerlag, New York, 1996. • Uwe Schöning Logik für Informatiker. Spektrum Akademischer Verlag, 2000 • Huth and Ryan: Logic in Computer Science. modelling and reasoning about systems. Cambridge University Press, 2004. • Armin Biere, Marijn Heule, Hans van Maaren, Toby Walsh (Editors) Handbook of Satisfiability IOS Press, 2009 605