Logik für Informatiker Viorica Sofronie-Stokkermans e-mail: [email protected] 1 Logik in der Informatik Was ist Logik? • Mathematisch? ja • Unverständlich? hoffentlich nein • Reine Theorie ohne praktischen Nutzen? nein: Verifikation von Hardware, Software, Protokollen Sprachverarbeitung und Wissensrepräsentation Abfragensprachen für Datenbanken; ... 2 Formale Logik Ziel • Formalisierung und Automatisierung rationalen Denkens • Rational richtige Ableitung von neuem Wissen aus gegebenem Rolle der Logik in der Informatik • Anwendung innerhalb der Informatik Spezifikation, Programmentwicklung, Programmverifikation • Werkzeug für Anwendungen außerhalb der Informatik Künstliche Intelligenz, Wissensrepräsentation 3 Modellierung Abstraktion 4 Modellierung Adäquatheit des Modells Wenn formulierbare Aussage wahr im Modell, dann entsprechende Aussage wahr in Wirklichkeit 5 Beispiel: Aufzug oben oben Aufzug oben Mitte gedruckt F.nach unten mitte mitte unten unten 6 Beispiel: Aufzug oben oben mitte mitte Aufzug mitte Oben gedruckt F.nach oben unten unten 7 Modellierung: Strukturen oben Aufzug oben Mitte gedruckt oben F.nach unten mitte mitte oben Aufzug mitte Unten gedruckt Aufzug oben Mitte gedruckt F.nach unten mitte F.nach unten unten v(AufzugOben) = wahr unten v(AufzugMitte) = wahr unten 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 8 Modellierung: Strukturen oben Aufzug oben Mitte gedruckt oben F.nach unten mitte mitte oben Aufzug mitte Unten gedruckt mitte Aufzug oben Mitte gedruckt F.nach unten Aufzug mitte F.nach unten unten v(AufzugOben) = wahr unten v(AufzugMitte) = wahr unten 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 Modellierung: Strukturen oben Aufzug oben Mitte gedruckt oben F.nach unten mitte mitte oben Aufzug mitte Unten gedruckt mitte Aufzug oben Mitte gedruckt F.nach unten Aufzug mitte F.nach unten unten unten unten Aussagen beziehen sich auf Strukturen (Formale) Aussagen sind in jeder einzelnen Struktur zu wahr oder falsch auswertbar 10 Formale Logik • Syntax welche Formeln? • Semantik Modelle (Strukturen) Wann ist eine Formel wahr (in einer Struktur)? • Deduktionsmechanismus Ableitung neuer wahrer Formeln 11 Aussagenlogik: Syntax Die Welt besteht aus Fakten Bausteine: Atomare Aussagen Beispiele: Aufzug ist oben: AufzugOben Mittlerer Knopf gedrückt: MitteGedrückt Verknüpft mit logischen Operatoren und oder impliziert nicht ∧ ∨ → ¬ 12 Aussagenlogik: Syntax Komplexe Aussagen: Beispiele: Wenn mittlerer Knopf gedrückt, dann Aufzug nicht in der Mitte MitteGedrückt → ¬AufzugMitte Der Aufzug ist oben und der Aufzug ist nicht unten AufzugOben ∧ ¬AufzugUnten 13 Aussagenlogik: Semantik Der Aufzug ist oben und der Aufzug ist nicht unten AufzugOben ∧ ¬AufzugUnten wahr in: oben Aufzug oben Mitte gedruckt F.nach unten mitte unten 14 Aussagenlogik: Semantik Der Aufzug ist oben und der Aufzug ist nicht unten AufzugOben ∧ ¬AufzugUnten falsch in: oben mitte Aufzug mitte Unten gedruckt F.nach unten unten 15 Aussagenlogik: Deduktionsmechanismus • Deduktionsmechanismus Ableitung neuer wahrer Formeln Syllogismen: P→Q P Q Beispiel: AufzugUnten → ¬AufzugOben AufzugUnten ¬AufzugOben 16 Aussagenlogik: Deduktionsmechanismus Deduktionsmechanismus im allgemeinen Kalkül In dieser Vorlesung: • Wahrheitstafeln • Logische Umformung • Resolutionskalkül • Tableaukalkül • DPLL 17 Prädikatenlogik Aussagenlogik: Die Welt besteht aus Fakten ... 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. 18 Prädikatenlogik Reichere Struktur • 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, .. =, ≥, ... • Funktionen +, Mitte von, Vater von, Anfang von, ... 19 Beispiel: Tante Agatha Eine kleine Logelei: 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. Wer hat Tante Agatha ermordet? 20 Beispiel: Tante Agatha 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)) 21 Beispiel: Tante Agatha Ein Mörder hasst immer sein Opfer und ist niemals reicher als sein Opfer. A A ◮ 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. A ◮ ¬ hasst(a, x) ↔ x = b) x (¬ 22 Beispiel: Tante Agatha Der Butler hasst jeden, der nicht reicher ist als Tante Agatha. A ◮ ¬ reicher(x, a) → hasst(b, x)) x (¬ Der Butler hasst jeden, den Tante Agatha gehasst hat. A ◮ x (hasst(a, x) → hasst(b, x)) Niemand hasst jeden. E A ◮ x ¬ hasst(x, y )) y (¬ Agatha war nicht der Butler. ◮ ¬a=b 23 Prädikatenlogik: Deduktionsmechanismus • Deduktionsmechanismus Ableitung neuer wahrer Formeln Syllogismen: A A x(P(x) → Q(x)) x(Q(x) → R(x)) A x(P(x) → R(x)) 24 Beispiel: Tante Agatha Nun können wir aus den Formeln neue Formeln ableiten. Beispielweise so: 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 25 Beispiel: Tante Agatha Nun können wir aus den Formeln neue Formeln ableiten. Beispielweise so: 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 Beispiel: Tante Agatha Damit wissen wir schon, dass Charles nicht der Mörder ist. Die weitere Berechnung ist aber mühsam. Glücklicherweise können wir die Arbeit einem automatischen Theorembeweiser überlassen. 27 Prädikatenlogik: Deduktionsmechanismus In dieser Vorlesung: • Resolutionskalkül • Tableaukalkül 28 Das ganze Bild Probleme (Beschreibung in natürlicher Sprache) Formalisierung Logische Sprache: Syntax Aussagenlogik / Prädikatenlogik Formel Modelle: Semantik Kalkül Logik Vollständigkeit Gültige Formel Beweisbare Formel Korrektheit 29 Das ganze Bild Probleme (Beschreibung in natürlicher Sprache) Formalisierung Modellierung Logische Sprache: Syntax Aussagenlogik / Prädikatenlogik Formel Modelle: Semantik Kalkül Logik Vollständigkeit Gültige Formel Beweisbare Formel Korrektheit 30 Das ganze Bild Probleme (Beschreibung in natürlicher Sprache) Formalisierung Logische Sprache: Syntax Aussagenlogik / (automatische) Prädikatenlogik Deduktion Formel Modelle: Semantik Kalkül Logik Vollständigkeit Gültige Formel Beweisbare Formel Korrektheit 31 Inhalt der Vorlesung • 1. Einführung: Motivation, Beweisstrategien (insb. Induktion) • 2. Aussagenlogik – Syntax und Semantik – Deduktionsmechanismen: - Resolution, Vollständigkeits- und Korrektheitsbeweise - Analytische Tableaux; DPLL • 3. Prädikatenlogik – Syntax und Semantik – Deduktionsmechanismen: - Resolution, Vollständigkeits- und Korrektheitsbeweise - Analytische Tableaux • 4. Weitere Aussichten - Nichtklassische Logiken; Logiken höherer Stufe - Anwendungen: z.B. Datenbanken oder Verifikation 32 Einführung: Zusammenfassung • Ziel und Rolle der Formalen Logik in der Informatik • Modellierung, Adäquatheit der Modellierung • Wesentliche Komponenten für jede Logik: Syntax, Semantik, Deduktionsmechanismus (Kalkül) • Beispiel Aussagenlogik: Syntax, Semantik, Syllogismen • Beispiel Prädikatenlogik: Syntax, Semantik, Syllogismen • The Whole Picture: – 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 34 Mathematisches Beweisen Mathematische Aussagen - haben oft die Form: Wenn A, dann B. - als Formel: A → B Mathematischer Beweis - bzgl. eines vorgegebenen Axiomensystems - mit Hilfe von Inferenzregeln 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. 36 Grundlegende Beweisstrategien 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: 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 Grundlegende Beweisstrategien 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: Ist die Wurzel aus einer geraden natürlichen Zahl n eine natürliche Zahl, so ist diese gerade. √ 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. 38 Grundlegende Beweisstrategien Mathematische Aussagen, die nicht die Form A → B haben - Ä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.) 39 Grundlegende Beweisstrategien - Beweis durch Fallunterscheidung Um B zu beweisen, beweise dass A1 → B, . . . , An → B, wobei A1 ∨ · · · ∨ An ≡ wahr 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: 1. 2. 3. 4. 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. 40 Grundlegende Beweisstrategien - Beweis durch Fallunterscheidung Um B zu beweisen, beweise dass A1 → B, . . . , An → B, wobei A1 ∨ · · · ∨ An ≡ wahr Es sei angemerkt, dass die Fallunterscheidung zwar vollständig sein muss, aber die untersuchten Fälle sich nicht gegenseitig ausschließen müssen. 41 Grundlegende Beweisstrategien Aussagen mit Quantoren 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 Grundlegende Beweisstrategien Aussagen mit Quantoren 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 E A x y A(x, y ) 43 Grundlegende Beweisstrategien Beweise mittels Vollständiger Induktion 44 Induktion Wesentliches Beweisprinzip in Mathematik und Logik Einfache Version Induktion über die natürlichen Zahlen N (natural induction) Generalization Noethersche Induktion (noetherian induction/ induction over well-founded partially ordered sets) 45 Emmy Noether Geboren 1882 in Erlangen Gestorben 1934 in Princeton (USA) Mitbegründerin der modernen Algebra Allgemein heißt eine geordnete algebraische Struktur noethersch, wenn es in ihr keine unendlich absteigenden Ketten gibt. 46 Induktion über die natürlichen Zahlen Idee: Definition der natürlichen Zahlen (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. 47 Induktion über die natürlichen Zahlen (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. A X Menge: Falls 0 ∈ X , und A n ∈N:n ∈X →n+1∈X A so 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). A A 48 Induktion über die natürlichen Zahlen (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. A X Menge: Falls 0 ∈ X , und A n ∈N:n ∈X →n+1∈X A so 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). Induktionsbasis Induktionsschritt A A 49 Induktion über die natürlichen Zahlen Struktur eines Induktionsbeweises (1) Induktionsbasis: Beweise p(0) (2) Induktionsschritt: Beweise p(n) → p(n + 1) für ein beliebiges n ∈ N 50 Induktion über die natürlichen Zahlen Struktur eines Induktionsbeweises (1) Induktionsbasis: Beweise p(0) (2) Induktionsvoraussetzung: Für ein beliebig gewähltes n ∈ N gilt p(n) (3) Induktionsschluss: Folgere p(n + 1) aus der Induktionsvoraussetzung p(n) 51 Beispiel Behauptung: Die Summe der ersten n ungeraden Zahlen ist n2 . n−1 X (2i + 1) = n2 . Für alle n ∈ N, i=0 52 Beispiel Behauptung: Die Summe der ersten n ungeraden Zahlen ist n2 . n−1 X n−1 X (2i + 1) = n2 . Für alle n ∈ N, 2 (2i + 1) = n p(n) : i=0 i=0 (1) Induktionsbasis: Beweise p(0) n = 0: 0 = 02 53 Beispiel Behauptung: Die Summe der ersten n ungeraden Zahlen ist n2 . n−1 X n−1 X (2i + 1) = n2 . Für alle n ∈ N, 2 (2i + 1) = n p(n) : i=0 i=0 (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): i=0 54 Beispiel Behauptung: Die Summe der ersten n ungeraden Zahlen ist n2 . n−1 X n−1 X (2i + 1) = n2 . Für alle n ∈ N, (2i + 1) = n2 p(n) : i=0 i=0 (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): i=0 (3) Induktionsschluss: Folgere p(n + 1) aus p(n) n X (2i + 1) = (n + 1)2 . p(n + 1) : i=0 Beweis: n X i=0 n−1 X p(n) 2 2 (2i + 1)) + (2n + 1) = n + (2n + 1) = (n + 1) . (2i + 1) = ( i=0 55 Verallgemeinerte vollständige Induktion Verallgemeinerte vollständige Induktion Gelten die beiden Aussagen: p(0) und n ∈ N : p(0) ∧ p(1) ∧ · · · ∧ p(n) → p(n + 1) A A dann gilt die Aussage n ∈ N : p(n). 56 Wohlfundierte (Noethersche) Induktion Verallgemeinerte vollständige Induktion Gelten die beiden Aussagen: p(0) und n ∈ N : p(0) ∧ p(1) ∧ · · · ∧ p(n) → p(n + 1) A A dann gilt die Aussage n ∈ N : p(n). Äquivalent Gelten die beiden Aussagen: 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 Wohlfundierte (Noethersche) Induktion Verallgemeinerte vollständige Induktion Gelten die beiden Aussagen: p(0) und n ∈ N : p(0) ∧ p(1) ∧ · · · ∧ p(n) → p(n + 1) A A dann gilt die Aussage n ∈ N : p(n). Äquivalent Gilt die Aussage: A A n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) A dann gilt die Aussage n ∈ N : p(n). 58 Beispiel • Verallgemeinerte vollständige Induktion Gilt die Aussage: A A n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) A dann gilt die Aussage n ∈ N : p(n). Induktionsvoraussetzung: Für ein beliebig gewähltes n ∈ N, gilt p(k) für alle k < n Induktionsschluss: Folgere p(n) aus der Induktionsvoraussetzung 59 Beispiel Satz: Jede natürliche Zahl lässt sich als Produkt von Primzahlen darstellen. p(n): n lässt sich als Produkt von Primzahlen darstellen. Beweis: Sei n ∈ N beliebig gewählt. Induktionsvoraussetzung: p(k) gilt für alle k < n Induktionsschluss: Folgere p(n) aus der Induktionsvoraussetzung Fallunterscheidung: Fall 1: n Primzahl. Dann lässt sich n als Produkt von Primzahlen darstellen. Fall 1: n keine Primzahl. Dann n = k1 · k2 , mit k1 , k2 ∈ N, k1 , k2 > 1. Da aber ki < n, i = 1, 2 ist nach Induktionsvoraussetzung bereits eine Darstellung als Produkt von Primzahlen für ki bekannt. Multipliziert man diese beiden Produkte miteinander, so erhält man eine Darstellung für n. 60 Wohlfundierte (Noethersche) Induktion A Theorem: Falls A n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) A n ∈ N : p(n) dann gilt 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 > . . . . 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 61 E Wohlfundierte (Noethersche) Induktion A Theorem: Falls A n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) A n ∈ N : p(n) dann gilt 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 > . . . . 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 E Wohlfundierte (Noethersche) Induktion A n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) A dann gilt A Theorem: Falls n ∈ N : p(n) P Q Verallgemeinerung - beliebige Menge A statt N - < “partielle” Ordnung auf A - < wohlfundiert (es gibt keine unendliche Folge x1 , . . . , xn , . . . mit x1 > x2 > · · · > x n > . . . ) 63 Binäre Relationen Definition: Eine binäre Relation R über einer Menge A ist eine Teilmenge von A × A. R binäre Relation: R ⊆ A × A. Statt (x, y ) ∈ R schreiben wir: R(x, y ) oder xRy . 64 Partielle Ordnungen Definition: 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 A x ∈ A(xRx) x, y , z ∈ A(xRy ∧ yRz → xRz) x, y ∈ A(xRy ∧ yRx → x = y ) 65 Partielle Ordnungen Definition: 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 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 Partielle Ordnungen Definition: 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 A 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. 67 Totale Ordnungen 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. 68 Minimum Definition: Sei (A, R) 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. 69 Minimum Definition: Sei (A, R) 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. Beispiele: • (N, ≤). Sei A′ = {3, 5, 7, 9} ⊆ N. 3 ist ein Minimales Element von A′ . • 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)} Sei A′ = {a, b, c} ⊆ A. A′ hat zwei minimale Elemente: a und c. 70 Wohlfundierte partielle Ordnungen Sei (A, ≤) eine partiell geordnete Menge. Definition: x < y gdw.: (x ≤ y und x 6= y ) (für x, y ∈ A) 71 Wohlfundierte partielle Ordnungen Sei (A, ≤) eine partiell geordnete Menge. 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.: Es gibt keine unendlich absteigende Kette in A, das heißt: 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. (Unendlich aufsteigende Ketten sind zulässig) 72 Beispiele (N, ≤) is wohlfundiert (Z, ≤) ist nicht wohlfundiert (0 ∪ { n1 | n ∈ N}, ≤) ist nicht wohlfundiert (R, ≤) ist nicht wohlfundiert 73 Wohlfundierte partielle Ordnungen 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. 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. 74 Wohlfundierte partielle Ordnungen Lemma. (A, ≤) ist noethersch (wohlfundiert) gdw.: jede nicht-leere Teilmenge von A hat (mindestens) ein Minimales Element. 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. 75 Wohlfundierte partielle Ordnungen Lemma. (A, ≤) ist noethersch (wohlfundiert) gdw.: jede nicht-leere Teilmenge von A hat (mindestens) ein Minimales Element. Nota bene Es genügt nicht, dass A ein minimales Element hat (selbst dann nicht, wenn ≤ total ist). Beispiel: (0 ∪ { 1 | n ∈ N}, ≤) n 76 Verallgemeinerte vollständige Induktion A n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) A dann gilt A Theorem: Falls n ∈ N : p(n) P Q Beweis: < wohlfundiert (es gibt keine unendliche Folge x1 , . . . , xn , . . . mit x1 > x2 > · · · > x n > . . . ) Verallgemeinerung - beliebige Menge A statt N - < “partielle” Ordnung auf A - < wohlfundiert 77 Wohlfundierte (Noethersche) Induktion Theorem: (Verallgemeinerte vollständige Induktion) A dann gilt A Falls A n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) n ∈ N : p(n) P Q 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. (Noethersche Induktion) A dann gilt A Falls A x ∈ A : ( y ∈ A : (y < x → p(y )) → p(x)) x ∈ A : p(x) P Q 78 Verallgemeinerte vollständige Induktion A Theorem: Falls A n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n)) A n ∈ N : p(n) dann gilt 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 > . . . . 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 79 E 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.) A x ∈ X : ( y ∈ X : (y < x → p(y )) → p(x)) A dann gilt A Theorem. Falls x ∈ X : p(x) P Q 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 > . . . . E 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 ))). A 80 E 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.) A x ∈ X : ( y ∈ X : (y < x → p(y )) → p(x)) A dann gilt A Theorem. Falls x ∈ X : p(x) P Q Beweis: zu zeigen: P → Q. Kontrapositionsbeweis: ¬Q → ¬P Annahme: ¬Q := (¬ x ∈ X :p(x)) ≡ ( x ∈ X :¬p(x)). 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 Fehlerquellen Häufige Fehler bei Induktionsbeweisen • Ordnung ist nicht noethersch • Nicht alle Minima (Induktionsanfänge) bedacht • Bei Induktionsschritt die Grenzfälle nicht bedacht 82 Fehlerquellen Was ist hier falsch? Behauptung: Alle Menschen haben die gleiche Haarfarbe p(n) : In einer Menge von n Menschen haben alle die gleiche Haarfarbe Induktionbasis: n = 1 Für eine Menge mit nur einem Menschen gilt die Behauptung trivial 83 Fehlerquellen Was ist hier falsch? Behauptung: Alle Menschen haben die gleiche Haarfarbe 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). 84 Fehlerquellen Was ist hier falsch? Behauptung: Alle Menschen haben die gleiche Haarfarbe 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 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 Beispiele von noetherschen Ordnungen Ordnungen auf kartesischen Produkten • Die Produktordnung • Die lexikographische Ordnung 86 Produktordnung Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen. Dann ist die Produktordnung ≤produkt auf A × B gegeben durch: (x, y ) ≤produkt (x ′ , y ′ ) gdw. (x ≤A x ′ und y ≤B y ′ ) Lemma: Wenn (A, ≤A ) und (B, ≤B ) noethersch sind, dann ist (A × B, ≤produkt ) noethersch. 87 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. Produktordnung Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen. Dann ist die Produktordnung ≤produkt auf A × B gegeben durch: (x, y ) ≤produkt (x ′ , y ′ ) gdw. (x ≤A x ′ und y ≤B y ′ ) 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. Das zeigt, dass (A × B, ≤produkt ) noethersch ist. 88 Lexikographische Ordnung Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen. Dann ist die lexikographische Ordnung ≤ auf A × B gegeben durch: (x, y ) ≤ (x ′ , y ′ ) gdw. x = x ′ und y = y ′ oder x <A x ′ oder x = x ′ und y <B y ′ Lemma: Wenn (A, ≤A ) und (B, ≤B ) noethersch sind, dann ist (A × B, ≤) noethersch. 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. Lexikographische Ordnung Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen. Dann ist die lexikographische Ordnung ≤ auf A × B gegeben durch: (x, y ) ≤ (x ′ , y ′ ) gdw. x = x ′ und y = y ′ oder x <A x ′ oder x = x ′ und y <B y ′ 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 ) ≥ . . . 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 . 90 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 Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen. Dann ist die lexikographische Ordnung ≤ auf A × B gegeben durch: (x, y ) ≤ (x ′ , y ′ ) gdw. x = x ′ und y = y ′ oder x <A x ′ oder x = x ′ und y <B y ′ 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 ) ≥ . . . 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 (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 Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen. Dann ist die lexikographische Ordnung ≤ auf A × B gegeben durch: (x, y ) ≤ (x ′ , y ′ ) gdw. x = x ′ und y = y ′ oder x <A x ′ oder x = x ′ und y <B y ′ 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 ) ≥ . . . Sei m = max(m1 , m2 ). Dann (xm , ym ) = (xi , yi ) für alle i ≥ m. Das zeigt, dass (A × B, ≤) noethersch ist. 92 Beispiel für Induktion: Ackermann-Funktion 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 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. 93 Beispiel für Induktion: Ackermann-Funktion 8 > > < y +1 ACK (x, y ) = ACK (x − 1, 1) > > : ACK (x − 1, ACK (x, y − 1)) falls x = 0 falls x 6= 0 und y = 0 falls x 6= 0 und y 6= 0 Theorem. ACK ist eine totale Funktion auf N × N. Induktionbasis: ACK (0, 0) = 1 (definiert) 94 Beispiel für Induktion: Ackermann-Funktion 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). 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. 95 Zusammenfassung • Grundlegende Beweisstrategien • Induktion über die natürlichen Zahlen • Partielle Ordnung, totale Ordnung, minimale Elemente • Noethersche (wohlfundierte) Menge • Noethersche Induktion (Theorem, Beweis) • Fehlerquellen • Produktordnung/Lexikographische Ordnung • Beispiel für noethersche Induktion: Ackermann-Funktion 96 2. Aussagenlogik 97 Beispiel: Das 8-Damen Problem Man platziere acht Damen so auf einem Schachbrett, dass sie sich gegenseitig nicht bedrohen. 98 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 99 Beispiel: Das 8-Damen Problem 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) 100 Beispiel: Das 8-Damen Problem 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,8), (5,6), (5,5), (5,4),(5,3), (5,2), (5,1) D57 → ¬D58 ∧ ¬D5,6 ∧ ¬D5,5 ∧ ¬D5,4 ∧ ¬D5,3 ∧ ¬D5,2 ∧ ¬D5,1 • 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 • keine andere Dame auf Feld (6,8), (4,6), (3,5), (2,4),(1,3) D57 → ¬D68 ∧ ¬D4,6 ∧ ¬D3,5 ∧ ¬D2,4 ∧ ¬D1,3 • keine andere Dame auf Feld (4,8), (6,6), (7,5), (8,4) D57 → ¬D48 ∧ ¬D6,6 ∧ ¬D7,5 ∧ ¬D8,4 101 Beispiel: Das 8-Damen Problem 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 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 } 102 Beispiel: Das 8-Damen Problem 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 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 Globale Einschränkungen } Für jedes k mit 1 ≤ k ≤ 8: Rk := D1,k ∨ D2,k ∨ D3,k ∨ D4,k ∨ D5,k ∨ D6,k ∨ D7,k ∨ D8,k 103 Beispiel: Das 8-Damen Problem Struktur: Wahrheitswerte für die atomaren Aussagen Dij Modell für Fij (Rk ): Wahrheitswerte für die atomaren Aussagen Dij so dass Fij wahr (bzw. Rk wahr). 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. 104 Beispiel: Aufzug oben oben Aufzug oben Mitte gedruckt F.nach unten mitte mitte unten unten 105 Beispiel: Aufzug oben oben mitte mitte Aufzug mitte Oben gedruckt F.nach oben unten unten 106 Modellierung: Strukturen oben Aufzug oben Mitte gedruckt oben F.nach unten mitte mitte oben Aufzug mitte Unten gedruckt Aufzug oben Mitte gedruckt F.nach unten mitte F.nach unten unten v(AufzugOben) = wahr unten v(AufzugMitte) = wahr unten 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 107 Modellierung: Strukturen oben Aufzug oben Mitte gedruckt oben F.nach unten mitte mitte oben Aufzug mitte Unten gedruckt mitte Aufzug oben Mitte gedruckt F.nach unten Aufzug mitte F.nach unten unten v(AufzugOben) = wahr unten v(AufzugMitte) = wahr unten 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 108 Modellierung: Strukturen oben Aufzug oben Mitte gedruckt oben F.nach unten mitte mitte oben Aufzug mitte Unten gedruckt mitte Aufzug oben Mitte gedruckt F.nach unten Aufzug mitte F.nach unten unten unten unten Aussagen beziehen sich auf Strukturen (Formale) Aussagen sind in jeder einzelnen Struktur zu wahr oder falsch auswertbar 109 Formale Logik • Syntax welche Formeln? • Semantik Modelle (Strukturen) Wann ist eine Formel wahr (in einer Struktur)? • Deduktionsmechanismus Ableitung neuer wahrer Formeln 110 Aussagenlogik Die Welt besteht aus Fakten die wahr oder falsch sein können. 111 2.1 Syntax der Aussagenlogik 112 Syntax der Aussagenlogik: Logische Zeichen ⊤ Symbol für die Formel “wahr” ⊥ Symbol für die Formel “falsch” ¬ Negationssymbol (“nicht”) ∧ Konjunktionssymbol (“und”) ∨ Disjunktionssymbol (“oder”) → Implikationssymbol (“wenn . . . dann”) ↔ Symbol für Äquivalenz (“genau dann, wenn”) ( ) die beiden Klammern 113 Vokabular der Aussagenlogik Abzählbare Menge von Symbolen, etwa Π = {P0 , . . . , Pn } oder Π = {P0 , P1 , . . . } Bezeichnungen für Symbole in Π • atomare Aussagen • Atome • Aussagenvariablen 114 Formeln der Aussagenlogik Definition: Menge ForΠ der Formeln über Π: Die kleinste Menge mit: • ⊤ ∈ ForΠ und ⊥∈ ForΠ • Π ⊆ ForΠ • Wenn F , G ∈ ForΠ , dann auch ¬F , (F ∧ G ), (F ∨ G ), (F → G ), (F ↔ G ) Elemente von ForΠ . 115 Aussagenformeln ForΠ Menge der Formeln über Π: F, G, H ::= ⊥ (Falsum) | ⊤ (Verum) | P, | ¬F | (F ∧ G ) (Konjunktion) | (F ∨ G ) (Disjunktion) | (F → G ) (Implikation) | (F ↔ G ) (Äquivalenz) P∈Π (atomare Formel) (Negation) 116 Konventionen zur Notation • Klammereinsparungen werden nach folgenden Regeln vorgenommen: – ¬ >p ∧ >p ∨ >p → >p ↔ (Präzedenzen), – ∨ und ∧ sind assoziativ und kommutativ, 117 Beispiel: 8-Damenproblem 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 Terminologie Eine Formel F , die als Teil einer Formel G auftritt, heißt Teilformel von G . • 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 119 2.2 Strukturelle Induktion Induktion über Formelaufbau 120 Induktion über Formelaufbau: Beispiel Lemma: Ist F ∈ ForΠ und sind F1 , F2 Teilformeln von F , dann gilt • F2 ist Teilformel von F1 , oder • F1 ist Teilformel von F2 , oder • F1 , F2 liegen getrennt 121 Induktion über Formelaufbau: Beispiel Lemma: Ist F ∈ ForΠ und sind F1 , F2 Teilformeln von F , dann gilt • F2 ist Teilformel von F1 , oder • F1 ist Teilformel von F2 , oder • F1 , F2 liegen getrennt Beweis: Durch noethersche Induktion über den Formelaufbau 122 Induktion über Formelaufbau: Beispiel Lemma: Ist F ∈ ForΠ und sind F1 , F2 Teilformeln von F , dann gilt • F2 ist Teilformel von F1 , oder • F1 ist Teilformel von F2 , oder • 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 123 Strukturelle Induktion Menge aller aussagenlogischen Formeln ForΠ Basismenge: ⊤, ⊥; 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 ForΠ kleinste Menge, die- ⊤, ⊥ und Π enthält - zusammen mit F auch ¬F enthält - zusammen mit F1 , F2 auch F1 opF2 enthält (op ∈ {∧, ∨, →, ↔}) 124 Strukturelle Induktion Menge aller aussagenlogischen Formeln ForΠ Basismenge: ⊤, ⊥; 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 ForΠ kleinste Menge, die- ⊤, ⊥ und Π enthält - zusammen mit F auch ¬F enthält - zusammen mit F1 , F2 auch F1 opF2 enthält (op ∈ {∧, ∨, →, ↔}) Gelten die beiden Aussagen: - p(A) für alle atomaren Formeln A ∈ {⊤, ⊥} ∪ Π A dann gilt auch A - F ∈ForΠ : ((F = ¬F1 ∧p(F1 ))→p(F )) ∧ F ∈ ForΠ : p(F ). ((F = F1 opF2 ∧p(F1 )∧p(F2 ))→p(F )) 125 2.3 Semantik der Aussagenlogik 126 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 Valuation (Wertebelegung) ist eine Abbildung A : Π → {0, 1} Wir werden Wertebelegungen auch Aussagenlogische Strukturen, Aussagenlogische Modelle oder Interpretationen nennen. 127 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: A B C 0 1 0 (Bei drei Symbolen gibt es 8 mögliche Modelle) 128 Semantik der Aussagenlogik Auswertung von Formeln in einem Modell Sei A : Π → {0, 1} eine Wertebelegung. A∗ : ForΠ → {0, 1} wird wie folgt definiert: 129 Semantik der Aussagenlogik Auswertung von Formeln in einem Modell Sei A : Π → {0, 1} eine Wertebelegung. A∗ : ForΠ → {0, 1} wird wie folgt definiert: A∗ (⊥) = 0 A∗ (⊤) = 1 130 Semantik der Aussagenlogik Auswertung von Formeln in einem Modell Sei A : Π → {0, 1} eine Wertebelegung. A∗ : ForΠ → {0, 1} wird wie folgt definiert: A∗ (⊥) = 0 A∗ (⊤) = 1 A∗ (P) = A(P) 131 Semantik der Aussagenlogik Auswertung von Formeln in einem Modell Sei A : Π → {0, 1} eine Wertebelegung. A∗ : ForΠ → {0, 1} wird wie folgt definiert: 8 < 0 ∗ A (¬F ) = : 1 falls A∗ (F ) = 1 falls A∗ (F ) = 0 132 Semantik der Aussagenlogik 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 ) = A∗ (F2 ) = 0 falls A∗ (F1 ) = 1 oder A∗ (F2 ) = 1 133 Semantik der Aussagenlogik Auswertung von Formeln in einem Modell Sei A : Π → {0, 1} eine Wertebelegung. A∗ : ForΠ → {0, 1} wird wie folgt definiert: 8 < 1 ∗ A (F1 → F2 ) = : 0 8 < 1 A∗ (F1 ↔ F2 ) = : 0 falls A∗ (F1 ) = 0 oder A∗ (F2 ) = 1 falls A∗ (F1 ) = 1 und A∗ (F2 ) = 0 falls A∗ (F1 ) = A∗ (F2 ) sonst 134 Wahrheitstafel für die logischen Operatoren 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 135 Semantik der Aussagenlogik Auswertung von Formeln in einem Modell Sei A : Π → {0, 1} eine Π-Valuation. A∗ : ForΠ → {0, 1} wird induktiv über Aufbau von F wie folgt definiert: A∗ (⊥) = 0 A∗ (⊤) = 1 A∗ (P) = A(P) A∗ (¬F ) = 1 − A∗ (F ) A∗ (F ρG ) = Bρ (A∗ (F ), A∗ (G )) Bρ (x, y ) berechnet entschpr. der Wahrheitstafel für ρ z.B. : B∨ (0, 1) = (0 ∨ 1) = 1; B→ (1, 0) = (1 → 0) = 0 Wir schreiben normalerweise A statt A∗ . 136 Beispiel Sei A : {P, Q, R} → {0, 1} mit A(P) = 1, A(Q) = 0, A(R) = 1. 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 137 Modell einer Formel(menge) Definition: Interpretation A ist Modell einer Formel F ∈ ForΠ , falls A∗ (F ) = 1. Definition: Interpretation A ist Modell einer Formelmenge M ⊆ ForΠ , falls A∗ (F ) = 1 für alle F ∈ M Notation: A |= F A |= M 138 Gültigkeit und Erfüllbarkeit Definition: F gilt in A (oder A ist Modell von F ) gdw. A(F ) = 1. Notation: A |= F 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). 139 Tautologien und Kontradiktionen Tautologien: Formel, die stets wahr sind. Beispiele: p ∨ (¬p) (Prinzip vom ausgeschlossenen Dritten) (Tertium non datur) p ↔ ¬¬p (Prinzip der doppelten Negation) Kontradiktionen: Formel, die stets falsch sind. Beispiel: p ∧ ¬p • Die Negation einer Tautologie ist eine Kontradiktion • Die Negation einer Kontradiktion ist eine Tautologie 140 Beispiele Die folgenden Formeln sind Tautologien: (1) (p → ¬p) → (¬p) (2) (p ∧ (p → q)) → q (3) (p ∧ q) → p (p ∧ q) → q (4) p → (p ∨ q) q → (p ∨ q) (5) (p → q) → [(q → r ) → (p → r )] (6) (((p → q) ∧ (q → r )) ∧ p) → r 141 Beispiele Die folgenden Formeln sind Tautologien: (1) (p → ¬p) → (¬p) (2) (p ∧ (p → q)) → q (3) (p ∧ q) → p (p ∧ q) → q (4) p → (p ∨ q) q → (p ∨ q) (5) (p → q) → [(q → r ) → (p → r )] (6) (((p → q) ∧ (q → r )) ∧ p) → r • (1)–(6) sind alle erfüllbar. 142 Beispiele Die folgenden Formeln sind erfüllbar, aber keine Tautologien (1) p (2) p → (p ∧ q) (3) (p ∨ q) → (p ∧ q) (4) p ↔ q 143 Beispiele Die folgenden Formeln sind unerfüllbar: (1) ¬((p → ¬p) → (¬p)) (2) (p ∧ (p → q)) ∧ ¬q (3) ¬((p ∧ q) → p) (4) ¬(p → (p ∨ q)) (5) (p → q) ∧ ¬[(q → r ) → (p → r )] (6) (((p → q) ∧ (q → r )) ∧ p) ∧ ¬r 144 Folgerung und Äquivalenz Definition: F impliziert G (oder G folgt aus F ), gdw.: für alle A : Π → {0, 1} gilt: Wenn A |= F , dann A |= 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 . 145 Beispiel F = (A ∨ C ) ∧ (B ∨ ¬C ) G = (A ∨ B) Ü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 ) (B ∨ ¬C ) (A ∨ C ) ∧ (B ∨ ¬C ) (A ∨ B) 146 Beispiel F = (A ∨ C ) ∧ (B ∨ ¬C ) G = (A ∨ B) Überprüfe, ob F |= 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 147 Syntax: Beispiel “Worin besteht das Geheimnis Ihres langen Lebens?”, wurde ein 100 Jähriger gefragt. “Ich halte mich streng an die Diätregeln: • 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.” 148 Beispiel 1 Wenn ich kein Bier zu einer Mahlzeit trinke, dann habe ich immer Fisch. ◮ ¬B→F Immer wenn ich Fisch und Bier zur selben Mahlzeit habe, verzichte ich auf Eiscreme. ◮ F ∧B→ ¬E Wenn ich Eiscreme habe oder Bier meide, dann rühre ich Fisch nicht an. ◮ E ∨¬B→ ¬F 149 Beispiel 1 ◮ ¬B→F ◮ F ∧B→ ¬E ◮ E ∨¬B→ ¬F Wir möchten wissen, welche Menüs solche Diätregeln erfüllen. z.B.: • kein Bier, Fisch und Eiscreme erfüllt 3. Diätregel nicht! • Bier, Fisch, keine Eiscreme erfüllt alle Diätregeln 150 Beispiel 1 ◮ ¬B→F ◮ F ∧B→ ¬E ◮ E ∨¬B→ ¬F Wir möchten wissen, welche Menüs solche Diätregeln erfüllen. z.B.: Formalisierung: • 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 151 Beispiel 1 ◮ ¬B→F ◮ F ∧B→ ¬E ◮ E ∨¬B→ ¬F Wir möchten wissen, welche Menüs solche Diätregeln erfüllen. z.B.: Formalisierung: 0:falsch, 1:wahr A : {B, F , E } → {0, 1} • 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 A(B) = 1, A(F ) = 1, A(E ) = 0 152 Beispiel 1 ◮ ¬B→F ◮ F ∧B→ ¬E ◮ E ∨¬B→ ¬F Π = {B, F , E } Mögliche Interpretation (Wertebelegung): 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” 153 Beispiel 1 ◮ ¬B→F ◮ F ∧B→ ¬E ◮ E ∨¬B→ ¬F Π = {B, F , E } Mögliche Interpretation (Wertebelegung): A(B) = 1, A(F ) = 0, A(E ) = 1 Auswertung von Formeln: A∗ (¬B → F ) = A∗ (¬B) → A∗ (F ) = ¬A(B) → A(F ) = (¬1 → 0) = (0 → 0) = 1 154 Modell einer Formel Definition: Interpretation A ist Modell einer Formel F ∈ ForΠ , falls A∗ (F ) = 1. Notation: A |= F Beispiel: A : Π(= {B, F , E }) → {0, 1} mit: A(B) = 1, A(F ) = 0, A(E ) = 1 Da A(¬B → F ) = 1, ist A ein Modell der Formel ¬B → F A |= ¬B → F 155 Modell einer Formelmenge Definition: Interpretation A ist Modell einer Formelmenge M ⊆ ForΠ , falls A∗ (F ) = 1 für alle F ∈ M Notation: A |= M 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 M = {¬B → F , F ∧ B → ¬E , A(E ∨ ¬B → ¬F ) = 1, E ∨ ¬B → ¬F } 156 Modell einer Formelmenge Definition: Interpretation A ist Modell einer Formelmenge M ⊆ ForΠ , falls A∗ (F ) = 1 für alle F ∈ M Notation: A |= M 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, E ∨ ¬B → ¬F ) Beispiel 2: A′ : {B, F , E } → {0, 1} mit A′ (B) = 0, A′ (F ) = 0, A′ (E ) = 1 • 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 Unerfüllbarkeit und Allgemeingültigkeit Theorem. F ist allgemeingültig gdw. ¬F ist unerfüllbar. 158 Erster Kalkül: Wahrheitstafelmethode Jede Formel F enthält endlich viele Aussagenvariablen. A(F ) ist nur von den Werten dieser Aussagenvariablen abhängig. F enthält n Aussagenvariablen: ⇒ 2n Wertbelegungen notwendig um zu überprüfen, ob F erfüllbar/unerfüllbar/allgemeingültig ist oder nicht. ⇒ Wahrheitstafel • F allgemeingültig (Tautologie): A(F ) = 1 für alle Wertbelegungen • F erfüllbar: A(F ) = 1 für zumindest eine Wertbelegung • F unerfüllbar: A(F ) = 0 für alle Wertbelegungen 159 Äquivalenz Definition: F und G sind äquivalent gdw.: für alle A : Π → {0, 1} gilt: A |= F gdw. A |= G . Notation: F ≡ G . Zwei Formeln sind logisch äquivalent, wenn sie in den gleichen Modellen wahr sind Beispiel: (P → Q) ≡ (¬Q → ¬P) (Kontraposition) 160 Wichtige Äquivalenzen Die folgenden Äquivalenzen sind für alle Formeln F , G , H gültig: (F ∧ F ) ≡ F (F ∨ F ) ≡ F (Idempotenz) (F ∧ G ) ≡ (G ∧ F ) (F ∨ G ) ≡ (G ∨ F ) (Kommutativität) (F ∧ (G ∧ H)) ≡ ((F ∧ G ) ∧ H) (F ∨ (G ∨ H)) ≡ ((F ∨ G ) ∨ H) (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 Die folgenden Äquivalenzen sind für alle Formeln F , G , H gültig: (¬¬F ) ≡ F (Doppelte Negation) ¬(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) 162 Wichtige Äquivalenzen Die folgenden Äquivalenzen sind für alle Formeln F , G , H gültig: (F ∧ G ) ≡ F , falls G Tautologie (F ∨ G ) ≡ ⊤, falls G Tautologie (Tautologieregeln) (F ∧ G ) ≡ ⊥, falls G unerfüllbar (F ∨ G ) ≡ F , falls G unerfüllbar (Tautologieregeln) 163 Wichtige Äquivalenzen mit ⊤/⊥ (A ∧ ¬A) ≡ ⊥ (A ∨ ¬A) ≡ ⊤ (Tertium non datur) (A ∧ ⊤) ≡ A (A ∧ ⊥) ≡ ⊥ 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 ) (Idempotenz) (Kommutativität) (Assoziativität) (Absorption) (Distributivität) (Doppelte Negation) (De Morgan’s Regeln) (Kontraposition) (Elimination Implikation) (Elimination Äquivalenz) 165 Substitutionstheorem Theorem. Seien F und G äquivalente Formeln. Sei H eine Formel mit (mindestens) einem Vorkommen der Teilformel F . Dann ist H äquivalent zu H ′ , wobei H ′ aus H hervorgeht, indem (irgend) ein Vorkommen von F in H durch G ersetzt wird. Beispiel: A∨B ≡B ∨A impliziert (C ∧ (A ∨ B)) ≡ (C ∧ (B ∨ A)) 166 Substitutionstheorem Theorem. Seien F und G äquivalente Formeln. Sei H eine Formel mit (mindestens) einem Vorkommen der Teilformel F . Dann ist H äquivalent zu H ′ , wobei H ′ aus H hervorgeht, indem (irgend) ein Vorkommen von F in H durch G ersetzt wird. Beweis: Strukturelle Induktion. Induktionsbasis: Beweisen. dass das Theorem für alle atomaren Formeln gilt. Induktionsvoraussetzung: Sei H eine Formel (die nicht atomar ist) Annahme: Theorem gilt für alle Teilformeln von F , die nicht gleich F sind. Induktionsschritt: Beweis durch Fallunterscheidung: Fall 1: H = ¬H1 . 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 Ein zweiter Kalkül: Logische Umformung Definition: Äquivalenzumformung • (Wiederholte) Ersetzung einer (Unter-)Formel durch äquivalente Formel • Anwendung des Substitutionstheorems Theorem Äquivalenzumformung bildet mit den aufgelisteten wichtigen Äquivalenzen einen vollständigen Kalkül: Wenn F und G logisch äquivalent sind, kann F in G umgeformt werden. Anwendung: Test für Erfüllbarkeit/Unerfüllbarkeit/Allgemeingültigkeit 168 Beispiel (P → Q) ∧ ¬((Q → R) → (P → R)) 169 Beispiel (P → Q) ∧ ¬((Q → R) → (P → R)) ≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R)) (Elimination Implikation) 170 Beispiel (P → Q) ∧ ¬((Q → R) → (P → R)) ≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R)) ≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R)) (Elimination Implikation) (Elimination Implikation) 171 Beispiel (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) 172 Beispiel (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)) (Elimination Implikation) (Doppelte Negation, De Morgan, ∨) 173 Beispiel (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) (Doppelte Negation, De Morgan, ∨) (Doppelte Negation) 174 Beispiel (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) (Doppelte Negation, De Morgan, ∨) (Doppelte Negation) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R)) (Distributivität) 175 Beispiel (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) (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) 176 Beispiel (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) (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) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ ⊥) ≡(¬P ∨ Q) ∧ (¬Q ∧ P ∧ ¬R) (Äquivalenzen mit ⊥) (Äquivalenzen mit ⊥) 177 Beispiel (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) (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) ≡(¬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) 178 Beispiel (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 ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R)) (Elimination Implikation) (Doppelte Negation, De Morgan, ∨) (Doppelte Negation) (Distributivität) ≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ ¬R ∧ P)) (Kommutativität) ≡(¬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 ∧ P ∧ ¬Q ∧ ¬R) ∨ (Q ∧ ¬Q ∧ P ∧ ¬R) (Kommutativität) ≡((¬P ∧ P) ∧ ¬Q ∧ ¬R) ∨ ((Q ∧ ¬Q) ∧ P ∧ ¬R) (Assoziativität) 179 Beispiel (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 ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R)) (Elimination Implikation) (Doppelte Negation, De Morgan, ∨) (Doppelte Negation) (Distributivität) ≡ (¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ ¬R ∧ P)) (Kommutativität) ≡ (¬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 ∧ P ∧ ¬Q ∧ ¬R) ∨ (Q ∧ ¬Q ∧ P ∧ ¬R) (Kommutativität) ≡ ⊥ ∨ ⊥≡⊥ (Äquivalenzen mit ⊥) ≡ ((¬P ∧ P) ∧ ¬Q ∧ ¬R) ∨ ((Q ∧ ¬Q) ∧ P ∧ ¬R) (Assoziativität) 180 Allgemeingültigkeit/Folgerung F , G Formeln; N Formelmenge. Theorem. F |= G gdw. |= F → G . Theorem. N ∪ {F } |= G gdw. N |= F → G . Theorem. F ≡ G gdw. |= F ↔ G . 181 Unerfüllbarkeit/Allgemeingültigkeit/Folgerung 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 Unser Ziel Kalkül(e) zur systematischen Überprüfung von Erfüllbarkeit (für Formeln und/oder Formelmengen) Dazu brauchen wir “Normalformen” 183 2.4 Normalformen 184 Normalformen Definition: • Atom: aussagenlogische Variable • Literal: Atom, oder negation eines Atoms Definition: Klausel: Eine Disjunktion von Literalen • mehrstellige Disjunktionen (P ∨ ¬Q ∨ R), (P ∨ P ∨ ¬Q) • einstellige Disjunktionen P • die nullstellige Disjunktion (leere Klausel) ⊥ 185 Normalformen Definition: Konjunktive Normalform (KNF): Eine Konjunktion von Disjunktionen von Literalen, d.h., eine Konjunktion von Klauseln mehrstellig, einstellig oder nullstellig Beispiele: (P ∨ ¬Q) ∧ (Q ∨ ¬R ∨ ¬S) P ∨Q P ∧ (Q ∨ R) P ∧Q P ∧P ⊤ 186 Normalformen Definition: Disjunktive Normalform (DNF): Eine Disjunktion von Konjunktionen von Literalen. mehrstellig, einstellig oder nullstellig Beispiele: (P ∧ ¬Q) ∨ (Q ∧ ¬R ∧ ¬S) P ∧Q P ∨ (Q ∧ R) P ∨Q P ∨P ⊥ 187 Normalformel Eigenschaften: • 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 188 Normalformel Eigenschaften: • 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 189 Beispiel F : (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 190 Beispiel F : (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 191 Beispiel F : (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 DNF: 0 1 0 (¬P ∧ Q ∧ ¬R) ∨ (¬P ∧ Q ∧ R) ∨ (P ∧ ¬Q ∧ R) ∨ (P ∧ Q ∧ R) 192 Beispiel F : (P ∨ Q) ∧ ((¬P ∧ Q) ∨ R) (P ∨ Q) ¬P (¬P ∧ Q) ((¬P ∧ Q) ∨ R) F 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 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 0 1 0 ¬F 1 DNF für ¬F : (¬P ∧ ¬Q ∧ ¬R) ∨ (¬P ∧ ¬Q ∧ R) ∨ (P ∧ ¬Q ∧ ¬R) ∨ (P ∧ Q ∧ ¬R) 193 Beispiel F : (P ∨ Q) ∧ ((¬P ∧ Q) ∨ R) (P ∨ Q) ¬P (¬P ∧ Q) ((¬P ∧ Q) ∨ R) F 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 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 0 1 0 ¬F 1 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 Normalformel DNF für F : _ A(P1 ) (P1 A(Pn ) ∧ · · · ∧ Pn ) A:{P1 ,...,Pn }→{0,1} A(F )=1 wobei: P 0 = ¬P P1 = P Theorem Für alle Interpretationen A′ : {P1 , . . . , Pn } → {0, 1}: _ A(P ) A(P ) ′ ′ A (F ) = 1 gdw. A ( (P1 1 ∧ · · · ∧ Pn n )) = 1. A:{P1 ,...,Pn }→{0,1} A(F )=1 195 Normalformel DNF für F : _ A(P1 ) (P1 A(Pn ) ∧ · · · ∧ Pn ) A:{P1 ,...,Pn }→{0,1} A(F )=1 wobei: P 0 = ¬P P1 = P KNF für F: ¬F ′ , wobei F ′ die DNF von ¬F ist. 196 Normalformel Eigenschaften: • 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 • Solche Formeln können durch Umformungen hergestellt werden 197 Umformung in KNF Vier Schritte: 1. Elimination von ↔ Verwende A ↔ B ≡ (A → B) ∧ (B → A) 2. Elimination von → Verwende A → B ≡ (¬A ∨ B) 3. “Nach innen schieben” von ¬ Verwende de Morgans Regeln und ¬¬A ≡ A 4. “Nach innen schieben” von ∨ Verwende Distributivität von ∨ über ∧ 198 Umformung in KNF: Beispiel Gegeben: P ↔ (Q ∨ R) 1. Elimination von ↔ (P → (Q ∨ R)) ∧ ((Q ∨ R) → P) 2. Elimination von → (¬P ∨ Q ∨ R) ∧ (¬(Q ∨ R) ∨ P) 3. “Nach innen schieben” von ¬ (¬P ∨ Q ∨ R) ∧ ((¬Q ∧ ¬R)) ∨ P) 4. “Nach innen schieben” von ∨ (¬P ∨ Q ∨ R) ∧ (¬Q ∨ P) ∧ (¬R ∨ P)) 199 Beispiel zur exponentiellen Länge der KNF Gegeben: An = (P11 ∧ P12 ) ∨ · · · ∨ (Pn1 ∧ Pn2 ) Zu An äquivalente KNF ^ (P1,f (1) ∨ · · · ∨ Pn,f (n) ) f :{1,...,n}→{1,2} Größe der KNF: • Klausel in KNF von An : 2n Beweis: Induktion 200 Beispiel zur exponentiellen Länge der KNF Gegeben: An = (P11 ∧ P12 ) ∨ · · · ∨ (Pn1 ∧ Pn2 ) Länge: 21 n = 1 : A1 = P11 ∧P12 n = 2 : A2 = (P11 ∧P12 )∨(P21 ∧P22 ) ≡ ((P11 ∧P12 )∨P21 )∧((P11 ∧P12 )∨P22 ) ≡ (P11 ∨P21 )∧(P12 ∨P21 )∧(P11 ∨P22 )∧(P12 ∨P22 ) Länge: 22 n = 3 : A3 = (P11 ∧P12 )∨(P21 ∧P22 )∨(P31 ∧P32 ) {z } | A 2 ≡ ((P11 ∨P21 )∧(P 12 ∨P21 )∧(P11 ∨P22 )∧(P12 ∨P22 ))∨(P31 ∧P32 ) | {z } KNF (A2 ) ≡ (((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 Beispiel zur exponentiellen Länge der KNF Gegeben: An = (P11 ∧ P12 ) ∨ · · · ∨ (Pn1 ∧ Pn2 ) • Klausel in KNF von An : 2n 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 = ≡ ≡ ≡ ≡ (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 } | 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 KNF: Mengenschreibweise Notation: Klausel als Menge von Literalen Formel in KNF als Menge von Klauseln Beispiel: (P ∨ Q ∨ R) ∧ (P ∨ Q ∨ ¬R) ∧ (¬P ∨ Q ∨ R) ∧ (¬P ∨ ¬Q ∨ R) { {P, Q, R}, {P, Q, ¬R}, {¬P, Q, R}, {¬P, ¬Q, R} } 203 KNF: Mengenschreibweise Bedeutung der leeren Menge • Leere Klausel = leere Menge von Literalen = leere Disjunktion =⊥ • Leere Menge von Klauseln = leere Konjunktion =⊤ 204 Vereinfachung der KNF: Subsumption Theorem (Subsumption Regel) Enthält eine KNF-Formel (= Klauselmenge) Klauseln K , K ′ mit K ⊂ K′ dann entsteht eine äquivalente Formel, wenn K ′ weggelassen wird. Beweis: 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) Definition: SAT-Problem Gegeben: Eine aussagenlogische Formel F Frage: Ist F erfüllbar? NB: F allgemeingültig gdw. ¬F nicht erfüllbar 206 Das SAT-Problem (Erfüllbarkeitsproblem) Erfüllbarkeitsproblem für DNF Formeln V W 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 Allgemeingültigkeit für DNF Formeln F in KNF allgemeingültig gdw. jede Disjunktion zwei komplementäre Literale enthält. 207 Das SAT-Problem (Erfüllbarkeitsproblem) Definition: SAT-Problem Gegeben: Eine aussagenlogische Formel F Frage: Ist F erfüllbar? Theorem (ohne Beweis) SAT ist ein NP-vollständiges Problem 208 NP Zur Erinnerung: • P ist die Klasse aller Probleme, die in polynomieller Zeit entscheidbar sind. • NP ist die Klasse aller Probleme, die nichtdeterministisch in polynomieller Zeit entscheidbar sind. Ein Entscheidungsproblem ist genau dann in NP, wenn eine gegebene Lösung für das entsprechende Suchproblem in Polynomialzeit überprüft werden kann. 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 NP-Vollständigkeit Zur Erinnerung: “SAT ist NP-vollständig” heißt: • SAT ist nichtdeterministisch in polynomieller Zeit entscheidbar • Jedes nichtdeterministisch in polynomieller Zeit entscheidbare Problem kann in polynomieller Zeit auf SAT reduziert werden • Wenn es stimmt, dass NP 6= P, dann ist SAT nicht in polynomieller Zeit entscheidbar 210 Teilklassen des Erfüllbarkeitsproblems Definition: k-KNF Formel: KNF-Formeln, deren Klauseln höchstens k Literale haben Theorem • Erfüllbarkeit für Formeln in KNF: NP-vollständig • 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 211 3-SAT Theorem Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig Beweis • 3-SAT ist ein Spezialfall von SAT und deshalb wie SAT in NP. • 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. 212 3-SAT Theorem Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig Beweis (Teil 2) Wir zeigen, dass jedes SAT Problem in polynomieller Zeit auf das 3-SAT Problem reduzierbar ist. Gegeben sei eine Formel F in KNF. Wir transformieren F in eine Formel F ′ in 3-KNF, so dass: F ist erfüllbar gdw. F ′ ist erfüllbar. Eine k-Klausel sei eine Klausel mit k Literalen. Aus einer 1- bzw 2-Klausel können wir leicht eine äquivalente 3-Klausel machen, indem wir ein Literal wiederholen. Was machen wir mit k-Klauseln für k > 3? 213 3-SAT Theorem Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig Beweis (Teil 3) Sei C beispielsweise eine 4-Klausel der Form C = L1 ∨ L2 ∨ L3 ∨ L4 . In einer Klauseltransformation ersetzen wir C durch die Teilformel C0 = (L1 ∨ L2 ∨ H) ∧ (¬H ∨ L3 ∨ L4 ), wobei H eine zusätzlich eingeführte Hilfsvariable bezeichnet. F ′ sei aus F entstanden durch Ersetzung von C durch C0 . zu zeigen: F ′ erfüllbar gdw. F erfüllbar 214 3-SAT Theorem Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig Beweis (Teil 4) 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 “⇐” 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: 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. Also ist F ′ in beiden Fällen erfüllbar. 215 3-SAT Theorem Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig Beweis (Teil 5) 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 “⇒” Sei A eine erfüllende Belegung für F ′ . Wir unterscheiden zwei Fälle: 1) Falls A(H) = 0, so muss A(L1 ) = 1 oder A(L2 ) = 1. 2) Falls A(H) = 1, so muss A(L3 ) = 1 oder A(L4 ) = 1 In beiden Fällen erfüllt A somit auch C , i.e. auch F . 216 3-SAT Theorem Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig Beweis (Teil 6) Wir verallgemeinern die Klauseltransformation für k ≥ 4: Jede Klausel der Form L1 ∨ L2 ∨ · · · ∨ Lk−1 ∨ Lk wird durch eine Formel der Form (L1 ∨ L2 ∨ ... ∨ Lk−2 ∨ H) ∧ (¬H ∨ Lk−1 ∨ Lk ) ersetzt. Die Erfüllbarkeitsäquivalenz folgt analog zum Fall k = 4. 217 Bis jetzt • Das SAT-Problem (Erfüllbarkeitsproblem) • 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) • 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 Wn Vm F = i=1 ( j=1 Lij ) Formel in DNF unerfüllbar gdw. für alle Vm i, ( j=1 Lij ) enthält zwei komplementäre Literale. 218 Horn-Formeln Defintion: Horn-Formel: Formel in KNF, in der jede Klausel höchstens ein positives Literal enthält Notation: als Implikation ¬P1 ∨ · · · ∨ ¬Pn ∨ P P1 ∧ · · · ∧ Pn → P ¬P1 ∨ · · · ∨ ¬Pn PA ∧ · · · ∧ Pn → P →P P1 ∧ · · · ∧ Pn : Rumpf P: Kopf 219 Horn Formel: Beispiele Klausel 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 220 Horn Formel: Beispiele Klausel 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 221 Erfüllbarkeitsproblem für Horn-Formeln Lemma. Sei F Hornformel die keine Fakten enthält. Dann ist F erfüllbar. Beweis: Sei A : Π → {0, 1} mit A(P) = 0 für alle P ∈ Π. Dann A(F ) = 1. 222 Erfüllbarkeitsproblem für Horn-Formeln Theorem Die Erfüllbarkeit von Horn-Formeln ist in quadratischer Zeit entscheidbar. Beweis: (Idee) 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 ⊤. 223 Erfüllbarkeitstest für Horn-Formeln Eingabe: F = D1 ∧ · · · ∧ Dn eine Hornformel (die Klausel Di enthält höchstens ein positives Literal) Ein Atom in H zu markieren, bedeutet, es an allen Stellen seines Auftretens in H zu markieren 224 Erfüllbarkeitstest für Horn-Formeln 0: 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 • Literale, Klauseln • Konjunktive und Disjunktive Normalform • Ablesen von DNF und KNF aus Wahrheitstafeln • Umformen in KNF • Mengenschreibweise • Subsumption • SAT-Problem (SAT, 3-SAT, 2-SAT, DNF-SAT) • Horn-Formeln • Erfüllbarkeitstest für Hornformeln 226 2.5 Der aussagenlogische Resolutionkalkül 227 Der aussagenlogische Resolutionkalkül Wesentliche Eigenschaften • Widerlegungskalkül: Testet auf Unerfüllbarkeit • Voraussetzung: Alle Formeln in konjunktiver Normalform • Eine einzige Regel • Operiert auf Klauseln (in Mengenschreibweise) 228 Resolutionskalkül Definition: Resolutionsregel (einzige Regel des Kalküls) C1 ∪ {P} {¬P} ∪ C2 C1 ∪ C2 wobei • P eine aussagenlogische Variable • C1 , C2 Klauseln (können leer sein) Definition: C1 ∪ C2 heißt Resolvente von C1 ∪ {P}, C2 ∪ {¬P} 229 Resolution: Beispiel Gegeben die Klauselmenge: M = {{P1 , P2 }, {P1 , ¬P2 }, {¬P1 , P2 }, {¬P1 , ¬P2 }} Resolution: {P1 , P2 } {P1 , ¬P2 } {P1 } {¬P1 , P2 } {¬P1 , ¬P2 } {¬P1 } {P1 } {¬P1 } ⊥ Insgesamt: M ⊢Res ⊥ also: M unerfüllbar 230 Resolution: Weiteres Beispiel Zu zeigen: (P → Q) → ((Q → R) → (P → R)) ist allgemeingültig Dazu zeigen wir, dass ¬[(P → Q) → ((Q → R) → (P → R))] unerfüllbar ist. Klauselnormalform: {{¬P, Q}, {¬Q, R}, {P}, {¬R}} 231 Resolution: Weiteres Beispiel Klauselnormalform: M = {{¬P, Q}, {¬Q, R}, {P}, {¬R}} Ableitung der leeren Klausel aus M: (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 Vorsicht bei Klauseln mit mehreren Resolutionsmöglichkeiten • Zwei Klauseln können mehr als eine Resolvente haben z.B.: {A, B} und {¬A, ¬B} • {A, B, C } und {¬A, ¬B, D} haben NICHT {C , D} als Resolvente Heuristik: Immer möglichst kleine Klauseln ableiten 233 Notwendigkeit der Mengenschreibweise Die Menge E = {P1 ∨ ¬P2 , ¬P1 ∨ P2 , ¬P1 ∨ ¬P2 , P1 ∨ P2 } ist unerfüllbar. 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 234 Ohne Mengenschreibweise Resolutionsregel: C1 ∨ P ¬P ∨ C2 C1 ∨ C2 Faktorisieren: C ∨L∨L C ∨L 235 Resolution mit Faktorisierung Die Menge E = {P1 ∨ ¬P2 , ¬P1 ∨ P2 , ¬P1 ∨ ¬P2 , P1 ∨ P2 } ist unerfüllbar. Es gibt folgende Resolutionsmöglichkeiten (mit Faktorisieren) 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 ⊥ 236 Resolution: Beispiel Gegeben die Klauselmenge: M = {{P1 , P2 }, {P1 , ¬P2 }, {¬P1 , P2 }, {¬P1 , ¬P2 }} Resolution: {P1 , P2 } {P1 , ¬P2 } {P1 } {¬P1 , P2 } {¬P1 , ¬P2 } {¬P1 } {P1 } {¬P1 } ⊥ Insgesamt: M ⊢Res ⊥ also: M unerfüllbar 237 Resolution Sei F eine Klauselmenge und Res(F ) = F ∪ {R | R ist eine Resolvente zweier Klauseln aus F } Res0 (F ) = F Resn+1 (F ) = Res(Resn (F )) Res⋆ (F ) = S n Res (F ) n∈N (bezeichnet die Vereinigung der Resolventen aus aller möglichen Resolutionsschritte auf F ) Notation: Falls C ∈ Res⋆ (F ), so schreiben wir F ⊢Res C . 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 mit 238 Resolution: Korrektheit Theorem Für eine Menge M von Klauseln gilt: Falls M ⊢Res ⊥, so M unerfüllbar. Beweis: Annahme: M ⊢Res ⊥. Zu zeigen: M unerfüllbar. Widerspruchsbeweis: wir zeigen, dass ein Widerspruch entsteht, wenn die zu beweisende Behauptung falsch wäre. Wir nehmen an, dass M erfüllbar. Sei A : Π → {0, 1} mit A(C ) = 1 für alle C ∈ M. 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. Fall 2: A(C1 ) = 0. Dann A(P) = 1. Da A(C2 ∨ ¬P) = 1, so A(C2 ) = 1, d.h. A(C1 ∨ C2 ) = 1. 239 Resolution: Korrektheit Theorem Für eine Menge M von Klauseln gilt: Falls M ⊢Res ⊥, so M unerfüllbar. Beweis: Annahme: M ⊢Res ⊥, i.e. ⊥∈ Resn (M) Zu zeigen: M unerfüllbar. Widerspruchsbeweis: wir zeigen, dass ein Widerspruch entsteht, wenn die zu beweisende Behauptung falsch wäre. Wir nehmen an, dass M erfüllbar. Sei A : Π → {0, 1} mit A(C ) = 1 für alle C ∈ M. Lemma: C1 ∨ P, C2 ∨ ¬P |= C1 ∨ C2 Induktion: Fur alle m ∈ N gilt: Falls D ∈ Resm (M), so A(D) = 1. Da ⊥∈ Resn (M), A(⊥) = 1. Widerspruch! 240 Resolution: Vollständigkeit Theorem. Für jede endliche Menge M von Klauseln gilt: falls M unerfüllbar, so M ⊢Res ⊥. Beweis: Induktion: p(n): Sei M Menge von Klauseln mit n Aussagenvariablen. Falls M unerfüllbar, so M ⊢Res ⊥ Induktionsbasis: n = 0. dann M = {⊥}, d.h. M ⊢Res ⊥ Induktionsschritt: Annahme: p(n) gilt. Beweise p(n + 1). Sei M Menge von Klauseln mit Aussagenvariablen {P1 , . . . , Pn , Pn+1 }. M0 sei aus M entstanden durch Ersetzung von Pn+1 durch ⊥ M1 sei aus M entstanden durch Ersetzung von Pn+1 durch ⊤ 241 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 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 Fakten: • 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 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 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 Fakten: • 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 ⊥ Pn+1 zurück: C1′ , C2′ , . . . , Cm′ Beweis (aus M) für ⊥ oder Pn+1 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 9 > > = > > ; ⇒ M ⊢Res ⊥ 243 Resolution: Vollständigkeit Theorem. Für jede endliche Menge M von Klauseln gilt: falls M unerfüllbar, so M ⊢Res ⊥. Es gilt auch: Theorem. Für jede Menge M von Klauseln gilt: falls M unerfüllbar, so M ⊢Res ⊥. 244 2-SAT 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 Andere Kalküle • 1-Resolution • Das Davis-Putnam-Verfahren • Semantische Tableaux 246 2.5 1-Resolution Korrekt aber unvollständig. 247 1-Resolution Syllogismus (in der ersten Vorlesung erwähnt): P P→C C 1-Resolution (unit resolution) {P} {¬P} ∪ C C {¬P} {P} ∪ C C 248 1-Resolution 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 249 1-Resolution 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 Andere Kalküle • 1-Resolution • Das Davis-Putnam-Verfahren • Semantische Tableaux 251 2.7 Das Davis-Putnam-Verfahren 252 Das Davis-Putnam-Verfahren Gegeben: N Klauselmenge Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell) Martin Davis and Hilary Putnam, 1960 253 Das Davis-Putnam-Verfahren Gegeben: N Klauselmenge Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell) Allgemeine Idee: • 1-Resolution + Fallunterscheidung • 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, - Klauseln, die P enthalten werden ebenfalls gelöscht N unerfüllbar gdw. (N[P 7→⊥] unerfüllbar und N[P 7→ ⊤] unerfüllbar) 254 Das Davis-Putnam-Verfahren Gegeben: N Klauselmenge Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell) Allgemenine Idee: • 1-Resolution + Fallunterscheidung • 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, - Klauseln, die P enthalten werden ebenfalls gelöscht 7→ Resolventen mit {P} Subsumption N unerfüllbar gdw. (N[P 7→⊥] unerfüllbar und N[P 7→ ⊤] unerfüllbar) 255 Das Davis-Putnam-Verfahren N: eine Menge von Klauseln Programm DP(N): IF (N = ⊤) THEN Return “wahr” ELSE IF (N = ⊥) THEN Return “falsch” 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}) THEN return “wahr” ELSE return DP(N ∪ {P}) } 256 Das Davis-Putnam-Verfahren N: eine Menge von Klauseln Programm DP(N): IF (N = ⊤) THEN Return “wahr” ELSE IF (N = ⊥) THEN Return “falsch” 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 Das Davis-Putnam Verfahren: Beispiel (¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R) 258 Das Davis-Putnam Verfahren: Beispiel (¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R) R ∧ ¬R ∧ (P ∨ ¬R) dd d d d d d d d d Q7→⊤ 259 Das Davis-Putnam Verfahren: Beispiel (¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R) R ∧ ¬R ∧ (P ∨ ¬R) R ¬R ⊥ dd d d d d d d d d Q7→⊤ (oder: R7→⊥) ⊥ 260 Das Davis-Putnam Verfahren: Beispiel (¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R) R ∧ ¬R ∧ (P ∨ ¬R) R ¬R ⊥ dd d d d d d d d d Q7→⊤ YYYYYY YYYYY Q7→⊥ ¬P ∨ R (oder: R7→⊥) ⊥ 261 Das Davis-Putnam Verfahren: Beispiel (¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R) R ∧ ¬R ∧ (P ∨ ¬R) dd d d d d d d d d Q7→⊤ YYYYYY YYYYY Q7→⊥ ¬P ∨ R R7→⊤ R ¬R ⊥ (oder: R7→⊥) ¬P ⊥ 262 Das Davis-Putnam Verfahren: Beispiel (¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R) R ∧ ¬R ∧ (P ∨ ¬R) dd d d d d d d d d Q7→⊤ YYYYYY YYYYY Q7→⊥ ¬P ∨ R R7→⊤ R ¬R ⊥ (oder: R7→⊥) ¬P P7→⊥ ⊥ ⊤ A = (P 7→ 0, R 7→ 1, Q 7→ 0) 263 Das Davis-Putnam Verfahren Das Davis-Putnam Verfahren: 1-Resolution + Fallunterscheidung Weiterentwicklung: Das Davis-Putnam-Logemann-Loveland Verfahren (DPLL) Martin Davis, Hilary Putnam, George Logemann and Donald W. Loveland 1962 264 DPLL Gegeben: N Klauselmenge Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell) Idee: Erfüllende Wertebelegung inkrementell gebildet. 265 DPLL Gegeben: N Klauselmenge Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell) 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. 266 DPLL Gegeben: N Klauselmenge Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell) 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). 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. Dann heißt C Einerklausel (Unit clause). Lemma. Seien A eine Interpretation und C = L1 ∨ · · · ∨ Ln ∨ L ∈ N, so dass L1 , . . . , Ln falsch in A und L nicht definiert. 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. 268 Pure Literale 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 • 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. Für jede pure Klausel C in einer Klauselmenge N: N erfüllbar gdw. N\{C } erfüllbar 269 Pure Literale 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 • 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. 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. 1 falls Q = P 270 Pure Literale 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 • 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. 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 271 Pure Literale 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 • 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. 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. 272 DPLL N: eine Menge von Klauseln, A partielle Wertebeleung Programm DPLL(N, A): IF (alle Klauseln in N wahr in A) THEN Return “wahr” 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}) 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 DPLL N: eine Menge von Klauseln, A partielle Wertebeleung Programm DPLL(N, A): IF (alle Klauseln in N wahr in A) THEN Return “wahr” 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}) 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}) Am Anfang: A = ∅ DPLL(N, ∅) 274 Eine alternative Formulierung Zustand: M||F wobei: - M Sequenz von Literalen (partielle Wertebelegung) (Ld : Entscheidungsliteral) - F Klauselmenge 275 Eine alternative Formulierung UnitPropagation M||F , C ∨ L ⇒ M, L||F , C ∨ L falls M |= ¬C , und L undef. in M Decide M||F ⇒ M, Ld ||F falls L oder ¬L kommt in F vor, L undef. in M Fail M||F , C ⇒ Fail Backjump M, Ld , N||F ⇒ M, L′ ||F falls M |= ¬C , M enthält kein Entscheidungsliteral 8 ′ mit: > es gibt eine Klausel C ∨ L > > > > < 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 8 ′ mit: > es gibt eine Klausel C ∨ L > > > > < F |= C ∨ L′ , M |= ¬C , falls > L′ undef. in M > > > > : L′ oder ¬L′ kommt in F vor. 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 Beispiel Wertebelegung: Klauselmenge: ∅ ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 278 Beispiel 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) 279 Beispiel Wertebelegung: 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 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Pure Literal) ⇒ (Pure Literal) 280 Beispiel 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 ⇒ (Pure Literal) 281 Beispiel 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 ¬P3 P5 d ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Pure Literal) ⇒ (UnitProp) 282 Beispiel 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 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Backtrack) ¬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 ⇒ (Pure Literal) ⇒ (UnitProp) 283 Beispiel 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 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Backtrack) ¬P1 ¬P1 ¬P3 P5 d ¬P1 ¬P3 P5 d ¬P6 ¬P1 ¬P3 ¬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) 284 Beispiel 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 ¬P3 P5 d ¬P6 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Backtrack) ¬P1 ¬P3 ¬P5 P6 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ¬P1 ¬P1 ¬P3 P5 d ¬P1 ¬P3 ¬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) ⇒ (UnitProp) 285 Beispiel 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 ¬P3 P5 d ¬P6 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ⇒ (Backtrack) ¬P1 ¬P3 ¬P5 P6 ||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ¬P1 ¬P1 ¬P3 P5 d ¬P1 ¬P3 ¬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) ⇒ (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 DPLL Das DPLL-Verfahren (Davis-Putnam-Logemann-Loveland) • 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 287 Andere Kalküle • 1-Resolution • Das Davis-Putnam-Verfahren • Semantische Tableaux 288 2.8 Der aussagenlogische Tableaukalkül 289 Der aussagenlogische Tableaukalkül Geschichte • Beth (1955), Hintikka (1955) and Schütte (1956) • Analytic tableaus: Smullyan 1968 • Automatisches Beweisen/Mechanisierung: Kanger 1957, Prawitz 1960, Wang 1960, Davis 1960, Maslov 1968. • Weiterentwicklung/Verfeinerungen: Loveland 1968 (Model elimination), Kowalski, Kuehner 1971 (SL-resolution) Bibel 1975, Andrews 1976 ... 290 Der aussagenlogische Tableaukalkül Wesentliche Eigenschaften • Widerlegungskalkül: Testet auf Unerfüllbarkeit • Beweis durch Fallunterscheidung • Top-down-Analyse der gegebenen Formeln 291 Der aussagenlogische 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 292 Formeltypen Konjunktive Formeln: Typ α • ¬¬F • F ∧G • ¬(F ∨ G ) • ¬(F → G ) Disjunktive Formeln: Typ β • ¬(F ∧ G ) • F ∨G • F →G 293 Formeltypen Konjunktive Formeln: Typ α • ¬¬F • F ∧G • ¬(F ∨ G ) • ¬(F → G ) Zuordnungsregeln Formeln / Unterformeln α F ∧G α1 α2 F G ¬F ¬G ¬(F → G ) F ¬G ¬¬F F ¬(F ∨ G ) 294 Formeltypen Disjunktive Formeln: Typ β • ¬(F ∧ G ) • F ∨G • F →G Zuordnungsregeln Formeln / Unterformeln β β1 β2 ¬(F ∧ G ) ¬F ¬G F G ¬F G F ∨G F →G 295 Regeln des (aussagenlogischen) Tableaukalküls p∧q | p | q α Konjunktiv α1 α2 β β1 | β2 p∨q Disjunktiv p φ ¬φ ⊥ / Widerspruch \ q φ ¬φ | ⊥ 296 Instanzen der α und β-Regel Instanzen der α-Regel P ∧Q ¬(P ∨ Q) ¬(P → Q) ¬¬P P ¬P P P Q ¬Q ¬Q Instanzen der β-Regel P ∨Q ¬(P ∧ Q) P→Q P | Q ¬P | ¬Q ¬P | Q 297 Ein Tableau für {P ∧ ¬(Q ∨ ¬R), ¬Q ∨ ¬R} 1. P ∧ ¬(Q ∨ ¬R) 2. ¬Q ∨ ¬R PP PP ¬R 3. ¬Q 5. P 10. P 6. ¬(Q ∨ ¬R) 11. ¬(Q ∨ ¬R) 7. ¬Q 8. ¬¬R 9. R 4. 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.) 298 Determinismus von Kalkül und Regeln Determinismus • Die Regeln sind alle deterministisch • Der Kalkül aber nicht: Auswahl der nächsten Formel, auf die eine Regel angewendet wird Heuristik • Nicht-verzweigende Regeln zuerst: α vor β Nota bene: Dieselbe Formel kann mehrfach (auf verschiedenen Ästen) verwendet werden 299 Formale Definition des Kalküls Definition Tableau: Binärer Baum, dessen Knoten mit Formeln markiert sind Definition Tableauast: Maximaler Pfad in einem Tableau (von Wurzel zu Blatt) 300 Formale Definition des Kalküls Sei M eine Formelmenge 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. 301 Formale Definition des Kalküls Nota bene: Alle Äste in einem Tableau für M enthalten implizit alle Formeln in M 302 Formale Definition des Kalküls Definition. Ast B eines Tableaus für M ist geschlossen, wenn F , ¬F ∈ B ∪ M 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 303 Beispiel Zu zeigen: (P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S)) allgemeingültig Wir zeigen, dass ¬[(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S))] unerfüllbar ist. 304 Beispiel 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 ] 7. ¬S [52 ] hhhhh hhh 8. ¬P 9. [21 ] Q→R [22 ] XXXX X 10. P [41 ] 11. S [42 ] geschlossenes Tableau. 305 Klauseltableau M Menge von Klauseln Änderungen • Keine α-Regel • Erweiterungsregel kann Verzweigungsgrad > 2 haben • Alle Knoten im Tableau enthalten Literale 306 Klauseltableau: Beispiel M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} } 307 Klauseltableau: Beispiel M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} } ¬P 1. TTT i i i TTTT i i i i TT iii Q 308 Klauseltableau: Beispiel M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} } ¬P P u uuu 1. UUUU h h h h UUUU h h h h UU h hh Q JJ KKK w JJ w w w ¬Q P ¬Q 309 Klauseltableau: Beispiel M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} } P g 1. VVVVV g g g VVVV gg g g g VV gg Q LL ¬P K u K LL u u K u u u u u ¬Q ¬Q O P I p O I p s OO I p s s p s P Q R ¬P ¬Q 310 Klauseltableau: Beispiel M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} } P ⊥ 1. VVVV g g g g VVVV g g g g VVV gggg Q LL ¬P K u K LL u u K u u u u u ¬Q ¬Q P P I p P I p s PP p I s p s p s P Q R ¬P ¬Q ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ 311 Korrektheit und Vollständigkeit des Tableaukalküls Theorem. Eine Formelmenge M ist unerfüllbar genau dann, wenn es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt 312 Korrektheit und Vollständigkeit des Tableaukalküls Theorem. Eine Formelmenge M ist unerfüllbar genau dann, wenn es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt 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 Korrektheit und Vollständigkeit des Tableaukalküls Theorem. Eine Formelmenge M ist unerfüllbar genau dann, wenn es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt Vollständigkeit: “⇒” 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). 314 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. ... alternativ: Falls M erfüllbar ist, hat M kein geschlossenes Tableau. 315 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. ... 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 Ein 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 2. Ein geschlossenes Tableau ist nicht erfüllbar ... Also: Kein geschlossenes Tableau für erfüllbare Formelmenge 316 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 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 Induktionsbasis: T wurde in einem Schritt gebildet. Initialisierung Das Tableau, das nur aus dem Knoten 1 besteht, ist ein Tableau für M da M erfüllbar ist, ist ein solches Tableau erfüllbar 317 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 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). 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 ′ . Fall 1: B ′ 6= B. Dann ist B ′ auch Ast in T , d.h. T erfüllbar. 318 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 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). 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 ′ . Fall 2: B ′ = B d.h. B erfüllbar. Sei A Modell für die Formeln NB auf B. 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. 319 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 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). 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 ′ . Fall 2: B ′ = B d.h. B erfüllbar. Sei A Modell für die Formeln NB auf B. 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. 320 Lemma 2: 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 Lemma 1. Jedes Tableau für eine erfüllbare Formelmenge M ist erfüllbar Lemma 2. Ein geschlossenes Tableau ist nicht erfüllbar 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. 321 Kern des Vollständigkeitsbeweises Definition. Ein Tableau heißt voll expandiert, wenn • jede Regel • auf jede passende Formel • auf jedem offenen Ast angewendet worden ist. Lemma 3. B offener Ast in voll expandiertem Tableau, dann B ∪ M erfüllbar. ... Also: Voll expandiertes Tableau für unerfüllbares M ist geschlossen 322 Lemma 3: Beweis Lemma 3. B offener Ast in voll expandiertem Tableau, dann B ∪ M erfüllbar. Beweis: (für klausale Tableaux) 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). 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). Fall Fall Fall Fall 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. 323 Klauseltableau: Einschränkungen des Suchraums Regularität: Kein Literal darf auf einem Ast mehr als einmal vorkommen Schwache Konnektionsbedingung (Connection calculus) Bei Erweiterung von Ast B muss mindestens eines der neuen Literale komplementär zu Literal in B ∪ M sein. Starke Konnektionsbedingung (Modellelimination) Bei Erweiterung von Ast B muss mindestens eines der neuen Literale komplementär zum Blatt von B sein – außer beim ersten Schritt. 324 Klauseltableau: Einschränkungen des Suchraums Theorem (hier ohne Beweis) Regularität, starke und schwache Konnektionsbedingung erhalten Vollständigkeit. Jedoch Bei starker Konnektionsbedingung kann ungünstige Erweiterung in Sackgasse führen. (bei schwacher Konnektionsbedinung nicht) Beispiel: M = {{P}, {¬Q}, {¬P, Q}, {¬P, R}} Zuerst {¬P, Q}: OK Zuerst {¬P, R}: Sackgasse 325 Klauseltableau: Weiteres Beispiel Signatur: F : Flugreise V : Vollpension M: Meer P: Pool 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) Gibt es keinen Pool, so besteht Tochter Lisa auf einer Flugreise und Urlaub am Meer und darauf, dass keine Vollpension gebucht wird. ¬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. (P ∧ ¬F ) ∨ (V ∧ ¬P) 326 Klauseltableau: Weiteres Beispiel Behauptung Dann müssen sie ans Meer mit Vollpension, mit Pool und ohne Flug. M ∧ V ∧ P ∧ ¬F Zu zeigen: {¬F → (V ∧ M), (M ∧ F ) ∨ (M ∧ ¬P) ∨ (V ∧ P), ¬P → (F ∧ M ∧ ¬V ), (P ∧ ¬F ) ∨ (V ∧ ¬P)} |= M ∧ V ∧ P ∧ ¬F 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) 327 Klauseltableau: Weiteres Beispiel ¬F → (V ∧ M) (M ∧ F ) ∨ (M ∧ ¬P) ∨ (V ∧ P) ¬P → (F ∧ M ∧ ¬V ) (P ∧ ¬F ) ∨ (V ∧ ¬P) 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 328 Klauseltableau: Weiteres Beispiel Beobachtung Konstruktion des Konnektionstableaus • bei Beginn mit Klausel (1) • mit Regularität • mit starker Konnektionsbedingung Dann: Nahezu deterministische Beweiskonstruktion 329 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 1 F V V F P P P V P F V F F M M V P F 330 Terminierung Aussagenlogische Resolution (für Klauselmengen in Mengennotation) terminiert, für jede endliche Menge von Klauseln. Beweis: Es gibt nicht mehr als 22n Klauseln (in Mengennotation) mit n Aussagenvariablen. 7→ nicht mehr als (22n )2 mögliche Anwendungen der Resolutionsregel. 331 Terminierung Das Davis-Putnam und das DPLL Verfahren terminieren ebenfalls. Beweis (Idee auf Beispiel) 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 ¬P1 ¬P3 P5 d ¬P1 ¬P3 P5 d ¬P6 ¬P1 ¬P3 ¬P5 ¬P1 ¬P3 ¬P5 P6 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬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) ⇒ (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. 332 Terminierung Ähnliches Resultat für Tableaux? 333 Terminierung 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 Zusammenfassung: Tableaukalkül Beweis durch Widerspruch und Fallunterscheidung • Tableauregeln (mit uniformer Notation) • Formale Definition des Kalküls • Korrektheit und Vollständigkeit • Klauseltableau • Regularität • Schwache und starke Konnektionsbedingung • Strikte Tableaux • Terminierung 335 3. Prädikatenlogik 336 Rückblick: Vor- und Nachteile von Aussagenlogik + Aussagenlogik ist deklarativ: Syntaxelemente entsprechen Fakten + 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 + Bedeutung in Aussagenlogik ist kontextunabhängig (im Gegensatz zu natürlicher Sprache) − 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 Rückblick: Vor- und Nachteile von Aussagenlogik + Aussagenlogik ist deklarativ: Syntaxelemente entsprechen Fakten + 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 + Bedeutung in Aussagenlogik ist kontextunabhängig (im Gegensatz zu natürlicher Sprache) − Aussagenlogik hat nur beschränkte Ausdruckskraft (im Vergleich zu natürlicher Sprache) Beispiele: • Die Aussage “Jede natürliche Zahl ist entweder gerade oder ungerade” erfordert eine Formel für jede Zahl. 338 Prädikatenlogik Reichere Struktur • 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, .. =, ≥, ... • Funktionen +, Mitte von, Vater von, Anfang von, ... 339 Weitere Logiken Logik Aussagenlogik Fakten wahr/falsch Prädikatenlogik Objekte, Funktionen, wahr/falsch Relationen Temporallogik Fakten, Zeitpunkte wahr/falsch Mehrwertige Logik Fakten wahr/falsch/unbekannt Fuzzy-Logik Fakten [0, 1] ... ... ... 340 Syntax der Prädikatenlogik: Logische Zeichen Wie in der Aussagenlogik ⊤ Symbol für die Formel “wahr” (Formel, die immer wahr ist) ⊥ Symbol für die Formel “falsch” (Formel, die immer falsch ist) ¬ Negationssymbol (“nicht”) ∧ Konjunktionssymbol (“und”) ∨ Disjunktionssymbol (“oder”) → Implikationssymbol (“wenn . . . dann”) ↔ Symbol für Äquivalenz (“genau dann, wenn”) ( ) die beiden Klammern Quantoren Allquantor (“für alle”) Existenzquantor (“es gibt”) 341 E A Syntax der Prädikatenlogik: Vokabular Signatur Zweck: Festlegung der nichtlogischen Symbole Σ = (Ω, Π), 342 Syntax der Prädikatenlogik: Vokabular Definition Prädikatenlogische Signatur: Paar Σ = (Ω, Π) wobei: • Ω eine Menge von Funktionssymbolen f mit Stelligkeit n ≥ 0, geschrieben f /n, z.B. 2/0, koblenz/0, c/0, sqrt/1, leftLegOf/1, +/2, -/2 • Π Menge von Prädikatensymbolen p mit Stelligkeit m ≥ 0, geschrieben p/m z.B. bruderVon/1, > /2, ≈ /2, . . . Bemerkung: Das Gleichheitsprädikat ≈ kann (muss aber nicht) enthalten sein. Es wird infix notiert. 343 Syntax der Prädikatenlogik: Vokabular Definition. Funktionsssymbole mit Stelligkeit n = 0 heißen Konstante z.B. 2, koblenz, c Definition. Prädikatensymbole mit Stelligkeit n = 0 heißen Aussagenvariablen 344 Syntax der Prädikatenlogik: Vokabular Variablen 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 Terme 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) Mit TΣ (X ) bezeichnen wir die Menge der Σ-Terme Menge TΣ (X ) der Σ-Terme: Die kleinste Menge mit: X ⊆ TΣ (X ) Wenn • f ∈ Ω, • n ist die Stelligkeit von f • t1 , . . . , tn ∈ TΣ (X ) dann f (t1 , . . . , tn ) ∈ TΣ (X ) 346 Terme 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 . 347 Beispiele Σ = (Ω, Π) Ω = {Jan/0, Vater /1, Mutter /1} {x, y , z} ⊆ X Terme: x Jan Vater (x) Vater (Jan) Mutter (x) Mutter (Jan) Vater (Mutter (x)) Vater (Mutter (Jan)) 348 Beispiele Σ = (Ω, Π) Σ = {0/0, 1/0, succ/1, +/2} {x, y , z} ⊆ X Terme: x, y , z, 0, 1 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 Präfix 349 Atome Atome (Atomare Formeln) über Σ genügen dieser Syntax: A, B h ::= | p(s1 , ..., sm ) , p/m ∈ Π (s ≈ t) (Gleichung) i 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 350 Beispiele Σ = (Ω, Π) Ω = {Jan/0, Anna/0, Vater /1, Mutter /1} Π = {Mann/1, Frau/1, Bruder /2, ≈ /2} {x, y , z} ⊆ X Atome: Mann(x) Mann(Jan) Mann(Anna) Mann(Vater (x)) Frau(Vater (Jan)) Mann(Vater (Jan)) Bruder (x, y ) Bruder (x, Jan) Bruder (x, Anna) Vater (Jan) ≈ Vater (Anna) Vater (x) ≈ Mutter (y ) 351 Beispiele Σ = (Ω, Π) Ω = {0/0, 1/0, succ/1, +/2} Π = {≤, ≈} {x, y , z} ⊆ X 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)), + (x, 0) ≈ +(x, 1), ≤ (+(x, +(succ(y ), 1)), z) 352 Literale L ::= | A (positives Literal) ¬A (negatives Literal) 353 Klauseln C, D ::= | ⊥ L1 ∨ . . . ∨ Lk , k ≥ 1 (leere Klausel) (nichtleere Klausel) 354 Formeln Formeln über Σ: ::= ⊥ (Falsum) | ⊤ (Verum) | A (atomare Formel) | ¬F | (F ∧ G ) (Konjunktion) | (F ∨ G ) (Disjunktion) | (F → G ) (Implikation) | (F ↔ G ) (Äquivalenz) | | (Negation) A xF (Allquantifizierung) E F, G, H xF (Existenzquantifizierung) 355 Formeln Menge ForΣ der Formeln über Σ: Die kleinste Menge, die • 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 E A xF ∈ ForΣ , xF ∈ ForΣ 356 Konventionen zur Notation • Klammereinsparungen werden nach folgenden Regeln vorgenommen: – ¬ >p ∧ >p ∨ >p → >p ↔ (Präzedenzen), – ∨ und ∧ sind assoziativ und kommutativ. • Qx1 , . . . , xn F für Qx1 . . . Qxn F . • 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() 357 Beispiel “Alle, die in Koblenz studieren, sind schlau” Ω = {koblenz/0} Π = {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 Term } | {z Atom } } } 358 Beispiel “Es gibt jemand, der in Landau studiert und schlau ist” Ω = {landau/0} Π = {studiertIn/2, schlau/1} E x(studiertIn( x , landau ) ∧ schlau( x )) |{z} |{z} | {z } Variable Konstante Term | | | {z Variable Term Atom {z Formel {z Formel Term } | {z Atom } } } 359 Beispiel: Peano-Arithmetik ΣPA = (ΩPA , ΠPA ) ΩPA = {0/0, +/2, ∗/2, s/1} ΠPA = {≤ /2, < /2, ≈ /2} +, ∗ infix; ∗ >p + Formelbeispiele über dieser Signatur sind E E A A A A E A 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 360 Bemerkungen zum Beispiel 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. 361 Beispiel: Tante Agatha 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. Wer hat Tante Agatha ermordet? 362 Beispiel: Tante Agatha 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)) 363 Beispiel: Tante Agatha Ein Mörder hasst immer sein Opfer und ist niemals reicher als sein Opfer. A A ◮ 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. A ◮ ¬ hasst(a, x) ↔ x ≈ b) x (¬ 364 Beispiel: Tante Agatha Der Butler hasst jeden, der nicht reicher ist als Tante Agatha. A ◮ ¬ reicher(x, a) → hasst(b, x)) x (¬ Der Butler hasst jeden, den Tante Agatha gehasst hat. A ◮ 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 Gebundene und freie Variablen A E 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. Formeln ohne freie Variablen heißen Satzformen. Variablenfreie Formeln heißen Grundformeln. 366 Beispiel Bindungsbereich y Bind. }| z }| { ( x p(x) A z { → q(x, y )) 367 A Beispiel E A p(z) → x (q(x, z) ∧ z r (y , z)) • x gebunden • y frei • z frei und gebunden 368 Substitution eines Termes für eine Variable 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: 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] = = = = = = = = = = = 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 369 Problematik 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. Sollte y in s auftreten, wären sonst diese Auftreten nach erfolgter Substitution gebunden. 370 Beispiel Σ = (Ω, Π), 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 = A E = A E = A E 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 = 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)) 371 Substitution allgemein Definition. Substitutionen sind Abbildungen σ : X → TΣ (X ), so dass der Bereich von σ, d.h. die Menge 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σ. 372 Anwendung einer Substitution 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 Σ = (Ω, Π), 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]) v ((x ≈ g (y , v ))[g (y , z)/x, f (x)/y , a/z]) v (g (y , z) ≈ g (f (x), u)) 374 3.2 Semantik 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. In der klassischen Logik (zurückgehend auf Aristoteles) gibt es nur“ die ” zwei Wahrheitswerte wahr“ und falsch“, die wir mit 1 und 0 bezeichnen. ” ” 376 Strukturen Definition. Eine Σ-Struktur (bzw. Σ-Interpretation bzw. Σ-Modell) ist ein Tripel A = (U, (fA : U n → U)f /n∈Ω , (pA ⊆ U m )p/m∈Π ) 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 Variablen für sich haben keine Bedeutung. Hierfür müssen Wertebelegungen (Valuationen) explizit oder implizit aus dem Kontext zur Verfügung stehen. Definition. Unter einer (Variablen-) Belegung oder einer Valuation (über einer Σ-Struktur A) versteht man eine Abbildung β:X →U 378 Wert eines Terms in A bzgl. β Durch strukturelle Induktion definieren wir: A(β)(x) = β(x), x ∈X A(β)(f (s1 , . . . , sn )) = fA (A(β)(s1 ), . . . , A(β)(sn )), f /n ∈ Ω 379 Wert eines Terms in A bzgl. β Wert eines Terms in A bzgl. β, A(β)(t): • Falls t = x ∈ X : A(β)(t) = β(x) • Falls t = c eine Konstante: A(β)(t) = cA • Falls t = f (t1 , . . . , tn ): A(β)(t) = fA (A(β)(t1 ), . . . , A(β)(tn )) 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 N (β)((x + (y + z)) + (z + 0)) = = (β(x) +N (β(y ) +N β(z))) +N (β(z) +N 0N ) = = (5 + (10 + 3)) + (3 + 0) = 21 380 Wahrheitswert einer Formel in A bzgl. β Die Menge der Wahrheitswerte sei {0, 1}. A(β) : ForΣ → {0, 1} wird induktiv über Aufbau von F wie folgt definiert: A(β)(⊥) = 0 A(β)(⊤) = 1 381 Wahrheitswert einer Formel in A bzgl. β A(β)(p(s1 , . . . , sn )) = 1 g.d.w. (A(β)(s1 ), . . . , A(β)(sn )) ∈ pA A(β)(s ≈ t) = 1 g.d.w. A(β)(s) = A(β)(t) 382 Wahrheitswert einer Formel in A bzgl. β A(β)(¬F ) = 1 g.d.w. A(β)(F ) = 0 A(β)(F ρG ) = Bρ (A(β)(F ), A(β)(G )) mit Bρ die ρ zugeordnete Boolesche Funktion 383 Wahrheitswert einer Formel in A bzgl. β A A(β)( xF ) = min{A(β[x → a])(F )} = a∈U E 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 384 Beispiel UN = {0, 1, 2, . . .} 0N = 0 ∈ UN sN : UN → UN , sN (n) = n + 1 +N : UN2 → UN , +N (n, m) = n + m ∗N : UN2 → UN , ∗N (n, m) = n ∗ m ≤N = “kleiner-gleich” ⊆ UN2 <N = “kleiner” ⊆ UN2 Mit β(x) = 1, β(y ) = 3 ergibt sich beispielsweise: 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 ) 385 Modelle, Gültigkeit, Erfüllbarkeit 386 Gültigkeit und Erfüllbarkeit Definition. F gilt in A unter β: A, β |= F g.d.w. A(β)(F ) = 1 Definition. F gilt in A (A ist Modell von F ): A |= F g.d.w. A, β |= F , für alle β : X → UA Definition. F ist (allgemein-) gültig: |= F g.d.w. A |= F , für alle A ∈ Σ-Str F heißt erfüllbar gdw. es A und β gibt, so daß A, β |= F . Sonst heißt F unerfüllbar. 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 . 388 Gültigkeit und Unerfüllbarkeit Nachweis von Gültigkeit (und damit Folgerung oder Äquivalenz) durch Unerfüllbarkeitstest: F gültig genau dann, wenn ¬F unerfüllbar 389 Universelle Quantifizierung Intuition A xF entspricht in etwa der (unendlichen) Konjunktion aller Instanzen von F Beispiel: A x(studiertIn(x, koblenz) → schlau(x)) entspricht: (studiertIn(student1, koblenz) → schlau(student1)) ∧ (studiertIn(student2, koblenz) → schlau(student2)) ∧ ... ∧ (studiertIn(koblenz, koblenz) → schlau(koblenz)) 390 Universelle Quantifizierung Faustregel A → ist der logische (Top-level-)Operator mit Häufiger Fehler A Verwendung von ∧ mit Beispiel “Alle, die in Koblenz studieren, sind schlau” x(studiertIn(x, koblenz) → schlau(x)) A Falsch: A Richtig: x(studiertIn(x, koblenz) ∧ schlau(x)) “Alle studieren in Koblenz und sind schlau”, d.h. “Alle studieren in Koblenz und alle sind schlau” 391 Existenzielle Quantifizierung Intuition. E xF entspricht in etwa der (unendlichen) Disjunktion aller Instanzen von F . Beispiel: E x(studiertIn(x, landau) ∧ schlau(x)) entspricht (studiertIn(student1, landau) ∧ schlau(student1)) ∨ (studiertIn(student2, landau) ∧ schlau(student2)) ∨ ... ∨ (studiertIn(landau, landau) ∧ schlau(landau)) 392 Universelle Quantifizierung Faustregel E ∧ ist der logische (Top-level-)Operator mit Häufiger Fehler E Verwendung von → mit Beispiel “Es gibt jemand, der in Landau studiert und schlau ist” x(studiertIn(x, landau) ∧ schlau(x)) E Falsch: E 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 393 Eigenschaften von Quantoren Quantoren gleicher Art kommutieren A A A A x y ist das gleiche wie y x E E E E x y ist das gleiche wie y x Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt: (1) A A A A (2) E E E E x yF ≡ y xF x yF ≡ y xF 394 Eigenschaften von Quantoren Verschiedene Quantoren kommutieren NICHT Beispiel: E A x y Mutter (y , x) Jeder hat eine Mutter (richtig) A E y x Mutter (y , x) Es gibt eine Person, die die Mutter von jedem ist (falsch) Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt: A E E A E A A E x y F |= y x F Es gibt eine Signatur Σ = (Ω, Π) und eine Formel F mit: x y F 6|= y x F 395 Eigenschaften von Quantoren Dualität der Quantoren E A x... ist das gleiche wie ¬ x¬... A E x... ist das gleiche wie ¬ x¬... Beispiel: E A x mag(x, eiskrem) ist das gleiche wie ¬ x ¬mag(x, eiskrem) A E x mag(x, broccoli) ist das gleiche wie ¬ x ¬mag(x, broccoli) Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt: (1) A E (2) E A x F ≡ ¬ x ¬F x F ≡ ¬ x ¬F 396 Eigenschaften von Quantoren A distributiert über ∧ A A A x(... ∧ ...) ist das gleiche wie ( x...) ∧ ( x...) Beispiel A x (studiert(x) ∧ arbeitet(x)) ist das gleiche wie A A ( x studiert(x)) ∧ ( x arbeitet(x)) Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F , G gilt: A A A x(F ∧ G ) ≡ xF ∧ xG 397 Eigenschaften von Quantoren E distributiert über ∨ E E E x(... ∨ ...) ist das gleiche wie ( x...) ∨ ( x...) Beispiel E x (eiskrem(x) ∨ broccoli(x)) ist das gleiche wie E E ( x eiskrem(x)) ∨ ( x broccoli(x)) Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F , G gilt: E E E x (F ∨ G ) ≡ ( x F ) ∨ ( x G ) 398 Eigenschaften von Quantoren A distributiert NICHT über ∨ A A A x(... ∨ ...) ist NICHT das gleiche wie ( x...) ∨ ( x...) Beispiel A x (eiskrem(x) ∨ broccoli(x)) ist NICHT das gleiche wie A A ( x eiskrem(x)) ∨ ( x broccoli(x)) A x (gerade(x) ∨ ungerade(x)) ist NICHT das gleiche wie A A ( x gerade(x)) ∨ ( x ungerade(x)) Es gibt eine Signatur Σ = (Ω, Π) und Σ-Formeln F , G mit: A A A x(F ∨ G ) 6≡ xF ∨ xG 399 Eigenschaften von Quantoren E distributiert NICHT über ∧ E E E x(... ∧ ...) ist NICHT das gleiche wie ( x...) ∧ ( x...) Beispiel E E x (gerade(x) ∧ ungerade(x)) ist NICHT das gleiche wie ( x gerade(x)) ∧ ( x ungerade(x)) E Es gibt eine Signatur Σ = (Ω, Π) und Σ-Formeln F , G mit: E E E x(F ∧ G ) 6≡ xF ∧ xG 400 Eigenschaften von Quantoren Quantoren gleicher Art kommutieren Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt: (1) x yF ≡ y xF (2) x yF ≡ y xF E E A A E E A A Verschiedene Quantoren kommutieren NICHT 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 A E E A E A A E Dualität der Quantoren Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt: x F ≡ ¬ x ¬F (1) (2) x F ≡ ¬ x ¬F A E 401 E A Eigenschaften von Quantoren distributiert über ∧ A Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F , G gilt: x(F ∧ G ) ≡ xF ∧ xG A A A distributiert über ∨ E Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F , G gilt: x (F ∨ G ) ≡ ( x F ) ∨ ( x G ) E E E distributiert NICHT über ∨ A Es gibt eine Signatur Σ = (Ω, Π) und Σ-Formeln F , G mit: x(F ∨ G ) 6≡ xF ∨ xG A A A distributiert NICHT über ∧ E Es gibt eine Signatur Σ = (Ω, Π) und Σ-Formeln F , G mit: x(F ∧ G ) 6≡ xF ∧ xG E 402 E E Beispiele: Familienverhältnisse • “Brüder sind Geschwister” x y (bruder (x, y ) → geschwister (x, y )) 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 ))) E E A A • Definition für “Bruder, der nicht nur Halbbruder ist” x ybruder (x, y ) ↔ (¬(x ≈ y )∧ A A E E m v (¬(m = v )∧ elternteil(m, x) ∧ elternteil(v , x) elternteil(m, y ) ∧ elternteil(v , y ))) 403 Strukturelle Induktion Sei p(F ) eine Eigenschaft der Formeln in Prädikatenlogik Behauptung: Für alle Formeln F , p(F ) gilt Beweis durch Strukturelle Induktion: Induktionsbasis: Zu zeigen: p(F ) gilt für F ∈ {⊤, ⊥} und für alle atomaren Formeln. Induktionsvoraussetzung: Sei F eine Formel (nicht atomar oder ⊤ oder ⊥). Annahme: p(G ) gilt für alle Teilformeln G von F (mit G 6= F ) Induktionsschritt: Zu zeigen: p(F ) gilt: 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 A xG E 404 Strukturelle Induktion Sei p(t) eine Eigenschaft der Terme in Prädikatenlogik Behauptung: Für alle Terme t, p(t) gilt Beweis durch Strukturelle Induktion: Induktionsbasis: Zu zeigen: p(t) gilt für t ∈ X und für alle Konstanten. Induktionsvoraussetzung: Sei t ein Term (nicht Variable oder Konstante). Annahme: p(s) gilt für alle Teilterme s von t (mit s 6= t) Induktionsschritt: Zu zeigen: p(t) gilt: Fallunterschied über alle f ∈ Ω mit t = f (t1 , . . . , tn ). 405 Substitutionen und Valuationen 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 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 ) 406 Substitutionen und Valuationen 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 Beweis: Strukturelle Induktion 1. Induktionsbasis: Zu zeigen: Die Eigenschaft gilt für ⊤, ⊥ und alle atomaren Formeln. Fall 1: F = ⊤ Dann F [t/x] = ⊤; A(β)(F [t/x])=A(β)(⊤)=1=A(β[x→A(β)(t)])(⊤)=A(β[x→A(β)(t)])(F ) Fall 2: F = ⊥ Dann F [t/x] = ⊥; A(β)(F [t/x])=A(β)(⊥)=0=A(β[x→A(β)(t)])(⊥)=A(β[x→A(β)(t)])(F ). 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. 407 Substitutionen und Valuationen 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 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 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 408 Substitutionen und Valuationen 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 . A Fall 6: 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 Substitutionen und Valuationen 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 . Fall 6.3: y 6= x, t enthält y . Dann F [t/x] = A Fall 6: F = y ′ G [y ′ /y ][t/x]. 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 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 Substitutionen und Valuationen 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 E Fall 7: F = yG . Ähnlich zu Fall 6. 411 Substitutionen und Valuationen 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. 412 Substitutionen und Valuationen 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 Umbenennung von Variablen Lemma Für alle Σ-Formeln F , Variablen x gilt: A A xF ≡ z F [z/x] wobei z eine neue Variable ist. 414 2.3 Algorithmische Probleme 415 Algorithmische Probleme Gültigkeit(F ): |= F ? Erfüllbarkeit(F ): F erfüllbar? Modelltest(F ,A): A |= F ? (Σ fest) (Σ fest) (Σ fest) 416 Ausblick: Kalküle, Entscheidbarkeit Kalküle Es gibt korrekte und vollständige Kalküle für Prädikatenlogik (z.B. Resolution) 417 Ausblick: Kalküle, Entscheidbarkeit Kalküle 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 418 Ausblick: Kalküle, Entscheidbarkeit Kalküle 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 419 Rekursiv Aufzählbar Informelle Definition. Als rekursiv aufzählbare Menge (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. Ä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. 420 Zusammenfassung: Syntax und Semantik • 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 Unser Ziel Kalküle zur systematischen Überprüfung von Erfüllbarkeit (für Formeln und/oder Formelmengen) 422 2.4 Normalformen 423 Normalformen, Skolemisierung, Herbrandmodelle Vorteile von Normalformen • Reduktion der logischen Konzepte • einfache Datenstrukturen für Beweisverfahren 424 Negationsnormalform Definition. Eine Formel F ∈ ForΣ ist in Negationsnormalform (NNF), falls: • →, ↔ kommen in F nicht vor • jedes Negationszeichen in F steht direkt vor einem Atom (insbes. auch kein ¬¬) 425 Negationsnormalform Definition. Eine Formel F ∈ ForΣ ist in Negationsnormalform (NNF), falls: • →, ↔ kommen in F nicht vor • jedes Negationszeichen in F steht direkt vor einem Atom (insbes. auch kein ¬¬) Beispiele: NNF: P, ¬P, (¬P ∨ Q) ∧ (R ∨ (Q ∧ ¬P)) p(x, y ) ∨ ¬q(y ) nicht NNF: ¬¬P, ¬(P ∨ Q) p(x, y ) → q(x) 426 Bereinigte Formeln Definition. Eine Formel F ∈ ForΣ ist bereinigt, falls: • Keine Variable in F sowohl gebunden als auch frei vorkommt • Keine Variable mehr als einmal in F quantifiziert ist 427 Bereinigte Formeln Definition. Eine Formel F ∈ ForΣ ist bereinigt, falls: • Keine Variable in F sowohl gebunden als auch frei vorkommt • Keine Variable mehr als einmal in F quantifiziert ist Beispiele: Bereinigt P ∨Q E E A x y (p(x) ∨ q(x, y ) ∨ z r (x, z)) 428 Bereinigte Formeln Definition. Eine Formel F ∈ ForΣ ist bereinigt, falls: • Keine Variable in F sowohl gebunden als auch frei vorkommt • Keine Variable mehr als einmal in F quantifiziert ist Beispiele: Bereinigt P ∨Q E E A x y (p(x) ∨ q(x, y ) ∨ z r (x, z)) Nicht bereinigt A p(x) ∨ x q(x) A A ( x p(x)) ∨ ( x q(x)) 429 Pränexe Normalform Definition: Pränexe Formeln sind von der Form 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. 430 Pränexe Normalform Definition: Pränexe Formeln sind von der Form 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. Beispiele In Pränexnormalform p(x) ∨ q(x) E A x y (p(x) ∨ q(y )) Nicht in Pränexnormalform E A ( x p(x)) ∨ ( y q(y )) 431 Pränexe Normalform Theorem. Zu jeder Formel F ∈ ForΣ gibt es eine äquivalente Formel in Pränexnormalform 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) 432 Beispiel 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 )) 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 E A 2. NNF E A z ′′ r (z ′′ , x, y )) ¬ (DeMorgan) (De Morgan) E A A A E E A E E =: z ′ ¬r (x ′ , y , z ′ )) ∨ ((p(z) ∧ q(x, z)) ∧ ≡ ¬ ≡ A E x ′ ((¬p(x ′ ) ∧ ¬q(x ′ , y )) ∨ ≡ A ≡ 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 ≡ ¬ F2 3. Alle Quantoren nach vorne 7→ Pränexnormalform E | ′ A 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 Pränexe Normalform Theorem. Zu jeder Formel F ∈ ForΣ gibt es eine äquivalente Formel in Pränexnormalform Direkter Beweis: Strukturelle Induktion Induktionsbasis: ⊤, ⊥ und jede atomare Formel F = q(t1 , . . . , tn ) sind in Pränexnormalform, d.h. sind äquivalent zu einer Formel in Pränexnormalform. Sei F eine Formel, die nicht ⊤, ⊥ und nicht atomar ist. Induktionsvoraussetzung (I.V.): Jede Teilformel G von F (G 6= F ) ist äquivalent zu einer Formel in Pränexnormalform. Induktionsschritt: Zu zeigen: F äquivalent zu einer Formel in Pränexnormalform. 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 ′ ′ ′ ′ ′ ′ ′ ′ ≡ Q1 x1 . . . Qn xn Q1 y1 . . . Qm ym (G1 [xi /xi ] ∧ G2′ [yi′ /yi ]) = A I .V . Fall 1: F = ¬G ≡ ¬(Q1 x1 . . . Qn xn G ′ ) ≡ Q 1 x1 . . . Q n xn ¬G ′ (wobei ). (Bereinigung) (Quantoren nach vorne) (Pränexnormalform) Fall 3,4,5: F = G1 opG2 (op ∈ {∨, →, ↔}) analog A Fall 6: F = x(Q1 x1 . . . Qn xn G ′ ) A I .V . xG ≡ Fall 6: F = (Pränexnormalform) E xG analog 434 Pränexe Normalform Theorem. Zu jeder Formel F ∈ ForΣ gibt es eine äquivalente Formel in Pränexnormalform 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) 435 Pränexe Normalform Äquivalenzbeweis Folgt aus: A E E A ¬ F ≡ ¬F ¬ F ≡ ¬F Aussagenlogische Umformungen zur Berechnung der NNF: Äquivalenzerhaltend Falls x nicht in G vorkommt: A A A A E E E E ( xF ) ∧ G ≡ ( xF ) ∨ G ≡ x(F ∧ G ) x(F ∨ G ) ( xF ) ∧ G ≡ x(F ∧ G ) ( xF ) ∨ G ≡ x(F ∨ G ) 436 Pränexe Normalform Alternatives Verfahren (ohne Bereinigung, ohne NNF) Herstellung von pränexer Normalform durch ⇒P : (F ↔ G ) ⇒P (F → G ) ∧ (G → F ) ¬QxF ⇒P Qx¬F (QxF ρ G ) ⇒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, ρ ∈ {∧, ∨, →} und E E = = A A Hierbei ist Q der zu Q duale Quantor, d.h. (¬Q) . 437 Beispiel 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 )) 438 Beispiel 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 E E ⇒P x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z r (x ′ , y , z)) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) 439 Beispiel 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 E ⇒P A ⇒P E x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z r (x ′ , y , z)) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) A E x ′ ( z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ ))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) 440 Beispiel 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 ⇒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 )) 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 ) 441 Beispiel 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 )) 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 x ′ z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ )) → z ′′ ((p(z) ∧ q(x, z)) ∧ r (z ′′ , x, y 442 Beispiel 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 E ⇒P A ⇒P E A A E x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z r (x ′ , y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )) 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 x ′ z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ )) → z ′′ ((p(z) ∧ q(x, z)) ∧ r (z ′′ , x, y x ′ z ′ z ′′ (((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ )) → ((p(z) ∧ q(x, z)) ∧ r (z ′′ , x, y 443 Skolemnormalform Definition. Eine Formel F ∈ ForΣ ist in Skolemnormalform (SNF), falls: • F ist in Pränexnormalform • F enthält nur universelle Quantoren 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 y (p(x) ∨ q(y )) 444 Skolemisierung Skolemisierung: Transformation ⇒S : ⇒S A E A x1 , . . . , xn yF x1 , . . . , xn F [f (x1 , . . . , xn )/y ] wobei f /n ein neues Funktionssymbol (Skolemfunktion). 445 Skolemisierung Beispiel Gegeben: E A E A w ( x(p(w , x) ∨ y (q(w , x, y ) ∧ z r (y , z)))) Pränexnormalform: E A E A w x y z((p(w , x) ∨ (q(w , x, y ) ∧ r (y , z)))) Skolemisierung: A A w y ((p(w , sk(w )) ∨ (q(w , sk(w ), y ) ∧ r (y , g (w , y ))))) 446 Skolemisierung Zusammen: ∗ G ⇒S H |{z} |{z} pränexe Form pränex, kein E ∗ F ⇒P 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 Σ = (Ω, Π). 447 Klauselnormalform (konjunktive Normalform) Transformationsregeln ⇒K (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (F ↔ G ) ⇒K (F → G ) ∧ (G → F ) (F → G ) ⇒K ¬(F ∧ G ) ⇒K (F ∧ G ) ∨ H ⇒K (F ∨ H) ∧ (G ∨ H) (F ∧ ⊥) ⇒K ⊥ ⇒K F ¬(F ∨ G ) ¬¬F (F ∧ ⊤) (F ∨ ⊤) (F ∨ ⊥) ⇒K (¬F ∨ G ) (¬F ∧ ¬G ) (¬F ∨ ¬G ) ⇒K F ⇒K F ⇒K ⊤ Die ersten 5 Regeln, zusammen mit Regel (¬Q), stellen die Negationsnormalform (NNF) her. 448 Gesamtbild ∗ ⇒P Q1 y1 . . . Qn yn G (G quantorenfrei) ⇒S A (H quantorenfrei) ∗ ∗ ⇒K x1 , . . . , xm H A F x1 , . . . , xn | {z } weglassen | k ^ i=1 {z F′ ni _ Lij j=1 | {z } Klauseln 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 E A A E F ≡ z(( x(p(z, x))) → ( y (q(z, y ) ∧ ( xr (y , x))))) Pränexnormalform: A E ≡ A ≡ E E z(( x(p(z, x))) → ( y (q(z, y ) ∧ ( x ′ r (y , x ′ ))))) A E E ≡ A ≡ E A 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 ′ ))) (Bereinigung) (NNF) (Pränexnormalform) Skolemisierung z 7→ sk1 ; x 7→ sk2 ; x ′ 7→ sk3 (y ) A ⇒∗ S y (¬p(sk1 , sk2 ) ∨ (q(sk1 , y ) ∧ r (y , sk3 (y )))) (Erfüllbarkeitsäquivalente Formel in Skolemnormalform) Klauselnormalform: A ⇒∗ K y ((¬p(sk1 , sk2 ) ∨ q(sk1 , y )) ∧ (¬p(sk1 , sk2 ) ∨ r (y , sk3 (y )))) Klauselmenge: N = {{¬p(sk1 , sk2 ), q(sk1 , y )}, {¬p(sk1 , sk2 ), r (y , sk3 (y ))}} 450 2.5 Herbrand-Interpretationen 451 Herbrand-Interpretationen Ab jetzt betrachten wir, falls nichts Anderes angegeben, immer nur PL ohne Gleichheit. Ω enthalte immer mindestens ein Konstantensymbol. Definition. Herbrand-Interpretationen (über Σ) sind Σ-Strukturen A mit: 1. UA = TΣ Menge der Grundterme, d.h. variablenfreien Terme über Σ 2. fA : (s1 , . . . , sn ) 7→ f (s1 , . . . , sn ), f /n ∈ Ω f fA (△, . . . , △) = △ ... △ d.h. vorgegeben sind Terme als Daten und Funktionen als Termkonstruktoren. Variabel sind nur die Interpretationen der Prädikatensymbole pA ⊆ TΣm , pm ∈ Π 452 Herbrand-Interpretationen als Mengen von Grundatomen Satz. Jede Menge von Grundatomen I identifiziert genau eine HerbrandInterpretation A durch (s1 , . . . , sn ) ∈ pA genau dann, wenn p(s1 , . . . , sn ) ∈ I Im folgenden werden wir daher nicht zwischen Herbrand-Interpretationen (über Σ) und Mengen von Σ-Grundatomen unterscheiden. 453 Herbrand-Interpretationen als Mengen von Grundatomen Beispiel: ΣPres = ({0/0, s/1, +/2}, {< /2, ≤ /2}) N als Herbrand-Interpretation über ΣPres I ={ 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 Existenz von Herbrand-Modellen Definition. Eine Herbrand-Interpretation I heißt Herbrand-Modell von F , falls I |= F . Theorem [Herbrand] Sei N eine Menge von Σ-Klauseln. N erfüllbar 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Σ } die Menge der Grundinstanzen von N ist. [Beweis später im Zusammenhang mit dem Vollständigkeitsbeweis für Resolution.] 455 Beispiel für GΣ Bzgl. ΣPres erhält man für C = (x < y ) ∨ (y ≤ s(x)) folgende Grundinstanzen: (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))) ... 456 2.6 Prädikatenlogische Resolution 457 Wiederholung: Aussagenlogische Resolution Aussagenlogische Klauseln entsprechen Grundklauseln und umgekehrt. 458 Wiederholung: Resolutionskalkül (Mengennotation) Resolutionsregel: C ∪ {A} {¬A} ∪ D C ∪D C ∪ D: Resolvente A: resolviertes Atom 459 Beispielrefutation (Mengennotation) 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)} (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) Resolutionsregel: C ∨A ¬A ∨ D C ∨D C ∨ D: Resolvente A: resolviertes Atom Faktorisieren: C ∨L∨L C ∨L ∨“ wird in Klauseln als assoziativ und kommutativ aufgefaßt. ” 461 Beispielrefutation (Klauselnotation) 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.) ⊥ (Res. 4. in 9.) 10. (Res. 2. in 1.) (Fakt. 5.) (Res. 2. in 6.) (Fakt. 7.) 462 Wiederholung: Korrektheit und Vollständigkeit Aussagenlogische Resolution ist korrekt und vollständig. • Mengennotation: Resolutionsregel • Klauselnotation: Resolutionsregel + Faktorisieren 463 Prädikatenlogische Resolution: Idee Grundidee Vor Resolutionsschritt durch geeignete Substitution komplementäres Paar von Literalen erzeugen Möglichkeit für Resolutionsregel C1 ∪ {L} C2 ∪ {¬L′ } C1 σ ∪ C2 σ wobei • die Elternklauseln keine Variablen gemeinsam haben (bereinigt) 7→ ggf. umbenennen • σ(L) = σ(L′ ) Nachteil: Viel zu viele Substitutionen σ mit σ(L) = σ(l ′ ) Idee: Wähle die “allgemeinste” Substitution, mit σ(L) = σ(l ′ ) 464 Unifikation . . Sei E = {s1 = t1 , . . . , sn = tn } (si , ti Terme oder Atome) eine Menge von Gleichheitsproblemen. Definition: Eine Substitution σ heißt ein Unifikator von E g.d.w. A 1 ≤ i ≤ n : si σ = ti σ. Existiert ein Unifikator, so heißt E unifizierbar. Definition: σ heißt allgemeiner als τ σ ≤ τ :⇔ es gibt Subst.̺ : σ ◦ ̺ = τ wobei (σ ◦ ̺)(x) := (xσ)̺ die Komposition von σ und ̺ als Abbildungen.a a Ist wohldefiniert, weil σ ◦ ̺ einen endlichen Bereich hat. 465 Ein paar simple Fakten • 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 • Atome der Gestalt p(s1 , . . . , sn ), p(t1 , . . . , tn ) sind unifizierbar g.d.w. si und ti unifizierbar für 1 ≤ i ≤ n • Terme der Gestalt f (s1 , . . . , sn ), g (t1 , . . . , tm ) sind niemals unifb. • 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 Unifikation nach Martelli/Montanari . (1) t = t, E ⇒MM E (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] . . . . . . falls x ∈ var (E ), x 6∈ var (t) (5) . x = t, E ⇒MM ⊥ falls x 6= t, x ∈ var (t) (6) . t = x, E ⇒MM . x = t, E falls t 6∈ X 467 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)} (2) ⇒MM (5) ⇒MM . . . . {g (a, x) = x, g (y , b) = g (v , w ), x = g (x, a), g (v , w ) = g (v , b)} ⊥ nicht unifizierbar 468 Beispiel 2 . . {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 ⊥ nicht unifizierbar 469 Beispiel 3 . . {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)} . . . . ⇒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} . . . . . . . . . . . . . . . . . . . . . . . Allgemeinster Unifikator: [g (a, a)/z, v /y , a/x, w /b] 470 Unifikation: Haupteigenschaften Definition. Eine Substitition σ heißt idempotent, wenn σ ◦ σ = σ. Lemma. σ ist idempotent gdw. dom(σ) ∩ codom(σ) = ∅. 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 . 471 Unifikation: Haupteigenschaften 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 )} 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 Idee: Terme: azyklische Termgraphen 472 Beweisideen • Falls E ⇒MM E ′ , dann σ Unifikator von E gdw. σ Unifikator von E ′ . (⊥ habe keinen Unifikator.) • 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. • ⇒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 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 . • σ ist idempotent wegen der Substitution in Regel 4. dom(σ) ⊆ var (E ), weil keine neuen Variablen eingeführt werden. 473 Prädikatenlogische Resolutionsregel Prädikatenlogische Resolutionsregel C1 ∪ {L} C2 ∪ {¬L′ } C1 σ ∪ C2 σ wobei • die Elternklauseln keine Variablen gemeinsam haben (bereinigt) 7→ ggf. umbenennen • σ ein allgemeinster Unifikator (MGU) von L, L′ ist. 474 Beispiel {L} ∪ C1 = {p(a, x), p(x, x)} | {z } L {L′ } ∪ C2 = {¬p(y , y )} | {z } L′ Allgemeinster Unifikator von L, L′ : . {p(a, x) = p(y , y )} . . . . ⇒MM {a = y , x = y } ⇒MM {y = a, x = a} σ = [a/y , a/x] C1 ∪ {L} C2 ∪ {¬L′ } C1 σ ∪ C2 σ R := {p(x, x)}σ ∪ {}σ = {p(a, a)} 475 Prädikatenlogische Resolutionsregel Resolutionsregel in dieser Form alleine unvollständig für Prädikatenlogik Beispiel: {{p(x), p(y )}, {¬p(u), ¬p(v )}} • unerfüllbar • aber nur Resolventen der Länge 2 476 Faktorisierung Faktorisierung {L1 , . . . , Ln } ∪ C ({L1 , . . . , Ln } ∪ C )σ wobei • σ allgemeinster Unifikatior (MGU) von {L1 , . . . , Ln } ist ({L1 , . . . , Ln } ∪ C )σ heißt Faktor von {L1 , . . . , Ln } ∪ C 477 Beispiel für Faktorisierung {p(x), p(y ), r (y , z)} {p(x), r (x, z)} {p(x), p(y ), p(a), r (y , z)} {p(a), r (a, z)} 478 Beispiel 1. P(x) ∨ P(f (x)) ∨ ¬Q(x) [Gegeben] 2. ¬P(y ) [Gegeben] 3. P(g (x ′ , x ′′ )) ∨ Q(x ′′ ) [Gegeben; Bereinigt] 4. P(f (x)) ∨ ¬Q(x) [Res. 1, 2] 5. ¬Q(x) [Res. 4, 2] 6. Q(x ′′ ) [Res. 3, 2] 7. ⊥ 479 Resolutionskalkül Res für allgemeine Klauseln C ∨A D ∨ ¬B (C ∨ D)σ falls σ = mgu(A, B) [Resolution] 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. 480 Allgemeine Resolution mit implizitem Faktorisieren Günstiger ist es, Resolutionsregel und Faktorisierungsregel in eine Regel zusammenzuziehen. C ∨ L1 ∨ . . . ∨ Ln D ∨ ¬L′1 ∨ . . . ∨ ¬L′m (C ∨ D)σ • wobei die Elternklauseln keine Variablen gemeinsam haben (bereinigt) 7→ ggf. umbenennen • σ = mgu(L1 , . . . , Ln , L′1 , . . . , L′m ) 481 Allgemeine Resolution: Beispiel (Hier verwenden wir Resolution mit implizitem Faktorisieren.) 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. 1. P(x) ∨ P(f (a)) ∨ ¬Q(x) [Gegeben] 2. ¬P(y ) [Gegeben] 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] 482 Wichtig: Häufige Fehlerquellen • Das Bereinigen (Umbenennen) nicht vergessen! • Das Faktorisierungen (falls möglich) nicht vergessen! • Selbstresolution ist möglich! 483 Notation Sei N eine Klauselmenge und Res(N) = N ∪ {R | R ist eine Resolvente zweier Klauseln aus N oder Resultat der Faktorisierung einer Klausel aus N} Res0 (N) = N Resn+1 (N) = Res(Resn (N)) Res⋆ (N) = S n∈N Resn (N) (bezeichnet die Vereinigung der Ergebnisse aus aller möglichen Resolutions- und Faktorisierungsschritte auf N) 484 Resolution: Korrektheit Theorem Für eine Menge N von Klauseln gilt: Falls ⊥∈ Res∗ (N), so N unerfüllbar. Beweis: Wie bei Aussagenlogik. Einzelne Regelanwendung erhält die Erfüllbarkeit der Klauselmenge Auch dies einfach zu beweisen wie in Aussagenlogik (beachte dabei: Variablen in Klauseln sind universell quantifiziert) 485 Resolution: Korrektheit Theorem Für eine Menge N von Klauseln gilt: Falls ⊥∈ Res∗ (N), so N unerfüllbar. x(C1 ∨ L1 ), A |= A A Beweis: Annahme: A |= C1 ∨ L1 , A |= C2 ∨ ¬L2 (d.h. A |= x(C2 ∨ ¬L2 )) Sei σ = mgu(L1 , L2 ). Zu zeigen: A |= x(C1 ∨ C2 )σ. A Sei β beliebig. A(β)((C1 ∨ C2 )σ) = A(β ◦ σ)(C1 ∨ C2 ) (Substitution-Lemma) • 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. Aber A(β ◦ σ)(C2 ∨¬L2 )=1, so A(β ◦ σ)(C2 )=1. Dann A(β)((C1 ∨C2 )σ)=1. 486 Resolution: Vollständigkeit Theorem Für eine Menge N von Klauseln gilt: Falls N unerfüllbar, so ⊥∈ Res∗ (N). Beweisplan: 1. Sei N eine unter Res saturierte Menge allgemeiner Klauseln, d.h. Res(N) ⊆ N. Dann ist auch GΣ (N) saturiert. 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. 487 Lifting-Lemma Lemma. Falls C ? ? yσ D ? ? yσ Cσ Dσ [aussagenlogische Resolution] C′ dann gibt es τ , so dass C D C ′′ ? ? y [allgemeine Resolution] τ C ′ = C ′′ τ Entsprechend für Faktorisieren. 488 Lifting-Lemma: Beweis Beweis (Idee) Sei C = C1 ∨ L1 , D = C2 ∨ ¬L2 . C σ = C1 σ ∨ L1 σ, Dσ = C2 σ ∨ ¬L2 σ. L1 σ = L2 σ und C ′ = (C1 ∨ C2 )σ. L1 , L2 unifizierbar. Sei ρ = mgu(L1 , L2 ). Die Resolvente C ′′ ist dann (C1 ∨ C2 )ρ. ρ ist allgemeiner als σ, d.h. es gibt eine Substitution τ mit σ(x) = τ (ρ(x)) für alle x ∈ X . C ′′ τ = (C1 ∨ C2 )ρτ = (C1 ∨ C2 )σ = C ′ . 489 Saturiertheit von Mengen allgemeiner Klauseln Sei N eine Klauselmenge und Res(N) = N ∪ {R | R ist eine Resolvente zweier Klauseln aus N oder Resultat der Faktorisierung einer Klausel aus N} Res0 (N) = N Resn+1 (N) = Res(Resn (N)) Res⋆ (N) = S n∈N Resn (N) (bezeichnet die Vereinigung der Resolventen aus aller möglichen Resolutionsschritte auf N) 490 Saturiertheit von Mengen allgemeiner Klauseln Theorem. Sei N eine unter Res saturierte Menge allgemeiner Klauseln, d.h. Res(N) ⊆ N. Dann ist auch GΣ (N) saturiert, d.h. Res(GΣ (N)) ⊆ GΣ (N). 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. (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.) 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). (ii) Analog für den Fall, dass C ′ durch Faktorisierung abgeleitet wurde. 491 Satz von Herbrand Theorem (Herbrand) Sei N eine Menge von Σ-Klauseln. N erfüllbar g.d.w. N besitzt Herbrand-Modell über Σ Beweis: “⇐” trivial “⇒” N 6|= ⊥ ⇒ ⊥ 6∈ Res ∗ (N) (Res. korrekt) ⇒ ⊥ 6∈ GΣ (Res ∗ (N)) ⇒ GΣ (Res ∗ (N)) hat ein (’aussagenlogisches’) Modell ⇒ GΣ (Res ∗ (N)) hat ein Herbrand Modell I ⇒ I |= Res ∗ (N) ⇒ I |= N (I Herbrand-Modell) (N ⊆ Res ∗ (N)) 492 Korrektheit und Vollständigkeit der allgemeinen Resolution Theorem Sei N Menge allgemeiner Klauseln mit Res(N) ⊆ N. Dann: N |= ⊥ genau dann, wenn ⊥ ∈ N Proof: “⇐” trivial “⇒:” Sei N Klauselmenge mit Res(N) ⊆ N. Dann Res(GΣ (N)) ⊆ GΣ (N) (Theorem Seite 10) 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 Theorem Für eine Menge N von Klauseln gilt: Falls N unerfüllbar, so ⊥∈ Res∗ (N). Beweis: Sei M = Res∗ (N). Dann Res(M) ⊆ M. So: M |=⊥ gdw. ⊥∈ M. Widerspruchsbeweis: 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|=⊥. 494 Prädikatenlogische Resolution: Beispiel (1) Gegeben die Formel F : A A ( x y (p(x, y ) → q(x, y ))∧ A A x y (r (x, y ) → s(x, y )) )→ E A A ( x y (( z(p(x, z) ∧ r (z, y ))) → E ( z(q(x, z) ∧ s(z, y ))))) ) Gezeigt werden soll die Allgemeingültigkeit von F mittels Resolution 495 Prädikatenlogische Resolution: Beispiel (2) Dazu zeigen wir die Unerfüllbarkeit von ¬F : A A ¬(( x y (p(x, y ) → q(x, y ))∧ A A x y (r (x, y ) → s(x, y )) )→ E A A ( x y (( z(p(x, z) ∧ r (z, y ))) → E ( z(q(x, z) ∧ s(z, y )))) )) Diese Formel muss zunächst in Klauselnormalform transformiert werden 496 Prädikatenlogische Resolution: Beispiel (3) Elimination der Implikationen: A A ¬(¬( x y (¬p(x, y ) ∨ q(x, y ))∧ A A x y (¬r (x, y ) ∨ s(x, y )) ∨ E ) A A ( x y (¬( z(p(x, z) ∧ r (z, y )))∨ E ( z(q(x, z) ∧ s(z, y )))) )) 497 Prädikatenlogische Resolution: Beispiel (4) Äußere Negation nach innen schieben: A A (( x y (¬p(x, y ) ∨ q(x, y ))∧ A A x y (¬r (x, y ) ∨ s(x, y )) ) ∧ E A A ¬( x y (¬( z(p(x, z) ∧ r (z, y )))∨ E z(q(x, z) ∧ s(z, y ))) )) 498 Prädikatenlogische Resolution: Beispiel (5) Negation an den Allquantoren vorbei: A A (( x y (¬p(x, y ) ∨ q(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 z(q(x, z) ∧ s(z, y ))) )) 499 Prädikatenlogische Resolution: Beispiel (6) De Morgan: A A (( x y (¬p(x, y ) ∨ q(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 ¬ z(q(x, z) ∧ s(z, y ))) )) 500 Prädikatenlogische Resolution: Beispiel (7) Negation am Quantor vorbei: A A (( x y (¬p(x, y ) ∨ q(x, y ))∧ A A x y (¬r (x, y ) ∨ s(x, y )) ) ∧ E E E ( x y (( z(p(x, z) ∧ r (z, y )))∧ A z¬(q(x, z) ∧ s(z, y ))) )) 501 Prädikatenlogische Resolution: Beispiel (8) De Morgan A A (( x y (¬p(x, y ) ∨ q(x, y ))∧ A A x y (¬r (x, y ) ∨ s(x, y )) ) ∧ E E E ( x y (( z(p(x, z) ∧ r (z, y )))∧ A z(¬q(x, z) ∨ ¬s(z, y ))) )) Nun ist die Formel in Negationsnormalform 502 Prädikatenlogische Resolution: Beispiel (9) Bereinigen der Formel führt zu: A A (( x y (¬p(x, y ) ∨ q(x, y ))∧ A A x ′ y ′ (¬r (x ′ , y ′ ) ∨ s(x ′ , y ′ )) ) ∧ E E E ( x ′′ y ′′ (( z(p(x ′′ , z) ∧ r (z, y ′′ )))∧ A z ′ (¬q(x ′′ , z ′ ) ∨ ¬s(z ′ , y ′′ ))) )) 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 E E E A A A A (¬p(x, y ) ∨ q(x, y ))∧ (¬r (x ′ , y ′ ) ∨ s(x ′ , y ′ )) p(x ′′ , z)∧ r (z, y ′′ ∧ (¬q(x ′′ , z ′ ) ∨ ¬s(z ′ , y ′′ )) ) Nun ist die Formel in Pränexnormalform, die Matrix der Formel ist auch schon in konjunktiver Normalform 504 Prädikatenlogische Resolution: Beispiel (11) Skolemisieren von x ′′ und y ′′ : A E A A A A x y x′ y ′ z z′( (¬p(x, y ) ∨ q(x, y ))∧ (¬r (x ′ , y ′ ) ∨ s(x ′ , y ′ )) p(f (x, y , x ′ , y ′ ), z)∧ r (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) Skolemisieren von z: A E A A A A x y x′ y ′ z z′( (¬p(x, y ) ∨ q(x, y ))∧ (¬r (x ′ , y ′ ) ∨ 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 ′ ))∧ (¬q(f (x, y , x ′ , y ′ ), z ′ ) ∨ ¬s(z ′ , g (x, y , x ′ , y ′ ))) ) 506 Prädikatenlogische Resolution: Beispiel (13) In Klauselmengenschreibweise: 1. {¬p(x, y ), q(x, y )} 2. {¬r (x ′ , y ′ ), s(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 ′ ))} 507 Prädikatenlogische Resolution: Beispiel (14) 1. {¬p(x, y ), q(x, y )} 2. {¬r (x ′ , y ′ ), s(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 ′ ))} Resolution der Klauseln 1. und 3. Dazu zunächst Umbenennung der Variablen x, y in 3., um die Klauseln variablendisjunkt zu machen 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 ′ ))} 508 Prädikatenlogische Resolution: Beispiel (15) 1. {¬p(x, y ), q(x, y )} 2. {¬r (x ′ , y ′ ), s(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 ′ ))} 6. {q(f (u, v , x ′ , y ′ ), h(u, v , x ′ , y ′ ))} Resolution der Klauseln 2 und 4. Dazu zunächst Umbenennung der Variablen x ′ , y ′ in 4, um die Klauseln variablendisjunkt zu machen Verwendeter MGU: [h(x, y , u, v )/x ′ , g (x, y , u, v )/y ′ ] 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 ))} 509 Prädikatenlogische Resolution: Beispiel (16) 1. {¬p(x, y ), q(x, y )} 2. {¬r (x ′ , y ′ ), s(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 ′ ))} 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 Prädikatenlogische Resolution: Beispiel (17) 1. {¬p(x, y ), q(x, y )} 2. {¬r (x ′ , y ′ ), s(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 ′ ))} 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 7 und 8. Dazu zunächst Umbenennung der Variablen u, v in 8, um die Klauseln variablendisjunkt zu machen. Verwendeter MGU: [u ′′ /x, v ′′ /y , u ′ /u, v ′ /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 ′ ))} ⊥ 511 Prädikatenlogische Resolution: Beispiel (18) Damit ist die leere Klausel ⊥ abgeleitet, also ist die Klauselmenge unerfüllbar, also ist die Formel ¬F unerfüllbar, also ist die Formel F allgemeingültig 512 Zusammenfassung: Prädikatenlogische Resolution • Prädikatenlogische Resolutionsregel • Faktorisierung • Kombination von Resolution und Faktorisierung • Häufige Fehlerquellen • Korrektheit und Vollständigkeit 513 2.7 Tableaukalkül 514 Wiederholung: Der aussagenlogische Tableaukalkül Wesentliche Eigenschaften • Widerlegungskalkül: Testet auf Unerfüllbarkeit • Beweis durch Fallunterscheidung • Top-down-Analyse der gegebenen Formeln 515 Wiederholung: Der aussagenlogische 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 516 Formeltypen Konjunktive Formeln: Typ α • ¬¬F • F ∧G • ¬(F ∨ G ) • ¬(F → G ) Disjunktive Formeln: Typ β • ¬(F ∧ G ) • F ∨G • F →G 517 Formeltypen Konjunktive Formeln: Typ α • ¬¬F • F ∧G • ¬(F ∨ G ) • ¬(F → G ) Zuordnungsregeln Formeln / Unterformeln α F ∧G α1 α2 F G ¬F ¬G ¬(F → G ) F ¬G ¬¬F F ¬(F ∨ G ) 518 Formeltypen Disjunktive Formeln: Typ β • ¬(F ∧ G ) • F ∨G • F →G Zuordnungsregeln Formeln / Unterformeln β β1 β2 ¬(F ∧ G ) ¬F ¬G F G ¬F G F ∨G F →G 519 Regeln des (aussagenlogischen) Tableaukalküls p∧q | p | q α Konjunktiv α1 α2 β β1 | β2 p∨q Disjunktiv p φ ¬φ ⊥ / Widerspruch \ q φ ¬φ | ⊥ 520 Instanzen der α und β-Regel Instanzen der α-Regel P ∧Q ¬(P ∨ Q) ¬(P → Q) ¬¬P P ¬P P P Q ¬Q ¬Q Instanzen der β-Regel P ∨Q ¬(P ∧ Q) P→Q P | Q ¬P | ¬Q ¬P | Q 521 Beispiel Zu zeigen: (P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S)) allgemeingültig Wir zeigen, dass ¬[(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S))] unerfüllbar ist. 522 Beispiel 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 ] 7. ¬S [52 ] hhhhh hhh 8. ¬P 9. [21 ] Q→R [22 ] XXXX X 10. P [41 ] 11. S [42 ] geschlossenes Tableau. 523 Beispiel Geschlossenes Tableau gefunden ... also ist die Formel ¬[(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S))] unerfüllbar, ... d.h. die Formel (P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S)) ist allgemeingültig 524 Zusätzlich: Prädikatenlogische Formeltypen universell E ¬ xF F [t/x] ¬F [t/x] δ δ(t) xF F [t/x] A A xF γ(t) E γ existentiell ¬ xF ¬F [t/x] 525 Zusätzlich: Prädikatenlogische Tableauregeln γ-Regel A γ γ(t) xq(x) | q(t) universell wobei t ein beliebiger Term ist. δ-Regel E δ δ(f (y1 ,...,yn )) existentiell xp(x, y1 , . . . , yn ) | p(f (y1 , . . . , yn ), y1 , . . . , yn ) wobei f eine neue Skolemfunktion ist, und y1 , . . . , yn die freien Variablen in δ sind. 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. 526 Instanzen der γ und δ-Regel Instanzen der γ-Regel A F (t) E xF (x) ¬ xF (x) ¬F (t) 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 527 E Determinismus der Regeln α- und β-Regeln deterministisch (wie in Aussagenlogik) γ-Regel • hochgradig nicht-deterministisch • muss für Vollständigkeit mehrfach angewendet werden (pro Ast) • Grund für Nicht-Terminierung δ-Regel • nicht-deterministisch • muss dennoch nur einmal pro Ast und Formel angewendet werden 528 Formale Definition des Kalküls Fast wie in der Aussagenlogik definiert (kleine Änderungen) (Definition auf den folgenden Seiten). 529 Formale Definition des Kalküls Definition Tableau: Binärer Baum, dessen Knoten mit Formeln markiert sind Definition Tableauast: Maximaler Pfad in einem Tableau (von Wurzel zu Blatt) 530 Definition: Tableau (mit freien Variablen) Sei M = {F1 , . . . , Fn } eine Formelmenge 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. 531 Formale Definition des Kalküls Definition. Ast B eines Tableaus für M ist geschlossen, wenn F , ¬F ∈ B ∪ M 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 532 Beispiel Eine Aussage über Mengen (1) S ∩Q = ∅ (2) P ⊆ Q ∪R (3) P=∅ → Q 6= ∅ (4) Q ∪R ⊆ S (5) P ∩R 6= ∅ 533 Beispiel Eine Aussage über Mengen Modellierung E (1) 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)) ∧ ∧ → E x((P(x) ∧ R(x))) 534 Beispiel Modellierung Unerfüllbarkeit der Menge M E E ∧ ¬ x(S(x) ∧ Q(x)) (1) ∧ A (2) (¬( xP(x))) → ( yQ(y )) ∧ (¬( xP(x))) → ( yQ(y )) (3) A ) A x((Q(x) ∨ R(x)) → S(x)) (4) E (5) E E x((Q(x) ∨ R(x)) → S(x)) E x((P(x) ∧ R(x))) x(P(x) → (Q(x) ∨ R(x)) E A x(P(x) → (Q(x) ∨ R(x)) → E (¬ x(S(x) ∧ Q(x)) ¬ x((P(x) ∧ R(x))) 535 Beispiel E E (6) ¬¬ xP(x) [31 , β] ee 1 XXXXXXX e e e e e XXX eeee (7) yQ(y ) [32 , β] E (8) xP(x) [61 , α] (9) Q(d) [7, δ] (10) P(c) [8, δ] (∗∗) (11) ¬(P(c) ∧ R(c)) [5, γ] (12) ¬P(c) [111 , β] YYYYYY Y ffffff (13) ¬R(c) [112 , β] 14 : P(c) → (Q(c) ∨ R(c)) [2, γ] ⊥ 15 : ¬P(c) [141 , β] ⊥ e e e e e e e 16 : Q(c) ∨ R(c) [142 , β] XXXXXX 17 : Q(c) [161 , β] 18 : R(c) [162 , β] (∗) ⊥ 536 Beispiel Ast (*), Fortsetzung: 17 : Q(c) [161 , β] 19 : ¬(S(c) ∧ Q(c)) [1, γ] 20 : ¬S(c) [191 , β] e eeeeee 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 26 : ¬R(c) [232 , α] ⊥ 537 Beispiel Ast (**), Fortsetzung: E (7) yQ(y ) [32 , β] (9) Q(d) [7, δ] (27) : ¬(S(d) ∧ Q(d)) [1, γ] (28) : ¬S(d) [271 , β] XXXXXX e e e e e e e e (29) : ¬Q(d) [272 , β] (30) : Q(d) ∨ R(d) → S(d) [4, γ] ⊥ YYYYYY YY (31) : ¬(Q(d) ∨ R(d)) [301 , β] (32) : S(d) [302 , β] (33) : ¬Q(d) ⊥ [311 , α] (34) : ¬R(d) [312 , α] ⊥ 538 Bemerkungen Nota bene: Alle Äste in einem Tableau für M enthalten implizit alle Formeln in M Die Substitutionsregel ändert potentiell alle Formeln des Tableau. Das ist das Globale an der Beweismethode. 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. 539 Beispiel E A E A E 1. ¬[ w x p(x, w , f (x, w )) → w x y p(x, w , y )] 2. A E 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 ) [γ] w x p(x, w , f (x, w )) 11 [α] E A E 12 [α] x p(x, a, f (x, a)) 2(a) [δ] E A 3(v1 ) [γ] E 5(b(v1 )) [δ] 7. und 8. sind (modulo Unifikation) komplementär: . . . v2 = b(v1 ), a = v1 , f (v2 , a) = v3 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. 540 Formale Definition des Kalküls Problem: Es ist sehr schwierig, zu “raten”, welche Instanzen im Beweis nützlich sind. Idee: • Substitutionsregel auf Unifikatoren komplementärer Formeln beschränken! • γ-Regel führen nur freien Variablen ein (Tableaus mit freien Variablen) Freie Variablen (Dummies, Platzhalten) werden ’bei Bedarf’ (bei Abschluss) instantiiert (wie bei Resolution). 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). 541 Tableaus mit freien Variablen Neue γ-Regel A γ γ(y ) xq(x) | q(y ) universell wobei y eine neue freie Variable ist Neue Abschlussregel L1 ¬L2 ⊥ Widerspruch p(y ) ¬p(a) ⊥ mgu: [a/y ] wobei L1 , L2 unifizierbare Literale. 542 Tableaus mit freien Variablen Neue γ-Regel A γ γ(y ) xq(x) | q(y ) universell wobei y eine neue freie Variable ist Neue Abschlussregel L1 ¬L2 ⊥ Widerspruch p(y ) ¬p(a) ⊥ mgu: [a/y ] wobei L1 , L2 unifizierbare Literale. Nota bene: Allgemeinster Unifikator von L1 , L2 wird auf das ganze Tableau angewendet. 543 Konvention Wir nehmen an, dass die Menge der Variablen X in 2 disjunkte unendliche Teilmengen Xf und Xg partitioniert ist, und dass: • Für gebundene Variablen nur solche aus Xg verwendet werden. (Vermeidet das Einfangproblem bei Substitution.) • Die Variabeln, die durch die neue γ-Regel eingeführt werden immer aus Menge Xf gewählt sind. 544 Prädikatenlogische Klauseltableaux Klauseltableaux für eine Klauselmenge S • Abschlussregel wie zuvor • 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 S = {{p(0)}, {¬p(x), p(s(x))}, {¬p(s(s(0)))}} 1 ¬p(x1 ) p(0) R RRRR m m m mm llll p(s(x1 )) SSS S ⊥ ¬p(x2 ) [0/x1 ] ⊥ ¬p(s(s(0))) [s(0)/x2 ] ⊥ p(s(x2 )) [s(0)/x2 ] 546 Korrektheit und Vollständigkeit Theorem Eine Formelmenge M ist unerfüllbar genau dann, wenn es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt. 547 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. Sei A eine Σsko -Interpretation, T ein Tableau, und β eine Variablenbelegung über A. 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.) 548 Korrektheit Sei M = {F1 , . . . , Fn } eine Formelmenge (so dass Fi keine freien Variablen enthält). 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 Korrektheit Sei M = {F1 , . . . , Fn } eine Formelmenge (so dass Fi keine freien Variablen enthält). Theorem Sei T ein Tableau für {F1 , . . . , Fn }. {F1 , . . . , Fn } erfüllbar genau dann, wenn T erfüllbar. Beweis von “ ⇒ ” durch Induktion über die Tiefe von T . Tableau mit Tiefe 1 (mit einem Knoten) erfüllbar wenn {F1 , . . . , Fn } erfüllbar. 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 Striktheitbedingung 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. 551 Striktheitsbedingung für γ unvollständig A ¬[ x p(x) → (p(a) ∧ p(b))] A 1. 2. 11 x p(x) 3. ¬(p(a) ∧ p(b)) 4. p(v1 ) 12 2(v1 ) XXX XX 5. ¬p(a) 31 6. ¬p(b) 32 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. 552 Mehrfachanwendung von γ löst das Problem A ¬[ x p(x) → (p(a) ∧ p(b))] A 2. 11 x p(x) 3. ¬(p(a) ∧ p(b)) 12 4. p(v1 ) 2v1 XXX XX 5. ¬p(a) 31 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. 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? 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. A A A 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. 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. A 554 Vollständigkeit Theorem {F1 , . . . , Fn } erfüllbar genau dann, wenn es kein geschlossenes, striktes (mit Ausnahme von γ) AMGU-Tableau für {F1 , . . . , Fn } gibt. 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. 555 Vom Kalkül zur Beweissuchprozedur • Vollständigkeit der Tableauregeln garantiert nur Existenz eines geschlossenen Tableaus. • Eine systematische Beweissuchprozedur ist notwendig, um einen Beweis zu finden. Tableaukonstruktion ist nicht-deterministisch: Choice points • Nächster zu betrachtender Ast? • Abschluss- oder Erweiterung? • Falls Abschluss: Mit welchem Literal-Paar? • Falls Erweiterung: Mit welcher Formel? 556 Vom Kalkül zur Beweissuchprozedur Schlechte Wahl kann das Finden eines Beweises verhindern! Harmlos: Astauswahl Beliebige Strategie (z.B. links nach rechts) führt zum Erfolg Mit Fairnessstrategie handhabbar: Formelauswahl Jede Formel auf jedem Ast, γ-Formeln beliebig oft Kritisch: Abschluss erfordert Backtracking Alternativ: Keinen Abschluss machen, bis sich alle Äste zugleich schließen lassen 557 Beispiel Unfaire Bevorzugung einer Formel A xp(x) | q ∧ ¬q | p(X1 ) | p(X2 ) ... 558 Beispiel Bevorzugung eines Abschlusses p(0) A x(p(x) → p(s(x))) ¬p(s(s(0))) p(X1 ) → p(s(X2 )) ¬p(X1 ) VVVVV VV ii i i i i p(X2 ) → p(s(X2 )) ⊥ (mgu: [0/X1 ]) p(s(X1 )) ¬p(X2 ) h h h h h hh ⊥ p(s(X2 )) ... (mgu: [0/X2 ]) 559 Beispiel Abschluss statt Erweiterung p(a) A x((p(b) ∧ p(c) → p(x)) → ¬(q(x) → (q(b) ∨ q(c)))) ¬q(d) ((p(b) ∧ p(c) → p(X )) → ¬(q(X ) → (q(b) ∨ q(c)))) ¬(p(b) ∧ p(c) → p(X )) d d d d d d d d dd ZZZZZZZZ ZZ ¬(q(X ) → (q(b) ∨ q(c)))) p(b) ∧ p(c) q(X ) ¬p(X ) ¬(q(b) ∨ q(c)) 560 Zusammenfassung Prädikatenlogische Tableaukalküle • γ- und δ-Regel • Determinismus der Regeln • Tableaux mit freien Variablen neue γ- und neue Abschlussregel • Prädikatenlogische Klauseltableaux • Beweissuchprozedur 561 4. Anwendungen 562 Anwendungsbereiche MATHEMATIK Aufgaben − Beweisen − Beweisuberprufung Theorien − Zahlen − Polynomen − Funktionen auf Zahlenbereichen − Algebren VERIFIKATION Aufgaben − Programme − Korrektheit − Terminierung − reaktive/hybride Systeme − Sicherheit Theorien − Zahlen − Datentypen − Funktionen auf Zahlenbereichen DATENBANKEN Aufgaben − Konsistenz − Anfragen beantworten − Kleiner Suchraum Theorien − Logik erster Stufe − Datalog − ... − Komplexe Theorien − Funktionen − Zahlen komplexe Systeme (MAS, mit eingebetteter Software, Datenbanken) 563 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 − Zahlen Formale Methoden Theorien − Datalog − Polynomen − ... − Zahlen Verfahren: - Probleme Formeln kodiert − Komplexe Theorien − Funktionen auf 7→ als− logische Datentypen Zahlenbereichen − Funktionen - Verifikationsaufgaben: zu Erf ültigkeitstests − Funktionen aufüllbarkeit/G − Zahlen Zahlenbereichen − Algebren Theorien reduziert komplexe Systeme (MAS, mit eingebetteter Software, Datenbanken) 564 Beispiel: Sicherheitsprotokole 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. Hilfsmittel: Verschlüsselung • Alice und Bob vereinbaren einen gemeinsamen Schlüssel und nutzen ihn, um ihr Gespräch zu verschlüsseln. • Nur wer den Schlüssel kennt, kann das Gespräch entschlüsseln. 565 Beispiel: Sicherheitsprotokolle Problem: wie kommen die Gesprächspartner an den gemeinsamen Schlüssel? • Persönliche Übergabe kommt nicht immer in Frage. • Wird der gemeinsame Schlüssel über das Netz unverschlüsselt verschickt, könnte Charlie ihn abfangen oder austauschen. • Annahme: es gibt eine sichere Schlüsselzentrale, mit der Alice und Bob jeweils einen gemeinsamen Schlüssel vereinbart haben. 566 Beispiel: Sicherheitsprotokolle Das folgende Schlüsselaustauschverfahren wurde 1993 von den beiden Kryptographen Neuman und Stubblebine vorgeschlagen: Schritt 1: Alice schickt Bob die Nachricht 1: A, Na. Die Nachricht enthäIt den Namen von Alice, A, und eine Zufallszahl Na. Die Aufgabe von Na liegt darin, diesen Protokollauf eindeutig zu kennzeichnen, um das wiederholen von Nachrichten durch einen Angreifer sinnlos werden zu lassen. Alice schickt (offen) Identifikation und Zufallszahl an Bob. 567 Beispiel: Sicherheitsprotokolle Bob schickt die Nachricht 2 : B, E (Kbt, A, Na, Tb), Nb an Trust. Nachdem Bob die Nachricht von Alice erhalten hat, weiss er, dass sie einen sicheren Schlüssel mit ihm etablieren will. Deshalb schickt Bob die Nachricht 2 an Trust. Schritt 2: Die Nachricht enthält: - seinen Namen, B, - einen verschlüsselten Mittelteil - 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“). ” 568 Beispiel: Sicherheitsprotokolle Trust schickt die Nachricht 3 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, generiert er den sicheren Schlüssel Kab für die Kommunikation zwischen Alice und Bob. Er verschickt den Schlüssel mit Nachricht 3 an Alice. Der erste Teil der Nachricht kann von Alice entschlüsselt werden, 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. 569 Beispiel: Sicherheitsprotokolle Alice schickt die Nachricht 4: 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 Beispiel: Sicherheitsprotokolle Bob liest Nachricht 4, entschlüsselt den ersten Teil und erhält so auch den Schlüssel Kab. Schritt 5: Diesen verwendet er dann zur Entschlüsselung des zweiten Teils und vergleicht die enthaltene Zufallszahl Nb mit der, die er ursprünglich in Nachricht 2 an Trust schickte. Auf diese Weise ist sich Bob sicher, dass die Nachricht von Alice stammt und Kab der gewünschte Schlüssel ist. Alice und Bob können nun mit dem gemeinsamen Schlüssel kommunizieren. 571 Beispiel: Sicherheitsprotokolle 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 572 Beispiel: Sicherheitsprotokolle Ist das Verfahren sicher? Wir übersetzen das Problem in Formeln und lassen sie von einem Theorembeweiser untersuchen. 573 Beispiel: Sicherheitsprotokolle Zuerst formalisieren wir die Eigenschaften des Protokolls: • Wenn Alice/Bob/Trust eine Nachricht in einem bestimmten Format bekommt, dann schickt er/sie eine andere Nachricht ab. Dann formalisieren wir die Eigenschaften des Angreifers: • 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. • Wenn Charlie eine Nachricht hat, dann kann er sie an Alice/Bob/Trust abschicken. ... 574 Formalisierung der Eigenschaften des Protokolls 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. Die Funktionen “pair” (triple, quadr) gruppieren Sequenzen von Nachrichten entsprechender Länge. 575 Formalisierung der Eigenschaften des Protokolls 2. B, Nb, E (Kbt, A, Na, Tb) (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. 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. 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. 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. 576 Formalisierung der Eigenschaften des Protokolls 3. E (Kat, B, Na, Kab, Tb), E (Kbt, A, Kab, Tb), Nb (5) Tk(key (at, a))) ∧ Tk(key (bt, b)) 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)))] (5) Trust besitzt die Schlüssel für Alice und Bob und ... (6) ... antwortet entsprechend des Protokolls auf Nachricht 2. 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 Formalisierung der Eigenschaften des Protokolls 4. E (Kbt, A, Kab, Tb), E (Kab, Nb) A (7) 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)))] (8) 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 Formel (7): Alice antwortet in korrekter Weise auf Nachricht 3 und merkt sich den neuen Schlüssel. Formel (8) beschreibt Bob’s Verhalten nachdem er Alices Nachricht erhalten hat. Bob entschlüsselt die Nachricht und extrahiert den neuen Schlüssel. 578 Formalisierung des Angreifers Der Angreifer wird als unermüdlicher Hacker implementiert, der keine Möglichkeit unversucht lässt, das Protokoll anzugreifen. Er hört alle Nachrichten ab und zerlegt sie in ihre Bestandteile, solange er dazu nicht einen Schlüssel braucht, den er nicht hat. 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. Alle so generierten Nachrichten werden verschickt. Die Menge aller Nachrichten(teile), die der Intruder so erhält, wird durch das Prädikat “Im” ausgedrückt. 579 Der Angreifer • Die Teilnehmer (Participants) sind Alice, Bob, Trust und Intruder: (9) P(a) ∧ P(b) ∧ P(t) ∧ P(i) • Intruder hört alle Nachrichten ab. A (10) xa, xb, xm[M(sent(xa, xb, xm)) → Im(xm)] • Er dekomponiert und entschlüsselt alle Nachrichten, soweit er dafür den Schlüssel besitzt. (11) A (12) A (13) A (14) A u, v [Im(pair (u, v )) → (Im(u) ∧ Im(v ))] 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 • 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)) • 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 Zum Schluss müssen wir noch formalisieren was es bedeutet, dass der Angreifer Erfolg hat. 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))] 582 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. Dieser antwortet “erfüllbar”. Das beweist dann automatisch, dass der Angreifer das Protokoll brechen kann und der kritische Schlüssel die Zufallszahl Na ist. 583 Beispiel: Sicherheitsprotokolle Was kann passieren? Charlie fängt die letzte Nachricht von Alice ab. 584 Beispiel: Sicherheitsprotokolle Intruder schickt die Nachricht 5: Was kann passieren? E (Kbt, A, Na, Tb), E (Na, Nb) an Bob. 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. Charlie schickt eine veränderte Nachricht an Bob. 585 Beispiel: Sicherheitsprotokolle 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. 586 Beispiel: Sicherheitsprotokolle Was kann passieren? Bob startet Kommunikation mit Alice . . . 587 Beispiel: Sicherheitsprotokolle Was kann passieren? . . . aber spricht in Wirklichkeit mit Charlie. 588 Beispiel: Sicherheitsprotokolle Der Fehler ist tatsächlich leicht zu beheben. Mit ein wenig Erfahrung erkennt man aus der Ausgabe des Theorembeweisers, wie es geht. Dieser Angriff lässt sich reparieren, in dem man die Elemente des Protokolls typisiert, so dass Zufallszahlen und Schlüssel nicht mehr austauschbar sind. Dies lässt sich dann auch wieder formalisieren; der Theoremenbeweise antwortet jetzt “unerfüllbar”. 589 Beispiel: Sicherheitsprotokolle Literatur [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. [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. 590 Andere Anwendungsbereiche Theorien − Zahlen − Polynomen − Funktionen auf Zahlenbereichen − Algebren Aufgaben − Programme − Korrektheit − Terminierung − reaktive/hybride Systeme − Sicherheit Theorien − Zahlen − Datentypen − Funktionen auf Zahlenbereichen Beispiel: Geometrie a d (A1) (A2) A A A A Aufgaben − Beweisen − Beweisuberprufung VERIFIKATION 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) 591 Andere Anwendungsbereiche MATHEMATIK Aufgaben − Beweisen − Beweisuberprufung Theorien − Zahlen − Polynomen − Funktionen auf Zahlenbereichen − Algebren 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 Controllers MATHEMATIK Aufgaben − Beweisen − Beweisuberprufung Theorien − Zahlen − Polynomen − Funktionen auf Zahlenbereichen − Algebren VERIFIKATION Aufgaben − Programme − Korrektheit − Terminierung − reaktive/hybride Systeme − Sicherheit Überprüfe: Theorien − Zahlen − Datentypen − Funktionen auf Zahlenbereichen • Kein “overflow” • Substanzen in der richtigen Proportion • ... andernfalls: Tank kann in ≤ 200s geleert werden. 593 Weitere Anwendungebereiche Controllers MATHEMATIK Aufgaben − Beweisen − Beweisuberprufung Theorien − Zahlen − Polynomen − Funktionen auf Zahlenbereichen − Algebren VERIFIKATION Aufgaben − Programme − Korrektheit − Terminierung − reaktive/hybride Systeme − Sicherheit Zugkontrollsysteme RBC Theorien − Zahlen − Datentypen − Funktionen auf Zahlenbereichen braking + reaction distance • Task: Keine Kollision 594 Beispiel: ETCS Fallstudie AVACS: ETCS Fallstudie [Jacobs,VS’06,’07; Faber,Jacobs,VS’07] RBC braking + reaction distance 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 595 Beispiel: ETCS Fallstudie AVACS: ETCS Fallstudie [Jacobs,VS’06,’07; Faber,Jacobs,VS’07] RBC braking + reaction distance ... 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′ ) |=⊥ Sicher(pos) : A • i (i = 0 → pos(i) + ∆t∗min ≤ pos ′ (i) ≤ pos(i) + ∆t∗max) A • A Update(pos, pos′ ) : i, j(i<j→pos(i)>pos(j)) 596 Weitere Logiken • Alternativen zur klassischen Logik • Erweiterungen der klassischen Logik 597 Weitere Logiken • Alternativen: z.B. Mehrwertige Logiken 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. 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. 598 Weitere Logiken • Alternativen: z.B. Mehrwertige Logiken. 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. 599 Weitere Logiken • Erweiterungen: In einer nichtklassischen Erweiterung der klassischen Logik werden zusätzliche logische Operatoren hinzugefügt. • 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 600 Weitere Logiken • Erweiterungen: 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 • Erweiterungen: 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. Zeitlogiken führen Operatoren ein, so dass jeder Fall der Äusserung des Satzes unter denselben Wahrheitsbedingungen steht. 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. Temporale Logik wird in der Informatik für die Programm Spezifikation und Verifikation benutzt. 602 Logik höherer Stufe Logik höherer Stufe erweitert die Prädikatenlogik erster Stufe um die Möglichkeit, über alle Relationen/Funktionen zu quantifizieren. 603 Acknowledgements Für die Vorbereitung der Vorlesungsmaterialien habe ich Material zu den Vorlesungen von: • Bernhard Beckert (Logik für Informatiker“, gehalten an der Universität Koblenz-Landau) • 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. Material aus anderen Vorlesungen: • 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 • Gert Smolka: Einführung in die Computationale Logik; SS 2003. Online at http://www.ps.uni-sb.de/courses/cl-ss03/skript/. 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