Vorlesung Mathematische Logik für Informatiker/innen Einführung in mathematische Logik und Logik in der Informatik Thomas Wilke 28. Januar 2009 LfI.tex Rev 232 2009-01-28 Inhaltsverzeichnis 1 Einleitung 4 2 Aussagenlogik 2.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Syntax und Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Modellierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Beispiel: Bipartite Graphen . . . . . . . . . . . . . . . . . . 2.3.2 Beispiel: Sudoku . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Eindeutige Konstruktion von Formeln . . . . . . . . . . . . . . . . 2.5 Formeln in Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Äquivalenz und Normalformen . . . . . . . . . . . . . . . . . . . . 2.6.1 Das Koinzidenzlemma . . . . . . . . . . . . . . . . . . . . . 2.6.2 Aussagenlogische Gesetze . . . . . . . . . . . . . . . . . . . 2.6.3 Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.4 Negationsnormalform . . . . . . . . . . . . . . . . . . . . . 2.6.5 Konjunktive und disjunktive Normalform . . . . . . . . . 2.7 Erfüllbarkeitstests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7.1 Der DPLL-Algorithmus . . . . . . . . . . . . . . . . . . . . 2.7.2 Der DP-Algorithmus . . . . . . . . . . . . . . . . . . . . . . 2.7.3 Unendliche Formelmengen und der Endlichkeitssatz . . 2.8 Die Folgerungsbeziehung . . . . . . . . . . . . . . . . . . . . . . . 2.8.1 Beispiel: Schaltnetzüberprüfung . . . . . . . . . . . . . . . 2.8.2 Folgerungsbeziehung, Erfüllbarkeit und Endlichkeitssatz 2.9 Beweissysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.9.1 Unerfüllbarkeit und Resolution . . . . . . . . . . . . . . . . 2.9.2 Ein Hilbert-System . . . . . . . . . . . . . . . . . . . . . . . 2.9.3 Ein natürliches Beweissystem . . . . . . . . . . . . . . . . 2.9.4 Ableitungssysteme . . . . . . . . . . . . . . . . . . . . . . . 2.10 Horn-Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10.1 Beispiel: Erreichbarkeit in gerichteten Graphen . . . . . . 2.10.2 Beispiel: Schaltnetz-Auswertung . . . . . . . . . . . . . . . 2.10.3 Beispiel: Erreichbarkeitsspiele auf endlichen Graphen . . 2.10.4 Der Markierungsalgorithmus für Horn-Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 8 13 13 15 19 22 22 23 25 27 29 31 35 37 41 44 50 52 56 58 58 62 64 66 69 71 73 74 75 3 Prädikatenlogik 3.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 79 2 LfI.tex Rev 232 2009-01-28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inhaltsverzeichnis 3.2 Syntax und Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Signaturen und Strukturen . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Terme und deren Interpretation . . . . . . . . . . . . . . . . . . . 3.2.3 Formeln und deren Interpretation . . . . . . . . . . . . . . . . . . 3.3 Einsatz von Prädikatenlogik . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Vereinfachungsregeln . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Definition mathematischer Strukturen . . . . . . . . . . . . . . . 3.3.3 Wissensrepräsentation: Verwandtschaftsbeziehungen . . . . . . 3.3.4 Spezifikationen: wechselseitiger Ausschluss . . . . . . . . . . . . 3.3.5 (Datenbank-)Anfragen . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Auswertung von Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Das Koinzidenzlemma . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.2 Auswertung von atomaren Formeln, Junktoren und Quantoren . 3.4.3 Der Auswertungsalgorithmus . . . . . . . . . . . . . . . . . . . . . 3.5 Äquivalenz und Normalform . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1 Aussagenlogische Äquivalenzen . . . . . . . . . . . . . . . . . . . 3.5.2 Ersetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.3 Quantorenbezogene Äquivalenzen . . . . . . . . . . . . . . . . . 3.5.4 Pränexe Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6 Das Gültigkeitsproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.1 Das Postsche Korrespondenzproblem . . . . . . . . . . . . . . . . 3.6.2 Reduktion des PCP auf das Gültigkeitsproblem . . . . . . . . . . 3.6.3 Termsubstitutionen . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.4 Termstrukturen und Termmodelle . . . . . . . . . . . . . . . . . . 3.6.5 Termmodelle und Aussagenlogik . . . . . . . . . . . . . . . . . . . 3.6.6 Skolemisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7 Die Folgerungsbeziehung und Beweissysteme . . . . . . . . . . . . . . . 3.7.1 Ein Semi-Entscheidungsverfahren . . . . . . . . . . . . . . . . . . 3.7.2 Ein Beweissystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 79 82 86 90 90 90 92 94 97 99 100 100 102 104 105 106 107 108 111 114 116 118 119 121 123 126 127 128 Lösungen 132 Index 162 3 LfI.tex Rev 232 2009-01-28 1 Einleitung Die mathematische Logik ist ein neueres Teilgebiet der Mathematik, in dem auf die Logik – also auf die Lehre vom schlüssigen Argumentieren – mathematische Methoden angewendet werden. Darunter versteht man insbesondere einen formalen Zugang zur Logik, der sich nicht der gewöhnlichen Sprache, sondern formaler Sprache bedient. Zu Beginn des zwanzigsten Jahrhunderts versuchte man unter anderem, die gesamte Mathematik in einen formalen logischen Rahmen zu pressen, ja sogar ein Verfahren zu entwickeln, das alle mathematischen Aussagen auf ihren Wahrheitsgehalt überprüfen könnte. Später musste man jedoch erkennen, dass diesen Ideen Grenzen gesetzt sind, was wiederum zu neuen Fragen führte. Heute geht die mathematische Logik weit über das oben genannte hinaus. Sie hat innerhalb der Mathematik einen festen Platz, weil sie nicht nur die Grundlagen der Mathematik erklärt, sondern weil ihre Methoden in klassischen Teilgebieten der Mathematik erfolgreich eingesetzt werden können. Um die anfängliche Geschichte der mathematischen Logik besser begreifen zu können, sehen wir uns in Folie 1 zunächst zwei Zitate aus demselben Lehrbuch, allerdings aus verschiedenen Ausgaben, an. In der ersten Auflage von 1928 wird noch die Suche nach einer Lösung des Entscheidungsproblems als vorrangigste Aufgabe angesehen und implizit davon ausgegangen, dass es ein solches gibt, während aus der sechsten Auflage von 1972 die Einsicht spricht, dass das Entscheidungsproblem nicht gelöst werden kann. Desweiteren betrachten wir ein Zitat von Kurt Gödel aus dem Jahr 1931, siehe Folie 2, das zum einen deutlich macht, dass zu Beginn des zwanzigsten Jahrhunderts Anstrengungen unternommen wurden, die gesamte Mathematik zu formalisieren. Zum anderen wird aber auch deutlich, dass diese Anstrengungen zum Scheitern verurteilt sind. Der Schritt von der mathematischen Logik zur Informatik ist nicht weit: Bei der Spezifikation von Informatiksystemen möchte man genauso wie in der Logik zu formalen, eindeutigen, nicht fehlinterpretierbaren Aussagen kommen. Wenn es um die Korrektheit von Informatiksystemen geht, wären formale Beweise – ein zentraler Gegenstand der mathematischen Logik – äußerst wünschenswert. 4 Einleitung.tex Rev 15 2008-10-31 1 Einleitung David Hilbert und Wilhelm Ackermann Grundzüge der theoretischen Logik Erste Auflage, 1928, S. 72: Das Entscheidungsproblem ist gelöst, wenn man ein Verfahren kennt, das bei einem vorgelegten logischen Ausdruck durch endlich viele Operationen die Entscheidung über die Allgemeingültigkeit bzw. Erfüllbarkeit erlaubt. [. . . ] das Entscheidungsproblem muss als das Hauptproblem der mathematischen Logik bezeichnet werden. Sechste Auflage, 1972, S. 120: Es konnte nun zuerst von A. Church [5] gezeigt werden, daß die obengenannte, einem allgemeinen Entscheidungsverfahren entsprechende Funktion nicht zu den berechenbaren Funktionen gehört. Folie 1 5 Einleitung.tex Rev 15 2008-10-31 1 Einleitung Kurt Gödel Über formal unentscheidbare Sätze der Principia mathematica und verwandter Systeme I, Monatshefte für Mathematik und Physik 38, 173–198 Seite 173: Die Entwicklung der Mathematik in der Richtung zu größerer Exaktheit hat bekanntlich dazu geführt, daß weite Gebiete von ihr formalisiert wurden, in der Art, daß das Beweisen nach einigen wenigen mechanischen Regeln vollzogen werden kann. [. . . ] Diese beiden Systeme sind so weit, daß alle heute in der Mathematik angewendeten Beweismethoden in ihnen formalisiert, d. h. auf einige wenige Axiome und Schlußregeln zurückgeführt sind. Es liegt daher die Vermutung nahe, daß diese Axiome und Schlußregeln dazu ausreichen, alle mathematischen Fragen, die sich in den betreffenden Systemen überhaupt formal ausdrücken lassen, auch zu entscheiden. Im folgenden wird gezeigt, daß dies nicht der Fall ist [. . . ] Folie 2 6 Einleitung.tex Rev 15 2008-10-31 1 Einleitung David Hilbert, 1862–1943 Kurt Gödel, 1906–1978 Folie 3 7 Einleitung.tex Rev 15 2008-10-31 2 Aussagenlogik 2.1 Einleitung Wir beschäftigen uns zunächst mit Aussagen. Darunter versteht man üblicherweise Behauptungen, die für sich wahr oder falsch sind. Interessant wird es, wenn Aussagen aus anderen Aussagen durch logische Verknüpfungen (Junktoren) wie oder und nicht zusammengesetzt werden. Beispiel 2.1 (Aussagen). • Eine einfache Aussage: Der Mond ist eine Kugel. • Eine zusammengesetzte Aussage: Der Mond ist eine Kugel oder der Mond ist ein Würfel. • Eine weitere zusammengesetzte Aussage: Wenn der Mond kein Würfel ist, dann ist die Erde eine Kugel. Interessanter wird es, wenn man zwischen Aussagen logische Schlüsse zieht. Beispiel 2.2. • Erste Aussage: Es ist Sonntag. • Zweite Aussage: Wenn es Samstag oder Sonntag ist, dann ist Wochenende. • Schlussfolgerung: Es ist Wochenende. Bei solchen Überlegungen ist es nicht wichtig, von welcher Art die Basisaussagen sind, sondern lediglich, ob sie wahr oder falsch sind und wie die Zusammensetzung ist. Genau das ist der Ausgangspunkt der Aussagenlogik. 2.2 Syntax und Semantik Eine Aussagenvariable hat die Form X i , wobei i eine natürliche Zahl ist. Die Menge aller Aussagenvariablen bezeichnen wir mit VAL . Wir benutzen zwei aussagenlogischen Konstantensymbole, 0 und 1. Die Menge F AL der aussagenlogische Formeln ist induktiv (siehe Folie 4) definiert wie folgt. 1. Induktionsanfang (Basismenge): • Jedes der beiden Konstantensymbole ist eine aussagenlogische Formel. • Jede Aussagenvariable ist eine aussagenlogische Formel. Diese aussagenlogischen Formeln heißen atomar. 2. Induktionsschritt (durch Induktionsregeln): • Ist ϕ eine aussagenlogische Formel, dann ist auch ¬ϕ eine aussagenlogische Formel. 8 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik • Sind ϕ und ψ aussagenlogische Formeln, so sind auch (ϕ ∨ ψ), (ϕ ∧ ψ), (ϕ → ψ) und (ϕ ↔ ψ) aussagenlogische Formeln. Die so entstehenden aussagenlogischen Formeln heißen zusammengesetzt. Erinnerung: Induktive Mengendefinitionen Definition einer Menge M: 1. Induktionsanfang (Basismenge): Es wird eine Menge M0 von Basiselementen, die alle zu M gehören sollen, vorgegeben. 2. Induktionsschritt (durch Induktionsregeln): Es werden Regeln der Form Wenn x0 ∈ M, . . . , xr −1 ∈ M, so h(x0 , . . . , xr −1 ) ∈ M. angegeben. M ist die kleinste Menge, die M0 enthält und den Regeln entspricht. M ist eindeutig definiert: I Zu jedem m ∈ M gibt es höchstens eine Regel und eine Wahl m0 , . . . , mr −1 , so dass m durch Anwendung der Regel auf m0 , . . . , mr −1 entsteht. I Kein m ∈ M0 entsteht durch Anwendung einer Regel. Folie 4 Beispiel 2.3. • Aussagenlogische Formeln sind: 0, (X 0 ∨ X 1 ), ((X 0 → X 312 ) ∧ ¬X 1 ). • Keine aussagenlogischen Formeln sind: 01, X 1 ∧ X 4 . Wir benutzen im Zusammenhang mit Formeln die Terminologie, die auf Folie 5 zu finden ist. Wir werden häufig Funktionen definieren wollen, die auf der Menge aller aussagenlogischen Formeln definiert sind. Zum Beispiel wollen wir jeder Formel die Menge der in ihr vorkommenden Variablen oder ihre Länge oder ihre Schachtelungstiefe zuordnen. Dazu benutzen wir in der Regel induktive Definitionen, wie sie auf Folie 6 erläutert sind. Dabei ist es wichtig, einzusehen, dass jede aussagenlogische Formel nur auf eine Art zustande kommen kann. Das glauben wir gern, wollen es aber auch beweisen, was nicht schwierig, aber aufwändig ist. Wir stellen dies deshalb zurück. Jeder Formel weisen wir die Menge der in ihr vorkommenden Variablen per Induktion (siehe Folie 6) zu: 9 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Terminologie zu aussagenlogischen Formeln Form Lesart (ϕ ∨ ψ) (ϕ ∧ ψ) (ϕ → ψ) (ϕ ↔ ψ) oder Disjunktion und Konjunktion wenn . . . , so . . . genau dann, wenn Konditional Bikonditional Formeltyp ϕ Disjunktionsglied Konjunktionsglied Antezedenz ψ Disjunktionsglied Konjunktionsglied Sukzedenz Eine aussagenlogische Formel der Form ¬ϕ heißt Negation und wird nicht ϕ gelesen. 0 und 1 heißen Wahrheitswerte und werden falsch und wahr genannt. Folie 5 1. Induktionsanfang (Basiszuordnung): • vars(0) = ;, • vars(1) = ;, • vars(X i ) = {X i }. 2. Induktionsschritt (durch Induktionsregeln): • vars(¬ϕ) = vars(ϕ), • vars(ϕ ∗ ψ) = vars(ϕ) ∪ vars(ψ) für ∗ ∈ {∨, ∧, →, ↔}. Eine (aussagenlogische) Variablenbelegung ist eine partielle Funktion VAL 99K {0, 1}. Eine aussagenlogische Variablenbelegung β passt zu ϕ ∈ F AL , falls vars(ϕ) ⊆ dom(β). Bei der Definition der Semantik der Aussagenlogik wollen wir zu den Junktoren korrespondierende so genannten boolesche Operationen benutzen. Diese Operationen werden ˙ ∧, ˙ → wir zur Unterscheidung von den Junktoren mit einem Punkt versehen: ¬, ˙ ∨, ˙ und ↔. ˙ Dabei ist ¬ ˙ eine Funktion {0, 1} → {0, 1} und alle anderen sind Funktionen sind von der Form {0, 1}2 → {0, 1}. Wir schreiben die zweistelligen Operationen in Infix-Notation, d. h., anstelle ˙ 0 , b 1 ) schreiben wir b 0 ∧b ˙ 1. von ∧(b Alle booleschen Operationen sind auf Folie 7 definiert. 10 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Erinnerung: Definitionen über induktiv definierten Mengen Annahme M ist eine eindeutig induktiv definierte Menge (siehe oben). Definition einer Funktion f auf M: 1. Induktionsanfang (Basiszuordnung): Zu jedem Element m ∈ M0 wird f (m) angegeben. 2. Induktionsschritt (durch Induktionsregeln): Zu jeder Regel der Mengendefinition wird eine korrespondierende Regel der Form Wenn x0 ∈ M, . . . , xr −1 ∈ M, so f (h(x0 , . . . , xr −1 )) = h0 (f (x0 ), . . . , f (xr −1 )). angegeben. Variante Man greift bei den Induktionsregeln auch auf die xi zurück: Wenn x0 ∈ M, . . . , xr −1 ∈ M, so f (h(x0 , . . . , xr −1 )) = 0 , . . . , xr −1 , f (x0 ), . . . , f (xr −1 )). h0 (x Folie 6 Wir definieren nun eine Funktion J·K· , die jeder Variablenbelegung β und jeder Formel ϕ ∈ F AL , die zu β passt, ihren Wahrheitswert (Interpretation) unter β zuordnet, induktiv wie folgt: 1. Induktionsanfang (Basiszuordnung): • J0Kβ = 0, • J1Kβ = 1, • J X i Kβ = β(X i ) für jede X i ∈ dom(β). 2. Induktionsschritt (durch Induktionsregeln): • Ist ϕ ∈ F AL , so J¬ϕKβ = ¬ ˙ JϕKβ . • Sind ϕ, ψ ∈ F AL und ∗ ∈ {∨, ∧, →, ↔}, so J(ϕ ∗ ψ)Kβ = JϕKβ ∗˙ JψKβ . Für zusammengesetzte Formeln wird der Wahrheitswert gemäß Abbildung 7 zusammengesetzt. 11 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Boolesche Operationen Negation b ¬b ˙ 0 1 1 0 Zweistellige Operationen ˙ 1 b0 ∧b ˙ 1 b0 →b b0 b1 b0 ∨b ˙ 1 b0 ↔b ˙ 1 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 Folie 7 Beispiel 2.4. Sei Variablenbelegung β gegeben durch β(V0 ) = 1, β(V1 ) = 1 und β(V2 ) = 0. Dann gilt J¬((¬V0 ∧ V1 ) ∨ V2 )Kβ = 1. Aufgabe 2.1. Welche der folgenden Formeln ist (mit bzw. ohne Vereinfachungsregeln) syntaktisch korrekt? (a) ¬(X 1 ∨ X 2 ) (b) (¬X 1 ) ∨ (X 1 ∧ X 0 ) (c) X 1 ∨ X 2 ∨ X 3 ∨ ¬(X 1 ∧ X 2 ∧ X 3 ) (d) ¬(¬X 1 ∨ X 2 ) ∨ (X 1 → X 2 ) (e) ¬(0 ∨ X 2 ) ∨ (1 → X 2 ) Aufgabe 2.2. Betrachten Sie die folgenden aussagenlogischen Formeln: (a) ((X 1 → X 2 ) ↔ (X 2 → X 1 )) (b) (¬X 1 → ¬X 2 ) (c) (¬(X 1 ∧ X 2 ) ∨ (X 2 → X 3 )) (d) (((X 1 → X 2 ) ∧ (X 2 → X 3 )) → 1) (e) ((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 2 ) ∧ (¬X 2 → X 1 ))) 12 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Geben Sie zu jeder Formel jeweils eine Variablenbelegung an, für die der Wahrheitswert der Formel 1 (wahr) bzw. 0 (falsch) ist, falls eine solche Belegung existiert. Wichtige Begriffe • • • • • Aussage atomare / zusammengesetzte (aussagenlogische) Formel Syntax Wahrheitswert Semantik 2.3 Modellierung Wir wollen nun beispielhaft Sachverhalte formal durch aussagenlogische Formeln beschreiben. Beispiel 2.5. Altes Beispiel: Wenn es Samstag oder Sonntag ist, dann ist Wochenende. Wir benutzen drei Variablen: X 0 , X 1 und X 2 , wobei X 0 beschreiben soll, ob es Samstag ist, X 1 beschreiben soll, ob es Sonntag ist, und X 2 beschreiben soll, ob es Wochenende ist. Dann schreiben wir: ((X 0 ∨ X 1 ) → X 2 ) . Manchmal ist es praktischer, wenn Variablen – wie bei der Programmierung – aussagekräftige Bezeichnungen erhalten. Deshalb erlauben wir die Benutzung anderer Variablennamen in Beispielen und stellen uns vor, dass diese bei einer formalen Umsetzung durch die Variablen aus VAL ersetzt werden. Die obige Formel könnten wir zum Beispiel besser in der Form ((X Sams ∨ X Sonn ) → X WE ) schreiben. Die folgenden zwei Beispiele sind von ähnlicher Art. Das Ziel ist es, gewisse »gute« Elemente aus einer vorgegebenen Menge auszusondern: In dem eine Beispiel geht es darum, aus der Menge aller 2-Färbungen eines Graphen die zulässigen auszuwählen, während in dem anderen aus allen Möglichkeiten, eine Sudokuinstanz zu vervollständigen, die korrekte ausgewählt wird. 2.3.1 Beispiel: Bipartite Graphen Wir erinnern uns an ungerichtete Graphen und Graphfärbungen durch Folie 8. Wir können uns eine Färbung des Beispielgraphen vorstellen als eine Variablenbelegung β mit Definitionsbereich {X 0 , . . . , X 6 }. Genauer: Wir identifizieren jede 2-Färbung c mit der 13 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Ungerichtete Graphen Ein ungerichteter Graph ist ein Paar (V , E ) bestehend aus I I einer Menge V von Knoten und einer Menge E ⊆ E2 von Kanten. v4 v3 v2 v0 v1 v6 v5 Eine k-Färbung ist eine Funktion c : V → {0, . . . , k − 1}. Sie heißt gültig, wenn c(v ) 6= c(w ) für alle (v , w ) ∈ E gilt. Ein Graph heißt bipartit, wenn es eine zulässige 2-Färbung gibt. Folie 8 Belegung βc definiert durch βc (X i ) = c(v i ). Dass eine solche Färbung gültig ist, können wir dann beschreiben durch die Formel ϕ, die definiert ist durch: ϕ = ((((((((X 0 ↔ ¬X 1 ) ∧ (X 0 ↔ ¬X 2 )) ∧ (X 1 ↔ ¬X 4 )) ∧ (X 2 ↔ ¬X 4 )) ∧ (X 1 ↔ ¬X 3 )) ∧ (X 1 ↔ ¬X 5 )) ∧ (X 3 ↔ ¬X 6 )) ∧ (X 5 ↔ ¬X 6 )) Sie drückt aus, dass die Eckpunkte jeder Kante unterschiedlich gefärbt sind. β Also: Eine 2-Färbung c von G ist gültig genau dann, wenn JϕKc = 1. Die obige Formel ist schwer zu lesen, weshalb wir die folgenden üblichen Konventionen vereinfachen die Lesbarkeit: • Das äußerste Klammerpaar kann weggelassen werden. • Ein Ausdruck der Form ((. . . ((ϕ0 ∗ ϕ1 ) ∗ ϕ2 ) . . . ) ∗ ϕr −1 ) kann für ∗ ∈ {∨, ∧, ↔} durch (ϕ0 ∗ ϕ1 ∗ ϕ2 ∗ · · · ∗ ϕr −1 ) ersetzt werden. • Ein Ausdruck der obigen Form kann auch ganz kurz durch ∗i <r ϕ abgekürzt werden. 14 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Wir können nun die obige Formel in der Form (X 0 ↔ ¬X 1 ) ∧ (X 0 ↔ ¬X 2 ) ∧ (X 1 ↔ ¬X 4 ) ∧ (X 2 ↔ ¬X 4 ) ∧ (X 1 ↔ ¬X 3 ) ∧ (X 1 ↔ ¬X 5 ) ∧ (X 3 ↔ ¬X 6 ) ∧ (X 5 ↔ ¬X 6 ) und in der Form ^ (X i ↔ ¬X j ) . i , j : i < j <7 und {i , j }∈E schreiben. Abschließend wollen wir die obige Beobachtung verallgemeinern: Lemma 2.1 (bipartite Graphen). Sei G = (V, E ) ein ungerichteter endlicher Graph mit Knotenmenge {0, . . . , n − 1} und ϕ die Formel definiert durch ^ (X i ↔ ¬X j ) . (2.1) i , j : i < j <n und {i , j }∈E 1. Für jede 2-Färbung c von G gilt: JϕKβc = 1 genau dann, wenn c gültig ist. 2. G ist bipartit genau dann, wenn es eine Belegung β mit {X 0 , . . . , X n−1 } ⊆ dom(β) gibt, die ϕ durch 1 interpretiert. Dem Beweis wenden wir uns später zu. Abschließend treffen wir noch die folgende wichtige Definition, die durch das vorangehende Beispiel gut motiviert ist: Eine Belegung β, die zu einer Formel ϕ passt, wird erfüllend genannt, wenn JϕKβ = 1 gilt. Eine Formel ϕ heißt erfüllbar, wenn es eine erfüllende Belegung für sie gibt. 2.3.2 Beispiel: Sudoku Wir betrachten zunächst Folie 9, um uns an Sudoku zu erinnern. Um Sudoku modellieren zu können, setzen wir N = {1, . . . , 9}, M = N ∪{?} und R = {0, 1, 2}. Eine Sudokuinstanz ist dann eine Matrix S ∈ M 9×9 . Ein Lösungskandidat ist eine Matrix L ∈ N 9×9 , die in den von ? verschiedenen Einträgen mit S übereinstimmt. Sie heißt Lösung, wenn die auf der Folie angegebenen Sudokubedingungen erfüllt sind. Ziel ist es, zu einer gegebenen Sudokuinstanz eine Formel ϕS zu entwickeln, deren erfüllende Belegungen genau die Lösungen von S beschreiben. Dazu benutzen wir Aussagenvariablen der Form X ik, j mit i , j , k ∈ N (insgesamt 729 Variablen). Dann lassen sich Sudokulösungskandidaten leicht in Belegungen der Variablen umsetzen: Zu L ∈ N 9×9 definieren wir die Belegung βL durch ( 1 , falls L i , j = k, βL (X ik, j ) = 0 , sonst. Mit anderen Worten, X ik, j bedeutet, dass in Zeile i und Spalte j die Zahl k steht. 15 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Sudoku 5 6 1 8 4 7 9 2 3 3 7 9 5 2 1 6 8 4 4 2 8 9 6 3 1 7 5 6 1 3 7 8 9 5 4 2 7 9 4 6 5 2 3 1 8 8 5 2 1 3 4 7 9 6 9 3 5 4 7 8 2 6 1 1 4 6 2 9 5 8 3 7 2 8 7 3 1 6 4 5 9 Bedingungen Sei N = {1, . . . , 9}. I In jeder Zeile jedes Element aus N genau einmal. I In jeder Spalte jedes Element aus N genau einmal. I In jeder Region jedes Element aus N genau einmal. Dabei ist eine Region eine durch fette Linien eingegrenzte 3 × 3-Matrix. Folie 9 Offensichtlich kann nicht jeder Belegung der Variablen ein Lösungskandidat zugeordnet werden, denn wir befänden uns zum Beispiel dann in einer widersprüchlichen Situation, 4 5 wenn X 1,3 und X 1,3 der Wert 1 zugeordnet würde. Deshalb verschaffen wir uns zunächst eine Formel, die dieses Problem behebt. Die Formel ϕMatrix soll besagen, dass eine Belegung einer Matrix entspricht: 1. In jedem Matrixeintrag steht mindestens ein Element aus N . 2. In jedem Matrixeintrag steht höchstens ein Element aus N . Das kann wie folgt formuliert werden: ϕMatrix = ^ _ i , j ∈N k∈N X ik, j ∧ ^ i , j ,k,k 0 ∈N :k6=k 0 0 ¬(X ik, j ∧ X ik, j ) . (2.2) Dann können wir festhalten: Bemerkung 2.1. 1. Ist β eine Variablenbelegung, die zu ϕMatrix passt, und für die JϕMatrix Kβ β gilt, so ist die Matrix L β ∈ N 9×9 mit L i , j = k, falls β(X ik, j ) = 1, wohldefiniert. 2. Ist M ∈ N 9×9 , so gilt JϕMatrix KβM = 1. 16 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Jetzt wollen wir die Lösungskandidaten zu einer gegeben Sudokuinstanz S beschreiben. Das können wir machen, in dem wir zusätzlich zu ϕMatrix fordern, dass in jedem von ? verschiedenen Eintrag von S die entsprechende Zahl steht. Dazu benutzen wir die Formel ψS gegeben durch ^ ψS = X ik, j . (2.3) i , j ,k∈N :S i , j =k Bemerkung 2.2. 1. Ist L ein Lösungskandidat für S, dann gilt JϕMatrix ∧ ψS KβL = 1. 2. Ist β eine Variablenbelegung, die zu ϕMatrix ∧ ψS passt und für die JϕMatrix ∧ ψS Kβ = 1 gilt, dann ist L β ein Lösungskandidat für S. Ganz zum Schluss müssen wir nur noch sagen, wann ein Lösungskandidat eine Lösung ist, was wir ausdrücken können durch: 1. In jeder Zeile steht jedes Element aus N mindestens einmal. 2. In jeder Spalte steht jedes Element aus N mindestens einmal. 3. In jeder Region steht jedes Element aus N mindestens einmal. Diese drei Bedingungen spiegeln sich wieder in: ^ _ k Xi ,j i ,k∈N j ∈N ^ _ k ^ Xi ,j ϕLösung = (2.4) i ∈N j ,k∈N ^ _ k X p3+p 0 +1,q3+q 0 +1 p,q∈D,k∈N p 0 ,q 0 ∈D Für die gesuchte Formel können wir also ϕS = ϕMatrix ∧ ψS ∧ ϕLösung (2.5) nehmen: Lemma 2.2 (Sudoku). Sei S eine Sudokuinstanz. 1. Ist L eine Lösung von S, so ist βL eine erfüllende Belegung für ϕS . 2. Ist β : {X ik, j | i , j , k ∈ N } → {0, 1} eine erfüllende Belegung für ϕS , dann ist L β eine Lösung von S. Die gesamte Formel ist noch einmal auf Folie 10 zu sehen. Die Weise, nach der wir gerade vorgegangen sind, ist typisch. Man kann sie kurz wie folgt beschreiben. Die Gesamtformel ist eine Konjunktion von drei Formeln, die folgende Zwecke erfüllen: 1. Beschreibung der Menge aller Belegungen, die zu Lösungskandidaten passen. 2. Einschränkung auf die Lösungskandidaten zu einer gegebenen Instanz. 3. Weitere Einschränkung auf die eigentlichen Lösungen. 17 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Sudokuformel ϕS = ϕMatrix ∧ ψS ∧ ϕLösung mit ϕMatrix = ^ _ k Xi,j ∧ i,j∈N k∈N ψS = ^ ^ i,j,k,k 0 ∈N:k6=k 0 0 k k ¬Xi,j ∨ ¬Xi,j , k Xi,j , i,j,k∈N:Si,j =k ϕLösung ^ _ k Xi,j i,k∈N j∈N ^ ^ _ k Xi,j = j,k∈N i∈N _ ^ k Xp3+p 0 +1,q3+q 0 +1 p,q∈D,k∈N p 0 ,q 0 ∈D Folie 10 Zum Abschluss werfen wir noch einmal einen Blick auf Folie 11, die das Spiel Superhirn erläutert. Eine Aufgabe, die man sich hier stellen kann, besteht darin, zu einem gegebenen Zeitpunkt eine neue Reihe zu bestimmen, die noch für die verdeckte Wahl in Frage kommt. Eine entsprechende Formel zu konstruieren ist etwas schwieriger (warum?), weshalb wir davon vorerst absehen. Aufgabe 2.3. Das so genannte Schubfachprinzip (engl. pigeonhole principle) kann folgendermaßen beschrieben werden: Falls man n Objekte auf m Mengen (n, m > 0) verteilt, und n größer als m ist, dann gibt es mindestens eine Menge, in der mehr als ein Objekt landet. Seien nun n, m ∈ N, wobei n die Anzahl der Objekte und m die Anzahl der Mengen bezeichnet. Zur Modellierung wollen wir Variablen X i , j mit i ∈ {1, . . . , n} und j ∈ {1, . . . , m} verwenden. Dabei soll die Belegung der Variable X i , j festlegen, ob das Element i in der Menge j enthalten ist. (a) Geben Sie eine Formel ϕ an, die sicherstellt, dass jedem Objekt genau eine Menge zugeordnet ist. 18 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Superhirn I scharzer Stecker: an einer Position stimmt Farbe überein I weißer Stecker: Farbe stimmt, Position aber nicht Ziel Finde Formel, die beschreibt, welche Reihen mit der bisherigen Information verträglich sind. Schwieriger . . . Folie 11 Formaler: Für jede Variablenbelegung β, die zu ϕ passt, soll gelten: ( 1 falls jedem Objekt genau eine Menge zugeordnet ist JϕKβ = 0 sonst. (b) Geben Sie eine Formel ψ an, die sicherstellt, dass jeder Menge höchstens ein Objekt zugeordnet ist. Formaler: Für jede Variablenbelegung β, die zu ψ passt, soll gelten: ( 1 falls jeder Menge höchstens ein Element zugeordnet ist JψKβ = 0 sonst. (c) Was kann man über J(ϕ ∧ ψ)Kβ in Abhängigkeit von n und m aussagen? 2.4 Eindeutige Konstruktion von Formeln Wir haben bislang bei induktiven Definitionen von Funktionen, deren Definitionsbereich die Menge der aussagenlogischen Formeln ist, angenommen, dass jede Formel auf nur ei- 19 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik ne Weise zusammengesetzt werden kann. Das wollen wir noch beweisen und zwar per vollständiger Induktion über die Länge aller Formeln. Auf Folie 12 ist dafür das Beweisprinzip der vollständigen Induktion noch einmal dargestellt. Erinnerung: Das Beweisprinzip der vollständigen Induktion Beweis dafür, dass jede natürliche Zahl eine gewisse Eigenschaft besitzt: 1. Induktionsanfang: Man zeigt, dass die Zahl 0 die Eigenschaft besitzt. 2. Induktionsschritt: 2.1 Induktionsannahme: Man nimmt an, dass eine beliebige Zahl n die Eigenschaft besitzt. 2.2 Man zeigt, dass die Induktionsbehauptung gilt. Induktionsbehauptung: Die Zahl n + 1 besitzt die Eigenschaft. Variante Allgemeinere Induktionsannahme: 2.1 Man nimmt an, dass für eine natürliche Zahl n alle Zahlen m ≤ n die Eigenschaft besitzen. Folie 12 Wir beginnen damit, zu zeigen, dass keine Formel ein echtes Anfangsstück einer anderen Formel sein kann. Dabei benutzten wir folgende Notation. Wir schreiben u @ v für zwei Zeichenreihen, wenn u ein echtes Anfangsstück von v ist. Lemma 2.3. Sind ϕ, ψ ∈ F AL , so gilt ϕ 6@ ψ. Beweis. Wir beweisen dies per vollständiger Induktion über die Länge. Die Eigenschaft ist: Ist ψ ∈ F AL mit l (ψ) = n + 1, so gilt ϕ 6@ ψ für alle ϕ ∈ F AL . 1. Induktionsanfang: Wir müssen zeigen, dass für jedes ψ ∈ F AL mit l (ψ) = 1 und für alle ϕ ∈ F AL ϕ @ 6 ψ gilt. Wegen l (ψ) = 1 gibt es nur eine Zeichenreihe ϕ mit ϕ @ ψ, nämlich die leere Zeichenkette. Diese Zeichenreihe ist aber kein Element von F AL . 2. Induktionsschritt: Sei n ∈ N. Wir nehmen an (Induktionsannahme), dass ϕ @ 6 ψ0 für alle ϕ ∈ F AL und ψ0 ∈ F AL mit l (ψ0 ) ≤ n + 1 gilt. Für ein beliebiges ψ ∈ F AL mit l (ψ) = 20 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik n + 2 müssen wir zeigen, dass ϕ 6@ ψ gilt. Wir führen eine Fallunterscheidung nach der Form von ψ durch. 1. Fall, ψ = ¬ψ0 . Wir nehmen an, dass ϕ @ ψ mit ϕ ∈ F AL gilt. Wenn l (ϕ) = 1, dann ist ϕ = ¬, was keine Formel ist – Widerspruch. Wenn l (ϕ) > 1, dann können wir ϕ in der Form ¬ϕ0 schreiben, wobei ϕ0 eine Formel ist. Dann haben wir ϕ0 @ ψ0 – Widerspruch zur Induktionsannahme. 2. Fall, ψ = (ψ0 ∗ ψ1 ) mit ∗ ∈ {∨, ∧, →, ↔}. Wir nehmen an, dass ϕ ∈ F AL ein echtes Anfangsstück von ψ ist (genau wie oben). Es muss l (ϕ) > 1 gelten, denn ( ist keine Formel. Also können wir ϕ als (ϕ0 ◦ϕ1 ) schreiben mit ϕ0 , ϕ1 ∈ F AL und ◦ ∈ {∨, ∧, →, ↔}. Wir treffen nun eine Fallunterscheidung danach, wo ∗ im Vergleich zu ◦ steht: • l (ϕ0 ) < l (ψ0 ): Dann gilt ϕ0 @ ψ0 – Widerspruch zur Induktionsannahme. • l (ϕ0 ) > l (ψ0 ): Dann gilt ψ0 @ ϕ0 – Widerspruch zur Induktionsannahme. • l (ϕ0 ) = l (ψ0 ): Dann gilt (∗ = ◦, was aber nicht interessiert, und) ϕ1 @ ψ1 – Widerspruch zur Induktionsannahme. Nun können wir die eigentliche Behauptung beweisen: Satz 2.1 (eindeutige Konstruktion). Jede aussagenlogische Formel kann nur in einer Weise im Sinne von Folie 6 konstruiert werden. Beweis. Hier reicht es, eine einfache Fallunterscheidung durchzuführen. Sei ϕ ∈ F AL beliebig. 1. Fall, ϕ ist eine atomare Formel. Jede atomare Formel hat die Länge 1 und kann nicht durch eine der Induktionsregeln erzeugt werden. 2. Fall, ϕ = ¬ψ0 mit ψ0 ∈ F AL . Eine solche Formel kann nur eine Negation sein und deshalb nur auf eine Weise konstruiert werden. 3. Fall, ϕ = (ϕ0 ∗ ϕ1 ) mit {∗} ∈ {∨, ∧, →, ↔} und ϕ0 , ϕ1 ∈ F AL . Wir nehmen an, dass außerdem ϕ = (ϕ00 ◦ ϕ01 ) mit {◦} ∈ {∨, ∧, →, ↔}, ϕ00 , ϕ01 ∈ F AL und l (ϕ0 ) 6= l (ϕ1 ) gilt. Dann gilt entweder ϕ0 @ ϕ00 oder ϕ00 @ ϕ0 – ein Widerspruch zum vorigen Lemma. Aufgabe 2.4. Als Länge einer Formel bezeichnen wir die Anzahl der Symbole, die in der Formel vorkommen. Dabei zählen wir jede Variable als ein Symbol. Definieren Sie induktiv eine Funktion l : F AL → N, die zu jeder aussagenlogischen Formel ψ ∈ F AL die Länge von ψ liefert. Beispiel. Ist ψ = ((X 1 ∨ X 3 ) ∧ (X 2 ∨ (X 3 → ¬X 1 ))), dann ist l (ψ) = 18. Aufgabe 2.5. Als Schachtelungstiefe einer Formel bezeichnen wir die maximale Rekursionstiefe der Formel (siehe Beispiel). Definieren Sie induktiv eine Funktion d : F AL → N, die zu jeder aussagenlogischen Formel ψ ∈ F AL die Schachtelungstiefe von ψ liefert. Beispiel. Ist ψ = ((X 1 ∨ X 3 ) ∧ (X 2 ∨ (X 3 → ¬X 1 ))), dann ist d (ψ) = 4. 21 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik ψ X1 ∨ X3 X1 Tiefe 0 X 2 ∨ (X 3 → ¬X 1 ) X3 Tiefe 1 X 3 → ¬X 1 X2 X3 Tiefe 2 ¬X 1 Tiefe 3 X1 Tiefe 4 2.5 Formeln in Scheme Um mit aussagenlogischen Formeln in Scheme umgehen zu können, definieren wir eine Reihe von Strukturen, und zwar für die Modellierung von Variablen und für die Modellierung der Junktoren. Variablenbelegungen modellieren wir durch Listen von Paaren bestehend aus Variablenindex und Wahrheitswert. Das Bestimmen der Belegung einer Variablen kann dann durch einfaches Durchsuchen der Liste bewerkstelligt werden. Will man eine Formel bezüglich einer Variablenbelegung bewerten, kann man dann einfach rekursiv vorgehen. Die Details sind zu finden auf den Folien 13–15. Aufgabe 2.6. Entwickeln Sie eine (Scheme-)Prozedur formula->string, die eine aussagenlogische Formel in eine Zeichenreihe umwandelt. Verwenden Sie dabei die auf Folie 13 vorgestellten Strukturen. Stellen Sie die Junktoren gemäß folgender Kodierung dar: Junktor ¬ → ↔ ∧ ∨ Kodierung -> <-> /\ \/ Beispiel. ((X_12 /\ -X_15) -> 0) ist eine typische Ausgabe. Hinweis. Die Ausgabe einer Zeichenreihe kann in Scheme zum Beispiel wie folgt aussehen: (display (string-append "X_" (number->string 1) " \\/ " "1")). 2.6 Äquivalenz und Normalformen Neben der Erfüllbarkeit, die wir schon kennengelernt haben, ist die Äquivalenz ein wichtiger Begriff. 22 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Formeln in Scheme ; Structures for constructing formulas. (define-struct variable (index)) (define-struct negation (negated)) (define-struct disjunction (left right)) (define-struct conjunction (left right)) (define-struct conditional (left right)) (define-struct biconditional (left right)) Folie 13 Formeln ϕ, ψ ∈ F AL heißen äquivalent, falls für alle Belegungen β, die zu ϕ und ψ passen, JϕKβ = JψKβ gilt. Wir schreiben ϕ ≡ ψ in diesem Fall. 2.6.1 Das Koinzidenzlemma Wir wollen uns zunächst überlegen, dass wir nicht immer alle passenden Variablenbelegungen untersuchen müssen. Es ist ausreichend, wenn man solche mit minimalem Definitionsbereich betrachtet. Lemma 2.4 (Koinzidenzlemma). Sei ϕF AL und seien β und β0 Variablenbelegungen, die zu ϕ passen. Falls β|vars(ϕ) = β0 |vars(ϕ) , so JϕKβ = JϕKβ . 0 Beweis. Den Beweis führen wir per Induktion. 23 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Variablenbelegungen in Scheme ; Structure for a single assignment: variable |-> truth value. (define-struct sass (index value)) ; Structure for an undefined value. (define-struct undefined ()) ; Look-up of a variable value; an assignment is a list of sass. (define (look-up index assignment) (if (null? assignment) (make-undefined) (if (= index (sass-index (first assignment))) (sass-value (first assignment)) (look-up index (rest assignment))))) Folie 14 1. Induktionsanfang: Sei ϕ eine atomare Formel. Dann ist ϕ ∈ {0, 1, X 0 , X 1 , . . . }. Für ϕ ∈ {0, 1} ist die Behauptung trivial. Für X i ist die Behauptung aber auch sofort einzusehen: J X i Kβ = β(X i ) = β0 (X i ) = J X i Kβ . 0 2. Induktionsschritt: Wir nehmen an, dass eine Formel ϕ durch eine der Induktionsregeln entstanden ist aus anderen Formeln, für die die Behauptung gilt, und wollen zeigen, dass sie dann auch für ϕ gilt. Wir betrachten jede Regel einzeln. 1. Fall, ϕ = ¬ψ. Dann haben wir JϕKβ = ¬ ˙ Jϕ0 Kβ =¬ ˙ Jϕ0 Kβ = JϕKβ (Semantik der Negation) 0 (Induktionsannahme) 0 (Semantik der Negation) . 2. Fall, ϕ = (ϕ0 ∗ ϕ1 ) mit ∗ ∈ {∨, ∧, →, ↔} und ϕ0 , ϕ1 ∈ F AL . Dann erhalten wir analog 24 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Auswertung von Formeln in Scheme ; Evaluate formula w.r.t. a variable assignment. (define (evaluate formula assignment) (cond ((eq? formula #t) #t) ((eq? formula #f) #f) ((variable? formula) (look-up (variable-index formula) assignment)) ((negation? formula) (not (evaluate (negation-negated formula) assignment))) ((disjunction? formula) (or (evaluate (disjunction-left formula) assignment) (evaluate (disjunction-right formula) assignment))) ((conjunction? formula) (and (evaluate (conjunction-left formula) assignment) (evaluate (conjunction-right formula) assignment))) ((conditional? formula) (or (not (evaluate (conditional-left formula) assignment)) (evaluate (conditional-right formula) assignment))) ((biconditional? formula) (eq? (evaluate (biconditional-left formula) assignment) (evaluate (biconditional-right formula) assignment))))) Folie 15 zu oben: JϕKβ = J(ϕ0 ∗ ϕ1 )Kβ ˙ Jϕ1 Kβ = Jϕ0 Kβ ∗ ˙ Jϕ1 Kβ = Jϕ0 Kβ ∗ 0 = J(ϕ0 ∗ ϕ1 )Kβ (Semantik des Junktors) 0 (Induktionsannahme) 0 (Semantik des Junktors) = JϕKβ . 0 Als Konsequenz erhalten wir insbesondere: Folgerung 2.1. Sei ϕ ∈ F AL und β eine zu ϕ passende Variablenbelegung. Dann gilt JϕKβ = JϕKβ|vars(ϕ) . 2.6.2 Aussagenlogische Gesetze Aufgrund der algebraischen Eigenschaften der booleschen Operationen können wir sofort die folgenden nützlichen Äquivalenzen festhalten: 25 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Satz 2.2. Für alle Formeln ϕ, ψ, χ ∈ F AL gilt: 1. Idempotenz: ϕ∨ϕ ≡ ϕ , ϕ∧ϕ ≡ ϕ . (Idp) 2. Kommutativität: ϕ∨ψ ≡ ψ∨ϕ , ϕ∧ψ ≡ ψ∧ϕ . (Kom) 3. Assoziativität: (ϕ ∧ ψ) ∧ χ ≡ ϕ ∧ (ψ ∧ χ) , (ϕ ∨ ψ) ∨ χ ≡ ϕ ∨ (ψ ∨ χ) . (Ass) 4. Absorption: ϕ ∧ (ϕ ∨ ψ) ≡ ϕ , ϕ ∨ (ϕ ∧ ψ) ≡ ϕ . (Abs) 5. Distributivität: (ϕ ∧ ψ) ∨ χ ≡ (ϕ ∨ χ) ∧ (ψ ∨ χ) , (ϕ ∨ ψ) ∧ χ ≡ (ϕ ∧ χ) ∨ (ψ ∧ χ) . (Dis) 6. Doppelte Negation: ¬¬ϕ ≡ ϕ (DN) 7. De Morgan: ¬(ϕ ∧ ψ) ≡ ¬ϕ ∨ ¬ψ , ¬(ϕ ∨ ψ) ≡ ¬ϕ ∧ ¬ψ . (DM) 8. Tertium non datur: ϕ ∧ ¬ϕ ≡ 0 , ϕ ∨ ¬ϕ ≡ 1 . (Tnd) ϕ∧0 ≡ 0 , ϕ∨1 ≡ 1 , (GK) ¬0 ≡ 1 , ¬1 ≡ 0 . (Kmp) ϕ ↔ ψ ≡ (¬ϕ ∨ ψ) ∧ (ϕ ∨ ¬ψ) . (Elm) 9. Größtes und kleinstes Element: 10. Komplementierung: 11. Elimination von Konditional und Bikonditional: ϕ → ψ ≡ ¬ϕ ∨ ψ , 12. Kontraposition: Für alle ϕ, ψ ∈ F AL gilt ϕ → ψ ≡ ¬ψ → ¬ϕ . 26 Aussagenlogik.tex Rev 266 2009-02-10 (Knt) 2 Aussagenlogik Beweis. Wie gesagt, die Gesetze folgen direkt aus den Eigenschaften der booleschen Operationen. Zum Beispiel kann man leicht nachrechnen, dass b 0 →b ˙ 1 = ¬b ˙ 1→ ˙ ¬b ˙ 0 für alle b 0 , b 1 ∈ {0, 1} (*) gilt. Daraus folgt die Gültigkeit der Kontraposition wie folgt: Sei β eine Belegung, die zu ϕ und ψ passt. Dann gilt Jϕ → ψKβ = JϕKβ → ˙ JψKβ β (Semantik von →) β =¬ ˙ Jψ K → ˙¬ ˙ Jψ K (Anwendung von (*)) = J¬ψKβ → ˙ J¬ψKβ (Semantik von ¬) = J¬ψ → ¬ϕKβ . (Semantik von →) Damit ist die Behauptung bewiesen. Diese obigen Gesetze beschreiben zwar viele aussagenlogischen Gesetzmäßigkeiten. Will man aber weitere Gesetzmäßigkeiten mit ihrer Hilfe beweisen, benötigt man eine weitere Erkenntnis. Dazu wollen wir uns ein Beispiel ansehen. Es lässt sich leicht wie im Beweis von Satz 2.2 direkt nachrechnen, dass ϕ ↔ ψ ≡ (ϕ → ψ) ∧ (ψ → ϕ) (2.6) für alle ϕ, ψ ∈ F AL gilt. Allein mit den Gesetzen aus Satz 2.2 gelingt dies aber nicht. Was wir brauchen, um weitere interessante Äquivalenzen beweisen zu können, ist eine Aussage darüber, dass man innerhalb einer Formel eine Teilformel durch eine äquivalente ersetzen darf. Das ist Thema des nächsten Abschnitts. 2.6.3 Substitution Eine Substitution ist eine partielle Funktion VAL 99K F AL . Sei σ eine Substitution. Gilt X i ∈ dom(σ), so nennen wir σ(X i ) den Substituenten für X i . Für jede Formel ϕ ∈ F AL definieren wir das Ergebnis der Anwendung von σ auf ϕ, was wir mit ϕσ bezeichnen. Die Definition von ϕσ erfolgt per Induktion: 1. Induktionsanfang (Basiszuordnung): Wir setzen 0σ = 0, 1σ = 1 und X i σ = X i für alle i mit X i ∉ dom(σ). Für X i ∈ dom(σ) setzen wir X i σ = σ(X i ). 2. Induktionsschritt (durch Induktionsregeln): Hier setzen wir (¬ϕ)σ = ¬(ϕσ) und (ϕ ∗ ψ)σ = (ψσ ∗ ψσ) für ∗ ∈ {∨, ∧, →, ↔} und ϕ, ψ ∈ F AL . Ist σ eine Substitution und β eine Belegung, so bezeichnet βσ die Belegung definiert durch (βσ)(X i ) = J X i σKβ für i ∈ N. Zunächst beweisen wir: Lemma 2.5 (Substitutionslemma). Sei ϕ ∈ F AL , σ eine Substitution und β eine Belegung, die zu ϕσ passt. Dann gilt JϕσKβ = JϕKβσ . 27 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Beweis. Der Beweis erfolgt durch eine einfache Induktion. 1. Induktionsanfang: Gilt ϕ = 0, so gilt JϕσKβ = J0Kβ = JϕKβσ . Ähnlich ist der Beweis für ϕ = 1. Ist X i ∉ dom(σ), so ist die Behauptung leicht einzusehen. Für X i ∈ dom(σ) erhalten wir: JϕσKβ = J X i σKβ = Jσ(X i )Kβ = J X i Kβσ . 2. Induktionsschritt: Wir betrachten den Fall ϕ = (ϕ0 ∨ ϕ1 ). Dann gilt: JϕσKβ = J(ϕ0 ∨ ϕ1 )σKβ = J(ϕ0 σ ∨ ϕ1 σ)Kβ ˙ Jϕ1 σKβ = Jϕ0 Kβσ ∨ ˙ Jϕ1 Kβσ = J(ϕ0 ∨ ϕ1 )Kβσ . = Jϕ0 σKβ ∨ Die anderen Fälle lassen sich in gleicher Weise beweisen. Daraus können wir zunächst ableiten: Folgerung 2.2 (1. Ersetzungslemma). Sind ϕ, ψ ∈ F AL mit ϕ ≡ ψ und ist σ eine Substitution, so gilt ϕσ ≡ ψσ. Beweis. Für jede Variablenbelegung β, die zu ϕσ und ψσ passt, gilt: JϕσKβ = JϕKβσ = JψKβσ = JψσK . Wir können aus dem Substitutionslemma auch noch ein weiteres sehr hilfreiche Lemma ableiten. Dazu führen wir folgende Schreibweise ein. Wenn X i ∈ VAL und ψ ∈ F AL , so [ψ/X i ] die Substitution, die definiert ist durch ( Xi , falls i = j , [ψ/X j ] = undefiniert, sonst. In analoger Weise schreiben wir [ψi 0 /X i 0 , . . . , ψi r −1 /X i r −1 ] für Substitutionen, die mehrere Variablen ersetzen. Folgerung 2.3 (2. Ersetzungslemma). Ist χ ∈ F AL , X i ∈ VAL , ρ, ρ 0 ∈ F AL mit ρ ≡ ρ 0 . Dann gilt χ[ρ/X i ] ≡ χ[ρ 0 /X i ] . Beweis. Wir wenden das Substitutionslemma an und nehmen an, dass β eine beliebige Belegung ist, die zu χ passt. Dann gilt: Jχ[ρ/X i ]Kβ = JχKβ[ρ/X i ] = JχKβ[ρ /X i ] = Jχ[ρ 0 /X i ]Kβ . 0 Daraus folgt die Behauptung. 28 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Die obige Formulierung des Ersetzungslemmas ist technisch, während die Anwendung des Lemmas sehr intuitiv ist, was wir an Formel 2.6 zeigen wollen. Beweisen wollten wir, dass ϕ ↔ ψ ≡ (ϕ → ψ) ∧ (ψ → ϕ) für alle ϕ, ψ ∈ F AL gilt. Im Folgenden seien deshalb ϕ, ψ ∈ F AL und es sei i derart, dass X i ∉ vars(ϕ)∪vars(ψ) gilt. 1. Aus (Elm) erhalten wir ϕ ↔ ψ ≡ (¬ϕ ∨ ψ) ∧ (ϕ ∨ ¬ψ) 2. Nun wenden wir auf χ = X i ∧ (ϕ ∨ ¬ψ) das 2. Ersetzungslemma mit ρ = ¬ϕ ∨ ψ und ρ 0 = ϕ → ψ an. Letzteres dürfen wir wegen (Elm). Dann erhalten wir: (¬ϕ ∨ ψ) ∧ (ϕ ∨ ¬ψ) ≡ (ϕ → ψ) ∧ (ϕ ∨ ¬ψ) . 3. Jetzt wenden wir auf χ = (ϕ → ψ) ∧ X i wieder das 2. Ersetzungslemma an, jetzt mit ρ = ϕ ∨ ¬ψ und ρ 0 = ¬ψ ∨ ϕ an. Letzteres dürfen wir wegen (Kom). Dann erhalten wir: (ϕ → ψ) ∧ (ϕ ∨ ¬ψ) ≡ (ϕ → ψ) ∧ (¬ψ ∨ ϕ) . 4. Erneut wenden wir das 2. Ersetzungslemma an, dieses Mal mit χ = (ϕ → ψ) ∧ X i , ρ = ¬ψ ∨ ϕ und ρ 0 = ψ → ϕ, wobei letzteres durch (Elm) gerechtfertigt ist. Wir erhalten: (ϕ → ψ) ∧ (¬ψ ∨ ϕ) ≡ (ϕ → ψ) ∧ (ψ → ϕ) . Insgesamt ist nun die vorgegebene Äquivalenz bewiesen. Aufgabe 2.7. Sei σ : VAL 99K F AL eine Substitution mit σ(X 1 ) = (ψ ∧ X 2 ) σ(X 2 ) = ¬X 1 σ(X 4 ) = X 1 . Sei ϕ := ((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 3 ) ∧ ¬X 2 )). (a) Berechnen Sie ϕσ durch Anwendung der induktiven Definition der Substitution. (b) Was erhält man bei intuitiver Substitution? (c) Wie kann man sinnvoll die Komposition von zwei Substitutionen definieren? 2.6.4 Negationsnormalform Häufig ist es günstig, ohne Einschränkung annehmen zu können, dass eine beliebige aussagenlogische Formel eine eingeschränkte Form hat. Das führt zur Definition und Untersuchung so genannter Normalformen. Eine aussagenlogische Formel ist in Negationsnormalform (NNF) oder positiver Normalform, wenn sie zur Menge NNF AL gehört, deren induktive Definition auf Folie 16 zu sehen ist. 29 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Negationsnormalform Die Menge NNF AL ist induktiv definiert durch: 1. Induktionsanfang (Basismenge): Die Basiselemente sind 0, 1, Xi und ¬Xi für i ∈ N. 2. Induktionsschritt (Induktionsregeln): Sind ϕ, ψ ∈ NNF AL , so sind (ϕ ∨ ψ) ∈ NNF AL und (ϕ ∧ ψ) ∈ NNF AL . Folie 16 Satz 2.3 (Negationsnormalform). Jede aussagenlogische Formel ist äquivalent zu einer Formel in Negationsnormalform. Beweis. Per Induktion definieren wir zwei Funktion 0 : F AL → NNF AL und : F AL → NNF AL , so dass für alle ϕ ∈ F AL sowohl ϕ ≡ ϕ0 wie auch ¬ϕ ≡ ϕ gilt. Dabei beweisen wir gleichzeitig, dass die Definition korrekt ist (also die beiden Eigenschaften erfüllt sind). 1. Induktionsanfang (Basiszuordnung): Für ϕ = 0 setzen wir ϕ0 = 0 und ϕ = 1, was offensichtlich korrekt ist. Analog verfahren wir für 1. Für ϕ = X i setzen wir ϕ0 = X i und ϕ = ¬X i , was auch korrekt ist. Und für ¬X i setzen wir ϕ0 = ¬X i und ϕ = X i . Dass letzteres richtig ist, folgt aus der Elimination der doppelten Negation, denn diese besagt ¬¬X i ≡ X i . 2. Induktionsschritt (durch Induktionsregeln): Wir betrachten zunächst eine Formel ϕ = ¬ϕ0 und nehmen an, dass es ϕ00 und ϕ0 mit den entsprechenden Eigenschaften gibt. Dann gilt mit dem Gesetz der Elimination der doppelten Negation: ϕ0 ≡ ¬ϕ0 = ϕ und ¬ϕ = ¬¬ϕ0 ≡ ϕ0 ≡ ϕ00 . Deshalb können wir ϕ0 = ϕ0 und ϕ = ϕ00 setzen. 30 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Die anderen vier Junktoren können in ähnlicher Weise behandelt werden. Beispielhaft behandeln wir den Fall des Konditionals. Das heißt, wir nehmen an, dass ϕ = (ϕ0 → ϕ1 ) gilt und dass es ϕ00 , ϕ0 , ϕ01 und ϕ1 mit den entsprechenden Eigenschaften gibt. Für die Anwendung des Ersetzungslemmas nehmen wir an, dass i derart ist, dass X i ∉ vars(ϕ). Dann gilt: ϕ ≡ ¬ϕ0 ∨ ϕ1 (Elimination von →) ≡ ϕ0 ∨ ϕ1 ≡ ϕ0 ∨ ϕ01 (Ersetzungslemma mit X i ∨ ϕ1 , Ind.-Ann.) ∈ NNF AL (Ersetzungslemma mit ϕ0 ∨ X i , Ind.-Ann.) ¬ϕ ≡ ¬(¬ϕ0 ∨ ϕ1 ) (Elimination von →) ≡ ¬¬ϕ0 ∧ ¬ϕ1 (De Morgan) Analog erhalten wir: ≡ ϕ0 ∧ ¬ϕ1 (Doppelte Negation und Ersetzungslemma) ≡ ϕ00 ∧ ¬ϕ1 (Ersetzungslemma und Ind.-Ann.) ≡ ϕ00 ∧ ϕ1 (Ersetzungslemma und Ind.-Ann.) ∈ NNF AL Also setzen wir ϕ0 = ϕ0 ∨ ϕ01 und ϕ = ϕ00 ∧ ϕ1 . Ein Algorithmus, der eine Formel umwandelt, ist auf Folie 17 zu sehen. Er orientiert sich an dem Beweis. Wir haben nun häufig genug gesehen, wie das 2. Ersetzungslemma anzuwenden ist. Da es sehr intuitiv und leicht anwendbar ist, werden wir seine Anwendung in Zukunft nicht mehr erwähnen. Aufgabe 2.8. Zu jeder Formel ϕ ∈ NNF AL definieren wir die zu ihr duale Formel ϕ induktiv: 1. Basiszuordnung: 0 = 1, 1 = 0, X i = ¬X i , ¬X i = X i . 2. Induktionsregeln: Für alle ϕ, ψ ∈ NNF AL : ϕ ∧ ψ = ϕ ∨ ψ, ϕ ∨ ψ = ϕ ∧ ψ. (Beachten Sie, dass eindeutige Konstruktion hier gegeben ist.) Zeigen Sie per Induktion, dass für jedes ϕ ∈ NNF AL gilt: ¬ϕ ≡ ϕ. 2.6.5 Konjunktive und disjunktive Normalform Wir beginnen mit einer Vorüberlegung: Weil ∧ kommutativ, assoziativ und idempotent ist, kommt es bei ∧ weder auf die Klammerung, noch auf die Reihenfolge, noch auf die Vielfachheit der Konjunktionsglieder an. Wir wollen dies etwas formaler beschreiben. Die Menge der einfachen Konjunktionen ist induktiv wie folgt definiert. 1. Induktionsanfang (Basismenge): Jedes X i ∈ VAL ist eine einfache Konjunktion und 1 ist eine einfache Konjunktion. 2. Induktionsschritt (durch Induktionsregeln): Sind ϕ und ψ einfache Konjunktionen, so ist auch (ϕ ∧ ψ) eine einfache Konjunktion. Nun können wir formulieren: Lemma 2.6. Sind ϕ und ψ einfache Konjunktionen mit vars(ϕ) = vars(ψ), so gilt ϕ ≡ ψ. 31 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Umwandlung in NNF NNF(ϕ) Vorbedingung: ϕ ∈ FAL . if ϕ ∈ {Xi , 0, 1} then return ϕ if ϕ = ¬ψ then return NegNNF(ψ) if ϕ = ϕ0 ∨ ϕ1 then return NNF(ϕ0 ) ∨ NNF(ϕ1 ) if ϕ = ϕ0 ∧ ϕ1 then return NNF(ϕ0 ) ∧ NNF(ϕ1 ) if ϕ = ϕ0 → ϕ1 then return NNF(¬ϕ0 ∨ ϕ1 ) if ϕ = ϕ0 ↔ ϕ1 then return NNF(¬ϕ0 ∨ ϕ1 ) ∧ . . . Nachbedingung: return ∈ NNF AL und return ≡ ϕ. NegNNF(ϕ) Vorbedingung: ϕ ∈ FAL . if ϕ = Xi then return ¬Xi if ϕ = 0 then return 1 if ϕ = 1 then return 0 if ϕ = ¬ψ then return NNF(ψ) if ϕ = ϕ0 ∨ ϕ1 then return NegNNF(ϕ0 ) ∧ NegNNF(ϕ1 ) ... Nachbedingung: return ∈ NNF AL und return ≡ ¬ϕ. Folie 17 Beweis. Man beweist dies leicht per Induktion, indem man zeigt, dass für jede einfache Konjunktion ϕ und für jede Belegung β, die zu ϕ passt, gilt: JϕKβ = 1 genau dann, wenn β(X i ) = 1 für alle X i ∈ vars(ϕ). Beispiel 2.6. (((X 0 ∧ ¬X 1 ) ∧ (¬X 1 ∧ X 2 )) ∧ X 2 ) ist äquivalent zu ((X 0 ∧ ¬X 1 ) ∧ X 2 ). Aus dem ersten Ersetzungslemma folgt dann, dass unter den Voraussetzungen des Lemma auch ϕσ ≡ ψσ für alle Substitutionen σ gilt. D. h., wir können uns anstelle der X i beliebige Formeln denken. V Diese Überlegungen rechtfertigen Schreibweisen wie Φ, wobei Φ eine endliche Menge V V −1 von Formeln ist. Wir stellen uns Φ als Formel ir=0 ϕi vor, sofern Φ = {ϕ0 , . . . , ϕr −1 } gilt. Dazu vereinbaren wir, dass die leere Konjunktion (r = 0) für 1 steht. W Analoges gilt selbstverständlich für Disjunktionen; die Schreibweise ist Φ; die leere Disjunktion steht für 0. VW Ist M eine endliche Menge von endlichen Formelmengen, so schreiben wir auch M VW WV für { Φ : Φ ∈ M } und benutzen in analoger Weise. Ein Literal ist von der Form X i oder ¬X i mit X i ∈ VAL . Literale der Form X i heißen positiv, die anderen negativ. Wir schreiben 32 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik X i für ¬X i und ¬X i = X i . Eine Klausel ist eine endliche Menge von Literalen. Eine Klauselmenge ist eine endliche Menge von Klauseln. VW WV Mit und lässt sich im Zusammenhang mit Klauselmengen leicht rechnen: Lemma 2.7. Seien M und M 0 Klauselmengen und K 0 eine Klausel. Dann gilt ^_ _ ^_ M ∧ K0 ≡ (M ∪ {K 0 }) , ^_ _ ^_ M ∨ K0 ≡ {K ∪ K 0 : K ∈ M } , ^_ ^_ 0 ^_ M∧ M ≡ (M ∪ M 0 ) , ^_ ^_ 0 ^_ M∨ M ≡ {K ∪ K 0 : K ∈ M und K 0 ∈ M 0 } . (2.7) (2.8) (2.9) (2.10) Beweis. Wir beweisen nur den zweiten und vierten Teil und zwar jeweils per vollständiger Induktion. Zum Beweis von (2.8) führen wir eine Induktion über die Anzahl der Klauseln in M . VW VW Induktionsanfang, |M | = 0. Dann gilt M = ;, also M ≡ 1 und damit auch M∨ W VW K 0 ≡ 1. Andererseits gilt {K ∪ K 0 : K ∈ M } = ;, so dass auch {K ∪ K 0 : K ∈ M } = 1 gilt. Induktionsschritt mit Induktionsannahme, dass (2.8) für alle M mit |M 0 | = n gilt. Sei N eine Klauselmenge mit n + 1 Klauseln, etwa N = M ∪ {K 0 } für eine Klauselmenge M der Mächtigkeit n und eine Klausel K 0 . Es gilt dann: ^_ _ ^_ _ _ N ∨ K0 ≡ ( M ∧ K 0) ∨ K0 (nach (2.7)) ^_ _ _ 0 _ ≡( M ∨ K0) ∧ ( K ∨ K0) (Distributivität) ^_ _ 0 ≡ {K ∪ K 0 : K ∈ M } ∧ (K ∪ K 0 ) (Induktionsannahme) ^_ 0 ≡ ({K ∪ K 0 : K ∈ M } ∪ {K ∪ K 0 }) (nach (2.7)) ^_ ≡ {K ∪ K 0 : K ∈ N } . Für den Beweis von (2.10) führen wir eine vollständige Induktion über die Anzahl der Klauseln in M 0 durch. VW 0 VW Induktionsanfang, |M 0 | = 0. Dann gilt M 0 = ;, also M ≡ 1 und damit auch M∨ VW 0 VW 0 0 0 0 M ≡ 1. Andererseits gilt {{K ∪ K } : K ∈ M und K ∈ M } = ;, also {{K ∪ K } : K ∈ M und K 0 ∈ M 0 } ≡ 1. Induktionsschritt mit Induktionsannahme, dass die Äquivalenz für alle M 0 mit |M 0 | = n gilt. Sei N eine Klauselmenge mit n + 1 Klauseln, etwa N = M 0 ∪ {K 0 } für eine Klauselmenge M 0 der Mächtigkeit n und eine Klausel K 0 . Es gilt dann: ^_ ^_ ^_ ^_ 0 _ M∨ N ≡ M ∨( M ∧ K0) (nach (2.7)) ^_ ^_ 0 ^_ _ ≡( M∨ M )∧( M ∨ K0) (Distributivität) ^_ ^_ _ 0 0 0 ≡ {{K ∪ K } : K ∈ M und K ∈ M } ∧ ( M ∨ K 0 ) (Ind.-Ann.) ^_ ^_ 0 0 0 ≡ {{K ∪ K } : K ∈ M und K ∈ M } ∧ {K ∪ K 0 : K ∈ M } (nach (2.8)) ^_ 0 0 ≡ {{K ∪ K } : K ∈ M und K ∈ N } . (nach (2.9)) Die Beweise von (2.7) und (2.9) können in ähnlicher Form geführt werden, sie sind jedoch einfacher. 33 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik VW Eine Formel in konjunktiver Normalform ist von der Gestalt M für eine KlauselmenWV ge M . Und eine Formel in disjunktiver Normalform ist von der Gestalt M für eine Klauselmenge M . Die entsprechenden Formelmengen werden mit KNF AL und DNF AL bezeichnet. Beispiel 2.7. Die Formel (X 0 ↔ ¬X 1 ) ist äquvialent zu (¬X 0 ∨ ¬X 1 ) ∧ (X 0 ∨ X 1 ), was eine Formel in konjunktiver Normalform ist. In Klauselschreibweise lautet diese Formel: ^_ {{X 0 , X 1 }, {¬X 0 , ¬X 1 }} . Unser wichtigster Satz ist nun der folgende. Satz 2.4. Zu jeder Formel ϕ ∈ F AL gibt es eine äquivalente Formel knf(ϕ) ∈ KNF AL und eine äquivalente Formel dnf(ϕ) ∈ DNF AL . Beweis. Wir beweisen dies per Induktion, setzen aber voraus, dass ϕ ∈ NNF AL gilt. Das ist keine Einschränkung, da wir schon Satz 2.3 bewiesen haben. 1. Induktionsanfang: Für X i , ¬X i , 0 und 1 gilt die Behauptung trivialerweise, denn wir können in diesen Fällen einfach knf(ϕ) = ϕ setzen. 2. Induktionsschritt: Gilt ϕ = ϕ0 ∧ ϕ1 mit ϕ0 , ϕ1 ∈ NNF AL , so gibt es nach InduktionsanVW VW nahme Klauselmengen M0 , M1 mit M0 ≡ ϕ0 und M1 ≡ ϕ1 . Durch die zweifache Anwendung des Ersetzungslemmas 2.3 und des Lemmas 2.7 ergibt sich ^_ ^_ ^_ ϕ≡ M0 ∧ M1 ≡ (M0 ∪ M1 ) . Für ϕ = ϕ0 ∨ ϕ1 ist die Situation etwas anders. Wir erhalten – wiederum unter Benutzung der bereits oben benutzten Lemmas: ^_ ^_ ^_ ϕ≡ M0 ∨ M1 ≡ {K ∪ K 0 : K ∈ M0 und K 0 ∈ M1 } . Auf Folie 18 ist ein entsprechender Algorithmus zu sehen. Wir bemerken, dass die Formeln, die wir im Abschnitt 2.3 entwickelt haben, entweder schon in KNF sind oder leicht in KNF überführt werden können. Die Einschränkung auf Formeln in KNF ist deshalb in vielen Fällen keine wirkliche Einschränkung. Aufgabe 2.9. Überführen Sie die folgende aussagenlogische Formel in eine äquivalente Formel in KNF dargestellt als Klauselmenge. ^ (X i ↔ ¬X j ). 1≤i < j ≤n Zur Erinnerung: Formeln dieser Art traten bei der Frage auf, ob ein Graph bipartit ist. Aufgabe 2.10. Beweisen Sie für alle ϕ, ψ, χ, ρ ∈ F AL die folgende Äquivalenz: ((ϕ ∧ ψ) ∧ χ) → ρ ≡ ϕ → (ψ → (χ → ρ)) . Verwenden Sie dabei die in der Vorlesung vorgestellten aussagenlogischen Gesetze. Geben Sie für jeden Schritt an, welches Gesetz und welche Substitution verwendet worden ist. 34 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Umwandlung in KNF KNF(ϕ) Vorbedingung: ϕ ∈ NNF AL . if ϕ = 0 then return {∅} if ϕ = 1 then return {} if ϕ = ¬Xi then return {{¬Xi }} if ϕ = Xi then return {{Xi }} if ϕ = ϕ0 ∧ ϕ1 then return KNF(ϕ0 ) ∪ KNF(ϕ1 ) if ϕ = ϕ0 ∨ ϕ1 then return {K0 ∪ KV : K0 ∈ KNF(ϕ0 ) und K1 ∈ KNF(ϕ1 )} 1W Nachbedingung: return ≡ ϕ. Folie 18 Hinweis. Orientieren Sie sich an dem Beweis der Gültigkeit der Äquivalenz (2.6). Aufgabe 2.11. Beweisen Sie Lemma 2.6. Aufgabe 2.12. Überführen Sie die folgenden Formeln in NNF, KNF und DNF. (a) ¬((X 1 ∨ X 2 ) ∧ X 3 ) (b) (¬(X 1 → X 2 ) ↔ X 3 ) 2.7 Erfüllbarkeitstests Wir haben schon im Abschnitt 2.3 gesehen, dass es aus informatischer Sicht wichtig ist, die Erfüllbarkeit einer aussagenlogischen Formel überprüfen zu können. Prinzipiell ist dies leicht, denn man braucht nach dem Koinzidenzlemma nur alle möglichen Belegungen durchzugehen, wie dies auf Folie 19 zu sehen ist. Dieser Algorithmus hat den großen Nachteil, dass die Struktur der betrachteten Formel in keinster Weise berücksichtigt wird. Um etwas über die Laufzeit des Algorithmus sagen zu können, halten wir zunächst fest: 35 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Naiver Erfüllbarkeitstest NaiveSAT(ϕ) Vorbedingung: ϕ ∈ FAL . let V = vars(ϕ) forall β : V → {0, 1} if JϕKβ = 1 then return 1 return 0 Nachbedingung: ϕ ist erfüllbar genau dann, wenn return = 1. Folie 19 Lemma 2.8. Ist V ⊆ VAL eine Menge der Mächtigkeit n, so gibt es 2n Funktionen V → {0, 1}. Beweis. Ein Beweis erfolgt per vollständiger Induktion. Induktionsanfang, n = 0. Dann hat V genau 0 Elmente, also V = ;. Es gibt aber genau eine Funktion, die auf der leeren Menge definiert ist, nämlich die leere Menge selbst. Induktionsschritt. Wir nehmen an, dass es für jede Menge V ⊆ VAL der Mächtigkeit n genau 2n Funktionen V → {0, 1} gibt. Nun sei V 0 ⊆ VAL eine Menge mit n + 1 Elementen. Dann besitzt V 0 mindestens ein Element, d. h., es gibt ein i ∈ N, für das X i ∈ V 0 gilt, und wir setzen V = V 0 \ {X i }. Sei M 0 die Menge aller Funktionen V 0 → {0, 1}; wir setzen M 0 = {β ∈ M 0 | β(X i ) = 0} und M 1 = {β ∈ M 0 | β(X i ) = 1}. Dann gilt |M 0 | = |M 0 | + |M 1 |. Nun gilt aber offensichtlich auch |M 0 | = |M |, wobei M die Menge aller Funktionen V → {0, 1} ist. Genauso gilt |M 1 | = |M |. Nach Induktionsannahme gilt aber |M | = 2n , also |M 0 | = |M 0 | + |M 1 | = 2n + 2n = 2n+1 . Bemerkung 2.3. Wenn eine Formel ϕ genau n Variablen enthält, dann wird die forall-Schleife im schlechtesten Fall – wenn die Formel unerfüllbar ist – 2n mal durchlaufen. 36 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Wenn wir feststellen wollen, ob eine Formel unerfüllbar ist, können wir auch auf die aussagenlogischen Sätze und das zweite Ersetzungslemma zurückgreifen, genauer, wir können logische Äquivalenz nutzen: Lemma 2.9. Sei ϕ ∈ F AL . Dann ist ϕ genau dann unerfüllbar, wenn ϕ ≡ 0 gilt. Beweis. Wenn ϕ unerfüllbar ist, dann gilt JϕKβ = 0 für alle zu ϕ passenden Belegungen. Für jede Belegung gilt aber J0Kβ = 0. Gilt umgekehrt ϕ ≡ 0 und ist β eine beliebige Belegung, die zu ϕ passt, so passt β auch zu 0, und wir erhalten JϕKβ = J0Kβ = 0, also β 6|= ϕ. Also ist ϕ nicht erfüllbar. Wir können also wie in dem Beispiel in Abschnitt 2.6.3 die aussagenlogischen Gesetze und das zweite Ersetzungslemma nutzen, um ϕ ≡ 0 zu zeigen und damit auch unfb(ϕ) nachzuweisen. Aufgabe 2.13. Seien ϕ, ψ, θ ∈ F AL . Zeigen Sie mit Hilfe der aussagenlogischen Gesetze und unter Benutzung des 2. Ersetzunglemmas, dass folgende Formeln unerfüllbar sind. (a) ϕa = ¬((((θ ∧ ϕ) ∧ ¬ϕ) ∨ ψ) → ψ) (b) ϕb = ((¬(¬ψ → ¬ϕ) ∧ (ϕ → ψ)) ∧ ¬(ϕ ∧ ¬ψ)) (c) ϕc = (((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ ¬(¬ψ → θ))) 2.7.1 Der DPLL-Algorithmus Wir werden im Folgenden annehmen, dass Formeln in KNF gegeben sind. Denn dann können wir einen Algorithmus angeben, der in vielen Fällen, auch wenn die Formel unerfüllbar ist, besser als der naive Algorithmus ist. Die Vorüberlegung für den verbesserten Algorithmus ist einfach: Wenn man den Variablen nacheinander Werte zuweist, kann man hoffen, dass möglicherweise frühzeitig mit geringem Aufwand festgestellt werden kann, dass die Belegung, die gerade konstruiert wird, die Formel (nicht) erfüllt. Zum Beispiel ist für (¬X 0 ∨ X 1 ) ∧ X 0 ∧ (¬X 1 ∨ X 2 ) ∧ (¬X 2 ∨ X 3 ) ∧ ¬X 3 , (2.11) sofort ersichtlich, dass jede Belegung mit β(X 0 ) = 0 wegen des zweiten Konjunktionsglieds nicht zum Wahrheitswert 1 führt. Wir beginnen mit neuer Notation und einigen einfachen Feststellungen. Zukünftig soll β |= ϕ bedeuten, dass β eine Belegung ist, die zu ϕ passt und für die JϕKβ = 1 gilt. Wir schreiben erfb(ϕ), falls ϕ erfüllbar ist. Bemerkung 2.4. Sei M eine Klauselmenge. VW 1. Gilt M = ;, dann auch erfb( M ). VW 2. Gilt ; ∈ M , dann auch unfb( M ). VW 3. Ist M 0 eine Klauselmenge, für die M ⊆ M 0 und erfb( M 0 ) gilt, so gilt auch erfb(M ). Wie sich das Belegen von Variablen auf Formeln in KNF auswirkt, wollen wir zunächst studieren. Eine einelementige Klausel nennen wir Einheitsklausel. 37 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Ist M eine Klauselmenge und L ein Literal, so setzen wir M |L = {K \ {L} : K ∈ M und L ∉ K } . Die so definierte Operation auf Klauselmengen spielt eine zentrale Rolle in dem zu beschreibenden Algorithmus. Die wichtigste Eigenschaft dieser Operation kann dem folgenden Lemma entnommen werden. Lemma 2.10. 1. Sei M eine Klauselmenge und i ∈ N. Dann gilt ^_ ^_ ^_ erfb( M) gdw. erfb( M | X i ) oder erfb( M |¬X i ) . 2. Sei M eine Klauselmenge und E = {L} eine Einheitsklausel. Dann gilt ^_ ^_ erfb( M) gdw. erfb( M |L ) . VW W Beweis. Zu Behauptung 1. Wir nehmen zunächst β |= M an. Dann gilt β |= K für alle K ∈ M . Wir unterscheiden zwei Fälle: β(X i ) = 0 und β(X i ) = 1. Zum ersten Fall: Sei K ∈ M . Dann muss JL Kβ = 1 für ein L ∈ K gelten. Da J X i Kβ = 0, muss VW auch JL Kβ = 1 für ein L ∈ K \{X i } gelten. Also gilt auch erfb( M |¬X i ). Der zweite Fall führt VW in analoger Weise zu erfb( M | X i ). VW Gelte umgekehrt β |= M | X i . Wir setzen β0 = β[1/X i ]. Dann gilt trivialerweise β0 |= K für alle K ∈ M mit X i ∈ K . Sei nun K ∈ M mit X i ∉ K und K 0 definiert durch K 0 = K \ {¬X i }. W W Dann gilt K 0 ∈ M | X i , also β |= K 0 . Da X i ∉ vars( K 0 ), gilt nach dem Koinzidenzlemma W VW auch β0 |= K 0 , also schließlich auch β0 |= K . Insgesamt erhalten wir also β0 |= M . Der VW VW Fall erfb( M |¬X i ) führt in analoger Weise zu erfb( M ). Zu Behauptung 2. Folgt direkt aus Behauptung 1. Wir benutzen Lemma 2.10, um zu zeigen, dass ein Dreieck nicht bipartit ist, siehe Folie 20. Auf Folie 21 ist zu sehen, wie Lemma 2.10 in einen rekursiven Erfüllbarkeitstest umgewandelt werden kann. Dieser wurde im Jahr 1962 von M ARTIN D AVIS, H ILARY P UTNAM, G EORGE L OGEMANN und D ONALD W. L OVELAND vorgeschlagen. Auf Folie 22 ist eine einfache Erweiterung des DPLL-Algorithmus zu sehen, die zusätzlich eine erfüllende Belegung ausgibt, wenn die Formel erfüllbar ist. Es gibt eine Reihe sehr leistungsfähiger Erfüllbarkeitstest, die im Englischen SAT solver heißen. Will man diese benutzen, so beachte man, dass diese als Eingabe (meistens) Ausdrücke in Form von so genannten DIMACS-Daten erwarten: (1) Eine Datei besteht aus einer Präambel und den Klauseln. (2) Die Präambel besteht aus Kommentarzeilen, die mit c beginnen, gefolgt von einer Zeile, die mit p beginnt. (3) Diese Zeile hat das Format p <format> n m, wobei <format> hier den Wert cnf annimmt, n die Anzahl der Variablen und m die Anzahl der Klauseln ist. (4) Danach folgenden die Klauseln, wobei jede Klausel eine Liste von Zahlen ist, die mit 0 endet. Dabei steht die Zahl i für das Literal X i und die Zahl −i für ¬X i . Die einzelnen Listenelemente werden durch Leerzeichen oder Zeilenumbrüche getrennt. 38 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Ein Dreieck ist nicht bipartit Anwendung des DPLL-Lemmas Zu zeigen: VW unfb( {{X0 , X1 }, {¬X0 , ¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , X0 }, {¬X2 , ¬X0 }}) Beweis mit Hilfe des Lemmas: ^_ erfb( {{X0 , X1 }, {¬X0 , ¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , X0 }, {¬X2 , ¬X0 }}) gdw. (Lemma, Teil 1, i = 0) ^_ erfb( {{¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {¬X2 }}) oder ^_ erfb( {{X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 }, }) gdw. (Lemma, Teil 2, L = ¬X1 bzw. L = X1 ) ^_ ^_ erfb( {{X2 }, {¬X2 }}) oder erfb( {{¬X2 }, {X2 }, }) gdw. (Lemma, Teil 2, L = X2 bzw. L = ¬X2 ) ^_ ^_ erfb( {∅}) oder erfb( {∅}) — unmöglich! Folie 20 Beispiel 2.8. Die Formel (X 1 ∨ ¬X 2 ) ∧ (X 2 ∨ ¬X 3 ∨ ¬X 4 ) ∧ (X 1 ∨ ¬X 4 ) würde im DIMACSDatenformat folgendermaßen aussehen: c c p 1 1 Beispielformel cnf 4 2 -2 0 2 -3 -4 0 -4 0 Aufgabe 2.14. (a) Entwickeln Sie eine Prozedur, die eine Sudoku-Instanz in die zugeordnete Formel ϕS (siehe Skript Kapitel 2.3.2) in Klauseldarstellung umwandelt. (b) Entwickeln Sie eine Prozedur, die eine in Klauseldarstellung gegebene Formel in das DIMACS-Datenformat umwandelt. Stellen Sie Literale durch ganze, von 0 verschiedene Zahlen und Klauseln durch Listen von Listen von Literalen dar. Eine Sudoku-Instanz sei durch eine 9-elementige Liste von 9elementigen Listen von Zahlen aus {0, . . . , 9} dargestellt. Dabei kodieren wir ein unbelegtes Feld durch die Zahl 0. 39 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik DPLL-Algorithmus DPLL-SAT(M) Vorbedingung: M Klauselmenge — Vereinfachung (Einheitsklauseln eliminieren) while exists unit clause {L} ∈ M do let M = M|L — Abbruchbedingung if M = ∅ then return 1 if ∅ ∈ M then return 0 — rekursiver Aufruf (falls nötig) let Xi ∈ vars(M) if DPLL-SAT(M|Xi ) = 1 then return 1 return DPLL-SAT(M|V¬X Wi) Nachbedingung: erfb( M) genau dann, wenn return = 1. Folie 21 Beispiel. (list (list (list (list (list (list (list (list (list (list 0 4 0 0 0 0 3 0 0 0 0 2 0 0 0 0 5 0 0 0 0 0 8 1 0 0 0 0 0 0 0 0 0 4 1 8 0 0 0 5 0 9 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 4 3 0 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 ) ) ) ) ) ) ) ) )) Aufgabe 2.15. Entwickeln Sie eine Prozedur, die mit Hilfe des DPLL-Algorithmus eine Klauselmenge (KNF) auf Erfüllbarkeit testet und eine erfüllende Belegung ausgibt. Hinweis. Orientieren Sie sich an der zweiten Fassung des DPLL-Algorithmus. 40 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik DPLL-Algorithmus mit erfüllender Belegung DPLL-SAT(M, β) Vorbedingung: M Klauselmenge while exists unit clause {L} ∈ M do let M = M|L if L positiv then β(L) = 1 else β(L̄) = 0 if ∅ ∈ M then return unerfüllbar if M = ∅ then return β let Xi ∈ vars(M) let γ = DPLL-SAT(M|Xi , β[1/Xi ]) = 1 if γ 6= unerfüllbar then return γ return DPLL-SAT(M|¬Xi , β[0/Xi ]) Nachbedingung: VW VW Falls erfb( VWM β), dann β ⊆ return und return |= M. Falls unfb( M β), dann return = unerfüllbar. Folie 22 Zum Testen können Sie zum Beispiel eine erfüllende Belegung der Klauselmenge einer Sudoku-Instanz aus Aufgabe 2.14 suchen. 2.7.2 Der DP-Algorithmus Der Vorgänger des DPLL-Algorithmus, der unter dem Namen DP-Algorithmus bekannt ist und von Martin Davis und Hilary Putnam 1960 vorgestellt wurde, ist deutlich schlechter, er ist aber von theoretischem Interesse, wie wir in Abschnitt 2.9.1 feststellen werden. Auch hier gibt es ein Lemma, der den Algorithmus motiviert. Wir sagen, dass eine Klausel K tautologisch ist, wenn es ein i ∈ N gibt, für das X i , ¬X i ∈ K gilt. Lemma 2.11. 1. Für jede tautologische Klausel K und jede Belegung β gilt β |= W 2. Sei M eine Klauselmenge. Dann gilt: ^_ erfb( M) gdw. erfb( ^_ 41 Aussagenlogik.tex Rev 266 2009-02-10 {K ∈ M : K nicht tautologisch}) . K. 2 Aussagenlogik 3. Sei M eine Klauselmenge ohne tautologische Klauseln und X i ∈ vars(M ). Dann gilt VW VW erfb( M ) genau dann, wenn erfb( M 00 ), wobei M 0 = M ∪ {K ∪ K 0 : K ∪· {X i } ∈ M und K 0 ∪· {¬X i } ∈ M } , M 00 = {K ∈ M 0 : X i ∉ vars(K )} . Beweis. Zu Behauptung 1. Trivialerweise richtig. VW W Zu Behauptung 2. Wenn β |= M gilt, dann gilt β |= K für alle K ∈ M , also gilt VW VW auch β |= {K ∈ M : K nicht tautologisch}. Zur umgekehrten Richtung: Wenn β |= {K ∈ VW W M : K nicht tautologisch} gilt, so gilt auch β |= M , da β |= K für alle tautogischen Klauseln wegen Behauptung 1 gilt. VW VW VW Zu Behauptung 3. Wir zeigen a) erfb( M ) genau dann, wenn erfb( M 0 ) und b) erfb( M 0 ) VW VW VW genau dann, wenn erfb( M 00 ). Zu a). Da M ⊆ M 0 gilt, folgt aus erfb( M 0 ) sofort erfb( M ). VW VW Für die umgekehrte Reichtung nehmen wir erfb( M ) an, etwa β |= M , etwa mit β(X i ) = 0 – der andere Fall ist symmetrisch. Sei nun K 00 ∈ M 0 \ M . Dann gilt K 00 = K ∪ K 0 mit K ∪· {X i } ∈ M und K 0 ∪· {¬X i } ∈ M . Da β(X i ) = 0 und β |= K ∪· {X i }, gilt β |= K . Deshalb existiert ein Literal L ∈ K , für das β |= L gilt. Daraus ergibt sich aber auch β |= K 00 . Da K 00 beliebig war, erhalten wir insgesamt β |= M 0 . VW VW Zu b). Da M 00 ⊆ M 0 gilt, gilt auch, wie bei a), erfb( M 00 ), sofern erfb( M 0 ) gilt. NehVW 00 VW 00 men wir also umgekehrt an, es gelte erfb( M ), etwa β |= M . Wir betrachten die Mengen M+ = {K : K ∪· {X i } ∈ M } und M− = {K : K ∪· {¬X i } ∈ M }. Da M keine Tautologien enthält, gilt M+ ⊆ M 00 und M− ⊆ M 00 . Wir führen eine Fallunterscheidung durch: 1. Fall, β |= K für alle K ∈ M+ . Dann setzen wir β0 = β[0/X i ]. Dann gilt wegen des KoinVW W zidenzlemmas β0 |= (M+ ∪ M 00 ), und auch β0 |= (K ∪{¬X i }) für alle K ∈ M− , so dass wir V W insgesamt β0 |= M 0 erhalten. 2. Fall, β |= K für alle K ∈ M− . Dieser Fall ist symmetrisch zum 1. Fall. W W 3. Fall, der Rest. Es gibt K + ∈ M+ und K − ∈ M− mit β 6|= K + und β 6|= K − . Nach DeW finition von M 0 und M 00 gilt K + ∪ K − ∈ M 00 und damit β |= (K + ∪ K − ). Damit existiert W W ein Literal L ∈ K + ∪ K − mit β |= L. Dann gilt aber entweder β |= K + oder β |= K − . Ein Widerspruch. Der Erfüllbarkeitstest lässt sich nun leicht formulieren, siehe Folie 23. Dass der Algorithmus in jedem Fall terminiert, lässt sich leicht erkennen: Die Menge vars(M ) wird durch jeden Schleifendurchlauf um Eins verringert. Allerdings kann sich die Anzahl der Klauseln (und deren Länge) durch Ausführen eines Schleifendurchlaufs drastisch (quadratisch) erhöhen, so dass sich insgesamt eine pessimale exponentielle Laufzeit ergibt. Satz 2.5. 1. DP-SAT ist korrekt. 2. Die pessimale Laufzeit von DP-SAT ist exponentiell. Für einen Spezialfall können wir allerdings eine recht ermutigende Aussage treffen. Eine 2-Klausel ist eine Klausel, die höchstens zwei Literale enthält. Eine 2-Klauselmenge ist eine Klauselmenge, die ausschließlich aus 2-Klauseln besteht. 42 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik DP-Algorithmus DP-SAT(M) Vorbedingung: M Klauselmenge ohne tautologische Klauseln while M 6= ∅ und ∅ ∈ /M let Xi ∈ vars(M) 6= ∅ let M 0 = M ∪ {K ∪ K 0 : K ∪· {Xi } ∈ M und K 0 ∪· {¬Xi } ∈ M} let M 00 = {K ∈ M 0 : Xi ∈ / vars(K )} let M = {K ∈ M 00 : K nicht tautologisch} if ∅ ∈ M then return 0 else return 1 VW Nachbedingung: erfb( M) genau dann, wenn return = 1. Folie 23 Satz 2.6. Für 2-Klauselmengen ist die Laufzeit des DP-Algorithmus polynomiell in der Anzahl der Variablen. D. h., das Erfüllbarkeitsproblem ist für 2-Klauselmengen in Polynomzeit erfüllbar. Beweis. Sei M eine 2-Klauselmenge und m = vars(M ). Wir haben uns schon überlegt, dass die Schleife dann höchstens m-mal durchlaufen wird. Eine einmalige Ausführung des P Schleifendurchlaufs benötigt eine Laufzeit, die grob geschätzt polynomiell in K ∈M |K | ist, was wir auch mit N bezeichnen wollen. Entscheidend ist jetzt eine gute Abschätzung von N . Dafür halten wir zunächst einmal fest, dass durch die Manipulationen im Schleifenrumpf die Eigenschaft, dass M eine 2-Klauselmenge ist, nicht verändert wird. Mit anderen Worten, N ist beschränkt durch die Anzahl der 2-Klauseln, deren Variablen sich unter den Variablen in vars(M ) befinden. Es gibt • eine 0-Klausel dieser Art, • 2m 1-Klauseln dieser Art (von der Gestalt {X i } oder {¬X i }), die von ; verschieden sind, und • 2m × (2m − 1) 2-Klauseln dieser Art, die keine 1-Klauseln sind. Insgesamt gilt also N ≤ 1+2m +2m(2m −1), wobei Letzteres gleich 4m 2 +1 ist. Daraus folgt 43 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik dann die Behauptung. Folgerung 2.4. In polynomieller Zeit kann festgestellt werden, ob ein Graph bipartit ist. Aufgabe 2.16. Testen Sie die Erfüllbarkeit der folgenden Formeln mit Hilfe des DPLL- und des DP-Algorithmus. (a) ϕa = (X 1 ∨ X 2 ∨ ¬X 3 ) ∧ (X 1 ∨ ¬X 3 ) ∧ (¬X 2 ∨ ¬X 3 ) ∧ ¬X 1 (b) ϕb = X 1 ∧ (X 1 → (X 2 ∨ X 4 )) ∧ ((X 1 ∧ X 4 ) → X 2 ) ∧ (¬X 2 ∨ X 3 ) ∧ (¬X 2 ∨ ¬X 3 ) 2.7.3 Unendliche Formelmengen und der Endlichkeitssatz Im vorigen Abschnitt haben wir uns der Frage gewidmet, wie man feststellt, ob eine aussagenlogische Formel erfüllbar ist, das heißt, ob es eine Belegung gibt, die die Formel wahr macht. Mitunter kommt es vor, dass man sich dieselbe Frage, für eine (unendliche) Menge von Formeln stellt: Gegeben Φ ⊆ F AL , gibt es eine Belegung β mit der Eigenschaft, dass β |= ϕ für alle ϕ ∈ Φ gilt?– Auch dann wollen wir von Erfüllbarkeit sprechen und erfb(Φ) schreiben. Als Beispiel betrachten wir die folgende Frage: Kann man mit einem gegebenen Satz von quadratischen Dominosteinen den gesamten ersten Quadranten der Euklidschen Ebene parkettieren? Was genau damit gemeint ist, ist Folie 24 zu entnehmen. Eine mathematische Modellierung ist auf Folie 25 zu sehen. Anders als in den bisherigen Beispielen sprechen wir hier über unendliche Objekte. Eine Umsetzung der Bedingungen wie in den bisherigen Beispielen würde zu unendlichen Formeln führen, die wir aber nicht zulassen. Wir können allerdings für jeden Dominostein im ersten Quadranten eine Formel angeben und dann fordern, dass alle diese Formeln erfüllt sind. Das führt dann zur Definition einer Formelmenge Φ durch ΦS = {ϕi , j ∧ ψSi, j : i , j ∈ N} . Was wir, wie in unseren anderen Beispielen, festhalten können, ist: Bemerkung 2.5. Sei S ein Satz von Dominosteinen. Dann lässt sich der erste Quadrant genau dann mit S parkettieren, wenn ΦS erfüllbar ist. Sicherlich kann ein Algorithmus keine unendliche Formelmenge insgesamt verarbeiten, so dass die Frage nach Erfüllbarkeitstests neu diskutiert werden muss. Das wollen wir in diesem Abschnitt tun. Entscheidend ist die folgende Einsicht: Satz 2.7 (Endlichkeitssatz). Sei Φ ⊆ F AL . Dann sind äquivalent: (A) Φ ist erfüllbar. (B) Jede endliche Teilmenge von Φ ist erfüllbar. Beweis. Aus (A) folgt (B). Das ist trivialerweise richtig. Aus (B) folgt (A). Wir beweisen den Satz durch Definition per vollständiger Induktion, die auf Folie 27 zu sehen ist. 44 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Das Dominoproblem Gegeben Satz von nicht drehbaren Dominosteinen, etwa , und . Frage Kann man den ersten Quadranten vollständig parkettieren? .. . Hier ja: Folie 24 Genauer: Wir definieren β : VAL 99K {0, 1} derart, dass schließlich β |= Φ gilt. Gleichzeitig mit der Definition von ϕ zeigen wir per vollständiger Induktion, dass die folgende Behauptung für jedes n gilt: (*) Für jede endliche Teilmenge Φ0 von Φ gibt es eine Belegung β0 mit β(X i ) = β0 (X i ) für alle i ≤ n, so dass β0 |= Φ0 gilt. Induktionsanfang. Es sei β0 die Belegung, die X 0 auf 0 abbildet, und sonst undefiniert ist. Analog sei β1 die Belegung, die X 0 auf 1 abbildet, und sonst undefiniert ist. Hilfsbehauptung. Es gibt ein b, so dass es für jede endliche Menge Φ0 ⊆ Φ eine Belegung 0 β gibt, die βb fortsetzt und für die β0 |= Φ0 gilt. Beweis der Hilfsbehauptung durch Kontraposition. Wir nehmen an, die Behauptung gilt nicht. Dann gibt es eine endliche Menge Φ0 ⊆ Φ, für die β 6|= Φ0 für alle β0 mit β0 (X 0 ) = 0 gilt. Genauso gibt es eine endliche Menge Φ1 ⊆ Φ, für die β 6|= Φ1 für alle β0 mit β0 (X 0 ) = 1 gilt. Dann ist Φ0 ∪ Φ1 unerfüllbar – Widerspruch zur Annahme. Sei also b ∈ {0, 1} derart, dass die Hilsbehauptung gilt. Dann können wir β(S 0 ) = 1 setzen. Induktionsschritt. Dieser erfolgt nach demselben Prinzip wie der Induktionsanfang. Bevor wir auf Erfüllbarkeitstests zurück kommen, wollen wir die folgende interessante 45 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Mathematische Modellierung des Dominoproblems Farbmenge C = {0, . . . , c − 1}. Dominostein Funktion f : {0, 1, 2, 3} → C , wobei 0 für rechts, 1 für oben, 2 für links und 3 für unten steht. Satz von Dominosteinen Endliche Menge S von Funktionen {0, 1, 2, 3} → C . Parkettierung des Quadranten Funktion h : N × N → C und v : N × N → C . Dabei steht h(i, j) für die Farbe der Linie zwischen (i, j) und (i + 1, j), analog für v . Passende Parkettierung Für alle i, j ∈ N gilt: I Die Funktion f mit f (0) = v (i, j + 1), f (1) = h(i, j + 1), f (2) = v (i, j) und f (3) = h(i, j) gehört zu S. Folie 25 Folgerung ziehen: Satz 2.8. Sei S ein Satz Dominosteinen. Dann lässt sich der erste Quadrant mit S parkettieren genau dann, wenn sich mit S für jedes n ∈ N ein (n × n)-Quadrat parkettieren lässt. Beweis. Offensichtlich ist, dass aus der Parkettierbarkeit des gesamten Quadranten die Pakettierbarkeit der Quadrate folgt. Zur umgekehrten Richtung nehmen wir an, dass sich mit S für jedes n ∈ N ein (n ×n)-Quadrat parkettieren lässt. Wir zeigen, dass dann jede endliche Menge Φ0 ⊆ ΦS erfüllbar ist, so dass die Behauptung aus dem Endlichkeitssatz folgt. Sei Φ0 wie oben angegeben. Dann existiert m ∈ N mit Φ0 ⊆ {ϕi , j ∧ ψSi, j : i , j ≤ m}. Diese Menge ist aber genau dann erfüllbar, wenn ein (m + 1 × m + 1)-Quadrat mit S parkettierbar ist, was wir vorausgesetzt hatten. Dieser Satz führt zu einem interessanten Erfüllbarkeitstest für beliebige Formelmengen, der auf Folie 28 zu sehen ist. Hier ist die Korrektheit des Algorithmus nicht völlig offensichtlich, weshalb wir einen Beweis führen. 46 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Logische Modellierung des Dominoproblems Variablen k : Linie von (i, j) zu (i + 1, j) hat Farbe k Hi,j k : Linie von (i, j) zu (i, j + 1) hat Farbe k Vi,j Formeln für Parkettierung, i, j ∈ N ϕi,j = ( _ k Hi,j ∧ k<c _ k<c ∧ k Vi,j ) ^ 0 k<k 0 <c 0 k k k k ((¬Hi,j ∨ ¬Hi,j ) ∧ (¬Vi,j ∨ ¬Vi,j )) Formeln für passend, i, j ∈ N S ψi,j = _ f ∈S f (3) (Hi,j f (2) ∧ Vi,j f (1) f (0) ∧ Hi,j+1 ∧ Vi,j+1 ) Formelmenge für Gesamtproblem S ΦS = {ϕi,j ∧ ψi,j : i, j ∈ N} Folie 26 Satz 2.9. Der Algorithmus auf Folie 28 ist korrekt. Beweis. Wir schreiben ϕi für F [i ] und Φ für {ϕ0 , ϕ1 , . . . }. Wenn der Algorithmus terminiert, so hat i als Wert eine positive natürliche Zahl und es V gilt ϕ = j <i ϕ j so wie unfb(ϕ). Letzteres ist dann äquivalent zu unfb({ϕ0 , . . . , ϕi }), also auch unfb(Φ). Ist Φ unerfüllbar, so gibt es nach Satz 2.7 eine endliche Menge Φ0 ⊆ Φ, die unerfüllbar ist. Aus der Endlichkeit von Φ0 folgt, dass es ein n ∈ N gibt, so dass Φ0 ⊆ {ϕ0 , . . . , ϕn } gilt. Da Φ0 unerfüllbar ist, ist auch {ϕ0 , . . . , ϕn } unerfüllbar, insbesondere ist ϕ0 ∧ ϕ1 ∧ · · · ∧ ϕn unerfüllbar. Der Aufruf von SAT(ϕ), der stattfindet, wenn i = n gilt, liefert also 0 zurück, so dass der Algorithmus terminiert. Wir wollen in diesem Zusammenhang etwas allgemeinere Terminologie einführen. Ein (Entscheidungs-)Problem wird beschrieben durch eine Menge I von Instanzen und eine Menge P ⊆ I von positiven Instanzen. Die restlichen Instanzen heißen negative Instanzen. Formal schreiben wir (I , P ) für ein Entscheidungsproblem, manchmal auch (P , N ), wenn N die Menge der negativen Instanzen ist. 47 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Erinnerung: Definition durch vollständige Induktion Konstruktion einer Funktion f , die auf N definiert ist. 1. Induktionsanfang (Basiszuordnung): Man legt f (0) fest. 2. Induktionsschritt: 2.1 Induktionsannahme: Man nimmt an, dass f (n) für ein beliebiges n ∈ N definiert ist. 2.2 Neue Zuordnung: Man legt f (n + 1) in Abhängigkeit von n und f (n) fest. Variante Allgemeinere Induktionsannahme: 2.1 Man nimmt an, dass f (m) für alle natürlichen Zahl m mit m ≤ n gilt. 2.2 Man legt f (n + 1) in Abhängigkeit von n und f (0), . . . , f (n) fest. Folie 27 Zum Beispiel ist das Erfüllbarkeitsproblem für aussagenlogische Formeln ein Problem im obigen Sinne, das formal durch (F AL , {ϕ ∈ F AL : erfb(ϕ)}) gegeben ist. Auch das Dominoproblem kann entsprechend formalisiert werden: die Instanzmenge ist die Menge aller Sätze von Diminosteinen; die positiven Instanzen sind diejenigen, mit denen man den ersten Quadranten vollständig parkettieren kann. Man sagt von einem Algorithmus, dass er ein Problem E = (I , P ) entscheidet, wenn er folgenden Eigenschaften besitzt: 1. Wird der Algorithmus mit einer positiven Instanz u ∈ P aufgerufen, so terminiert er und gibt »1« aus. 2. Wird der Algorithmus mit einer negativen Instanz u ∈ I aufgerufen, so terminiert er und gibt »0« aus. Existiert eine solcher Algorithmus für ein Problem, so nennt man das Problem entscheidbar. Das Erfüllbarkeitsproblem für aussagenlogische Formeln ist also entscheidbar. Generell sagt man von einem Algorithmus, das er ein Semi-Entscheidungsverfahren für ein Entscheidungsproblem ist, wenn er folgende Eigenschaften besitzt: 48 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Semi-Unerfüllbarkeitstest für unendliche Formelmengen SAT sei ein beliebiger Erfüllbarkeitstest für aussagenlogische Formeln. NegSemiSAT(F ) Vorbedingung: F [0..] ist ein unendliches Feld von aussagenlogischen Formeln. let i = 0 let ϕ = 1 repeat let ϕ = ϕ ∧ F [i] let b = SAT(ϕ) let i = i + 1 until b = 0 Nachbedingung: Bei Termination gilt unfb({F [0], F [1], . . . }); bei Divergenz gilt erfb({F [0], F [1], . . . }). Folie 28 1. Wird der Algorithmus mit einer positiven Instanz des Problems aufgerufen, so terminiert er. 2. Wird der Algorithmus mit einer negativen Instanz des Problems aufgerufen, so terminiert er nicht, man sagt auch er divergiert. Das Problem heißt in diesem Fall semi-entscheidbar. Wir sprechen von einem negativen Semi-Entscheidungsverfahren, wenn der Algorithmus für die positiven Instanzen divergiert und für die negativen terminiert. Das Problem heißt dann negativ semi-entscheidbar. Die Begriffe werden auf Folie 29 veranschaulicht. Üblicherweise erlaubt man Algorithmen keine unendlichen Objekte als Eingaben, denn diese können bei einer terminierenden Berechnung (also in endlich vielen Schritten) nicht vollständig untersucht werden. Bei Mengen von unendlichen Mengen von aussagenlogischen Formeln mag dies aber – wie wir dies oben gesehen haben – sinnvoll sein. Folgerung 2.5. Das Unerfüllbarkeitsproblem für aussagenlogische Formelmengen ist semientscheidbar. Modifizieren wir den Algorithmus von Folie 28 in geeigneter Weise, so gelangen wir zu dem Algorithmus von Folie 30. Wir können festhalten: 49 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik (Semi-)Entscheidungsverfahren Entscheidungsverfahren ja x ∈P x ∈I x ∈ P? x∈ /P nein Negatives Semi-Entscheidungsverfahren Semi-Entscheidungsverfahren x ∈P x ∈I x ∈P x ∈ P? x ∈I x∈ /P x ∈ P? x∈ /P Folie 29 Folgerung 2.6. Das Dominoproblem ist negativ semi-entscheidbar. Aufgabe 2.17. In der Vorlesung wurde die Lösbarbeit einer Instanz des Dominoproblems auf die Erfüllbarkeit einer aussagenlogischen Formelmenge zurückgeführt. Geben Sie eine f Variante dieser Rückführung an, bei der nur Variablen der Gestalt X i j benutzt werden. Daf bei soll X i j genau dann wahr sein, wenn an der Stelle (i , j ) der Dominostein(-typ) f benutzt wird. 2.8 Die Folgerungsbeziehung Neben der Frage, die wir im Abschnitt 2.7 behandelt haben, nämlich ob eine aussagenlogische Formel erfüllbar ist, ist die Frage wichtig, ob eine Formel aus einer gegebenen Menge von Formeln folgt. In diesem Abschnitt wollen wir uns mit dieser Frage auseinandersetzen und damit beginnen, die Folgerungsbeziehung zu definieren. Sei Φ eine beliebige Formelmenge und β eine Belegung, die zu allen Formeln in Φ passt. Wir sagen dann, dass β zu Φ passt. Wir schreiben β |= Φ genau dann, wenn β |= ϕ für alle 50 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Negativer Semi-Entscheidungsalgorithmus für das Dominoproblem SAT sei ein beliebiger Erfüllbarkeitstest für aussagenlogische Formeln. Domino(S) Vorbedingung: S ist ein Satz von Dominosteinen. let n = 0 repeat ^ S let ϕ = ϕi,j ∧ ψi,j i,j≤n let b = SAT(ϕ) let n = n + 1 until b = 0 Nachbedingung: Bei Termination ist S nicht lösbar; bei Divergenz ist S lösbar. Folie 30 ϕ ∈ Φ gilt. Wir sagen, β ist ein Modell von Φ. Wir sagen, dass eine Formel ϕ aus Φ folgt, wenn für alle Belegungen, die zu Φ und ϕ passen, gilt: Wenn β |= Φ, so β |= ϕ. Wir schreiben dann Φ |= ϕ. Ist Φ einelementig, etwa Φ = {ψ}, so schreiben wir anstelle von Φ |= ϕ häufig ψ |= ϕ. Anstelle von ; |= ϕ schreiben wir |= ϕ und sagen, dass ϕ allgemeingültig ist. Beispiel 2.9. Wenn Φ = {X 0 ∨ X 1 , ¬X 0 ∨ X 2 , ¬X 0 ∨ X 2 }, so gilt zum Beispiel Φ |= X 1 ∨ X 2 , aber nicht Φ |= X 1 , was wir dann mit Φ 6|= X 1 bezeichnen. Es gilt Φ 6|= X 1 , weil die Belegung β, für die β(X 0 ) = 1, β(X 1 ) = 0 und β(X 2 ) = 1 gilt, eine Belegung ist für die offensichtlich β |= Φ und β 6|= X 1 erfüllt. Wir wollen einfache, fundamentale Eigenschaften der Folgerungsbeziehung festhalten: Bemerkung 2.6. Gilt Φ ⊆ Φ0 ⊆ F AL und ϕ ∈ F AL , so folgt aus Φ |= ϕ auch Φ0 |= ϕ. Es liegt nahe, eine Verbindung zwischen → und |= zu vermuten. Diese kommt im folgenden Lemma zum Ausdruck: Lemma 2.12. Sei Φ b F AL , Ψ b F AL und ϕ ∈ F AL . Dann sind die drei folgenden Aussagen äquivalent: 51 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik V (A) Φ |= Ψ → ϕ. (B) Φ ∪ Ψ |= ϕ. V (C) Φ ∪ { Ψ} |= ϕ. V Beweis. Zu (A) impliziert (B). Wir nehmen an, dass Φ |= Ψ → ϕ gilt. Um Φ ∪ Ψ |= ϕ zu beweisen, nehmen wir weiterhin an, dass β eine Belegung ist, die zu Φ∪Ψ und ϕ passt und V für die β |= Φ ∪ Ψ gilt. Aus Letzterem folgt β |= Φ, woraus wir β |= Ψ → ϕ aufgrund der V Annahme erhalten. Dies ist das gleiche wie J Ψ → ϕKβ = 1. Zusätzlich folgt aus β |= Φ ∪ Ψ auch β |= Ψ, woraus wir β |= ψ für alle ψ ∈ Ψ erhalten, was äquivalent zu JψKβ = 1 für alle V V ψ ∈ Ψ ist. Letzteres bedeutet J ΨKβ = 1, also JϕKβ = 1 wegen β |= Ψ → ϕ folgt. V Zu (B) impliziert (C). Wir nehmen an, dass Φ∪Ψ |= ϕ gilt. Um Φ∪{ Ψ} |= ϕ zu beweisen, V V sei β eine Belegung, die zu Φ ∪ { Ψ} und ϕ passe und für die β |= Φ ∪ { Ψ} gelte. Aus V Letzterem schließen wir β |= Ψ, woraus wir β |= Ψ schließen können. Insgesamt erhalten wir also β |= Φ ∪ Ψ, woraus dann mit der ersten Annahme β |= ϕ folgt. V V Zu (C) impliziert (A). Wir nehmen an, dass Φ∪{ Ψ} |= ϕ gilt. Um Φ |= Ψ → ϕ zu zeigen, V sei β eine Belegung, die zu Φ und Ψ → ϕ passe und für die β |= Φ gelte. Wir unterscheiden zwei Fälle. V V Erster Fall, β 6|= Ψ. Dann gilt trivialerweise β |= Ψ → ϕ. V Zweiter Fall, β |= Ψ. Dann gilt aber β |= ϕ nach der ersten Annahme. Der Begriff der Folgerungsbeziehung ermöglicht uns auch eine Charakterisierung von logischer Äquivalenz: Lemma 2.13. Sind ϕ, ψ ∈ F AL , so gilt ϕ ≡ ψ genau dann, wenn |= ϕ ↔ ψ gilt. Beweis. Man kann die beiden Implikationen separat beweisen. Wir beschränken uns auf die von links nach rechts und nehmen deshalb an, dass ϕ ≡ ψ gilt, und betrachten eine beliebige Belegung β, die zu ϕ ↔ ψ passt. Diese passt dann auch zu ϕ und ψ, so dass wir schließen können: β |= ϕ genau dann, wenn β |= ψ. Also: JϕKβ = 1 genau dann, wenn JψKβ = 1. Die Semantik von ↔ liefert dann Jϕ ↔ ψKβ = 1, woraus sich |= ϕ ≡ ψ ergibt. 2.8.1 Beispiel: Schaltnetzüberprüfung In diesem Abschnitt wollen wir den Folgerungsbegriff benutzen, um zu beschreiben, dass ein Schaltnetz korrekt ist. Dafür müssen wir zum einen Schaltnetze formal präzise beschreiben, aber auch, was es bedeutet, dass ein Schaltnetz korrekt ist. Letzteres kann man auf viele verschiedene weisen tun. Wir werden ausgehend von der Vorstellung, dass wir ein gegebenes Schaltnetz optimieren wollen, unter Korrektheit des optimierten Schaltnetzes verstehen, dass es dieselbe boolesche Funktion berechnet wie das gegebene Schaltnetz. Wir beginnen mit der formalen Beschreibung von Schaltnetzen. Üblicherweise werden Schaltnetze gezeichnet und mit azyklischen gerichteten Graphen identifiziert, deren Knoten wie folgt beschriftet sind: • die Eingangsknoten mit Argumentvariablen, • die Ausgangsknoten mit Wertevariablen und • die inneren Knoten mit booleschen Operationen. 52 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Zum Beispiel ist auf Folie ?? ein so genanntes ripple-carry-acht-Bit-Addiernetz (8RCA) zu sehen. Ein anderes Addiernetz, das so genannte carry-lookahead-acht-Bit-Addiernetz (8CLA), ist auf Folie ?? zu sehen. Eine formale Darstellung von Schaltnetzes gewinnt man, indem man ein Schaltnetz S auffasst als ein Tripel S = (E , F, A) . Dabei stehen E und A für die Mengen der Eingangs- bzw. Ausgangsvariablen und F für eine Anweisungsfolge. Unter letzterem versteht man eine Folge α0 , . . . , αr −1 von Anweisungen der Gestalt αj = Xi j ← ϕj . Für j < r muss ϕ j eine aussagenlogische Formel und es muss folgende Bedingung erfüllt sein: [ X i j ∉ {X i 0 , . . . , X i j −1 } ∪ vars(ϕ j ) . i≤j Diese Bedingung drückt aus, dass in einem Schaltnetz keine Zykel vorhanden sein dürfen. Die Menge E ist gegeben durch [ E= vars(ϕi ) \ {X i 0 , . . . , X i r −1 } , i <r während an die Menge A keine Bedingung außer [ A⊆ vars(ϕi ) ∪ {X i 0 , . . . , X i r −1 } i <r gestellt wird, die aber lediglich besagt, dass jeder Ausgangsknoten auch tatsächlich in der Beschreibung auftritt. Auf Folie 31 sind die Beschreibungen der Addierer zu sehen. Allerdings tritt dort eine neue Operation auf, die wir noch nicht kennen: ⊕, das exklusive Oder. Diese Operation kann als Abkürzung aufgefasst werden: ϕ ⊕ ψ kann einfach durch ϕ ↔ ¬ψ ersetzt werden. Unsere Definition von Schaltnetz ist allgemeiner als die üblichen, weil wir als »Bausteine« – bei uns sind das die ϕi – beliebige aussagenlogische Formeln zulassen. Das stört aber nicht weiter. Die Semantik eines solchen Schaltnetzes kann leicht induktiv definiert werden. Jedem Schaltnetz der obigen Art wird dabei eine Funktion f S : {0, 1}E → {0, 1} A zugeordnet: jeder Belegung der Eingangsvariablen wird eine Belegung der Ausgangsvariablen zugeordnet. Da wir Schaltnetze als Formeln auffassen wollen, geben wir keine konkrete Semantik für Schaltnetze an, sondern eine, die auf der Übersetzung in aussagenlogische Formeln basiert. Sei dazu S ein Schaltnetz wie oben. Wir betrachten die endliche Formelmenge ΦS = {X i j ↔ ϕ j : j < r } . Diese beschreibt die Funktionsweise des Schaltnetzes vollständig im folgenden Sinne: 53 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Ripple-Carry-Addiernetz (8 Bit) Formales Modell S0 ← A0 ⊕ B0 Exklusives Oder, ⊕ ϕ ⊕ ψ = (ϕ ↔ ¬ψ) C1 ← A0 ∧ B0 S1 ← A1 ⊕ B1 ⊕ C1 C2 ← maj(A1 , B1 , C1 ) S2 ← A2 ⊕ B2 ⊕ C2 C3 ← maj(A2 , B2 , C2 ) Mehrheitsoperation, Maj maj(ϕ0 , ϕ1 , ϕ2 ) = (ϕ0 ∧ ϕ1 ) ∨ (ϕ0 ∧ ϕ2 ) ∨ (ϕ1 ∧ ϕ2 ) Vor- und Nachteile ... + einfache Struktur S7 ← A7 ⊕ B7 ⊕ C7 + wenige Gatter S8 ← maj(A7 , B7 , C7 ) − langsame Laufzeit (linear) Folie 31 Satz 2.10. Sei S = (E , F, A) ein Schaltnetz. Dann gilt für alle Belegungen β : E ∪ A → {0, 1}, dass die beiden folgenden Aussagen äquivalent sind: (A) f S (β|E ) = β| A . (B) Es existiert eine zu ΦS passende Variablenbelegung β0 mit β0 |E ∪A = β und β0 |= ΦS . Mit anderen Worten, die boolesche Funktion, die durch das Schaltnetz S berechnet wird, ist in den erfüllenden Belegungen der Formel ΦS enthalten. Stellen wir uns nun vor, wir hätten ein Schaltnetz S und eine optimimierte Variante T und wollten überprüfen, ob S und T äquivalent sind, das heißt, ob beide dieselbe boolesche Funktion berechnen. Dazu bräuchten wir dann nur die erfüllenden Belegungen der Formelmengen ΦS und ΦT zu vergleichen. Dazu ist es sinnvoll, (a) nebeneinander zu legen und dann (b) zu überprüfen, ob bei gleicher Belegung der Eingänge die Ausgänge gleich belegt werden. Das Nebeneinanderlegen (a) erreichen wir durch Umbenennung (Substitution) der Variablen, dass Überprüfen (b) durch die Frage, ob ein entsprechendes Konditional aus den Formelmengen zu den Schaltnetzen folgt. 54 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Um (a) zu erreichen, sagen wir, dass σ : vars(T ) → VAL eine entkoppelnde Umbenennung (Substitution) für S und T ist, wenn σ injektiv ist und range(σ) ∩ vars(S ) = ; gilt. Dann sprechen ΦS und ΦT σ über »nebeneinander liegende« Schaltnetze. Der Rest ist nun dem folgenden Satz zu entnehmen: Satz 2.11. Seien S und T zwei Schaltnetze mit den denselben Ein- und Ausgangsvariablen und ist σ eine entkoppelnde Umbenennung für S und T , so sind die beiden folgenden Aussagen äquivalent: (A) S und T sind äquivalent, d. h., f S = f T . (B) ΦS ∪ ΦT σ |= ϕeqv mit ϕeqv = ^ (X i ↔ σ(X i )) → X i ∈E ^ (X i ↔ σ(X i )) . X i ∈A Die Formel, die wir zu (b) konstruieren wollten, ist also ϕeqv . Und der Folgerungsbegriff wird hier an zentraler Stelle genutzt. Wir wollen diesen Satz nicht beweisen, sondern ihn einfach nur anwenden. Ein Beispiel ist auf Folie ?? zu sehen. Der Vollständigkeit halber ist im Folgenden eine Hälfte des Beweises skizziert. Beweis. Vorüberlegungen. (a) Es gilt ΦT σ = ΦT σ , wobei T σ aus T durch Ersetzen jedes Vorkommens von X i durch X i σ entstehe. (b) Für jede Belegung, die zu E passt, gilt f T (β)σ = f T σ (βσ). Wir schreiben ϕa und ϕs für ϕa = ^ (X i ↔ σ(X i )) , ϕs = X i ∈E ^ (X i ↔ σ(X i )) . X i ∈A (A) impliziert (B). Wir nehmen an, dass f S = f T gilt. Nach Lemma 2.12 brauchen wir lediglich ΦS ∪ ΦT σ ∪ {ϕa } |= ϕs zu zeigen. Gelte deshalb β |= ΦS ∪ ΦT σ ∪ {ϕa } für eine passende Belegung. Aus Lemma 2.10 und der Vorüberlegung folgt dann: 1. f S (β|E ) = β| A , 2. f T σ (β|E σ ) = β| Aσ , 3. β |= ϕa . Aus 3. erhalten wir, dass β(X i ) = β(X i σ) für alle X i ∈ E gilt. Das heißt, β|E σ = βσ|E σ . Wir können also 2. in der Form f T σ (βσ|E σ ) = β| Aσ schreiben. Daraus und aus Vorüberlegung (b) ergibt sich dann f T (β)σ = β| Aσ . Aus der Annahme f S = f T folgt dann f S (β)σ = β| Aσ , woraus wir für jedes X i ∈ A schließen können: β(σ(X i )) = β(x i ). Letzteres bedeutet: β |= ϕs . (B) impliziert (A). Dies kann in ähnlicher Weise gezeigt werden. Wenn wir also Verfahren entwickeln, mit denen eine gültige Folgerungsbeziehung nachgewiesen werden kann, können wir auch Schaltkreise auf ihr Äquivalenz überprüfen. Aufgabe 2.18. Betrachten Sie das folgende Schaltnetz. 55 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik X0 X2 =1 =1 X1 X3 ≥1 ≥1 X 10 ≥1 (a) Geben Sie eine formale Darstellung des obigen Schaltnetzes an. (b) Geben Sie die Funktion an, die von dem Schaltnetz berechnet wird. (c) Seien β0 , β1 Variablenbelegungen mit β0 (X 0 ) = 1, β0 (X 2 ) = 1, β0 (X 3 ) = 0 und β1 (X 1 ) = 0, β1 (X 10 ) = 1. Zeigen Sie mit Hilfe von Satz 2.10 aus der Vorlesung, dass f S (β0 ) = β1 gilt. Hinweis. Finden Sie eine Belegung β mit β |= ΦS , β|E = β0 und β| A = β1 . Aufgabe 2.19. Betrachten Sie die beiden folgenden Schaltnetze. ≥1 X1 X2 X3 (a) (b) (c) (d) ≥1 X1 X5 ≥1 X2 X3 X5 ≥1 Geben Sie eine formale Darstellung der beiden Schaltnetze an. Geben Sie die Funktionen f S1 , f S2 an, die von den Schaltnetzen berechnet werden. Geben Sie eine entkoppelnde Umbenennung σ an. Zeigen Sie, dass die beiden Schaltnetze nicht Äquivalent sind, indem Sie zeigen, dass ΦS1 ∪ ΦS2 σ 6|= ϕeqv , wobei ϕeqv wie in der Vorlesung definiert ist. 2.8.2 Folgerungsbeziehung, Erfüllbarkeit und Endlichkeitssatz Offensichtlich ist die Folgerungsbeziehung eng mit der Erfüllbarkeitsbeziehtung verwandt: Lemma 2.14. Sei Φ ⊆ F AL und ϕ ∈ F AL . Dann sind äquivalent: (A) Φ |= ϕ. (B) unfb(Φ ∪ {¬ϕ}). Beweis. Aus (A) folgt (B). Wir nehmen an, es gilt Φ |= ϕ und betrachten eine beliebige Belegung β, die zu Φ ∪ {¬ϕ} passt. Dann passt diese auch zu Φ und ϕ. Wir unterscheiden zwei Fälle: β 6|= Φ. Dann gilt trivialerweise β 6|= Φ, also auch β 6|= Φ ∪ {¬ϕ}. β |= Φ. Dann gilt β |= ϕ, da wir Φ |= ϕ voraussetzen. Aus β |= ϕ können wir β 6|= ¬ϕ folgern, also β 6|= Φ ∪ {¬ϕ}. 56 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Insgesamt können wir unfb(Φ ∪ {¬ϕ}) feststellen. Aus (B) folgt (A). Wir nehmen an, es gilt unfb(Φ ∪ {¬ϕ}) und betrachten eine Belegung β, die zu Φ und ϕ passt und für die β |= Φ gilt. Aus unfb(Φ∪{¬ϕ}) und β |= Φ erhalten wir dann β |= ϕ, was zu zeigen war. Diese Lemma besagt zum einen, dass (Un-)Erfüllbarkeitstests benutzen werden können, um festzustellen, ob eine Folgerungsbeziehung vorliegt. Wir erhalten also Folgerung: Folgerung 2.7. Die Folgerungsbeziehung ist semi-entscheidbar. Ein entsprechender Algorithmus ist auf Folie 32 zu sehen. Man vergleiche diesen mit dem Algorithmus auf Folie 28. Die Korrektheit des ersten Algorithmus folgt aus der Korrektheit des zweiten. Semi-Entscheidungsverfahren für die Folgerungsbeziehung SAT sei ein beliebiger Erfüllbarkeitstest für aussagenlogische Formeln. SemiImpl(F , ϕ) Vorbedingung: F [0..] ist ein unendliches Feld von aussagenlogischen Formeln; ϕ eine einzelne. let i = 0 let ψ = ¬ϕ repeat let ψ = ψ ∧ F [i] let b = SAT(ψ) let i = i + 1 until b = 0 Nachbedingung: Bei Termination gilt {F [0], F [1], . . . } |= ϕ; bei Divergenz gilt {F [0], F [1], . . . } 6|= ϕ. Folie 32 Zum anderen können wir das Lemma benutzen, um einen Endlichkeitssatz für die Folgerungsbeziehung zu beweisen: Folgerung 2.8. Sei Φ ⊆ F AL und ϕ ∈ F AL . Dann sind äquivalent: (A) Φ |= ψ. 57 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik (B) Φ0 |= ψ für ein Φ0 b Φ. Hierbei steht b für »endliche Teilmenge von«. Beweis der Folgerung. Die Implikation von (B) nach (A) ist trivialerweise korrekt. Für die umgekehrte Richtung nehmen wir an, dass Φ |= ψ gilt. Nach Lemma 2.14 bedeutet dies: unfb(Φ ∪ {¬ψ}), also, gemäß Endlichkeitssatz 2.7, unfb(Φ0 ) für eine Menge Φ0 b Φ ∪ {¬ψ}. Ist ¬ψ ∈ Φ0 , so erhalten wir, wieder unter Benutzung von Lemma 2.14, Φ0 |= ψ. Ist ψ ∉ Φ0 , so gilt sogar Φ0 |= ϕ für alle ϕ ∈ F AL , also auch für ϕ = ψ, da es keine erfüllende Belegung für Φ0 . Obwohl dieser Satz von zentraler Bedeutung ist, werden wir ihn zunächst nicht anwenden. Eine für uns wichige Anwendung ist der Beweis von Satz ?? in Abschnitt ??. Abschließend wollen wir eine dritte Folgerung aus Lemma 2.14 ziehen: Folgerung 2.9. Sei Φ ⊆ F AL . Dann sind äquivalent: (A) unfb(Φ). (B) Φ |= ϕ für alle ϕ ∈ F AL . (C) Φ |= 0. Beweis. Wir benutzen einen Ringschluss. Zu (B) folgt aus (A). Aus unfb(Φ) folgt auch unfb(Φ∪ {¬ϕ}) für jedes ϕ ∈ F AL , also Φ |= ϕ nach Lemma 2.14. Dass (C) aus (B) folgt, ist trivial. Zu (A) folgt aus (C). Nehmen wir Φ |= 0 an, so können wir aus Lemma 2.14 schließen: unfb(Φ ∪ {¬0}), also unfb(Φ ∪ {1}) und mithin unfb(Φ). 2.9 Beweissysteme Wie eingangs erwähnt, ist es ein zentrales Anliegen der mathematischen Logik, den Begriff des Beweises zu formalisieren und ihn eingehend zu studieren – ihn also zu einem Objekt mathematischer Analyse zu machen. Bei der Formalisierung des Beweisbegriffs lässt man sich von der Vorstellung leiten, dass ein Beweis einer Behauptung eine Zeichenreihe ist, die Schritt für Schritt durch Anwendung von Regeln aus gewissen Annahmen entsteht. Das führt in natürlicher Weise zum Begriff Beweissystem, den wir in diesem Abschnitt gemeinsam mit einigen konkreten Beweissystemen kennen lernen. 2.9.1 Unerfüllbarkeit und Resolution Wir beginnen mit einem sehr einfachen und sehr handlichen Beweissystem. Dieses erlaubt es, eine gegebene Menge von aussagenlogischen Formeln in konjunktiver Normalform auf ihre Unerfüllbarkeit zu untersuchen. Das Beweissystem ist einfach, denn es kommt mit einer einzigen Regel aus, die wir durch ein Lemma motivieren wollen. Lemma 2.15 (Resolutionslemma). Seien K und K 0 Klauseln und sei i ∈ N derart, dass X i ∈ K und ¬X i ∈ K 0 gelten. W W W Für die Klausel R definiert durch R = (K \ {X i }) ∪ (K 0 \ {¬X i }) gilt: K ∧ K 0 |= R. 58 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Man nennt R die Resolvente aus K und K 0 bezüglich X i ; sie wird mit res X i (K , K 0 ) bezeichnet. W W Beweis. Sei β eine Belegung, die zu K , K 0 und R passt und für die β |= K und β |= K 0 gilt. Wir nehmen zunächst an, β(X i ) = 0 gilt. Da β |= K gilt, muss es also ein Literal L ∈ K geben, für das β |= L und L 6= X i gilt. Daraus folgt, dass L zu R gehört, also folgt auch β |= R. Der andere Fall, in dem β(X i ) = 1 gilt, kann in gleicher Weise bearbeitet werden. VW Natürlich gilt M |= resX i (K , K 0 ) für eine Formelmenge, wenn K , K 0 ∈ M gilt und K und K 0 bezüglich X i resolviert werden können. Das folgt, streng genommen, aus Bemerkung 2.6. W Wir erinnern uns kurz, dass ; unerfüllbar ist. Um zu zeigen, dass eine Klauselmenge M unerfüllbar ist, könnte man also versuchen, Lemma 2.15 wiederholt anzuwenden, bis VW W man auf die leere Klausel stößt. Dann hat man M |= ; gezeigt, woraus die UnerfüllVW barkeit von M folgt. Die einzelnen Anwendungen des Resolutionslemmas würde man als die Beweisschritte ansehen. Diese Überlegungen führen zu der folgenden Definition. Sei M eine Klauselmenge. Ein Resolutionsbeweis von K n−1 aus M ist ein Folge K 0 , . . . , K n−1 , die für jedes i < n eine der beiden folgenden Bedingungen erfüllt: (V) Voraussetzungsregel: K i ∈ M . (R) Resolutionsregel: Es gibt j , k < i und l derart, dass K i = res X l (K j , K k ) gilt. Der erste Punkt bringt zum Ausdruck, dass wir Voraussetzung, von denen wir ausgehen, ohne Weiteres in einem Beweis benutzen wollen. Der zweite Punkt erlaubt als Beweisschritt die Anwendung des obigen Lemmas. Dabei ist wichtig, dass das Lemma auf schon »bewiesene« Klauseln zurückgreift. Falls n > 0 ist, wird ein Beweis wie der obige auch als Beweis von K n−1 bezeichnet. Die Länge des Beweises ist die Anzahl der Folgenglieder. Eine Resolutionswiderlegung für eine Klauselmenge ist ein Beweis der leeren Klausel aus der Klauselmenge. Gibt es einen Resolutionsbeweis für eine Klausel K aus einer Klauselmenge M , so schreiben wir M `R K . Die Relation `R wird als die Ableitungsrelation zum Resolutionssystem genannt. Ein Beispiel für einen kommentierten Resolutionsbeweis (genauer: eine Resolutionswiderlegung) ist auf Folie 33 zu finden. Wir wollen zunächst festhalten, dass Resolutionsbeweise korrekt sind: Satz 2.12. Ist M eine Klauselmenge und K eine Klausel, für die M `R K gilt, so gilt auch VW W M |= K . Beweis. Wir zeigen per vollständiger Induktion, beginnend mit n = 1, die folgende Behauptung: Ist K 0 , . . . , K n−1 eine Resolutionsbeweis aus einer Klauselmenge M und gilt n > 0, so VW W gilt M |= K i für alle i < n. Induktionsanfang, n = 0. Es ist nichts zu zeigen. Induktionsschritt. Wir nehmen an, dass jeder Beweis der Länge n die Eigenschaft besitzt, dass jede Klausel im Beweis aus der gegebenen Klauselmenge M folgt. Nun betrachten wir VW einen Beweis K 0 , . . . , K n der Länge n + 1. Falls K n ∈ M gilt, so gilt trivialerweise M |= 59 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Ein Dreieck ist nicht bipartit Ein Resolutionsbeweis Klauselmenge {{X0 , X1 }, {¬X0 , ¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , X0 }, {¬X2 , ¬X0 }} Beweis 1. {X0 , X1 } 2. {¬X1 , ¬X2 } 3. {X0 , ¬X2 } 4. {X2 , X0 } 5. {X0 } 6. {¬X0 , ¬X1 } 7. {X1 , X2 } 8. {¬X0 , X2 } 9. {¬X2 , ¬X0 } 10. {¬X0 } 11. ∅ (V) (V) (R) (V) (R) (V) (V) (R) (V) (R) (R) mit X1 aus 1. und 2. mit X2 aus 4. und 3. mit X1 aus 7. und 6. mit X2 aus 8. und 9. mit X0 aus 5. und 10. Folie 33 W K . Andernfalls gibt es i , j < n und k, so dass K n = res X k (K i , K j ) gilt. Lemma 2.15 impliW VW W W ziert K i ∧ K j |= K n . Nach Induktionsannahme gilt aber außerdem M |= K i und VW VW W W VW M |= K j , also auch M |= K i ∧ K j . Daraus können wir dann aber auch M |= K n schließen. Nun können wir zum Beispiel auf Folie 33 zurückkommen. Der dort geführte Resolutionsbeweis endet mit der leeren Klausel. Aufgrund von Lemma 2.15 können wir nun schließen, dass es keine Zweifärbung eines Dreiecks gibt (was wir schon vorher wussten). Wir wollen Terminologie und Notation im Zusammenhang mit Resolutionsbeweisen nachtragen. Also wissen wir, dass eine Klauselmenge unerfüllbar ist, wenn M `R ; gilt. Das obige Korrektheitslemma für Resolutionsbeweise ist wichitg. Spannender ist aber die Frage, ob Resolution vollständig ist in dem Sinne, dass es jede unerfüllbare Klauselmenge eine Resolutionswiderlegung gibt. VW Satz 2.13. Ist M eine Klauselmenge, für die M unerfüllbar ist, so gilt M `R ;. Beweis. Wir benutzen den Satz über die Korrektheit des DP-Algorithmus. Zur Erinnerung: Der DP-Algorithmus verändert in jedem Schleifendurchlauf eine Klauselmenge, die mit M 60 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik bezeichnet wird. Da auch die Eingabe des Algorithmus die Bezeichnung M trägt, wollen wir – um Verwechslungen zu vermeiden – diese Menge im folgenden mit M¯ bezeichnen. Satz 2.5 besagt, dass der DP-Algorithmus M genau dann irgendwann die leere Klausel enthält, wenn M unerfüllbar ist. Wir zeigen nun, dass für jede Menge M , die irgendwann bei der Berechnung des DP-Algorithmus auftritt, gilt: Es gibt einen Resolutionsbeweis aus M¯, in dem alle Elemente von M auftreten. Der Beweis der Behauptung erfolgt per vollständiger Induktion über die Anzahl n der ausgeführten Schleifendurchläufe. Induktionsanfang, n = 0. Dann ist M = M¯. Wenn wir also alle Elemente von M aufzählen, dann erhalten wir einen Resolutionsbeweis aus M , in dem alle Elemente von M auftreten. Dieser Beweis kommt ausschließlich unter Verwendung der Voraussetzungsregel zu Stande. Induktionsschritt. Wir nehmen an, dass es einen Resolutionsbeweis B = K 0 , . . . , K m−1 aus ¯ M gibt, in dem alle Elemente aus der Menge M enthalten sind, die nach n Schleifendurchläufen erreicht werden. Wir betrachten einen weiteren Schleifendurchlauf. Es seien + M+ und M− definiert wie im Beweis zu Satz 2.11, etwa M+ = {K 0+ , . . . , K p−1 } und M− = − − {K 0 , . . . , K q−1 }. Dann kommt durch pq Anwendungen der Resolutionsregel der Beweis B 0 + − K q−1 zu Stande. Dieser hat die definiert durch B 0 = K 0 , . . . , K m−1 , K 0+ ∪ K 0− , K 0+ ∪ K 1− , . . . , K p−1 0 Eigenschaft, dass alle Elemente aus M in ihm vorkommen. Da nach dem Schleifendurchlauf für die neue Menge M die Beziehung M ⊆ M 0 gilt, ist damit auch die Induktionsbehauptung bewiesen. Der Sachverhalt, der in Satz 2.12 ausgedrückt wird, wird im Allgemeinen als Korrektheit der Resolution bezeichnet. Komplementär dazu ist Satz 2.13. Dieser wird im Allgemeinen als die Vollständigkeit der Resolution bezeichnet. Informell gefasst: Korrektheit bedeutet, dass das Beweisbare richtig ist; Vollständigkeit bedeutet, dass das Richtige beweisbar ist. Wir erinnern uns kurz an das Dominoproblem. Dort hatten wir eine unendliche Formelmenge studiert. Es stellt sich hier die Frage, wie man mit unendlichen Mengen von Klauseln umgehen kann. Auf diese lassen sich alle Begriffe, die wir weiter oben eingeführt haben erweitern, was wir im Folgenden auch annehmen wollen. Dass wir dann immer noch von Korrektheit sprechen können, ist offensichtlich. Dass Vollständigkeit gegeben ist, beweist man mit Hilfe des Vollständigkeitssatzes. Satz 2.14. Sei M eine beliebige Menge von Klauseln. Dann sind äquivalent: W (A) unfb({ K : K ∈ M }). (B) M `R ;. W Beweis. Zu (A) impliziert (B). Wir nehmen unfb({ K : K ∈ M }) an. Aus dem EndlichkeitsW satz folgt, dass es M 0 b M gibt, so dass unfb({ K : K ∈ M 0 }) gilt. Aus Satz 2.13 erhalten wir dann: M 0 `R ;, d. h., es gibt eine Resolutionswiderlegung aus M 0 . Diese ist natürlich auch eine Resolutionswiderlegung aus M , so dass wir M `R ; schließen können. Zu (B) impliziert (A). Wir nehmen M `R ; an. Sei K 0 , . . . , K n−1 eine entsprechende Resolutionswiderlegung. Dann ist dies auch eine Resolutionswiderlegung für die Klauselmenge M 0 , die durch M 0 = M ∩ {K 0 , . . . , K n−1 } definiert ist, so dass wir M 0 |= ; aus Satz 2.12 erW halten. Daraus ergibt sich M |= ;, also unfb({ K : K ∈ M }). 61 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Aufgabe 2.20. Beweisen Sie mit Hilfe der Resolution, dass die folgende Formel unerfüllbar ist: ^_ ϕ= {{X 1 , X 2 , ¬X 3 }, {X 3 , ¬X 4 , X 5 }, {¬X 1 , X 2 , ¬X 4 }, {¬X 2 }, {¬X 5 }, {X 2 , X 4 }} . 2.9.2 Ein Hilbert-System Das Beweissystem, das wir im letzten Abschnitt kennen gelernt haben, ist sehr einfach, denn es kommt mit einer einzigen Regel aus (wenn man von der selbstverständlichen Voraussetzungsregel absieht). Das liegt unter anderem daran, dass dieses System nur mit Formeln in konjunktiver Normalform umgehen kann. In diesem Abschnitt wollen wir ein anderes Beweissystem betrachten, das in dieser Hinsicht sehr viel flexibler ist. Allerdings werden wir auch hier nicht alle aussagenlogischen Formeln zulassen, sondern nur diejenigen, in denen ¬ und → die einzigen Junktoren sind. Das ist keine wesentliche Einschränkung: Lemma 2.16. 1. Es gilt 0 ≡ ¬(X 0 → X 0 ) , 1 ≡ (X 0 → X 0 ) . 2. Für alle ϕ, ψ ∈ F AL gilt: ϕ ∨ ψ ≡ ¬ϕ → ψ , ϕ ∧ ψ ≡ ¬(ϕ → ¬ψ) , sowie ϕ ↔ ψ ≡ ¬((ϕ → ψ) → ¬(ψ → ϕ)) . Beweis durch einfaches Nachrechnen. Mit anderen Worten: Jede aussagenlogische Formel ist äquivalent zu einer Formel, in der nur die Junktoren ¬ und → vorkommen. Die Menge dieser Formeln wollen wir mit F [¬, →]AL bezeichnen und die Menge der Formeln in Negation-Konditional-Normalform nennen. Das Beweissystem, was wir betrachten wollen, besteht zwar auch nur aus einer Regel, es braucht aber desweiteren so genannte Axiome. Diese wollen wir vorab durch ein Lemma motivieren: Lemma 2.17. Für alle ϕ, ψ, χ ∈ F AL gilt: |=ϕ → (ψ → ϕ) , (Ax1) |=(ϕ → (ψ → χ)) → ((ϕ → ψ) → (ϕ → χ)) , (Ax2) |=(¬ϕ → ¬ψ) → (ψ → ϕ) . (Ax3) Beweis durch einfaches Nachrechnen. Die Schlussregel, die in dem Beweissystem genutzt werden soll, wollen wir auch in einem Lemma zum Ausdruck bringen: 62 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Lemma 2.18 (Modus Ponens). Für alle Formeln ϕ, ψ ∈ F AL gilt: {ϕ, ϕ → ψ} |= ψ . Ein Beweis kann leicht geführt werden. Wir nehmen nun Lemma 2.17 und Lemma 2.18 als Ausgangspunkt für unser Beweissystem. Ein Hilbert-Beweis aus einer Formelmenge Φ ⊆ F [¬, →]AL ist eine Folge ϕ0 , . . . , ϕn−1 von Formeln aus F [¬, →]AL , so dass für jedes i < n eine der drei folgenden Bedingungen erfüllt ist: (V) Voraussetzungsregel: ϕi ∈ Φ. (MP) Modus Ponens: Es gibt j , k < i derart, dass ϕk = ϕ j → ϕi gilt. (Ax) Axiom: ϕi ist von der Gestalt (Ax1), (Ax2) oder (Ax3), allerdings mit ϕ, ψ, χ ∈ F [¬, →]AL . Ist n > 0, so sagt man auch hier, dass der Beweis ein Beweis von ϕn−1 aus Φ ist. Dafür schreiben wir Φ `H ϕn−1 . Folie 34 zeigt, wie man einen Beweis von X 0 → X 2 aus {X 0 → X 1 , X 1 → X 2 } gewinnt. Ein Beweis im Hilbert-System Aus Martin Grohes Vorlesung Behauptung {X0 → X1 , X1 → X2 } `H X0 → X2 . Kommentierter Beweis 1. (V) X1 → X2 2. (Ax1) mit ϕ = X1 → X2 und ψ = X0 (X1 → X2 ) → (X0 → (X1 → X2 )) 3. (MP) auf 1. und 2. X0 → (X1 → X2 ) 4. (Ax2) mit ϕ = X0 , ψ = X1 und χ = X2 (X0 → (X1 → X2 )) → ((X0 → X1 ) → (X0 → X2 )) 5. (MP) auf 3. und 4. (X0 → X1 ) → (X0 → X2 ) 6. (V) X0 → X1 7. (MP) auf 6. und 5. X0 → X2 Folie 34 Man kann nun auch hier zeigen, dass das System H korrekt und vollständig ist: 63 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Satz 2.15. Sei Φ ⊆ F [¬, →]AL und ϕ ∈ F [¬, →]AL . Es gilt Φ |= ϕ genau dann, wenn Φ `H ϕ gilt. Wir verzichten auf einen Beweis. Aufgabe 2.21. Zeigen Sie durch Angabe eines kommentierten Beweises, dass gilt: {X 0 , X 0 → X 1 , X 1 → X 2 } `H ¬X 3 → X 2 Aufgabe 2.22. Seien Φ ⊆ F [¬, →]AL und ϕ ∈ F [¬, →]AL . Zeigen Sie: Wenn Φ `H ϕ gilt, dann gilt Φ |= ϕ. Hinweis. Sie dürfen annehmen, dass die Lemmas 2.17 und 2.18 gelten. 2.9.3 Ein natürliches Beweissystem Das Hilbert-System aus dem letzten Abschnitt würde man dem Resolutionskalkül des vorletzten Abschnitts sicherlich vorziehen, wenn man nicht automatisiert vorgehen könnte, denn es ist sehr schwierig »in Klauseln« zu denken. Aber auch das Hilbert-System bildet sicherlich nicht die Argumentation eines Mathematikers nach. Das tut aber das System, was wir in diesem Abschnitt kennen lernen. Deshalb wird es auch natürliches Beweissystem genannt. Mit dem zu beschreibenden System kann man beliebige aussagenlogische Formeln behandeln, sofern sie nicht das Bikonditional enthalten, was natürlich keine Einschränkung darstellt. Die Menge aller dieser Formeln bezeichnen wir mit F 〈↔〉AL . Eine wesentliche Besonderheit der Beweisführung eines Mathematikers ist Modularisierung: Der Beweis einer schwierigen Behauptung wird in viele kleine, überschaubare Beweise zerlegt. Mitunter werden diese dann auch weiter zerlegt. Wollen wir also ein natürliches Beweissystem beschreiben, dann wird der Begriff des Beweises notwendigerweise komplizierter sein als bisher. Außerdem werden natürlich die (Schluss-)Regeln viel umfangreicher sein, denn es gibt viele kleine Regeln, nach denen eine Mathematikerin Beweise führt. Die weiter unten folgende Definition trifft genau das Gewünschte, ist aber etwas komplizierter. Um sie besser zu motivieren, stellen wir exemplarisch die folgende Überlegung an. Wir wollen zeigen, dass X 0 → (X 1 → X 2 ) aus (X 0 ∧ X 1 ) → X 2 folgt, d. h., wir wollen einen entsprechenden Beweis finden. Ein solcher könnte wie folgt aussehen: 1. Wir nehmen (X 0 ∧ X 1 ) → X 2 an. 2. Um (X 0 ∧ X 1 ) → X 2 folgern zu können, nehmen wir zusätzlich X 0 an. 3. Um X 1 → X 2 zu beweisen, nehmen wir weiterhin X 1 an. 4. Wenn aber X 1 zusätzlich zu X 0 gilt, gilt auch X 0 ∧ X 1 . 5. Da wir aber auch die Gültigkeit von X 0 ∧ X 1 → X 2 annehmen, können wir auf X 2 schließen. 6. Also haben wir unter den gemachten Annahmen X 1 → X 2 gezeigt. 7. Schließlich erhalten wir daraus auch X 0 → (X 1 → X 2 ). 64 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Was man allein an den Einrückungen erkennt, ist, dass die Beweise, die wir führen, geschachtelt sind. Dabei ist eine Einrückung als ein Beweis einer Behauptung unter einer zusätzlichen Annahme zu verstehen. Nach Abschluss dieses Beweises wird der ursprüngliche Beweis wieder aufgegriffen, zwischendurch kann ein weiterer Beweis eingeschoben werden, und so weiter. Wir wollen uns zwei Regeln, die wir benutzt haben, genauer ansehen. In Schritt 4 haben wir zum Beispiel benutzt, dass aus der Gültigkeit von ϕ und ψ immer auch die Gültigkeit von ϕ ∧ ψ folgt. Man spricht von der Einführung der Konjunktion (in-∧). Schritt 6 ist von einer anderen Art: Wir hatten vorher, in den Zeilen 3 bis 5, gezeigt, dass unter der zusätzlichen Annahme X 1 auf X 2 geschlossen werden kann. In Zeile 6 haben wir dann auf die Gültigkeit von X 1 → X 2 (unter denselben Annahmen) geschlossen. Allgemein kann man auf die Gültigkeit von ϕ → ψ schließen, wenn man unter der Annahme ϕ auf ψ schließen kann. Man spricht von der Einführung des Konditionals (in-→). Wichtig ist, zu erkennen, dass diese Einführung auf einem weiteren Beweis basiert. Um nun alle Formeln aus F 〈↔〉AL abdecken zu können, braucht man relativ viele Regeln. Man gelangt in natürlicher Weise zu der folgenden Definition. Ein natürlicher Beweis aus einer Menge Φ ⊆ F 〈↔〉AL und Beweisen ist ein Tupel (B 0 , . . . , B n−1 ), so dass für jedes i < n eine der folgenden Bedingungen erfüllt ist, wobei Ψ j die Menge aller der B k sei, für die k < j und B k ∈ F 〈↔〉AL gilt: (V) B i ∈ Φ. (in-∧) Es gibt j , k < i , so dass B i = B j ∧ B k und B j , B k ∈ F 〈↔〉AL gelten. (el-∧-l) Es gibt j < i und ϕ, so dass B j = ϕ ∧ B i gilt. (el-∧-r) Es gibt j < i und ϕ, so dass B j = B i ∧ ϕ gilt. (in-∨-r) Es gibt j < i und ϕ, so dass B i = B j ∨ ϕ gilt. (in-∨-l) Es gibt j < i und ϕ, so dass B i = ϕ ∨ B j gilt. (el-∨) Es gibt j < i − 2 und ϕ und ψ, so dass Folgendes gilt: a) B j = ϕ ∨ ψ. b) B i −2 ist ein Beweis der Gestalt (ϕ, . . . , B i ) aus Ψi −2 ∪ {ϕ}. c) B i −1 ist ein Beweis der Gestalt (ψ, . . . , B i ) aus Ψi −2 ∪ {ψ}. (in-→) B i −1 ist ein Beweis der Gestalt (ϕ, . . . , ψ) aus Ψi −1 ∪ {ψ} und B i = ϕ → ψ. (el-→) Es gibt j , k < i und ϕ mit B j = ϕ und B k = ϕ → B i . (in-¬) B i −1 ist ein Beweis der Gestalt (ϕ, . . . , 0) aus Ψi −1 ∪ {ϕ} und B i = ¬ϕ. (el-¬) Es gibt j , k < i und ϕ mit B j = ϕ und B k = ¬ϕ und B i = 0. (el-0) Es gibt j < i mit B j = 0. (el-¬¬) Es gibt j < i mit B j = ¬¬B i . (in-pf) B i ist ein Beweis der Gestalt (ϕ, . . . ) aus Ψi ∪ {ϕ}. Wir schreiben, wie üblich, Φ `N ϕ, falls es einen Beweis aus Φ gibt, der auf ϕ endet. Nun können wir versuchen, den oben geführten Beweis zu formalisieren. Diese ist auf Folie 35 zu finden. Besser lesbar und gut kommentiert ist der Beweis allerdings auf Folie 36 dargestellt. Dass die oben angegebenen Regeln in der Tat dem entsprechen, wie man Beweise in der Mathematik führt, wird vielen einleuchten. Viel spannender ist allerdings die Frage, ob diese Art, Beweise zu führen, zu einem vollständigen System führt. Beides wird in folgendem Satz festgehalten. 65 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Ein natürlicher Beweis Aus [RH] Behauptung (X0 ∧ X1 ) → X2 `N X0 → (X1 → X2 ) Beweis ((X0 ∧ X1 ) → X2 , (X0 , (X1 , X0 ∧ X1 , X2 ), X1 → X2 ), X0 → (X1 → X2 )) Folie 35 Satz 2.16. Sei Φ ⊆ F 〈↔〉AL und ϕ ∈ F 〈↔〉AL . Es gilt Φ |= ϕ genau dann, wenn Φ `N ϕ gilt. Wir verzichten auf einen Beweis. Aufgabe 2.23. Zeigen Sie durch Angabe eines kommentierten Beweises, dass gilt: {X 0 → X 1 , X 1 → X 2 } `N X 0 → X 2 2.9.4 Ableitungssysteme Wir wollen noch einmal auf die allgemeine Struktur der beiden Beweissysteme, die wir in den vorhergehenden Abschnitten kennen gelernt haben, zurückkommen und Gemeinsamkeiten herausarbeiten. Das führt uns zu dem Begriff Ableitungssystem. Im weitesten Sinne kann man ein Beweissystem auffassen als ein Regelsystem, das beschreibt, wie endliche Folgen von Zeichenreihen – Beweise – aus einer vorgegebenen Menge von Zeichenreihen – den Voraussetzungen – zu Stande kommen unter Benutzung von Axiomen und Regeln. Regeln erklären, wie man aus schon erzielten Teilen neue zusammensetzt; Axiome sind solche Zeichenreihen, die man ohne Weiteres in einem Beweis nutzen kann. Das »Zu-Stande-Kommen« wir als ableiten bezeichnet. 66 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Ein natürlicher Beweis in natürlicher Form Behauptung (X0 ∧ X1 ) → X2 `N X0 → (X1 → X2 ) Beweis 1. (V) (X0 ∧ X1 ) → X2 . 2. (A) X0 . 3. (A) X1 . 4. (in-∧) auf 2. und 3.: X0 ∧ X1 . 5. (el-→) auf 4. und 1.: X2 . 6. (in-→) auf 2. und 3.–5.: X1 → X2 . 7. (in-→) auf 1. und 2.–6.: X0 → (X1 → X2 ). Folie 36 Charakterisiert wird ein solches Regelsystem dann durch die Axiome und Regeln, weshalb man für diese besondere Schreibweisen benutzt. Regeln schreibt man in der einfachen Form als u0 u1 ... v u m−1 , was wie folgt zu verstehen ist: Sind u 0 , u 1 , . . . , u m−1 ableitbar, dann auch v. Der obere Teil der Regeln heißt Prämisse, der untere Konklusion. Wenn m = 0 ist, ist die Regel an keine Prämisse gebunden und wird Axiom genannt. Das Resolutionssystem wie auch das Hilbert-System, die wir kennengelernt haben, lassen sich leicht in dieser Weise schreiben, wie man auf Folie 37 und Folie 38 sieht. Zu beachten ist dabei, dass die angegebenen Regeln und Axiome jeweils für unendliche viele Regeln und Axiome stehen: K , K 0 , X i , ϕ, ψ und χ rangieren über die jeweils sinnvollen Bereiche. Sind Axiome und Regeln und die Menge, auf die sie sich beziehen, gegeben, so erhält man automatisch eine Ableitungsrelation `, die zwischen einer Menge und einer Zeichenreihe genau dann besteht, wenn die Zeichenreihe aus der Menge in endlich vielen Schritten 67 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Das Resolutionssystem in Kurzform Axiome Keine! Regeln K ∪· {Xi } K 0 ∪· {¬Xi } K ∪ K0 Folie 37 durch Anwenden der Regeln (und Axiome) entsteht. Eine Ableitung (Beweis) ist dann eine Folge, die dies belegt. Schwieriger ist es, das natürliche Beweissystem in das gerade beschriebene Rahmenwerk zu passen. Dazu muss man nämlich die jeweils nutzbaren Annahmen mit in den Ableitungsbegriff aufnehmen, was das Ableitungssystem schwerfällig macht. Deshalb ist auf Folie 39 eine etwas vereinfachende Darstellung des Ableitungssystems zu finden. Genauer wäre es, wenn wir die Annahmen, die jeweils gemacht werden dürfen, in die Formalisierung einschlössen. Zum Beispiel könnte man (el-∨) in folgender Form schreiben: (el-∨) Φ ` ϕ ∨ ψ Φ ∪ {ϕ} ` χ Φ ∪ {ψ} ` χ Φ`χ Die Bruchschreibweise, die es erlaubt, Regeln übersichtlich zu schreiben, wird auch häufig auf Beweise übertragen. Als Beispiel betrachten wir den Beweis von Folie 34. Dessen Notation in Bruchschreibweise ist auf Folie 40 zu finden. Aufgabe 2.24. Zeigen Sie durch Angabe eines kommentierten Beweises, dass gilt: 68 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Das Hilbert-System in Kurzform Axiome (Ax1) (Ax2) (Ax3) ϕ → (ψ → ϕ) (ϕ → (ψ → χ)) → ((ϕ → ψ) → (ϕ → χ)) (¬ϕ → ¬ψ) → (ψ → ϕ) Regeln (MP) ϕ ϕ→ψ ψ Folie 38 (a) {X 1 → (X 2 → X 3 ), X 1 → X 2 , ¬¬X 1 } `H X 3 (b) {¬X 1 → ¬X 2 , X 3 → X 4 } `N (X 2 ∧ X 3 ) → (X 1 ∧ X 4 ) Wichtige Begriffe • • • • Beweissystem Resolution Korrektheit Vollständigkeit 2.10 Horn-Formeln Wir haben im Abschnitt 2.7 zwei Erfüllbarkeitstests kennen gelernt. Beide haben exponentielle Laufzeit. Dafür, dass alle Algorithmen, die das Erfüllbarkeitsproblem für aussagenlogische Formeln (in konjunktiver Normalform) lösen, ineffizient sind, spricht vieles. Deshalb wollen wir uns zum Abschluss des ersten Kapitels der Vorlesung mit einer Teilmenge 69 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Das natürliche Beweissystem in Kurzform (in-∧) ϕ ψ ϕ∧ψ (el-∧-l) ϕ∧ψ ψ (in-∨-l) ψ ϕ∨ψ (in-∨-r) ϕ ϕ∨ψ (el-∨) (el-→) (el-0) ϕ∨ψ ϕ .. . χ χ ϕ ϕ→ψ ψ ψ .. . χ (in-→) (el-¬) ϕ .. . ψ ϕ→ψ ϕ ¬ϕ 0 (el-∧-r) (in-¬) (el-¬¬) ϕ∧ψ ϕ ϕ .. . 0 ¬ϕ ¬¬ϕ ϕ 0 ϕ Folie 39 der aussagenlogischen Formeln befassen, deren Elemente algorithmisch effizient bearbeitet werden können. Eine Klausel ist eine Horn-Klausel, wenn sie höchsten ein positives Literal enthält. D. h., eine Horn-Klausel ist von der Gestalt {¬X i 0 , . . . , ¬X i r −1 } oder {¬X i 0 , . . . , ¬X i r −1 , X j } . Eine Horn-Klauselmenge ist eine Klauselmenge, die allein Horn-Klauseln enthält. Eine HornVW Formel ist von der Gestalt M für eine Horn-Klauselmenge M . Jede Horn-Formel ist demnach äquvialent zu einer Konjunktion von Formeln der Gestalt X i 0 ∧ · · · ∧ X i r −1 → 0 oder X i 0 ∧ · · · ∧ X i r −1 → X j . Falls r = 0, so schreibt man einfach 1 auf die linke Seite. Die übliche Terminologie im Zusammenhang mit Horn-Klauseln ist: Eine Einheitsklausel mit positivem Literal heißt Tatsachenklausel, eine nicht leere Klausel ohne positives Literal heißt Zielklausel, die restlichen nicht-leeren Klauseln heißen Programmklauseln. Eine Übersicht ist auf Folie 41 zu finden. Wir wollen uns ein paar Beispiele ansehen, in denen Horn-Formeln auftreten. 70 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Ein Beweis im Hilbert-System Alternative Darstellung: Bruchschreibweise (V) (MP) (Ax1) X1 → X2 (X1 → X2 ) → (X0 → (X1 → X2 )) (MP) X0 → (X1 → X2 ) (Ax2) (X0 → (X1 → X2 )) → ((X0 → X1 ) → (X0 → X2 )) (MP) (V) X0 → X 1 (X0 → X1 ) → (X0 → X2 ) X0 → X2 Folie 40 2.10.1 Beispiel: Erreichbarkeit in gerichteten Graphen Zunächst sei G = (V, E ) ein endlicher gerichteter Graph. Ohne Einschränkung wollen wir annehmen, dass die Knotenmenge V von der Gestalt {0, . . . , n − 1} ist. Solche Graphen wollen wir Graphen in Normalform nennen. Wir betrachten zu einem Graphen G in Normalform die Formel ϕG definiert durch ϕG = ^ Xi → X j . (i , j )∈E Wir können ϕG benutzen, um das Erreichbarkeitsproblem in G zu beschreiben und lösen: Lemma 2.19. Sei G ein endlicher gerichteter Graph in Normalform und seien s und t Knoten von G. Dann sind äquivalent: (A) Der Knoten t ist von s aus in G erreichbar. (B) ϕG,s |= X t mit ϕG,s = (1 → X s ) ∧ ϕG . 71 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Horn-Klauseln Tatsachenklausel 1 → Xi Programmklausel Xi0 ∧ · · · ∧ Xir → Xj Zielklausel Xi0 ∧ · · · ∧ Xir → 0 Leere Klausel 1→0 Folie 41 Man beachte, dass ϕG,s eine Horn-Formel ohne Ziel- und ohne die leere Klausel ist. Illustriert wird das Lemma auf Folie ??. Dass dies gilt, sollte nicht verwunderlich sein, denn hier wird die Transitivität der Folgerungsbeziehung augenutzt. Der Vollständigkeit halber geben wir aber einen Beweis an. Beweis des Lemmas. Zu (B) folgt aus (A). Sei t von s aus in G erreichbar. Dann gibt es einen einfachen Pfad v 0 , . . . , v r von s zu t . Insbesondere sind 1 → X v 0 sowie X v i → X v i +1 für i < r Konjunktionsglieder von ϕG,s . Damit muss also für jede erfüllende Belegung β zunächst β |= X v 0 gelten. Daraus ergibt sich dann nacheinander: β |= X v 1 , β |= X v 1 , . . . , β |= X v r , also β |= X t . Das zeigt: ϕG,s |= X t . Zu (A) folgt aus (B). Sei nun t nicht von s erreichbar und V 0 die Menge der von s aus erreichbaren Knoten. Dann gehört t nicht zu V 0 . Wir betrachten die Belegung β mit β(X i ) = 1 für alle i ∈ V 0 und β(X j ) = 0 für alle j ∈ V \ V 0 . Wir behaupten, dass β |= ϕG,s und β 6|= X t gilt. Letzteres ist offensichtlich. Ersteres gilt aber auch: Wegen s ∈ V 0 gilt β(X s ) = 1, also β |= 1 → X s . Ist nun X i → X j ein beliebiges Konjunktionsglied von ϕG , dann gibt es nur zwei Fälle: (a) i ∈ V 0 oder (b) i ∉ V 0 . Im ersten Fall ist i von s aus erreichbar und da (i , j ) ∈ E 72 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik ist damit auch j von s aus erreichbar ( j ∈ V 0 ). Also gilt β(X i ) = β(X j ) = 1 und damit auch β |= X i → X j . Im zweiten Fall gilt β(X i ) = 0, also auch β |= X i → X j . 2.10.2 Beispiel: Schaltnetz-Auswertung In Abschnitt 2.8.1 haben wir uns mit der Äquivalenz von Schaltkreisen auseinandergesetzt. Das ist insofern eine schwierige Frage, als über alle möglichen Belegungen der Eingabeleitungen gesprochen wird. Jetzt wollen wir uns einer einfacheren Frage widmen: Wir stellen uns die Frage, wie die Ausgabe eines Schaltnetzes für eine konkrete Eingabe aussieht. Eine Instanz des Auswertungsproblems für Schaltnetze ist gegeben durch ein Schaltnetz S = (E , F, A) wie in Abschnitt 2.8.1 und eine Belegung β : E → {0, 1}. Gesucht ist f S (β). Wir wollen zunächst annehmen, dass das Schaltnetz nur aus Und- und Oder-Gattern besteht. Solche Schaltnetze heißen auch monoton. In einem monotonen Schaltnetz ist also jede Anweisung von der Gestalt Xi ← X j ∧ Xk oder Xi ← X j ∨ Xk . Zu einem solchen Schaltnetz betrachten wir die Formel ϕS definiert durch ^ ^ ϕS = ((X j ∧ X k ) → X i ) ∧ ((X j → X i ) ∧ (X k → X i ) . X i ←X j ∧X k ∈F X i ←X j ∨X k ∈F Man kann nun beweisen: Lemma 2.20. Sei S ein monotones Schaltnetz, β : E → {0, 1} eine Belegung der Eingangsvariablen und X j ∈ A. Dann sind die beiden folgenden Aussagen äquivalent: (A) f S (β)(X j ) = 1. (B) ϕS ,β |= X i mit à ! ^ ϕS ,β = (1 → X i ) ∧ ϕS . X i ∈E : β(X i )=1 Man beachte, dass ϕS ,β eine Horn-Formel ohne Ziel- und ohne die leere Klausel ist. Verdeutlicht wird dieses Lemma auf Folie ??. Beweis. Der Beweis ist hier leichter als im letzten Abschnitt, denn man zeigt lediglich, dass für jede Belegung β der Variablen in S gilt: β |= ΦS genau dann, wenn β |= ϕS . Etwas schwieriger ist die Situation, wenn beliebige Schaltkreise betrachtet werden, denn in diesen sind beliebige Formeln auf der rechten Seite von Anweisungen erlaubt, zum Beispiel auch Gatter für das exklusive Oder. Dieses lässt sich (beweisbar) nicht direkt durch Horn-Formeln beschreiben. Man kann aber leicht so vorgehen, dass man zu jeder Variablen X i ∈ vars(S ) eine weitere Variable, etwa X̄ i , nutzt, die genau dann mit 1 belegt werden soll, wenn X i im Schaltnetz mit 0 belegt wird. Dann lässt sich zum Beispiel die Anweisung Xi ← X j ⊕ Xk beschreiben durch (X j ∧ X̄ k → X i ) ∧ ( X̄ j ∧ X k → X i ) ∧ (X j ∧ X k → X̄ i ) ∧ ( X̄ j ∧ X̄ k → X̄ i ) . Also lassen sich Horn-Formeln auch hier nutzen. 73 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik 2.10.3 Beispiel: Erreichbarkeitsspiele auf endlichen Graphen Das letzte Beispiel ist etwas komplizierter. Wir stellen uns wieder vor, ein endlicher gerichteter Graph G in Normalform sei gegeben. Außerdem sei ein Knoten t gegeben und eine ausgezeichnete Menge V0 ⊆ V . Wir betrachten das folgende Spiel, das so genannte Erreichbarkeitsspiel zu G, V0 und t . Das Spiel wird zwischen zwei Spielern ausgetragen, genannt Null und Eins. Es läuft in Runden ab. Zu Beginn liegt ein Spielstein – der einzige, den es gibt – auf einem Knoten des Graphen. In jeder Runde wird wie folgt verfahren: 1. Liegt der Stein auf t , so hat Null gewonnen. 2. Liegt der Stein auf einem Knoten v ∈ V0 , so ist Null an der Reihe. Gibt es keine Kante, die von v ausgeht, kann Null nicht ziehen und verliert. Ansonsten wählt er eine der ausgehenden Kanten und zieht den Stein zu deren Ziel. 3. Liegt der Stein auf einen Knoten v ∈ V1 , ist Eins am Zug. Die Regeln sind analog. Wir möchten die folgende Frage beantworten: Von welchen Anfangsknoten besitzt Null eine Strategie, um zu t zu gelangen? Ein Beispiel ist auf Folie ?? zu sehen. Die graphische Darstellung folgt den folgenden Konventionen: 1. Der Zielknoten t hat eine ausgehende Kante ohne Ziel. 2. Die Knoten der Menge V0 , also Nulls Knoten, sind diejenigen, die rund gezeichnet sind. Wir wollen keine mathematische Präzisierung der obigen Frage vornehmen, denn in deren Rahmen müssten wir auch sagen, was genau wir unter einer Gewinnstrategie verstehen. Das würde zu weit führen. Es ist aber auch leicht möglich, im Folgenden mit der Anschauung zu arbeiten. Wir können zunächst einfache Regeln aufstellen, die uns sagen, welche Knoten zu der Menge der Gewinnknoten für Null gehören: 1. t ist ein Gewinnknoten für Null. 2. Ist v ∈ V0 und ist ein Nachfolger von v ein Gewinnknoten für Null, dann ist auch v ein Gewinnknoten für Null. 3. Ist v ∈ V \ V0 und sind alle Nachfolger von v Gewinnknoten für Null, dann ist auch v ein Gewinnknoten für Null. Diese Regeln sind ausreichend, wie man nachweisen kann. Ausgehend von diesen Regeln lässt sich eine Horn-Formel konstruieren, die unsere Frage beantwortet. Zunächst definieren wir ϕG,V0 durch ´ ^ ^ ^ ³¡ ^ ¢ ψG,V0 = X t ∧ (X j → X i ) ∧ X j → Xi . i ∈V0 (i , j )∈E i ∈V \V0 j : (i , j )∈E Man beachte die Klammerung! Auch diese ist eine Horn-Formel ohne Zielklausel und ohne die leere Klausel. Auch hierzu betrachten wir ein Beispiel, auf Folie ??. Es lässt sich nun zeigen: Lemma 2.21. Sei G ein endlicher gerichteter Graph in Normalform, V0 ⊆ V und t ein Knoten von G. Dann sind für jeden Knoten s äquivalent: 74 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik (A) Null gewinnt das Erreichbarkeitsspiel zu G, V0 und t ausgehend von s. (Genauer: . . . hat eine Gewinnstrategie in . . . ) (B) ψG,V0 |= X s . 2.10.4 Der Markierungsalgorithmus für Horn-Formeln Abschließend fragen wir uns, wie man feststellen kann, ob eine gegebene Horn-Formel erfüllbar ist und wie gegebenenfalls die Folgerungen aus dieser Formel aussehen. Denn an den Folgerungen sind wir ja gerade interessiert, wie die Lemmas 2.19 bis 2.21 zeigen. Nehmen wir zunächst einmal an, eine gegebene Horn-Formel ϕ wäre eine Konjunktion von Tatsachen- und Programmklauseln, also von Klauseln der Form X i 0 ∧ · · · ∧ X i r −1 → X j und 1 → X j . Dann ist ϕ offensichtlich erfüllbar, denn β mit β(X i ) = 1 für alle X i ∈ vars(ϕ) ist eine erfüllende Belegung. Interessanter ist die Frage nach der Menge folg(ϕ) definiert durch folg(ϕ) = {X i ∈ VAL : ϕ |= X i } . Offensichtlich gilt X j ∈ folg(ϕ), sofern 1 → X j eine Tatsachenklausel in ϕ ist. Andererseits gilt sicherlich zum Beispiel auch X 5 ∈ folg(ϕ), sofern X 2 ∧ X 4 → X 5 , 1 → X 2 und 1 → X 4 Konjunktionsglieder von ϕ sind. Das führt zu dem einfachen Algorithmus, der auf Folie 42 zu finden ist. Ein Beispiel für seine Durchführung ist auf Folie 43 zu sehen. Der Algorithmus ist in der Tat korrekt: Satz 2.17. 1. HornSAT ist korrekt. 2. HornSAT führt den Rumpf der while-Schleife höchstens vars(M ) Mal aus und jede Ausführung hat lineare Laufzeit. V Beweis. Wir bezeichnen die anfängliche Klauselmenge mit M̄ und setzen ϕ = M̄ . Zu 1. Wir behaupten, dass ^ ϕ ≡ M und {1 → X i : X i ∈ I } ⊆ M vor jeder Ausführung der while-Bedingung gelten. Dies ist vor der ersten Ausführung trivialerweise richtig. Der erste Schritt im Rumpf der while-Schleife ändert an der Gültigkeit der Bedingung offensichtlich nichts. Bezeichne nun M 0 die Belegung der Variablen M nach der Ausführung der Zuweisung in der for-Schleife. Wir nehmen 1 → X i ∈ M und ψ = X i 0 ∧ · · · ∧ X i r −1 → X j ∈ V V V V M mit X i k = X i an und zeigen M ≡ M 0 . Da offensichtlich M 0 |= M gilt, brauchen wir V V 0 uns nur mit M |= M zu beschäftigen. V V Sei also β eine beliebige Belegung, die zu M und damit auch zu M 0 passt, und für V die β |= M gilt. Wir müssen lediglich zeigen, dass β |= ψ0 mit ψ0 = X i 0 ∧ · · · ∧ X i k−1 ∧ X i k+1 ∧ · · · ∧ X i r −1 → X j gilt. Sofern β(X j ) = 1 gilt, gilt β |= ψ0 trivialerweise. Falls β(X j ) = 0 gilt, muss auch β 6|= X i 0 ∧ · · · ∧ X i r −1 gelten. Da β(X i ) = 1 wegen 1 → X i ∈ M gilt, existiert l 6= k mit β(X i l ) = 0. Dann gilt aber auch β |= ψ0 und mithin β |= M 0 . 75 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Der Markierungsalgorithmus für Horn-Formeln HornSAT(M) Vorbedingung: M Horn-Klauselmenge mit ausschließlich Tatsachen- und Programmklauseln. let I = ∅ while exists 1 → Xi ∈ M where Xi ∈ / I do let I = I ∪ {Xi } for each ψ = Xi0 ∧ · · · ∧ Xir −1 → Xj ∈ M where r > 0 do if exists k < r such that Xik = Xi then let M = M \ {ψ} ∪ {Xi0 ∧ · · · ∧ Xik−1 ∧ Xik+1 ∧ · · · ∧ Xir −1 → Xj } Insbesondere: Falls r = 1 und k = 0, so M = M \ {ψ} ∪ {1 → Xj }. Nachbedingung: I = folg( V M). Folie 42 Eine offensichtliche Eigenschaft des Algorithmus ist, dass für M weiterhin vor der Ausführung der while-Bedingung immer gilt: Jedes X i ∈ I tritt auf keiner linken Seite einer Klausel aus M auf. Nach Termination des Algorithmus gilt dann also: V V 1. M ≡ M̄ . 2. I = {X i : 1 → X i ∈ M }. 3. Kein X i ∈ I kommt auf der linken Seite einer Klausel aus M vor. V Aus der ersten und der zweiten Bedingung folgt: Für jede erfüllende Belegung β von M V (und damit von M̄ ) und jedes X i ∈ I gilt β(X i ) = 1. Außerdem ist β definiert durch β(X i ) = V 1 für X i ∈ I und β(X i ) = 0 in den anderen Fällen eine erfüllende Belegung von M (und V damit auch von M̄ ), denn jede Tatsachenklausel in M wird durch β trivialerweise erfüllt und jede Programmklausel wird erfüllt, weil es auf der linken Seite eine Variable gibt, die nicht zu I gehört. Zu Teil 2. Da im Schleifenrumpf keine neuen Variablen eingeführt werden, wird der Schleifenrumpf für jede Variable X i ∈ vars(M ) höchstens einmal ausgeführt. Die for-Schleife hat lineare Laufzeit. 76 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Ein Beispiel für den Markierungsalgorithmus Gegeben M = {1 → X0 , 1 → X2 , (X0 ∧X2 ) → X4 , (X0 ∧X4 ) → X6 , X1 → X0 } Ausführung 0 I M 1 ∅ 1 → X0 , 1 → X2 , (X0 ∧ X2 ) → X4 , (X0 ∧ X4 ) → X6 , X1 → X0 2 X0 1 → X0 , 1 → X2 , X2 → X4 , X4 → X6 , X1 → X0 3 X0 , X2 1 → X0 , 1 → X2 , 1 → X4 , X4 → X6 , X1 → X0 4 X0 , X2 , X4 1 → X0 , 1 → X2 , 1 → X4 , 1 → X6 , X1 → X0 5 X0 , X2 , X4 , X6 1 → X0 , 1 → X2 , 1 → X4 , 1 → X6 , X1 → X0 Ergebnis Es gilt V M |= X0 , V M |= X2 , V M |= X4 , aber V M 6|= X1 . Folie 43 Der Beweis liefert: Folgerung 2.10. Sei ϕ eine Horn-Formel, deren Konjunktionsglieder aus Tatsachen- und Programmklauseln bestehen. Dann sind für jede zu ϕ passende Belegung äquivalent: (A) β |= ϕ. (B) folg(ϕ) ⊆ β−1 (1). Daraus wiederum ergibt sich: Folgerung 2.11. Sei M eine Horn-Klauselmenge bestehend aus Tatsachen- und Programmklauseln und M 0 eine Horn-Klauselmenge bestehend aus Zielklauseln. Dann sind äquivalent: VW (A) unfb( (M ∪ M 0 )). VW (B) Es gibt K ∈ M 0 , so dass vars(K ) ⊆ folg( M ) gilt. Diese Erkenntnis lässt sich nun in von der Resolution gewohnter Weise in einen Algorithmus umsetzen. Dieser ist auf Folie 44 zu finden. 77 Aussagenlogik.tex Rev 266 2009-02-10 2 Aussagenlogik Der Markierungsalgorithmus für Horn-Formeln HornSAT∗ (M) Vorbedingung: M Horn-Klauselmenge. let I = ∅ while exists unit clause {Xi } ∈ M where Xi ∈ / I do let I = I ∪ {Xi } for each K ∈ M do let K = K \ {¬Xi } if ∅ ∈ M then return unerfüllbar else return I VW , so unfb( Nachbedingung: Falls return = unerfüllbar M). VW Falls return VW6= unerfüllbar , so erfb( M) und I = {Xi : M |= Xi }. Folie 44 Aufgabe 2.25. Betrachten Sie folgenden Graphen, wobei V0 die Menge der kreisförmigen Knoten und V1 die Menge der rechteckigen Knoten sein soll. 1 3 5 7 9 2 4 6 8 10 Überprüfen Sie mit Hilfe des Markierungsalgorithmus für Horn-Formeln, ob für Spieler Null eine Gewinnstrategie mit s = 1 und t = 10 besteht. Aufgabe 2.26. Implementieren Sie den Markierungsalgorithmus für HornFormeln. Die Eingabe soll dabei eine Hornformel dargestellt als Klauselmenge M sein. Ausgegeben werden soll die Menge folg(M ) oder »unerfüllbar«, falls die Hornformel nicht erfüllbar ist. 78 Aussagenlogik.tex Rev 266 2009-02-10 3 Prädikatenlogik 3.1 Einleitung In der Aussagenlogik haben wir uns mit dem Zusammenspiel von Aussagen beschäftigt. Dabei haben wir komplexe Aussagen aus Variablen (also einfachen Aussagen) durch Junktoren zusammengesetzt. Häufig ist es jedoch wünschenswert, Aussagen über Strukturen, wie zum Beispiel eine Datenbank, einen Graphen oder die natürlichen Zahlen, zu treffen, in dem man auf die Bestandteile dieser Strukturen (in den drei genannten Fällen sind damit Datenbankeinträge, Knoten und Kanten bzw. Zahlen gemeint) direkt zugreift, ihre Eigenschaften und ihr Zusammenspiel in einer formalen (logischen) Sprache beschreibt, die ausdrucksstark ist. 3.2 Syntax und Semantik 3.2.1 Signaturen und Strukturen Wenn man über konkrete Strukturen, wie zum Beispiel über Graphen oder die natürlichen Zahlen, sprechen möchte, braucht man ein geeignetes Vokabular. Dieses richtet sich nach den Elementen, Relationen und Funktionen, die zu dieser Struktur in sinnvoller Weise definiert werden können. Wie diese aussehen, muss im Einzelfall festgelegt werden. Eine Signatur Σ besteht aus: • einer Menge C Σ von so genannten Konstantensymbolen, • einer Menge R Σ von so genannten Relationssymbolen, • einer Menge F Σ von so genannten Funktionssymbolen, • einer Funktion / : R Σ → N, die jedem Relationssymbol seine Stelligkeit zuweist, und • einer Funktion // : F Σ → N, die jedem Funktionssymbol seine Stelligkeit zuweist. Die drei Symbolmengen müssen paarweise disjunkt sein. Außerdem dürfen die folgenden Symbole nicht in den Symbolmengen einer Signatur vorkommen: (, ), ,, =, 0, 1, ¬, ∨, ∧, →, ↔, ∀, ∃ und x i für i ∈ N. Denn würden wir auch diese Symbole zulassen, könnten wir später nicht von eindeutiger Konstruktion sprechen. Wir schreiben anstelle von //( f ) = 2 einfach f //2 sowie anstelle von /(<) = 2 einfach < /2. Außerdem notieren wir Signaturen häufig als Mengen, zum Beispiel {</2} für eine Signatur mit einem zweistelligen Relationssymbol <. Wenn wir also </2 ∈ Σ schreiben, dann meinen wir damit, dass < ∈ R Σ und /(<) = 2 gelten. Beispiele für Signaturen sind auf Folie 45 zu finden. Diese sind so gewählt, dass die jeweils betrachteten Strukturen durch eine geeignete Interpretation der ausgewählten Symbole charakterisiert sind. Zum Beispiel wird eine Ordnungsstruktur durch eine zweistel- 79 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik lige Relation charakterisiert und eine boolesche Algebra durch kleinstes und größtes Element (Symbole ⊥ und >) so wie durch Komplementbildung, Vereinigung und Durchschnitt (Symbole ∼, t und u). Dabei ist zu beachten, dass 0 und 1 in Σ Ar mit˜versehen sind, damit wir sie später von den Symbolen unterscheiden können, die für die logischen Werte falsch und wahr stehen. Bei den booleschen Algebren liegt eine ähnliche Situation vor: Um dort nicht der späteren Terminologie in die Quere zu kommen, werden für das größte und das kleinste Element die Symbole > und ⊥ genutzt. Formal haben wir eine entsprechende Forderung schon weiter oben angebracht. Beispiele für Signaturen Graphen ΣGraph = {E /2} Arithmetik ΣAr = {0̃, 1̃, +//2, ×//2} Ordnungsstrukturen ΣOrd = {</2} Äquivalenzstrukturen ΣÄq = {≡/2} boolesche Algebren ΣBA = {⊥, >, ∼/1, t//2, u//2} Bibliotheksdatenbanken ΣBib = {Buch/3, Nutzer/3, Entliehen/2} Folie 45 Eine Signatur heißt relational, falls es keine Funktionssymbole in ihr gibt. Sie heißt algebraisch, wenn es keine Relationssymbole in ihr gibt. Eine Signatur stellt Symbole – Namen – für die Bezeichnung von Elementen, Relationen und Funktionen einer Struktur zur Verfügung. Genauer: Eine Σ-Struktur S besteht aus: • einer nicht leeren Trägermenge T S , auch mit S bezeichnet, • einem Element c S ∈ S für jedes c ∈ Σ, • einer Relation R S ⊆ S n für jedes R/n ∈ Σ und 80 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik • einer Funktion f S : S n → S für jedes f //n ∈ Σ. Man spricht im Zusammenhang von Strukturen auch von Interpretationen: Zum Beispiel ist f S die Interpretation des Symbols f in der Struktur S. Die Schreibweise für Σ-Strukturen ist in voller Allgemeinheit S = (S, {c S }c∈C Σ , {R S }R∈RΣ , { f S } f ∈FΣ ) . Sollten die Symbolmengen abzählbar sein, dann schreibt man auch S = (S, c 0S , c 1S , . . . , R 0S , R 1S , . . . , f 0S , f 1S , . . . ) . Sind die Symbolmengen sogar endlich, dann schreiben wir auch: S S S = (S, c 0S , c 1S , . . . , c k−1 , R 0S , R 1S , . . . , R lS−1 , f 0S , f 1S , . . . , f m−1 ) . Beispiele für Strukturen sind zu finden auf den Folien 46–50. Zu beachten ist, dass das »+« auf den Folien für die Addition in den natürlichen Zahlen steht und »mod« für den Rest bei der Division. Graphstrukturen, ΣGraph = {E /2} Ein Graph G v4 v2 v3 v1 v6 v0 T G = {v0 , v1 , . . . , v6 } , v5 E G = {(v0 , v2 ), (v2 , v4 ), (v4 , v1 ), (v1 , v0 ), (v1 , v5 ), (v1 , v3 ), (v3 , v1 ), (v3 , v6 ), (v6 , v6 )} . NSuc, die natürlichen Zahlen mit Nachfolgerrelation 0 1 2 ··· T NSuc = {0, 1, 2, . . . } , E NSuc = {(0, 1), (1, 2), (2, 3), . . . } . Folie 46 81 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Arithmetische Strukturen, ΣAr = {0̃, 1̃, +//2, ×//2} N, die natürlichen Zahlen T N = {0, 1, 2, . . . } , 0̃N = 0 , 1̃N = 1 , +N (a, b) = a + b für a, b ∈ {0, 1, 2, . . . }, ×N (a, b) = ab für a, b ∈ {0, 1, 2, . . . }. Z7 , die Reste modulo 7 T Z7 = {0, 1, . . . , 6} , 0̃Z7 = 0 , 1̃Z7 = 1 , +Z7 (a, b) = a + b mod 7 für a, b ∈ {0, 1, . . . , 6}, ×Z7 (a, b) = ab mod 7 für a, b ∈ {0, 1, . . . , 6}. Folie 47 Außerdem ist zu bemerken, dass zwischen den Signaturen ΣOr d und ΣGr aph prinzipiell keine Unterschiede bestehen: Es werden unterschiedliche Symbole für eine zweistellige Relation benutzt. Damit kann man jede ΣOr d -Struktur als ΣGr aph -Struktur auffassen. Man benutzt unterschiedliche Signaturen allein aus dem Grund, unterschiedliche Sichtweisen deutlich zu machen. Die letzte Bemerkung wollen wir durch ein Beispiel untermauern. Es spricht nichts dagegen, die folgende ΣOr d -Struktur zu betrachten: S = ({0, 1, 2}, {(0, 1), (1, 2)}) . Die Interpretation von < ist aber im Sinne der Mathematik keine Ordnungsrelation, weil sie die Forderung der Transitivität verletzt. 3.2.2 Terme und deren Interpretation Eine Elementvariable hat die Form x i , wobei i eine natürliche Zahl ist. Die Menge aller Variablen bezeichnen wir mit VPL . 82 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Ordnungen, ΣOrd = {</2} Eine partielle Ordnung PO a3 a1 a2 T PO = {0, 1, 2, . . . } , <PO = {(a0 , a1 ), (a0 , a2 ), (a1 , a3 ), (a2 , a3 ), (a0 , a3 )} . a0 Nlt, die natürlichen Zahlen mit natürlicher Ordnung 0 1 2 ··· T Nlt = {0, 1, 2, . . . } , <Nlt = {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3), . . . } . Folie 48 Sei Σ eine Signatur. Die Menge T (Σ) der Terme über Σ (Σ-Terme) ist induktiv definiert wie folgt. 1. Basiselemente: • Jede Elementvariable x i ist ein Σ-Term. • Jedes Konstantensymbol c ∈ Σ ist ein Σ-Term. 2. Induktionsregeln: • Ist f //n ∈ Σ und sind t 0 , . . . , t n−1 Σ-Terme, so ist f (t 0 , . . . , t n−1 ) ein Σ-Term. Beispiel 3.1. Zum Beispiel ist ∧(x 1 , ⊥) ein ΣB A -Term und ×(1̃, +(1̃, x 1354 )) ein Σ Ar -Term. Der Einfachheit halber lassen wir zu, dass zweistellige Funktionssymbole auch in InfixSchreibweise genutzt werden können, zum Beispiel kann der erste Term in obigem Beispiel in der Gestalt x 1 ∧ ⊥ geschrieben werden. Unter Umständen muss dann geklammert werden, was beim zweiten Term des obigen Beispiels zu 1̃ × (1̃ + x 1354 ) führt. Lemma 3.1 (eindeutige Konstruktion). Sei Σ eine Signatur. Jeder Σ-Term kann nur in einer Weise im Sinne von Folie 6 konstruiert werden. Der Beweis verläuft analog zu dem Beweis des Satzes 2.1. 83 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Boolesche Algebren, ΣBA = {⊥, >, ∼//1, u//2, t//2} B, die“ boolesche Algebra ” T B = {0, 1} , ⊥B = 0 , >B = 1 , ∼B = ¬˙ , tB = ∨˙ , uB = ∧˙ . PN, die Potenzmengenalgebra auf den natürlichen Zahlen T PN = 2{0,1,2,... } , ⊥PN = ∅ , >PN = {0, 1, 2, . . . } , tPN = ∪ , uPN = ∩ , ∼PN (M) = {0, 1, 2, . . . } \ M , für M ⊆ {0, 1, . . . }. Folie 49 Die Menge der in einem Term vorkommenden Variablen ist induktiv definiert durch: 1. Basiszuordnung: vars(x i ) = {x i } für jedes i ∈ N und vars(c) = ; für jedes c ∈ Σ. 2. Induktionsregel: vars( f (t 0 , . . . , t n−1 )) = vars(t 0 ) ∪ · · · ∪ vars(t n−1 ) für jedes f //n ∈ Σ und Σ-Terme t 0 , . . . , t n−1 . Eine prädikatenlogische Variablenbelegung zu einer Σ-Struktur S ist eine partielle Funktion VPL 99K S. Eine solche Variablenbelegung wird auch als S-Belegung bezeichnet. Sie passt zu einem Σ-Term t , falls vars(t ) ⊆ dom(β) gilt. Jedem Σ-Term t und jeder dazu passenden Σ-Belegung β wird induktiv ihr Wert in Σ β zugeordnet, der mit Jt KS bezeichnet wird: β β 1. Basiszuordnung: Jx i KS = β(x i ) für jedes x i ∈ dom(β) und Jc KS = c S . β β β 2. Induktionsregel: J f (t 0 , . . . , t n−1 )KS = f S (Jt 0 KS , . . . , Jt n−1 KS ) für alle f //n ∈ Σ und Σ-Terme t 0 , . . . , t n−1 . Beispiel 3.2. Wir interpretieren ×(1̃, +(1̃, x 1354 )) in N unter der Belegung β, für die β(x 1354 ) = 84 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Bibliotheken, ΣBib = {Buch/3, Nutzer/3, Entliehen/2} Ein Datenbankzustand DB1 T DB1 = {Wilke, Thomas, Schloß Gripsholm, Tucholsky, N1, B1} , BuchDB1 = {(B1, Tucholsky, Schloß Gripsholm)} , NutzerDB1 = {(N1, Wilke, Thomas)} , EntliehenDB1 = {(N1, B1)} . Ein anderer Datenbankzustand DB2 T DB1 = {Wilke, Thomas, Kürtz, Klaas Ole, Schloß Gripsholm, Tucholsky, Rheinsberg, N1, N2, B1, B2, B3} , BuchDB2 = {(B1, Tucholsky, Schloß Gripsholm), (B2, Tucholsky, Rheinsberg), (B3, Tucholsky, Schloß Gripsholm)} , NutzerDB2 = {(N1, Wilke, Thomas), (N2, Kürtz, Klaas Ole)} , EntliehenDB2 = {(N1, B1), (N2, B3)} . Folie 50 111 gilt: β β β J×(1̃, +(1̃, x 1354 ))KN = ×N (J1̃KN , J+(1̃, x 1354 )KN ) β β = J1̃KN J+(1̃, x 1354 )KN β = 1̃N J+(1̃, x 1354 )KN β = 1J+(1̃, x 1354 )KN β β = 1 +N (J1̃KN , Jx 1354 KN ) β β = 1(J1̃KN + Jx 1354 KN ) β = 1(1̃N + Jx 1354 KN ) β = 1(1 + Jx 1354 KN ) = 1(1 + β(x 1354 )) = 1(1 + 111) = 112 . Zum Abschluss halten wir noch fest, dass jede Formel der Aussagenlogik, wenn man zu- 85 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik nächst das Konditional und das Bikonditional außer Acht lässt, zu einem ΣB A -Term korrespondiert: Man ersetze 0 durch ⊥, 1 durch >, X i durch x i , . . . Interessanter ist nun aber auch, dass die Semantik übereinstimmt: Lemma 3.2. Sei ϕ eine aussagenlogische Formel ohne → und ↔ und t ϕ der entsprechende ΣB A -Term. Außerdem sei β eine zu ϕ passende Belegung und β0 die prädikatenlogische BBelegung, die auf {x i : X i ∈ dom(β)} durch β0 (x i ) = β(X i ) definiert ist. γ Dann gilt JϕKβ = Jt KB . Ein Beweis kann sehr leicht per Induktion geführt werden. Aufgabe 3.1. (a) Geben Sie eine Signatur ΣR und eine Struktur S R für den geordneten Körper der reellen Zahlen an. (b) Geben Sie ΣR -Terme t 0 und t 1 an, so dass 1) t 0 dem Polynom (2x 02 · x 1 ) + 3x 1 entspricht und 2) die Interpretationen von t 1 alle nicht negative reellen Zahlen liefern. Aufgabe 3.2. (a) Geben Sie eine Signatur Σt r ee für gerichtete, verwurzelte Bäume an. (b) Betrachten Sie die folgenden beiden Bäume: w 0 1 4 2 a 3 d e c b f g h Geben Sie zu diesen Bäumen passende Σt r ee -Strukturen an. (c) Geben Sie eine Σt r ee -Struktur an, die kein Baum ist. 3.2.3 Formeln und deren Interpretation Nun können wir auch die Menge F PL (Σ) der prädikatenlogischen Formeln (erste Stufe) über Σ (Σ-Formeln) induktiv definieren. 1. Basiselemente: • 0 und 1 sind Σ-Formeln. • Sind t und t 0 Σ-Terme, so ist t = t 0 eine Σ-Formel. • Ist R/n ∈ Σ und sind t 0 , . . . , t n−1 Σ-Terme, so ist R(t 0 , . . . , t n−1 ) eine Σ-Formel Diese Formeln werden atomare Σ-Formeln genannt. 2. Induktionsregeln: • Sind ϕ und ψ Σ-Formeln, so auch ¬ϕ, (ϕ ∨ ψ), (ϕ ∧ ψ), (ϕ → ψ), (ϕ ↔ ψ). • Ist ϕ eine Σ-Formel und x i eine Elementvariable, so sind ∀x i ϕ und ∃x i ϕ ΣFormeln. Im zweiten Fall spricht man davon, dass die Formel ϕ universell oder existenziell quantifiziert wird. Man liest die Formeln »für alle x i ϕ« bzw. »es existiert x i ϕ«. Zunächst können wir festhalten, dass auch bei prädikatenlogischen Formeln eindeutige Konstruierbarkeit vorliegt. 86 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Lemma 3.3 (eindeutige Konstruktion). Sei Σ eine Signatur. Jede prädikatenlogische Formel kann nur in einer Weise im Sinne von Folie 6 konstruiert werden. Der Beweis verläuft analog zu dem Beweis des Satzes 2.1. Wir können also induktive Funktionsdefinitionen durchführen. Zum Beispiel könnten wir zu einer gegebenen Formel ϕ die Menge der Variablen bestimmen, die in ϕ vorkommen, und die wir mit vars(ϕ) bezeichnen. Interessanter ist die Menge der Variablen, die in einer Formel ϕ frei vorkommen, und die mit free(ϕ) bezeichnet wird: 1. Basiszuordnung: • free(0) = free(1) = ;, • free(t = t 0 ) = vars(t ) ∪ vars(t 0 ) für alle Σ-Terme t und t 0 und • free(R(t 0 , . . . , t n−1 )) = vars(t 0 )∪· · ·∪vars(t n−1 ) für alle R/n ∈ Σ und Σ-Terme t 0 , . . . , t n−1 . 2. Induktionsregeln: • Für alle ϕ, ψ ∈ F PL (Σ) gilt free(¬ϕ) = free(ϕ), free((ϕ∨ψ)) = free((ϕ∧ψ)) = free((ϕ → ψ)) = free((ϕ ↔ ψ)) = free(ϕ) ∪ free(ψ). • Für alle x i ∈ VPL und ϕ ∈ F PL (Σ) gilt free(∃x i ϕ) = free(∀x i ϕ) = free(ϕ) \ {x i } . Die Basiszuordnung wird exakt so vorgenommen, wie dies auch für die (einfachen) Vorkommen gilt. Die Induktionsregel für die Junktoren stimmt auch mit der für die (einfach) vorkommenden Variablen überein. Lediglich bei der Quantifizierung wird ein Unterschied gemacht. Während man für die einfachen Vorkommen vars(∃x i ϕ) = vars(∀x i ϕ) = vars(ϕ) ∪ {x i } setzt und damit die hinzu kommenden Variablen hinzufügt, führt die Quantifizierung einer Variablen dazu, dass sie aus den frei vorkommenden Variablen entfernt wird. Dahinter steckt die Einsicht, dass die Belegung einer quantifizierten Variablen bei der Definition der Semantik einer Formel nicht wichtig ist. Eine Variablenbelegung β passt zu einer prädikatenlogischen Formel ϕ, wenn free(ϕ) ⊆ dom(β) gilt. Wenn es sich um eine S-Belegung handelt, können wir dann ϕ eine Interpretation in S unter β induktiv zuordnen. Dabei wird die folgende Schreibweise benutzt. Ist β eine S-Belegung, x i ∈ VPL und a ∈ S, so steht β[s/x i ] für die S-Belegung, die durch falls i = j , s , β[s/x i ](x j ) = β(x j ) undefiniert, falls i 6= j und x j ∈ dom(β), sonst definiert ist. Nun können wir zur Definition der Semantik von Formeln kommen: 1. Basiszuordnung: β β • J0KS = 0 und J1KS = 1, 87 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik • Für Σ-Terme t und t 0 gilt Jt β = t 0 KS = ( 1 , 0 , β β falls Jt KS = Jt 0 KS , sonst. • Für Σ-Terme t 0 , . . . , t n−1 und R/n ∈ Σ gilt ( β β 1 , falls (Jt 0 KS , . . . , Jt n−1 KS ) ∈ R S , β JR(t 0 , . . . , t n−1 )KS = 0 , sonst. 2. Induktionsregeln: • Für alle ϕ, ψ ∈ F PL (Σ) gilt β β J¬ϕKS = ¬ ˙ JϕKS , β β β β β β β β β β β β ˙ JψKS , J(ϕ ∨ ψ)KS = JϕKS ∨ ˙ JψKS , J(ϕ ∧ ψ)KS = JϕKS ∧ J(ϕ → ψ)KS = JϕKS → ˙ JψKS , J(ϕ ↔ ψ)KS = JϕKS ↔ ˙ JψKS . • Für x i ∈ VPL und ϕ ∈ F PL (Σ) gilt ( β[a/x i ] 1 , falls JϕKS für ein a ∈ S gilt, β J∃x i ϕKS = 0 , sonst, ( β[a/x i ] 1 , falls JϕKS für alle a ∈ S gilt, β J∀x i ϕKS = 0 , sonst. Zu beachten ist hierbei, dass unsere Definition von freiem Vorkommen genau richtig ist. Während x i nicht zu free(∃x i ϕ) gehört und β damit an x i nicht definiert sein muss, kann x i zu free(ϕ) gehören, β[a/x i ] ist aber auch an x i definiert. Beispiel 3.3. Als Beispiel werten wir die Formel ϕ, die durch ϕ = ∀x 0 ∃x 1 (x 0 < x 1 ) definiert sei, in den natürlichen Zahlen, also Nlt, aus. Diese Formel besagt: Zu jeder natürlichen Zahl gibt es eine größere. β0 Offensichtlich gilt free(ϕ) = ;, so dass wir β0 = ; setzen und nach JϕKNlt fragen dürfen. 1. Wir stellen fest, dass für eine Nlt-Belegung β2 mit x 0 , x 1 ∈ dom(β2 ) gilt: β Jx 0 < x 1 KS 2 = 1 genau dann, wenn β2 (x 0 ) < β2 (x 1 ) . 2. Aus 1. ergibt sich, dass für jede Nlt-Belegung β1 mit x 0 ∈ dom(β1 ) gilt: β [β(x 0 )+1/x 1 ] 1 J(x 0 < x 1 )KNlt =1 , also gilt auch β 1 J∃x 1 (x 0 < x 1 )KNlt =1 für jede dieser Belegungen. 88 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik 3. Jede Belegung β0 [a/x 0 ] für a ∈ {0, 1, . . . } ist aber eine Belegung, wie sie unter 2. untersucht wurde, d. h., es gilt β [a/x 0 ] 0 J∃x 1 (x 0 < x 1 )KNlt =1 für jedes a ∈ {0, 1, . . . } und damit auch β JϕKNlt = 1 . Analog zur Situation in der Aussagenlogik wollen wir das Zeichen |= in der Prädikatenβ logik nutzen: Wir schreiben S, β |= ϕ für JϕKS = 1; wir sagen »ϕ gilt in S unter der Belegung β«. Eine prädikatenlogische Formel heißt Aussage, wenn sie keine freien Variablen hat. Dann gilt S, β |= ϕ unabhängig von der Belegung β. Deshalb schreiben wir in diesem Fall einfach S |= ϕ und sagen, dass S ein Modell von ϕ ist. Aufgabe 3.3. (a) Sei ΣOr d = {</2} die Signatur der Ordnungen. Welche der folgende Formeln sind wahr bezüglich der Struktur der natürlichen Zahlen mit natürlicher Ordnung Nlt beziehungsweise bezüglich der Struktur der reellen Zahlen Rlt mit natürlicher Ordnung? 1) ∃x 0 ∀x 1 (x 0 < x 1 ∨ x 0 = x 1 ) 2) ∀x 0 ∀x 1 (x 0 < x 1 → ∃x 2 (x 0 < x 2 ∧ x 2 < x 1 )) 3) ∀x 0 ∀x 1 ((x 0 < x 1 ∨ x 0 = x 1 ) ∨ x 1 < x 0 ) (b) Sei Σ Ar = {0̃, 1̃, +//2, ×//2} die Signatur der Arithmetik. Formulieren Sie folgende Aussagen als Formeln: 1) Jede natürliche Zahl ist Summe von vier Quadratzahlen (Satz von Lagrange). 2) Alle geraden Zahlen ≥ 4 sind Summe von zwei Primzahlen (Vermutung von Goldbach). 3) Es gibt unendliche viele Primzahlzwillinge. Hinweis. Ein Primzahlzwilling ist ein Paar (p, p + 2), wobei p und p + 2 Primzahlen sind. Aufgabe 3.4. Sei G ein Graph. Betrachten Sie die Graphstruktur ΣGr aph = {E /2}. Geben Sie eine Formel an, die die Existenz eines Weges der Länge 10 mit nur zwei Variablen beschreibt. Aufgabe 3.5. Sei ΣB B = {</2, +1//1, P /1} eine Signatur. Betrachten Sie eine ΣB B -Strukur S mit Trägermenge S = N, der natürlichen Ordnung <S , der Nachfolgerfunktion +1S : N → N, i 7→ i + 1 und einem Prädikat P . Geben Sie eine Formel ϕ an, so dass ¯ S |= ¯ ϕ genau dann,¯ wenn ¯ ¯ für alle i ∈ N gilt:¯ 0 ≤ ¯{ j ¯ j < i und P ( j )}¯ − ¯{ j ¯ j < i und ¬P ( j )}¯ ≤ 5. Aufgabe 3.6. Sei S eine endliche Struktur. Geben Sie einen rekursiven Algorithmus an (Pseudocode), der zu einer prädikatenlogischen Formel ϕ und einer Interpretation I = (S, β) den Wahrheitswert der Formel JϕKI berechnet. 89 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Hinweis. Gehen Sie davon aus, dass im Programm mittels β(i ) auf die Belegung der Variablen x i zugegriffen werden kann. 3.3 Einsatz von Prädikatenlogik Prädikatenlogik wird in unterschiedlichen Zusammenhängen - in der Mathematik und in der Informatik - eingesetzt. Bevor wir dazu kommen, wollen wir Regeln festhalten, nach denen Formeln in ihrer Schreibweise vereinfacht werden können. 3.3.1 Vereinfachungsregeln Die wichtigsten Vereinfachungsregeln betreffen die Bindungsstärke der Junktoren und Quantoren, es gibt aber auch Vereinfachungsregeln, die – wie bei der Aussagenlogik – bei der Schachtelung desselben Junktors greifen. Dabei ist Bindungsstärke wie folgt zu verstehen: Bindet ein Junktor stärker als ein anderer, dann werden fehlende Klammern so eingefügt, dass die innere Klammerung zum stärker bindenden Junktor gehört. Wenn wir zum Beispiel festlegen, dass ∨ stärker als → bindet, dann setzen wir in P 0 (x 0 ) ∨ P 1 (x 1 ) → P 2 (x 2 ) die Klammern wie folgt: ((P 0 (x) ∨ P 1 (y)) → P 2 (z)). Im Einzelnen legen wir fest: 1. Äußere Klammern können entfallen. 2. Junktoren und Quantoren sind wie folgt nach fallender Bindungsstärke geordnet: • Quantoren (∀x i , ∃x i ) und die Negation (¬). • Konjunktion und Disunktion (∧ und ∨). • Konditional und Bikonditional (→ und ↔). 3. Bei iterierter Anwendung von Konjuktionen bzw. Disjunktionen können Klammern entfallen. Das Verhältnis zwischen ∧ und ∨ wird also nicht festgelegt, auch nicht das Verhältnis zwischen → und ↔. Also muss man Klammern setzen! Beispiel 3.4. Wir dürfen P (x 3 ) ∧ Q(x 1 ) ∧ R(x 1 , c, d ) → Q( f (c)) schreiben, was für (((P (x 3 ) ∧ Q(x 1 )) ∧ R(x 1 , c, d )) → Q( f (c))) steht. Wir dürfen aber nicht P (x 1 ) ∧Q(c) ∨ R(x 1 , c, d ) schreiben. 3.3.2 Definitionen mathematischer Strukturen: boolesche Algebren und Ordnungen Prädikatenlogische Formeln werden häufig genutzt, um Klassen von Strukturen einer festen Signatur Σ zu beschreiben. Um dies genauer zu beschreiben, treffen wir die folgende Festlegung. Ist Φ eine Menge von Σ-Aussagen, so ist Mod(Φ) die Klasse definiert durch Mod(Φ) = {S Σ-Struktur : S |= ϕ für alle ϕ ∈ Φ} . 90 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Wir beginnen mit einem einfachen Beispiel, das wir schon lange kennen. Eine boolesche Algebra ist eine ΣB A -Struktur, in der die folgenden Aussagen gelten: ∀x∀y x t y = y t x ∀x∀y x u y = y u x ∀x∀y∀z (x u y) u z = x u (y u z) (Kommutativität) ∀x∀y∀z (x t y) t z = x t (y t z) (Assoziativität) ∀x x t x = x ∀x x u x = x (Idempotenz) ∀x∀y x u (x t y) = x ∀x∀y x t (x u y) = x (Absorption) ∀x∀y∀z (x u y) t z = (x t z) u (y t z) ∀x∀y∀z (x t y) u z = (x u z) t (y u z) ∀x x t ⊥ = x ∀x x u > = x ∀x ∼∼x = x (Distr.) (Neutralität) (Doppelte Negation) ∀x∀y ∼(x u y) = ∼x t ∼y ∀x∀y ∼(x t y) = ∼x u ∼y (De Morgan) ∀x x u ∼x = ⊥ ∀x x t ∼x = > (Tertium non datur) ∀x x u ⊥ = ⊥ ∀x x t > = > (Max. und Min.) ∼⊥ = > ∼> = ⊥ (Komplementierung) Mit anderen Worten, wenn wir mit ΦB A die Menge der obigen Aussagen bezeichnen, so ist Mod(ΦB A ) die Klasse der booleschen Algebren. Andere Beispiele sind zahllose Klassen von Ordnungen in der Signatur ΣOr d . Einige wenige wollen wir jetzt nacheinander besprechen. Prä- oder Quasiordnungen sind die ΣOr d -Strukturen, in denen ∀x∀y∀z(x < y ∧ y < z → x < z) (Transitivität) gilt. Eine Quasiordnung erhält man zum Beispiel dann, wenn man alle endlichen Bitfolgen betrachtet und < dadurch definiert, dass man sagt, dass eine Bitfolge kleiner als eine andere ist, wenn jene höchstens so lang ist wie diese. Dann ist die Ordnungsrelation transitiv. Genauer: Die ΣOr d -Struktur S mit S = {0, 1, 00, 01, 10, 11, . . . } , <S = {(u, v) : u ist nicht länger als v} ist eine Quasiordnung. (Partielle) oder (Halb-)Ordnungen erfüllen zusätzlich ∀x∀y(x < y ∧ y < x → x = y) . (Irreflexivität) Die obige Struktur erfüllt nicht die Forderung nach Irreflexivität, weil 010 < 010 gilt. Alternativ könnten wir aber festlegen, dass eine Bitfolge kleiner als eine andere ist, wenn sie kürzer ist. Die so definierte Relation wäre dann eine Halbordnung. Eine totale oder lineare Ordnungen ist eine Halbordnung, die ∀x∀y(x = y ∨ x < y ∨ y < x) (Linearität) erfüllt. Zum Beispiel bilden die natürlichen Zahlen mit der natürlichen Interpretation von < eine lineare Ordnung, nicht aber die zweite Relation auf Bitfolgen, weil 010 6< 101, 101 6< 010 und 010 6= 101 gelten. 91 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Dichte Ordnungen erfüllen außer Transitivität und Irreflexivität auch ∀x∀y(x < y → ∃z(x < z ∧ z < y) . (Dichtheit) Zum Beispiel bilden die rationalen Zahlen mit der natürlichen Ordnung eine dichte lineare Ordnung. Eine kompakte Darstellung ist auf Folie 51 zu finden. Ordnungen ∀x∀y ∀z(x < y ∧ y < z → x < z) (Transitivität) ∀x ¬x < x (Irreflexivität) ∀x∀y (x < y → ∃z(x < z ∧ z < y ) (Dichtheit) ∀x∀y (x = y ∨ x < y ∨ y < x) (Linearität) Präordnung (Quasiordnung) Transitivität (Partielle) oder (Halb-)Ordnungen Transitivität + Irreflexivität Totale oder lineare Ordnungen Transitivität + Irreflexivität + Linearität Dichte Ordnungen Transitivität + Irreflexivität + Dichtheit Folie 51 3.3.3 Wissensrepräsentation: Verwandtschaftsbeziehungen Prädikatenlogik lässt sich häufig dann nutzen, wenn man einen Ausschnitt der realen Welt präzise beschreiben möchte. Hat man dies getan, kann man ihn im nächsten Schritt analysieren. Wir betrachten dazu das Gebiet der Verwandtschaftsbeziehungen und benutzen eine Signatur ΣV B , die unter anderem Elternteil/2, mutter//1 und Weiblich/1 enthält. Folgende 92 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Festlegungen erscheinen sinnvoll: ∀x∀y(mutter(x) = y ↔ Weiblich(y) ∧ Elternteil(y, x)) , ∀x(Mutter(x) ↔ Weiblich(x) ∧ ∃y Elternteil(x, y)) , ∀x∀y(Geschwister(x, y) ↔ (¬x = y ∧ ∃z(Elternteil(z, x) ∧ Elternteil(z, y)))) . Zu beachten ist hier, dass wir durch die Festlegung, dass mutter eine einstellige Funktion ist, die folgende Eigenschaft vorgeben: Jede Person besitzt genau eine Mutter. Wir wollen die Formelmenge, die die drei obigen Formeln umfasst, Φ nennen. Fragen könnten wir uns, ob die Formel ϕ, die durch ψ = ∀x∀y(Geschwister(x, y) ↔ Geschwister(y, x)) gegeben ist, eine logische Folgerung aus Φ ist. Um diese Frage beantworten zu können, passen wir zunächst die Folgerungsbeziehung an. Sei Φ ⊆ F PL (Σ) und ψ ∈ F PL (Σ). Dann ist ψ eine Folgerung aus Φ, in Zeichen Φ |= ψ, falls das Folgende für jede Σ-Struktur S gilt: Wenn S |= ϕ für jedes ϕ ∈ Φ, so S |= ψ. Mit dieser Definition lässt sich tatsächlich zeigen, dass Φ |= ψ gilt, sofern Φ die Menge der drei obigen Formeln ist. Ein Beweis ist nicht schwierig, aber anstrengend. Die Formelmenge Φ drückt Gesetzmäßigkeiten über Verwandtschaftsbeziehungen aus; die Folgerungsbeziehung ermöglicht es, die Menge der daraus folgenden weiteren Gesetzmäßigkeiten exakt zu fassen. Möchte man dagegen eine konkrete Verwandtschaftssituation analysieren, kann man wie folgt vorgehen. Man fügt Fakten in Form von Formeln zu Φ hinzu, die eine konkrete Situation charakterisieren. Genauer: Man fügt Konstanten zur Signatur hinzu, um einzelne Personen benennen zu können, und atomare Aussagen, die deren Beziehungen untereinander beschreiben. Zum Beispiel könnte man die Konstanten richard, franz und martha zur Signatur hinzufügen und die folgenden drei atomaren Aussagen: Geschwister(richard, franz) , Elternteil(martha, franz) , Weiblich(martha) . Dann gilt Φ 6|= mutter(richard) = martha , denn wir können ein konkretes »Gegenbeispiel« angeben: Wir betrachten die Struktur S, 93 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik die durch S = {0, 1, 2, 3} , mutterS = {(0, 3), (1, 3), (2, 3), (3, 3)} , richardS = 0 , franzS = 1 , marthaS = 2 , GeschwisterS = {(0, 1), (1, 0)} , WeiblichS = {2, 3} , ElternteilS = {(2, 0), (2, 1), (3, 0), (3, 1), (3, 2), (3, 3)} , MutterS = {2, 3} . Man beachte, dass S ein Modell von Φ und kein Modell von mutter(richard) = martha ist, womit die Behauptung gezeigt ist. Es ist aber auch wichtig, festzuhalten, dass die obige Struktur bei genauer Betrachtung als nicht realistisch angesehen werden muss, was aber nichts an der Korrektheit unserer Behauptung ändert. Aufgabe 3.7. Betrachten Sie die Signatur der Verwandtschaftsbeziehungen ΣV B und gehen Sie davon aus, dass folgende Symbole in ΣV B enthalten sind: Elternteil/2, Geschwister/2, Onkel/2, Tante/2, Cousin/2, mutter//1, vater//1, Weiblich/1, Männlich/1 (a) Formalisieren Sie mit Hilfe der angegebenen Symbole folgende Verwandtschaftsbeziehungen: 1) x ist Vater von y genau dann, wenn x männliches Elternteil von y ist, 2) x ist Onkel von y genau dann, wenn x Bruder der Mutter oder des Vaters von y ist, 3) x ist Tante von y genau dann, wenn x Schwester der Mutter oder des Vaters von y ist, 4) x ist Cousin von y genau dann, wenn . . . . (b) Beweisen Sie, dass die folgende Formel eine logische Folgerung ist: ∀x 0 ∀x 1 ∀x 2 (Onkel(x 2 , x 0 )∧∀x 3 (Elternteil(x 3 , x 0 ) ↔ Elternteil(x 3 , x 1 ))) → Onkel(x 2 , x 1 )) . (c) Zeigen Sie (durch Angabe eines konkreten Beispiels), dass ∀x 0 ∀x 1 (∃x 2 (Onkel(x 0 , x 2 ) ∧ Onkel(x 1 , x 2 )) → Geschwister(x 0 , x 1 )) keine logische Folgerung aus den in (b) und der Vorlesung betrachteten Formeln ist. 3.3.4 Spezifikationen: wechselseitiger Ausschluss In der Informatik ist es häufig notwendig, Eigenschaften von Berechnungen zu spezifizieren: Man möchte beschreiben, was ein Programm tut bzw. tun soll oder wie ein Protokoll funktioniert. Wir wollen beispielhaft das Problem des wechselseitigen Ausschlusses (»mutual exclusion«) betrachten. Wir stellen uns vor, zwei Prozesse, P 0 und P 1 , möchten auf eine Resource 94 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik zugreifen, die aber nur höchstens einem der Prozesse zur Verfügung gestellt werden kann. Wir wollen beschreiben, was wir von Verfahren erwarten, die korrekten Zugriff auf die Resource ermöglichen sollen. Berechnungen des Gesamtsystems beschreiben wir durch so genannte ME-Strukturen. Wir nutzen die Signatur ΣM E = {< /2, R 0 /1, R 1 /1,G 0 /1,G 1 /1}. Als ME-Struktur bezeichnen wir eine ΣM E -Struktur S, deren Trägermenge die natürlichen Zahlen sind, also S = {0, 1, 2, . . . }, und für die <S = {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3), . . . } gilt, d. h., < wird durch die natürliche Ordnungsrelation auf den natürlichen Zahlen interpretiert. Wir interpretieren dann die Elemente der Trägermenge einer ME-Struktur als Zeitpunkte und die Elemente von • R iS (»request«) als die Zeitpunkte, zu denen Prozess P i den Wunsch äußert, auf die Resource zuzugreifen, und • G iS (»granted«) als die Zeitpunkte, zu denen Prozess P i Zugriff zu der kritischen Resource hat oder den Zugriff nutzt. Jetzt können wir einzelne Eigenschaften formalisieren. Wir beginnen mit einer Formel, die die wichtigste Eigenschaft, nämlich den wechselseitigen Ausschluss, beschreibt: ϕ0 = ∀x(¬G 0 (x) ∨ ¬G 1 (x)) , d. h., zu jedem Zeitpunkt hat einer der beiden Prozesse keinen Zugriff. Alternativ hätten wir sagen können: ϕ00 = ¬∃x(G 0 (x) ∧G 1 (x)) , was heißt, dass P 0 und P 1 niemals gleichzeitig Zugriff zur Resource haben. Beide Formeln sind äquivalent im folgenden Sinn. Sind ϕ, ψ ∈ F PL (Σ) für eine Signatur Σ, so sind ϕ und ψ äquivalent, wenn für alle Σ-Strukturen und Belegungen β, die zu ϕ und ψ passen gilt: S, β |= ϕ genau dann, wenn S, β |= ψ. Desweiteren möchten wir ausdrücken, dass der Prozess, der gern die Resource möchte, auch Zugriff erhält, d. h., wir fordern Fairness: ϕ1 = ∀x((R 0 (x) → ∃y(x < y ∧G 0 (y))) ∧ ((R 1 (x) → ∃y(x < y ∧G 1 (y))))) . Man beachte, dass wir < und nicht ≤ benutzen, denn wir stellen uns vor, dass ein Prozess erst nachdem er Zugriff verlangt hat, bereit ist, zuzugreifen (es sei denn, der Wunsch wurde schon geäußert und noch nicht erfüllt). Eine übersichtlichere Art, diese Formel zu schreiben, ist: ^ ϕ01 = ∀x((R i (x) → ∃y(x < y ∧G i (y))) . i <2 Dabei benutzen wir dieselbe Konvention wie in der Aussagenlogik. Eine etwas schwächere Forderung, die wir deshalb auch schwache Fairness nennen wollen, wäre: Wenn P 0 immer wieder den Zugriff fordert, dann erhält P 0 auch immer wieder Zugriff. Dies kann wie folgt formalisiert werden: ϕ2 = ∀x∃y(x < y ∧ R 0 (y)) → ∀x∃y(x < y ∧G 0 (y)) ∧ ∀x∃y(x < y ∧ R 1 (y)) → ∀x∃y(x < y ∧G 1 (y)) . 95 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Auch diese kann übersichtlicher geschrieben werden: ^ ϕ02 = ∀x∃y(x < y ∧ R i (y)) → ∀x∃y(x < y ∧G i (y)) . i <2 Wir wollen abschließend eine kompliziertere Eigenschaft beschreiben: P 0 wird nicht übervorteilt, d. h., wenn P 0 den Zugriff fordert, aber keine Forderung von P 1 aussteht, dann erhält P 0 Zugriff vor P 1 . Diese Eigenschaft nennen wir Schnelligkeit für P 0 . Wir sagen zunächst, dass eine ME-Struktur dann die Eigenschaft erfüllt, wenn Situationen, in denen P 0 Zugriff fordert und später P 1 Zugriff erhält, gerechtfertigt sind durch einen entsprechenden Punkt in der Vergangenheit: ϕ3 = ∀x∀y(R 0 (x) ∧ x < y ∧G 1 (y) → ∃z(ϕ03 ∨ ϕ13 )) Dieser »rechtfertigende« Punkt z, kann eine von zwei Begründungen liefern: (0) Die Forderung von P 0 wurde schon erfüllt. (1) Eine Forderung von P 1 stand noch aus. Die erste Begründung beschreiben wir durch ϕ03 = x < z ∧ z < y ∧G 0 (x) , während wir die zweite durch ϕ13 = (z < x ∨ z = x) ∧ R 1 (z) ∧ ∃u(z < u ∧ (u < y ∨ u = y) ∧ ∀v(z < v ∧ v < u → ¬G 1 (v)) ∧ ∀v((u = v ∨ u < v) ∧ v < y → G 1 (y))) beschreiben. Eine graphische Veranschaulichung ist auf Folie 52 zu finden. Aufgabe 3.8. Analog zum Beispiel Gegenseitiger Ausschluss sollen in dieser Aufgabe Eigenschaften eines Fahrstuhls modelliert werden. Betrachten Sie dazu die Signatur ΣF S = { < /2, E 0 /1, E 1 /1, E 2 /1, E 3 /1, C 0 /1,C 1 /1,C 2 /1,C 3 /1, O 0 /1,O 1 /1,O 2 /1,O 3 /1, H /1} und eine ΣF S -Struktur S mit der Trägermenge S = N und der natürlichen Ordnung <S . Die Elemente der Trägermenge werden dann als Zeitpunkte interpretiert. Ausserdem interpretieren wir • E iS als Zeitpunkte, zu denen sich der Fahrstuhl in der Etage i befindet, • C iS als Zeitpunkte, zu denen der Wunsch besteht, auf Etage i einzusteigen, • O iS als Zeitpunkte, zu denen der Wunsch besteht, auf Etage i auszusteigen und • H S als Zeitpunkte, zu denen der Fahrstuhl anhält (und die Tür geöffnet hat). 96 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Wechselseitiger Ausschluss ME-Struktur Σ = {< /2, R0 /1, R1 /1, G0 /1, G1 /1}, S = {0, 1, 2, . . . } und <S = {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3), . . . }. Farbliche Kodierung Ri : Prozess i möchte zugreifen Gi : Prozess i darf zugreifen/greift zu Wechselseitiger Ausschluss verboten P0 x P1 x Schnelligkeit für P0 ok ok x P0 y P1 P0 P1 z x z y u Folie 52 Als (physikalische) Forderung an den Fahrstuhl können Sie annehmen, dass _ ^ ∀x E i (x) ∧ ∀x (¬E i (x) ∨ ¬E j (x)) . i <4 i < j <5 Beschreiben Sie die folgenden Anforderung mit Hilfe von Formeln: (a) Wenn ein Wunsch vorliegt, wird er erfüllt. (b) Wenn kein Wunsch vorliegt, fährt der Fahrstuhl nicht. (c) Der Fahrstuhl hält an, falls ein Wunsch bezüglich der aktuellen Etage vorliegt. 3.3.5 (Datenbank-)Anfragen Einen Datenbankzustand kann man als eine Σ-Struktur für eine geeignete Signatur Σ auffassen. Jede Σ-Formel kann dann als Anfrage an eine Datenbank verstanden werden. Das wollen wir formalisieren und erläutern. n Wenn n eine natürliche Zahl ist, so schreiben wir F PL (Σ) für die Menge aller Σ-Formeln, n deren freie Variablen sich unter x 0 , . . . , x n−1 befinden. Ist nun ϕ ∈ F PL (Σ) und S eine Σn Struktur, dann bezeichnen wir mit ϕ(S ) die n-stellige Relation über S, die ein Tupel (s 0 , . . . , s n−1 ) 97 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik genau dann enthält, wenn es eine S-Belegung β : {x 0 , . . . , x n−1 } → S gibt, für die S, β |= ϕ und s i = β(x i ) für alle i < n gilt. Wir sprechen bei ϕ von einer Anfrage und nennen ϕ(Sn ) das nstellige Anfrageergebnis zu ϕ in S. Wir betrachten dazu drei Beispiele. Wenn wir in unserer Bibliotheksdatenbank nach allen Nutzernamen suchen wollen, so können wir dies mit Hilfe der Anfrage ϕ0 = ∃x 2 Nutzer(x 2 , x 0 , x 1 ) . Das zweistellige Anfrageergebnis zu ϕ0 ist die Menge mit allen Paaren (Nachname, Vorname), die als Nutzer auftreten. Das einstellige Anfrageergebnis ist die Menge aller Eintupel von Nachnamen von Nutzern. Wollen wir nach Autorennamen suchen, so ist die Anfrage ϕ1 = ∃x 1 ∃x 2 Buch(x 1 , x 0 , x 2 ) hilfreich. Das einstellige Anfrageergebnis zu ϕ1 ist die Menge mit allen Eintupeln, die als Autorennamen eines Buches auftreten. Möchten wir zum Beispiel die Namen aller Nutzer bestimmen, die alle Titel eines Autors ausgeliehen haben, dann können wir dies wie folgt tun: ϕ2 = ∃x 2 (Nutzer(x 2 , x 0 , x 1 ) ∧ ∃x 3 ∀x 4 (∃x 5 Buch(x 5 , x 3 , x 4 ) → ∃x 6 (Buch(x 6 , x 3 , x 4 ) ∧ Entliehen(x 2 , x 6 ))) . Das zweistellige Anfrageergebnis zu ϕ2 besteht aus den Paaren (Nachname, Vorname), die die gewünschte Eigenschaft besitzen. Die Anfrage ist aus mehreren Gründen komplizierter, als man zunächst erwarten würde: 1. Wir nehmen an, dass unterschiedliche Nutzernummer bei gleichem Namen für verschiedene Personen stehen. (Dann muss nicht notwendigerweise in der Realität so sein. Warum soll nicht ein und diesselbe Person zwei Nutzernummern besitzen?) 2. Wir haben keinen direkten Zugriff auf die Menge aller Autoren, lediglich über die Buch-Relation. 3. Wir gehen davon aus, dass es mehrere Exemplare eines Buches geben kann. Es gibt mehrere Dinge, auf die gesondert hingewiesen wird. Zum einen können wir nicht über konkrete Autoren oder Nutzer sprechen, weil wir in unsere Signatur keine Symbole dafür aufgenommen haben. Das ist aus Datenbanksicht hinderlich, denn man möchte ja zum Beispiel die Namen der Nutzer bestimmen können, die ein Buch von Tucholsky entliehen haben. Im Bereich der Datenbanken erlaubt man deshalb bei Anfragen eine erweiterte Syntax; wir behandeln die Problematik nicht weiter. Zum anderen möchte man häufig Daten »aggregieren«, das heißt, man möchte zum Beispiel nicht die Menge mit allen Nutzernamen bestimmen, sondern zum Beispiel nur deren Mächtigkeit. (Ist die Menge nämlich sehr groß, wird das Zählen schwierig.) Auch derartige Anfragen kann man im Kontext der mathematischen Logik modellieren, allerdings auch erst nach entsprechenden Erweiterungen, die wir nicht behandeln wollen. Desweiteren fehlen unserer Prädikatenlogik Sorten bzw. Typen: Die Trägermenge einer Struktur kann ganz unterschiedliche Elemente enthalten, zum Beispiel Zeichenketten für 98 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik die Benennung von Personen oder Zahlen für die Angabe eines Alters. Häufig ist es praktisch, wenn man die Quantifizierung von Variablen auf Elemente eines gewünschten Typs einschränken kann, etwa auf Zahlen, was in Datenbanken auch möglich ist. Unsere Prädikatenlogik müssten wir auf Kosten der Übersichtlichkeit erweitern. Schließlich ändern sich Datenbanken, genauer ihr Zustand, mit der Zeit. Um solche Änderungen durchführen zu können, also etwa das Hinzufügen von Tupeln oder das Löschen, müssen sprachliche Mittel zur Verfügung gestellt werden. Aufgabe 3.9. (a) Sei ΣBi b = {Buch/3, Nutzer/2, Entliehen/2}. Betrachten Sie folgenden Datenbankzustand DB: T DB = {Wilke, Kähler, Schnoor, Thöle, Khan, Kuertz, Schloß Gripsholm, Tucholsky, Die Tore der Welt, Die Säulen der Erde, Follet, N1, N2, N3, N4, N5, N6, B1, B2, B3, B4, B5, B6} , DB Buch = {(B1, Tucholsky, Schloß Gripsholm), (B2, Follet, Die Tore der Welt), (B3, Follet, Die Tore der Welt), (B4, Follet, Die Tore der Welt), (B5, Follet, Die Säulen der Erde), (B6, Follet, Die Säulen der Erde)} , NutzerDB = {(N1, Wilke), (N2, Kähler), (N3, Schnoor), (N4, Thöle), (N5, Khan), (N6, Kuertz)} , EntliehenDB = {(N1, B1), (N1, B2), (N2, B4), (N3, B6), (N5, B5), (N6, B3)} . Geben Sie ΣBi b -Formeln an, die folgende Fragen beantworten: 1) Gibt es zwei Nutzer? 2) Gibt es zwei Exemplare von einem Buch? 3) Sind alle Bücher verliehen? 4) Hat ein Nutzer alle Bücher eines Autors entliehen? (b) Betrachten Sie die Signatur für Graphen ΣGr aph = {E /2}. Geben Sie ΣGr aph -Formeln an, die folgende Fragen beantworten: 1) Gibt es isolierte Knoten? 2) Gibt es Knoten mit mindestens 2 Nachbarn? 3) Hat jeder Knoten eine Kante zu jedem anderen Knoten? 3.4 Auswertung von Formeln Wir wollen die Sicht, die wir im letzten Abschnitt im Zusammenhang mit den Datenbankbeispielen entwickelt haben, weiter verfolgen, genauer: wir wollen uns überlegen, wie man eine Anfrage im Sinne des letzten Abschnitts auswerten kann. Das algorithmische Problem, was wir lösen möchten, ist demnach, zu gegebener Σ-Struktur n S und Formel ϕ ∈ F PL (Σ) die Menge ϕ(Sn ) zu bestimmen. Wir beschränken uns darauf, eine Lösung für das Problem zu finden, wenn die betroffene Signatur relational ist und keine Konstantensymbole enthält. Es ist nicht schwierig, das Problem in voller Allgemeinheit zu lösen, aber aufwändig. 99 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik 3.4.1 Das Koinzidenzlemma Ein wichtiges Hilfsmittel für den Korrektheitsbeweis des gesuchten Algorithmus – aber auch an anderen Stellen beim Umgang mit der Prädikatenlogik – ist das Koinzidenzlemma der Prädikatenlogik. Dieses ist dem für die Aussagenlogik nachempfunden, allerdings ist es entsprechend angepasst. Wir haben schon bei der Definition der Semantik der Prädikatenlogik nur die freien Variablen bei den Variablenbelegungen berücksichtigt. Genau das wird im Koinzidenzlemma exakt ausgedrückt. Lemma 3.4 (Koinzidenzlemma). Sei Σ eine Signatur, ϕ ∈ F PL (Σ), S eine Σ-Struktur und β sowie β0 zu ϕ passende S-Belegungen. Gilt β|free(ϕ) = β0 |free(ϕ) , so gilt S, β |= ϕ genau dann, wenn S, β0 |= ϕ. Beweis. Zunächst zeigt man für jeden Σ-Term t , jede Σ-Struktur S und S-Belegungen β und β β0 β0 mit β|vars(t ) = β0 |vars(t ) : Jt KS = Jt KS . Dann zeigt man die Behauptung per Induktion. Der interessante Teil ist der Induktionsschritt für die Quantoren. Diesen führen wir durch. Wir nehmen also an, dass die Behauptung für ϕ gilt. Außerdem sei i ∈ N und ψ = ∃x i ϕ. Wir wollen die Behauptung für ψ anstelle von ϕ zeigen. Dazu sei S eine Σ-Struktur und β und β0 seien zu ψ passende S-Belegungen. Außerdem nehmen wir S, β |= ψ an und zeigen S, β0 |= ψ. Aus S, β |= ψ folgt, dass es ein a ∈ S gibt, für das S, β[a/x i ] |= ϕ. Es gilt free(ϕ) = free(ψ) oder free(ϕ) = free(ψ) ∪ {x i }. In beiden Fällen gilt β[a/x i ]|free(ϕ) = β0 [a/x i ]|free(ϕ) , so dass wir die Induktionsannahme nutzen können. Wir erhalten S, β0 [a/x i ] |= ϕ, also auch S, β0 |= ∃x i ϕ. Aufgabe 3.10. Seien Σ eine Signatur, t ein Σ-Term, S eine Σ-Struktur und β, β0 zu t passende S-Belegungen. Zeigen Sie: β β0 Ist β|vars(t ) = β0 |vars(t ) , so gilt Jt KS = Jt KS . 3.4.2 Auswertung von atomaren Formeln, Junktoren und Quantoren Wenn wir nun ϕ(Sn ) bestimmen wollen, so können wir das rekursiv tun. Wir bereiten einen entsprechenden Algorithmus durch einzelne Lemmas vor, die sich am rekursiven Aufbau der Formeln orientieren. Wir beginnen mit den atomaren Formeln. Lemma 3.5. Sei Σ eine relationale Signatur ohne Konstanten. n 1. Ist ϕ von der Form x i = x j mit i , j < n, dann ist ϕ ∈ F PL (Σ) und es gilt ϕ(Sn ) = {(a 0 , . . . , a n−1 ) ∈ S n : a i = a j } . 2. Ist ϕ von der Form R(x i 0 , . . . , x i m−1 ) mit R/m ∈ Σ und gilt i 0 , . . . , i m−1 < n, so gilt ϕ ∈ n F PL (Σ) und ϕ(Sn ) = {(a 0 , . . . , a n−1 ) ∈ S n : (a i 0 , . . . , a i m−1 ) ∈ R S } . 100 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik n Beweis. Zu 1. Zunächst ist offensichtlich, dass ϕ ∈ F PL (Σ) gilt. Sei β die leere Variablenbelegung. ⊆ Ist (a 0 , . . . , a n−1 ) ∈ ϕ(Sn ), so gilt definitionsgemäß S, β[a 0 /x 0 , . . . , a n−1 /x n−1 ] |= x i = x j , was äquivalent zu a i = a j ist. Daraus folgt die Behauptung. ⊇ Dies wird ähnlich bewiesen. Zu 2. Den Beweis führen wir nicht aus; er verläuft ähnlich. Als nächsten wenden wir uns den booleschen Junktoren zu und beginnen mit Disjunktion und Konjunktion. n Lemma 3.6. Sei Σ eine Signatur, ϕ = ϕ0 ∨ ϕ1 und ϕ ∈ F PL (Σ). Dann gilt ϕ(Sn ) = ϕ0 (Sn ) ∪ ϕ1 (Sn ) . Diese Aussage gilt auch für ∧ anstelle von ∨ und ∩ anstelle von ∪. Beweis. Zunächst stellen wir fest, dass die rechte Seite der Gleichung wohldefiniert ist, n n denn aus ϕ ∈ F PL (Σ) folgt ϕ0 , ϕ1 ∈ F PL (ϕ). Im Folgenden sei β die leere Belegung. ⊆ Ist (a 0 , . . . , a n−1 ) ∈ ϕ(Sn ), so gilt S, β[a 0 /x 0 , . . . , a n−1 /x n−1 ] |= ϕ, also S, β[a 0 /x 0 , . . . , a n−1 /x n−1 ] |= ϕ0 oder S, β[a 0 /x 0 , . . . , a n−1 /x n−1 ] |= ϕ1 . Daraus ergibt sich (a 0 , . . . , a n−1 ) ∈ ϕ0 (Sn ) oder (a 0 , . . . , a n−1 ) ∈ ϕ1 (Sn ), das heißt, (a 0 , . . . , a n−1 ) ∈ ϕ0 (Sn ) ∪ ϕ1 (Sn ). ⊇ Dies kann ähnlich bewiesen werden. Die Operation auf Tupeln, die hinter der Konjunktion steht, wird in der Datenbanktheorie als Join bezeichnet. Wir benötigen ein weiteres Lemma für die anderen booleschen Junktoren, was wir aber nicht beweisen. Lemma 3.7. Sei Σ eine Signatur. 1. Ist ϕ = ¬ψ, so gilt ϕ(Sn ) = S n \ ψ(Sn ) . n 2. Ist ϕ = ϕ0 → ϕ1 und ϕ ∈ F PL (Σ). Dann gilt ϕ(Sn ) = (S n \ ϕ0 (Sn )) ∪ ϕ1 (Sn ) . n 3. Ist ϕ = ϕ0 ↔ ϕ1 und ϕ ∈ F PL (Σ). Dann gilt ϕ(Sn ) = (ϕ0 (Sn ) ∩ ϕ1 (Sn )) ∪ S n \ (ϕ0 (Sn ) ∪ ϕ1 (Sn )) . Schließlich gehen wir auf die Quantoren ein. Dazu stellen wir eine Vorüberlegung an: n Lemma 3.8. Sei Σ eine Signatur und ϕ = ∃x i ψ ∈ F PL (Σ). 101 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik 1. Falls i < n, so gilt ϕ(Sn ) = {(a 0 , . . . , a n−1 ) ∈ S n : es gibt b ∈ S mit (a 0 , . . . , a i −1 , b, a i +1 , . . . , a n−1 ) ∈ ψ(Sn )} . 2. Falls i ≥ n, so gilt ϕ(Sn ) = {(a 0 , . . . , a n−1 ) ∈ S n : es gibt a n , . . . , a i ∈ S mit (a 0 , . . . , a i ) ∈ ψ(Si +1 )} . Beweis. Sei β die leere Variablenbelegung. Zu 1. Es gilt (a 0 , . . . , a n−1 ) ∈ ϕ(Sn ) definitionsgemäß genau dann, wenn S, β[a 0 /x 0 , . . . , a n−1 /x n−1 ] |= ϕ. Das gilt nach Definition der Semantik genau dann, wenn es ein b gibt mit S, β[a 0 /x 0 , . . . , a n−1 /x n−1 ][b/x i ] |= ψ, also genau dann, wenn S, β[a 0 /x 0 , . . . , a i −1 /x i −1 , b/x i , a i +1 /x i +1 , . . . , a n−1 /x n−1 ] |= ψ. Letzteres ist gleichbedeutend mit (a 0 , . . . , a i −1 , b, a i +1 , . . . , a n−1 ) ∈ ψ(Sn ). Zu 2. Es gilt wie oben (a 0 , . . . , a n−1 ) ∈ ϕ(Sn ) definitionsgemäß genau dann, wenn S, β[a 0 /x 0 , . . . , a n−1 /x n−1 ] |= ϕ, was nach Definition der Semantik genau dann gilt, wenn es ein a i gibt mit S, β[a 0 /x 0 , . . . , a n−1 /x n−1 ][a i /x i ] |= ψ. Aus dem Koinzidenzlemma ergibt sich, das letzteres genau dann gilt, wenn S, β[a 0 /x 0 , . . . , a i −1 /x i −1 , a i /x i ] für irgendwelche a n , . . . , a i −1 ∈ S gilt, was auch unabhängig von der Wahl dieser ist. Daraus folgt die Behauptung. Für den Allquantor gilt ein analoges Lemma. n Lemma 3.9. Sei Σ eine Signatur und ϕ = ∀x i ψ ∈ F PL (Σ). 1. Falls i < n, so gilt ϕ(Sn ) = {(a 0 , . . . , a n−1 ) ∈ S n : für alle b ∈ S gilt (a 0 , . . . , a i −1 , b, a i +1 , . . . , a n−1 ) ∈ ψ(Sn )} . 2. Falls i ≥ n, so gilt ϕ(Sn ) = {(a 0 , . . . , a n−1 ) ∈ S n : für alle a n , . . . , a i ∈ S gilt (a 0 , . . . , a i ) ∈ ψ(Si +1 )} . Ohne Beweis. 3.4.3 Der Auswertungsalgorithmus Aus den vorstehenden Lemmas lässt sich leicht ein Algorithums formulieren, der auf Folie 53 skizziert ist. Rekursiv zerlegt er eine gegebene Formel und bestimmt das Anfrageergebnis, alles gemäß der vorstehenden Lemmas. Um ein gutes Laufzeitverhalten zu erzielen, muss man sehr geschickt bei der Implementierung vorgehen. Entsprechende algorithmische Techniken werden im Bereich der Algorithmen und Datenstrukturen und der Datenbanken entwickelt. Bei einer einigermaßen geschickten Implementierung und knappen Darstellung des Ergebnisses ergibt sich für unseren Algorithms eine pessimale Laufzeit von O(|ϕ| × |S|b ), wobie die b die maximale Anzahl von freien Variablen in einer 102 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Auswertung von Formeln Eval(ϕ, n, S) n Vorbedingung: ϕ ∈ FPL (Σ), Σ relational, S endlich if ϕ = xi = xj then return {(a0 , . . . , an−1 ) ∈ S n : ai = aj } if ϕ = R(xi0 , . . . , xim−1 ) then return {(a0 , . . . , an−1 ) ∈ S n : (ai0 , . . . , aim−a ) ∈ R S } if ϕ = ϕ0 ∨ ϕ1 then return Eval(ϕ0 , n, S) ∪ Eval(ϕ1 , n, S) ... if ϕ = ∃xi ψ then if i < n then let T = ∅ and T 0 = Eval(ψ, n, S) for each (a0 , . . . , an−1 ) ∈ T 0 and b ∈ S let T = T ∪ {(a0 , . . . , ai−1 , b, ai+1 , . . . , an−1 )} return T else ... ... Nachbedingung: return = ϕ(Sn ) Folie 53 Aufgabe 3.11. Sei ΣK = {Kino/2, Film/3, Progr/3} die Signatur für eine (einfache) Kinodatenbank. Betrachten Sie den folgenden Datenbankzustand K: T K = { Metro, CinemaxX, Neues Studio, Holtenauer Straße, Wilhelminenstraße, Kaistraße, Bedtime Stories, Tintenherz, Transporter 3, Willkommen bei den Sch’tis, Adam Shankman, Adam Sandler, Iain Softley, Eliza Bennett, Olivier Megaton, Jason Statham, Dany Boon, Kad Merad, 15, 17, 18, 19, 20, 23} , K Kino = {(Metro, Holtenauer Straße), (CinemaxX, Kaistraße), (Neues Studio, Wilhelminenstraße)} , FilmK = {(Bedtime Stories, Adam Shankman, Adam Sandler), (Tintenherz, Iain Softley, Eliza Bennett), (Transporter 3, Olivier Megaton, Jason Statham), (Willkommen bei den Sch’tis, Dany Boon, Kad Merad)} , K Progr = {(Metro, Tintenherz, 15), (Metro, Tintenherz, 20), (CinemaxX, Tintenherz, 15), (CinemaxX, Tintenherz, 17), (Neues Studio, Bedtime Stories, 17), (Neues Studio, Bedtime Stories, 19), (CinemaxX, Bedtime Stories, 15), (CinemaxX, Bedtime Stories, 18), (CinemaxX, Bedtime Stories, 20), (CinemaxX, Bedtime Stories, 23), (CinemaxX, Transporter 3, 15), (CinemaxX, Transporter 3, 17), (CinemaxX, Transporter 3, 20), (CinemaxX, Transporter 3, 23), (Neues Studio, Willkommen bei den Sch’tis, 17), (Neues Studio, Willkommen bei den Sch’tis, 20), (CinemaxX, Willkommen bei den Sch’tis, 18)} . 103 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Die Kino-Relation enthält (Kino, Strasse)-Paare, die Film-Relation enthält (Filmtitel, Regisseur, Schauspieler)Paare und die Progr-Relation enthält (Kino, Filmtitel, Uhrzeit)-Paare. Betrachten Sie weiterhin die folgenden drei Formeln: ϕ0 = Kino(x 0 , x 1 ) ϕ1 = Kino(x 0 , x 1 ) ∧ ∀x 1 ∀x 2 ∀x 3 (Film(x 1 , x 2 , x 3 ) → ∃x 2 Progr(x 0 , x 1 , x 2 )) ³ ´ ¡ ¢ ϕ2 = ∀x 3 ∀x 4 ∃x 0 ∃x 1 ∃x 2 (Film(x 0 , x 1 , x 2 ) ∧ Progr(x 3 , x 0 , x 4 ) → ∃x 1 Progr(x 3 , x 1 , x 4 ) ¡ ¢ ∧ Kino(x 0 , x 1 ) ∨ ∃x 2 Film(x 1 , x 2 , x 0 ) (a) Geben Sie zur Anfrage ϕi die Anfrageergebnisse ϕi (K2 ) für i ∈ {0, 1, 2} an. (b) Beschreiben Sie umgangssprachlich die Anfragen ϕ0 , ϕ1 und ϕ2 . Aufgabe 3.12. Formulieren Sie die folgenden umgangssprachlichen Anfragen als ΣK -Formeln: (a) Finde alle Titel von Filmen, die in mindestens zwei Kinos im Programm sind. (b) Welche Schauspieler spielen in Filmen, die in einem Kino zu mindestens zwei Zeiten im Programm sind? Aufgabe 3.13. Basierend auf verschiedenen Lemmas wurde in der Vorlesung der Auswertungsalgorithmus für prädikatenlogische Formeln skizziert (siehe Folie 53). Ergänzen Sie den Algorithmus um Pseudo-Code zur Auswertung von (a) negierten Formeln und (b) universiell quantifizierten Formeln. 3.5 Äquivalenz und Normalform In diesem Abschnitt wollen wir – ähnlich wie bei der Aussagenlogik – zunächst über Äquivalenz und dann über Normalformen sprechen. Die Äquivalenz wird in natürlicher Weise definiert, in völliger Analogie zur Aussagenlogik. Bei den Normalformen ist dies anders: Da Quantoren der wichtigste Bestandteil prädikatenlogischer Formeln sind, orientieren sich die grundlegenden Normalformen für prädikatenlogische Formeln an den in ihnen benutzten Quantoren. Das Koinzidenzlemma hat gezeigt, dass wir uns bei der Interpretation von prädikatenlogischen Formeln allein an deren freien Variablen orientieren brauchen. Außerdem müssen wir sowieso alle freien Variablen belegen, um eine prädikatenlogische Formel interpretieren können. Wir können also ohne Weiteres im Folgenden annehmen, dass bei Belegungen alle prädikatenlogischen Variablen belegt sind. Das führt zu den folgenden Definitionen. Ist S eine Σ-Struktur und β : VPL → S eine prädikationlogische Variablenbelegung, dann heißt das Paar (S, β) eine Σ-Interpretation. Steht I für eine solche Σ-Interpretation und ϕ ∈ β F PL (Σ), dann schreiben wir JϕKI und I |= ϕ für JϕKS bzw. S, β |= ϕ. Wir sagen, zwei Σ-Formeln ϕ und ψ sind äquivalent, falls I |= ϕ genau dann gilt, wenn I |= ψ gilt, und zwar für jede Σ-Interpretation I. Wir schreiben in diesem Fall ϕ ≡ ψ. Beispiel 3.5. 1. Wir betrachten die Formeln x 0 = x 0 und x 1 = x 1 . Beide Formeln sind äquivalent, denn es gilt offensichtlich JϕKS = 1 für alle Σ-Interpretationen, genau wie JψKS = 1 für alle Σ-Interpretationen I gilt. 104 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik 2. Weiterhin betrachten wir ϕ = ∃x 0 P (x 0 ) und ψ = ∃x 1 P (x 1 ). Es gilt für jede Σ-Struktur S und jede Variablenbelegung β sowie jedes a ∈ S: S, β[a/x 0 ] |= ϕ genau dann, wenn S, β[a/x 1 ] |= ψ. Aus der Semantik der Prädikatenlogik folgt damit ϕ ≡ ψ. 3. Andererseits gilt ϕ 6≡ ψ, sofern wir ϕ = ∃x 0 ∃x 1 R(x 0 , x 1 ) und ψ = ∀x 0 ∀x 1 R(x 0 , x 1 ) betrachten. Dazu braucht man nur den Graphen zu betrachten. Unser erstes Ziel ist es, Regeln aufzustellen, die es uns erlauben, Äquvialenz festzustellen. Denn das ist schwieriger als Nicht-Äquivalenz zu belegen: Im ersten Fall muss man alle Interpretationen betrachten; im zweiten Fall ist es lediglich erforderlich, eine Interpretation anzugeben, unter der die Formeln unterschiedlich interpretiert werden. Das wurde auch schon in den obigen Beispielen deutlich. 3.5.1 Aussagenlogische Äquivalenzen Erinnern wir uns an die Motivation für die Einführung der Aussagenlogik: Wir wollten das Zusammenspiel von Aussagen (die wahr oder falsch sein können) untersuchen. Betrachtet man eine feste prädikatenlogische Interpretation, so wird jeder prädikatenlogischen Formel ein Wahrheitswert zugewiesen. Man sollte also annehmen, dass man aus äquivalenten aussagenlogischen Formeln äquivalente prädikatenlogische Formeln erhält, wenn man aussagenlogische Variablen durch prädikatenlogische Formeln ersetzt. Genau das ist auch der Fall, was wir im Folgenden beweisen wollen. Bevor wir aber zum Beweisen schreiten können, müssen wir einige Vorbereitungen treffen. Sei Σ eine Signatur. Eine Σ-Formelsubstitution ist ein eine partielle Funktion VAL 99K F PL (Σ). Sei σ eine Formelsubstitution. Für jede aussagenlogische Formel ϕ ∈ F AL mit vars(ϕ) ⊆ dom(σ) definieren wir das Ergebnis der Anwendung von σ auf ϕ, was wir mit ϕσ bezeichnen. Wir sagen, wie auch in anderen analogen Situationen, σ passt zu ϕ. Die Definition von ϕσ erfolgt per Induktion: Basiszuordnung. Wir setzen 0σ = 0, 1σ = 1. Für X i ∈ dom(σ) setzen wir X i σ = σ(X i ). Für X i 6∈ dom(σ) setzen wir X i σ = X i . Induktionsschritt. Hier setzen wir (¬ϕ)σ = ¬(ϕσ) und (ϕ◦ψ)σ = (ψσ◦ψσ) für ◦ ∈ {∨, ∧, → , ↔} und ϕ, ψ ∈ F AL . Zunächst kann man leicht per Induktion zeigen: Lemma 3.10. Ist σ eine Σ-Formelsubstitution, die zu einer aussagenlogischen Formel ϕ passt, so ist ϕσ eine Σ-Formel. Ohne Beweis. Natürlich ist es egal, ob man eine Interpretation vor oder nach der Anwendung einer Formelsubstitution durchführt. Das wollen wir formal fassen. Ist σ eine Formelsubstitution und β eine S-Belegung für eine Σ-Struktur S, so bezeichnet βσ die aussagenlogische β Belegung definiert durch (βσ)(X i ) = J X i σKS für i ∈ N. Jetzt kann man einfach per Induktion zeigen: 105 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Lemma 3.11. Ist σ eine Σ-Formelsubstitution, die zu einer aussagenlogischen Formel ϕ passt, und ist I = (S, β) eine Σ-Interpretation, dann gilt JϕσKI = JϕKβσ . Ohne Beweis. Daraus ergibt sich sofort: Satz 3.1. Sind ϕ und ψ aussagenlogische Formeln, zu denen die Σ-Formelsubstitution σ passt, und gilt ϕ ≡ ψ, so gilt auch ϕσ ≡ ψσ. Beweis. Sei I = (S, β) eine beliebige Σ-Interpretation. Dann gilt JϕσKI = JϕKβσ Lemma 3.11 βσ = JψK wg. ϕ ≡ ψ = JψσKI Lemma 3.11 . Daraus folgt die Behauptung. Beispiel 3.6. Wir können also zum Beispiel ∃x 0 P (x) ∨ (∃x 1 R(x 0 ) ∧ ¬x 0 = x 1 ) ≡ (¬x 0 = x 1 ∧ ∃x 1 R(x 0 )) ∨ ∃x 0 P (x) aus dem obigen Lemma schließen, denn wir wissen aus der Aussagenlogik X 0 ∨ (X 1 ∧ X 2 ) ≡ (X 2 ∧ X 1 ) ∨ X 0 . 3.5.2 Ersetzungen In der Aussagenlogik haben wir häufig das 2. Ersetzungslemma benutzt, um zu zeigen, dass man Teilformeln durch äquivalente Formeln ersetzen darf, wenn man lediglich an Äquivalenz interessiert ist. Das gilt auch für die Prädikatenlogik. Wir wollen allerdings darauf verzichten, dies zu formalisieren. Stattdessen geben wir die beiden Lemmas an, die wir in diesem Zusammenhang später benötigen. Lemma 3.12. Sind ϕ, ψ, χ ∈ F PL (Σ) und gilt ϕ ≡ χ, so gelten auch ϕ∨ψ ≡ χ∨ψ , ϕ∧ψ ≡ χ∧ψ . Beweis. Wir beweisen die Behauptung für ∨; der andere Fall wird analog bewiesen. Unter den beschriebenen Annahmen können wir für eine beliebige Σ-Interpretation I schließen: I |= ϕ ∨ ψ gdw. I |= ϕ oder I |= ψ Semantik von ∨ gdw. I |= χ oder I |= ψ Annahme gdw. I |= χ ∨ ψ Semantik von ∨. Daraus ergibt sich die Behauptung. Lemma 3.13. Es seien ϕ, ψ ∈ F PL (Σ), i ∈ N und es gelte ϕ ≡ ψ. Dann gilt auch ∃x i ϕ ≡ ∃x i ψ , ∀x i ϕ ≡ ∀x i ψ . Beweis. Ein Beweis kann wie im Fall des vorigen Lemma geführt werden. 106 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik 3.5.3 Quantorenbezogene Äquivalenzen Die im letzten Abschnitt diskutierten Regeln für den Nachweis der Äquivalenz auf der Basis von aussagenlogischen Äquivalenzen waren unmittelbar einsichtig. Interessanter sind jedoch diejenigen, die mit Quantoren zu tun haben. Wir beginnen mit einem sehr einfachen Lemma. Lemma 3.14 (Dualität der Quantoren). Es sei ϕ ∈ F PL (Σ) und i ∈ N. Dann gelten ¬∃x i ϕ ≡ ∀x i ¬ϕ , ¬∀x i ϕ ≡ ∃x i ¬ϕ . Beweis. Wir beweisen nur die erste Äquivalenz; die zweite kann analog bewiesen werden. Sei I = (S, β) eine Σ-Interpretation. Einerseits gilt dann gemäß der Semantik der Prädikatenlogik I |= ¬∃x i ϕ genau dann, wenn S, β[a/x i ] |= ϕ für kein a ∈ S gilt. Das kann man aber auch wie folgt formulieren: Für jedes a ∈ S gilt S, β[a/x i ] 6|= ϕ. Letzteres bedeutet ∀x i ¬ϕ gemäß der Semantik der Prädikatenlogik. Das zweite wichtige Lemma behandelt das Zusammenspiel von Quantoren und Konjunktion sowie Disjunktion. Lemma 3.15. Es seien ϕ, ψ ∈ F PL (Σ), i ∈ N und x i ∉ free(ϕ). Dann gilt ϕ ∨ ∃x i ψ ≡ ∃x i (ϕ ∨ ψ) , ϕ ∨ ∀x i ψ ≡ ∀x i (ϕ ∨ ψ) , ϕ ∧ ∃x i ψ ≡ ∃x i (ϕ ∧ ψ) , ϕ ∧ ∀x i ψ ≡ ∀x i (ϕ ∧ ψ) . Beweis. Wir beweisen nur den ersten Fall. Die Beweise für die anderen Fälle sind analog. Sei I = (S, β) eine Σ-Interpretation. Wir erhalten I |= ϕ ∨ ∃x i ψ genau dann, wenn I |= ϕ gilt oder wenn es ein a ∈ S gibt, für das S, β[a/x i ] |= ψ gilt. Nun gilt für jedes a ∈ S aufgrund des Koinzidenzlemmas I |= ϕ genau dann, wenn S, β[a/x i ] |= ϕ gilt. Also gilt die Aussage im vorletzten Satz genau dann, wenn es ein a ∈ S gibt, für das S, β[a/x i ] |= ϕ oder S, β[a/x i ] |= ψ gilt. Letzteres ist das gleiche wie I |= ∃x i (ϕ ∨ ψ). Abschließend erwähnen wir noch ein Lemma über Quantoren, das häufig sehr nützlich ist, was wir aber in dem nächsten Abschnitt nicht nutzen werden. Lemma 3.16. Es seien ϕ, ψ ∈ F PL (Σ), i ∈ N. Dann gelten ∃x i ϕ ∨ ∃x i ψ ≡ ∃x i (ϕ ∨ ψ) , ∀x i ϕ ∧ ∀x i ψ ≡ ∀x i (ϕ ∧ ψ) . Beweis. Auch hier beweisen wir nur den ersten Fall; der zweite Fall ist dual zum ersten. Unter den gegebenen Bedingungen gilt für jede Σ-Interpretation I = (S, β): I |= ∃x i ϕ ∨ ∃x i ψ genau dann, wenn es a ∈ S gibt, so dass S, β[a/x i ] |= ϕ gilt, oder wenn es b ∈ S gibt, so dass S, β[b/x i ] |= ψ gilt. Letzteres ist gleichbedeutend damit, dass es ein c ∈ S gibt, so dass S, β[c/x i ] |= ϕ oder S, β[c/x i ] |= ψ gilt. Das wiederum ist gleichbedeutend mit I |= ∃x i (ϕ ∨ ψ). Es stellt sich die Frage, ob die Äquivalenzen im letzten Lemma auch für die Kombinationen ∀-∨ und ∃-∧ gelten. Das ist nicht der Fall, wie man sich leicht überlegen kann. 107 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Beispiel 3.7. Man betrachte ∃x 0 P (x 0 )∧∃x 0 ¬P (x 0 ). Offensichtlich gilt ∃x 0 P (x 0 )∧∃x 0 ¬P (x 0 ) 6≡ ∃x 0 (P (x 0 )∧¬P (x 0 )), denn die zweite Formel gilt in keiner Struktur, während man leicht eine Struktur finden kann, in der die erste Formel gilt. Aufgabe 3.14. Sei Σ = {R/1, P /1,Q/2} eine Signatur. Sind die folgenden Formelpaare tatsächlich äquivalent? Begründen Sie Ihre Aussage. (a) ∀x 1 ∃x 2 x 1 = x 2 ≡ ∃x 2 ∀x 1 x 1 = x 2 (b) ∀x 1 ∃x 2 ¬x 1 = x 2 ≡ ∀x 2 ¬∀x 1 x 1 = x 2 (c) ∀x 1 (R(x 0 ) ∧Q(x 0 , x 1 )) ≡ R(x 0 ) ∧ ∀x 1 Q(x 0 , x 1 ) (d) ∀x 1 (R(x 1 ) ↔ P (x 1 )) ≡ ∀x 1 R(x 1 ) ↔ ∀x 1 P (x 1 ) (e) ∃x 1 (P (x 1 ) ↔ R(x 1 )) ≡ ∃x 1 P (x 1 ) ↔ ∃x 1 R(x 1 ) Aufgabe 3.15. Sei Σ eine Signatur und ϕ ∈ F PL (Σ). Beweisen Sie, dass gilt: ∀x 0 ∀x 1 ϕ ≡ ∀x 1 ∀x 0 ϕ 3.5.4 Pränexe Normalform Die wichtigste Normalform für prädikatenlogische Formeln trennt die Quantifizierungen von den anderen Teilen einer Formel. Das ist sinnvoll, weil wichtige Eigenschaften einer Formel häufig von ihrer Quantorenstruktur abhängen und man diese gut durch die Trennung der Quantoren vom Rest der Formel erkennen kann. Eine prädikatenlogische Formel heißt quantorenfrei, wenn in ihr keine Quantoren auftreten. Die Menge dieser bezeichnen wir mit QF(Σ). Die Menge der prädikatenlogischen Σ-Formeln in pränexer Normalform, die wir mit PNF(Σ) bezeichnen, ist induktiv wie folgt definiert. Basismenge. Alle quantorenfreien Σ-Formeln sind in pränexer Normalform. Sie haben Quantorenrang 0. Induktionsregeln. Ist i ∈ N und ϕ ∈ PNF(Σ), so gilt ∃x i ϕ ∈ PNF(Σ) sowie ∀x i ϕ ∈ PNF(Σ). Ist n der Quantorenrang von ϕ, so ist n + 1 der Quantorenrang von ∃x i ϕ und ∀x i ϕ. Den Quantorenrang einer Formel ϕ in pränexer Normalform bezeichnen wir mit rank(ϕ). Mit anderen Worten: Eine Formel in pränexer Normalform ist von der Form Q 0 x i 0 Q 1 x i 1 . . .Q n−1 x i n−1 ψ , (3.1) wobei ψ eine quantorenfreie Formel ist und jedes Q j ein All- oder ein Existenzquantor ist. Dann heißt Q 0 x i 0 Q 1 x i 1 . . .Q n−1 x i n−1 der Quantorenpräfix der Formel und {x i 0 , . . . , x i n−1 } die Menge der quantifizierten Variablen, die wir mit quant(ϕ) bezeichnen, sofern ϕ für die Formel steht. Beispiel 3.8. Die Formel ∃x 0 ∀x 1 (P (x 0 ) ∧ R(x 0 , x 1 )) ist in pränexer Normalform, während die Formel ∃x 0 (P (x 0 ) ∧ ∀x 1 R(x 0 , x 1 )) nicht in pränexer Normalform ist. Beide Formeln sind jedoch äquivalent. Unser Ziel ist es, zu jeder prädikatenlogischen Formel eine äquivalente Formel in pränexer Normalform zu finden. Das benötigt einige Vorbereitung. 108 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Beispiel 3.9. Sei ∃x 0 P (x)∧∃x 0 ¬P (x 0 ). Es ist leicht einzusehen, dass diese Formel äquivalent zu ∃x 0 ∃x 1 (P (x 0 ) ∧ ¬P (x 1 )) ist und einem kaum Alternativen zur Verfügung stehen. Das letzte Beispiel zeigt, dass wir – sofern wir eine induktive Vorgehensweise verfolgen wollen – auch Umbebenennungen durchführen müssen: Die gegebene Formel hat zwei Teilformeln, in denen dieselbe Variable auftritt. In der Formel in pränexer Normalform sind beide Teilformeln kombiniert worden, allerdings ist die Rolle der Variablen in der zweiten Teilformel von einer anderen Variablen übernommen worden. Unter einer Umbenennung wollen wir eine partielle Funktion π : VPL 99K VPL verstehen, die eine Permutation ist. Ist eine solche Funktion und eine prädikatenlogische Formel ϕ gegeben, so ist ϕπ die Formel, die aus ϕ dadurch entsteht, dass man jedes Vorkommen einer Variablen x i ∈ dom(π) durch π(x i ) ersetzt. Eine präzise induktive Definition folgt später. Beispiel 3.10. Ist ϕ = ∀x 0 ∃x 1 R(x 0 , x 1 ) und π gegeben durch π(x 0 ) = x 2 und π(x 2 ) = x 0 – es werden also einfach x 0 und x 2 verstauscht –, dann ist ϕπ = ∀x 2 ∃x 1 R(x 2 , x 1 ). Die Wirkung einer Umbenennung auf eine Belegung ist schnell definiert. Ist π eine Umbenennung und β eine S-Belegung, so ist βπ die S-Belegung, für die gilt: ( β(π(x i )) , falls x i ∈ dom(π), (βπ)(x i ) = β(x i ) , sonst. Lemma 3.17. Ist ϕ eine prädikatenlogische Σ-Formel, π eine Umbenennung und (S, β) eine Σ-Interpretation, so gilt β βπ JϕπKS = JϕKS . Um dieses Lemma beweisen zu können, brauchen wir eine exakte Definition der Wirkung einer Umbenennung. Deshalb vollziehen wir im Beweis auch die Definition. Beweis. Beweis per Induktion mit gleichzeitiger Definition der Wirkung einer Umbenennung. Als Vorbereitung definieren wir t π für jeden Σ-Term t und jede Umbenennung π. Gleichβπ β zeitig zeigen wir für jede Σ-Interpretation I, dass Jt KS = Jt πKS gilt. Interessant ist nur der Fall t = x i . Wir führen eine Fallunterscheidung durch. Ist x i ∈ dom(π), so gilt t π = π(x i ). Daraus erhalten wir dann: βπ βπ Jt KS = Jx i KS = (βπ)(x i ) Semantik der Prädikatenlogik = β(π(x i )) Definition von βπ β = Jπ(x i )KS β = Jt πKS . Semantik der Prädikatenlogik Im Induktionsbeweis für die Formeln ist der interessante Fall der der Quantoren. Wir behandeln den Existenzquantor. Sei also ϕ = ∃x i ψ. Wir führen wieder eine Fallunterscheidung durch. 109 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik 1. Fall, x i ∈ dom(π). Wir setzen ϕπ = ∃π(x i )ψπ, wobei wir annehmen dürfen, dass ψπ bereits definiert wurde. Jetzt können wir wie folgt argumentieren: Es gilt S, βπ |= ϕ genau dann, wenn es ein a ∈ S mit S, (βπ)[a/x i ] |= ψ gilt. Sei j ∈ N beliebig. Dann gilt falls i = j , a , (βπ)[a/x i ](x j ) = β(π(x j )) , β(x ) , j falls x j ∈ dom(π) und i 6= j , sonst. Also gilt (βπ)[a/x i ] = β[a/x i ]π. Mit anderen Worten, die obige Bedingung ist erfüllt genau dann, wenn es ein a ∈ S mit S, β[a/x i ]π |= ψ gilt. Aus der Induktionsvoraussetzung erhalten wir, dass letzters gleichbedeutend mit S, β[a/x i ] |= ψπ ist, so dass wir schließlich S, β |= ∃x i ψ erhalten. Der schwierigste Teil bei der Umwandlung von Formeln in pränexe Normalform betrifft die Verbindung von Formeln in pränexer Normalform durch Disjunktion oder Konjunktion. Ein entsprechendes Lemma ziehen wir vor: Lemma 3.18. Sind ϕ, ψ ∈ PNF(Σ), so gibt es χ∨ , χ∧ ∈ PNF(Σ) mit ϕ ∨ ψ ≡ χ∨ , ϕ ∧ ψ ≡ χ∧ . Beweis. Der Beweis erfolgt per Induktion über rank(ϕ) + rank(ψ); wir beweisen wie üblich nur den Fall für ∨. Induktionsanfang, rank(ϕ) + rank(ψ) = 0. Dann gilt ϕ, ψ ∈ QF(Σ) und wir können χ∨ = ϕ ∨ ψ wählen. Induktionsschritt. Seien ϕ, ψ ∈ QF(Σ), i ∈ N und Q ∈ {∃, ∀}. Wir müssen zeigen, dass es zu Qx i ϕ ∨ ψ und ϕ ∨ Qx i ψ äquivalente Formeln in pränexer Normalform gibt. Wir beschränken uns auf ∃x i ϕ ∨ ψ, der andere Fall kann analog behandelt werden. Sei j derart, dass x j ∉ vars(ϕ) ∪ vars(ψ). Wir betrachten die Umbenennung π, bei der x i und x j vertauscht werden, und setzen ϕ0 = ϕπ. Wir behaupten zunächst, dass ∃x i ϕ ≡ ∃x j ϕ0 gilt. Für jede Σ-Interpretation (S, β) und jedes a ∈ S gilt: S, β[a/x i ] |= ϕ gdw. gdw. gdw. S, β[a/x i , a/x j ] |= ϕ S, β[a/x j , a/x i ] |= ϕ S, β[a/x j ] |= ϕ 0 da x j ∉ free(ϕ), 0 Lemma 3.17, da x i ∉ free(ϕ)0 . Bei der Anwendung von Lemma 3.17 wird die oben definierte Umbenennung π genutzt. Aus der Semantik des Existenzquantors folgt nun die Behauptung. Nach der Induktionsannahme gibt es eine zu ϕ0 ∨ψ äquivalente Formel in pränexer Normalform, etwa χ. Insgesamt ergibt sich: ∃x i ϕ ∨ ψ ≡ ∃x j ϕ0 ∨ ψ Lemma 3.12 0 ≡ ∃x j (ϕ ∨ ψ) Lemma 3.15 ≡ ∃x j χ Lemma 3.13 . Es bleibt noch zu bemerken, dass die letzte Formel in pränexer Normalform ist. 110 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Jetzt sind wir bereit für den Beweis des gewünschten Satzes: Satz 3.2. Zu jeder Formel ϕ ∈ F PL (Σ) gibt es eine äquivalente Formel ψ ∈ PNF(Σ), also in pränexe Normalform. Beweis. Per Induktion definieren wir zwei Funktion 0 : F PL (Σ) → PNF(Σ) und : F PL (→)PNF(Σ), so dass für alle ϕ ∈ F AL sowohl ϕ ≡ ϕ0 wie auch ¬ϕ ≡ ϕ gilt. Induktionsanfang. Ist ϕ eine atomare Formel, so können wir ϕ0 = ϕ und ϕ = ¬ϕ wählen. Induktionsschritt. Ist ϕ = ¬ψ, so können wir ϕ0 = ψ und ϕ = ψ0 wählen, denn es gilt ¬¬ψ ≡ ψ und ¬¬ϕ ≡ ϕ nach Satz 3.1. Ist ϕ = ψ ∨ χ, so können wir eine Formel für ϕ0 wählen, deren Existenz nach Lemma 3.18 garantiert ist. Für ϕ wählen wir eine Formel, die nach Lemma 3.18 für ψ∧χ existiert. Dabei benutzen wir Lemma 3.12. Ist ϕ derart, dass ϕ = ψ ∧ χ gilt, gehen wir analog vor. Konditional und Bikonditional können durch Umschreibung behandelt werden. Ist ϕ so, dass ϕ = ∃x i ϕ gilt, so können wir nach Lemma 3.13 einfach ∃x i ϕ0 wählen. Außerdem können wir ϕ = ∀x i ϕ wählen, was durch Lemma 3.14 gerechtfertigt ist. Die obigen Lemmas, genauer: deren Beweise, kann man nutzen, um einen Algorithmus für die Umwandlung in pränexe Normalform zu nutzen. Das Ergebnis ist auf den Folien 54 und 55 zu sehen. Aufgabe 3.16. Sei Σ = {R/1, P /1} eine Signatur. Betrachten Sie die prädikatenlogische Formel ϕ = ∀x 0 ∃x 1 ∀x 2 (P (x 0 ) → R(x 2 ))∨∀x 3 ∃x 0 ¬P (x 0 ). Verwenden Sie den Algorithmus aus der Vorlesung, um für ϕ eine äquivalente prädikatenlogische Formel in pränexer Normalform zu finden. Geben Sie eine allgemeine umgangssprachliche Beschreibung an, wie eine Formel von dem Algorithmus umgeformt wird. Aufgabe 3.17. (a) In der Vorlesung wurde der PNF-Algorithmus für prädikatenlogische Formeln skizziert (siehe Folien 54 und 55). Vervollständigen Sie den Pseudo-Code. (b) Sei Σ = {R/1, P /1,Q/2} eine Signatur. Bringen Sie folgende Formeln in die pränexe Normalform. 1) R(x 0 ) ∧ ¬∃x 0Q(x 0 , x 0 ) 2) ¬∀x 0 R(x 0 ) ∧ ∀x 0 P (x 0 ) 3) ¬∀x 0 R(x 0 ) ∧ ∀x 1 (P (x 1 ) ∨ ∃x 0Q(x 0 , x 1 )) 4) ¬∀x 0 R(x 0 ) → ∀x 1 (P (x 1 ) ↔ ∃x 0Q(x 0 , x 1 )) 3.6 Das Gültigkeitsproblem Genau wie in der Aussagenlogik sagen wir, dass eine prädikatenlogische Σ-Formel allgemeingültig ist, wenn I |= ϕ für alle Σ-Interpretationen I gilt. Erfüllbar heißt eine solche Formel, wenn es eine Σ-Interpretation I gibt, für die I |= ϕ gilt. Also können wir festhalten: 111 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Umwandlung in PNF PNF(ϕ) Vorbedingung: ϕ ∈ FPL (Σ). if ϕ atomar return ϕ if ϕ = ¬ψ then return NegPNF(ψ) if ϕ = ϕ0 ∨ ϕ1 then return DisjPNF(PNF(ϕ0 ), PNF(ϕ1 )) if ϕ = ϕ0 ∧ ϕ1 then return KonjPNF(PNF(ϕ0 ), PNF(ϕ1 )) ... if ϕ = ∃xi ψ then return ∃xi PNF(ψ) if ϕ = ∀xi ψ then return ∀xi PNF(ψ) Nachbedingung: return ∈ PNF (Σ) und return ≡ ϕ. NegPNF(ϕ) Vorbedingung: ϕ ∈ FPL (Σ). if ϕ atomar return ¬ϕ if ϕ = ¬ψ then return PNF(ψ) if ϕ = ϕ0 ∨ ϕ1 then return KonjPNF(NegPNF(ϕ0 ), NegPNF(ϕ1 )) ... if ϕ = ∃xi ψ then return ∀xi NegPNF(ψ) if ϕ = ∀xi ψ then return ∃xi NegPNF(ψ) Nachbedingung: return ∈ PNF (Σ) und return ≡ ¬ϕ. Folie 54 Bemerkung 3.1. Eine prädikatenlogische Formel ϕ ist allgemeingültig genau dann, wenn ¬ϕ nicht erfüllbar ist. Wir können jede Formel genau einer der drei folgenden Klassen zuordnen: • nicht erfüllbar: es gibt keine erfüllende Interpretation, • erfüllbar, aber nicht allgemeingültig: es gibt eine erfüllende Interpretation, aber auch eine nicht erfüllende, • allgemeingültig: jede Interpretation ist erfüllend. Beispiele sind auf Folie 56 zu finden. Wir wollen auf die Suche nach einem Entscheidungsverfahren für Allgemeingültigkeit gehen. Die Anwort wird sein, dass es ein solches nicht gibt. Dazu müssen wir zeigen, dass kein Algorithmus dieses Problem zu entscheiden vermag. Was wiederum heißt, dass wir gegen alle möglichen Algorithmen argumentieren müssen. Das ist nicht einfach; man benötigt einen Hintergrund aus der Berechenbarkeitstheorie, den wir hier wegen seines Umfangs nicht zur Verfügung stellen können. Wir benutzen deshalb ein klassisches Ergebnis aus der Berechenbarkeitstheorie. 112 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Umwandlung in PNF, Teil II DisjPNF(ϕ, ψ) Vorbedingung: ϕ, ψ ∈ PNF (Σ). if ϕ, ψ ∈ QF (Σ) return ϕ ∨ ψ if ϕ ∈ QF (Σ) let (ϕ, ψ) = (ψ, ϕ) if ϕ = ∃xi ϕ0 let V = vars(ϕ) ∪ vars(ψ) let j = max{k : xk ∈ V } + 1 let ϕ0 = Swap(i, j, ϕ) let χ = DisjPNF(ϕ0 , ψ) return ∃xj χ ... Nachbedingung: return ∈ PNF (Σ) und return ≡ ϕ ∨ ψ. Swap(i, j, ϕ) Vorbedingung: i, j ∈ N, ϕ ∈ FPL (Σ). ... Nachbedingung: return = ϕπ mit π(xi ) = xj und π(xj ) = xi . Folie 55 Aufgabe 3.18. Welche der Formeln sind unerfüllbar, erfüllbar oder allgemeingültig? Begründen Sie Ihre Aussage. (a) ∀x 1 ∀x 2 ∃x 3 (¬x 1 = x 2 → (x 1 < x 2 ∧ x 2 < x 3 )) (b) ∃x 1 ∀x 2 ¬x 1 = x 2 (c) ∃x 0 f (x 0 ) = x 0 (d) ∀x 1 ∀x 2 ∀x 3 ((x 1 = x 2 ∧ x 2 = x 3 ) → x 1 = x 3 ) Aufgabe 3.19. Welche der Formeln sind unerfüllbar, erfüllbar oder allgemeingültig? Begründen Sie Ihre Aussage. (a) ∃x 0 f (x 0 ) = g (x 0 ) (b) ∃x 1 ∀x 2 (R(x 1 ) → R(x 2 )) (c) ∀x 1 ∃x 2 (R(x 1 ) → R(x 2 )) (d) ∀x 0 ∀x 1 (R(x 0 , x 1 ) ↔ R(x 1 , x 0 )) ∧ ∃x 0 ∀x 1 (¬R(x 0 , x 1 ) ∧ R(x 1 , x 0 )) 113 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Erfüllbarkeit und Gültigkeit unerfüllbar Jeder Knoten besitzt keine Nachbarn und es existiert eine Kante: ∀x0 ¬∃x1 R(x0 , x1 ) ∧ ∃x0 ∃x1 R(x0 , x1 ) erfüllbar, aber nicht allgemeingültig Jeder Knoten besitzt keine Nachbarn: ϕ = ∀x0 ∀x1 ¬R(x0 , x1 ) |= ϕ 6|= ϕ allgemeingültig Wenn es eine Kante gibt, so gibt es eine Schleife oder zwei Knoten: ∃x0 ∃x1 R(x0 , x1 ) → ∃x0 R(x0 , x0 ) ∨ ∃x0 ∃x1 (x0 6= x1 ) Folie 56 3.6.1 Das Postsche Korrespondenzproblem Das Postsche Korrespondenzproblem (PCP), genauer: eine Variante, ist das folgende Problem. Eine Instanz des Problems ist eine Folge F = p 0 , . . . , p n von Paaren p i = (u i , v i ), deren Komponenten, u i und v i , jeweils nicht leere Zeichenreihen über dem Alphabet A = {a, b, . . . , h} sind. Gesucht ist eine Folge i 0 , . . . , i r von Zahlen i j ≤ n, die folgende Eigenschaft besitzt: ui 0 ui 1 . . . ui r = v i 0 v i 1 . . . v i r . (3.2) Eine solche Folge von Indizes heißt Lösungsfolge. Wir könnnen die Frage, ob eine Instanz positiv ist, auch anders formulieren. Wir nennen die Paare (u i , v i ) Ausgangspaare. Die Menge aller erzeugbaren Paare ist induktiv wie folgt definiert: (i) Jedes Ausgangspaar ist ein erzeugbares Paar. (ii) Ist (u, v) ein erzeugbares Paar und i ≤ n, so ist (uu i , v v i ) auch ein erzeugbares Paar. Dann gilt: 114 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Bemerkung 3.2. Eine PCP-Instanz ist positiv genau dann, wenn es unter den erzeugbaren Paaren eines der Form (u, u) gibt. Beispiele hierzu sind auf Folie 57 gegeben. Das Postsche Korrespondenzproblem positive Instanz Paare: (bab,a), (ha,ba), (bbb,a), (hba, hb), (cdf, b), (a, bcdfbaba) Lösungsfolge: 3, 0, 4, 0, 5 Lösungswort: (hbababcdfbaba, hbababcdfbaba) h b a b a b c d f b a b a h b a b a b c d f b a b a negative Instanz Paare: (bab,ba), (a,b), (c,d) Nur Anfang mit (bab,ba) möglich. Dann Fortsetzung nur durch (a,b). Dann ist das eine Teilergebnis immer um eins länger als das andere. Folie 57 Der Satz, den wir im weiteren Verlauf nutzen wollen, ist nun der folgende. Satz 3.3. Das Postsche Korrespondenzproblem ist nicht entscheidbar. Mit anderen Worten, es gibt keinen Algorithmus, der zu jeder Instanz des PCP richtig erkennt, ob es sich um eine positive oder negative Instanz handelt! Wir wollen mit Hilfe des obigen Satzes nachweisen, dass das Gültigkeitsproblem für prädikatenlogische Formeln unentscheidbar ist. Die Idee ist die folgende: Können wir zeigen, dass es einen Algorithmus A gibt, der zu jeder Instanz (u, v) eine prädikatenlogische Formel ϕu,v liefert, die genau dann gültig ist, wenn (u, v) lösbar ist, dann kann es keinen Algorithmus geben, der das Gültigkeitsproblem löst. Gäbe es einen solchen, etwa B, so könnten wir einen Algorithmus für das PCP konstruieren: 1. Gegeben F = p 0 , . . . , p n , bestimme ϕF gemäß A. 115 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik 2. Nutze B, um die Lösung (»ja« oder »nein«) zu ϕF bestimmen. (Diese ist auch die Antwort auf die Frage nach der Lösbarkeit von F .) 3. Gib die gefundene Lösung aus. Wir brauchen uns also nur noch Gedanken darüber zu machen, wie wir auf eine algorithmische Weise von F zu ϕF kommen. Eine solche Transformation nennt man eine Reduktion vom Postschen Korrespondenzproblem auf das Gültigkeitsproblem. 3.6.2 Reduktion des PCP auf das Gültigkeitsproblem Wir müssen uns zunächst für eine geeignete Signatur ΣPCP entscheiden. Um das zu tun, sollten wir eine Vorstellung davon haben, was wir uns unter den Elementen der Trägermengen vorstellen. Im Zusammenhang des PCP erscheint es sinnvoll, sich unter den Elementen der Trägermenge Wörter vorzustellen. Dann bietet es sich an, in der Signatur Symbole vorzusehen, mit deren Hilfe wir ein Wort um einen bestimmten Buchstaben verlängern können. Deshalb nehmen wir die Funktionssymbole f a //1, . . . , f h //1 in ΣPCP auf. Unter dem Term f a ( f b ( f a ( f h (x)))) stellen wir uns also das Element der Trägermenge vor, das aus dem Element, das mit x belegt ist, dadurch entsteht, das wir die Zeichenreihe haba anhängen. Außerdem möchten wir auf das leere Wort zugreifen. Dafür fügen wir die Konstante e zur Signatur hinzu. Schließlich interessieren wir uns für die erzeugbaren Paare. Dafür werden wir ein zweistelliges Prädikat P /2 nutzen. Insgesamt erhalten wir ΣPCP = {e, P /2, f a //1, . . . , f h //1} . Zu jeder PCP-Instanz F gibt es eine besonders interessante ΣPCP -Struktur, die wir mit SF bezeichnen wollen: • S F = Menge der Zeichreihen über A, • e SF = leere Zeichenreihe, S • f a F (u) = ua für jede Zeichenreihe u und jedes a ∈ A, • P SF = {(u, v) : (u, v) ist erzeugbares Paar}. Diese Struktur besitzt offensichtliche Eigenschaften, zu deren Formulierung wir eine Abkürzung nutzen wollen. Ist u = a 0 . . . a m mit a i ∈ A, so stehe f u (·) für f an ( f an−1 (. . . f a0 (t ))) . Lemma 3.19. Sei F eine PCP-Instanz. 1. Sei ϕ(i) F = ^ P ( f ui (e), f v i (e)) . i ≤n Dann gilt SF |= ϕ(i) F . 116 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik 2. Sei ϕ(ii) F = ∀x 0 ∀x 1 (P (x 0 , x 1 ) → ^ P ( f ui (x 0 ), f v i (x 1 ))) . i ≤n Dann gilt SF |= ϕ(ii) F . 3. Die Instanz F ist positiv genau dann, wenn SF |= ∃x 0 P (x 0 , x 0 ) gilt. Beweis. Die Behauptungen lassen sich leicht unter Benutzung der Definition der erzeugbaren Paare und Bemerkung 3.2 beweisen. Nützlich ist es, vorab zu zeigen, dass für alle β[u/x 0 ] Zeichenreihen u und v über A gilt: J f v (x 0 )KS = uv gilt. Das wiederum beweist man per F Induktion über die Länge von v nach, weil – streng gesehen – f v per Induktion über die Länge von v definiert wird. Nun können wir alles zusammensetzen: (ii) ϕF = ϕ(i) F ∧ ϕF → ∃x 0 P (x 0 , x 0 ) . Lemma 3.20. Ist F eine PCP-Instanz, so sind die beiden folgenden Aussagen äquivalent: (A) F ist eine positive Instanz. (B) ϕF ist allgemeingültig. Beweis. Aus (A) folgt (B). Sei F eine positive PCP-Instanz. Wir müssen zeigen, dass dann jede ΣPCP -Interpretation S die Formel ϕF erfüllt. Mit anderen Worten: Wir nehmen an, dass (ii) S |= ϕ(i) F und S |= ϕF gelten, und zeigen, dass dann auch S |= ∃x 0 P (x 0 , x 0 ) gilt. Wir behaupten zunächst, dass S |= P ( f u (e), f v (e)) für alle erzeugbaren Paare (u, v) gilt. Diese Behauptung lässt sich leicht per Induktion zeigen: Den Induktionsanfang beweist man mit Hilfe von S |= ϕ(i) F , den Induktionsschritt führen wir im Detail aus. Die Induktionsannahme ist, dass (u, v) ein erzeugbares Paar ist und S |= P ( f u (e), f v (e)) gilt. Außerdem sei (u i , v i ) ein beliebiges Ausgangspaar. Wir setzen nun u 0 = J f u (e)KS und v 0 = J f v (e)KS . Dann ergibt sich aus der Induktionsannahme S, β[u 0 /x 0 , v 0 /x 1 ] |= P (x 0 , x 1 ). 0 0 Damit ergibt sich aus ϕ(i) F und der Semantik der Prädikatenlogik, dass S, β[u /x 0 , v /x 1 ] |= P ( f ui (x 0 ), f v i (x 1 )) gilt. Daraus ergibt sich mit dem Substitutionslemma für quantorenfreie Formeln (später!), dass S |= P ( f ui ( f u (e)), f v i ( f v (e))) gilt. Daraus folgt die Behauptung, denn f ui ( f u (e)) = f uui (e) und f v i ( f v (e)) = f v v i (e). Aus Bemerkung 3.2 erhalten wir, dass es eine Zeichenreihe u gibt, für die (u, u) ein erzeugbares Paar ist. Es gilt also S |= P ( f u (e), f u (e)), das heißt, S, β[J f u (e)KS /x 0 ] |= P (x 0 , x 0 ). Daraus ergibt sich S |= ∃x 0 P (x 0 , x 0 ). Aus (B) folgt (A). Folgt direkt aus Lemma 3.19. Abschließend müssen wir uns nur noch überlegen, dass es einen Algorithmus gibt, der zu gegebener PCP-Instanz F die Formel ϕF bestimmt. Dass dies gilt, ist aber offensichtlich. Wir können also festhalten: Folgerung 3.1. Das Gültigkeitsproblem für prädikatenlogische Formeln (ohne Gleicheiheit!) in der Signatur ΣPCP ist unentscheidbar. 117 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Daraus ergibt sich mit Bemerkung 3.1, dass auch das Erfüllbarkeitsproblem nicht entscheidbar ist: Folgerung 3.2. Das Erfüllbarkeitsproblem für prädikatenlogische Formeln (ohne Gleichheit!) in der Signatur ΣPCP ist unentscheidbar. Aufgabe 3.20. Betrachten Sie die beiden folgenden PCP-Instanzen: F 1 = (ac, ab), (ba, bc), (abb, ac) F 2 = (aaaa, aaa), (aa, aaaaa) Geben Sie zu den beiden Instanzen jeweils die entsprechende prädikatenlogische Formel ϕFi an. Überlegen Sie sich, ob die PCP-Instanzen eine Lösung besitzen. Konstruieren Sie in beiden Fällen Modelle der Formel. Finden Sie gegebenenfalls eine Struktur, die kein Modell ist. 3.6.3 Termsubstitutionen Sei Σ eine Signatur. Eine partielle Funktion σ : VPL 99K T (Σ) heißt Σ-Termsubstitution. Diese sind komplizierter zu handhaben, als die Substitutionen, die wir bisher behandelt haben, wie die beiden folgenden Beispiele zeigen. Beispiel 3.11. Wir betrachten die Formel ∃x 0 x 0 = c, die offensichtlich allgemeingültig ist. Wenn wir nun x 0 durch s(c) ersetzen, so erhalten wir ∃x 0 s(c) = c, was sicherlich keine allgemeingültige Formel ist. Es gibt sogar Strukturen, in denen ϕ0 unter keiner Belegung wahr ist, so dass wir nicht hoffen können, ein Substitutionslemma der üblichen Art beweisen zu können. Der springende Punkt im vorigen Beispiel ist der, dass eine Variable, die im Wirkungsbereich eines Quantors liegt, ersetzt wurde. Beispiel 3.12. Wir betrachten die Formel ∃x 1 ¬(x 1 = x 0 ). Ersetzt man in dieser x 0 durch x 1 , so entsteht eine nicht erfüllbare Aussage, während die ursprüngliche Formel in allen Interpretation gilt, in denen die Struktur mindestens zwei Elemente besitzt. Hier ist der springende Punkt der, dass eine Variable in einem Substituenten in den Wirkungsbereich eines Quantors gebracht wird. Wir treffen deshalb zwei Vorkehrungen: 1. Wir führen Substitutionen wie im ersten Fall nicht durch. 2. Wir verbieten Substitutionen wie im zweiten Fall. Wir beginnen allerdings mit der induktiven Definition von t σ für einen Σ-Term t und eine Termsubstitution σ. Induktionsanfang. Ist t = x i , so ist t σ = σ(x i ), falls x i ∈ dom(σ), ansonsten ist t σ = x i . Ist c ∈ Σ, so ist t σ = c. Induktionsschritt. Ist t = f (t 0 , . . . , t n−1 ) mit f //n ∈ Σ und t i ∈ T (Σ) für alle i < n, so ist t σ = f (t 0 σ, . . . , t n−1 σ). 118 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Nun definieren wir induktiv passende Substitutionen und deren Wirkung. Induktionsanfang. Ist ϕ von der Gestalt t 0 = t 1 , so passt jede Substitution σ zu ϕ und ϕσ ist von der Gestalt t 0 σ = t 1 σ. Ist ϕ = P (t 0 , . . . , t n−1 ), so passt auch jede Substitution σ zu ϕ und es ist ϕσ = P (t 0 σ, . . . , t n−1 σ). Induktionsschritt. Ist ϕ = ϕ0 ∨ ϕ1 , so ist ϕσ = ϕ0 σ ∨ ϕ1 σ. Die Substitution passt zu ϕ, sofern sie zu ϕ0 und ϕ1 passt. Für die anderen booleschen Junktoren verfahren wir analog. Ist ϕ = Qx i ψ für einen Quantor Q, so setzen wir zunächst σ0 = σ|VPL \{xi } . Die Substitution σ passt zu ϕ, falls σ0 zu ψ passt und x i ∉ vars(σ(x j )) für jedes x j ∈ free(ϕ) gilt. Dann setzen wir ϕσ = Qx i ψσ0 . Wir möchten – wie wir das von anderen Substitutionsbegriffen her kennen – ein geeignetes Substitutionslemma definieren. Dazu legen wir zunächst fest, wie eine Termsubstitution auf eine Variablenbelegung wirkt. Ist (S, β) eine Σ-Interpretation und σ eine Termsubstitution, so definieren wir die Sβ Belegung βσ durch (βσ)(x i ) = Jx i σKS . Wir können nun wie üblich beweisen: Lemma 3.21 (Substitutionslemma für Termsubstitutionen). Sei Σ eine Signatur, (S, β) eine Σ-Interpretation, und σ eine Σ-Termsubstitution. 1. Ist t ein Σ-Term, so gilt β βσ Jt σKS = Jt KS . 2. Ist ϕ eine Σ-Formel und passt σ zu ϕ, so gilt S, β |= ϕσ gdw. S, βσ |= ϕ . Beweis. Der Beweis erfolgt per Induktion. Für Terme ist er besonders einfach, ebenso für die atomaren Formeln und die booleschen Junktoren. Interessant ist der Fall der Quantoren. Sei also ϕ = ∃x i ψ. Wir nehmen zunächst an, dass S, β |= ϕσ gilt. Dann existiert ein a ∈ S, so dass S, β[a/x i ] |= ψσ0 gilt, wobei σ0 durch σ0 = σ|VPL \{xi } gegeben ist. Das ist nach Induktionsvoraussetzung äquivalent zu S, (β[a/x i ])σ0 |= ψ. Da σ0 nicht in x i definiert ist und σ zu ϕ passt, gilt (β[a/x i ])σ0 (x j ) = (βσ0 )[a/x i ](x j ) für alle x j ∈ free(ψ) und für j = i . Außerdem gilt (βσ0 )[a/x i ] = (βσ)[a/x i ], da sich σ und σ0 nur an x i unterscheiden. Damit gilt nach dem Koinzidenzlemma S, (βσ)[a/x i ] |= ψ, was gleichbedeutend mit S, βσ |= ∃x i ψ ist. Die andere Richtung kann in ähnlicher Weise bewiesen werden. 3.6.4 Termstrukturen und Termmodelle Der Einfachheit halber betrachten wir bis auf Weiteres prädikatenlogische Formeln ohne Gleichheitszeichen; diese sind einfacher zu behandeln. Außerdem nehmen wir an, dass alle betrachteten Signaturen mindestens ein Konstantensymbol enthalten, damit die Menge der Terme ohne Variablen nicht leer ist. 119 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Sei Σ eine solche Signatur. Ein Σ-Grundterm ist ein Element von T (Σ), in dem keine Elementvariablen vorkommen. Die Menge dieser Terme bezeichnen wir mit T 0 (Σ). Eine ΣGrundformel ist eine Formel der Gestalt P (t 0 , . . . , t n−1 ) mit P /n ∈ Σ und t 0 , . . . , t n−1 ∈ T 0 (Σ). 0 (Σ). Die Menge aller dieser Formeln bezeichnen wir mit F PL Eine Σ-Struktur T heißt Σ-Termstruktur, falls Folgendes gilt: • Die Trägermenge von T besteht aus allen Σ-Grundtermen, das heißt, T = T 0 (Σ). • Es gilt c T = c für alle c ∈ Σ. • Es gilt f T (t 0 , . . . , t n−1 ) = f (t 0 , . . . , t n−1 ) für alle f //n ∈ Σ und t 0 , . . . , t n−1 ∈ T 0 (Σ). Nicht vorgegeben ist bei einer Termstruktur also, wie die Relationssymbole zu interpretieren sind. Beispiel 3.13. Wir betrachten Σ = {z, s//1}. Dann gibt es genau eine Σ-Termstruktur. Ihre Elemente sind von der Form s(s(s(. . . (s(z)) . . . ))), man kann sie also als natürliche Zahlen betrachten. Die Interpretation der Konstanten z ist dann die Zahl 0 und die Interpretation der Funktion s die Nachfolgerfunktion. Wir zeigen nun, dass jede Aussage in pränexer Normalform, in der keine Existenzquantoren vorkommen, – eine sogenannte universelle Aussage – ein Modell besitzt, das eine Termstruktur ist. Solche Modelle wollen wir als Termmodelle bezeichnen. Satz 3.4 (Existenz von Termmodellen). Sei Σ eine Signatur und ϕ eine universelle Aussage. Wenn ϕ ein Modell besitzt, dann auch ein Termmodell. Beweis. Sei ϕ eine universelle Aussage, das heißt, ϕ ist von der Form ∀x i 0 . . . ∀x i n−1 ψ , wobei ψ quantorenfrei ist. Sei S ein Modell von ϕ, das heißt, S |= ϕ. Wir konstruieren ein Termmodell T wie folgt. Für jedes P /n ∈ Σ und Grundterme t 0 , . . . , t n−1 legen wir fest: (t 0 , . . . , t n−1 ) ∈ P T gdw. S |= P (t 0 , . . . , t n−1 ) . Außerdem definieren wir zu jeder T-Belegung β : VPL → T 0 (Σ) eine S-Belegung βS durch βS (x i ) = Jβ(x i )KS . Wir zeigen per Induktion, dass für jede T-Belegung β : VPL → T 0 (Σ) und jede quantorenfreie Formel χ gilt: T, β |= χ gdw. S, βS |= χ . Daraus ergibt sich sofort T |= ϕ. Induktionsanfang. Wenn χ eine atomare Formel ist, dann ist χ von der Form P (t 0 , . . . , t n−1 ) mit t i ∈ T (Σ) für i < n und P /n ∈ Σ. Es gilt: β β T, β |= P (t 0 , . . . , t n−1 ) gdw. (Jt 0 KT , . . . , Jt n−1 KT ) ∈ P T gdw. (t 0 β, . . . , t n−1 β) ∈ P T Lemma 3.21 gdw. S |= P (t 0 β, . . . , t n−1 β) Definition von T gdw. S |= P (t 0 , . . . , t n−1 )β Definition der Termsubstitution gdw. S, βS |= P (t 0 , . . . , t n−1 ) Lemma 3.21 120 Praedikatenlogik.tex Rev 267 2009-02-10 Semantik der Prädikatenlogik 3 Prädikatenlogik Dabei ist zu beachten, dass β auch als Termsubstitution aufgefasst werden kann und deshalb das Substitutionslemma (zweimal) anwendbar ist. Induktionsschritt. Da wir lediglich quantorenfreie Formeln betrachten, sind im Induktionsschritt lediglich die booleschen Junktoren zu betrachten, für die der Beweis der Induktionsbehauptung unkompliziert ist. Wenn wir also feststellen wollen, ob eine universelle Aussage erfüllbar ist, dann brauchen wir nur zu untersuchen, ob sie ein Termmodell besitzt. Die Existenz eines solchen kann wiederum sehr leicht ausgedrückt werden, ohne überhaupt Variablen ins Spiel zu bringen. Sei ϕ eine universelle Σ-Formel, etwa von der Gestalt ∀x i 0 . . . ∀x i n−1 ψ . Deren Expansion ist die Σ-Formelmenge, die mit Θϕ bezeichnet wird und durch Θϕ = {ψσ : σ ist Σ-Grundsubstitution} definiert ist. Satz 3.5 (Termmodelle und Expansionen). Sei ϕ eine universelle Σ-Aussage und T eine Termstruktur. Dann gilt: T |= ϕ gdw. T |= Θϕ . Beweis. Sei ϕ von der Gestalt ∀x i 0 . . . ∀x i n−1 ψ . Dann gilt T |= ϕ genau dann, wenn T, β |= ψ für alle T-Belegungen gilt. Nun gilt T, β |= ψ nach Lemma 3.21 genau dann, wenn T |= ψβ gilt. Daraus folgt die Behauputung. Aufgabe 3.21. (a) Sei Σ0 = {a, b, s//1, P /1} eine Signatur und ϕ0 = ∀x 0 (P (x 0 ) ↔ P (s(s(x 0 ))))∧ P (a) ∧ ¬P (b) eine Σ0 -Formel. Finden Sie für die Formel ϕ0 ein möglichst kleines Modell (möglichst kleine Trägermenge) und ein Termmodell. (b) Sei Σ1 = {z, s//1, P /1} eine Signatur und ϕ1 = P (z)∧∀x 0 (P (x 0 ) → P (s(x 0 )))∧∃x 0 ¬P (x 0 ) eine Σ1 -Formel. Zeigen Sie, dass ϕ1 erfüllbar ist, es aber kein Termmodell für ϕ1 gibt. 3.6.5 Termmodelle und Aussagenlogik Sei ϕ eine universelle Σ-Aussage. Wir wollen dazu eine Menge Φϕ von aussagenlogischen Formeln konstruieren, die genau dann erfüllbar ist, wenn ϕ erfüllbar ist. Aus dem letzten Satz wissen wir, dass ϕ genau dann erfüllbar ist, wenn Θϕ in einem Termmodell gilt. Die Menge Θϕ können wir aber leicht als Menge von aussagenlogischen Formeln auffassen. 121 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Dazu nehmen wir an, dass N eine injektive Abbildung ist, die jeder atomaren Σ-Grundformel χ eine natürliche Zahl zuordnet. Die Übersetzung einer Grundformeln ϕ in eine aussagenlogische Formel χ wird mit τ(χ) bezeichnet und ist wie folgt induktiv definiert. Basiszuordnung: Für jede atomare Grundformel χ ist τ(χ) = X N (χ) . Induktionsregeln: τ(¬χ) = ¬τ(χ), τ(χ0 ∨ χ1 ) = τ(χ0 ) ∨ τ(χ1 ) und τ(χ0 ∧ χ1 ) = τ(χ0 ) ∧ τ(χ1 ). Wir behaupten nun, was offensichtlich ist: Lemma 3.22. Sei ϕ eine Σ-Grundformel. 1. Ist T eine Termstruktur und βT : VAL → {0, 1} definiert durch β(X N (χ) ) = JχKT , so gilt T |= ϕ genau dann, wenn βT |= τ(ϕ). 2. Ist β eine aussagenlogische Variablenbelegung und Tβ die Termstruktur definiert durch (t 0 , . . . , t n−1 ) ∈ P T genau dann, wenn β(N (P (t 0 , . . . , t n−1 ))) = 1, so gilt β |= τ(ϕ) genau dann, wenn Tβ |= ϕ gilt. Beweis. Der Beweis ist ein einfacher Induktionsbeweis. Für eine Menge Φ von quantorenfreien Grundformeln setzen wir nun τ(Φ) = {τ(ϕ) : ϕ ∈ Φ}. Ist ϕ eine universelle Aussage, so nennen wir τ(Θϕ ) die aussagenlogische Expansion von ϕ. Wir können festhalten: Folgerung 3.3. Für jede universelle Aussage ϕ gilt: ϕ ist erfüllbar genau dann, wenn τ(Θϕ ) erfüllbar ist. Jetzt können wir den gewünschten Satz formulieren: Satz 3.6 (Semi-Entscheidbarkeit des Gültigkeitsproblems). Das Gültigkeitsproblem für existenzielle Aussagen ist semi-entscheidbar. Beweis. Wir greifen zurück auf das Semi-Entscheidungsverfahren für die Unerfüllbarkeit von aussagenlogische Formelmengen, Folgerung 2.5. Sei ϕ eine existenzielle prädikatenlogische Aussage ϕ, etwa von der Gestalt ∃x i 0 . . . ∃x i n−1 ψ , wobei ψ eine quantorenfreie Formel ist. Diese Formel ist nach Bemerkung 3.1 allgemeingültig genau dann, wenn ϕ0 definiert durch ϕ0 = ∀x i 0 . . . ∀x i n−1 ¬ψ unerfüllbar ist. Dies ist nach Folgerung 3.3 der Fall, wenn τ(Θϕ ) unerfüllbar ist. Wir brauchen also nur das Semi-Entscheidungsverfahren für Mengen aussagenlogischer Formeln auf τ(Θϕ ) anwenden. 122 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik 3.6.6 Skolemisierung Das Ergebnis des letzten Abschnitts, Satz 3.6, ist in zweierlei Hinsicht beschränkt. Es trifft nämlich nur auf existenzielle Aussagen ohne Gleichheit zu. Beide Einschränkungen lassen sich mit ein wenig Aufwand aufheben, wir wenden uns der ersten zu. Dazu führen wir einen neuen Begriff ein. Σ-Formeln ϕ und ψ heißen erfüllbarkeitsäquivalent, falls es ein Modell für ϕ genau dann gibt, wenn es ein Modell für ϕ0 gibt. Wir schreiben ϕ ≡erfb ϕ0 . Beispiel 3.14. Sei ϕ = ∃x 0 P (x 0 , x 0 ) definiert. Dann können wir die Forderung nach der Existenz von x 0 auch durch eine Konstante beschreiben. Betrachten wir also Σ = {P /2, a} und setzen ϕ0 = P (a, a), so ist offensichtlich, dass ϕ ≡erfb ϕ0 gilt. Das vorige Beispiel ist sehr einfach, weshalb wir ein etwas komplizierteres betrachten wollen. Beispiel 3.15. Sei ϕ = ∀x 0 ∃x 1 ∀x 2 (P (x 2 , x 1 ) → P ( f (x 2 ), x 0 )). Hier lässt sich x 1 nicht einfach durch eine Konstante ersetzen, denn die Wahl der Belegung von x 1 kann von der Belegung von x 0 abhängen. Deshalb ist es hier sinnvoll, die Konstante durch eine Funktion zu ersetzen: Wenn wir Σ = {P /2, f //1, g //1} und ϕ0 = ∀x 0 ∀x 2 (P (x 2 , g (x 0 )) → P ( f (x 2 ), x 0 )) setzen, dann gilt ϕ ≡erfb ϕ0 . Zu beachten ist in dem vorigen Beispiel, dass der Term, der x 1 ersetzt – g (x 0 ) – nur x 0 aufgreift, nicht aber x 2 , weil die Quantifizierung von x 2 innerhalb des Wirkungsbereiches des Quantors von x 1 liegt. Die Transformation, die obigem Beispiel zu Grunde liegt, lässt sich leicht durch einen rekursiven Algorithmus beschreiben, der auf Folie 58 dargestellt ist. Zu bemerken ist zunächst, dass in der Beschreibung die Schreibweise ∀ ϕ für eine Formel ϕ benutzt wird. Dies steht für ∀x i 0 . . . ∀x i n−1 , sofern x i 0 , . . . , x i n−1 eine Auflistung der in ϕ frei vorkommenden Variablen nach aufsteigenden Indizes ist. Wir sprechen vom Allabschluss von ϕ. Man beachte, dass die Reihenfolge, in der die x i j in dem Quantorenblock angeordnet sind, unerheblich ist, denn alle Varianten führen zu äquivalenten Formeln. In dem gleichen Sinne ist die Schreibweise f i (V ) zu verstehen. Außderdem bezeichne sig(ϕ) zu einer gegebenen prädikatenlogischen Formel ϕ die kleinste Signatur, in der ϕ geschrieben werden kann. Wir sprechen von der Signatur der Formel. Der Algorithmus liefert, aufgerufen mit einer Aussage, eine Formel, deren Allabschluss äquivalent zu der gegebenen Formel ist. Diesen Allabschluss nennen wir Skolemisierung der Eingabeformel. Wir schauen uns das Ergebnis einer etwas komplizierteren Beispielberechnung an. Beispiel 3.16. Es sei ∀x 0 ∃x 1 ∀x 0 ∀x 1 ∃x 0 ∀x 2 P (x 0 , x 1 , x 2 ) gegeben. Der Algorithmus liefert dazu: P ( f 0 (x 1 ), x 1 , x 2 ) . 123 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Skolemisierung Skolem(ϕ) Vorbedingung: ϕ ist eine Formel in PNF. if ϕ quantifier-free return ϕ let ϕ = Qxi ψ where Q ∈ {∃, ∀} if Q = ∀ or xi ∈ / free(ψ) return Skolem(ψ) let V = free(ϕ) choose f ∈ / sig(ϕ) return Skolem(ψ[f (V )/xi ]) Nachbedingung: return quantorenfrei und ∀ ϕ ≡erfb ∀ return. Folie 58 Satz 3.7. Der Algorithmus Skolem ist korrekt. Beweis. Es ist offensichtlich, dass die Behandlung im Rumpf der Formel die Erfüllbarkeitsäquivalenz der Allabschlüsse der beteiligten Formeln erhält. Einzig interessant ist der Fall, der zum Schluss behandelt wird. Um dessen Korrektheit garantieren zu können, nehmen wir an, ϕ ist eine Formel in PNF der Gestalt ∃x i ψ mit x i ∈ free(ψ). Außerdem sei f ein Symbol, das nicht in der Signatur von ϕ enthalten ist, V = free(ϕ) und ϕ0 = ψσ mit σ(x i ) = f (V ). Wir behaupten, dass die beiden folgenden Aussagen äquivalent sind: (A) Für alle S-Belegungen β gilt S, β |= ϕ. (B) Es gibt eine sig(ϕ0 )-Expansion S0 von S, so dass S0 , β |= ϕ0 für alle S0 -Belegungen β gilt. Sei zunächst x i 0 , . . . , x i n−1 eine Auflistung der Elemente von free(ϕ) mit aufsteigenden Indizes. Aus (A) folgt (B). Sei S derart, dass S, β |= ∃x i ψ für alle Belegungen β gilt. Dann gibt es gemäß der Semantik der Prädikatenlogik zu jeder solchen Belegung ein Element a β ∈ S mit S, β[a β /x i ] |= ψ. Sei a ein Element von S. Für die gesuchte Expansion S0 setzen wir 0 f S (a 0 , . . . , a n−1 ) = a β mit β(x i j ) = a j für j < n und β(x j ) = a in den anderen Fällen. Es gilt dann S0 , βσ |= ψ für alle Belegungen β, woraus wir S0 , β |= ψσ nach dem Substitutionslem- 124 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik ma erhalten. Schließlich gilt aber ψσ = ϕ0 . Aus (B) folgt (A) lässt sich in gleicher Weise zeigen. Wir können abschließend festhalten: Satz 3.8. Das Gültigkeitsproblem ist semi-entscheidbar für alle prädikatenlogische Formeln ohne Gleichheit. Beweis. Ein entsprechender Algorithmus könnte arbeiten, wie dies auf Folie 59 zu sehen ist. Allgemeiner Gültigkeitstest ValidEx: Gültigkeitstest für existenzielle prädikatenlogische Formeln Valid(ϕ) Vorbedingung: ϕ prädikatenlogische Aussage. let ϕ0 = PNF(¬ϕ) let ϕ1 = ∀Skolem(ϕ0 ) write ϕ1 as ∀xi0 . . . ∀xin−1 ψ with ψ quantifier-free return ValidEx(∃xi0 . . . ∃xin−1 ¬ψ) Nachbedingung: Bei Termination gilt |= ϕ; bei Divergenz gilt 6|= ϕ. Folie 59 Aufgabe 3.22. Sei Σ eine Signatur. Betrachten Sie die Σ-Formeln ϕ0 = ∀x 0 (¬x 0 = 0 → ∃x 1 x 0 · x 1 = 1) ¡ ¢ ϕ1 = ∀x 0 ∃x 1 ∀x 2 ∃x 3 ∃x 4 P (x 0 , x 1 ) ∧ P (x 0 , x 2 ) → x 1 = x 5 ∨ P (x 2 , x 4 ) . Konstruieren Sie mit Hilfe des in der Vorlesung vorgestellten Algorithmus Skolem zu ϕ0 und ϕ1 erfüllbarkeitsäquivalente Formeln. Bringen Sie die Formel gegenbenenfalls vorher in PNF. 125 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Aufgabe 3.23. Sei Σ = {c, P /2} eine Signatur. Betrachten Sie die Σ-Formel ¡ ¢ ϕ = ∀x 0 ∀x 1 ∃x 2 P (x 2 , x 1 ) ∨ ¬P (x 0 , x 1 ) . Zeigen Sie mit Hilfe des Algorithmus aus der Vorlesung, dass diese Formel allgemeingültig ist. Hinweis. Folgende Schritte sind notwendig: • Negieren • PNF • Skolemisieren • Aussagenlogische Expansion τ(Θψ ) • Zeigen, dass τ(Θψ ) unerfüllbar ist. 3.7 Die Folgerungsbeziehung und Beweissysteme Die Folgerungsbeziehung der Prädikatenlogik ist ebenso interessant und wichtig wie die der Aussagenlogik. Zum Beispiel hatten wir in Abschnitt 3.3.3 gesehen, dass wir mit Hilfe der Folgerungsbeziehung Verwandtschaftsverhältnisse klären können. Aus mathematischer Sicht ist die Folgerungsbeziehung noch wichtiger, denn viele Klassen mathematischer Strukturen – Gruppen, abelsche Gruppen, lineare Ordnungen, Verbände, usw. – sind in der Prädikatenlogik axiomatisierbar. Kann man nun alle Folgerungen aus prädikatenlogischen Formelmengen bestimmen, so kann man für jede dieser Klassen alle ihre Eigenschaften (die in der Prädikatenlogik formulierbar sind) beschreiben. Wir beginnen mit einer formalen Definition der Folgerungsbeziehung. Sei Σ eine Signatur, Φ ⊆ F PL (Σ) und ϕ ∈ F PL (Σ). Die Formel ϕ ist eine Folgerung aus Φ, falls I |= ϕ für jede Σ-Interpretation gilt, für die auch I |= Φ gilt. Wir schreiben in diesem Fall Φ |= ϕ. Allgemeingültigkeit ist also ein Spezialfall: Man muss nur Φ = ; wählen. Da Allgemeingültigkeit nicht entscheidbar ist, können wir festhalten: Bemerkung 3.3. Die Folgerungsbeziehung der Prädikatenlogik ist unentscheidbar. Dies ist ein starkes negatives Ergebnis. Wichtiger sind deshalb die beiden Ergebnisse, die in den folgenden Abschnitten behandelt werden: Es gibt für die Folgerungsbeziehung ein Semi-Entscheidungsverfahren. Außerdem ist es möglich, korrekte und vollständige Beweissysteme anzugeben. Bevor wir in die Details einsteigen, wollen wir zunächst – genau wie in der Aussagenlogik – festhalten: Bemerkung 3.4. Ist {ϕ0 , . . . , ϕn−1 } eine endliche Menge von Σ-Formeln und ϕ ebenfalls eine Σ-Formel, dann gilt Φ |= ϕ genau dann, wenn |= ϕ0 ∧ · · · ∧ ϕn−1 → ϕ gilt. Da wir ein Semi-Entscheidungsverfahren für Allgemeingültigkeit im letzten Abschnitt entwickelt haben, können wir also festhalten, dass es ein Semi-Entscheidungsverfahren für endliche Formelmengen gibt. Unsere Überlegungen im folgenden und in dem darauf folgenden Abschnitt zielen deshalb auf unendliche Formelmengen ab. 126 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik 3.7.1 Ein Semi-Entscheidungsverfahren Die Beziehung Φ |= ϕ gilt offensichtlich genau dann, wenn Φ ∪ {¬ϕ} unerfüllbar ist, was wir schon aus der Aussagenlogik kennen. Es reicht also, ein Semi-Entscheidungsverfahren für die Unerfüllbarkeit von Formelmengen zu entwickeln. Das wiederum ist gleichbedeutend mit der Entwicklung eines negativen Semi-Entscheidungsverfahren für die Erfüllbarkeit von Formelmengen. Da wir algorithmisch nur mit Formelmengen arbeiten können, die man auch einem Algorithmus als Eingabe übergeben kann – etwa in einem unbeschränkten Feld – arbeiten wir im weiteren Verlauf nur mit Signaturen, die abzählbar sind. Solche kann man sich der Einfachheit halber so vorstellen, dass es für jedes i ∈ N und jedes n ∈ N ein Symbol f i ,n und ein Symbol P i ,n besitzt. Dabei soll f i ,n für n = 0 ein Konstantensymbol sein und für n > 0 ein n-stelliges Funktionssymbol; P i ,n soll jeweils ein n-stelliges Relationssymbol sein. Sei nun Φ = {ϕ0 , ϕ1 , . . . } eine Menge prädikatenlogischer Formeln. Wir können zunächst annehmen, dass jedes ϕi in pränexer Normalform ist. Zudem können wir jede Formel ϕi in eine erfüllbarkeitsäquivalente universelle Formel ϕ0i mit Hilfe der Skolemisierung umwandeln, etwa mit Hilfe des auf Folie 58 dargestellten Algorithmus. Geht man bei der Skolemisierung nicht geschickt vor, so ist die entstehende Menge Φ0 = {ϕ00 , ϕ01 , . . . } dann möglicherweise unerfüllbar, obwohl Φ erfüllbar ist, wie das folgende Beispiel zeigt. Beispiel 3.17. Für ϕ0 = ∃x 0 P (x 0 ) und ϕ1 = ∃x 0 ¬P (x 0 ) kann sich bei der Anwendung von Skolem ϕ00 = P (c) und ϕ01 = ¬P (c) ergeben. Dann ist {ϕ0 , ϕ1 } erfüllbar, {ϕ00 , ϕ01 } aber nicht. Offensichtlich ist, dass man bei der Skolemisierung von ϕ1 Skolemfunktionen und Konstanten nutzen muss, die nicht schon bei der Skolemisierung von ϕ0 genutzt wurden. Beispiel 3.18. Im obigen Beispiel setzt man ϕ00 = P (c 0 ) und ϕ01 = ¬P (c 1 ). Die Menge {ϕ00 , ϕ01 } ist nun erfüllbar. Das gleiche gilt für die anderen Formeln in Φ0 . Falls Φ0 unter Berücksichtigung dieser Vorgabe aus Φ entsteht, so nennen wir Φ0 eine Skolemisierung von Φ. Dann gilt, dass Φ genau dann erfüllbar ist, wenn Φ0 erfüllbar ist. Definieren wir nun ΘΦ = [ ϕ∈Φ Θϕ für jede beliebige Menge von universellen Aussagen, dann können wir festhalten: Φ ist erfüllbar genau dann, wenn τ(ΘΦ ) erfüllbar ist. Letzteres können wir aber mit einem negativen Semi-Entscheidungsverfahren überprüfen, weil τ(ΘΦ ) eine Menge von aussagenlogischen Formeln ist. Ein Beispiel ist auf Folie 60 zu sehen; allerdings wird der Einfachheit halber eine endliche Formelmenge betrachtet. Das einzige, was zu beachten ist, ist, dass die Elemente der aussagenlogischen Expansion von Φ, τ(ΘΦ ), dem aussagenlogischen Erfüllbarkeitstest vorgelegt werden müssen. Dazu müssen sie in geeigneter Weise aufgezählt werden, was aber leicht möglich ist. 127 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Folgerungstest Ein Beispiel Frage Gilt {ϕ0 , ϕ1 } |= ϕ mit ϕ0 = ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 )) ϕ1 = Mutter(maria, paul) ϕ = Weiblich(maria) Reduktion auf Erfüllbarkeitsproblem Ist {ϕ0 , ϕ1 , ¬ϕ} unerfüllbar? Umwandlung in PNF + Skolemisierung Φ = {ϕ00 , ϕ01 , ϕ02 } mit ϕ00 = ∀x0 ∀x1 (¬Mutter(x0 , x1 ) ∨ Weiblich(x0 )) ϕ01 = Mutter(maria, paul) ϕ02 = ¬Weiblich(maria) Aussagenlogische Expansion {¬Mutter(maria, paul) ∨ Weiblich(maria), ¬Weiblich(maria), Mutter(maria, paul), . . . } – nicht erfüllbar, also {ϕ0 , ϕ1 } |= ϕ. Folie 60 3.7.2 Ein Beweissystem Genau wie in der Aussagenlogik, ist es natürlich wichtig, zu wissen, ob es Beweissysteme gibt, die die Folgerungsbeziehung der Prädikatenlogik charakterisieren. Dass es ein solches gibt, hat Kurt Gödel gezeigt. Wir wollen uns lediglich ein Hilbert-System ansehen. Es ist auf den Folien 61 und 62 zu sehen und wird genauso genutzt, wie das aussagenlogische Hilbert-System. Die zugehörige Ableitungsrelation bezeichnen wir mit `HPL . Wie für die Aussagenlogik können wir – wie gesagt – festhalten: Satz 3.9 (Korrektheit und Vollständigkeit). Für jede Formelmenge Φ und Formel ϕ gilt Φ `HPL ϕ genau dann, wenn Φ |= ϕ gilt. Wir betrachten dasselbe Beispiel wie im letzten Abschnitt, siehe Folie 63. Aufgabe 3.24. Sei Σ = {c, P /1,Q/1} eine Signatur. Zeigen Sie durch Angabe eines kommentierten Beweises, dass gilt: {∀x 0 (P (x 0 ) → Q(x 0 )), P (c)} `HPL ∃x 0Q(x 0 ) . 128 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Ein Hilbert-System für die Prädikatenlogik Die Axiome α ∈ FAL , ϕ, ψ ∈ FPL (Σ), σ Formelsubstitution, t, t0 , t1 , t2 ∈ T (Σ) (AL) (∃∀) (∀→) (∀/) (∃/) (=R) (=S) (=T) (=/) σ passt zu α und |= α ασ ∃xi ϕ ↔ ¬∀xi ¬ϕ ∀xi (ϕ → ψ) → (ϕ → ∀xi ψ) [t/xi ] passt zu ϕ ∀xi ϕ → ϕ[t/xi ] [t/xi ] passt zu ϕ ϕ[t/xi ] → ∃xi ϕ t=t t0 = t1 → t1 = t0 t0 = t1 ∧ t1 = t2 → t0 = t2 t0 = t1 → (ϕ[t0 /xi ] → ϕ[t1 /xi ]) Folie 61 129 Praedikatenlogik.tex Rev 267 2009-02-10 xi ∈ / free(ϕ) [t0 /xi ], [t1 /xi ] passen zu ϕ 3 Prädikatenlogik Ein Hilbert-System für die Prädikatenlogik Die Regeln Modus ponens ϕ ϕ→ψ ψ (MP) Generalisierungsregel (∀) ϕ ∀xi ϕ Folie 62 130 Praedikatenlogik.tex Rev 267 2009-02-10 3 Prädikatenlogik Ein Hilbert-System für die Prädikatenlogik Ein Beispiel Frage Gilt {ϕ0 , ϕ1 } `HPL ϕ mit ϕ0 = ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 )) ϕ1 = Mutter(maria, paul) ϕ = Weiblich(maria) Beweis 1. ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 )) → (∃x1 Mutter(maria, x1 ) → Weiblich(maria)) (∀/) 2. ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 )) 3. ∃x1 Mutter(maria, x1 ) → Weiblich(maria) 4. Mutter(maria, paul) → ∃x1 Mutter(maria, x1 ) 5. Mutter(maria, paul) (Vorauss.) (MP) (∃/) (Vorauss.) 6. ∃x1 Mutter(maria, x1 ) (MP) 7. Weiblich(maria) (MP) Folie 63 131 Praedikatenlogik.tex Rev 267 2009-02-10 Lösungen Lösung zu Aufgabe 2.2 (a) Betrachte die folgenden Variablenbelegungen: β1 : VAL 99K {0, 1} mit β1 (X 1 ) = 1, β1 (X 2 ) = 1 β2 : VAL 99K {0, 1} mit β2 (X 1 ) = 1, β2 (X 2 ) = 0. Dann ist J((X 1 → X 2 ) ↔ (X 2 → X 1 ))Kβ1 = J(X 1 → X 2 )Kβ1 ↔ ˙ J(X 2 → X 1 )Kβ1 = (J X 1 Kβ1 → ˙ J X 2 Kβ1 )↔( ˙ J X 2 Kβ 1 → ˙ J X 1 Kβ1 ) = (β1 (X 1 )→β ˙ 1 (X 2 ))↔(β ˙ 1 (X 2 )→β ˙ 1 (X 1 )) = (1→1) ˙ ↔(1 ˙ →1) ˙ = 1↔1 ˙ =1 und J((X 1 → X 2 ) ↔ (X 2 → X 1 ))Kβ2 = (β2 (X 1 )→β ˙ 2 (X 2 ))↔(β ˙ 2 (X 2 )→β ˙ 2 (X 1 )) = (1→0) ˙ ↔(0 ˙ →1) ˙ = 0↔1 ˙ = 0. (b) Betrachte die folgenden Variablenbelegungen: β1 : VAL 99K {0, 1} mit β1 (X 1 ) = 1, β1 (X 2 ) = 1 β2 : VAL 99K {0, 1} mit β2 (X 1 ) = 0, β2 (X 2 ) = 1. Dann ist J(¬X 1 → ¬X 2 )Kβ1 = ¬1 ˙ → ˙ ¬1 ˙ = 0→0 ˙ =1 und J(¬X 1 → ¬X 2 )Kβ2 = ¬0 ˙ → ˙ ¬1 ˙ = 0. (c) Betrachte die folgenden Variablenbelegungen: β1 : VAL 99K {0, 1} mit β1 (X 1 ) = 0, β1 (X 2 ) = 0, β1 (X 3 ) = 1 β2 : VAL 99K {0, 1} mit β2 (X 1 ) = 1, β2 (X 2 ) = 1, β1 (X 3 ) = 0. Dann ist ˙ ∨(0 ˙ →1) ˙ =1 J(¬(X 1 ∧ X 2 ) ∨ (X 2 → X 3 ))Kβ1 = ¬(0 ˙ ∧0) ˙ = ¬0 ˙ ∨1 und ˙ ∨(1 ˙ →0) ˙ =0 J(¬(X 1 ∧ X 2 ) ∨ (X 2 → X 3 ))Kβ2 = ¬(1 ˙ ∧1) ˙ = ¬1 ˙ ∨0 132 –sourcefile– Rev –revision– 2009-02-10 Lösungen (d) Betrachte die Variablenbelegung: β : VAL 99K {0, 1} mit β1 (X 1 ) = 1, β1 (X 2 ) = 1, β1 (X 3 ) = 1. Dann ist J(((X 1 → X 2 ) ∧ (X 2 → X 3 )) → 1)Kβ = 1. Es gibt keine Belegung β0 ∈ VAL → {0, 1} mit J(((X 1 → X 2 ) ∧ (X 2 → X 3 )) → 1)Kβ = 1, da für alle Belegungen β0 und alle Formeln ϕ gilt: Jϕ → 1Kβ = JϕKβ →1 ˙ = 1. 0 0 (e) Betrachte die Variablenbelegung: β : VAL 99K {0, 1} mit β1 (X 1 ) = 1, β1 (X 2 ) = 1. Dann ist J((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 2 ) ∧ (¬X 2 → X 1 )))Kβ = 1. Es gibt keine Belegung β0 ∈ VAL → {0, 1} mit J((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 2 ) ∧ (¬X 2 → X 1 )))Kβ = 1. Es gilt: J((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 2 ) ∧ (¬X 2 → X 1 )))Kβ ˙ J X 1 Kβ → = (¬ ˙ J X 1 Kβ ↔ ˙ J X 2 Kβ )→(( ˙ ¬ ˙ J X 2 Kβ → ˙ J X 1 Kβ )∧( ˙¬ ˙ J X 2 Kβ )) = ψ. 0 0 0 0 0 0 In der folgenden Tabelle sind alle möglichen Belegungen für die beiden Variablen und die daraus resultierende Sematik von ψ eingetragen: J X 1 K· J X 2 K· JψK· 0 0 1 1 0 1 0 1 1 1 1 1 (Die linke und rechte Seite von → sind sogar äquivalent.) Lösung zu Aufgabe 2.3 Sei E := {a 1 , . . . , a n } die Menge der Elemente und sei M := {T1 , . . . , Tm } die Menge der Mengen. Wir definieren eine Relation R ⊆ E ×M , wobei (a, T ) ∈ R genau dann gelten soll, wenn Elemente a in Menge T enthalten ist. Wir identifizieren diese Relation mit einer Variablenbelegung βR durch ( R β (X i , j ) = 1 falls (a i , T j ) ∈ R 0 sonst. 133 –sourcefile– Rev –revision– 2009-02-10 Lösungen (a) Definiere m _ ϕ(1) := i Xi ,j j =1 | {z } ϕ(2) := i mind eine Menge m ^ m _ (X i ,l → ¬( l =1 | X i , j )) j =1, j 6=l {z } max eine Menge ∧ ϕ(2) ϕi := ϕ(1) i i und setze ϕ := n ^ ϕi . i =1 Sei nun βR eine Variablenbelegung die zu ϕ passt. Zu zeigen: jedem Element ist genau eine Menge zugeordnet (d.h. R ist Funktion), wenn der Wahrheitswert 1 ist. R Fall 1: JϕKβ = 1 R R R Dann gilt für alle i ∈ {1, . . . , n}: Jϕi Kβ = 1 und damit auch Jϕ(1) Kβ = 1 und Jϕ(2) Kβ = i i 1. R R Kβ = 1 folgt, dass (mindestens) ein j ∈ {1, . . . , m} existiert, so dass J X i , j Kβ = Aus Jϕ(1) i 1. Also ist jedem Element mindestens eine Menge zugeordnet. Sei j ∈ {1, . . . , m} R so, dass J X i , j Kβ = 1. R Aus Jϕ(2) Kβ = 1 folgt nun insbesondere, dass i J X i , j → ¬( m _ R X i ,k ))Kβ = 1. k=1,k6= j R Also ist J X i ,k Kβ = 0 für alle k ∈ {1, . . . , m} \ { j }, d.h. jedem Element ist genau eine Menge zugeordnet. Damit ist R tatsächlich eine Funktion. R Fall 2: JϕKβ = 0 R Dann existiert (mindestens) ein i ∈ {1, . . . , n}, so dass Jϕi Kβ = 0, also entweder R R Jϕ(1) Kβ = 0 oder Jϕ(2) Kβ = 0. Sei i so gewählt. i i R Fall 2.1: Jϕ(1) Kβ = 0 i R Dann ist J X i , j Kβ = 0 für alle j ∈ {1, . . . , m}, d.h. mindestens einem Element ist keine Menge zugeordnet worden. R Fall 2.2: Jϕ(2) Kβ = 0 i R R Dann existieren j , j 0 ∈ {1, . . . , m} mit J X i , j Kβ = J X i , j 0 Kβ = 1, also gibt es ein Element, dass zwei verschiedenen Mengen zugewiesen worden ist. Dann ist R keine Funktion. 134 –sourcefile– Rev –revision– 2009-02-10 Lösungen Ist umgekehrt R eine Funktion, so erfüllt die Variablenbelegung βR die aussagenloR gische Formel ϕ, da für jedes i ∈ {1, . . . , n} und j mit T j = R(a i ): J X i , j Kβ = 1 und R R Kβ = J X i , j 0 Kβ = 0 für alle j 0 ∈ {1, . . . , m}\{ j } (da R Funktion ist) und damit ist sowohl Jϕ(1) i R R R 1 als auch Jϕ(2) Kβ = 1. Also ist Jϕi Kβ = 1 für alle i ∈ {1, . . . , n} und damit JϕKβ = 1. i (b) Definiere ψ j := n ^ X k, j )) k=1,k6=l l =1 | n _ (X l , j → ¬( {z } max ein Element und setze ψ := m ^ ψj . j =1 Sei βR nun eine Variablenbelegung die zu ψ passt. R Fall 1: JψKβ = 1 R Dann gilt für alle j ∈ {1, . . . , m}: Jψ j Kβ = 1. Sei j ∈ {1, . . . , m}. R Fall 1.1: Es existiert ein l ∈ {1, . . . , n} mit J X l , j Kβ = 1. R Dann folgt: J X l 0 , j Kβ = 0 für alle l 0 ∈ {1, . . . , n} \ {l }. Damit existiert genau ein l mit (a l , T j ) ∈ R. R Fall 1.2: Für alle l ∈ {1, . . . , n} gilt J X l , j Kβ = 0. Damit existiert keine l ∈ {1, . . . , n} mit (a l , T j ) ∈ R. Insgesamt erhalten wir in diesem Fall eine Relation mit der gewünschten Eigenschaft. R Fall 2: JψKβ = 0 R Dann existiert ein j ∈ {1, . . . , m}: Jψ j Kβ = 0. Sei j ∈ {1, . . . , m} so gewählt. OffenR g bar existiert ein l ∈ {1, . . . , n} mit J X l , j Kβ = 1, sonst wäre Jψ j Kβ = 1. Weiter exisR R tiert ein l 6= l 0 ∈ {1, . . . , n} mit J X l , j Kβ = 1, sonst wäre wieder Jψ j Kβ = 1. Damit werden in diesem Fall mindestens einer Menge mehr als ein Element zugeordnet. Sei umgekehrt R eine Relation, die jeder Menge höchstens ein Element zuweist. Sei R j ∈ {1, . . . , m}. Ist (a i , T j ) ∈ R, so ist Jψ j Kβ = 1. Existiert kein i mit (a i , T j ) ∈ R, so ist R R Jψ j Kβ = 1. Also ist JψKβ = 1. (c) Das Schubfachprinzip besagt gerade, dass, falls n > m, so gilt für alle Variablenbelegungen β die zu ϕ, ψ passen: J(ϕ ∧ ψ)Kβ = 0. Falls n ≤ m, so existiert eine Variablenbelegung β die zu ϕ und ψ passt mit J(ϕ ∧ ψ)Kβ = 1. Lösung zu Aufgabe 2.4 Jeder Formel weisen wir ihre Länge per Induktion zu: 1. Basiszuordnung: l (0) = 1, 135 –sourcefile– Rev –revision– 2009-02-10 Lösungen l (1) = 1, l (X i ) = 1. 2. Induktionsregeln: Seien ϕ, ψ ∈ F AL . l (¬ϕ) = 1 + l (ϕ), l (ϕ ∗ ψ) = 3 + l (ϕ) + l (ψ) für ∗ ∈ {∨, ∧, →, ↔}. Lösung zu Aufgabe 2.5 Jeder Formel weisen wir ihre Schachtelungstiefe per Induktion zu: 1. Basiszuordnung: d (0) = 0, d (1) = 0, d (X i ) = 0. 2. Induktionsregeln: Seien ϕ, ψ ∈ F AL . d (¬ϕ) = 1 + d (ϕ), d (ϕ ∗ ψ) = 1 + max{d (ϕ), d (ψ)} für ∗ ∈ {∨, ∧, →, ↔}. Lösung zu Aufgabe 2.6 Eine solche Funktion kann zum Beispiel wie folgt aussehen: (define (formula->string formula) (cond ((eq? formula #t) "1") ((eq? formula #f) "0") ((variable? formula) (string-append "X_" (number->string (variable-index formula)) )) ((negation? formula) (string-append "-" (formula->string (negation-negated formula)))) ((disjunction? formula) (string-append "(" (formula->string (disjunction-left formula)) " \\/ " (formula->string (disjunction-right formula)) ")")) ((conjunction? formula) (string-append "(" (formula->string (conjunction-left formula)) " /\\ " (formula->string (conjunction-right formula)) ")")) ((conditional? formula) (string-append "(" (formula->string (conditional-left formula)) " -> " (formula->string (conditional-right formula)) ")")) ((biconditional? formula) (string-append "(" (formula->string (biconditional-left formula)) " <-> " (formula->string (biconditional-right formula)) ")")) )) Beispiel. (define phi1 (make-negation (make-disjunction (make-variable 1) (make-variable 2)))) (define phi2 (make-conjunction (make-variable 3) #f)) (define phi (make-biconditional phi1 (make-conditional phi2 #t))) (display (formula->string phi)) Liefert Ausgabe: "(-(X_1 OR X_2) <-> ((X_3 AND 0) -> 1))" 136 –sourcefile– Rev –revision– 2009-02-10 Lösungen Lösung zu Aufgabe 2.7 (a) Es gilt: ϕσ = ((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 3 ) ∧ ¬X 2 ))σ = ((¬X 1 ↔ X 2 )σ → ((X 1 → ¬X 3 ) ∧ ¬X 2 )σ) = (((¬X 1 )σ ↔ X 2 σ) → ((X 1 → ¬X 3 )σ ∧ (¬X 2 )σ)) = ((¬X 1 )σ ↔ ¬X 1 ) → ((X 1 σ → (¬X 3 )σ) ∧ ¬X 2 σ)) = ((¬X 1 σ ↔ ¬X 1 ) → (((ψ ∧ X 2 ) → ¬X 3 σ) ∧ ¬¬X 1 )) = ((¬(ψ ∧ X 2 ) ↔ ¬X 1 ) → (((ψ ∧ X 2 ) → ¬X 3 ) ∧ ¬¬X 1 )) (b) Das gleiche. (c) Sinnvoll ist die Komposition von zwei Substitutionen zum Beispiel dann, wenn gilt: ϕ(σσ0 ) = (ϕσ)σ0 . Beispiel. Sei σ wie oben und sei σ0 = [ψ/X 1 , X 2 /X 3 ] eine weitere Substitution. Dann ist σσ0 = [(ψ ∧ X 2 )/X 1 , (¬ψ)/X 2 , X 2 /X 3 , ψ/X 4 ]. Lösung zu Aufgabe 2.8 Sei ϕ ∈ NNF AL . Basiszuordnung: • Ist ϕ = 1, so gilt: (Kmp) Def (Kmp) Def ¬ϕ = ¬1 ≡ 0 = 1 = ϕ . • Ist ϕ = 0, so gilt: ¬ϕ = ¬0 ≡ 1 = 0 = ϕ . • Ist ϕ = X i , so gilt: Def ¬ϕ = ¬X i = X i = ϕ . • Ist ϕ = ¬X i , so gilt: (DN) Def ¬ϕ = ¬¬X i ≡ X i = ¬X i = ϕ . Induktionsregeln: Seien nun ψ, θ ∈ NNF AL mit ¬ψ ≡ ψ und ¬θ ≡ θ. • Ist ϕ = (ψ ∧ θ), so gilt: (DM) IA Def (DM) IA Def ¬ϕ = ¬(ψ ∧ θ) ≡ (¬ψ ∨ ¬θ) ≡ (ψ ∨ θ) = (ψ ∧ θ) = ϕ . • Ist ϕ = (ψ ∨ θ), so gilt: ¬ϕ = ¬(ψ ∨ θ) ≡ (¬ψ ∧ ¬θ) ≡ (ψ ∧ θ) = (ψ ∨ θ) = ϕ . Lösung zu Aufgabe 2.9 Es gilt: (Elm) X i ↔ ¬X j ≡ (¬X i ∨ ¬X j ) ∧ (¬¬X j ∨ X i ) (DN)+2. EL ≡ (¬X i ∨ ¬X j ) ∧ (X j ∨ X i ). 137 –sourcefile– Rev –revision– 2009-02-10 Lösungen VW Dargestellt als Klauselmenge erhält man {{¬X i , ¬X j }, {X j , X i }}. Mit dem 2. Ersetzungslemma ist dann ^ ^ ^_ (X i ↔ ¬X j ) ≡ {{¬X i , X j }, {¬X j , X i }} 1≤i < j ≤n 1≤i < j ≤n ≡ ^_ [ {{¬X i , X j }, {¬X j , X i }} 1≤i < j ≤n Lösung zu Aufgabe 2.10 Seien ϕ, ψ, χ, ρ ∈ F AL und X i ∈ VAL mit X i 6∈ vars(ϕ) ∪ vars(ψ) ∪ vars(χ) ∪ vars(ρ). Dann gilt: (Elm) ((ϕ ∧ ψ) ∧ χ) → ρ ≡ ¬((ϕ ∧ ψ) ∧ χ) ∨ ρ Da nach (DM) ¬((ϕ∧ψ)∧χ) ≡ (¬(ϕ∧ψ)∨¬χ), erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet auf X i ∨ ρ: ≡ (¬(ϕ ∧ ψ) ∨ ¬χ) ∨ ρ Da nach (DM) ¬(ϕ ∧ ψ) ≡ (¬ϕ ∨ ¬ψ), erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet auf (X i ∨ ¬χ) ∨ ρ: ≡ ((¬ϕ ∨ ¬ψ) ∨ ¬χ) ∨ ρ Da nach (Ass) ((¬ϕ∨¬ψ)∨¬χ) ≡ (¬ϕ∨(¬ψ∨¬χ)), erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet auf X i ∨ ρ: ≡ (¬ϕ ∨ (¬ψ ∨ ¬χ)) ∨ ρ (Ass) ≡ ¬ϕ ∨ ((¬ψ ∨ ¬χ) ∨ ρ) Da nach (Ass) (¬ψ∨¬χ)∨ρ ≡ ¬ψ∨(¬χ∨¬ρ), erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet auf ¬ϕ ∨ X i : ≡ ¬ϕ ∨ (¬ψ ∨ (¬χ ∨ ρ)) Da nach (Elm) ¬χ ∨ ρ ≡ χ → ρ, erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet auf ¬ϕ ∨ (¬ψ ∨ X i ): ≡ ¬ϕ ∨ (¬ψ ∨ (χ → ρ)) Da nach (Elm) ¬ψ ∨ (χ → ρ) ≡ ψ → (χ → ρ), erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet auf ¬ϕ ∨ X i : ≡ ¬ϕ ∨ (ψ → (χ → ρ)) (Elm) ≡ ϕ → (ψ → (χ → ρ)) 138 –sourcefile– Rev –revision– 2009-02-10 Lösungen Lösung zu Aufgabe 2.11 Wir zeigen die (stärkere) Hilfsbehauptung, dass für alle einfachen Konjunktionen ϕ und für alle zu ϕ passenden Variablenbelegungen β gilt: JϕKβ = 1 genau dann, wenn β(X i ) = 1 für alle X i ∈ vars(ϕ). Beweis per Induktion über den Aufbau der einfachen Konjunktionen: Sei also ϕ eine einfache Konjunktion und β eine zu ϕ passende Variablenbelegung. I.A. • Ist ϕ = 1, dann gilt (unabhängig von β) JϕKβ = J1Kβ = 1. Da aber vars(ϕ) = ; gilt auch β(X i ) = 1 für alle X i ∈ vars(ϕ) • Ist ϕ = X i , dann gilt: JϕKβ = J X i Kβ = β(X i ). Da vars(ϕ) = {X i } gilt damit die Behauptung. I.S. Sei ϕ = (ϕ0 ∧ϕ1 ) mit einfachen Konjunktionen ϕ0 , ϕ1 für die die Induktionsvoraussetzung (IV) gelte. Nach IV ist ϕ j genau dann erfüllt, wenn β(X i ) = 1 für alle X i ∈ vars(ϕ j ) ( j ∈ {0, 1}). Damit gilt 1 falls β(X i ) = 1 für alle X i ∈ vars(ϕ0 ) β β JϕK = Jϕ0 ∧ ϕ1 K = und β(X i ) = 1 für alle X i ∈ vars(ϕ1 ) 0 sonst ( 1 falls β(X i ) = 1 für alle X i ∈ vars(ϕ0 ) ∪ vars(ϕ1 ) = 0 sonst ( 1 falls β(X i ) = 1 für alle X i ∈ vars(ϕ) = 0 sonst . Also gilt die Hilfsbehauptung. Mit Hilfe dieser Hilfsbehauptung läßt sich wie folgt Lemma 2.6 zeigen. Seien ϕ, ψ einfache Konjuktionen mit vars(ϕ) = vars(ψ) und sei β eine zu ϕ (und damit auch zu ψ) passende Variablenbelegung. Dann gilt: ( 1 falls β(X i ) = 1 für alle X i ∈ vars(ϕ) β JϕK = 0 sonst ( 1 falls β(X i ) = 1 für alle X i ∈ vars(ψ) = 0 sonst = JψKβ . Lösung zu Aufgabe 2.12 (a) Es gilt: (DM) ¬((X 1 ∨ X 2 ) ∧ X 3 ) ≡ ¬(X 1 ∨ X 2 ) ∨ ¬X 3 (DM)+2.EL ≡ (¬X ∧ ¬X 2 ) ∨ ¬X 3 {z } | 1 NNF ≡ _^ | 139 –sourcefile– Rev –revision– 2009-02-10 {{¬X 1 , ¬X 2 }, {¬X 3 }} . {z } DNF Lösungen Für KNF: VW VW Betrachte zunächst: ¬X 1 ∧ ¬X 2 = {{¬X 1 }, {¬X 2 }} und ¬X 3 ≡ {{¬X 3 }}. Dann ist VW VW VW (¬X 1 ∧ ¬X 2 ) ∨ ¬X 3 ≡ {{¬X 1 }, {¬X 2 }} ∨ {{¬X 3 }} ≡ {{¬X 1 , ¬X 3 }, {¬X 2 , ¬X 3 }}. (Dis) alternativ: (¬X 1 ∧ ¬X 2 ) ∨ ¬X 3 ≡ (¬X 1 ∨ ¬X 3 ) ∧ (¬X 2 ∨ ¬X 3 ). (b) Es gilt (¬(X 1 → X 2 ) ↔ X 3 ) ≡ (¬(¬X 1 ∨ X 2 ) ↔ X 3 ) ≡ ((X 1 ∧ ¬X 2 ) ↔ X 3 ) ≡ (¬(X 1 ∧ ¬X 2 ) ∨ X 3 ) ∧ (¬X 3 ∨ (X 1 ∧ ¬X 2 )) ≡ ((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ (¬X 3 ∨ (X 1 ∧ ¬X 2 )) | {z } NNF ≡ ((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ ¬X 3 ) ∨ ((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ (X 1 ∧ ¬X 2 )) ≡ ((¬X 1 ∧ ¬X 3 ) ∨ (X 2 ∧ ¬X 3 ) ∨ (X 3 ∧ ¬X 3 )) ∨ ((¬X 1 ∧ (X 1 ∧ ¬X 2 )) ∨ (X 2 ∧ (X 1 ∧ ¬X 2 )) ∨ (X 3 ∧ (X 1 ∧ ¬X 2 )) . WV DNF: {{¬X 1 , ¬X 2 }, {X 2 , ¬X 3 }, {X 3 , ¬X 3 }, {¬X 1 , X 1 , ¬X 2 }, {X 2 , X 1 , ¬X 2 }, {X 3 , X 1 , ¬X 2 }} Weiter gilt: ((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ (¬X 3 ∨ (X 1 ∧ ¬X 2 )) | {z } NNF ≡ ((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ (¬X 3 ∨ X 1 ) ∧ (¬X 3 ∨ ¬X 2 )) ^_ ≡ {{¬X 1 , X 2 , X 3 }, {¬X 3 , X 1 }, {¬X 3 , ¬X 2 }} . | {z } KNF Lösung zu Aufgabe 2.13 Seien ϕ, ψ, θ ∈ F AL . Gemäß Lemma 2.9 reicht es, jeweils die Äquivalenz mit 0 zu zeigen. 140 –sourcefile– Rev –revision– 2009-02-10 Lösungen (a) Es gilt: ϕa = ¬((((θ ∧ ϕ) ∧ ¬ϕ) ∨ ψ) → ψ) (Ass)+2.EL ¬(((θ ∧ (ϕ ∧ ¬ϕ)) ∨ ψ) → ψ) ≡ (Tnd)+2.EL ≡ (GK)+2.EL ≡ ¬(((θ ∧ 0) ∨ ψ) → ψ) ¬((0 ∨ ψ) → ψ) (Elm)+2.EL ¬(¬(0 ∨ ψ) ∨ ψ) (DM)+2.EL ¬((¬0 ∧ ¬ψ) ∨ ψ) ≡ ≡ (Kmp)+2.EL ≡ ¬((1 ∧ ¬ψ) ∨ ψ) (Dis)+2.EL ¬((1 ∨ ψ) ∧ (¬ψ ∨ ψ)) (GK)+2.EL ¬(1 ∧ (¬ψ ∨ ψ)) ≡ ≡ (Tnd)+2.EL ≡ (Idp)+2.EL ≡ ¬(1 ∧ 1) ¬1 Kmp ≡ 0 Nach Lemma 2.9 ist ϕa also unerfüllbar. (b) Es gilt: ϕb = ((¬(¬ψ → ¬ϕ) ∧ (ϕ → ψ)) ∧ ¬(ϕ ∧ ¬ψ)) (Knt)+2.EL ≡ ((¬(ϕ → ψ) ∧ (ϕ → ψ)) ∧ ¬(ϕ ∧ ¬ψ)) (Tnd)+2.EL ≡ (0 ∧ ¬(ϕ ∧ ¬ψ)) (Kom)+(GK) ≡ 0 Nach Lemma 2.9 ist ϕb also unerfüllbar. (c) Es gilt: ϕc = (((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ ¬(¬ψ → θ))) (Elm)+2.EL ≡ (((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ ¬(¬¬ψ ∨ θ))) (DN)+2.EL (((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ ¬(ψ ∨ θ))) (DM)+2.EL (((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ (¬ψ ∧ ¬θ))) (Dis)+2.EL ≡ (((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∨ ¬ψ) ∧ ¬θ)) (DM)+2.EL (((ψ ∧ ϕ) ∨ θ) ∧ (¬(ϕ ∧ ψ) ∧ ¬θ)) (DM)+2.EL (((ψ ∧ ϕ) ∨ θ) ∧ ¬((ϕ ∧ ψ) ∨ θ)) ≡ ≡ ≡ ≡ (Tnd) ≡ 0 141 –sourcefile– Rev –revision– 2009-02-10 Lösungen Nach Lemma 2.9 ist ϕc als unerfüllbar. Lösung zu Aufgabe 2.14 (a) Folgende Prozeduren liefern das gewünschte Ergebnis: ; row i, column j und number k: variable index (i-1)*81 + (j-1)*9 + k ; Generate (start start+offset start+2*offset ... start+(reps-1)*offset). (define (step start offset reps) (build-list reps (lambda (x) (+ start (* x offset))))) ; Append all members of l. (define (flat l) (foldr append null l)) ; Turn l = (l1 l2 ...) and m = (m1 m2 ...) ; into ((m1+l1 m1+l2 ...) (m2+l1 m2+l2) ...). (define (addin l m) (map (lambda (x) (map (lambda (y) (+ x y)) l)) m)) ; Produce ((a a+1) ... (a a+n) (a+1 a+2) ... (a+1 a+n) ... (a+n-1 a+n)) ; in some order. (define (pairs a n) (flat (build-list n (lambda (x) (build-list (+ 1 x) (lambda (y) (list (+ a y) (+ 1 (+ a x))))))))) ; The sudoku restrictions. (define (atLeastOneNumberPerEntry) (addin (step 0 1 9) (step 1 9 81))) (define (eachNumberInEachRow) (addin (step 0 9 9) (flat (addin (step 0 1 9) (step 1 81 9))))) (define (eachNumberInEachColumn) (addin (step 0 81 9) (step 1 1 81))) (define (eachNumberInEachRegion) (addin (flat (addin (step 0 81 3) (step 0 9 3))) (flat (addin (step 0 (* 3 81) 3) (flat (addin (step 0 27 3) (step 1 1 9))))))) (define (atMostOneNumberPerEntry) (flat (map (lambda (x) (pairs x 8)) (step (- 0 729) 9 81)))) ; Constructs the propositional logic formula in CNF ; out of the passed sudoku. (define (sudokuSet description) (append (atLeastOneNumberPerEntry) (atMostOneNumberPerEntry) (eachNumberInEachRow) 142 -sourcefile- Rev -revision- 2009-02-10 Lösungen (eachNumberInEachColumn) (eachNumberInEachRegion) (map (lambda (x) (list x)) (filter (lambda (x) (> x 0)) (map (lambda (if (= 0 (flat (step (x y) x) 0 (+ x y))) description) 0 9 81)))))) Der Aufruf von (sudokuSet description) liefert eine entsprechende Formel zurück. (b) Folgende Prozeduren liefern das gewünschte Ergebnis: ; Generates the DIMACS file header, including a reference to this program and ; the number of variables and clauses of the passed formula. (define (header formula) (string-append "c generated by formel->DIMACS\n" "p cnf " (number->string (numberOfVars formula)) " " (number->string (numberOfClauses formula)) "\n")) ; Converts the passed set of clauses to DIMACS format. (define (clauseset->DIMACS formula) (cond ((null? formula) "") ((list? formula) (string-append (clause->DIMACS (first formula)) (clauseset->DIMACS (rest formula)) )))) ; Converts the passed clause to DIMACS format. (define (clause->DIMACS formula) (cond ((null? formula) "0\n") ((list? formula) (string-append (number->string (first formula)) " " (clause->DIMACS (rest formula)))) )) ; Returns the number of distinct variables that occur within the passed formula. (define (numberOfVars formula) (cond ((null? formula) 0) ((list? formula) (max (numberOfVarsInClause (first formula)) (numberOfVars (rest formula)))))) ; Returns the number of distinct variables that occur within the passed clause. ; Assumes that there are no unused variable names between the first and last ; one used. (define (numberOfVarsInClause clause) (cond ((null? clause) 0) ((list? clause) (max (first clause) (numberOfVarsInClause (rest clause)))))) 143 -sourcefile- Rev -revision- 2009-02-10 Lösungen ; Returns the number of clauses of the passed formula. (define (numberOfClauses formula) (length formula)) ; Writes the example sudoku formula to a file in the DIMACS format. ;(define outputPort (open-output-file "/tmp/dimacs.cnf")) Der Aufruf von (formel->DIMACS formula) liefert die Darstellung von formula im DIMACS-Format. Beispiel. Ein Aufruf könnte also wie folgt aussehen: (define outputPort (open-output-file "/tmp/dimacs.cnf")) (display (formel->DIMACS (sudokuSet sudokuInstance)) outputPort) (close-output-port outputPort) Lösung zu Aufgabe 2.15 Folgende Prozeduren liefern das gewünschte Ergebnis: ; Simplify formula, assuming literal is assigned true. (define (assign formula literal) (map (lambda (clause) (filter (lambda (lit) (not (= (- literal) lit))) clause)) (filter (lambda (clause) (not (member literal clause))) formula))) ; Return #t if formula is empty and else #f. (define (isEmptyFormula? formula) (null? formula)) ; Return #t if empty clause in formula and else #f. (define (containsEmptyClause? formula) (foldl (lambda (x y) (or x y)) #f (map (lambda (x) (null? x)) formula))) ; Return #t if clause is a unit clause and #f if clause is not a unit clause. (define (isUnitClause? clause) (and (not (null? clause)) (null? (rest clause)))) ; "Unit propagation". ; For each unit clause in formula, set the respective variable and simplify ; with regard to the literal. Do this until no more unit literals exist. (define (unitPropagate formula assignment) (local ((define literal (findUnitClause formula))) (if (= literal 0) (make-formass formula assignment) (unitPropagate (assign formula literal) (cons literal assignment))))) (define (findUnitClause formula) (if (empty? formula) 0 (if (isUnitClause? (first formula)) 144 -sourcefile- Rev -revision- 2009-02-10 Lösungen (first (first formula)) (findUnitClause (rest formula))))) ; Structure consisting of a formula and and assignment. (define-struct formass (form ass)) ; The DPLL algorithm. ; Returns an assignment extending assignment and satisfying formula if possible ; and #f otherwise. (define (DPLL formula assignment) ; Propagate unit clauses. (local ((define result (unitPropagate formula assignment)) (define simplifiedFormula (formass-form result)) (define newAssignment (formass-ass result))) ; If empty set, then satisfiable. (if (isEmptyFormula? simplifiedFormula) newAssignment ; If empty clause in formula, then unsatisfiable. (if (containsEmptyClause? simplifiedFormula) #f (local ( ; Choose literal. (define literal (first (first formula))) ; Check if satisfiable with literal set to true. (define firstResult (DPLL (assign simplifiedFormula literal) (cons literal newAssignment)))) (if (eq? firstResult #f) ; If unsuccessful, then check other option. (DPLL (assign simplifiedFormula (- literal)) (cons (- literal) newAssignment)) firstResult)))))) Lösung zu Aufgabe 2.16 (a) Offenbar ist ϕa bereits in konjuktiver Normalform. Damit läßt sich ϕa als Klauselmenge schreiben: ^_ ϕa ≡ {{X 1 , X 2 , ¬X 3 }, {X 1 , ¬X 3 }, {¬X 2 , ¬X 3 }, {¬X 1 }} . Im Folgenden prüfen wir die Erfüllbarkeit von ϕa mit Hilfe des DPLL- beziehungsweise des DPLL-Algorithmus: DPLL ^_ erfb(ϕa ) gdw. erfb( {{X 1 , X 2 , ¬X 3 }, {X 1 , ¬X 3 }, {¬X 2 , ¬X 3 }, {¬X 1 }}) gdw. (Lemma, Teil 2, L = ¬X 1 ) erfb( ^_ {{X 2 , ¬X 3 }, {¬X 3 }, {¬X 2 , ¬X 3 }}) 145 –sourcefile– Rev –revision– 2009-02-10 Lösungen gdw. (Lemma, Teil 2, L = ¬X 3 ) ^_ erfb( ;) DP ^_ erfb(ϕa ) gdw. erfb( {{X 1 , X 2 , ¬X 3 }, {X 1 , ¬X 3 }, {¬X 2 , ¬X 3 }, {¬X 1 }}) gdw. (Lemma, Teil 3, i = 1) erfb( ^_ {{X 2 , ¬X 3 }, {¬X 3 }, {¬X 2 , ¬X 3 }}) ^_ {{¬X 3 }, {¬X 3 }}) ^_ ;) gdw. (Lemma, Teil 3, i = 2) erfb( gdw. (Lemma, Teil 3, i = 3) erfb( VW In beiden Fällen wurde damit gezeigt, dass ϕa erfüllbar ist (da ; ≡ 1, also erfüllbar). (b) Da ϕb nicht in konjunktiver Normalform vorliegt, müssen wir die Formel zunächst umformen. Es gilt: ϕb = X 1 ∧ (X 1 → (X 2 ∨ X 4 )) ∧ ((X 1 ∧ X 4 ) → X 2 ) ∧ (¬X 2 ∨ X 3 ) ∧ (¬X 2 ∨ ¬X 3 ) ≡ X 1 ∧ (¬X 1 ∨ X 2 ∨ X 4 ) ∧ (¬X 1 ∨ X 2 ∨ ¬X 4 ) ∧ (¬X 2 ∨ X 3 ) ∧ (¬X 2 ∨ ¬X 3 ) ^_ ≡ {{X 1 }, {¬X 1 , X 2 , X 4 }, {¬X 1 , X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }} Im Folgenden prüfen wir die Erfüllbarkeit von ϕa mit Hilfe des DPLL- beziehungsweise des DPLL-Algorithmus: DPLL erfb(ϕb ) gdw. erfb( ^_ {{X 1 }, {¬X 1 , X 2 , X 4 }, {¬X 1 , X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }}) gdw. (Lemma, Teil 2, L = X 1 ) ^_ erfb( {{X 2 , X 4 }, {X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }}) gdw. (Lemma, Teil 1, i = 2) ^_ ^_ erfb( {{X 3 }, {¬X 3 }}) oder erfb( {{X 4 }, {¬X 4 }) gdw. (Lemma, Teil 2, i = 3 bzw. i = 4) ^_ ^_ erfb( {;}) oder erfb( {;}) 146 –sourcefile– Rev –revision– 2009-02-10 Lösungen DP erfb(ϕb ) gdw. erfb( ^_ {{X 1 }, {¬X 1 , X 2 , X 4 }, {¬X 1 , X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }}) gdw. (Lemma, Teil 3, i = 1) ^_ erfb( {{X 2 , X 4 }, {X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }}) gdw. (Lemma, Teil 3, i = 2) ^_ erfb( {{X 4 , X 3 }, {X 4 , ¬X 3 }, {¬X 4 , X 3 }, {¬X 4 , ¬X 3 }}) gdw. (Lemma, Teil 3, i = 3) ^_ erfb( {{X 4 }, {X 4 , ¬X 4 }, {¬X 4 }}) gdw. (Lemma, Teil 2) ^_ erfb( {{X 4 }, {¬X 4 }}) gdw. (Lemma, Teil 3, i = 4) ^_ erfb( {;}) In beiden Fällen wurde damit gezeigt, dass ϕa unerfüllbar ist (da erfüllbar). VW {;} ≡ 0, also un- Lösung zu Aufgabe 2.18 Skizze (a) Definiere S = (E , F, A) durch E = {X 0 , X 2 , X 3 }, A = {X 1 , X 10 } und F :X 5 ← (X 0 ⊕ X 2 ), X 6 ← (X 3 ∨ X 5 ), X 1 ← (X 3 ⊕ X 5 ), X 7 ← (X 0 ∨ X 2 ), X 10 ← (X 6 ∨ X 7 ) (b) Es ist f S : {0, 1}E → {0, 1} A = {((0, 0, 0), (0, 0)), ((0, 0, 1), (1, 1)), ((0, 1, 0), (1, 1)), ((0, 1, 1), (0, 1)), ((1, 0, 0), (1, 1)), ((1, 0, 1), (0, 1)), ((1, 1, 0), (0, 1)), ((1, 1, 1), (1, 1))} , wobei eine Funktion von A beziehungsweise E nach {0, 1} jeweils repräsentiert wird durch die Funktionswerte der Variablen nach aufsteigendem Index sortiert. 147 –sourcefile– Rev –revision– 2009-02-10 Lösungen (c) Definiere eine Belegung β durch β(X 0 ) = 1, β(X 1 ) = 0, β(X 2 ) = 1, β(X 3 ) = 0, β(X 5 ) = 0, β(X 6 ) = 0, β(X 7 ) = 1,β(X 10 ) = 1, dann ist offenbar β|E = β0 und β| A = β1 und es ist leicht einzusehen, dass β |= ΦS . Mit Satz 2.10 aus der Vorlesung folgt, dass f S (β0 ) = β1 gilt. Lösung zu Aufgabe 2.19 Skizze (a) Definiere S1 = (E , F 1 , A) durch E = {X 1 , X 2 , X 3 }, A = {X 5 } und F 1 :X 4 ← (X 2 ∨ X 3 ), X 5 ← ¬(X 1 ∨ X 4 ) und S2 = (E , F 2 , A) durch F 2 :X 4 ← ¬(X 2 ∨ X 3 ), X 5 ← (X 1 ∨ X 4 ) (b) Es ist f S1 : {0, 1}E → {0, 1} A = {((0, 0, 0), (1)), ((0, 0, 1), (0)), ((0, 1, 0), (0)), ((0, 1, 1), (0)), ((1, 0, 0), (0)), ((1, 0, 1), (0)), ((1, 1, 0), (0)), ((1, 1, 1), (0))} und f S2 : {0, 1}E → {0, 1} A = {((0, 0, 0), (1)), ((0, 0, 1), (0)), ((0, 1, 0), (0)), ((0, 1, 1), (0)), ((1, 0, 0), (1)), ((1, 0, 1), (1)), ((1, 1, 0), (1)), ((1, 1, 1), (1))} , wobei eine Funktion von A beziehungsweise E nach {0, 1} jeweils repräsentiert wird durch die Funktionswerte der Variablen nach aufsteigendem Index sortiert. (c) Definiere σ: vars(S2 ) → V AL , X i → X i +5 (d) Definiere eine Belegung β durch β(X 1 ) = 1, β(X 2 ) = 0, β(X 3 ) = 0, β(X 4 ) = 0, β(X 5 ) = 0, β(X 6 ) = 1, β(X 7 ) = 0, β(X 8 ) = 0, β(X 9 ) = 1, β(X 1 0) = 1, dann gilt β |= ΦS1 und β |= ΦS2 . Ausserdem ist ¡ ¢ ϕeqv = (X 1 ↔ X 6 ) ∧ (X 2 ↔ X 7 ) ∧ (X 3 ↔ X 10 ) → (X 5 ↔ X 10 ) und offensichtlich gilt β 6|= ϕeqv . Also gilt ΦS1 ∪ ΦS2 σ 6|= ϕeqv . Lösung zu Aufgabe 2.20 Nach Resolution: 1. {X 1 , X 2 , ¬X 3 } 2. {X 3 , ¬X 4 , X 5 } 3. {X 1 , X 2 , ¬X 4 , X 5 } 4. {¬X 1 , X 2 , ¬X 4 } 5. {X 2 , ¬X 4 , X 5 } 6. {¬X 2 } 7. {¬X 4 , X 5 } 8. {¬X 5 } 9. {¬X 4 } 10. {X 2 , X 4 } 11. {X 2 } 12. ; (V) (V) (R) mit X 3 aus 1. und 2. (V) (R) mit X 1 aus 4. und 3. (V) (R) mit X 2 aus 5. und 6. (V) (R) mit X 5 aus 7. und 8. (V) (R) mit X 4 aus 9. und 10. (R) mit X 2 aus 6. und 11. 148 –sourcefile– Rev –revision– 2009-02-10 Lösungen Damit ist ϕ unerfüllbar. Lösung zu Aufgabe 2.21 Es gilt: 1. X 0 2. X 0 → X 1 3. X 1 4. X 1 → X 2 5. X 2 6. (X 2 → (¬X 3 → X 2 )) 7. ¬X 3 → X 2 (V) (V) (MP) auf 1. und 2. (V) (MP) auf 3. und 4. (Ax1) mit ϕ = X 2 , ψ = ¬X 3 (MP) auf 5. und 6. Lösung zu Aufgabe 2.22 Angenommen es gilt Φ `H ϕ. Dann existiert eine (Ableitungs-)Folge ϕ0 , . . . , ϕn−1 mit ϕn−1 = ϕ von Formeln aus F [¬, →]AL . (Für jedes i < n gelten die drei Bedingungen aus dem Skript.) Wir beweisen per Induktion über den Aufbau der Folge, dass für jedes i < n gilt: Φ |= ϕi . Ist i = 0, so gibt es genau zwei Fälle. 1. Fall (V) ϕ0 ∈ Φ. Dann gilt offenbar Φ |= ϕ0 . 2. Fall (Ax) ϕ0 ist von der Gestalt (Ax1), (Ax2) oder (Ax3). Dann gilt nach Lemma 2.17 |= ϕ0 und damit insbesondere Φ |= ϕ0 . Sei nun 0 < i < n und für alle ϕi 0 mit 0 ≤ i 0 < n gelte Φ |= ϕi 0 . Dann gibt es drei Fälle: 1. Fall (V) ϕi ∈ Φ. Dann gilt offenbar Φ |= ϕi . 2. Fall (Ax) ϕi ist von der Gestalt (Ax1), (Ax2) oder (Ax3). Dann gilt nach Lemma 2.17 |= ϕi und damit insbesondere Φ |= ϕi . 3. Fall (MP) Es existieren j , k < i mit ϕk = ϕ j → ϕi . Da j , k < i , gilt Φ |= ϕ j und Φ |= ϕk . Nach Lemma 2.18 gilt {ϕ j , ϕk } = {ϕ j , ϕ j → ϕi } |= ϕi . Damit gilt für jede zu Φ, ϕi , ϕ j und ϕk passende Variablenbelegung β mit β |= Φ: β |= ϕ j , β |= ϕk und damit auch β |= ϕi , also Φ |= ϕi . Lösung zu Aufgabe 2.23 Es gilt: 6. 1. X 0 (A) 2. X 0 → X 1 (V) 3. X 1 (el-→) auf 1. und 2. 4. X 1 → X 2 (V) 5. X 2 (el-→) auf 4. und 3. X0 → X2 (in-→) auf 1.–5. 149 –sourcefile– Rev –revision– 2009-02-10 Lösungen Lösung zu Aufgabe 2.24 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. (a) Es gilt: X 1 → (X 2 → X 3 ) (X 1 → (X 2 → X 3 )) → ((X 1 → X 2 ) → (X 1 → X 3 )) (X 1 → X 2 ) → (X 1 → X 3 ) X1 → X2 X1 → X3 ¬¬X 1 ¬¬X 1 → (¬¬¬¬X 1 → ¬¬X 1 ) ¬¬¬¬X 1 → ¬¬X 1 (¬¬¬¬X 1 → ¬¬X 1 ) → (¬X 1 → ¬¬¬X 1 ) ¬X 1 → ¬¬¬X 1 (¬X 1 → ¬¬¬X 1 ) → (¬¬X 1 → X 1 ) ¬¬X 1 → X 1 X1 X3 (V) (Ax2) (MP) (V) (MP) (V) (Ax1) (MP) (Ax3) (MP) (Ax3) (MP) (MP) (MP) Damit gilt {X 1 → (X 2 → X 3 ), X 1 → X 2 , ¬¬X 1 } `H X 3 . (b) Es gilt: 1. (X 2 ∧ X 3 ) (A) 2. X 3 (el-∧-l) aus 1. 3. X 2 (el-∧-r) aus 1. 4. ¬X 1 (A) 5. ¬X 1 → ¬X 2 (V) 6. ¬X 2 (el-→) aus 4. & 5. 7. 0 (el-¬) aus 3. & 6. 8. ¬¬X 1 (in-¬) aus 4.–7. 9. X 1 (el-¬¬) aus 8. 10. X 3 → X 4 (V) 11. X 4 (el-→) aus 2. & 10. 12. X 1 ∧ X 4 (in-∧) aus 9. & 11. 13. (X 2 ∧ X 3 ) → (X 1 ∧ X 4 ) (in-→) aus 1.–12. Damit gilt: {¬X 1 → ¬X 2 , X 3 → X 4 } `N (X 2 ∧ X 3 ) → (X 1 ∧ X 4 ). 150 –sourcefile– Rev –revision– 2009-02-10 aus 1. & 2. aus 3. & 4. aus 6. & 7. aus 9. & 10. aus 10. & 11. aus 6. & 12. aus 5. & 13. Lösungen Lösung zu Aufgabe 2.25 Die Formel zum Graphen sieht wie folgt aus: ´ ^ ^ ^ ³¡ ^ ¢ ψG,V0 = X t ∧ (X j → X i ) ∧ X j → Xi i ∈V0 (i , j )∈E i ∈V \V0 j : (i , j )∈E = X 10 ^ ∧ {X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , X 10 → X 7 , X 6 → X 9 , X 10 → X 9 } ^ ∧ {(X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 , 1 → X 10 } ^ ≡ {1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , X 10 → X 7 , X 6 → X 9 , X 10 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 } Zu zeigen: ψG,V0 |= X 1 . Gemäßt Markierungsalgorithmus erhalten wir: 1 I M ; {1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , X 10 → X 7 , X 6 → X 9 , X 10 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 } 2 {X 10 } {1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , 1 → X 7 , X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 } 3 {X 7 , X 10 } {1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , 1 → X 7 , X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 } 4 {X 7 , X 9 , X 10 } {1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , 1 → X 7 , X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , 1 → X 8 } 5 {X 7 , X 8 , X 9 , X 10 } {1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , 1 → X 5 , X 6 → X 7 , 1 → X 7 , X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , 1 → X 8 } 6 {X 4 , X 5 , X 7 , X 8 , X 9 , X 10 } {1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , 1 → X 5 , X 6 → X 7 , 1 → X 7 , X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ) → X 2 , 1 → X 4 , X 3 → X 6 , 1 → X 8 7 {X 5 , X 7 , X 8 , X 9 , X 10 } {1 → X 10 , X 6 → X 1 , X 2 → X 3 , 1 → X 5 , X 6 → X 7 , 1 → X 7 , X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ) → X 2 , 1 → X 4 , X 3 → X 6 , 1 → X 8 } Damit gilt ψG |= X i für alle X i ∈ {X 5 , X 7 , X 8 , X 9 , X 10 }, aber ψG 6|= X 1 . Lösung zu Aufgabe 2.26 Folgende Prozeduren liefern das gewünschte Ergebnis: ; Returned if a passed horn formula turns out to be unsatisfiable. (define-struct unsatisfiable ()) 151 -sourcefile- Rev -revision- 2009-02-10 Lösungen ; The HornSAT algorithm. ; Computes all implications of the passed list of horn clauses. ; Returns that list, if it is not empty, and (make-unsatisfiable) otherwise. (define (HornSAT M) (let ((implications (paraHornSAT M ’()))) (if (null? implications) (make-unsatisfiable) implications))) (define (paraHornSAT M I) ; check if exists (1 -> Xi) in M where Xi not in I (let ((newTatsachenKlausel (findNewTatsachenklausel M I))) (if (>= newTatsachenKlausel 0) (let( ; if that is the case, append Xi to I... (neuesI (append I (list newTatsachenKlausel))) ; ... and remove its negation from all left sides... (neuesM (map (lambda (psi) (if (> (length psi) 1) (filter (lambda (x) (not (eq? (- x) newTatsachenKlausel))) psi) psi)) M))) ; ... and go on searching. (paraHornSAT neuesM neuesI)) ; if not, return I I))) ; Checks if exists (1 -> Xi) in M where Xi not in I. ; Returns i, if such an Xi exists, and -1 otherwise. (define (findNewTatsachenklausel M I) (if (null? M) -1 (if (and (eq? (length (car M)) 1) (not (contains I (car (car M))))) (car (car M)) (findNewTatsachenklausel (cdr M) I)))) ; Checks whether the passed list contains the specified element. (define (contains list element) (if (null? list) #f (or (= (car list) element) (contains (cdr list) element)))) Lösung zu Aufgabe 3.1 (a) Die Signatur für den geordneten Körper der reellen Zahlen 152 –sourcefile– Rev –revision– 2009-02-10 Lösungen könnte zum Beispiel wie folgt aussehen: ΣR = {0̃, 1̃, +//2, ×//2, </2} Die ΣR -Struktur S = (T S ,C S , R S , F S ) für den geordneten Körper der reellen Zahlen läßt sich dann wie folgt definieren: S =TS =R Trägermenge C S = {0̃S , 1̃S } R S = {<S } S S mit 0̃S = 0 ∈ R und 1̃S = 1 ∈ R Konstanten mit (a, b) ∈<S gdw. a < b für alle a, b ∈ S = R Relationen S S S F = {+ , × } mit + (a, b) = a + b und × = ab für alle a, b ∈ S Funktionen . (b) 1) Sei t 0 = +(×(+(×(x 0 , x 0 ), ×(x 0 , x 0 )), x 1 ), +(+(x 1 , x 1 ), x 1 )). Dann entspricht t 0 dem Polynom (2x 02 · x 1 ) + 3x 1 . 2) Sei t 1 = ×(x 0 , x 0 ). Dann liefern die Interpretationen von t 1 offenbar alle nicht negativen reellen Zahlen. Lösung zu Aufgabe 3.2 (a) Die Signatur könnte zum Beispiel wie folgt aussehen: Σt r ee = {W, child /2} . (b) Eine Σt r ee -Struktur S1 zum ersten Baum ist S 1 = {0, 1, 2, 3, 4} Trägermenge childS1 = {(1, 0), (4, 1), (2, 0), (3, 0)} W S1 = 0 Relation Konstante Die Σt r ee -Struktur S2 zum zweiten Baum ist S 2 = {a, b, c, d , e, f , g , h, w} Trägermenge childS1 = {(a, w), (b, w), (c, w), (d , a), (e, a), ( f , a), (g , c), (h, c)} W S1 = w Relation Konstante (c) Sei S die folgende Σt r ee -Struktur: S = {0, 1, 2} Trägermenge childS = {(1, 0), (2, 1), (0, 2)} WS=0 Relation Konstante Dann ist S kein Baum. Lösung zu Aufgabe 3.3 (a) 1) In der Struktur Nlt ist die Aussage wahr, da es in den natürlichen Zahlen ein kleinstes Element gibt. In der Struktur Rlt ist die Aussage falsch, da es zu jeder reellen Zahl kleinere reelle Zahlen gibt. 153 –sourcefile– Rev –revision– 2009-02-10 Lösungen 2) In der Struktur Nlt ist die Aussage falsch, da zum Beispiel zwischen den Zahlen 0 und 1 keine weiteren Zahlen sind. In der Struktur Rlt ist die Aussage wahr, da es zu je zwei verschiedenen reellen Zahlen eine reelle Zahl gibt, die zwischen den beiden Zahlen liegt. 3) In der Struktur Nlt und in der Struktur Nlt ist die Aussage wahr, da für je zwei Zahlen a, b eine der drei Möglichkeiten a < b, a = b oder a > b gilt. (b) Im Folgenden verwenden wir PRIMZ(x 0 ) als eine abkürzende Schreibweise für (¬x 0 = 1̃ ∧ ∀x 3 (∃x 4 x 0 = ×(x 3 , x 4 ) → (x 3 = 1̃ ∨ x 3 = x 0 )) . ( 1 falls β(x 0 ) Primzahl β Man kann sich überlegen, dass gilt: JPRIMZ(x 0 )KN = 0 sonst. 1) Betrachte die folgende Formel: ∀x 0 ∃x 1 ∃x 2 ∃x 3 ∃x 4 x 0 = (x 1 × x 1 ) + (x 2 × x 2 ) + (x 3 × x 3 ) + (x 4 × x 4 ) . 2) Betrachte die folgende Formel: ³ ¡ ¢ ∀x 0 ∃x 1 ¬x 1 = 0̃ ∧ ¬x 1 = 1̃ ∧ x 0 = (1̃ + 1̃) × x 1 ´ → ∃x 1 ∃x 2 (PRIMZ(x 1 ) ∧ PRIMZ(x 2 ) ∧ x 0 = x 1 + x 2 ) . 3) Betrachte die folgende Formel: ∀x 0 ∃x 1 PRIMZ(x 0 + x 1 ) ∧ PRIMZ(x 0 + x 1 + 1̃ + 1̃) . Lösung zu Aufgabe 3.6 Der Pseudocode zur Berechnung des Wahrheitswertes einer Formel ϕ bezüglich einer Struktur S und einer Belegung β könnte wie folgt aussehen: EvalTerm ( S, β, t ) Vorbedingung : S Struktur , t Term , β Variablenbelegung die zu t passt . i f t = x i then return β(x i ) i f t = c then return c S i f t = f (t 0 , . . . , t n−1 ) then ¡ ¢ return f S EvalTerm(S, β, t 0 ), . . . ,EvalTerm(S, β, t n−1 ) Nachbedingung : return = Jt KSβ EvalFormula ( S, β, ϕ ) Vorbedingung : S Struktur , ϕ Formel , β Variablenbelegung die zu ϕ passt . i f ϕ = 1 then return true i f ϕ = 0 then return f a l s e i f ϕ = t 0 = t 1 then return EvalTerm ( t 0 ) == EvalTerm ( t 0 ) i f ϕ = R(t 0 , . . . , t n−1 ) then i f ( EvalTerm ( t 0 ) , . . . , EvalTerm ( t n−1 ) ) ∈ R S 154 –sourcefile– Rev –revision– 2009-02-10 Lösungen then return true e l s e return f a l s e i f ϕ = ¬ϕ0 then return NOT EvalFormula ( S, β, ϕ0 ) i f ϕ = ϕ1 ◦ ϕ2 then switch ( ◦ ) : case ∧ : return EvalFormula ( S, β, ϕ0 ) AND EvalFormula ( S, β, ϕ1 ) case ∨ : return EvalFormula ( S, β, ϕ0 ) OR EvalFormula ( S, β, ϕ1 ) case → : return EvalFormula ( S, β, ¬ϕ0 ) OR EvalFormula ( S, β, ϕ1 ) case ↔ : return EvalFormula ( S, β, ϕ0 → ϕ1 ) AND EvalFormula ( S, β, ϕ1 → ϕ0 ) i f ϕ = ∃x i ϕ1 then foreach a ∈ S l e t β0 = β[a/x i ] i f EvalFormula ( S, β0 , ϕ1 ) then return true return f a l s e i f ϕ = ∀x i ϕ1 then foreach a ∈ S l e t β0 = β[a/x i ] i f NOT EvalFormula ( S, β0 , ϕ1 ) then return f a l s e return true Nachbedingung : return = JϕKSβ Lösung zu Aufgabe 3.9 (a) 1) ∃x 0 ∃x 1 ∃x 2 ∃x 3 (Nutzer(x 0 , x 1 )∧Nutzer(x 2 , x 3 )∧¬x 0 = x 2 ) 2) ∃x 0 ∃x 1 ∃x 2 ∃x 3 (Buch(x 0 , x 1 , x 2 ) ∧ Buch(x 3 , x 1 , x 2 ) ∧ ¬x 0 = x 3 ) 3) ∀x 0 ∀x 1 ∀x 2 (Buch(x 0 , x 1 , x 2 ) → ∃x 3 Entliehen(x 0 , x 3 ) 4) ∃x 0 ∃x 1 (Nutzer(x 0 , x 1 ) → ∃x 3 ∃x 2 ∀x 4 (Buch(x 2 , x 3 , x 4 ) → Entliehen(x 0 , x 2 )) (Hier gehen wir davon aus, dass mit alle Bücher eines Autors, nur solche Bücher eines Autors gemeint sind, die unterschiedliche Titel haben.) (b) In dieser Aufgabe gehen wir von gerichteten Graphen aus. Die Relation E ist also nicht unbedingt symmetrisch. 1) ∃x 0 ∀x 1 ¬(x 0 E x 1 ∨ x 1 E x 2 ). 2) ∃x 0 ∃x 1 ∃x 2 (¬(x 0 = x 1 ∨ x 1 = x 2 ∨ x 2 = x 0 ) ∧ (x 0 E x 1 ∨ x 1 E x 0 ) ∧ (x 0 E x 2 ∨ x 2 E x 0 )) 3) ∀x 0 ∀x 1 (¬x 0 = x 1 → (x 0 E x 1 ∨ x 1 E x 0 )) Lösung zu Aufgabe 3.10 Es gelte β|vars(t ) = β0 |vars(t ) (ansonsten ist nichts zu zeigen). 1. Basiszuordnung: Ist t = c für ein c ∈ Σ, dann gilt: β β β0 Jt KS = Jc KS = c S = Jt KS . 155 –sourcefile– Rev –revision– 2009-02-10 Lösungen Ist t = x i für ein i ∈ N, dann gilt: β β β0 β0 Jt KS = Jx i KS = β(x i ) = β0 (x i ) = Jx i KS = Jt KS . 2. Induktionsregeln: Ist t von der Form t = f (t 0 , . . . , t n ) mit Termen t 0 , . . . , t n und n-stelliger Funktion f //n ∈ Σ, dann gilt: β β Jt KS = J f (t 0 , . . . , t n )KS β β = f S (Jt 0 KS , . . . , Jt n KS ) β0 I.V. β0 = f S (Jt 0 KS , . . . , Jt n KS ) β0 = J f (t 0 , . . . , t n )KS β0 = Jt KS . Lösung zu Aufgabe 3.11 (a) Die Anfrageergebnisse sehen wie folgt aus: ϕ0 (K2 ) = {(Metro, Holtenauer Straße), (CinemaxX, Kaistraße), (Neues Studio, Wilhelminenstraße)} , 2 ϕ1 (K ) = {(CinemaxX, Kaistraße)} und ϕ2 (K2 ) = ϕ0 (K2 ) ∪ {(Adam Sandler, Bedtime Stories), (Eliza Bennett, Tintenherz), (Jason Statham, Transporter 3), (Kad Merad, Willkommen bei den Sch’tis)} (b) ϕ0 entspricht: Finde alle Kinos. ϕ1 entspricht: Finde alle Kinos, so dass jeder Film mindestens einmal im Programm ist. ϕ2 entspricht: Falls für alle passenden Paare von Kino und Zeiten ein Filmtitel existiert (trivial erfüllt), dann gib alle (Kino, Strasse)-Paare und alle (Schauspieler, Titel)Paare aus. Lösung zu Aufgabe 3.12 (a) Setze ϕa = ∃x 1 ∃x 2 ∃x 3 ∃x 4 ∃x 5 ∃x 6 ∃x 7 ∃x 8 ¡ Kino(x 1 , x 2 ) ∧ Kino(x 3 , x 4 ) // es gibt Kino2 ∧ ¬x 1 = x 3 // Kino1 und Kino2 sind verschieden ∧ Film(x 0 , x 5 , x 6 ) // es gibt Film1 ∧ Progr(x 1 , x 0 , x 7 ) ∧ Progr(x 3 , x 0 , x 8 ) // Film1 lauft in Kino1 ¢ // Film1 laeuft in Kino2 156 –sourcefile– Rev –revision– 2009-02-10 // es gibt Kino1 Lösungen (b) Setze ϕb = ∃x 1 ∃x 2 ∃x 3 ∃x 4 ∃x 5 ∃x 6 ¡ Kino(x 1 , x 2 ) // es gibt Kino1 ∧ Film(x 3 , x 4 , x 0 ) // es gibt Film1 ∧ Progr(x 1 , x 3 , x 5 ) // Film1 laeuft in Kino1 zu Zeit1 ∧ Progr(x 1 , x 3 , x 6 ) ¢ ∧ ¬x 5 = x 6 // Film1 laeuft in Kino1 zu Zeit2 // Zeit1 und Zeit2 sind verschieden Lösung zu Aufgabe 3.13 (a) negierten Formeln: if ϕ = ¬ψ then return S n \ Eval(ψ, n, S) (b) universiell quantifizierten Formeln: if ϕ = ∀x i ψ then if i < n then let T = ; let T 0 = Eval(ψ, n, S) for each (b 0 , . . . , b n−1 ) ∈ T 0 © ª let L = (b 0 , . . . , b i −1 , a, b i +1 , . . . , b n−1 | a ∈ S) if L ⊆ T 0 then let T = T ∪ L return T else let T = ; let T 0 = Eval(ψ, i + 1, S) for each (b 0 , . . . , b i ) ∈ T 0 © ª let L = (b 0 , . . . , b i −1 , a) | a ∈ S) © ª if L ⊆ T 0 then let T = T ∪ (a 0 , . . . a n−1 ) | (a 0 , . . . , a i ) ∈ L return T Lösung zu Aufgabe 3.14 Sei S Struktur mit Trägermenge S = {0, 1}, R S = {(0)} und P S = {(1)}. (a) Die beiden Formeln sind nicht äquivalent. β β Es gilt J∀x 1 ∃x 2 x 1 = x 2 KS = 1 6= 0 = J∃x 2 ∀x 1 x 1 = x 2 KS für eine beliebige Variablenbelegungen β (keine freien Variablen). (b) Die beiden Formeln sind äquivalent. Nach Lemma 3.14 gilt ∃x 2 ¬ϕ ≡ ¬∀x 2 ϕ. Lemma 3.13 und Variablenumbenennung (Lemma 3.17 mit π(x 1 ) = x 2 und π(x 2 ) = x 1 ) liefern das Ergebnis. (c) Die beiden Formeln sind äquivalent. Nach Lemma 3.15 gilt ϕ ∧ ∀x i ψ ≡ ∀x i (ϕ ∧ ψ) falls x i ∉ free(ϕ). Da x 1 offenbar nicht frei in R(x 0 ) vorkommt, sind beide Formeln äquivalent. (d) Die beiden Formeln sind nicht äquivalent. β β Es gilt J∀x 1 (R(x 1 ) ↔ P (x 1 ))KS = 0 6= 1 = J∀x 1 R(x 1 ) ↔ ∀x 1 P (x 1 )KS für eine beliebige Variablenbelegungen β (keine freien Variablen). 157 –sourcefile– Rev –revision– 2009-02-10 Lösungen Es gilt allerdings für alle Strukturen S mit S |= ∀x 1 (R(x 1 ) ↔ P (x 1 )) dass auch gilt S |= ∀x 1 R(x 1 ) ↔ ∀x 1 P (x 1 ). (e) Die beiden Formeln sind nicht äquivalent. β β Es gilt J∃x 1 (R(x 1 ) ↔ P (x 1 ))KS = 0 6= 1 = J∃x 1 R(x 1 ) ↔ ∃x 1 P (x 1 )KS für eine beliebige Variablenbelegungen β (keine freien Variablen). Es gilt allerdings für alle Strukturen S mit S |= ∃x 1 (R(x 1 ) ↔ P (x 1 )) dass auch gilt S |= ∃x 1 R(x 1 ) ↔ ∃x 1 P (x 1 ). Lösung zu Aufgabe 3.16 Die Funktionsaufrufe des Algorithmus sehen etwa wie folgt aus: PNF(ϕ) DisjPNF(PNF(∀x 0 ∃x 1 ∀x 2 (P (x 0 ) → R(x 2 ))), PNF(∀x 3 ∃x 0 ¬P (x 0 ))) DisjPNF(∀x 0 PNF(∃x 1 ∀x 2 (P (x 0 ) → R(x 2 ))), ∀x 3 PNF(∃x 0 ¬P (x 0 ))) DisjPNF(∀x 0 ∃x 1 PNF(∀x 2 (P (x 0 ) → R(x 2 ))), ∀x 3 ∃x 0 PNF(¬P (x 0 ))) DisjPNF(∀x 0 ∃x 1 ∀x 2 PNF((P (x 0 ) → R(x 2 ))), ∀x 3 ∃x 0 NegPNF(P (x 0 ))) DisjPNF(∀x 0 ∃x 1 ∀x 2 PNF(¬P (x 0 ) ∨ R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 )) DisjPNF(∀x 0 ∃x 1 ∀x 2 DisjPNF(¬P (x 0 ), R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 )) DisjPNF(∀x 0 ∃x 1 ∀x 2 (¬P (x 0 ) ∨ R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 )) ∀x 4 DisjPNF(∃x 1 ∀x 2 (¬P (x 4 ) ∨ R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 )) ∀x 4 ∃x 5 DisjPNF(∀x 2 (¬P (x 4 ) ∨ R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 )) ∀x 4 ∃x 5 ∀x 6 DisjPNF( ¬P (x 4 ) ∨ R(x 6 ), ∀x 3 ∃x 0 ¬P (x 0 )) ∀x 4 ∃x 5 ∀x 6 DisjPNF( ∀x 3 ∃x 0 ¬P (x 0 ), ¬P (x 4 ) ∨ R(x 6 )) ∀x 4 ∃x 5 ∀x 6 ∀x 7 DisjPNF( ∃x 0 ¬P (x 0 ), ¬P (x 4 ) ∨ R(x 6 )) ∀x 4 ∃x 5 ∀x 6 ∀x 7 ∃x 7 DisjPNF( ¬P (x 7 ), ¬P (x 4 ) ∨ R(x 6 )) ∀x 4 ∃x 5 ∀x 6 ∀x 7 ∃x 7 (¬P (x 7 ) ∨ (¬P (x 4 ) ∨ R(x 6 ))) Lösung zu Aufgabe 3.17 (a) Fälle → und ↔: i) Im Code von PNF(ϕ) fehlt noch die Behandlung der i f ϕ = ϕ0 → ϕ1 then return DisjPNF(NegPNF(ϕ0 ), PNF(ϕ1 )) i f ϕ = ϕ0 ↔ ϕ1 then return KonjPNF(PNF(ϕ0 → ϕ1 ), PNF(ϕ1 → ϕ0 )) ii) Im Code von NegPNF(ϕ) fehlt noch die Behandlung der Fälle ∧, → und ↔: i f ϕ = ϕ0 ∧ ϕ1 then return DisjPNF(NegPNF(ϕ0 ), NegPNF(ϕ1 )) i f ϕ = ϕ0 → ϕ1 then return KonjPNF(PNF(ϕ0 ), NegPNF(ϕ1 )) i f ϕ = ϕ0 ↔ ϕ1 then return NegPNF((ϕ0 → ϕ) ∧ (ϕ1 → ϕ0 )) iii) Im Code von DisjPNF(ϕ, ψ) fehlt noch die Behandlung des Falls ∀x i ϕ0 : i f ϕ = ∀x i ψ then l e t V = vars(ϕ) ∪ vars(ψ) l e t j = max{k : x k ∈ V } + 1 l e t ϕ0 = Swap(i , j , ϕ) l e t χ = DisjPNF(ϕ0 , ψ) return ∀x i χ 158 –sourcefile– Rev –revision– 2009-02-10 Lösungen iv) Im Code von Swap(i , j , ϕ) fehlt noch der Hauptteil: i f ϕ = t 0 = t 1 then return SwapT(i , j , t 0 ) = SwapT(i , j , t 1 ) i f ϕ = R(t 0 , . .¡. , t n−1 ) then ¢ return R SwapT(i , j , t 0 ), . . . , SwapT(i , j , t n−1 ) i f ϕ = ¬ψ then return ¬Swap(i , j , ψ) i f ϕ = ϕ0 ∧ ϕ1 then return Swap(i , j , ϕ0 ) ∧ Swap(i , j , ϕ1 ) i f ϕ = ϕ0 ∨ ϕ1 then return Swap(i , j , ϕ0 ) ∨ Swap(i , j , ϕ1 ) i f ϕ = ∃x k ψ then i f k = i then return ∃x j Swap(i , j , ψ) else return ∃x k Swap(i , j , ψ) i f ϕ = ∀x k ψ then i f k = i then return ∀x j Swap(i , j , ψ) else return ∀x k Swap(i , j , ψ) In dem Code wird eine Methode/Funktion SwapT(i , j , t ) verwendet, die alle Variablen x i im Term t durch x j ersetzt. SwapT(i , j , t ) Vorbedingung : i , j ∈ N , t Σ−Term i f t = c then return c i f t = x k then i f k = i then return x j else return x k i f t = F (t 0 , . . . , t n−1 ) then return F (SwapT(i , j , t 0 ), . . . , SwapT(i , j , t n−1 )) Nachbedingung : return = t π mit π(x i ) = x j und π(x j ) = x i v) Der Code von KonjPNF(ϕ, ψ) ist: KonjPNF(ϕ, ψ) Vorbedingung : ϕ, ψ ∈ PNF(Σ) i f ϕ, ψ ∈ QF(Σ) then return ψ ∧ ϕ i f ϕ ∈ QF(Σ) then l e t (ϕ, ψ) = (ψ, ϕ) i f ϕ = ∃x i ψ then l e t V = vars(ϕ) ∪ vars(ψ) l e t j = max{k : x k ∈ V } + 1 l e t ϕ0 = Swap(i , j , ϕ) l e t χ = DisjPNF(ϕ0 , ψ) return ∃x i χ i f ϕ = ∀x i ψ then l e t V = vars(ϕ) ∪ vars(ψ) 159 –sourcefile– Rev –revision– 2009-02-10 Lösungen l e t j = max{k : x k ∈ V } + 1 l e t ϕ0 = Swap(i , j , ϕ) l e t χ = DisjPNF(ϕ0 , ψ) return ∀x i χ Nachbedingung : return ∈ PNF(Σ) und return ≡ ϕ ∧ ψ (b) Gemäß Algorithmus erhalten wir folgende Formeln (mit Zwischenschritten): 1) R(x 0 ) ∧ ¬∃x 0Q(x 0 ) R(x 0 ) ∧ ∀x 0 ¬Q(x 0 ) ∀x 0 ¬Q(x 0 ) ∧ R(x 0 ) ∀x 1 (¬Q(x 1 ) ∧ R(x 0 )) 2) ¬∀x 0 R(x 0 ) ∧ ∀x 0 P (x 0 ) ∃x 0 ¬R(x 0 ) ∧ ∀x 0 P (x 0 ) ∃x 1 (¬R(x 1 ) ∧ ∀x 0 P (x 0 )) ∃x 1 (∀x 0 P (x 0 ) ∧ ¬R(x 1 )) ∃x 1 ∀x 2 (P (x 2 ) ∧ ¬R(x 1 )) 3) ¬∀x 0 R(x 0 ) ∧ ∀x 1 (P (x 1 ) ∨ ∃x 0Q(x 0 , x 1 )) ∃x 0 ¬R(x 0 ) ∧ ∀x 1 (∃x 0Q(x 0 , x 1 ) ∨ P (x 1 )) ∃x 0 ¬R(x 0 ) ∧ ∀x 1 ∃x 2 (Q(x 2 , x 1 ) ∨ P (x 1 )) ∃x 3 (¬R(x 3 ) ∧ ∀x 1 ∃x 2 (Q(x 2 , x 1 ) ∨ P (x 1 ))) ∃x 3 (∀x 1 ∃x 2 (Q(x 2 , x 1 ) ∨ P (x 1 )) ∧ ¬R(x 3 )) ∃x 3 ∀x 4 (∃x 2 (Q(x 2 , x 4 ) ∨ P (x 4 )) ∧ ¬R(x 3 )) ∃x 3 ∀x 4 ∃x 5 ((Q(x 5 , x 4 ) ∨ P (x 4 )) ∧ ¬R(x 3 )) 160 –sourcefile– Rev –revision– 2009-02-10 Lösungen 4) ¬∀x 0 R(x 0 ) → ∀x 1 (P (x 1 ) ↔ ∃x 0Q(x 0 , x 1 )) ¬¬∀x 0 R(x 0 ) ∨ ∀x 1 ((¬P (x 1 ) ∨ ∃x 0Q(x 0 , x 1 )) ∧ (P (x 1 ) ∨ ¬∃x 0Q(x 0 , x 1 ))) ∀x 0 R(x 0 ) ∨ ∀x 1 ((∃x 0Q(x 0 , x 1 ) ∨ ¬P (x 1 )) ∧ (¬∃x 0Q(x 0 , x 1 ) ∨ P (x 1 ))) ∀x 0 R(x 0 ) ∨ ∀x 1 (∃x 2 (Q(x 2 , x 1 ) ∨ ¬P (x 1 )) ∧ ∀x 2 (¬Q(x 2 , x 1 ) ∨ P (x 1 ))) ∀x 0 R(x 0 ) ∨ ∀x 1 ∃x 3 ((Q(x 3 , x 1 ) ∨ ¬P (x 1 )) ∧ ∀x 2 (¬Q(x 2 , x 1 ) ∨ P (x 1 ))) ∀x 0 R(x 0 ) ∨ ∀x 1 ∃x 3 ∀x 4 ((¬Q(x 4 , x 1 ) ∨ P (x 1 )) ∧ (Q(x 3 , x 1 ) ∨ ¬P (x 1 ))) ∀x 5 (R(x 5 ) ∨ ∀x 1 ∃x 3 ∀x 4 ((¬Q(x 4 , x 1 ) ∨ P (x 1 )) ∧ (Q(x 3 , x 1 ) ∨ ¬P (x 1 )))) ∀x 5 (∀x 1 ∃x 3 ∀x 4 ((¬Q(x 4 , x 1 ) ∨ P (x 1 )) ∧ (Q(x 3 , x 1 ) ∨ ¬P (x 1 ))) ∨ R(x 5 )) ∀x 5 ∀x 6 (∃x 3 ∀x 4 ((¬Q(x 4 , x 6 ) ∨ P (x 6 )) ∧ (Q(x 3 , x 6 ) ∨ ¬P (x 6 ))) ∨ R(x 5 )) ∀x 5 ∀x 6 ∃x 7 (∀x 4 ((¬Q(x 4 , x 6 ) ∨ P (x 6 )) ∧ (Q(x 7 , x 6 ) ∨ ¬P (x 6 ))) ∨ R(x 5 )) ∀x 5 ∀x 6 ∃x 7 ∀x 8 (((¬Q(x 8 , x 6 ) ∨ P (x 6 )) ∧ (Q(x 7 , x 6 ) ∨ ¬P (x 6 ))) ∨ R(x 5 )) 161 –sourcefile– Rev –revision– 2009-02-10 Index F [¬, →]AL , 62 F PL (Σ), 86 0 (Σ), 120 F PL n F PL (Σ), 97 T (Σ), 83 VPL , 82 J·K· , 11 erfb(), 37 F 〈↔〉AL , 64 Φ |= ϕ, 126 Θϕ , 121 vars(ϕ), 9, 84 ≡, 23, 104 ∃x i ϕ, 86 ∀x i ϕ, 86 DNF AL , 34 KNF AL , 34 NNF AL , 29 PNF(Σ), 108 QF(Σ), 108 |=, 37, 50, 89 ∀ ϕ, 123 folg(ϕ), 75 free(ϕ), 87 quant(ϕ), 108 rank(ϕ), 108 sig(ϕ), 123 Mod(Φ), 90 res X i (K , K 0 ), 59 ϕ(Sn ), 97 ϕ ≡erfb ϕ0 , 123 `, 67 `H , 63 `N , 65 `R , 59 `HPL , 128 Ableitungssystem, 66 ableiten, 66 Ableitung, 68 Ableitungsrelation, 67 Axiom, 67 Bruchschreibweise, 68 Konklusion, 67 Prämisse, 67 Regeln, 67 Allabschluss, 123 Anfrage, 98 Anfrageergebnis, 98 Aussage, 89 Aussagenvariable, 8 Beweissystem Hilbert-Beweis, 63 Hilbert-System, 62 natürlicher Beweis, 65 natürliches Beweissystem, 64 Resolution, siehe Resolution boolesche Operationen, 10 DIMACS-Daten, 38 Domino, 51 DP-SAT, 43 DPLL-SAT, 40 DPLL-SAT (mit erfüllender Belegung), 41 einfache Konjunktion, 31 Elementvariable, 82 frei vorkommen, 87 Erreichbarkeitsspiel, 74 Eval, 103 Expansion, 121 162 –sourcefile– Rev –revision– 2009-02-10 Index aussagenlogische, 122 Literal, 32 negativ, 32 positiv, 32 Folgerung, 126 Formel (aussagenlogisch), 8 äquivalent, 23 allgemeingültig, 51 atomar, 8 erfüllbar, 15 zusammengesetzt, 9 Formel (prädikatenlogisch, erster Stufe), 86 Σ-Formel, 86 äquivalent, 104 atomar, 86 erfüllbarkeitsäquivalent, 123 existenziell quatifiziert, 86 quantorenfrei, 108 Quantorenpräfix, 108 universell quatifiziert, 86 Σ-Formelsubstitution, 105 Funktionssymbole, 79 Modell, 51, 89 NaiveSAT, 36 NegSemiSAT, 49 NNF, 32 Normalformen disjunktive Normalform, 34 konjunktive Normalform, 34 Negation-Konditional-Normalform, 62 Negationsnormalform (NNF), 29 positive Normalform, 29 Horn-Formel, 70 Horn-Klausel, 70 Programmklausel, 70 Tatsachenklausel, 70 Zielklausel, 70 Horn-Klauselmenge, 70 HornSAT, 76 HornSAT*, 78 PNF, 112, 113 Postsche Korrespondenzproblem Ausgangspaar, 114 erzeugbares Paar, 114 Instanz, 114 Lösungsfolge, 114 Postsche Korrespondenzproblem (PCP), 114 (Entscheidungs-)Problem, 47 divergiert, 49 entscheidbar, 48 negativ semi-entscheidbar, 49 negative Instanzen, 47 negatives Entscheidungsverfahren, 49 positive Instanzen, 47 semi-entscheidbar, 49 Semi-Entscheidungsverfahren, 48 Interpretation, siehe Wahrheitswert, 81 Σ-Interpretation, 104 Quantorenrang, 108 quativizierte Variable, 108 Junktor, 8 Relationssymbole, 79 Resolution korrekt, 59 Korrektheit, 61 Resolutionsbeweis, 59 Resolutionswiderlegung, 59 Resolvente, 59 vollständig, 60 Vollständigkeit, 61 Σ-Grundformel, 120 Σ-Grundterm, 120 Klausel, 33 2-Klausel, 42 Einheitsklausel, 37 tautologisch, 41 Klauselmenge, 33 2-Klauselmenge, 42 KNF, 35 Konstantensymbole, 8, 79 163 –sourcefile– Rev –revision– 2009-02-10 Index Schaltnetz, 53 Anweisung, 53 Anweisungsfolge, 53 Ausgangsvariablen, 53 Eingangsvariablen, 53 SemiImpl, 57 Signatur, 79 algebraisch, 80 kleinste, 123 relational, 80 Signatur einer Formel, 123 Skolem, 124 Skolemisierung, 123, 127 Stelligkeit, 79 Σ-Struktur, 80 Substitution, 27 entkoppelnde Umbenennung, 55 passende, 119 Substituent, 27 Term, 83 Termmodell, 120 Σ-Termstruktur, 120 Σ-Termsubstitution, 118 Trägermenge, 80 Umbenennung, 109 universelle Aussage, 120 Valid, 125 Variablenbelegung (aussagenlogisch), 10 erfüllend, 15 passend, 10 Variablenbelegung (prädikatenlogisch), 84 allgemeingültig, 111 erfüllbar, 111 passend, 84, 87 Wahrheitswert, 11 164 –sourcefile– Rev –revision– 2009-02-10