Modul Logik, Bachelor Informatik 1. Semester Inhaltsverzeichnis 1 Modulbeschreibung 3 2 Einführung 4 2.1 Warum ist Logik wichtig für die Informatik? . . . . . . . . . . . . . . . 4 2.2 Warum ist Logik wichtig für die Mathematik? . . . . . . . . . . . . . . 4 2.3 Grundlegende Begriffe und Schreibweisen . . . . . . . . . . . . . . . . . 5 2.4 Literaturauswahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Aussagenlogik 3.1 10 Syntax und Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1.1 Semantische Äquivalenz . . . . . . . . . . . . . . . . . . . . . . 12 3.1.2 Beweisprinzipien . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1.3 Normalformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2 Das Erfüllbarkeitsproblem der Aussagenlogik . . . . . . . . . . . . . . . 13 3.3 Hornformeln und Markierungsalgorithmus . . . . . . . . . . . . . . . . 14 3.4 Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.5 Der Endlichkeitssatz der Aussagenlogik . . . . . . . . . . . . . . . . . . 17 3.6 Axiomatisierbarkeit der Aussagenlogik . . . . . . . . . . . . . . . . . . 18 4 Prädikatenlogik 4.1 20 Syntax und Semantik der Prädikatenlogik erster Stufe (PL1) . . . . . . 20 4.1.1 Syntax der Prädikatenlogik . . . . . . . . . . . . . . . . . . . . 20 4.1.2 Semantik der Prädikatenlogik . . . . . . . . . . . . . . . . . . . 22 4.2 Normalformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3 Skolemform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5 Herbrand-Theorie und Grundresolution 28 6 Unifikation und Prädikatenlogische Resolution 31 6.1 Unifikation von Literalen . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.2 Prädikatenlogische Resolventen und Resolutionssatz . . . . . . . . . . . 32 1 6.3 Automatische Beweissysteme . . . . . . . . . . . . . . . . . . . . . . . . 33 7 Verfeinerungen der prädikatenlogischen Resolution 35 8 Logikprogrammierung und Prolog 38 9 Modal- und Temporallogik: Ausblick 39 9.1 Syntax und Semantik der Modallogik . . . . . . . . . . . . . . . . . . . 40 9.2 Zeitlogik und temporale Logik . . . . . . . . . . . . . . . . . . . . . . . 42 2 1 Modulbeschreibung “Das Modul führt in die Grundlagen der Aussagenlogik und der Prädikatenlogik ein. Es schult die Fähigkeit zur präzisen Definition von Begriffen und zur folgerichtigen Argumentation. Es demonstriert die Beziehung zwischen Syntax und Semantik am Beispiel von Logikkalkülen.” Im WS 2008/2009 zu behandelnde Inhalte: 1. Motivation - Bedeutung der Logik für die Informatik 2. Mengentheoretische Grundkonzepte und Schreibweisen 3. Syntax und Semantik der Aussagenlogik 4. Normalformen, Erfüllbarkeit, Hornformeln, Markierungsalgorithmus 5. Aussagenlogische Resolution 6. Folgern und Ableiten 7. Syntax und Semantik der Prädikatenlogik erster Stufe 8. Erfüllbarkeit, Modelle, Allgemeingültigkeit 9. Bereinigte Pränexform, Skolemform, Herbrandstrukturen 10. Unifikation und prädikatenlogische Resolution 11. PROLOG als Logikprogrammiersprache und SLD-Resolution 12. Ausblick auf weitere informatikrelevante Logikkalküle wie z.B. modale und temporale Logiken “Universitäten sind Anachronismen. Sie datieren noch aus der Zeit vor der Erfindung der Buchdruckerkunst. Damals war es sinnvoll, daß Professoren ihren Studenten ihr Wissen durch Vorträge - Vorlesungen genannt - vermittelten. Heute aber, da Wissen in Büchern nachgeschlagen werden kann, ist eine Vorlesung eine absurde Zeitverschwendung.” Maarten t’Hart “Das Wüten der ganzen Welt”, 1993, Ausgabe Piper Verlag 2005 “... Zukünftig werden auf dem Arbeitsmarkt nur noch Personen gefragt sein, die Zusammenhänge verstehen, die kluge Fragen stellen und den Dingen auf den Grund gehen können, ...” Trend- und Zukunftsforscher Matthias Horx in: UNICUM 26. Jahrgang Nr. 11 November 2008 S. 22 3 2 Einführung Das Wort Logik kommt aus dem Griechischen und bedeutet “die denkende Kunst bzw. Vorgehensweise”. Logik ist die Lehre des vernünftigen Schlußfolgerns. Die Logik ist Teilgebiet der Philosophie, der Mathematik und der Informatik. Wichtige Beiträge stammen u.a. von - Aristoteles (384-322 v.u.Z.) - Cicero (106-43 v.u.Z.) - Gottfried Wilhelm Leibniz (1646-1716) - George Boole (1815-1864) - Georg Cantor (1845-1918) - Gottlob Frege (1848-1925) - Bertrand Russell (1872-1970) - Alfred Tarski (1901-1983) - Kurt Gödel (1906-1978) 2.1 Warum ist Logik wichtig für die Informatik? Logik dient in der Informatik vor allem als Handwerkszeug und findet u.a. Anwendung bei: - Semantik von Programmiersprachen - Verifikation von Programmen (z.B. Hoare-Kalkül bzw. Hoare-Logik) - Grundlagen der technischen Informatik: Schaltkreise - Grundlagen der Künstlichen Intelligenz: Schließen in Wissensbasierten Systemen bzw. Expertensystemen; Deduktionssysteme 2.2 Warum ist Logik wichtig für die Mathematik? Logik dient zur Grundlegung der Mathematik: - Klärung des Definitionsbegriffes (induktive Definitionen) - Was ist ein Beweis? 4 - Klärung des Mengenbegriffes - Zusammenhang zwischen Folgern und Ableiten - Welche mathematischen Theorien sind axiomatisch beschreibbar bzw. algorithmisch beherrschbar? Bereits in der Antike gibt es Versuche, die Mathematik axiomatisch aufzubauen (z.B. die Elemente des Euklid), aber es fehlt der streng formale Zugang. Gottlob Frege begründet 1879 in seiner Begriffsschrift die moderne Logik durch Angabe eines logischen Kalküls. Georg Cantor entwickelt 1895 die naive Mengenlehre, die zur Grundlage der gesamten Mathematik wird, allerdings zeigt Bertrand Russell 1902, daß die naive Mengenlehre nicht widerspruchsfrei ist (Russellsche Antinomie): Z.B. führt die Menge X := {M | M 6∈ M} zu folgendem Widerspruch: X ∈ X ⇐⇒ X 6∈ X. Zermelo und Fraenkel entwickeln daraufhin ab ca. 1908 einen axiomatischen Zugang zur Mengenlehre, bei dem die Axiome festlegen, was Mengen sind. Die Hoffnung (noch unklar): Dieses System ist widerspruchsfrei. Programm von David Hilbert (1920): Jede mathematische Theorie soll axiomatisch aufgebaut werden. Kurt Gödel zeigt 1931, daß dies nicht geht. 2.3 Grundlegende Begriffe und Schreibweisen Mengen und Elemente: Mengen werden durch Angabe ihrer (paarweise verschiedenen) Elemente bestimmt, z.B.: • M := {0, 1}. • N := {0, 1, 2, 3, 4, 5, 6, . . .} ist die Menge der natürlichen Zahlen. Eigentlich: a) 0 ∈ N; b) Ist n ∈ N so auch n + 1 (d.h. hier wird eine Menge induktiv definiert). • ∅ ist die leere Menge (d.h. diejenige Menge, welche kein Element enthält). • {∅} ist die Einermenge mit dem Element ∅. Elementbeziehung und Teilmengenbeziehung: • a ∈ M heißt: a ist Element von Menge M. • a 6∈ M heißt: a ist kein Element von Menge M. • M ⊆ M ′ heißt: Jedes Element von M ist auch Element von M ′ . Formal: Für alle x gilt: x ∈ M =⇒ x ∈ M ′ . 5 • M = M ′ heißt: M ⊆ M ′ und M ′ ⊆ M. • M ⊂ M ′ heißt: M ⊆ M ′ und M 6= M ′ . • M 6⊂ M ′ heißt: Es ist nicht M ⊆ M ′ . Mengenoperationen: • A ∩ B := {x | x ∈ A und x ∈ B} (Durchschnitt von A und B). A und B heißen disjunkt, wenn A ∩ B = ∅ ist. • A ∪ B := {x | x ∈ A oder x ∈ B} (Vereinigung von A und B - nicht ausschließendes “oder”). • A \ B := {x | x ∈ A und x 6∈ B} (Differenz von A und B). • A := M \ A (Komplement von A bezüglich einer Grundmenge M). • P(A) := {B | B ⊆ A} (Potenzmenge von A). Identitäten bei Mengenoperationen (Rechnen mit Mengen): • A ∩ B = B ∩ A (Kommutativgesetz des Durchschnitts). • A ∪ B = B ∪ A (Kommutativgesetz der Vereinigung). • A ∩ (B ∩ C) = (A ∩ B) ∩ C (Assoziativgesetz des Durchschnitts). • A ∪ (B ∪ C) = (A ∪ B) ∪ C (Assoziativgesetz der Vereinigung). • A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C) (Distributivgesetz). • A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C) (Distributivgesetz). • A ∩ (A ∪ B) = A (Absorptionsgesetz). • A ∪ (A ∩ B) = A (Absorptionsgesetz). • A ∩ B = A ∪ B (de Morgansche Regel). • A ∪ B = A ∩ B (de Morgansche Regel). • A = A. n-faches Kreuzprodukt und n-Tupel: • Das n-Tupel (a1 , . . . , an ) bezeichnet die Folge der Elemente a1 , . . . , an in dieser Reihenfolge. 6 • Das n-fache Kreuzprodukt der Mengen A1 , A2 , . . . , An : A1 × A2 × . . . × An := {(a1 , . . . , an ) | a1 ∈ A1 , . . . , an ∈ An }. • Die n-te Potenz einer Menge A ist: A . . × A} | × .{z n−mal Die Anzahl der Elemente in einer endlichen Menge: |A| bezeichnet die Zahl der Elemente der endlichen Menge A. Es gilt: • |An | = |A|n . • |P(A)| = 2|A| . • |A| + |B| = |A ∪ B| + |A ∩ B|. Also gilt: Sind A und B disjunkt, so ist |A| + |B| = |A ∪ B|. Relationen: • Eine n-stellige Relation R über A ist eine Teilmenge R ⊆ An . • Eine zweistellige (oder: binäre) Relation R über A heißt – reflexiv, falls für alle a ∈ A gilt (a, a) ∈ R; – symmetrisch, falls für alle a, b ∈ A gilt: Aus (a, b) ∈ R folgt (b, a) ∈ R; – antisymmetrisch, falls für alle a, b ∈ A gilt: Aus (a, b) ∈ R und (b, a) ∈ R folgt a = b; – transitiv, falls für alle a, b, c ∈ A gilt: Aus (a, b) ∈ R und (b, c) ∈ R folgt (a, c) ∈ R; – linear, falls für alle a, b ∈ A gilt (a, b) ∈ R oder (b, a) ∈ R; – eine Halbordnung, falls R reflexiv, antisymmetrisch und transitiv ist; – eine Ordnung, falls R eine lineare Halbordnung ist; – eine Äquivalenzrelation, falls R reflexiv, symmetrisch und transitiv ist. Eine Äquivalenzrelation über A definiert eine Zerlegung von A in seine Äquivalenzklassen. Selbsttestaufgabe 2.1 R sei reflexiv und transitiv, jedoch nicht antisymmetrisch über A. Es sei x ∼R y, falls x = y oder ((x, y) ∈ R und (y, x) ∈ R). Behauptung: ∼R ist Äquivalenzrelation über A, und R ist auf den Äquivalenzklassen von ∼R eine Halbordnung. Funktionen: 7 • Eine zweistellige Relation (Abbildung) R ⊆ A × B heißt Funktion aus A nach B (oder: in B), falls gilt: Ist (a, b) ∈ R und (a, c) ∈ R, so ist b = c (f ist eindeutige Abbildung). Schreibweise: f : A → B. • Eine Funktion f aus A nach B heißt eineindeutig (umkehrbar eindeutig, injektiv), falls aus f (a1 ) = f (a2 ) folgt: a1 = a2 . In diesem Fall existiert die inverse Funktion f −1 := {(b, a) | (a, b) ∈ f }. • Der Definitionsbereich der Funktion f : A → B ist Df := {a ∈ A | es existiert ein b ∈ B mit f (a) = b} (Projektion auf die linke Seite). • Der Wertebereich der Funktion f : A → B ist Wf := {b ∈ B | es existiert ein a ∈ A mit f (a) = b} (Projektion auf die rechte Seite). • Eine Funktion f : A → B heißt total (bzw. überall definiert, Abbildung von A nach B), falls Df = A ist. • Eine Funktion f : A → B heißt surjektiv (bzw. Abbildung auf B), falls Wf = B ist. • Eine Funktion f : A → B heißt bijektiv, wenn sie injektiv und surjektiv ist. • Eine Funktion f : {0, 1}n → {0, 1} heißt n-stellige Boolesche Funktion. Selbsttestaufgabe 2.2 Wieviele n-stellige Boolesche Funktionen gibt es? Es gibt einen einfachen Zusammenhang zwischen 0-1-Folgen der Länge n und Teilmengen einer n-elementigen Menge: Für eine n-elementige Menge A = {a1 , . . . , an } sowie eine Teilmenge B ⊆ A gibt die 0-1-Folge fB an, welche Elemente in B sind: fB (i) = 1 ⇔ ai ∈ B. Damit kann man die Menge aller Booleschen Funktionen mit n Variablen auch als die Menge aller Eigenschaften auf der Potenzmenge von A = {a1 , . . . , an } auffassen. Für die Informatik sind endlich beschreibbare Objekte von besonderem Interesse, allerdings spielen viele unendliche Mengen eine wichtige Rolle wie z.B. die Menge der natürlichen Zahlen. Was ist eine unendliche Menge? • Zwei Mengen A und B heißen gleichmächtig, wenn eine eineindeutige Abbildung f von A auf B existiert. Schreibweise: A ∼ B. Behauptung: ∼ ist eine Äquivalenzrelation. Zwei endliche Mengen sind in derselben Äquivalenzklasse, wenn sie gleichviele Elemente haben - also sind die natürlichen Zahlen eine Abstraktion von diesen Äquivalenzklassen. Die Kardinalzahl einer Menge ist ihre Äquivalenzklasse bzgl. der Äquivalenzrelation ∼. 8 • Eine Menge ist unendlich, wenn sie zu einer ihrer echten Teilmengen gleichmächtig ist. • Eine Menge ist abzählbar unendlich, wenn sie zur Menge der natürlichen Zahlen gleichmächtig ist. Andernfalls ist sie überabzählbar unendlich. Selbsttestaufgabe 2.3 Zeigen Sie: (1) Die Menge der ganzen Zahlen und die Menge der natürlichen Zahlen sind gleichmächtig. (2) Die Menge der reellen Zahlen ist überabzählbar unendlich. (3) Eine Menge und ihre Potenzmenge sind nicht gleichmächtig. Damit ist wegen (3) z.B. auch die Menge der Funktionen aus der Menge der natürlichen Zahlen in {0, 1} überabzählbar. 2.4 Literaturauswahl - Uwe Schöning, Logik für Informatiker, Spektrum Akademischer Verlag - B. Heinemann, K. Weihrauch, Logik für Informatiker, Teubner Stuttgart - M. Kreuzer, S. Kühling, Logik für Informatiker, Pearson Studium 9 3 Aussagenlogik Die Aussagenlogik befaßt sich mit dem Wahrheitswert von aussagenlogischen Formeln. Die klassische Aussagenlogik hat nur zwei Wahrheitswerte, nämlich WAHR und FALSCH. Dies ist eine Abstraktion von der Wirklichkeit, die häufig ausreichend ist und insbesondere bei mathematischen Behauptungen reicht. So ist z.B. die Aussage 1 + 1 = 2 wahr, während die Aussage 1 + 1 = 3 falsch ist. Bei Aussagen über die reale Welt ist dies nicht mehr so klar wie z.B. bei der Aussage “Rostock liegt an der Ostsee”. Bei der Aussage “Warnemünde liegt an der Ostsee” wird jeder zustimmen. Ebenso unklar ist der Wahrheitswert der Aussage “Jeder Mensch ist entweder männlich oder weiblich”. Die Richtigkeit der Aussage “X ist weiblich” bzw. X ist männlich” kann beim jeweiligen Menschen X zumindest zeitabhängig sein. In der klassischen Aussagenlogik sind jedoch nur zwei Wahrheitswerte zugelassen, die häufig mit TRUE (T, WAHR, W, 1) bzw. FALSE (F, FALSCH, 0) bezeichnet werden. Wir verwenden die Werte 1 für WAHR und 0 für FALSCH, was den Vorteil hat, daß 0 < 1 verwendet werden kann. 3.1 Syntax und Semantik Zur Syntax gehört die rekursive Definition der Formeln: Wir verschaffen uns zunächst einen potentiell unendlichen Vorrat an Aussagenvariablen A1 , A2 , . . . , An , . . . (1) Jede Aussagenvariable ist eine (atomare) Formel. (2) Sind F und G Formeln, so sind auch folgende Zeichenreihen Formeln: (F ∧ G) (F ∨ G) (¬F ) (3) Weitere Formeln existieren nicht. Ist die Menge der aussagenlogischen Formeln dadurch wohldefiniert??? Nun zur Semantik der Formeln: Zunächst verschaffen wir uns eine Belegung b aller Aussagenvariablen mit 0 oder 1. Dies heißt, wir wählen eine Funktion b, die jede Aussagenvariable auf einen Wert aus {0, 1} abbildet. Dann ist b(F ∧ G) := min(b(F ), b(G)) b(F ∨ G) := max(b(F ), b(G)) b(¬F ) := 1 − b(F ) 10 Das heißt: Das Syntaxzeichen ∧ steht für das logische UND. Das Syntaxzeichen ∨ steht für das logische ODER im nicht ausschließenden Sinn (also nicht “entweder oder”). Das Syntaxzeichen ¬ steht für die Negation. Warum werden nicht auch die Syntaxzeichen → und ↔ verwendet? Eine Belegung aller (unendlich vielen) Aussagenvariablen ist ein unendliches Objekt. Daher zieht man es i.a. vor, sich auf die Belegung der Aussagenvariablen einer gegebenen Formel zu beschränken. Definiert eine Belegung b einen Wahrheitswert für alle Aussagenvariablen einer Formel F , so heißt b passende Belegung für F . Eine Formel F heißt erfüllbar, wenn es eine passende Belegung gibt, die F erfüllt, d.h. b(F ) = 1. Eine Formel F heißt allgemeingültig (gültig, Tautologie), wenn alle passenden Belegungen F erfüllen. Offenbar ist jede allgemeingültige Formel F auch erfüllbar, und F ist genau dann allgemeingültig, wenn ¬F nicht erfüllbar ist. Ein Beispiel für eine allgemeingültige Formel ist A1 ∨ ¬A1 , und ein Beispiel für eine nicht erfüllbare Formel ist A1 ∧ ¬A1 . Als Abkürzung für eine Tautologie verwenden wir manchmal auch das Zeichen 1 als Formel, und als Abkürzung für eine nicht erfüllbare Formel verwenden wir manchmal auch das Zeichen 0 als Formel. Die Tautologien sind sozusagen die Gesetze der Aussagenlogik. Die Tautologie A1 ∨¬A1 kann man auch als Prinzip vom ausgeschlossenen Dritten bezeichnen. Wie prüft man jedoch, ob eine gegebene Formel Tautologie bzw. ihre Negation nicht erfüllbar ist? Die naive Methode ist die Überprüfung der Wahrheitswerttabelle: Beispiel: F = ¬A1 ∨ A2 : A1 0 0 1 1 A2 0 1 0 1 ¬A1 ∨ A2 1 1 0 1 Ist F = F (A1 , . . . , An ) eine Formel mit n Variablen, so gibt es 2n mögliche Belegungen der Aussagenvariablen A1 , . . . , An , und darin liegt ein großes Problem, da die Exponentialfunktion 2n sehr rasch wächst und schon für relativ kleine n astronomisch große Werte annimmt (Anzahl der Atome der Erde ist etwa 6 · 1049 , Anzahl der Atome der Sonne ist etwa 1057 , Anzahl der Atome im Weltall ist etwa 1078 ). Die (in der obigen Syntaxdefinition nicht verwendete) Implikation F → G ist eine ganz wichtige Aussagenverbindung, deren Semantik genau der obigen Tabelle entspricht: A1 0 0 1 1 A2 0 1 0 1 ¬A1 ∨ A2 1 1 0 1 11 A1 → A2 1 1 0 1 Wir können die Implikation F → G also als Abkürzung für ¬F ∨ G betrachten, und dies ist der Grund, warum sie in der Syntaxdefinition weggelassen wurde (sie wird jedoch später häufig benötigt). Der Doppelpfeil F ↔ G ist als Abkürzung für (F → G) ∧ (G → F ) zu betrachten. A1 0 0 1 1 3.1.1 A2 0 1 0 1 A1 ↔ A2 1 0 0 1 Semantische Äquivalenz Formeln F und G heißen semantisch äquivalent (F ≡ G), falls für jede Belegung b, die passend für F und G ist, b(F ) = b(G) gilt. Behauptung: Die Relation ≡ ist Äquivalenzrelation auf der Menge der aussagenlogischen Formeln. Satz 3.1 Es gelten die folgenden Äquivalenzen: (1) F ∧ F ≡ F und F ∨ F ≡ F (Idempotenz). (2) F ∧ G ≡ G ∧ F und F ∨ G ≡ G ∨ F (Kommutativität). (3) (F ∧ G) ∧ H ≡ F ∧ (G ∧ H) und (F ∨ G) ∨ H ≡ F ∨ (G ∨ H) (Assoziativität). (4) F ∧ (F ∨ G) ≡ F und F ∨ (F ∧ G) ≡ F (Absorption). (5) F ∧ (G ∨ H) ≡ (F ∧ G) ∨ (F ∧ H) und F ∨ (G ∧ H) ≡ (F ∨ G) ∧ (F ∨ H) (Distributivität). (6) ¬¬F ≡ F (Doppelnegation). (7) ¬(F ∧ G) ≡ ¬F ∨ ¬G und ¬(F ∨ G) ≡ ¬F ∧ ¬G (de Morgan). (8) F ∧ G ≡ G und F ∨ G ≡ F , falls F Tautologie. (9) F ∧ G ≡ F und F ∨ G ≡ G, falls F unerfüllbar. Selbsttestaufgabe 3.1 Zeigen Sie: F ≡ G gilt genau dann, wenn F ↔ G allgemeingültig ist. Satz 3.2 (Ersetzbarkeitstheorem) Wenn F ≡ G Formeln sind und H eine Formel mit mindestens einem Vorkommen der Teilformel F , so ist H äquivalent zu jeder Formel H ′ , die aus H entsteht durch Ersetzung von irgendwelchen Vorkommen von F in H durch G. 12 3.1.2 Beweisprinzipien Logik als die Lehre des vernünftigen Schlußfolgerns liefert einige Beweisprinzipien: Ausgehend von “richtigen” Aussagen leitet man weitere “richtige” Aussagen ab: Dahinter steckt die folgende Behauptung: (A ∧ (A → B)) → B ist allgemeingültig (Abtrennungsregel, modus ponens). Kontraposition: Um zu zeigen, daß F → G allgemeingültig ist, zeigt man, daß ¬G → ¬F allgemeingültig ist. Die Rechtfertigung ist die folgende semantische Äquivalenz: F → G ≡ ¬G → ¬F . Beweis durch Widerspruch: Um zu zeigen, daß F √ gilt, wird angenommen, daß ¬F gilt und daraus ein Widerspruch abgeleitet. Beispiel: 2 ist keine rationale Zahl. Beweis durch vollständige oder strukturelle Induktion: Beispiele: • Beweis, daß |P(A)| = 2|A| gilt. • Beweis des Ersetzbarkeitstheorems. 3.1.3 Normalformen Ein Literal ist eine Aussagenvariable oder deren Negation. Eine Klausel ist eine ∨Verbindung von Literalen. Eine Formel F ist V in konjunktiver Normalform (KNF), falls W i sie eine ∧-Verbindung von Klauseln ist: F = ni=1 ( m L ). j=1 i,j Eine Formel F ist in disjunktiver Normalform falls sie eine ∨-Verbindung von Wn Vm(DNF), i Konjunktionen von Literalen ist: F = i=1 ( j=1 Li,j ). Satz 3.3 Zu jeder Formel gibt es eine semantisch äquivalente Formel in KNF bzw. in DNF. Beweis durch strukturelle Induktion oder über Wahrheitswerttabellen. 3.2 Das Erfüllbarkeitsproblem der Aussagenlogik Das Problem SAT (Abkürzung für SATISFIABILITY) ist das folgende Entscheidungsproblem: Gegeben: Eine aussagenlogische Formel F in KNF. Frage: Hat F eine erfüllende Belegung? Naiver Algorithmus: Auswertung der Wahrheitswerttabelle. Grundlegende Rolle bei Problemen der Künstlichen Intelligenz: Gegeben: Wissensbasis in Form von Formeln F1 , . . . , Fn und Anfrage Q. Frage: Ist F1 ∧ . . . ∧ Fn → Q allgemeingültig? 13 Zusammenhang zum Erfüllbarkeitsproblem: F1 ∧ . . . ∧ Fn → Q ist genau dann allgemeingültig, wenn ¬(F1 ∧ . . . ∧ Fn → Q) nicht erfüllbar ist, und ¬(F1 ∧ . . . ∧ Fn → Q) ≡ ¬(¬(F1 ∧ . . . ∧ Fn ) ∨ Q) ≡ (F1 ∧ . . . ∧ Fn ) ∧ ¬Q. Also kommt es darauf an, die Nichterfüllbarkeit der Formel (F1 ∧ . . . ∧ Fn ) ∧ ¬Q nachzuweisen. Dies ist jedoch im allgemeinen Fall schwierig. Für die im folgenden Abschnitt behandelten Hornformeln ist das Problem einfacher. 3.3 Hornformeln und Markierungsalgorithmus Eine Klausel K in einer KNF heißt Hornklausel, wenn K höchstens ein nichtnegiertes Literal enthält. Hornklauseln haben also die Form ¬A1 ∨. . .∨¬Ak ∨Ak+1 , ¬A1 ∨. . .∨¬Ak oder Ai . Die KNF F = K1 ∧ . . . ∧ Km heißt Hornformel, wenn alle Klauseln Ki , 1 ≤ i ≤ m, Hornklauseln sind. Hornklauseln in Implikationsschreibweise: 1. ¬A1 ∨ . . . ∨ ¬Ak ∨ Ak+1 ≡ A1 ∧ . . . ∧ Ak → Ak+1 2. ¬A1 ∨ . . . ∨ ¬Ak ≡ A1 ∧ . . . ∧ Ak → 0 3. Ai ≡ 1 → Ai . Nun soll von einer Hornformel festgestellt werden, ob sie erfüllbar ist. Dies geschieht mit dem folgenden Markierungsalgorithmus: Gegeben: Eine Hornformel F = K1 ∧ . . . ∧ Km mit den Klauseln Ki in Implikationsschreibweise Frage: Ist F erfüllbar? (1) (2) (3) (4) (5) (6) Markiere jedes Vorkommen einer atomaren Formel A in F , falls in F eine Teilformel 1 → A existiert. while es gibt in F eine Teilformel G der Form (a) A1 ∧ . . . ∧ Ak → Ak+1 oder (b) der Form A1 ∧ . . . ∧ Ak → 0, k ≥ 1, wobei alle Ai , 1 ≤ i ≤ k, markiert sind und Ak+1 noch nicht markiert ist, do if G hat die Form (a) then markiere jedes Vorkommen von Ak+1 else Ausgabe “F ist unerfüllbar”; STOP Ausgabe “F ist erfüllbar” (mit einer Belegung, die den Variablen genau dann den Wahrheitswert 1 gibt, wenn sie markiert sind). Satz 3.4 Der Markierungsalgorithmus ist für gegebene Hornformel F korrekt und durchläuft die while-Schleife höchstens n-mal, wobei n die Zahl der Variablen in F ist. 14 Leider gibt es nicht zu jeder aussagenlogischen Formel eine semantisch äquivalente Hornformel: Selbsttestaufgabe 3.2 Finden Sie eine aussagenlogische Formel F , zu der es keine semantisch äquivalente Hornformel gibt, und begründen Sie, warum F zu keiner Hornformel semantisch äquivalent ist. 3.4 Resolution Um die Unerfüllbarkeit einer aussagenlogischen Formel nachzuweisen, gibt es das wichtige Verfahren der Resolution. Dazu gehen wir wieder davon aus, daß die Formel F in KNF gegeben ist, und schreiben die Klauseln als Literalmengen, da es nicht auf die Reihenfolge der Literale ankommt. So ist z.B. die Formel F = (A1 ∨ ¬A2 ∨ ¬A3 ) ∧ (A2 ∨ ¬A3 ∨ ¬A4 ) ∧ (¬A1 ∨ A3 ∨ A4 ) eine KNF, die in Mengenschreibweise wie folgt aussieht: F = {{A1 , ¬A2 , ¬A3 }, {A2, ¬A3 , ¬A4 }, {¬A1 , A3 , A4 }} Zunächst definieren wir einen Resolventen zweier Klauseln. Sind K1 , K2 Klauseln, so daß K1 das Literal A und K2 das Literal ¬A enthält, so ist R := (K1 \{A})∪(K2 \{¬A}) Resolvent von K1 und K2 . Das nachfolgende Resolutionslemma besagt, daß sich die Semantik einer Klauselmenge bei Hinzunahme eines Resolventen nicht ändert: Lemma 3.1 (Resolutionslemma) Für eine Klauselmenge F und einen beliebigen Resolventen zweier Klauseln aus F gilt F ≡ F ∪ {R}. Beweis. Offensichtlich erfüllt jede Belegung, die F ∪ {R} erfüllt, auch F . Umgekehrt sei nun b eine Belegung, welche alle Klauseln von F erfüllt. Es sei R Resolvent der Klauseln K1 und K2 aus F : Es sei R = (K1 \ {A}) ∪ (K2 \ {¬A}) für ein Literal A. Ist b(A) = 1, so ist b(K2 \ {¬A}) = 1, weil nach Voraussetzung b(K2 ) = 1 ist, und ist b(A) = 0, so ist b(K1 \ {A}) = 1, und damit ist in beiden Fällen b(R) = 1. q.e.d. Von besonderem Interesse ist der leere Resolvent: R = ∅ entsteht als Resolvent aus zwei Klauseln K1 = {A} und K2 = {¬A}. Da zwischen den Klauseln in einer KNF als Verbindung ∧ steht, ist die Unerfüllbarkeit der Verbindung K1 ∧ K2 und damit der gesamten Klauselmenge offensichtlich. Erhält man also in einem Schritt den leeren Resolventen, so ist die Formel unerfüllbar, und das Resolutionslemma besagt, daß dies auch in mehreren Schritten so bleibt. Der folgende Resolutionssatz behauptet, daß auch die Umkehrung gilt: Satz 3.5 (Resolutionssatz) Für eine Klauselmenge F gilt: F ist genau dann unerfüllbar, wenn in endlich vielen Schritten die leere Klausel aus F resolvierbar ist. 15 Beweis. Aus dem Resolutionslemma (Lemma 3.1) folgt offensichtlich: Wenn nach endlich vielen Schritten leere Klausel resolviert wird, so ist F unerfüllbar. Umgekehrt sei nun F = F (A1 , . . . , An ) eine unerfüllbare Klauselmenge,die höchstens die Aussagenvariablen A1 , . . . , An enthält. Wir zeigen durch Induktion über n, daß die leere Klausel resolvierbar ist. Induktionsanfang. Für n = 1 ist wegen der Unerfüllbarkeit von F sowohl eine Klausel {A1 } als auch eine Klausel {¬A1 } vorhanden, und Resolution ergibt in einem Schritt leere Klausel. Induktionsvoraussetzung. Für unerfüllbare Klauselmengen mit höchstens n − 1 Variablen A1 , . . . , An−1 sei die leere Klausel in endlich vielen Schritten resolvierbar. Induktionsschritt. Für F mit höchstens n Aussagenvariablen A1 , . . . , An bilden wir folgende zwei Klauselmengen: F0 entsteht aus F , indem in jeder Klausel, die An enthält, die Vorkommen von An gestrichen werden, und alle Klauseln, die ¬An enthalten, werden komplett gestrichen. (Dies entspricht einer Fixierung des Wertes von An auf 0). Vollkommen analog dazu bildet man F1 : F1 entsteht aus F , indem in jeder Klausel, die ¬An enthält, die Vorkommen von ¬An gestrichen werden, und alle Klauseln, die An enthalten, werden komplett gestrichen. (Dies entspricht einer Fixierung des Wertes von An auf 1). Behauptung: Ist F unerfüllbar, so sind auch F0 und F1 unerfüllbar. Angenommen, es gibt eine Belegung b, die F0 erfüllt. Dann setzen wir b(An ) := 0, und die so definierte Fortsetzung von b erfüllt F im Widerspruch zur Voraussetzung. Analog zeigt man, daß F1 unerfüllbar ist. Die Konstruktion von F0 und F1 erfolgt, um die Induktionsvoraussetzung anwenden zu können, denn F0 und F1 enthalten weniger Aussagenvariablen als F . Also ist aus beiden Klauselmengen jeweils ∅ in endlich vielen Schritten resolvierbar. Füllt man die Klauseln wieder auf und führt dieselben Resolutionsschritte bei den Klauseln von F aus, so ergibt sich entweder auch eine Resolution von ∅, oder es ergeben sich die Klauseln {An } bzw. {¬An } als Ergebnis, und in einem weiteren Schritt erhält man ∅ als Resolventen. q.e.d. Aus dem Resolutionssatz ergibt sich folgender Resolutionsalgorithmus: Für eine Klauselmenge F in Mengenschreibweise sei Res(F ) := F ∪ {R | R ist Resolvent zweier Klauseln in F }. Außerdem sei Res0 (F ) := F sowie Resk+1 (F ) := Res(Resk (F )) und 16 Res∗ (F ) := S∞ i=0 Resi (F ). Verwenden wir diese Schreibweise, so lautet die Aussage des Resolutionssatzes: F ist genau dann unerfüllbar, wenn ∅ ∈ Res∗ (F ). Resolutionsalgorithmus der Aussagenlogik: Gegeben: Eine Formel F in KNF F = K1 ∧ . . . ∧ Km mit den Klauseln Ki in Mengenschreibweise. Frage: Ist F erfüllbar? (1) (2) (3) repeat G := F ; F := Res(F ) until (∅ ∈ F ) or (F = G). if (∅ ∈ F ) then Ausgabe “F ist unerfüllbar” else Ausgabe “F ist erfüllbar”. Damit hat der Resolutionsalgorithmus der Aussagenlogik zwei Abbruchkriterien. Erhält man die leere Klausel, so ist nach dem Resolutionssatz F nicht erfüllbar und umgekehrt. Nun ist lediglich noch zu klären, ob im Fall, daß F erfüllbar ist, nach endlich vielen Schritten kein neuer Resolvent mehr entsteht, aber dies ist klar, weil eine Formel mit den Aussagenvariablen A1 , . . . , An höchstens 4n verschiedene Klauseln in Mengenschreibweise haben kann (jede Variable kann in einer Klausel positiv, negativ, positiv und negativ oder gar nicht vorkommen). Damit endet der Resolutionsalgorithmus im Falle erfüllbarer Formeln nach höchstens 4n Schritten mit dem Abbruchkriterium F = G. 3.5 Der Endlichkeitssatz der Aussagenlogik Wie prüft man, ob eine unendliche Menge M = {F1 , F2 , . . .} von Formeln unerfüllbar ist? Der nachfolgende Endlichkeitssatz beschreibt dazu einen Weg: M = {F1 , F2 , . . .} ist genau dann unerfüllbar, wenn es eine endliche Teilmenge von M gibt, die unerfüllbar ist. Also kann man von immer größeren Teilmengen {F1 } ⊂ {F1 , F2 } ⊂ {F1 , F2 , F3 } ⊂ . . . schrittweise Resolventen bilden in der Hoffnung, daß nach endlich vielen Schritten leere Klausel resolviert wird. Wenn dies eintritt, ist die Formelmenge M unerfüllbar und umgekehrt. Solange die leere Klausel nicht resolviert wurde, weiß man jedoch noch nichts. Satz 3.6 (Endlichkeitssatz der Aussagenlogik) Eine (unendliche) Menge M von aussagenlogischen Formeln ist genau dann erfüllbar, wenn jede endliche Teilmenge von M erfüllbar ist. Beweis. Der Satz ist nur für unendliche Formelmengen interessant. In der Richtung von links nach rechts ist die Behauptung trivial. Umgekehrt hat man zu zeigen, daß M erfüllbar ist, wenn jede endliche Teilmenge von M erfüllbar ist. Wir setzen also voraus, daß jede endliche Teilmenge von M ein Modell habe, und konstruieren ein Modell 17 für M: Es sei Mn die Menge der Formeln in M, die nur (höchstens) die Variablen A1 , . . . , An enthalten. Man beachte, daß Mn nicht notwendig endlich ist, es gibt jedoch n höchstens k ≤ 22 verschiedene Äquivalenzklassen bzgl. semantischer Äquivalenz in Mn . Wir wählen aus jeder Klasse einen Repräsentanten und erhalten so die Menge Mn′ := {F1 , . . . , Fk }, die endlich ist und nach Voraussetzung ein Modell bn hat. Dies ist dann auch Modell für Mn . Wegen M1 ⊆ M2 ⊆ . . . ⊆ Mn . . . ist bn auch Modell für M1 , . . . , Mn−1 . Das gesuchte Modell b für M wird nun wie folgt stufenweise konstruiert: Stufe 0: b := ∅; I := {1, 2, 3, . . .}. (0) Stufe n > 0: if es gibt unendlich viele Indizes i ∈ I mit bi (An ) = 1 then begin b := b ∪ {(An , 1)}; I := I \ {i | bi (An ) 6= 1} end else begin b := b ∪ {(An , 0)}; I := I \ {i | bi (An ) 6= 0} end. (n1 ) (n2 ) (n3 ) Die so definierte Relation b ist offenbar eine Belegung aller Aussagenvariablen A1 , A2 , . . ., da sie in jeder Runde n genau einen Wert für An festlegt. Wichtig ist, daß in jeder Runde die Menge I unendlich bleibt. Behauptung: b ist Modell für M. Es sei F ∈ M. In F kommen nur endlich viele Variablen A1 , . . . , Al vor. Also ist F ∈ Ml ⊆ Ml+1 ⊆ . . ., und jede der Belegungen bl , bl+1 , . . . ist Modell für F . In jeder Stufe der Konstruktion verbleiben unendlich viele Indizes i in I. Diese Indizes haben die Eigenschaft bi (A1 ) = b(A1 ), . . . , bi (Al ) = b(Al ) für i ≥ l. Damit ist b(F ) = 1 und somit auch b(M) = 1. q.e.d. 3.6 Axiomatisierbarkeit der Aussagenlogik Eines der zentralen Anliegen der Logik (und auch der Künstlichen Intelligenz) ist die rein syntaktische Beschreibung von Theorien durch Axiome und Ableitungs- oder Schlußregeln, die aus bereits vorhandenen Formeln weitere Formeln ableiten. Solche Theorien kann man auf rein syntaktische Weise beherrschen und einem Deduktionssytem überlassen. Dies gelingt jedoch in den wenigsten Fällen. Ein Beispiel für eine axiomatisierbare Theorie ist die Aussagenlogik. Wir wählen folgende Axiome und Schlußregeln: Axiome: 1. p → (q → p) 2. ((p → q) → p) → p 18 3. (p → q) → ((q → r) → (p → r)) 4. (p ∧ q) → p 5. (p ∧ q) → q 6. (p → q) → ((p → r) → (p → (q ∧ r))) 7. p → (p ∨ q) 8. q → (p ∨ q) 9. (p → r) → ((q → r) → ((p ∨ q) → r)) 10. (p ↔ q) → (p → q) 11. (p ↔ q) → (q → p) 12. (p → q) → ((q → p) → (p ↔ q)) 13. (p → q) → (¬q → ¬p) 14. p → ¬¬p 15. ¬¬p → p Ableitungsregeln: 1. Alle Axiome sind ableitbar. 2. Sind A und A → B ableitbar, so ist auch B ableitbar (Abtrennungsregel, modus ponens) 3. Ist A ableitbar, a eine atomare Formel, die in A vorkommt, und ist B eine beliebige Formel, so ist auch die Formel A[a/B] ableitbar, die durch Ersetzung aller Vorkommen von a in A durch B entsteht. Bezeichnet man mit TAUT die Menge der aussagenlogischen Tautologien und mit Abl∗ (Ax) das Resultat endlichmaliger Anwendung der Ableitungsregeln auf die Menge der Axiome, so gilt: Satz 3.7 (Axiomatisierungssatz der Aussagenlogik) TAUT=Abl∗ (Ax). Die Axiome und Schlußregeln definieren auch einen sogenannten Kalkül. Der Beweis des Satzes 3.7 hat zwei Richtungen zu zeigen: 1. Korrektheit des Kalküls: Abl∗ (Ax) ⊆ TAUT (dies ist leicht zu sehen, indem man zeigt, daß alle 15 Axiome Tautologien sind sowie bei Anwendung einer Ableitungsregel wieder eine Tautologie entsteht). 2. Vollständigkeit des Kalküls: TAUT ⊆ Abl∗ (Ax) Dieser Beweis ist sehr aufwendig und z.B. in [G. Asser, Einführung in die Mathematische Logik I, B.G. Teubner Leipzig 1967] nachlesbar. 19 4 Prädikatenlogik Mit der Aussagenlogik lassen sich viele Aussagen der Mathematik und Informatik nicht beschreiben, weil die Syntax der Aussagenlogik nicht ausdrucksstark genug ist. So reicht die Aussagenlogik z.B. nicht aus, um die Konvergenz einer Folge reeller Zahlen a1 , a2 , . . . zu definieren: Es existiert eine Zahl a, so daß gilt: für alle (noch so kleinen) ε < 0 existiert eine natürliche Zahl nε , so daß für alle n > nε der Abstand |an − a| ≤ ε ist. d.h., fast alle (bis auf endlich viele) Folgenelemente liegen in einer ε-Umgebung von a. Um dies in einer syntaktisch korrekten Weise auszudrücken, braucht man die Prädikatenlogik, die in Ergänzung der Aussagenlogik nicht nur Aussagenvariablen, sondern Variablen beliebiger Art verwendet sowie Symbole für Relationen, Funktionen und Quantoren einführt. In der obigen Definition ist “(es) existiert” und “für alle” jeweils ein sogenannter Quantor, < und ≤ bezeichnen Relationen, und |x| bezeichnet die Betragsfunktion. 4.1 4.1.1 Syntax und Semantik der Prädikatenlogik erster Stufe (PL1) Syntax der Prädikatenlogik Zur Definition der Syntax der Prädikatenlogik brauchen wir Symbole für Variablen xi , i = 1, 2, 3, . . ., Funktionensymbole fi , i = 1, 2, 3, . . ., die gewisse Stelligkeiten haben (und für Funktionen stehen) sowie Prädikatensymbole Pi , i = 1, 2, 3, . . ., die ebenfalls gewisse Stelligkeiten haben (und für Relationen stehen). Im Gegensatz zur Aussagenlogik erhalten die Variablen keine Wahrheitswerte, und die Funktionen- und Prädikatensymbole gibt es ebenfalls in der Aussagenlogik nicht. Ein 0-stelliges Funktionensymbol ist ein Konstantensymbol. Wir vereinbaren folgende vereinfachende Schreibweise (jeweils bei Bedarf mit Indizes): - u, v, w, x, y, z bezeichnen Variablen. - a, b, c bezeichnen Konstanten. - f, g, h seien Funktionensymbole. - P, Q, R seien Prädikatensymbole. 20 Die Syntax wird rekursiv in zwei Stufen definiert: 1. Terme: (T1) Jede Variable ist ein Term. (T2) Ist f ein k-stelliges Funktionensymbol und sind t1 , . . . , tk Terme, so ist auch f (t1 , . . . , tk ) ein Term. (T3) Weitere Terme existieren nicht. 2. Formeln: (F1) Ist P ein k-stelliges Prädikatensymbol und sind t1 , . . . , tk Terme, so ist P (t1 , . . . , tk ) eine (atomare) Formel. (F2) Sind F und G Formeln, so sind auch folgende Zeichenreihen Formeln: (F ∧ G) (F ∨ G) (¬F ) (F3) Ist x Variable und F Formel, so ist auch ∀xF sowie ∃xF Formel. (F4) Weitere Formeln existieren nicht. Eine Formel G heißt Teilformel einer Formel F , falls G ein Teilwort (d.h. eine Folge von aufeinanderfolgenden Zeichen) von F ist. Dabei soll gelten: Die Formel F ist Teilformel von F . Beispiel: Die Formel P (x) ∧ ∀xQ(x, y) enthält die Teilformeln P (x) ∧ ∀xQ(x, y), P (x), ∀xQ(x, y), Q(x, y). Die Zeichen ∀ und ∃ heißen Quantoren. Sie beziehen sich in der Prädikatenlogik erster Stufe auf Variablen, d.h., in ∀xF sowie ∃xF ist x eine Variable. In der Prädikatenogik höherer Stufe kann dies auch ein Funktionen- oder Prädikatensymbol sein, aber zunächst beschränken wir uns auf Variablen x. Alle Vorkommen von Variablen in Formeln werden in gebundene und freie Vorkommen unterteilt: Ein Vorkommen einer Variablen x in der Formel F heißt gebunden, falls es in einer Teilformel ∀xG bzw. ∃xG steht, andernfalls heißt es frei. Eine Variable kann sowohl gebunden als auch frei vorkommen. Beispiel: P (x) ∧ ∀xQ(x). Eine Formel heißt Aussage (oder geschlossene Formel), falls in ihr alle Vorkommen von Variablen gebunden sind. 21 4.1.2 Semantik der Prädikatenlogik Anders als bei Aussagenlogik, wo eine Formel eine Wahrheitswerttabelle definiert, brauchen wir in der PL1 zur Formel F Angaben, wofür die Prädikaten- und Funktionensymbole stehen und welche Werte die Variablen bekommen. Dazu dient der folgende Begriff: Eine Struktur ist ein Paar A = (UA , IA ), bei der UA eine beliebige nichtleere Menge ist (das sogenannte Universum), und IA ist eine Abbildung, die folgendes festlegt: - für jedes k-stellige Prädikatensymbol P ist IA (P ) = P A ⊆ UAk eine k-stellige Relation über UA ; - für jedes k-stellige Funktionensymbol f ist IA (f ) = f A eine k-stellige Funktion aus UAk in UA ; - für jede Variable x, die in F frei vorkommt, ist IA (x) = xA ∈ UA Wert der Variablen x bei der Struktur A. Eine Struktur A = (UA , IA ) heißt zu einer Formel F passend, falls IA für alle in F vorkommenden Funktionen- und Prädikatensymbole definiert ist sowie für alle Variablen x, die in F frei vorkommen, einen Wert festlegt. Damit kann nun der Wert eines Terms t bei der Struktur A entsprechend der rekursiven Definition der Terme bestimmt werden: 1. Ist t = x eine Variable, so ist A(t) = xA . A 2. Ist t = f (t1 , . . . , tk ), so ist A(t) = tA = f A (tA 1 , . . . , tk ). Entsprechend lassen sich die Wahrheitswerte von Formeln rekursiv definieren: 1. Ist F = P (t1 , . . . , tk ) eine atomare Formel, so ist A(F ) = A A falls (tA 1 , . . . , tk ) ∈ P sonst 1 0 2. (a) A(F ∧ G) := min(A(F ), A(G)) (b) A(F ∨ G) := max(A(F ), A(G)) (c) A(¬F ) := 1 − A(F ). 3. A(∀xF ) := min{A[x/u] (F ) | u ∈ UA } und A(∃xF ) := max{A[x/u] (F ) | u ∈ UA }. Hierbei bedeutet A[x/u] diejenige Struktur, die x mit dem Element u ∈ UA belegt und im übrigen die Interpretation wie A vornimmt. 22 Eine passende Struktur A zu F ist Modell für F , falls A(F ) = 1 ist. Ein Modell A = (UA , IA ) heißt endlich, falls UA endlich ist. Eine Formel F heißt erfüllbar, falls es ein Modell zu F gibt. F heißt allgemeingültig, falls jede zu F passende Struktur ein Modell für F ist. Die Prädikatenlogik ist eine Erweiterung der Aussagenlogik: Um sich auf aussagenlogische Formeln zu beschränken, muß man lediglich die Variablen verbieten; die Formeln, die sich mit Hilfe von Konstanten-, Funktionen- und Prädikatensymbolen bilden lassen, entsprechen aussagenlogischen Formeln. Auch für prädikatenlogische Formeln F gilt: F ist genau dann allgemeingültig, wenn ¬F nicht erfüllbar ist. Die Erfüllbarkeit bzw. Allgemeingültigkeit einer prädikatenlogischen Formel kann nicht mehr, wie bei aussagenlogischen Formeln, mit Hilfe von Wahrheitswerttabellen geprüft werden. Es gibt Formeln, die erfüllbar sind, aber kein endliches Modell besitzen. Ein Beispiel dafür ist die folgende Formel: F = ∀x(P (x, f (x))) ∧ ∀y¬P (y, y) ∧ ∀u∀v∀w((P (u, v) ∧ P (v, w)) → P (u, w)). F ist erfüllbar, da F das folgende (unendliche) Modell A = (UA , IA ) besitzt: UA := {0, 1, 2, 3, . . .}, P A := {(m, n) | m < n}, f A (n) := n + 1. F hat jedoch kein endliches Modell: BEWEIS 4.2 Normalformen Völlig analog zur Aussagenlogik definiert man: Formeln F und G der PL1 heißen semantisch äquivalent (F ≡ G), falls für jede Struktur A, die passend für F und G ist, A(F ) = A(G) gilt. Damit gelten viele Identitäten der Aussagenlogik auch für Formeln der PL1, wie z.B. die de Morganschen Regeln. Weitere Identitäten werden in folgendem Satz aufgesammelt: Satz 4.1 Es seien F und G Formeln der PL1. Dann gilt: (1) ¬∀xF ≡ ∃x¬F ¬∃xF ≡ ∀x¬F (2) Falls die Variable x in F nicht frei vorkommt, gilt: (F ∧ ∀xG) ≡ ∀x(F ∧ G) (F ∨ ∀xG) ≡ ∀x(F ∨ G) (F ∧ ∃xG) ≡ ∃x(F ∧ G) (F ∨ ∃xG) ≡ ∃x(F ∨ G) (3) (∀xF ∧ ∀xG) ≡ ∀x(F ∧ G) (∃xF ∨ ∃xG) ≡ ∃x(F ∨ G) (4) ∀x∀yF ≡ ∀y∀xF ∃x∃yF ≡ ∃y∃xF 23 Vertauschungen von gleichartigen Quantoren sind erlaubt, wie Zeile (4) zeigt, Vertauschungen von ungleichartigen Quantoren sind jedoch “gefährlich”, wie die folgende Aufgabe zeigt, die außerdem die ∧-Verbindungen von ∃-Formeln sowie ∨-Verbindungen von ∀-Formeln behandelt. Selbsttestaufgabe 4.1 Zeigen Sie: (1) ∀x∃yF 6≡ ∃y∀xF (2) (∀xF ∨ ∀xG) 6≡ ∀x(F ∨ G) (3) (∃xF ∧ ∃xG) 6≡ ∃x(F ∧ G) Es sei F eine Formel, x eine Variable und t ein Term. Dann bezeichnet F [x/t] diejenige Formel, welche man aus F erhält, wenn man jedes freie Vorkommen von x in F durch den Term t substituiert. Durch [x/t] soll auch die entsprechende Substitution bezeichnet werden. Speziell kann t auch eine Variable, z.B. y, sein. In diesem Fall heißt die Substitution Umbenennung. Hintereinanderausführungen von Substitutionen [x/t1 ], [y/t2 ] werden kurz mit [x/t1 ] [y/t2] bezeichnet; sie bedeuten, daß zuerst jedes freie Vorkommen von x durch t1 ersetzt wird und danach jedes freie Vorkommen von y durch t2 . Lemma 4.1 (gebundene Umbenennung) Es sei F = QxG eine Formel mit Q ∈ {∀, ∃} sowie y eine Variable, die in G nicht vorkommt. Dann ist F ≡ QyG[x/y]. Bei der Definition der Semantik der quantifizierten Formeln haben wir die Notation A[x/u] verwendet, bei der die Struktur A der Variablen x den Wert u zuweist. Dies ist zu unterscheiden von der Formelsubstitution F [x/t], bei der jedes freie Vorkommen von x in der Formel F durch den Term t ersetzt wird. Es gilt jedoch der folgende wichtige Zusammenhang: Lemma 4.2 (Überführungslemma) Es sei F eine Formel, x eine Variable und t ein Term, der keine in F gebundene Variable enthält. Dann ist A(F [x/t]) = A[x/A(t)] (F ). Der Beweis des Überführungslemmas erfolgt durch Induktion über den rekursiven Aufbau der Terme und Formeln. Selbsttestaufgabe 4.2 Warum ist es wesentlich, im Überführungslemma zu verlangen, daß der Term t keine in F gebundene Variable enthält? Eine Formel F heißt bereinigt, falls in F keine Variable sowohl frei als auch gebunden vorkommt, und hinter je zwei Quantoren in F stehen verschiedene Variablen. Beispiel: Die Formel P (x) ∧ ∀xQ(x) ∧ ∃xR(x) ist nicht bereinigt. 24 Lemma 4.3 (bereinigte Form) Zu jeder Formel F gibt es eine semantisch äquivalente bereinigte Formel G. Beispiel: Die Formel P (x) ∧ ∀xQ(x) ∧ ∃xR(x) läßt sich wie folgt bereinigen (und ist dann semantisch äquivalent zur Ausgangsformel): P (x) ∧ ∀yQ(y) ∧ ∃zR(z) Eine Formel F ist in Pränexform, falls F die Gestalt Q1 x1 Q2 x2 . . . Qn xn G hat, wobei Qi ∈ {∀, ∃} für alle i ∈ {1, 2, . . . , n}, und G enthält keine Quantoren. Satz 4.2 (bereinigte Pränexform) Zu jeder Formel F gibt es eine semantisch äquivalente bereinigte Formel G in Pränexform. Beweis. Durch Induktion über den rekursiven Aufbau der Formeln. Induktionsanfang. F = P (t1 , . . . , tk ) ist atomare Formel. Dann hat F die gewünschte Form. Induktionsvoraussetzung. Für “kleinere Formeln” gelte die Behauptung. Induktionsschritt. 1. Fall: F = ¬F ′ . Nach Induktionsvoraussetzung gibt es zu F ′ eine semantisch äquivalente bereinigte Formel G′ in Pränexform: F ′ ≡ G′ = Q1 y1 . . . Qn yn G′′ . Dann ist F = ¬F ′ ≡ Q1 y1 . . . Qn yn ¬G′′ , wobei Qi ∈ {∀, ∃} für alle i ∈ {1, 2, . . . , n}, und Qi = ∀ genau dann, wenn Qi = ∃ ist. 2. Fall: F = F1 ∧ F2 bzw. F = F1 ∨ F2 . Nach Induktionsvoraussetzung gibt es jeweils zu Fi , i = 1, 2, eine semantisch äquivalente bereinigte Formel Gi in Pränexform: Es sei F1 ≡ G1 = Q1 y1 . . . Qk1 yk1 G′1 und F2 ≡ G2 = Q′1 z1 . . . Q′k2 zk2 G′2 . (Durch gebundene Umbenennung kann man vorher evtl. gemeinsame Variablen bei G1 und G2 beseitigen.) Dann ist F = F1 ∧ F2 ≡ Q1 y1 . . . Qk1 yk1 G′1 ∧ Q′1 z1 . . . Q′k2 zk2 G′2 Q1 y1 . . . Qk1 yk1 Q′1 z1 . . . Q′k2 zk2 G′1 ∧ G′2 , und analog für F = F1 ∨ F2 . ≡ 3. Fall: F = QxF ′ für Q ∈ {∀, ∃}. Nach Induktionsvoraussetzung gibt es zu F ′ eine semantisch äquivalente bereinigte Formel G′ in Pränexform: F ′ ≡ G′ = Q1 y1 . . . Qn yn G′′ . Durch gebundene Umbenennung kann man erreichen, daß die Variable x verschieden von y1 , . . . , yn ist. Dann ist F = QxF ′ ≡ QxQ1 y1 . . . Qn yn G′′ und hat somit die gewünschte Form. q.e.d. 4.3 Skolemform Es sei nun F eine bereinigte Formel in Pränexform (eine BPF). Für solche Formeln wird die Skolemform als das Resultat der Anwendung des folgenden Skolem-Algorithmus definiert: 25 Skolem-Algorithmus. (benannt nach Thoralf A. Skolem, Norwegen, 1887-1963) while F enthält einen Existenzquantor do begin F habe die Form F = ∀y1 ∀y2 . . . ∀yn ∃zG für eine Formel G in BPF und n ≥ 0. (d.h. ∃z ist der in F am weitesten links vorkommende ∃-Quantor) Es sei f ein neues, bisher in F nicht vorkommendes n-stelliges Funktionensymbol. Setze F := ∀y1 ∀y2 . . . ∀yn G[z/f (y1 , . . . , yn )] (d.h. der Existenzquantor ∃z wird gestrichen, und dafür werden alle (nun freien) Vorkommen von z in G durch f (y1 , . . . , yn ) substituiert) end Beispiel. Für die Formel F = ∃x∀y∃z∀u∃vP (x, y, z, u, v) erzeugt der SkolemAlgorithmus in den while-Schleifendurchläufen nacheinander die Formeln ∀y∃z∀u∃vP (a, y, z, u, v) (hierbei ist a ein neues 0-stelliges Funktionensymbol) ∀y∀u∃vP (a, y, f (y), u, v) (hierbei ist f ein neues 1-stelliges Funktionensymbol) ∀y∀uP (a, y, f (y), u, g(y, u)) (hierbei ist g ein neues 2-stelliges Funktionensymbol) Formeln F und G heißen erfüllbarkeitsäquivalent, falls F genau dann erfüllbar ist, wenn G erfüllbar ist. Satz 4.3 (Skolemform) Zu jeder Formel F in BPF gibt es eine erfüllbarkeitsäquivalente bereinigte Formel G in Skolemform. Beweis. Wir zeigen, daß in jedem Durchlauf der while-Schleife des SkolemAlgorithmus eine zur Ausgangsformel erfüllbarkeitsäquivalente Formel entsteht. Es sei also F = ∀y1 ∀y2 . . . ∀yn ∃zG für eine Formel G in BPF und n ≥ 0 und F ′ = ∀y1 ∀y2 . . . ∀yn G[z/f (y1 , . . . , yn )]. 1. Wir nehmen zuerst an, daß F ′ erfüllbar sei. Dann gibt es eine zu F ′ passende Struktur A, die Modell von F ′ ist. Damit ist A auch zu F passende Struktur, und es gilt: Für alle u1 , . . . , un ∈ UA ist A[y1 /u1 ]...[yn /un ] (G[z/f (y1 , . . . , yn )]) = 1. Wegen des Überführungslemmas gilt dann für alle u1 , . . . , un ∈ UA sowie für v := f A (u1 , . . . , un ): A[y1 /u1 ]...[yn /un ][z/v] (G) = 1. Damit folgt: Für alle u1 , . . . , un ∈ UA gibt es ein v ∈ UA mit 26 A[y1 /u1 ]...[yn /un ][z/v] (G) = 1. Deshalb ist A(∀y1 ∀y2 . . . ∀yn ∃zG) = 1, d.h. A ist auch Modell für F . 2. Nun nehmen wir an, daß F das Modell A habe. A ist jedoch nicht automatisch passend für F ′ , da in F ′ ein neues n-stelliges Funktionensymbol f vorkommt. Daher muß A für dieses Funktionensymbol zu einer Struktur A′ erweitert werden. Zunächst gilt wegen A(F ) = 1: Für alle u1 , . . . , un ∈ UA gibt es ein v ∈ UA mit A[y1 /u1 ]...[yn /un ][z/v] (G) = 1. ′ Für die neue Struktur A′ soll nun f A (u1 , . . . , un ) := v gelten, wobei v wie unter 2. gewählt wird (damit diese Funktion existiert, braucht man das Auswahlaxiom der ′ Mengenlehre). Mit dieser Definition von f A ergibt sich: Für alle u1 , . . . , un ∈ UA gilt A′[y1 /u1 ]...[yn /un ][z/f A′ (u1 ,...,un )] (G) = 1. Mit dem Überführungslemma erhalten wir: Für alle u1 , . . . , un ∈ UA gilt A′[y1 /u1 ]...[yn /un ] (G[z/f (y1 , . . . , yn )]) = 1 und damit A′ (∀y1 . . . ∀yn G[z/f (y1 , . . . , yn )]) = 1, also ist A′ Modell für F ′ . q.e.d. Zusammenfassung der bisherigen Umformungsschritte: Gegeben: Eine Formel F der PL1. Frage: Ist F erfüllbar? 1. F1 sei das Resultat der Bereinigung von F durch gebundene Umbenennung (Lemma 4.1). F1 ist semantisch äquivalent zu F . 2. F2 sei F2 = ∃y1 . . . ∃yn F1 , wobei y1 , . . . , yn die in F1 frei vorkommenden Variablen seien. Dann gilt: F2 ist erfüllbarkeitsäquivalent zu F und enthält keine frei vorkommenden Variablen mehr. 3. F3 sei eine zu F2 semantisch äquivalente Aussage in (bereinigter) Pränexform (BPF) (Theorem 4.2). 4. F4 sei das Resultat der Anwendung des Skolem-Algorithmus auf F3 . F4 ist erfüllbarkeitsäquivalent zu F (Theorem 4.3). 5. F5 entsteht aus F4 durch Umformung der Matrix in KNF. Diese kann dann als Klauselmenge aufgeschrieben werden. 27 5 Herbrand-Theorie und Grundresolution (benannt nach Jacques Herbrand, Frankreich, 1908-1931) Wir wissen bereits: Es gibt erfüllbare Formeln der PL1, die kein endliches Modell haben. Daher muß man auf der Suche nach möglichen Modellen einer gegebenen Formel i.a. unendliche Universen verwenden. Die Herbrand-Theorie erlaubt es jedoch, die Art der möglichen Modelle auf eine spezielle Art von Strukturen einzuschränken. Ausgangspunkt ist eine Aussage F in Skolemform (und damit auch in BPF). Das Herbrand-Universum D(F ) von F ist wie folgt rekursiv definiert: 1. Alle in F vorkommenden Konstantensymbole sind in D(F ). Falls F keine solchen enthält, sei a ∈ D(F ). 2. Sind t1 , . . . , tk ∈ D(F ) und f ein k-stelliges Funktionensymbol in F , so ist auch der Term f (t1 , . . . , tk ) ∈ D(F ). 3. Weitere Terme in D(F ) gibt es nicht. Also ist D(F ) die Menge der variablenfreien Terme über F . Beispiel: F = ∀xP (x, f (x)). Also ist D(F ) = {a, f (a), f (f (a)), . . .}. Eine Herbrand-Struktur A = (UA , IA ) zu F ist eine zu F passende Struktur, für die folgendes gilt: 1. UA = D(F ). 2. Für jedes in F vorkommende k-stellige Funktionensymbol f und Terme t1 , . . . , tk ∈ D(F ) gilt: f A (t1 , . . . , tk ) = f (t1 , . . . , tk ). Über die Interpretation der Prädikatensymbole macht die Herbrand-Struktur keine Aussagen. Durch die obige Festlegung bei den Termen erhält das Überführungslemma nun folgende spezielle Form: A(F [x/t]) = A[x/t] (F ). Ein Herbrand-Modell für F ist eine Herbrand-Struktur, die Modell für F ist. Satz 5.1 Für Aussagen F in Skolemform gilt: F ist genau dann erfüllbar, wenn F ein Herbrand-Modell besitzt. Beweis. 1) ⇐=: Hat F ein Herbrand-Modell, so hat F ein Modell. 2) =⇒: Der Beweis erfolgt durch Induktion über die Zahl der ∀-Quantoren in F . 28 Es sei A = (UA , IA ) ein beliebiges Modell für F . Falls in F kein Konstantensymbol vorkommt, wird a als Konstantensymbol hinzugefügt und A um die Festlegung aA = m für ein m ∈ UA erweitert. Damit bleibt A Modell für F . Wir geben nun eine Herbrand-Struktur B = (D(F ), IB ) wie folgt an: Es sei P ein k-stelliges Prädikatensymbol in F , und es seien t1 , . . . , tk ∈ D(F ) variablenfreie Terme. Dann sind A(t1 ), . . . , A(tk ) ∈ UA wohldefinierte Werte. Wir setzen (t1 , . . . , tk ) ∈ P B A A genau dann, wenn (tA 1 , . . . , tk ) ∈ P . Behauptung: B ist Herbrand-Modell für F . Dies wird durch Induktion über die Zahl der ∀-Quantoren in F gezeigt, indem sogar etwas mehr gezeigt wird, nämlich: Für jede Aussage G in Skolemform, die aus den Bestandteilen von F aufgebaut ist, gilt: Falls A(G) = 1 gilt, ist auch B(G) = 1. (Für F = G ergibt sich damit die Behauptung.) Induktionsanfang: Falls G keine ∀-Quantoren enthält, ist nach Definition von B A(G) = B(G) erfüllt. Induktionsschritt: G = ∀xH, d.h. H hat weniger ∀-Quantoren als G. Allerdings ist die Induktionsvoraussetzung für H zunächst nicht anwendbar, da x in H frei vorkommen kann. Nach Voraussetzung ist A(G) = 1. Also gilt für alle u ∈ UA , daß A[x/u] (H) = 1 ist. Dann gilt erst recht für alle t ∈ D(G) mit A(t) = u, daß A[x/u] (H) = 1 ist. Wegen des Überführungslemmas gilt nun A[x/tA ] (H) = A(H[x/t]) = 1. Nach Induktionsvoraussetzung ist B(H[x/t]) = 1 für alle t ∈ D(G). Wegen des Überführungslemmas gilt für alle t ∈ D(G): B[x/tB ] (H) = B(H[x/t]) = 1. Also ist B(∀xH) = B(G) = 1. q.e.d. Wir haben beim Beweis wesentlich verwendet, daß F eine Aussage ist und nur ∀Quantoren enthält. Folgerung 5.1 (Satz von Löwenheim-Skolem) Jede erfüllbare Formel der PL1 besitzt ein Modell mit abzählbarem Universum. Es sei nun wieder F eine Aussage in Skolemform, also F = ∀y1 ∀y2 . . . ∀yn F ∗ mit Matrix F ∗ . Die Herbrand-Expansion E(F ) von F ist definiert als E(F ) = {F ∗ [y1 /t1 ] . . . [yn /tn ] | t1 , . . . , tn ∈ D(F )}. Die Herbrand-Expansion enthält also alle möglichen Resultate der Substitution aller Variablen in F ∗ durch variablenfreie Terme in D(F ). Eine solche Art der Substitution 29 nennt man auch Grundsubstitution, und Resultate solcher Substitutionen heißen auch Grundinstanzen. Die Formeln in E(F ) können nun wie aussagenlogische Formeln behandelt werden, da sie keine Variablen mehr enthalten. Satz 5.2 (Gödel-Herbrand-Skolem) Für Aussagen F in Skolemform gilt: F ist genau dann erfüllbar, wenn E(F ) erfüllbar ist. Beweis. Es reicht zu zeigen: F hat genau dann ein Herbrand-Modell, wenn E(F ) erfüllbar ist. Es sei F = ∀y1 ∀y2 . . . ∀yn F ∗ mit Matrix F ∗ . Es gilt: A ist Herbrand-Modell für F genau dann, wenn für alle t1 , . . . , tn ∈ D(F ) gilt A[y1 /t1 ]...[yn /tn ] (F ∗ ) = 1 genau dann, wenn für alle t1 , . . . , tn ∈ D(F ) gilt A(F ∗ [y1 /t1 ] . . . [yn /tn ]) = 1 (wegen des Überführungslemmas) genau dann, wenn für alle G ∈ E(F ) gilt A(G) = 1 genau dann, wenn A erfüllt E(F ). q.e.d. Mit dem Endlichkeitssatz der Aussagenlogik (Satz 3.6) ergibt sich: Satz 5.3 (Satz von Herbrand) Für Aussagen F in Skolemform gilt: F ist genau dann unerfüllbar, wenn es eine endliche Teilmenge von E(F ) gibt, die unerfüllbar ist. Der folgende Algorithmus liefert ein Semi-Entscheidungsverfahren, um festzustellen, ob eine gegebene Aussage F in Skolemform unerfüllbar ist. Dazu sei E(F ) = {F1 , F2 , F3 , . . .}. Algorithmus von Gilmore. (1) n:=0; (2) repeat n := n + 1 until (F1 ∧ F2 ∧ . . . ∧ Fn ) ist unerfüllbar. (3) Ausgabe “F ist unerfüllbar. STOP.” Dieser Algorithmus sagt noch nicht, wie man feststellt, ob (F1 ∧F2 ∧. . .∧Fn ) unerfüllbar ist. Das Mittel hierzu ist Resolution. Grundresolutionsalgorithmus. Eingabe: Eine Aussage F in Skolemform mit Matrix F ∗ in KNF und E(F ) = {F1 , F2 , F3 , . . .}. Frage: Ist F unerfüllbar? 30 (1) i := 0; M := ∅ (2) repeat i := i + 1; M := M ∪ {Fi }; M := Res∗ (M) until leere Klausel in M. (3) Ausgabe “F ist unerfüllbar. STOP.” Aus dem Resolutionssatz der Aussagenlogik und dem Satz von Herbrand ergibt sich: Satz 5.4 Der Grundresolutionsalgorithmus ist korrekt. 6 6.1 Unifikation und Prädikatenlogische Resolution Unifikation von Literalen Bei der Grundresolution ist es erforderlich, alle Variablen durch variablenfreie Terme zu ersetzen, um anschließend Resolventen von Klauseln bilden zu können. Um eine für die Resolution nötige Angleichung vorzunehmen, reicht oftmals eine Substitution aus, die lediglich Literale (bis auf Negation) identisch macht. Dazu ist es wichtig, daran zu erinnern, daß die Literale prädikatenlogischer Formeln in KNF die negierten oder unnegierten atomaren Formeln sind, und diese sind in der Syntaxdefinition der PL1 als Formeln der Art P (t1 , . . . , tk ) beschrieben. Hat man also zwei Klauseln K und K ′ , wobei in K das Literal l = P (x) und in K ′ das Literal l′ = ¬P (f (y)) vorkommt, so kann eine Angleichung durch die Substitution [x/f (y)] erfolgen, ohne daß man die Variablen (wie bei Grundsubstitution) durch variablenfreie Terme ersetzt. Wir lassen nun die Negation bei l′ weg. Man sagt, eine Substitution s unifiziert zwei Literale l und l′ , falls s(l) = s(l′ ) ist. Im obigen Beispiel unifiziert die Substitution [x/f (y)] die Literale P (x) und P (f (y)). Ebenso unifiziert die Substitution [x/f (a)][y/a] die beiden Literale; das Ergebnis ist bei beiden Literalen P (f (a)). Die übliche Schreibweise bei der Anwendung einer Substitution sub auf ein Literal L ist die folgende: Lsub ist das Ergebnis der Anwendung von sub auf L. Allgemeiner sei L = {L1 , . . . , Lk } eine Menge von Literalen. Eine Substitution sub ist ein Unifikator von L, falls L1 sub = . . . = Lk sub gilt, also |Lsub| = 1 ist. Ein Unifikator sub ist allgemeinster Unifikator von L, falls für jeden Unifikator sub′ von L eine Substitution s existiert mit sub′ = sub s. Satz 6.1 (Unifikationssatz von J.A. Robinson) Jede unifizierbare Literalmenge besitzt einen allgemeinsten Unifikator. Beweis. Der Beweis erfolgt konstruktiv durch Angabe des folgenden Unifikationsalgorithmus, der für unifizierbare Literalmengen einen allgemeinsten Unifikator konstruiert (und für nicht unifizierbare Literalmengen feststellt, daß es keinen Unifikator gibt). Unifikationsalgorithmus. 31 Eingabe: Eine nichtleere Literalmenge L. Frage: Ist L unifizierbar? Wenn ja, bestimme allgemeinsten Unifikator. (0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) sub := [ ]; (leere Substitution als Initialisierung) while |Lsub| > 1 do begin Durchsuche die Literale von links nach rechts bis zur ersten Position, in der sich die Buchstaben in zwei Literalen unterscheiden. if keiner der beiden Buchstaben ist eine Variable then STOP - Ausgabe: L ist nicht unifizierbar else begin es sei der eine Buchstabe x eine Variable und t der im anderen Buchstaben beginnende Term (der auch eine Variable sein kann) if x kommt in t vor then STOP - Ausgabe: L ist nicht unifizierbar else sub := sub[x/t] (Anhängen der Substitution [x/t]) end end Ausgabe von sub als allgemeinstem Unifikator. Beispiel: Anwendung des Unifikationsalgorithmus auf die 2-elementige Menge L = {P (f (z, g(a, y)), h(z)), P (f (f (u, v), w), h(f (a, b)))} liefert den allgemeinsten Unifikator sub = [z/f (u, v)][w/g(a, y)][u/a][v/b]. 6.2 Prädikatenlogische Resolventen und Resolutionssatz Die Definition prädikatenlogischer Resolventen ist komplizierter als die von aussagenlogischen Resolventen: Es seien K1 und K2 prädikatenlogische Klauseln. Dann ist R ein prädikatenlogischer Resolvent von K1 und K2 , falls gilt: 1. Es gibt Variablenumbenennungen s1 , s2 , so daß K1 s1 und K2 s2 keine gemeinsamen Variablen mehr enthalten. 2. Es gibt Literale L1 , . . . , Lm ∈ K1 s1 , m ≥ 1, und L′1 , . . . , L′n ∈ K2 s2 , n ≥ 1, so daß die Menge L := {¬L1 , . . . , ¬Lm , L′1 , . . . , L′n } unifizierbar ist. Es sei sub allgemeinster Unifikator von L. 3. R := ((K1 s1 \ {L1 , . . . , Lm }) ∪ (K2 s2 \ {L′1 , . . . , L′n })) sub. Auch für prädikatenlogische Resolution bilden wir folgende Mengen: Res(F ) := F ∪ {R | R ist prädikatenlogischer Resolvent zweier Klauseln in F }. Außerdem sei Res0 (F ) := F sowie 32 Resk+1 (F ) := Res(Resk (F )) und S i Res∗ (F ) := ∞ i=0 Res (F ). Das folgende Lemma beschreibt einen wichtigen Zusammenhang zwischen prädikatenlogischer und aussagenlogischer Resolution. Lemma 6.1 (Lifting-Lemma) Es seien K1 und K2 prädikatenlogische Klauseln und K1′ , K2′ beliebige Grundinstanzen hiervon, die im aussagenlogischen Sinn resolvierbar sind mit dem Resolventen R′ . Dann gibt es einen prädikatenlogischen Resolventen R von K1 und K2 , so daß R′ eine Grundinstanz von R ist. Satz 6.2 (Resolutionssatz der Prädikatenlogik) Für Aussagen F in Skolemform gilt: F ist genau dann unerfüllbar, wenn ∅ ∈ Res∗ (F ). 6.3 Automatische Beweissysteme Der Resolutionskalkül erlaubt es, auf rein syntaktische Weise nachzuweisen, daß bestimmte Behauptungen aus einer vorgegebenen Axiomenmenge folgen. Das folgende Beispiel zeigt, wie man aus Gruppenaxiomen, in denen die Existenz eines linksneutralen Elements sowie von Linksinversen vorausgesetzt wird, die Existenz von Rechtsinversen folgern kann. Es sei ◦ das Symbol für die Gruppenoperation. Mit P (x, y, z) wird x◦y = z ausgedrückt. Die Gruppenaxiome haben dann folgende Gestalt: (1) ∀x∀y∃zP (x, y, z) (die Grundmenge ist bzgl. der Gruppenoperation abgeschlossen) (2) ∀u∀v∀w∀x∀y∀z((P (x, y, u) ∧ P (y, z, v)) → (P (x, v, w) ↔ P (u, z, w))) (die Gruppenoperation ist assoziativ) (3) ∃x(∀yP (x, y, y) ∧ ∀y∃zP (z, y, x)) (es gibt ein linksneutrales Element, und zu jedem Element gibt es ein (bzgl. des linksneutralen Elements) linksinverses Element) Es soll bewiesen werden, daß aus (1), (2) und (3) folgt: (∗) Zu jedem Element gibt es ein (bzgl. des linksneutralen Elements) rechtsinverses Element. Die Bedingung (∗) wird durch folgende Formel ausgedrückt: (4) ∃x(∀yP (x, y, y) ∧ ∀y∃zP (y, z, x)) 33 Offenbar ist ¬(4) ≡ ∀x(∃y¬P (x, y, y) ∨ ∃y ′ ∀z¬P (y ′ , z, x)) ≡ ∀x∃y∃y ′ ∀z(¬P (x, y, y) ∨ ¬P (y ′, z, x)). Zum Nachweis der Behauptung bringen wir (1) ∧ (2) ∧ (3) ∧ ¬(4) nacheinander in BPF, Skolemform, und die Matrix in KNF. Es ergibt sich nach diesen Umformungsschritten: (a) {P (x, y, m(x, y))} (für (1)) (b) {¬P (x, y, u), ¬P (y, z, v), ¬P (x, v, w), P (u, z, w)} (für die eine Richtung von (2)) (c) {¬P (x, y, u), ¬P (y, z, v), ¬P (u, z, w), P (x, v, w)} (andere Richtung von (2)) (d) {P (e, y, y)} (für (3)) (e) {P (i(y), y, e)} (für (3)) (f ) {¬P (x, j(x), j(x)), ¬P (k(x), z, x)} (für ¬(4)) Dabei sind m, e, i, j, k entsprechende neue Funktionensymbole, die bei der Herstellung der Skolemform eingeführt werden. Nun wird mit den folgenden Resolutionsschritten durch Resolution der leeren Klausel gezeigt, daß (1) ∧ (2) ∧ (3) ∧ ¬(4) unerfüllbar ist, d.h. es gilt die obige Behauptung (∗). (f ) und (d) ergeben (mit [x/e] in (f ) und [y/j(e)] in (d)) den Resolventen R1 = {¬P (k(e), z, e)}; mit (b) sowie [u/k(e)][w/e] in (b) ergibt sich R2 = {¬P (x, y, k(e)), ¬P (y, z, v), ¬P (x, v, e)}; mit (e) sowie [x/i(v)][y/w] in R2 und [y/v] in (e) ergibt sich R3 = {¬P (i(v), w, k(e)), ¬P (w, z, v)}; mit (d) sowie [w/e][z/v] in R3 und [y/v] in (d) ergibt sich R4 = {¬P (i(v), e, k(e))}; mit (c) sowie [x/i(t)][v/e][w/k(e)] in (c) und [v/t] in R4 ergibt sich R5 = {¬P (i(t), y, u), ¬P (y, z, e), ¬P (u, z, k(e))}; mit (d) sowie [u/e][z/k(e)] in R5 und [y/k(e)] in (d) ergibt sich R6 = {¬P (i(t), y, e), ¬P (y, k(e), e)}; mit (e) sowie [y/i(k(e))] in R6 und [y/k(e)] in (e) ergibt sich R7 = {¬P (i(t), i(k(e)), e)}; mit (e) sowie [t/i(k(e))] in R7 und [y/i(k(e))] in (e) ergibt sich leere Klausel. 34 7 Verfeinerungen der prädikatenlogischen Resolution Bei der P-Resolution darf nur dann ein Resolvent zweier Klauseln K1 , K2 gebildet werden, wenn K1 oder K2 nur aus positiven Literalen besteht. Analog darf bei der N-Resolution nur dann ein Resolvent zweier Klauseln K1 , K2 gebildet werden, wenn K1 oder K2 nur aus negativen Literalen besteht. Lineare Resolution wird wie folgt definiert: Die leere Klausel ist aus einer Klauselmenge F linear resolvierbar, basierend auf einer Klausel K ∈ F , wenn es eine Folge K0 , K1 , . . . , Kn von Klauseln gibt mit den Eigenschaften: K0 = K, Kn = ∅ und für i = 1, 2, . . . , n ist Ki Resolvent von Ki−1 und Bi−1 (einer sogenannten Seitenklausel), wobei Bi−1 ∈ F oder Bi−1 = Kj für ein j < i. Zur Erinnerung: (eine Variante von) Resolution heißt vollständig, wenn sie für eine unerfüllbare Formel F nach endlich vielen Schritten leere Klausel liefert. Satz 7.1 Die P -Resolution ist vollständig, und analog ist die N-Resolution vollständig. Beweis. Zu zeigen ist: Für unerfüllbare Klauselmenge F ist die leere Klausel in endlich vielen Schritten resolvierbar. Wir betrachten zunächst den aussagenlogischen Fall. Der Fall der prädikatenlogischen Resolution ergibt sich dann aus dem Lifting-Lemma. Wie beim Beweis des Resolutionssatzes der Aussagenlogik (Satz 3.5) verwenden wir Induktion über die Zahl der Aussagenvariablen in F . Induktionsanfang. Für n = 1 ist wegen der Unerfüllbarkeit von F sowohl eine Klausel {A1 } als auch eine Klausel {¬A1 } vorhanden, und P-Resolution ergibt in einem Schritt leere Klausel. Induktionsvoraussetzung. Für unerfüllbare Klauselmengen mit höchstens n − 1 Variablen A1 , . . . , An−1 ergibt sich die leere Klausel in endlich vielen Schritten mit PResolution. Induktionsschritt. Für F mit höchstens n Aussagenvariablen A1 , . . . , An bilden wir folgende zwei Klauselmengen: F0 entsteht aus F , indem in jeder Klausel, die An enthält, die Vorkommen von An gestrichen werden, und alle Klauseln, die ¬An enthalten, werden komplett gestrichen. (Dies entspricht einer Fixierung des Wertes von An auf 0). Vollkommen analog dazu bildet man F1 : F1 entsteht aus F , indem in jeder Klausel, die ¬An enthält, die Vorkommen von ¬An gestrichen werden, und alle Klauseln, die An enthalten, werden komplett gestrichen. (Dies entspricht einer Fixierung des Wertes von An auf 1). Wir wissen bereits: 35 Behauptung: Ist F unerfüllbar, so sind auch F0 und F1 unerfüllbar. Also ist nach Induktionsvoraussetzung mit P-Resolution sowohl aus F0 als auch aus F1 die leere Klausel resolvierbar. Wir führen P-Resolution zunächst für F0 aus. Dies liefert bei denselben P-Resolutionsschritten für die (entsprechend mit An wiederaufgefüllten) Klauseln aus F entweder leere Klausel oder die Klausel {An }. Da An ein positives Literal ist, bleiben dies P-Resolutionsschritte. Nun werden in weiteren Schritten diejenigen Klauseln, die ¬An enthalten, mit der Klausel {An } resolviert (dies sind ebenfalls P-Resolutionsschritte). Es entstehen auf diese Weise die Klauseln von F1 . Aus diesen läßt sich nach Induktionsvoraussetzung leere Klausel P-resolvieren. Damit ergibt sich insgesamt eine P-Resolution der leeren Klausel. q.e.d. Satz 7.2 Die lineare Resolution ist vollständig. Beweis. Wie im Beweis von Satz 7.1 beschränken wir uns auf den aussagenlogischen Fall. Es sei F eine unerfüllbare Menge von Klauseln und F ′ ⊆ F eine inklusionsminimale unerfüllbare Teilmenge von F , d.h. F ′ ist unerfüllbar, und für jede Klausel K aus F ′ gilt: F ′ \ {K} ist erfüllbar. Wir zeigen: Behauptung 1. Für jede Klausel K ∈ F ′ gibt es eine auf K basierende lineare Resolution der leeren Klausel ∅. Dazu sei K beliebige Klausel in F ′ . Wir beweisen die Behauptung durch Induktion über die Zahl der atomaren Formeln in F ′ . Induktionsanfang. Für n = 1 ist wegen der Unerfüllbarkeit von F ′ sowohl eine Klausel {A1 } als auch eine Klausel {¬A1 } vorhanden, und lineare Resolution, basierend auf jeder der beiden Klauseln, ergibt in einem Schritt leere Klausel. Induktionsvoraussetzung. Für unerfüllbare Klauselmengen mit höchstens n − 1 Variablen A1 , . . . , An−1 ergibt sich die leere Klausel in endlich vielen Schritten mit linearer Resolution, basierend auf einer beliebigen Klausel. Induktionsschritt. Für F mit höchstens n Aussagenvariablen A1 , . . . , An unterscheiden wir folgende zwei Fälle: Fall 1. |K| = 1, d.h. K = {L} für ein Literal L mit L = A oder L = ¬A. Mit L bezeichnen wir ¬A, falls L = A ist, und A, falls L = ¬A ist. ′ Ähnlich wie im Beweis von Satz 7.1 wird nun die Klauselmenge FL=1 konstruiert, die alle Klauseln weglässt, in denen L vorkommt, und die alle Vorkommen von L in ′ Klauseln wegläßt (der Wert von L wird also auf 1 fixiert). Damit enthält FL=1 weniger ′ atomare Formeln als F ′ . Wie wir wissen, ist auch FL=1 unerfüllbar. Es sei F ′′ eine ′ inklusionsminimale unerfüllbare Teilmenge von FL=1 . Behauptung 1.1. In F ′′ muß eine Klausel K ′ vorkommen, die durch Streichen von L entstanden ist, d.h. K ′ ∪ {L} ist Klausel in F ′ : Sonst wäre die unerfüllbare Menge F ′′ eine Teilmenge von F ′ \{K} und damit eine echte ′ Teilmenge von F ′ , denn zumindest die F ′ -Klausel K = {L} wird bei FL=1 weggelassen. 36 Wegen der Minimalität von F ′ wäre F ′′ dann aber erfüllbar - Widerspruch. Also gilt Behauptung 1.1. Nun erhält man wie folgt eine lineare Resolution von ∅, basierend auf K: 1. Resolviere die Basisklausel K = {L} mit K ′ ∪ {L}; der Resolvent ist K ′ . 2. Nach Induktionsvoraussetzung gibt es mit den Klauseln von F ′′ , basierend auf K ′ , eine lineare Resolution von ∅. Dies liefert mit den wiederaufgefüllten Klauseln in F ′ entweder eine lineare Resolution von ∅ oder von L. 3. Resolviere, falls nötig, L mit {L}, um ∅ zu erhalten. Fall 2. |K| > 1: Wähle ein beliebiges Literal L ∈ K und setze K ′ := K \ {L}. Wie ′ zuvor sei FL=0 die entsprechende Klauselmenge, bei der der Wert von L auf 0 gesetzt ′ ′ wird. Wir wissen: FL=0 ist unerfüllbar. K ′ ist Klausel in FL=0 . Wir zeigen zunächst: ′ Behauptung 1.2. FL=0 \ {K ′ } ist erfüllbar: Wegen der Minimalität ist F ′ \ {K} erfüllbar; es sei A ein Modell von F ′ \ {K}. Weil F ′ unerfüllbar ist, gilt A(F ′ ) = 0 und insbesondere A(K) = 0, also auch A(L) = 0. ′ Damit ergibt sich: A(FL=0 \ {K ′ } = 1, denn in den Klauseln von F ′ \ {K} ist nur L gestrichen worden. Also gilt Behauptung 1.2. ′ Es sei F ′′ eine minimale unerfüllbare Teilmenge von FL=0 . Wegen Behauptung 1.2. muß ′′ ′ F die Klausel K enthalten. (a) Auf F ′′ trifft die Induktionsvoraussetzung zu, d.h. es existiert eine lineare Resolution der leeren Klausel, basierend auf K ′′ . Nun fügen wir L wieder zu den Klauseln hinzu und erhalten eine lineare Resolution von ∅ oder von {L} mit den Klauseln von F ′ , basierend auf K. (b) Wir wissen: F ′ \ {K} ist erfüllbar, und für jedes Modell A von F ′ \ {K} gilt: A(L) = 0. Dann ist (F ′ \{K})∪{{L}} unerfüllbar. Nun ist der Fall 1 anwendbar, und wir erhalten eine lineare Resolution von ∅, basierend auf {L}. Fügt man nun die Resolutionsschritte in (a) und (b) zusammen, so erhält man eine lineare Resolution von ∅, basierend auf K. Dies beendet den Beweis von Fall 2. q.e.d. Nun seien prädikatenlogische Hornklauseln gegeben. Die SLD-Resolution ist eine spezielle Form der linearen Resolution, bei der mit der (negativen) Zielklausel begonnen wird, und in jedem Schritt wird eine der (nicht komplett negativen) Inputklauseln als andere Elternklausel gewählt. (Die Abkürzung SLD steht für Selective Linear Definite clause resolution, wobei eine definite Klausel die Form {P, ¬Q1 , . . . , ¬Qk } hat, also eine Hornklausel ist.) Satz 7.3 Die SLD-Resolution ist vollständig für Mengen von Hornklauseln. 37 Beweis. Es sei F eine unerfüllbare Menge von Hornklauseln. Damit muß F mindestens eine negative Klausel enthalten, sonst wäre F erfüllbar (indem man die in jeder Klausel enthaltenen positiven atomaren Formeln mit 1 belegt). Nun sei F ′ ⊆ F eine inklusionsminimale unerfüllbare Teilmenge von F ; auch F ′ muß somit eine negative Klausel K enthalten. Wegen der Vollständigkeit der linearen Resolution, basierend auf einer beliebigen Klausel, muß es eine lineare Resolution der leeren Klausel aus den Klauseln von F ′, basierend auf K, geben. Resolventen von Hornklauseln mit negativen Klauseln sind negativ, und damit ist bei jedem Resolutionsschritt eine der beiden Elternklauseln eine Inputklausel. Also hat die lineare Resolution in diesem Fall die Gestalt einer SLD-Resolution. q.e.d. 8 Logikprogrammierung und Prolog Ein Logikprogramm besteht aus endlich vielen Tatsachen- und Prozedurklauseln, die jeweils Hornklauseln sind (allerdings nicht aussagenlogische, sondern prädikatenlogische Hornklauseln). - Tatsachenklauseln sind einelementige positive Klauseln, d.h. sie bestehen aus nur einer atomaren Formel. - Prozedurklauseln haben als Literalmengen die Form {P, ¬Q1 , . . . , ¬Qk }, d.h. genau ein Literal ist positiv. Dies entspricht der Implikation Q1 ∧ . . . ∧ Qk → P . (In Prolog-Syntax wird dies als P : −Q1 , . . . , Qk notiert.) Das Logikprogramm wird aufgerufen durch eine (negierte) Zielklausel (auch Anfrageklausel oder Aufrufklausel genannt). Diese hat die Form {¬Q1 , . . . , ¬Qk }, ist also negativ. Die Abarbeitung des Programms besteht nun darin, aus den Tatsachen- und Prozedurklauseln zusammen mit der negierten Zielklausel die leere Klausel zu resolvieren, und zwar mittels SLD-Resolution. Um die Rolle der Unifikatoren bei SLD-Resolution zu illustrieren, betrachten wir folgendes Beispiel, das zeigt, wie man mit SLD-Resolution auf eine rein symbolische Weise rechnen kann. Dazu wird + als Symbol für die Addition verwendet, 0 als Symbol für die Null, s als Symbol für die Nachfolgerfunktion s(x) = x + 1, und die beiden Axiome seien (A1 ) x + 0 = x (A2 ) x + s(y) = s(x + y) Nun verwenden wir ein 3-stelliges Prädikatensymbol A(x, y, z), das genau dann wahr ist, wenn x + y = z ist, und mit dem die beiden Axiome wie folgt ausgedrückt werden: (1) {A(x, 0, x)} 38 (2) {A(x, s(y), s(z)), ¬A(x, y, z)} (d.h. x + y = z → x + s(y) = s(z)) Will man nun z.B. 3 + 2 ausrechnen, so wird dies als (negierte) Zielklausel wie folgt formuliert: (3) {¬A(s(s(s(0))), s(s(0)), u)} (d.h. - ohne Negation - berechne 3 + 2 und speichere das Ergebnis in u) Nun wird wie üblich versucht, aus (1) ∧ (2) ∧ (3) die leere Klausel zu resolvieren. Dies geht wie folgt: (3) und (2) ergeben mit [x/s(s(s(0)))][y/s(0)] in (2) und [u/s(z)] in (3) den Resolventen R1 := ¬A(s(s(s(0))), s(0), z); mit (2) sowie [x/s(s(s(0)))][y/0][z/z ′ ] in (2) und [z/s(z ′ )] in R1 ergibt sich R2 := ¬A(s(s(s(0))), 0, z ′ ); mit (1) sowie [x/s(s(s(0)))] in (1) und [z ′ /s(s(s(0)))] in R2 ergibt sich R3 := ∅. Um zu sehen, welches Ergebnis nun in u steht, muß man die entsprechenden Substitutionen zurückverfolgen: [u/s(z)][z/s(z ′ )][z ′ /s(s(s(0)))] ergibt als Resultat u = s(s(s(s(s(0))))) (also ist u = 5, allerdings lediglich in der Form 5 = s(s(s(s(s(0))))) einer Symbolmanipulation). 9 Modal- und Temporallogik: Ausblick Außer der Aussagen- und Prädikatenlogik gibt es eine Reihe von weiteren Logiken, die für die Informatik relevant sind. Dazu gehört die Modallogik. Zunächst jedoch ein Beispiel für ein weiteres Logik-Puzzle, das sogenannte wise men puzzle: - Drei Weise w1 , w2 , w3 (von denen also insbesondere vorausgesetzt wird, daß sie logisch denken können) haben jeweils einen roten oder grünen Fleck auf der Stirn. Sie verfügen über keinen Spiegel und verraten einander auch nicht, was sie sehen. Bekannt ist jedoch, daß mindestens einer einen roten Fleck hat. Jeder sieht also nur die beiden anderen und soll herausbekommen, welche Farbe sein Fleck hat. - Nach kurzem Nachdenken sagt w1 : “Ich weiß nicht”. - Nach einigem Nachdenken sagt auch w2 : “Ich weiß nicht”. 39 - Daraufhin sagt nach einigem Nachdenken w3 : “Ich habe rot.”. Warum ist die Antwort richtig und logisch einwandfrei? Das wise men puzzle läßt sich mit Hilfe der nachfolgend definierten Modallogik gut formalisieren. 9.1 Syntax und Semantik der Modallogik Die Modallogik ist eine Erweiterung der Aussagenlogik. Zusätzlich zu den sprachlichen Mitteln der Aussagenlogik kommen noch zwei Zeichen 2 und 3 hinzu. Die Formeln der Modallogik werden rekursiv wie folgt definiert: Syntax der Modallogik: Wie in der Aussagenlogik verschaffen wir uns zunächst einen potentiell unendlichen Vorrat an Aussagenvariablen A1 , A2 , . . . , An , . . . (1) Jede Aussagenvariable ist eine (atomare) Formel, und die Konstanten ⊤ (für wahr) und ⊥ (für falsch) sind atomare Formeln. (2) Sind F und G Formeln, so sind auch folgende Zeichenreihen Formeln: (F ∧ G) (F ∨ G) (¬F ) (2F ) (Sprechweise “es gilt notwendig F ”) (3F ) (Sprechweise “es ist möglich, daß F gilt”) (3) Weitere Formeln existieren nicht. Die Implikation F → G ist wie üblich eine Abkürzung für ¬F ∨G, und F ↔ G bedeutet (F → G) ∧ (G → F ). Semantik der Modallogik: In der Semantik bezieht man sich auf eine Menge W von Referenzpunkten (oder Welten) und eine binäre Erreichbarkeitsrelation über W : Es sei W 6= ∅ eine nichtleere Menge und R ⊆ W × W . Dann heißt (W, R) Rahmen, und die Elemente von W heißen Referenzpunkte. Anders als in der Aussagenlogik braucht man hier für jede Welt eine Belegung der Aussagenvariablen. AS bezeichne die Menge der Aussagenvariablen. Eine W -Belegung ist eine Funktion σ von AS × W in die Menge {0, 1} der Wahrheitswerte. Eine modallogische Struktur M (auch Kripke-Struktur genannt) ist ein Tripel M = (W, R, σ), wobei (W, R) Rahmen ist, und σ ist eine W -Belegung. 40 Es sei nun M = (W, R, σ) eine modallogische Struktur und F eine modallogische Formel. Dann ist der Wahrheitswert W WM von F bei M (bzw. der Wahrheitswert W WM,w von F bei M im Punkt w) wie folgt definiert: (1) Es sei w ∈ W . Die Formel F gilt in M im Punkt w (Schreibweise: M |= F [w]), falls gilt: W WM,w (F ) = 1 bei folgender rekursiven Wahrheitswertdefinition: W WM,w (⊤) = 1 W WM,w (⊥) = 0 W WM,w (A) = σ(A, w) für A ∈ AS W WM,w (F ∧ G) = min(W WM,w (F ), W WM,w (G)) W WM,w (F ∨ G) = max(W WM,w (F ), W WM,w (G)) W WM,w (¬F ) = 1 − W WM,w (F ) W WM,w (2F ) = min{W WM,w′ (F ) | (w, w ′) ∈ R} W WM,w (3F ) = max{W WM,w′ (F ) | (w, w ′) ∈ R} (2) Gilt F in der Struktur M in allen Punkten w ∈ W , so gilt F in M (Schreibweise: M |= F ). (3) Gilt F in allen auf dem Rahmen (W, R) basierenden Strukturen M, so heißt F gültig in (W, R). (4) Eine Formel heißt modallogisch allgemeingültig, wenn sie in allen Rahmen gültig ist. Die aussagenlogisch allgemeingültigen Formeln sind daher auch modallogisch allgemeingültig. Diese mehrstufige Gültigkeitsdefinition verallgemeinert also diejenige der Aussagenlogik. Hinzu kommen die Wahrheitswerte von 2F und 3F im Punkt w, die sich auf den Wahrheitswerten in den Referenzpunkten w ′ ergeben, die bzgl. R unmittelbare Nachfolger von w sind. Dabei erinnert 2F wegen der Minimumbildung an den ∀-Quantor der PL1, und 3F erinnert an den ∃-Quantor. Es gibt gegenüber der PL1 jedoch entscheidende Unterschiede schon in der Syntax. Der modale Rang MR(F ) einer Formel F gibt die Schachtelungstiefe der modalen Operatoren 2 und 3 in F an und wird wie folgt rekursiv definiert: MR(⊤) = MR(⊥) = 0 und MR(A) = 0 für A ∈ AS MR(¬F ) = MR(F ) MR(F ∧ G) = MR(F ∨ G) = max(MR(F ), MR(G)) MR(2F ) = MR(3F ) = 1 + MR(F ) 41 Das modallogische Koinzidenzlemma besagt, daß für die Gültigkeit einer Formel F in einem Punkt v ∈ W einer Struktur M = (W, R, σ) nur die in der Formel vorkommenden Aussagenvariablen und diejenigen Punkte w ∈ W eine Rolle spielen, deren Distanz von v aus in R höchstens n ist, wobei n = MR(F ) den modalen Rang von F angibt. Satz 9.1 Es seien F und G modallogische Formeln. Dann sind folgende Formeln modallogisch allgemeingültig: (1) 2(F → G) → (2F → 2G) (2) ¬3F ↔ 2¬F (3) ¬2F ↔ 3¬F (4) 2⊤ (5) 3(F → G) → (2F → 3G) (6) 2(F → G) → (3F → 3G) (7) 2(F ∧ G) ↔ (2F ∧ 2G) (8) 3(F ∨ G) ↔ (3F ∨ 3G) (9) Ist F modallogisch allgemeingültig, so auch 2F . 9.2 Zeitlogik und temporale Logik Ein Rahmen (W, R) heißt zeitlogischer Rahmen, wenn gilt: (a) Für alle w ∈ W ist (w, w) ∈ / R (Irreflexivität) (b) Für alle u, v, w ∈ W mit (u, v) ∈ R und (v, w) ∈ R gilt (u, w) ∈ R (Transitivität). Die Syntax der Zeitlogik ist dieselbe wie die der Modallogik; die Semantik der Zeitlogik entspricht derjenigen der Modallogik bei Einschränkung auf zeitlogische Rahmen. Es gilt folgender interessante Satz: Satz 9.2 Es sei (W, R) ein Rahmen, und M sei die Menge der folgenden modallogischen Formeln: M := {2F → 22F | F ist modallogische Formel}. Dann gilt: (1) R ist genau dann transitiv, wenn (W, R) |= M gilt. (2) Eine modallogische Formel F gilt genau dann in allen transitiven Rahmen, wenn M |= F gilt. 42 Bei der Beschreibung des Ein- und Ausgabeverhaltens von Programmen sowie der Definition von Schnittstellen treten Bedingungen auf, die die Ausdrucksfähigkeit der Modallogik überschreiten. Die Menge der Referenzpunkte ist die Menge der Zeitpunkte, und damit ergibt sich als Rahmen (N, <), wobei N die Menge der natürlichen Zahlen bezeichnet, und < bezeichnet wie üblich die irreflexive Vergleichsrelation. Gewisse zeitliche Zusammenhänge lassen sich ausdrücken, wie z.B. “die Formel F gilt immer” durch 2F bzw. “die Formel F gilt irgendwann” durch 3F . Probleme gibt es jedoch z.B. mit der Bedingung “die Formel F gilt bis zum ersten Zeitpunkt, an dem eine Formel G gilt”. Dies wird durch den sogenannten until-Operator ausgedrückt, der sich nicht mit den Mitteln der Modallogik formulieren läßt (wie gezeigt wurde - siehe z.B. das am Anfang erwähnte Lehrbuch von Kreuzer und Kühling). Ebenso verhält es sich mit dem past-Operator, mit dem ausgedrückt wird, daß eine Formel F in der Vergangenheit galt. Um den until-Operator und den past-Operator ausdrücken zu können, wird die Modallogik geeignet in die Prädikatenlogik eingebettet. Das Ergebnis heißt dann Temporale Logik, und der Rahmen bei temporaler Logik ist stets (N, <). Die temporale Logik und Varianten davon finden z.B. Anwendung beim Problemkreis model checking, wo es darum geht, zu prüfen, ob eine Systembeschreibung (Modell) M eine Spezifikation (Formel) F tatsächlich beschreibt. Logisch ausgedrückt, soll festgestellt werden, ob M Modell für F ist (d.h. M |= F ). 43