Logik für Informatiker Logic for Computer Scientists Peter Padawitz, TU Dortmund, Germany 21. Juli 2016 (actual version: http://fldit-www.cs.uni-dortmund.de/∼peter/LogikPad.pdf) Webseite zur LV: + fldit-www.cs.tu-dortmund.de/logik1.html 1 Inhalt Mit ∗ markierte Abschnitte bzw. Kapitel werden zur Zeit in der LV nicht behandelt. Zur Navigation auf Titel, nicht auf Seitenzahlen klicken! 1 Vorbemerkungen 6 2 Gemeinsame Grundbegriffe Logik in der Informatik 8 16 3 Mengen und Funktionen 18 1 Mengen und Relationen 2 Funktionen 3 Isomorphien 4 Highlights 4 (Co)Induktiv Definieren und Beweisen 1 (Co)Induktiv definierte Mengen 2 Induktion über n ∈ N 3 Noethersche Induktion bzgl. R ⊆ A2 4 Ableitungen und Ableitungsrelationen 18 25 33 44 46 46 54 56 60 2 5 Konstruktoren und Destruktoren 68 6 (Co)Induktiv definierte Funktionen 75 7 Highlights 87 5 Gleichungslogik 91 1 Signaturen, Terme und Algebren 91 2 Termauswertung und -substitution 98 3 Termgleichungen 105 4 Normalformen 107 5 Äquivalenzrelationen und Quotienten 109 6 Gleichungskalkül 112 7 Berechnung äquivalenter Normalformen 115 8 Gleichungslogik in anderen Logiken 126 9 Highlights 129 6 Aussagenlogik 132 1 Normalformen 138 2 Schnittkalkül 149 3 * Knotenmarkierte Bäume 155 3 4 * Tableaukalkül 158 5 Highlights 165 7 Modallogik 169 1 Übersetzung modallogischer in aussagenlogische Formeln 174 2 * Tableaukalkül 182 3 Zustandsäquivalenzen 201 4 Minimierungsalgorithmus 216 5 * Verhaltensmodelle und finale Strukturen 220 6 Highlights 235 8 Prädikatenlogik 240 1 Normalformen 257 2 Schnittkalkül 266 3 Prädikatenlogik mit Gleichheit 284 4 Übersetzung modallogischer in prädikatenlogische Formeln 291 5 Highlights 297 9 Logische Programmierung 1 SLD-Kalkül 303 318 4 2 Kleinste und größte Herbrand-Modelle 325 3 Berechnungskalkül 334 4 Highlights 351 10 Literatur 352 11 Index 355 5 1 Vorbemerkungen Vorläufiger Zeitplan 2016 11.4. 18.4. 25.4. 2.5. 9.5. 16.5. 23.5. 30.5. 6.6. 13.6. 20.6. 27.6. 4.7. 11.7. 18.7. Bestandteile und Eigenschaften einer Logik Mengen und Funktionen dto. (Co)Induktiv Definieren und Beweisen dto. Gleichungslogik dto. Aussagenlogik (AL) Modallogik (ML) dto. Prädikatenlogik (PL) dto. Logische Programmierung dto. (Puffer) 6 1 Vorbemerkungen In Kapitel 2 weist Fettdruck auf die informelle Einführung eines Begriffs hin, in späteren Kapiteln auf die Textstelle, an der er mathematisch definiert wird. Begriffe sind historisch gewachsen und daher nicht immer so präzise voneinander abgegrenzt wie Definitionen. Ein mathematisches Symbol mit einer festgelegten Bedeugung ist an der Stelle, an der es zum ersten Mal benutzt wird, rot gefärbt. Manchmal weist Rotfärbung allerdings nur auf entscheidende Teile einer Formel hin. Interne Links (einschließlich der Seitenzahlen im Index) sind an ihrer braunen Färbung, externe Links (z.B. zu Wikipedia) an ihrer magenta-Färbung erkennbar. Vor letzteren steht zusätzlich eine Hand + . Um aus einem Kapitel heraus zu einem anderen zu springen, klickt man am besten auf die Kapitelüberschrift rechts oben oder die Seitenzahl rechts unten auf jeder Folie. Damit gelangt man zum Inhaltsverzeichnis. Von dort aus führt ein Klick auf den Titel des gewünschten Kapitels zu seinem jeweiligen Anfang. Die eingestreuten Aufgaben lassen sich ohne besondere Tricks – nur unter Verwendung hier behandelter Definitionen und Sätze – lösen. Auch wer sie nicht bearbeitet, sollte sie lesen und sich ihre jeweilige Aussage klarmachen. 7 2 Gemeinsame Grundbegriffe reale Welt modellieren formales Modell interpretieren Kalkül (rechnen) formales Modell Korrektheit Vollständigkeit Syntax (Beschreibung) interpretieren Semantik (Bedeutung) 8 2 Bestandteile und Eigenschaften einer Logik Syntax (Beschreibung) interpretieren Semantik (Bedeutung) Typ Menge M Term t Element(e) von M Gleichung t≡t’ Wahrheitswert(e) aussagenlogische Formel φ Wahrheitswert modallogische Formel φ Menge der Zustände, die φ erfüllen prädikatenlogische Formel φ Menge der Variablenbelegungen, die φ erfüllen 9 2 Bestandteile und Eigenschaften einer Logik Syntax: Formeln der jeweiligen Logik Semantik: Bedeutung der Formeln und ihrer Komponenten in einem semantischen Bereich (domain) D, d.i. eine Klasse mathematischer Strukturen, in denen die Formeln als Wahrheitswerte oder von Zuständen abhängige Wahrheitswerte interpretiert werden können. Umgekehrt werden Elemente des semantischen Bereichs durch Formeln repräsentiert. Für eine Formel ϕ nennt man ein Element a von D ein Modell von ϕ, wenn a ϕ erfüllt (oder ϕ in a gültig ist), geschrieben: a |= ϕ. Was das bedeutet, hängt von der jeweiligen Logik ab. Die Menge aller Modelle von ϕ wird oft mit ϕD bezeichnet. Auf D und dem jeweiligen Modellbegriff bauen die folgenden Definitionen bzw. Notationen auf: ϕ ist erfüllbar, wenn ϕ ein Modell in D hat. ϕ ist widersprüchlich, wenn ϕ unerfüllbar ist. ϕ ist allgemeingültig oder tautologisch, wenn alle Elemente von D Modelle von ϕ sind. Eine Formel ψ folgt aus ϕ, geschrieben: ϕ |= ψ, wenn jedes Modell von ϕ auch Modell von ψ ist. Gilt ϕD = ψ D , dann sind ϕ und ψ äquivalent. 10 2 Bestandteile und Eigenschaften einer Logik Werden diese Definitionen für Formelmengen Φ anstelle einzelner Formeln verwendet, dann ist mit Φ stets die logische Konjunktion der Elemente von Φ gemeint. Im Gegensatz zum Implikationspfeil ⇒, der zur Syntax vieler Logiken gehört, also in ihren jeweiligen Formeln vorkommen kann, ist |= stets ein metasprachlicher Operator, der eine semantische Beziehung zwischen Formeln beschreibt, also niemals in diesen vorkommt. Die Teilformeln ϕ und ψ einer Implikation(sformel) ϕ ⇒ ψ heißt Prämisse bzw. Konklusion der Implikation. Gilt ϕ ⇒ ψ bzgl. der jeweiligen Semantik, dann sagt man auch: • ϕ impliziert (implies) ψ, • ϕ ist hinreichend (sufficient) für ψ, • ψ ist notwendig (necessary) für ϕ. 11 2 Bestandteile und Eigenschaften einer Logik Ein Kalkül oder Inferenzsystem ist eine Menge K von (Schluss-)Regeln Φ1 ` ϕ1, . . . , Φk ` ϕk Φk+1 ` ϕk+1 Hier stehen Anwendbarkeitsbedingungen wobei für alle 1 ≤ i ≤ k + 1 Φi eine Menge von Formeln und ϕi eine einzelne Formel der jeweils zugrundeliegenden Logik ist. Die Ausdrücke der Form Φ ` ϕ oberhalb bzw. unterhalb des Bruchstrichs nennt man Antezedenten bzw. Sukzedenten der Regel. Rechts neben dem Bruchstrich stehen manchmal Eigenschaften der Antezedenten, die diese haben müssen, damit die Regel anwendbar ist. Ist k = 0, dann ist der Antezedent leer und der Sukzedent wird Axiom genannt. Ein weiterer Spezialfall liegt vor, wenn Φi leer ist. Man schreibt dann einfach ϕ anstelle von Φi ` ϕi. Der Ausdruck Φ ` ψ heißt K-ableitbar, geschrieben: Φ `K ϕ, wenn, kurz gesagt, Φ ` ψ das Ergebnis wiederholter Anwendungen von Regeln des Kalküls K ist. Um das mathematisch zu präzisieren, benötigen wir den Begriff der induktiv definierten Menge, der in Kapitel 4 eingeführt wird. 12 2 Bestandteile und Eigenschaften einer Logik Je nach Kalkül K und Interpretation der Formeln kann man aus Φ `K ϕ verschiedene Schlüsse ziehen, z.B. • ϕ folgt aus Φ, • Φ ist widersprüchlich, • ϕ repräsentiert eine Lösung von Φ, • ϕ repräsentiert eine Normalform von Φ. Beispiel Jeder Anwendung eines der beiden arithmetischen Distributivgesetze x0 ∗ (x1 + · · · + xn) ≡ x0 ∗ x1 + · · · + x0 ∗ xn, (x1 + · · · + xn) ∗ x0 ≡ x1 ∗ x0 + · · · + xn ∗ x0 (1) (2) auf einen arithmetischen Ausdruck entspricht eine Anwendung folgender Regel: Ax ` ϕ[L[t0/x0, . . . , tn/xn]/z] Ax ` ϕ[R[t0/x0, . . . , tn/xn]/z] L ≡ R ∈ Ax (3) Hierbei ist Ax = {(1), (2)} und e[e1/z1, . . . , ek /zk ] der Ausdruck, der aus dem Ausdruck e entsteht, wenn für alle 1 ≤ i ≤ k die Variable zi durch den Ausdruck ei ersetzt wird. 13 2 Bestandteile und Eigenschaften einer Logik Da sich bei der Anwendung von (3) nur der Teilausdruck L[t/x, t1/x1, . . . , tn/xn] des Antezedenten von (3) verändert, nennt man ihn den Redex und den korrespondierenden Teilausdruck R[t/x, t1/x1, . . . , tn/xn] des Sukzedenten das Redukt der Regel. Es gibt auch Regeln mit leerem Antezedenten wie z.B. Ax ` t ≡ t (4) Sei K = {(3), (4)}. + Hier steht eine Folge von Ausdrücken, die beweist, dass ∅ ` 5 ∗ (6 ∗ (11 ∗ (x + y + z) ∗ 14 + (c + g + b) ∗ 22) + 44 ∗ (gg + hh)) ≡ 5 ∗ 6 ∗ 11 ∗ x ∗ 14 + 5 ∗ 6 ∗ 11 ∗ y ∗ 14 + 5 ∗ 6 ∗ 11 ∗ z ∗ 14 + 5 ∗ 6 ∗ c ∗ 22 + 5 ∗ 6 ∗ g ∗ 22 + 5 ∗ 6 ∗ b ∗ 22 + 5 ∗ 44 ∗ gg + 5 ∗ 44 ∗ hh K-ableitbar ist. Die Elemente der Folge sind als Bäume dargestellt. Teilbäume, die Redexe bzw. Redukte einer Regelanwendung darstellen, sind rot bzw. grün gefärbt. o 14 2 Bestandteile und Eigenschaften einer Logik Ein Kalkül K ist korrekt (sound), wenn aus Φ `K ϕ stets Φ |= ϕ folgt. Ein Kalkül K ist vollständig (adequate), wenn aus Φ |= ϕ stets Φ `K ϕ folgt. Eine Theorie Th ist eine Menge von Formeln. Th ist vollständig (complete), wenn jede Formel ϕ oder die Negation von ϕ zu Th gehört. Th ist konsistent (widerspruchsfrei), wenn keine Formel ϕ und gleichzeitig die Negation von ϕ zu Th gehört. Th ist entscheidbar, wenn es einen Algorithmus gibt, der, auf eine Formel angewendet, feststellt, ob sie zu Th gehört oder nicht, und stets terminiert. Th ist semi-entscheidbar, wenn es einen Algorithmus gibt, der, auf eine Formel angewendet, feststellt, ob sie zu Th gehört und in diesem Fall terminiert. Andernfalls terminiert er möglicherweise nicht. Eine Präsentation oder Spezifikation von Th ist eine – i.d.R. endliche – Menge von Formeln, aus denen alle Formeln von Th mit einem gegebenen Kalkül ableitbar sind. 15 2 Bestandteile und Eigenschaften einer Logik Wo kommt mathematische Logik in der Informatik vor? Überall! In Hard- und Software gleichermaßen: • Schaltnetze und Schaltwerke • Boolesche Ausdrücke (Darstellungen zweiwertiger Funktionen) kommen in jeder Programmier- oder Entwurfssprache vor. • Programmverifikation als Beweis von Zusicherungen, das sind Formeln, die Eigenschaften beschreiben, die Programmvariablen an bestimmten Positionen im Programm besitzen sollen • Programmverifikation durch Übersetzung von Programmen in eine geeignete Logik, in der ihre gewünschten Eigenschaften auf abstrakterer Ebene als bei der Zusicherungsmethode überprüft werden können • Programmtransformation zum Zwecke der Effizienzsteigerung oder Anpassung an vorgegebene oder veränderte Datenstrukturen (+ refactoring) oder gar zur Synthese von Programmen aus Formeln, die ihre gewünschten Eigenschaften beschreiben • Logische Programme lösen Formeln, d.h. (“das heißt”) berechnen Werte logischer Variablen, die die Formeln erfüllen. 16 2 Bestandteile und Eigenschaften einer Logik • Datenbankprogramme operieren auf Relationen, kombinieren sie und stellen Anfragen (berechnen Teilrelationen). Im Gegensatz zu logischen Programmen sind die berechneten Werte hier i.d.R. selbst Relationen. • Automatisches Beweisen befasst sich mit der Implementierung von Inferenzsystemen und ist weniger eine Anwendung der Logik in der Informatik als eine der Informatik in der Logik. 17 3 Mengen und Funktionen 3.1 Mengen und Relationen Eine Menge ist eine ungeordnete Kombination von Elementen ohne Wiederholungen, d.h. ohne mehrfache Vorkommen einzelner Elemente. Die Elemente einer Menge können selbst Mengen sein, allerdings muss zur Vermeidung logischer Widersprüche für jede Menge M und jedes Element e gelten, dass e entweder zu M gehört (in M enthalten ist; geschrieben e ∈ M ) oder nicht (e 6∈ M ). Das schliesst u.a. Mengen aus, die sich selbst enthalten: Würde man z.B. die Kombination K aller Mengen, die sich nicht selbst enthalten, als Menge betrachten und annehmen, dass K zu K gehört, dann gilt K 6∈ K nach Definition von K. Nehmen wir dagegen an, dass K nicht zu K gehört, dann gilt, wieder nach Definition von K, K ∈ K. Um solche Widersprüche zu vermeiden, wird manche Menge von Mengen als Klasse eingeführt. Eine Klasse enthält sich per definitionem niemals selbst. • ∅ ist die leere Menge. • 1 =def {} ist eine einelementige Menge. Das Element wird leeres Wort genannt. • 2 =def {0, 1} ist eine zweielementige Menge (Bits, Wahrheitswerte, Boolesche Werte). 18 3 Mengen und Funktionen • N =def {0, 1, 2, 3, . . . } ist die Menge der natürlichen Zahlen. • N>0 =def {1, 2, 3, . . . } ist die Menge der positiven natürlichen Zahlen. • Z und R bezeichnen die Mengen der ganzen bzw. reellen Zahlen. Die obige Konvention, dass sich Mengen niemals selbst enthalten, erlaubt uns das Overloading von Bezeichnungen für Elemente einerseits und Mengen andererseits – wie z.B. 1 und 2. Eine Menge B heißt Teilmenge (subset) einer Menge A oder unäre Relation auf A (geschrieben: B ⊆ A) und A Obermenge von B, wenn alle Elemente von B Elemente von A sind. ∅ ist also eine Teilmenge jeder Menge. B ⊆ A ist eine echte Teilmenge von A, wenn A außer den Elementen von B weitere Elemente enthält. A und B sind gleich (geschrieben: A = B), wenn A ⊆ B und B ⊆ A gilt. Durch Komprehension oder die Anwendung von Mengenoperatoren werden aus Mengen neue Mengen gebildet: • Komprehension: Sei A eine Menge und ϕ eine Eigenschaft von Elementen von A. B =def {e ∈ A | e |= ϕ} und e ∈ B ⇔def e ∈ A und e |= ϕ definieren B als Menge aller Elemente von A, die ϕ erfüllen. 19 3 Mengen und Funktionen • Vereinigung von n ∈ N Mengen A1, . . . , An: e ∈ A1 ∪ · · · ∪ An ⇔def es gibt 1 ≤ i ≤ n mit e ∈ Ai • Durchschnitt von n Mengen A1, . . . , An: e ∈ A1 ∩ · · · ∩ An ⇔def für alle 1 ≤ i ≤ n gilt e ∈ Ai • Differenz zweier Mengen A und B: e ∈ A \ B ⇔def e ∈ A und e 6∈ B • (Kartesisches) Produkt von n Mengen A1, . . . , An: A1 × . . . × An =def {(a1, . . . , an) | ai ∈ Ai, 1 ≤ i ≤ n} (a1, . . . , an) heißt n-Tupel mit den Komponenten a1, . . . , an. Sind A1, . . . , An dieselben Mengen, dann schreibt man An1 anstelle von A1 × · · · × An. Die einelementige Menge 1 entspricht dem nullstelligen Produkt. • Summe oder disjunkte Vereinigung von n Mengen A1, . . . , An: A1 + · · · + An =def A1 ] · · · ] An =def {(a, i) | a ∈ Ai, 1 ≤ i ≤ n} Die zweite Komponente eines Paares (a, i) von A1 +· · ·+An dient der Unterscheidung der Herkunft von a. Die leere Menge entspricht der nullstelligen Summe. 20 3 Mengen und Funktionen Gibt es a ∈ A1 ∪ · · · ∪ An und 1 ≤ i, j ≤ n mit i 6= j und a ∈ Ai ∩ Aj , dann gibt es mindestens zwei Kopien von a in A1 + · · · + An, nämlich (a, i) und (a, j). Gibt es kein solches a, dann heißen A1 . . . , An (paarweise) disjunkt, geschrieben: A1k . . . kAn. • Menge der Listen oder Wörter über einer Menge A: S n A∗ =def n∈N A A+ =def A∗ \ 1. Die Elemente von A∗ werden oft ohne Klammern und Kommas geschrieben, also z.B. abc für das Tupel (a, b, c). Bestehen Elemente von A aus mehreren Zeichen, setzt man Punkte zwischen die einzelnen Elemente, schreibt also z.B. ab · bz · de für das Tupel (ab, bz, de). Listen bilden neben Bäumen und Graphen die wichtigsten Datenstrukturen fast aller Programmiersprachen. Sie werden dort u.a. zur Implementierung von Mengen benutzt. Da der Begriff der Menge sowohl von der Anordnung als auch der Anzahl der Vorkommen ihrer jeweiligen Elemente abstrahiert, gibt es für jede Menge M mit mindestens zwei Elementen mehrere Listen, die A repräsentieren. • Die Potenzmenge P(A) einer Menge A ist die Menge aller Teilmengen von A: e ∈ P(A) ⇔def e ⊆ A 21 3 Mengen und Funktionen • Pfin (A) bezeichnet die Menge aller endlichen Teilmengen von A. Pfin (A) ist also eine Teilmenge von P(A). Satz 3.1 Seien A, B, C Mengen und A ⊆ C. Dann gilt: A ⊆ B ⇔ A ∩ (C \ B) = ∅. Beweis. “⇒”: Sei A ⊆ B und a ∈ A ∩ (C \ B). Nach Definition der Mengendifferenz gehört a nicht zu B. (Widerspruch zu A ⊆ B). Also sind A und C \ B disjunkt. “⇐”: Seien A und C\B disjunkt und a ∈ A. Dann gehört a nicht zu C\B. Aus a ∈ A ⊆ C folgt deshalb a ∈ C \ (C \ B) = B ∩ C ⊆ B nach Definition der Mengendifferenz. Damit ist A eine Teilmenge von B. o 22 3 Mengen und Funktionen Fortan werden gelegentlich die aussagen- bzw. prädikatenlogischen Symbole ∧, ∨, ∀ und ∃ in ihrer üblichen umgangssprachlichen Bedeutung verwendet (“und”, “oder”, “für alle ... gilt” bzw. “es gibt ... mit”). Ihre formale Semantik wird in Kapitel 6 bzw. 8 definiert. Satz 3.2 Für alle C, D ⊆ A und CS ⊆ P(A), C ⊆ D ⇔ A \ D ⊆ A \ C, \ [ A\ CS = {A \ C | C ∈ CS}, \ (∀ C ∈ CS : D ⊆ C) ⇒ D ⊆ CS. Aufgabe Beweisen Sie Satz 3.2. (1) (2) (3) o 23 3 Mengen und Funktionen Eine n-stellige Relation R ist eine Teilmenge eines Produktes der Form A1 × · · · × An. A1, . . . , An sind die Komponenten des Produkts. Ist n = 2, dann wird R auch binäre Relation genannt. R−1 =def {(b, a) | (a, b) ∈ R} heißt Inverse von R . R ist eine Relation auf A1, falls A1 mit A2 übereinstimmt. Wegen A0 = 1 gibt es genau zwei nullstellige Relationen, nämlich 1 und ∅. Die Menge {1, ..., n} nennt man Indexmenge des Produktes A1 × · · · × An. Für alle 1 ≤ i ≤ n besteht Ai aus den möglichen Werten eines bestimmten Attributs der Elemente des Produkts, z.B. seiner Farbe. Man ersetzt dann den Index i häufig durch das zugehörige Attribut. Im Rahmen vieler Programmiersprachen werden derart attributierte Mengen als Records bezeichnet. In Datenbanksprachen sind mit Relationen stets attributierte Relationen gemeint. Eine Teilmenge Z von P(A) heißt Partition oder Zerlegung von A, wenn die leere Menge nicht zu Z gehört, je zwei verschiedene Elemente von Z disjunkt sind und Z ganz S A abdeckt, d.h. A mit Z übereinstimmt. Partitionierungen sind Abstraktionen: Elemente von A, die im selben Partitionselement von Z liegen, werden als gleich angesehen. 24 3 Mengen und Funktionen 3.2 Funktionen Sei n ∈ N, A1, . . . , An, B Mengen und A = A1 × · · · × An. Eine n-stellige Funktion oder Abbildung (function, map, mapping) f : A → B von A nach B ordnet jedem – Argument oder Stelle von f genannten – Element a von A genau ein Element b von B zu, das Bild von a unter f genannt und mit f (a) bezeichnet wird. Man sagt auch: f bildet a auf f (a) ab. Für alle C ⊆ A nennt man die Menge f (C) = {f (c) | c ∈ C} ebenfalls das Bild von C unter f . Sei b ∈ B und D ⊆ B. f −1(b) = {a ∈ A | f (a) = b} und f −1(D) = {a ∈ A | f (a) ∈ D} heißen Urbilder (pre-image) von b bzw. D unter f . Weitere auf f : A → B bezogene Mengen: • type(f ) = A → B ist der Typ, • arity(f ) = n die Stelligkeit, • dom(f ) = A der Definitionsbereich (domain), • ran(f ) = B der Wertebereich (range), 25 3 Mengen und Funktionen • img(f ) = f (A) = {f (a) | a ∈ A} das Bild (image), • ker(f ) = {(a, a0) ∈ A2 | f (a) = f (a0)} der + Kern (+ kernel) und • graph(f ) = {(a, f (a)) | a ∈ A} der Graph von f . Der Graph von f ist also eine – im Produkt A × B enthaltene – zweistellige Relation. a ∈ A heißt Fixpunkt von f : A → A, wenn f (a) = a ist. Nullstellige Funktionen haben den Definitionsbereich 1 und heißen deshalb auch Konstanten. f : A → B ist endlich, wenn A endlich ist. f : A → B ist surjektiv, falls img(f ) = B. Die Relation ∆A =def {(a, a) | a ∈ A} heißt Diagonale von A2. f : A → B ist injektiv, falls ker(f ) = ∆A. 26 3 Mengen und Funktionen Aufgabe Zeigen Sie, dass f genau dann injektiv ist, wenn je zwei unterschiedliche Elemente von A verschiedene Bilder unter f haben. Aufgabe Zeigen Sie, dass f genau dann surjektiv ist, wenn {f −1(b) | b ∈ B} eine Zerlegung von A ist. Aufgabe Zeigen Sie, dass {{a0 ∈ A | (a, a0) ∈ ker(f )} | a ∈ A} eine Zerlegung von A ist. Aufgabe Zeigen Sie, dass für alle C ⊆ A und D f (C) ⊆ D C ⊆ f −1(D) f surjektiv und f −1(D) ⊆ C f injektiv und D ⊆ f (C) ⊆ B folgende Implikationen gelten: ⇒ C ⊆ f −1(D), ⇒ f (C) ⊆ D, ⇒ D ⊆ f (C), ⇒ f −1(D) ⊆ C. Funktionen können auf (mindestens) drei Weisen notiert werden, z.B.: f :N×N (m, n) Für alle m, n ∈ N, f (m, n) f → 7→ =def =def R m ∗ n/2 m ∗ n/2 λ(m, n).(m ∗ n/2) 27 3 Mengen und Funktionen Die letzte heißt λ-Notation. Sie macht deutlich, dass jede Funktion f : A → B Element einer Menge ist, nämlich der Menge B A =def (A → B) aller Funktionen von A nach B. Demnach bedeutet f ∈ B A dasselbe wie f : A → B. In klassischer Algebra und Analysis taucht λ bei der Darstellung von Funktionen nicht auf, wenn Symbole wie x, y, z konventionsgemäß als Variablen betrachtet und daher z.B. für die Polynomfunktion λx.2 ∗ x3 + 55 ∗ x2 + 33 : R → R einfach nur 2 ∗ x3 + 55 ∗ x2 + 33 oder sogar nur 2x3 + 55x2 + 33 geschrieben wird. Da in allgemeiner Logik oder Algebra Symbole wie x, y, z, ∗ unterschiedlich interpretiert werden, können solche Kurzschreibweisen hier zu Missverständnissen führen und sollten deshalb vermieden werden. Das Update von f : A → B an Stellen a1, . . . , an ∈ A durch Werte b1, . . . , bn ∈ B ist eine neue Funktion, die wie folgt definiert ist: f [b1/a1, . . . , bn/an] : A → B “f mit bi für ai” bi falls a = ai für ein 1 ≤ i ≤ n a 7→ f (a) sonst 28 3 Mengen und Funktionen Jede binäre Relation R auf B wird wie folgt zu einer Relation auf der Funktionsmenge B A erweitert: Für alle f, g : A → B, (f, g) ∈ R ⇔def für alle a ∈ A gilt (f (a), g(a)) ∈ R. Die (sequentielle) Komposition g ◦ f zweier Funktionen f : A → B und g : B → C ist eine Funktion von A nach C: g◦f : A → C a 7→ g(f (a)) Offenbar ist ◦ assoziativ, d.h. für alle f : A → B, g : B → C und h : C → D gilt h ◦ (g ◦ f ) = (h ◦ g) ◦ f . Man darf die Klammern deshalb weglassen. Aufgabe Zeigen Sie, dass f genau dann injektiv ist, wenn je zwei Funktionen g, h : A0 → A mit f ◦ g = f ◦ h übereinstimmen. Aufgabe Zeigen Sie, dass f genau dann surjektiv ist, wenn je zwei Funktionen g, h : B → B 0 mit g ◦ f = h ◦ f übereinstimmen. 29 3 Mengen und Funktionen Zu jeder Menge A gibt es die Identität idA : A → A auf A, die jedem Argument dieses selbst zuordnet: Für alle a ∈ A, idA(a) = a. Offenbar sind alle Elemente von A Fixpunkte von idA und alle Funktionen von A in eine Menge B Fixpunkte von λf.f ◦ idA und λg.idB ◦ g. Zu jeder Teilmenge B von A gibt es die Inklusion incB : B → A, die ebenfalls jedem Argument dieses selbst zuordnet: Für alle b ∈ B, incB (b) = b. Eine Funktion g : B → A heißt Inverse (Umkehrfunktion) von f : A → B, falls gilt: g ◦ f = idA, f ◦ g = idB . Die Elemente eines Produktes A1 × · · · × An werden mit Projektionen πi : A1 × · · · × An → Ai (a1, . . . , an) 7→ ai 1≤i≤n auf ihre n Komponentenmengen A1, . . . , An abgebildet. 30 3 Mengen und Funktionen Die Elemente von n Mengen A1, . . . , An werden mit Injektionen ιi : Ai → A1 + · · · + An a 7→ (a, i) in die Summe A1 + · · · + An eingebettet. 1≤i≤n Die Summenextension [f1, . . . , fn] : A1 + · · · + An → B von n Funktionen f1 : A1 → B, . . . , fn : An → B ist folgendermaßen definiert: Für alle (a, i) ∈ A1 + · · · + An, [f1, . . . , fn](a, i) =def fi(a). Die Produktextension hg1, . . . , gni : B → A1 × · · · × An von n Funktionen g1 : B → A1, . . . , gn : B → An ist folgendermaßen definiert: Für alle b ∈ B, hg1, . . . , gni(b) =def (g1(b), . . . , gn(b)). 31 3 Mengen und Funktionen [f1, . . . , fn] und hg1, . . . , gni sind die eindeutigen (!) Funktionen derart, dass die folgenden Funktionsdiagramme kommutieren, d.h. derart, dass die durch die Diagramme repräsentierten Funktionsgleichungen gelten: Sei 1 ≤ i ≤ n. fi A1 + · · · + An A1 × · · ·≺× An (1) πi (2) [f1, . . . , fn] Ai ιi Ai hg1, . . . , gni gi B≺ B Man sagt deshalb, dass [f1, . . . , fn] durch (1) und hg1, . . . , gni durch (2) definiert ist. Dementsprechend sind die Summe f1 + · · · + fn : A1 + · · · + An → B1 + · · · + Bn von fi : Ai → Bi, 1 ≤ i ≤ n, und das Produkt g1 × · · · × gn : A1 × · · · × An → B1 × · · · × Bn von gi : Bi → Ai, 1 ≤ i ≤ n, durch die folgenden Diagramme definiert: 32 3 Mengen und Funktionen Ai fi g Bi ιi A1 + · · · + An = f1 + · · · + fn ιi A1 × · · · × An f g1 × · · · × gn g B1 + · · · + Bn B1 × · · · × Bn πi = πi Ai f gi Bi Offenbar gilt f1 + · · · + fn = [ι1 ◦ f1, . . . , ιn ◦ fn] und g1 × · · · × gn = hg1 ◦ π1, . . . , gn ◦ πni. Für alle n ∈ N bezeichnet f n : A → A die n-fache Komposition f ◦ · · · ◦ f , f 0 : A → A ist definiert als Identität auf A (s.o.). Summen, Produkte und ihre Extensionen werden analog für beliebige – auch unendliche – Indexmengen I definiert. Oben hat I immer die Form {1, . . . , n}. 3.3 Isomorphien f : A → B ist bijektiv oder eine Bijektion, falls f eine Inverse g hat. In diesem Fall ist g eindeutig und wird deshalb mit f −1 bezeichnet. 33 3 Mengen und Funktionen Beweis. Seien g und h Inverse von f . Dann gilt: h = h ◦ idB = h ◦ (f ◦ g) = (h ◦ f ) ◦ g = idA ◦ g = g. o Aufgabe Zeigen Sie, dass die Komposition zweier Bijektionen bijektiv ist. Aufgabe Zeigen Sie, dass eine Funktion genau dann bijektiv ist, wenn sie injektiv und surjektiv ist. Aufgabe Zeigen Sie, dass für Funktionen zwischen endlichen Mengen die Begriffe injektiv, surjektiv und bijektiv zusammenfallen. Zwei Mengen A und B sind isomorph, geschrieben: A ∼ = B, wenn es eine Bijektion von A nach B (oder B nach A) gibt. Sind A und B Algebren, d.h. Mengen mit Operationen, dann verlangt Isomorphie zusätzlich, dass die Bijektion mit den Operationen von A und B verträglich ist. Das wird in Kapitel 5 näher ausgeführt. In diesem Fall folgt aus A ∼ = B, dass A und B elementar äquivalent sind, d.h. dieselben – in der jeweils zugrundeliegenden Logik formulierbaren – Eigenschaften haben. Die Umkehrung: Elementare Äquivalenz impliziert Isomorphie, gilt jedoch nicht immer. 34 3 Mengen und Funktionen Mathematiker betrachten isomorphe Mengen oft als gleich. Informatiker stoßen hingegen manchmal auf große Unterschiede, wenn sie zwei isomorphe Mengen A und B (als Formate, Datentypen, Klassen o.a.) implementieren und den Aufwand eines bestimmten auf A operierenden Algorithmus mit dem seines Pendants auf B vergleichen. Um den Algorithmus beschleunigen zu können, sollte man deshalb wissen, welche Datentypen zueinander isomorph sind, damit man den für ihn geeignetsten auswählen kann. Hier geht es vor allem um Algorithmen, die Verfahren zum Auswerten, Lösen, oder Beweisen von Formeln implementieren. Ihre Kosten hängen nach dem oben Gesagten von der Darstellung des semantischen Bereichs ab, in dem die Formeln interpretiert werden. Wichtige Isomorphien A ∼ = B, jeweils mit der zugehörigen Bijektion f : A → B und deren Inverser f −1 : B → A • Seien A und B disjunkt. Dann gilt: A + B ∼ = A ∪ B. Für alle a ∈ A und b ∈ B, f (a, 1) = a, f (b, 2) = b, f −1(a) = (a, 1) und f −1(b) = (b, 2). • Kommutativität von + und ×: A × B ∼ (4) = B × A und A + B ∼ = B + A. Für alle a ∈ A und b ∈ B, f (a, b) = (b, a) bzw. f (a, 1) = (a, 2) und f (b, 2) = (b, 1). 35 3 Mengen und Funktionen • Die Funktionen χ : P(A) → 2A und χ−1 : 2A → P(A) sind wie folgt definiert: 1 falls a ∈ B, Für alle B ⊆ A und a ∈ A, χ(B)(a) = 0 sonst. χ(B) heißt + charakteristische Funktion von B. Für alle g ∈ 2A, χ−1(g) = {a ∈ A | g(a) = 1}. Ist A ein binäres Produkt, z.B. A = A1 × A2, dann wird χ(B) auch als Boolesche Matrix oder Adjazenzmatrix bezeichnet. χ ist bijektiv. Für alle Mengen A gilt also P(A) ∼ = 2A . (5) Beweis. Nach Definition von Bijektivität und Funktionsgleichheit ist zu zeigen: (i) Für alle B ⊆ A gilt χ−1(χ(B)) = B. (ii) Für alle g : A → 2 und a ∈ A gilt χ(χ−1(g))(a) = g(a). Beweis von (i). Sei B ⊆ A. Dann gilt nach Definition von χ−1 bzw. χ: χ−1(χ(B)) = {a ∈ A | χ(B)(a) = 1} = {a ∈ A | a ∈ B} = B. 36 3 Mengen und Funktionen Beweis von (ii). Sei g : A → 2 und a ∈ A. Dann gilt nach Definition von χ bzw. χ−1: −1 1 falls a ∈ χ (g) 1 falls g(a) = 1 χ(χ−1(g))(a) = = = g(a). o 0 sonst 0 sonst • Die Funktionen curry : C A×B → C B A A und uncurry : C B → C A×B sind folgt definiert: Für alle g : A × B → C, a ∈ A, b ∈ B und h : A → C B , curry(g)(a)(b) = g(a, b) und uncurry(h)(a, b) = h(a)(b). curry(g) : A → C B heißt kaskadierte oder + curryfizierte Version von g. curry ist bijektiv. Für alle Mengen A, B, C gilt also C A×B ∼ = (C B )A. (6) Wie die oben definierten Funktionssummen- und produkte, so sind auch curry und uncurry die eindeutigen Funktionen derart, dass bestimmte Funktionsdiagramme kommutieren. Hier lauten sie wie folgt: 37 3 Mengen und Funktionen λ(f, b).f (b) C≺ λa.λb.(a, b) A (A×B)B ≺ CB × B λ(a, b).(curry(g), b) h λf.uncurry(h) ◦ f A×B ≺ g CB • Aus A ∼ = B folgt P(A) ∼ = P(B). (7) • Die Funktionen mkfun : P(A × B) → P(B)A und mkrel : P(B)A → P(A × B) sind wie folgt definiert: Für alle R ⊆ A × B, a ∈ A und g : A → P(B), mkfun(R)(a) = {b ∈ B | (a, b) ∈ R} und mkrel (g) = {(a, b) ∈ A × B | b ∈ g(a)}. mkfun(R) wird auch nichtdeterministische Funktion oder Adjazenzliste genannt. 38 3 Mengen und Funktionen mkfun ist bijektiv. Für alle Mengen A, B gilt also P(A × B) ∼ = P(B)A. (5) (6) (8) (5),(7) Beweis. P(A × B) ∼ = 2A×B ∼ = (2B )A ∼ = P(B)A. Aufgabe Zeigen Sie, wie man aus den obigen Isomorphien die folgende gewinnt: P(A)B ∼ = P(B)A. Aufgabe Zeigen Sie die Assoziativität von Summe und Produkt: A + (B + C) ∼ A × (B × C) ∼ = (A + B) + C, = (A × B) × C. Aufgabe Zeigen Sie folgende Distributivitätsgesetze: A × (B1 + · · · + Bn) ∼ = (A × B1) + · · · + (A × Bn) B A1+···+An ∼ = B A1 × . . . × B An (B1 × · · · × Bn)A ∼ = BA × . . . × BA 1 n (9) (10) (11) Aufgabe Zeigen Sie für alle f : A → C B und g : C → D: g ◦ uncurry(f ) = uncurry((λh.g ◦ h) ◦ f ). (12) Aufgabe Zeigen Sie für alle R ⊆ A × B: curry(χ(R)) = χ ◦ mkfun(R). 39 3 Mengen und Funktionen Aufgabe Zeigen Sie für alle f : A → B: mkfun(graph(f )) = single ◦ f , wobei für alle b ∈ B, single(b) =def {b}. Offenbar sind viele zusammengesetzte Mengen zu Funktionsmengen isomorph. Eine endliche Funktion kann durch ein Feld oder + Array oder eine Liste (s.u.) der Elemente ihres Graphen implementiert werden. Weitere als Funktionen darstellbare Datenstrukturen: • Multimengen (bags) sind wie Mengen ungeordnete Kombinationen von Elementen. Im Gegensatz zu Mengen können sie jedoch Elemente mehrfach enthalten: Eine Multimenge über einer Menge A, d.h. mit Elementen von A, lässt sich daher als Funktion f : A → N darstellen: Für alle a ∈ A gibt f (a) als Anzahl der Vorkommen von a in f an. Die Menge B(A) aller Multimengen über A ist daher definiert als die Funktionsmenge NA. • Die Menge Ströme oder unendlichen Folgen von Elementen einer Menge A, kurz: Ströme über A, ist umgekehrt definiert als die Funktionsmenge AN: Für alle s ∈ AN und n ∈ N liefert s(n) das n-te Element von s. 40 3 Mengen und Funktionen Ist A eine endliche Menge, dann ist die Mächtigkeit oder Kardinalität |A| von A durch die Anzahl der Elemente von A gegeben. Die Mächtigkeit endlicher Produkte, Summen bzw. Funktionsmengen Mengen ergibt sich wie folgt aus den Kardinalitäten der jeweiligen Komponentenmengen: |A × B| = |A| ∗ |B|, |A + B| = |A| + |B|, |AB | = |A||B|. Hier sieht man, wo die Bezeichnungen dieser Mengenoperatoren herkommen. Isomorphe Mengen nennt man auch gleichmächtig. Die Mächtigkeit oder “Größe” einer Menge A wird durch eine + Kardinalzahl beschrieben. Die kleinste unendliche Kardinalzahl wird mit ω oder ℵ0 (aleph, hebräischer Buchstabe) bezeichnet. Demgegenüber gibt eine Ordinalzahl die “Position” von A innerhalb der totalen Ordnung aller Ordinalzahlen an. Ist A endlich, dann stimmen die Kardinal- und die Ordinalzahl von A miteinander überein. Andernfalls lassen sich A mehrere Ordinalzahlen zuordnen. Die Kardinalität von A ist die kleinste davon. 41 3 Mengen und Funktionen Lässt sich A z.B. die Ordinalzahl ω + 1 zuordnen, dann hat A dennoch die Kardinalität ω. Mengen mit einer Kardinalität, die kleiner oder gleich ω ist, heißen abzählbar. Nicht abzählbare Mengen werden auch überabzählbar genannt. Eine abzählbare Menge A heißt aufzählbar, wenn es einen – im Falle von |A| ≥ ω möglicherweise nichtterminierenden – Algorithmus gibt, der die Abzählung der Elemente von A durchführt. A ist genau dann abzählbar, wenn es eine injektive Funktion f : A → N oder eine surjektive Funktion g : N → A gibt. Die beiden Bedingungen sind äquivalent zueinander. Z.B. ist A = N × N abzählbar, weil die folgende Funktion f : A → N injektiv ist: Für alle m, n ∈ N, f (m, n) =def (m + n) ∗ (m + n + 1)/2 + m (siehe [13], §3.2.2). f basiert auf + Cantors erstem Diagonalargument. An der graphischen Darstellung dieses Arguments erkennt man, dass es sich wie folgt verallgemeinern lässt: Sind zwei Mengen A und B abzählbar, dann ist auch A × B abzählbar. 42 3 Mengen und Funktionen + Cantors zweites Diagonalargument dient dem Nachweis der Überabzählbarkeit einer Menge A. Für A = 2N lautet es wie folgt: Wäre A abzählbar, dann gäbe es eine Bijektion f : A → N. Sei h ∈ 2N wie folgt definiert: Für alle n ∈ N, h(n) = 1 − f −1(n)(n). Daraus folgt h(f (h)) = 1 − f −1(f (h))(f (h)) = 1 − h(f (h)). Wieder erkennt man an der graphischen Darstellung des Arguments, dass es sich wie folgt verallgemeinern lässt: Ist eine Menge A abzählbar und hat eine Menge B mindestens zwei Elemente, dann ist B A überabzählbar. Aufgabe Zeigen Sie unter Verwendung von Cantors erstem Diagonalargument, dass A∗ abzählbar ist, falls A abzählbar ist. 43 3 Mengen und Funktionen Highlights B ∈ P(A) e ∈ A1 ∪ · · · ∪ An e ∈ A1 ∩ · · · ∩ An e∈A\B A1 + · · · + An A1 × . . . × An BA ∆A A⊆B A ∩ (B ∪ C) A ∪ (B ∩ C) A \ (B ∪ C) A \ (B ∩ C) graph(f : A → B) img(f : A → B) ker(f : A → B) f : A → B injektiv f : A → B surjektiv ⇔def ⇔def ⇔def ⇔def =def =def =def =def ⇔ = = = = =def =def =def ⇔def ⇔def B⊆A ∃ 1 ≤ i ≤ n : e ∈ Ai ∀ 1 ≤ i ≤ n : e ∈ Ai e ∈ A ∧ e 6∈ B {(a, i) | a ∈ Ai, 1 ≤ i ≤ n} {(a1, . . . , an) | ai ∈ Ai, 1 ≤ i ≤ n} Menge aller Funktionen von A nach B {(a, a) | a ∈ A} C \B ⊆C \A (A ∩ B) ∪ (A ∩ C) (A ∪ B) ∩ (A ∪ C) (A \ B) ∩ (A \ C) (A \ B) ∪ (A \ C) {(a, f (a)) ∈ A2 | a ∈ A} {f (a) | a ∈ A} {(a, a0) ∈ A2 | f (a) = f (a0)} ker(f ) = ∆A img(f ) = B 44 3 Mengen und Funktionen A A∼ =B A∼ =B ∧ B∼ =C A+B A×B A × (B + C) C A+B (B × C)A A∼ =C ∧ B∼ =D P(A) P(A) A∼ =B P(A × B) ∼ = ⇒ ⇒ ∼ = ∼ = ∼ = ∼ = ∼ = ⇒ ∼ = ∼ 6= ⇒ ∼ = A B∼ =A A∼ =C B+A B×A (A × B) + (A × C) CA × CB BA × C A A+B ∼ = C +D ∧ A×B ∼ = C × D ∧ BA ∼ = DC 2A A P(A) ∼ = P(B) P(B)A. 45 4 (Co)Induktiv Definieren und Beweisen 4.1 (Co)Induktiv definierte Mengen Mit Mengenoperatoren lassen sich aus gegebenen Mengen neue bilden. Weiterhin haben wir gesehen, wie mit Hilfe der Komprehension eine Teilmenge T einer gegebenen Menge S beschrieben wird, nämlich indem man T als Menge aller Elemente von S definiert, die eine logische Formel ϕ erfüllen. Damit ist ϕ eine endliche Beschreibung von T – auch wenn T selbst unendlich ist. Weitere endliche oder unendliche Mengen erhält man als Lösungen von Gleichungen der Form F (X) = X in der Mengenvariablen X, wobei F : P(S) → P(S) eine monotone Funktion ist, d.h. für alle Teilmengen T, T 0 von S gilt: T ⊆ T0 ⇒ F (T ) ⊆ F (T 0). Offenbar löst T ⊆ S die Gleichung F (X) = X genau dann, wenn T ein Fixpunkt von F ist (siehe Kapitel 3). Die Fixpunkteigenschaft zerfällt in zwei Teile: T ⊆ S heißt F -abgeschlossen, wenn F (T ) eine Teilmenge von T ist. T ⊆ S heißt F -dicht, wenn T eine Teilmenge von F (T ) ist. 46 4 (Co)Induktiv Definieren und Beweisen Die Monotonie von F garantiert die Existenz eines kleinsten wie auch eines größten Fixpunkts von F : Satz 4.1 Fixpunktsatz für (co)induktiv definierte Mengen Sei F : P(S) → P(S) monoton und ϕ eine mögliche Eigenschaft von Elementen von S. T (i) lfp(F ) =def {T ⊆ S | T F -abgeschlossen} ist die kleinste F -abgeschlossene Teilmenge von S und der kleinste Fixpunkt von F . S (ii) gfp(F ) =def {T ⊆ S | T F -dicht} ist die größte F -dichte Teilmenge von S und der größte Fixpunkt von F . (iii) F -Induktion: Jede F -abgeschlossene Teilmenge von S enthält lfp(F ). Inbesondere gilt ϕ für alle Elemente von lfp(F ), falls ϕS = {a ∈ S | a |= ϕ} F -abgeschlossen ist. (iv) F -Coinduktion: gfp(F ) enthält jede F -dichte Teilmenge von S. 47 4 (Co)Induktiv Definieren und Beweisen Beweis von (i). Sei T eine F -abgeschlossene Teilmenge von S. Dann gilt: \ lfp(F ) = {U ⊆ S | F (U ) ⊆ U } ⊆ T. (1) Da F monoton und T F -abgeschlossen ist, folgt F (lfp(F )) ⊆ F (T ) ⊆ T (2) aus (1). Da T beliebig gewählt wurde, ist F (lfp(F )) eine Teilmenge jeder F -abgeschlossenen Teilmenge von S. Also gilt Satz 3.2 (3) \ F (lfp(F )) ⊆ {U ⊆ S | F (U ) ⊆ U } = lfp(F ), (3) m.a.W.: lfp(F ) ist selbst F -abgeschlossen, zusammen mit (1) also die kleinste F -abgeschlossene Teilmenge von S. Da F monoton ist, folgt F (F (lfp(F ))) ⊆ F (lfp(F )) aus (3), d.h. auch F (lfp(F )) ist F -abgeschlossen. Also gilt \ lfp(F ) = {U ⊆ S | F (U ) ⊆ U } ⊆ F (lfp(F )). (4) (5) Aus (3) und (5) folgt F (lfp(F )) = lfp(F ), d.h. lfp(F ) ist ein Fixpunkt von F . 48 4 (Co)Induktiv Definieren und Beweisen Sei T ein beliebiger Fixpunkt von F . Dann ist T F -abgeschlossen. Also gilt lfp(F ) ⊆ T , d.h. lfp(F ) ist der kleinste Fixpunkt von F . Aufgabe Zeigen Sie (ii) analog zu (i). Beweis von (iii). Sei T eine F -abgeschlossene Teilmenge von S. Aus (i) folgt: \ lfp(F ) = {U ⊆ S | F (U ) ⊆ U } ⊆ T. Beweis von (iv). Sei T eine F -dichte Teilmenge von S. Aus (ii) folgt: [ T ⊆ {U ⊆ S | U ⊆ F (U } = gfp(F ). o T ⊆ S heißt induktiv definiert, wenn es eine monotone Funktion F : P(S) → P(S) mit lfp(F ) = T gibt. T ⊆ S heißt coinduktiv definiert, wenn es eine monotone Funktion F : P(S) → P(S) mit gfp(F ) = T gibt. In beiden Fällen nennen wir F die Schrittfunktion von T . 49 4 (Co)Induktiv Definieren und Beweisen Satz 4.2 N ist induktiv definiert. Eine Schrittfunktion für N lautet wie folgt: Fnat : P(N) → P(N) T 7→ {0} ∪ {n + 1 | n ∈ T } Beweis. Offenbar ist Fnat monoton. N ist Fnat-abgeschlossen: Fnat(N) = {0} ∪ {n + 1 | n ∈ N} ⊆ N. Sei T ⊆ N Fnat-abgeschlossen und N 6⊆ T . Dann N \ T nicht leer. Sei n das (bzgl. der üblichen kleiner-Relation auf N) kleinste Element von N \ T . Nach Satz 3.2 (i) folgt N \ T ⊆ N \ Fnat(T ) aus Fnat(T ) ⊆ T . Demnach gilt n ∈ N \ T ⊆ N \ Fnat(T ), also n 6= 0 sowie n 6= a + 1 und daher n − 1 6= a für alle a ∈ T , d.h. n − 1 ∈ / T . Das widerspricht der Definition von n als kleinstem Element von N \ T . Also gilt N ⊆ T . Demnach ist N die kleinste Fnat-abgeschlossene Teilmenge von N und stimmt daher nach Satz 4.1 (i) mit lfp(F ) überein. o 50 4 (Co)Induktiv Definieren und Beweisen Beispiel 4.3 Zeigen Sie analog zum Beweis von Satz 4.2, dass die Menge evens der geraden Zahlen induktiv definiert und Feven : P(N) → P(N) T 7→ {0} ∪ {n + 2 | n ∈ T } eine Schrittfunktion für evens ist. o Beispiel 4.4 Zeigen Sie analog zum Beweis von Satz 4.2, dass die Menge A∗ der Listen über A (siehe Kapitel 3) induktiv definiert und Flist : P(A∗) → P(A∗) T 7→ {} ∪ {(a, a1, . . . , an) | a ∈ A, (a1, . . . , an) ∈ T, n ∈ N} eine Schrittfunktion für A∗ ist. o 51 4 (Co)Induktiv Definieren und Beweisen Beispiel 4.5 Zeigen Sie analog zum Beweis von Satz 4.2, dass die Menge sorted aufsteigend sortierter Listen natürlicher Zahlen induktiv definiert und Fsort : P(N∗) → P(N∗) T 7→ {} ∪ N ∪ {(a, a1, . . . , an) | a ∈ N, a ≤ a1, (a1, . . . , an) ∈ T, n > 0} o eine Schrittfunktion für sorted ist. Beispiel 4.6 Zeigen Sie analog zum Beweis von Satz 4.2, dass die Menge R[x] = {λx. n X ai ∗ xn−i | n ∈ N} i=0 reellwertiger Polynome induktiv definiert und Fpoly : P(RR) → P(RR) T 7→ {λx.a | a ∈ R} ∪ {λx.p(x) ∗ x + a | a ∈ R, p ∈ T } eine Schrittfunktion für R[x] ist. o 52 4 (Co)Induktiv Definieren und Beweisen Satz 4.7 T ⊆ S ist genau dann induktiv definiert, wenn S \ T coinduktiv definiert ist. Beweis. “⇒”: Sei F eine Schrittfunktion für T und G : P(S) → P(S) wie folgt definiert: Für alle U ⊆ S, G(U ) = S \ F (S \ U ). Ist F ist monoton, dann auch G: Sei T ⊆ U . Aus Satz 3.2 (1) folgt S \ U ⊆ S \ T , also F (S \ U ) ⊆ F (S \ T ) und daher Satz 3.2 (1) G(T ) = S \ F (S \ T ) ⊆ S \ F (S \ U ) = G(U ). G ist eine Schrittfunktion für S \ T : Satz 4.1 (ii) S Def . G S gfp(G) = {T ⊆ S | T ⊆ G(T )} = {T ⊆ S | T ⊆ S \ F (S \ T )} Satz 3.2 (1) S = {T ⊆ S | F (S \ T ) ⊆ S \ T } S = {S \ (S \ T ) ⊆ S | T ⊆ S, F (S \ T ) ⊆ S \ T } S T Satz 3.2 (2) = {S \ T | T ⊆ S, F (T ) ⊆ T } = S \ {T ⊆ S | F (T ) ⊆ T } Satz 4.2 (i) = “⇐”: analog. S \ lfp(F ) lfp(F )=T = S \ T. o 53 4 (Co)Induktiv Definieren und Beweisen 4.2 Induktion über n ∈ N Gezeigt werden mit dieser Beweismethode bekanntlich Eigenschaften ϕ aller natürlichen Zahlen. Den Beweis von ϕ für n = 0 nennt man Induktionsanfang, während beim Induktionsschritt aus der – Induktionshypothese (oder -voraussetzung) genannten – Gültigkeit von ϕ für n die Gültigkeit von ϕ für n + 1 geschlossen wird. Sei Fnat wie in Satz 4.2 definiert. Wie man leicht sieht, entsprechen Induktionsanfang und Induktionsschritt einem Beweis, dass die Menge ϕnat aller natürlichen Zahlen, die ϕ erfüllen, Fnat-abgeschlossen ist. Die Korrektheit der Induktion über n folgt demnach aus der Monotonie von Fnat, Satz 4.1 (iii) und Satz 4.2: Fnat(ϕN) ⊆ ϕN impliziert N = lfp(Fnat) ⊆ ϕN, d.h. alle natürlichen Zahlen erfüllen ϕ. Induktion über n ∈ N ist also Fnat-Induktion. o Aufgabe Zeigen Sie durch Induktion über n, dass jede natürliche Zahl gerade oder ungerade ist. o 54 4 (Co)Induktiv Definieren und Beweisen Induktion über n ∈ N lässt sich verallgemeinern zur Noetherschen Induktion (s.u.), die anstelle von N eine beliebige Menge mit wohlfundierter Relation voraussetzt: Sei A eine Menge. Eine Relation R ⊆ A2 heißt wohlfundiert, wenn jede nichtleere Teilmenge M von A ein bzgl. R minimales Element a enthält, d.h. für alle b ∈ M gilt (b, a) 6∈ R. Beachten Sie, dass M mehrere minimale Elemente enthalten kann, während es stets nur höchstens ein kleinstes Element gibt! Satz 4.8 Sei R ⊆ A2 eine wohlfundierte Relation. Dann ist A induktiv definiert. Eine Schrittfunktion für A lautet wie folgt: FR : P(A) → P(A) T 7→ {a ∈ A | ∀ b ∈ A : (b, a) ∈ R ⇒ b ∈ T } Beweis. Offenbar ist FR monoton. A ist FR -abgeschlossen: FR (A) = {a ∈ A | ∀ b ∈ A : (b, a) ∈ R ⇒ b ∈ A} ⊆ A. Sei T ⊆ A FR -abgeschlossen. 55 4 (Co)Induktiv Definieren und Beweisen Wir nehmen an, dass A keine Teilmenge von T ist. Dann wäre A \ T nichtleer. Da R wohlfundiert ist, enthält A \ T ein bzgl. R minimales Element a. Wegen FR (T ) ⊆ T folgt a∈ / FR (T ), also b ∈ A \ T für ein (b, a) ∈ R. Das widerspricht der Definition von a als minimalem Element von A \ T . Also gilt A ⊆ T . Demnach ist A die kleinste FR -abgeschlossene Teilmenge von A und stimmt daher nach Satz 4.1 (i) mit lfp(FR ) überein. o 4.3 Noethersche Induktion bzgl. R ⊆ A2 Gezeigt werden mit dieser Beweismethode Eigenschaften ϕ einer Menge A, für die es eine wohlfundierte Relation R ⊆ A2 gibt. Ein Beweis von ϕ durch Noethersche Induktion bzgl. R besteht im Nachweis von ϕ für alle a ∈ A unter der Voraussetzung, dass ϕ für alle b ∈ A mit (b, a) ∈ R gilt. Das entspricht einem Beweis, dass die Menge ϕA aller Elemente von A, die ϕ erfüllen, FR -abgeschlossen ist. 56 4 (Co)Induktiv Definieren und Beweisen Die Korrektheit Noetherscher Induktion bzgl. R folgt demnach aus der Monotonie von FR , Satz 4.1 (iii) und Satz 4.8: FR (ϕA) ⊆ ϕA impliziert A = lfp(FR ) ⊆ ϕA, d.h. alle Elemente von A erfüllen ϕ. Noethersche Induktion bzgl. R ist also FR -Induktion. Induktion über n ∈ N ist Noethersche Induktion bzgl. R = {(n, n + 1) | n ∈ N}. o Da F monoton ist, bilden die Iterationen F 0(∅), F 1(∅), F 2(∅), . . . bzw. F 0(S), F 1(S), F 2(S), . . . von F ∞ bzw. F∞ eine auf- bzw. absteigende Kette, d.h. für alle n ∈ N gilt F n(∅) ⊆ F n+1(∅) bzw. F n(S) ⊇ F n+1(S). Aus der Ketteneigenschaft folgt sofort, dass im Fall einer endlichen Obermenge S der obere bzw. untere Kleene-Abschluss von F mit einer seiner Iterationen übereinstimmt und damit F -abgeschlossen bzw. F -dicht ist. [ \ ∞ n F =def F (∅) bzw. F∞ =def F n(S) n∈N n∈N heißt oberer bzw. unterer Kleene-Abschluss von F . 57 4 (Co)Induktiv Definieren und Beweisen Satz 4.9 Sei F : P(S) → P(S) monoton. (i) (ii) F ∞ ⊆ lfp(F ). F (F ∞) ⊆ F ∞ ⇒ F ∞ = lfp(F ). (iii) gfp(F ) ⊆ F∞. (iv) F∞ ⊆ F (F∞) ⇒ F∞ = gfp(F ). Beweis von (i). Wir zeigen F n(∅) ⊆ lfp(F ) (1) für alle n ∈ N durch Induktion über n: Induktionsanfang: F 0(∅) = ∅ ⊆ lfp(F ). Induktionsschritt: Da F monoton ist und lfp(F ) ein Fixpunkt von F , gilt (1) F n+1(∅) = F (F n(∅)) ⊆ F (lfp(F )) = lfp(F ). Also gilt F ∞ = S n∈N F n (∅) ⊆ lfp(F ). Beweis von (ii). Sei F ∞ F -abgeschlossen. Also gilt lfp(F ) ⊆ F ∞ nach Satz 4.1 (iii). Aus (i) folgt daher F ∞ = lfp(F ). 58 4 (Co)Induktiv Definieren und Beweisen Beweis von (iii). Wir zeigen gfp(F ) ⊆ F n(S) (2) für alle n ∈ N durch Induktion über n: Induktionsanfang: gfp(F ) ⊆ S = F 0(S). Induktionsschritt: Da F monoton ist und gfp(F ) ein Fixpunkt von F , gilt (2) gfp(F ) = F (gfp(F )) ⊆ F (F n(S)) = F n+1(S). T Also gilt gfp(F ) ⊆ n∈N F n(S) = F∞. Beweis von (iv). Sei F∞ F -dicht. Also gilt F∞ ⊆ gfp(F ) nach Satz 4.1 (iv). Aus (iii) folgt daher F∞ = gfp(F ). o Z.B. ist FR (siehe Satz 4.8) nicht FR -abgeschlossen, wenn ein Element a ∈ FR (FR∞) unendlich viele Vorgänger bzgl. R hat, die in verschiedenen Approximationen von FR∞ n vorkommen. Dann gibt es zwar für alle (b, a) ∈ R nb ∈ N mit b ∈ FRb (∅), aber kein n ∈ N mit b ∈ FRn(∅) für alle (b, a) ∈ R, also auch kein n ∈ N mit a ∈ FR (FRn(∅)) = FRn+1(∅), d.h. a gehört nicht zu FR∞. 59 4 (Co)Induktiv Definieren und Beweisen 4.4 Ableitungen und Ableitungsrelationen Formeln bilden induktive Mengen. Für deren Schrittfunktionen verweisen wir auf spätere Kapitel. Hier setzen wir eine beliebige Formelmenge Fo und einen Kalkül K (siehe Kapitel 2) voraus, dessen Regeln Φ1 ` ϕ1, . . . , Φk ` ϕk (1) Φk+1 ` ϕk+1 auf Fo operieren, d.h. für alle 0 ≤ i ≤ k + 1 gilt Φi ⊆ Fo und ϕi ∈ Fo. Offenbar sind FK : P(P(Fo) × Fo) → P(P(Fo) × Fo) T 7→ {a | a1 ,...,an a ∈ K, a1, . . . , an ∈ T } und FK ∗ : P((P(Fo) × Fo)∗) → P((P(Fo) × Fo)∗) T 7→ 1 ∪ {(a1, . . . , an, a) | (a1, . . . , an) ∈ T, n ∈ N, a ∈ FK ({a1, . . . , an})} monoton. 60 4 (Co)Induktiv Definieren und Beweisen (a1, . . . , an) ∈ FK∞∗ heißt K-Ableitung von Φ ` ϕ, wenn an = (Φ ` ϕ) gilt. Gibt es eine K-Ableitung von Φ ` ϕ, dann nennen wir den Ausdruck Φ ` ϕ K-ableitbar. `K =def FK∞ heißt K-Ableitungsrelation. Offenbar ist Φ ` ϕ genau dann K-ableitbar, wenn (Φ, ϕ) zur K-Ableitungsrelation gehört. Satz 4.10 Sei K ein Kalkül. (i) `K = lfp(FK ). (ii) FK∞∗ = lfp(FK ∗ ). (iii) Für alle K-Ableitungen (Φ1 ` ϕ1, . . . , Φn ` ϕn) und 1 ≤ i ≤ n gilt Φi `K ϕi. Beweis von (i). `K = FK∞ ist FK -abgeschlossen: n FK (FK∞) = {a | a1,...,a ∈ K, a1, . . . , an ∈ FK∞} a S S n+1 n ∞ n = n∈N{a | a1,...,a ∈ K, (a , . . . , a ) ∈ F (∅)} = 1 n K n∈N FK (∅) = FK . a Also gilt (i) nach Satz 4.9 (i) und (ii). 61 4 (Co)Induktiv Definieren und Beweisen Beweis von (ii). FK∞∗ ist FK ∗ -abgeschlossen: FK ∗ (FK∞∗ ) = 1 ∪ {(a1, . . . , an, a) | (a1, . . . , an) ∈ FK∞∗ , n ∈ N, a ∈ FK ({a1, . . . , an})} S = FK ∗ (∅) ∪ n∈N{(a1, . . . , an, a) | (a1, . . . , an) ∈ FKn ∗ (∅), a ∈ FK ({a1, . . . , an})} S ∞ ∗ = FK (∅) ∪ n∈N FKn+1 ∗ (∅) = FK ∗ . Also gilt (ii) nach Satz 4.9 (i) und (ii). Beweis von (iii) durch F -Induktion. Nach Satz 4.1 (iii) gilt (iii), wenn die Menge L aller (a1, . . . , an) ∈ S ∗ mit a1, . . . , an ⊆ FK∞ FK ∗ -abgeschlossen ist. Sei also s ∈ FK ∗ (L). Nach Definition von FK ∗ ist s die leere Ableitung oder es gibt (a1, . . . , an) ∈ L und a ∈ FK ({a1, . . . , an}) mit s = (a1, . . . , an, a). Im ersten Fall folgt s ∈ L aus ∅ ⊆ FK∞. Im zweiten Fall gilt {a1, . . . , an} ⊆ FK∞ nach Definition von L und daher an+1 ∈ FK ({a1, . . . , an}) ⊆ FK (FK∞) (i) ⊆ FK∞, weil FK monoton ist. Insgesamt erhalten wir {a1, . . . , an+1} ⊆ FK∞. Also gehört auch im zweiten Fall a zu L. Damit ist gezeigt, dass L F -abgeschlossen ist. o 62 4 (Co)Induktiv Definieren und Beweisen Beispiel 4.11 Ströme über einer Menge A (siehe Kapitel 3) entsprechen Funktionen von N nach A. Zeigen Sie analog zum Beweis von Satz 4.2, dass die Mengen has0 und unsorted der Ströme natürlicher Zahlen mit mindestens einer Null bzw. der unsortierten Ströme natürlicher Zahlen induktiv definiert und F : P(RN) → P(RN) T 7→ {s ∈ RN | s(0) = 0 ∨ λi.s(i + 1) ∈ T }, G : P(RN) → P(RN) T 7→ {s ∈ RN | s(0) > s(1) ∨ λi.s(i + 1) ∈ T } Schrittfunktionen von has0 bzw. unsorted sind. o Satz 4.12 Sei sorted die Menge der sortierten Ströme reeller Zahlen, also sorted = {s ∈ RN | ∀ n ∈ N : s(n) ≤ s(n + 1)}. sorted ist coinduktiv definiert. Eine Schrittfunktion für sorted lautet wie folgt: 63 4 (Co)Induktiv Definieren und Beweisen Fsorted : P(RN) → P(RN) T 7→ {s ∈ RN | s(0) ≤ s(1), λi.s(i + 1) ∈ T }. Beweis. Offenbar ist F = Fsorted monoton. sorted ist F -dicht: sorted ⊆ {s ∈ RN | s(0) ≤ s(1), λi.s(i + 1) ∈ sorted} = F (sorted). Sei T ⊆ RN F -dicht und T 6⊆ sorted. Dann gibt es s ∈ T mit s ∈ / sorted. Wir zeigen durch Induktion über n, dass für alle n ∈ N Folgendes gilt: s(n) ≤ s(n + 1) und λi.s(i + n + 1) ∈ T. (2) Induktionsanfang: Wegen T ⊆ F (T ) folgt s ∈ F (T ), also (2) für n = 0. Induktionsschritt: Es gelte (1) für n. Wegen T ⊆ F (T ) folgt λi.s(i + n + 1) ∈ F (T ), also s(n + 1) = (λi.s(i + n + 1))(0) ≤ (λi.s(i + n + 1))(1) = s(n + 2) und λi.s(i + n + 2) = λk.(λi.s(i + n + 1))(k + 1) ∈ T . Damit gilt (2) für n + 1. (2) impliziert s ∈ sorted. Also gilt T ⊆ sorted. Demnach ist sorted die größte Fsorteddichte Teilmenge von sorted und stimmt daher nach Satz 4.1 (ii) mit gfp(F ) überein. o 64 4 (Co)Induktiv Definieren und Beweisen Aufgabe Zeigen Sie analog zum Beweis von Satz 4.12, dass die Menge has∞0 der Ströme reeller Zahlen mit unendlich vielen Nullen coinduktiv definiert und Finf0 : P(has0) → P(has0) T 7→ {s ∈ has0 | λi.s(i + 1) ∈ T } eine Schrittfunktion für has∞0 ist. o Beispiel 4.13 (Beweis durch Finf0 -Coinduktion) Seien blink, blink 0 ∈ has0 wie folgt definiert: Für alle n ∈ N, blink(2 ∗ n) = blink 0(2 ∗ n + 1) = 0 und blink(2 ∗ n + 1) = blink 0(2 ∗ n) = 1. Die Menge BB = {blink, blink 0} ist Finf0 -dicht: BB ⊆ {s ∈ has0 | λi.s(i + 1) ∈ BB} = Finf0 (BB). Also gehören blink und blink 0 nach Satz 4.1 (iv) zu gfp(Finf0 ), was wegen gfp(Finf0 ) = has∞0 bedeutet, dass blink und blink 0 unendlich viele Nullen enthalten. o 65 4 (Co)Induktiv Definieren und Beweisen Manchmal können n > 1 Teilmengen von S nur wechselseitig (co)induktiv definiert werden. Die zugehörige Schrittfunktion hat dann den Definitions- und Wertebereich P(S)n. Inklusion und Vereinigung von Teilmengen von S werden wie folgt auf n-Tupel (T1, . . . , Tn) von Teilmengen von S fortgesetzt: (T1, . . . , Tn) ⊆ (T10 , . . . , Tn0 ) ⇔def für alle 1 ≤ i ≤ n, Ti ⊆ Ti0, (T1, . . . , Tn) ∪ (T10 , . . . , Tn0 ) =def (T1 ∪ T10 , . . . , Tn ∪ Tn0 ). Aufgabe Zeigen Sie analog zum Beweis von Satz 4.2, dass das Paar (evens, odds) der Mengen aller geraden bzw. ungeraden Zahlen induktiv definiert und F : P(N)2 → P(N)2 (T1, T2) 7→ ({0} ∪ {n + 1 | n ∈ T2}, {n + 1 | n ∈ T1}) eine Schrittfunktion für (evens, odds) ist. o 66 4 (Co)Induktiv Definieren und Beweisen Im Kapitel Logische Programmierung gehen wir noch einen Schritt weiter und definieren auch n-Tupel mehrstelliger Relationen induktiv. Wie dort gezeigt wird, stimmt das Standardmodell eines logischen Programms LP überein mit dem kleinsten Fixpunkt einer aus LP gebildeten Schrittfunktion F : P(S k1 ) × . . . × P(S kn ) → P(S k1 ) × . . . × P(S kn ), die n ≥ 1 Relationen R1 ⊆ S k1 , . . . , Rn ⊆ S kn simultan schrittweise erweitert. 67 4 (Co)Induktiv Definieren und Beweisen 4.5 Konstruktoren und Destruktoren Sei A ⊆ S eine Menge und C eine Menge von Funktionen eines Typs der Form An → A. C heißt Konstruktormenge für A, wenn es für alle a ∈ A genau ein c : An → A ∈ C und genau ein b ∈ An mit a = c(b) gibt, kurz gesagt: wenn die Summenextension [c]c∈C : ` c∈C dom(c) → A bijektiv ist. F : P(S) → P(S) basiert auf C, wenn für alle T ⊆ S Folgendes gilt: F (T ) = {c(t1, . . . , tn) | c ∈ C, t1, . . . , tn ∈ T }. Lemma 4.14 Wenn F auf einer Konstruktormenge C basiert, dann hat jedes Element von lfp(F ) genau eine C-Darstellung, d.i. ein Ausdruck, der aus Funktionen von C zusammengesetzt ist. Beweis durch F -Induktion. Sei T die Menge aller Elemente von lfp(F ) mit eindeutiger C-Darstellung. Nach Satz 4.2 (iii) ist zu zeigen, dass T F -abgeschlossen ist. Sei t ∈ F (T ). Dann gibt es c ∈ C und t1, . . . , tn ∈ T mit t = c(t1, . . . , tn). Demnach haben t1, . . . , tn eindeutige C-Darstellungen. Nach Definition einer Konstruktormenge für lfp(F ) ist daher auch die Termdarstellung von t eindeutig. Also gehört t zu T . o 68 4 (Co)Induktiv Definieren und Beweisen Beispiel 4.15 Die Schrittfunktionen Fnat, Feven : P(N) → P(N) (s.o.) basieren auf der Konstruktormenge Cnat = {0, (+1) : N → N} bzw. Ceven = {0, (+2) : even → even}. Z.B. repräsentieren die Cnat-Darstellung (+1)((+1)(0)) die natürliche Zahl 2 und die CevenDarstellung (+2)((+2)(0)) die gerade Zahl 4. o Beispiel 4.16 Sei A eine Menge, a ∈ A und consa : A∗ → A∗ wie folgt definiert: Für alle a, a1, . . . , an ∈ A, consa() = a, consa(a1, . . . , an) = (a, a1, . . . , an). Die Schrittfunktion Flist : P(A∗) → P(A∗) (s.o.) basiert auf der Konstruktormenge Clist = {} ∪ {consa | a ∈ A}. o 69 4 (Co)Induktiv Definieren und Beweisen Beispiel 4.17 (siehe Beispiel 4.6) Sei a ∈ R und posta : R[x] → R[x] wie folgt definiert: Für alle p ∈ R[x], posta(p) = λx.p(x) ∗ x + a. Fpoly basiert auf der Konstruktormenge Cpoly = R ∪ {posta | a ∈ R} Z.B. repräsentiert die Cpoly -Darstellung post5.4(post−33.11(549.32)) das Polynom λx.549.32 ∗ x2 − 33.11 ∗ x + 5.4. o Sei C eine Konstruktormenge für A. T ⊆ A heißt C-invariant oder C-Invariante, wenn für alle c : A1 × · · · × An → A ∈ C und (a1, . . . , an) ∈ A1 × · · · × An Folgendes gilt: (∀ 1 ≤ i ≤ n : ai ∈ T ) ⇒ c(a1, . . . , an) ∈ T . Während Konstruktoren die Synthese von Elementen einer (induktiv definierten) Menge A beschreiben, werden die Elemente von Destruktoren analysiert. Dual zu einem Konstruktor von A, der A als Wertebereich hat, ist ein Destruktor für A deshalb stets eine Funktion mit Definitionsbereich A. 70 4 (Co)Induktiv Definieren und Beweisen Der Wertebereich eines Destruktors kann sehr unterschiedlich strukturiert sein. Wir wollen hier nur zwei typische Fälle betrachten: Attribute und Methoden. Beide Begriffe stammen aus der objektorientierten Programmierung, wo man A als die Menge möglicher Zustände eines Objekts betrachtet. Ein(e) Attribut(funktion) d : A → Wd für A weist jedem (Objekt-)Zustand ein Element des mit d assoziierten Wertebereichs Wd zu, z.B. eine bestimmte Farbe, Größe, etc. Demgegenüber transformiert eine Methode d : A → A für A jeden Zustand in einen Folgezustand. Sei A ⊆ S und D eine Menge von Attributen und Methoden für A. Q D heißt Destruktormenge für A, wenn es für alle b ∈ d∈D ran(d) genau ein a ∈ A mit d(a) = πd(b) für alle d ∈ D gibt, kurz gesagt: wenn die Produktextension Y hdid∈D : A → ran(d) c∈D bijektiv ist. F : P(S) → P(S) basiert auf D, wenn für alle T ⊆ S Folgendes gilt: F (T ) = {t ∈ S | für alle Methoden d ∈ D : d(t) ∈ T }. 71 4 (Co)Induktiv Definieren und Beweisen Beispiel 4.18 (Ströme über A) Das Attribut head : AN → A und die Methode tail : AN → AN ordnen einem Strom s sein erstes Element bzw. den Reststrom zu: head(s) = s(0), tail(s) = λn.s(n + 1). Die Schrittfunktion Fsorted : P(AR) → P(AR) (siehe Beispiel 4.12) basiert auf der Destruktormenge Dstream = {head, tail}. o Sei D eine Destruktormenge für A. R ⊆ A2 heißt D-Kongruenz, wenn für alle d ∈ D und a, b ∈ A Folgendes gilt: ( (d(a), d(a0)) ∈ R falls d eine Methode ist, 0 ((a, a ) ∈ R ⇒ d(a) = d(a0) falls d ein Attribut ist. 72 4 (Co)Induktiv Definieren und Beweisen Satz 4.19 Sei F : P(S) → P(S) monoton, C eine Konstruktormenge für F ∞, D eine Destruktormenge für F∞, ϕ eine mögliche Eigenschaft von Elementen von S und ϕS = {a ∈ S | a |= ϕ}. (i) F basiert auf C ⇒ F ∞ = lfp(F ). (ii) F basiert auf D ⇒ F∞ = gfp(F ). (iii) Konstruktor-Induktion über C: Jede C-Invariante von lfp(F ) enthält lfp(F ). Insbesondere gilt a |= ϕ für alle a ∈ lfp(F ), falls ϕS C-invariant ist. Beweis von (i). F basiere auf C. Nach Satz 4.9 (ii) genügt es zu zeigen, dass F ∞ F abgeschlossen ist. Sei also t ∈ F (F ∞). Dann gibt es c ∈ C und t1, . . . , tn ∈ F ∞ mit t = c(t1, . . . , tn). Daher gibt es für alle 1 ≤ i ≤ n eine natürliche Zahl ni mit ti ∈ F ni (∅). Da F monoton ist, folgt ti ∈ F m(∅) für m = max{ni | 1 ≤ i ≤ n}. 73 4 (Co)Induktiv Definieren und Beweisen Also gilt: t ∈ {c(t1, . . . , tn) | c ∈ C, t1, . . . , tn ∈ F m(∅)} = F (F m(∅)) = F m+1(∅) ⊆ F ∞. Beweis von (ii). F basiere auf D. Nach Satz 4.9 (iv) genügt es zu zeigen, dass F∞ F -dicht ist. Sei also t ∈ F∞, d.h. für alle n ∈ N gehört t zu F n+1(S) = F (F n(S)) = {u ∈ S | für alle Methoden d ∈ D : d(u) ∈ F n(S)}. Demnach gilt d(t) ∈ F n(S) für alle n ∈ N und alle Methoden d ∈ D. Also gehört d(t) für alle d ∈ D zu F∞. Daraus folgt t ∈ F (F∞). Beweis von (iii). Sei T eine C-Invariante von lfp(F ). Nach Satz 4.1 (iii) genügt es zu zeigen, dass T F -abgeschlossen ist. Sei also t ∈ F (T ). Dann gibt es c ∈ C und t1, . . . , tn ∈ T mit t = c(t1, . . . , tn). Da T C-invariant ist, folgt t ∈ T . o 74 4 (Co)Induktiv Definieren und Beweisen 4.4 (Co)Induktiv definierte Funktionen Sei C eine Konstruktormenge und F die Schrittfunktion, die auf C basiert. Eine Funktion f : lfp(F ) → A heißt induktiv definiert bzgl. C, wenn es für alle c : lfp(F )n → lfp(F ) ∈ C eine aus Konstruktoren und bereits definierten Funktionen zusammengesetzte Funktion gc : An × lfp(F )n → A gibt derart, dass für alle t1, . . . , tn ∈ lfp(F ) folgende Gleichung gilt: f (c(t1, . . . , tn)) = gc(f (t1), . . . , f (tn), t1, . . . , tn). Im Fall F = Fnat und C = {0, (+1)} nennt man eine induktiv definierte Funktion auch primitiv-rekursiv. Beispiel 4.20 (siehe Beispiel 4.16) Die Funktionen length : A∗ → N und conc : A∗ → (A∗ → A∗), die jeder Liste von A∗ ihre Länge zuordnet bzw. zwei Listen konkateniert, d.h. zu einer Liste zusammenfügt, sind wie folgt bzgl. Clist induktiv definiert: 75 4 (Co)Induktiv Definieren und Beweisen Für alle a ∈ A und w ∈ A∗, length() = 0, length(consa(w)) = length(w)+1, conc() = λw.w, conc(consa(w)) = λw0.consa(conc(w)(w0)). o Beispiel 4.21 (siehe Beispiel 4.17) Die Funktion diff : R[x] → R[x], die jedes Polynom in seine erste Ableitung (im Sinne der Analysis) übersetzt, ist wie folgt bzgl. Cpoly induktiv definiert: Für alle a ∈ R, n ∈ N and p ∈ R[x], diff (a) = λb.0, diff (posta(p)) = λb.diff (p)(b) ∗ b + p(b). o 76 4 (Co)Induktiv Definieren und Beweisen Satz 4.22 Sei C eine Konstruktormenge und F die Schrittfunktion, die auf C basiert. Die Gleichungsmenge E = {f (c(t1, . . . , tn)) = gc(f (t1), . . . , f (tn), t1, . . . , tn) | c ∈ C, t1, . . . , tn ∈ lfp(F )}. kann als Definition von f bezeichnet werden, weil es genau eine Funktion f : lfp(F ) → A gibt, die E erfüllt. Beweis der Existenz von f durch F -Induktion: Sei T die Menge aller t ∈ lfp(F ) derart, dass f an der Stelle t einen eindeutigen Wert hat und f (c(t1, . . . , tn)) = gc(f (t1), . . . , f (tn), t1, . . . , tn) gilt, wobei c und (t1, . . . , tn) die nach Lemma 4.14 eindeutigen Elemente von C bzw. lfp(F ) mit t = c(t1, . . . , tn) sind. Nach Satz 4.1 (iii) ist zu zeigen, dass T F -abgeschlossen ist. Sei also t ∈ F (T ). Dann gibt es c ∈ C und t1, . . . , tn ∈ T für alle 1 ≤ i ≤ n und t = c(t1, . . . , tn). 77 4 (Co)Induktiv Definieren und Beweisen Folglich hat f an den Stellen t1, . . . , tn eindeutige Werte. Deshalb können wir f an der Stelle t = c(t1, . . . , tn) durch gc(f (t1), . . . , f (tn), t1, . . . , tn) definieren. Folglich gehört t zu T . Beweis der Eindeutigkeit von f durch F -Induktion: Seien f, f 0 : lfp(F ) → A zwei Funktionen, die E erfüllen, und T die Menge aller t ∈ lfp(F ) mit f (t) = f 0(t). Nach Satz 4.1 (iii) ist zu zeigen, dass T F -abgeschlossen ist. Sei also t ∈ F (T ). Dann gibt es c ∈ C und t1, . . . , tn ∈ T und t = c(t1, . . . , tn). Demnach gilt f (ti) = f 0(ti) für alle 1 ≤ i ≤ n. Daraus folgt f (t) = f (c(t1, . . . , tn)) = gc(f (t1), . . . , f (tn), t1, . . . , tn) = gc(f 0(t1), . . . , f 0(tn), t1, . . . , tn) = f 0(c(t1, . . . , tn)) = f 0(t), also t ∈ T . o Beispiel 4.23 (siehe Beispiel 4.20) Wir zeigen durch Konstruktor-Induktion über Clist = {, cons}, dass für alle v ∈ A∗ folgende Formel ϕ gilt: ∀ w ∈ A∗ : length(conc(v)(w)) = length(v) + length(w). 78 4 (Co)Induktiv Definieren und Beweisen ∗ Wegen A∗ = lfp(Flist) (siehe Beispiel 4.4), gilt ϕ nach Satz 4.19 (iii), falls ϕA Clistinvariant ist, d.h. falls für alle a ∈ A und v, w ∈ A∗ die folgenden Gleicungen gelten: length(conc()(w)) = length() + length(w), length(conc(v)(w)) = length(v) + length(w) (Induktionshypothese) ⇒ length(conc(cons(a, v))(w)) = length(cons(a, v)) + length(w). (1) (2) Beweis von (1). length(conc()(w)) = length(w) = 0 + length(w) = length() + length(w). Beweis von (2). length(conc(cons(a, v))(w)) = length(cons(a, conc(v)(w))) = length(conc(v)(w)) + 1 Induktionshypothese = length(v) + length(w) + 1 = length(v) + 1 + length(w) = length(cons(a, v)) + length(w). o 79 4 (Co)Induktiv Definieren und Beweisen Wie m > 1 Mengen, so können manchmal auch m > 1 Funktionen nur wechselseitig induktiv definiert werden: Ein Funktionstupel (fi : lfp(F ) → Ai)1≤i≤m heißt wechselseitig induktiv definiert, wenn es für alle 1 ≤ i ≤ m und c : lfp(F )n → lfp(F ) ∈ C eine Funktion gi,c : An1 × . . . Anm × lfp(F )n → Ai gibt derart, dass für alle t1, . . . , tni ∈ lfp(F ) folgende Gleichung gilt: fi(c(t1, . . . , tn)) = gi,c(f1(t1), . . . , f1(tni ), . . . , fm(t1), . . . , fm(t), t1, . . . , tn). Beispiel 4.24 (Hilbertkurven) Sei D = {east, west, north, south}. Das folgende Funktionsquadrupel (goi : N → D∗)1≤i≤4 berechnet Folgen von Himmelsrichtungen, die + Hilbertkurven repräsentieren: Wird jedes Element d der Folge goi(n) als Befehl interpretiert, in Richtung d eine Linie zu ziehen, dann liefert die Ausführung der Befehlsfolge eine Hilbertkurve n-ter Ordnung. 80 4 (Co)Induktiv Definieren und Beweisen Im Fall i = 1 und n = 5 entsteht z.B. folgende Kurve: 81 4 (Co)Induktiv Definieren und Beweisen (go1, . . . , go4) ist wie folgt induktiv definiert: Für alle 0 ≤ i ≤ 3 und n ∈ N, goi(0) = , go1(n + 1) = go4(n)·east·go1(n)·south·go1(n)·west·go3(n), go2(n + 1) = go3(n)·west·go2(n)·north·go2(n)·east·go4(n), go3(n + 1) = go2(n)·north·go3(n)·west·go3(n)·south·go1(n), go4(n + 1) = go1(n)·south·go4(n)·east·go4(n)·north·go2(n). Die Funktion coords : D∗ → (R2 → (R2)∗) soll jede Richtungsfolge s ∈ D∗ und jeden Punkt (x, y) in der Ebene in die Folge der Ecken des durch s repräsentierten Linienzuges überführten, wobei jede einzelne Linie die Länge 1 hat. 82 4 (Co)Induktiv Definieren und Beweisen coords ist wie folgt induktiv definiert: Für alle s ∈ D∗ und (x, y) ∈ R2, coords() = λ(x, y).(x, y), coords(cons(east, s)) = λ(x, y).(x, y)·coords(s)(x + 1, y), coords(cons(west, s)) = λ(x, y).(x, y)·coords(s)(x − 1, y), coords(cons(north, s)) = λ(x, y).(x, y)·coords(s)(x, y + 1), coords(cons(south, s)) = λ(x, y).(x, y)·coords(s)(x, y − 1). o Aufgabe Zeigen Sie, dass jede induktiv definierte Funktion einen induktiv definierten Graphen hat. o Es gibt allgemeinere Schemata für induktive Funktionsdefinitionen als das hier behandelte bis hin zu mehrstelligen Funktionen auf Produkten verschiedener (induktiv definierter) Mengen. 83 4 (Co)Induktiv Definieren und Beweisen Sei D eine Destruktormenge und F die Schrittfunktion, die auf D basiert. Eine Funktion f : A → gfp(F ) heißt coinduktiv definiert bzgl. D, wenn es für alle d ∈ D eine – aus f und bereits definierten Funktionen (inkl. Elementen von D) zusammengesetzte – Funktion gd : A → ran(d) gibt derart, dass für alle a ∈ A folgende Gleichung eine eindeutige Lösung in (der Funktionsvariablen) f hat: d(f (a)) = gd(a). (1) Es gibt unterschiedliche Anforderungen an gd, die sicherstellen, dass (1) eine eindeutige Lösung in f hat, m.a.W.: dass es genau eine Funktion f gilt, die (1) erfüllt. Dazu müssen F zum Funktor, F -dichte Mengen zu F -Coalgebren und gfp(F ) zur finalen F -Coalgebra erweitert werden, ähnlich dem in Kapitel 7 behandelten Verhaltensmodell Beh(At). Da die allgemeine Theorie der Coalgebren den Rahmen dieser Einführung in (Co)Induktion sprengen würde, sollen hier nur einige grundlegende Ideen an folgendem Beispiel illustriert werden: Beispiel 4.25 (siehe Beispiele 4.11 und 4.18) Wir zeigen, dass die folgenden Gleichungen die Funktionen ⊕, zip : (RN)2 → RN, die die Elemente zweier Ströme reeller Zahlen addieren bzw. mischen, bzgl. Dstream = {head, tail} coinduktiv definieren: 84 4 (Co)Induktiv Definieren und Beweisen Für alle s, s0 ∈ RN, head(s⊕s0) tail(s⊕s0) head(zip(s, s0)) tail(zip(s, s0)) = = = = head(s) + head(s0), tail(s)⊕tail(s0), head(s), zip(s0, tail(s)). (1) (2) (3) (4) Explizite Definitionen von ⊕ bzw. zip lauten wie folgt: Für alle s, s0 ∈ RN und n ∈ N, (s ⊕ s0)(n) = s(n) + s0(n), ( s(n/2) falls n gerade ist, zip(s, s0)(n) = s0(n/2 + 1) sonst. Aufgabe Zeigen Sie, dass ⊕ und zip die Gleichungen (1)-(4) erfüllen. Aufgabe Zeigen Sie, dass die Diagonale von (RN)2 eine D-Kongruenz ist und dass RN das algebraische Coinduktionsprinzip erfüllt, d.h. jede D-Kongruenz auf RN stimmt mit ∆RN überein. Zeigen Sie Letzteres, indem Sie die Annahme, dass es eine D-Kongruenz R und zwei verschiedene Ströme s und s0 mit (s, s0) ∈ R gibt, zum Widerspruch führen. 85 4 (Co)Induktiv Definieren und Beweisen Seien nun ⊕, ⊗ : (RN)2 → RN zwei beliebige Funktionen, die (1) und (2) erfüllen, wenn man sie dort für ⊕ einsetzt. Wir definieren die Relation ∼ ⊆ (RN)2 als Menge aller Paare (s ⊕ s0, s ⊗ s0) mit s, s0 ∈ RN. ∼ ist eine D-Kongruenz: Sei s ⊕ s0 ∼ s ⊗ s0. Dann gilt (1) (1) head(s ⊕ s0) = head(s) + head(s0) = head(s ⊗ s0), (2) (2) tail(s ⊕ s0) = tail(s) ⊕ tail(s0) ∼ tail(s) ⊗ tail(s0) = head(s ⊗ s0). Da ∼ ist eine D-Kongruenz ist, folgt aus dem algebraischen Coinduktionsprinzip, dass ∼ mit der Diagonalen von (RN)2 übereinstimmt, d.h. für alle s, s0 ∈ RN mit s ⊕ s0 ∼ s ⊗ s0 gilt s ⊕ s0 = s ⊗ s0, m.a.W.: ⊕ = ⊗. Aufgabe Zeigen Sie analog, dass es nur eine Funktion zip gibt, die (3) und (4) erfüllt. o 86 4 (Co)Induktiv Definieren und Beweisen Highlights F : P(S) → P(S) monoton: Für alle T, T 0 ⊆ S gilt: T ⊆ T ⇒ F (T ) ⊆ F (T 0). T ⊆ S F -abgeschlossen: F (T ) ⊆ T . T ⊆ S F -dicht: T ⊆ F (T ). lfp(F ) =def T {T ⊆ S | F (T ) ⊆ T }. gfp(F ) =def S {T ⊆ S | T ⊆ F (T )}. Ist F : P(S) → P(S) monoton, dann ist lfp(F ) der kleinste und gfp(F ) der größte Fixpunkt von F . F -Induktion: Jede F -abgeschlossene Teilmenge von S enthält lfp(F ). =⇒ Alle Elemente von lfp(F ) erfüllen eine Formel ϕ, wenn die Menge ϕS aller Elemente von S, die ϕ erfüllen, F -abgeschlossen ist. F -Coinduktion: gfp(F ) enthält jede F -dichte Teilmenge von S. =⇒ Stimmt gfp(F ) mit ϕS überein, dann gilt ϕ für jedes Element von S, das in einer F -dichten Teilmenge von S enthalten ist. 87 4 (Co)Induktiv Definieren und Beweisen Oberer Kleene-Abschluss von F : F ∞ =def S Unterer Kleene-Abschluss von F : F∞ =def T n∈N F n n∈N F (∅). n (S). F (F ∞) ⊆ F ∞ ⇒ lfp(F ) = F ∞. F∞ ⊆ F (F∞) ⇒ gfp(F ) = F∞. Schrittfunktion für N: Fnat : P(N) → P(N) T 7→ {0} ∪ {a + 1 | a ∈ T } Induktion über n ∈ N = Fnat-Induktion. Schrittfunktion für Menge A bzgl. wohlfundierter Relation R ⊆ A2: FR : P(A) → P(A) T 7→ {a ∈ A | ∀ b ∈ A : (b, a) ∈ R ⇒ b ∈ T } Noethersche Induktion bzgl. R = FR -Induktion. 88 4 (Co)Induktiv Definieren und Beweisen Schrittfunktion für `K : FK : P(S) → P(S) T 7→ {(Φ, ϕ) | Φ1 `ϕ1 ,...,Φk `ϕk Φ`ϕ ∈ K, (Φ1, ϕ1), . . . , (Φk ϕk ) ∈ T } Konstruktormenge C für Menge A: Für alle a ∈ A gibt es genau ein c : An → A ∈ C und genau ein b ∈ An mit a = c(b). F : P(S) → P(S) basiert auf C: Für alle T ⊆ S, F (T ) = {c(t1, . . . , tn) | c ∈ C, t1, . . . , tn ∈ T }. Konstruktor-Induktion über C: Jede C-Invariante von lfp(F ) enthält lfp(F ). Bzgl. C induktiv definierte Funktion f : lfp(F ) → A: Für alle c : lfp(F )n → lfp(F ) ∈ C gibt es gc : An × lfp(F )n → A derart, dass für alle t1, . . . , tn ∈ lfp(F ) folgende Gleichung gilt: f (c(t1, . . . , tn)) = gc(f (t1), . . . , f (tn), t1, . . . , tn). 89 4 (Co)Induktiv Definieren und Beweisen Destruktormenge D für Menge A: Für alle b ∈ d(a) = πd(b) für alle d ∈ D. Q d∈D ran(d) gibt es genau ein a ∈ A mit F : P(S) → P(S) basiert auf D: Für alle T ⊆ S, F (T ) = {t ∈ S | für alle Methoden d ∈ D : d(t) ∈ T }. Bzgl. D coinduktiv definierte Funktion f : A → gfp(F ): Für alle d ∈ D gibt es gd : A → ran(d) derart, dass für alle a ∈ A folgende Gleichung eine eindeutige Lösung in (der Funktionsvariablen) f hat: d(f (a)) = gd(a). (1) 90 5 Gleichungslogik Im vorangegangenen Kapitel war häufig von Ausdrücken im Sinne zusammengesetzter Funktionsaufrufe die Rede. Da diese Sprechweise den Unterschied zwischen Syntax und Semantik (siehe Kapitel 2) verschwimmen lässt, führen wir in diesem Kapitel mathematische Begriffe ein, die eine klare Trennlinie ziehen zwischen syntaktischen Ausdrücken (Termen), die nichts anderes als Symbolfolgen sind, und deren variierender Bedeutung als Elemente strukturierter Mengen (Algebren). 5.1 Signaturen, Terme und Algebren Eine Signatur Σ ist eine Menge von – Operationen genannten – Funktionssymbolen f mit Stelligkeit n ∈ N. Wir schreiben f : n → 1 für eine Operation mit Stelligkeit n. Sei X eine Menge von Variablen und S die Menge aller Folgen von runden Klammern, Kommas und Elementen der Menge Σ ∪ X. Die Menge TΣ(X) der Σ-Terme über X ist induktiv definiert. Die Schrittfunktion für TΣ(X) lautet wie folgt: FΣ : P(S) → P(S) T 7→ X ∪ {f t | f : n → 1 ∈ Σ, t ∈ T n} 91 5 Gleichungslogik Ist f nullstellig, dann schreiben wir f anstelle von f . FΣ basiert auf der Konstruktormenge CΣ = X ∪ {f TΣ(X) : TΣ(X)n → TΣ(X) | f : n → 1 ∈ Σ, n ∈ N}, wobei f TΣ(X) wie folgt definiert ist: Für alle t ∈ TΣ(X), f TΣ(X)(t) = f t. Die Elemente von X werden als nullstellige Funktionen nach TΣ(X) betrachtet. Die Elemente von TΣ =def TΣ(∅), also die Terme ohne Variablen, heißen Grundterme. Σ-Terme werden in Σ-Algebren ausgewertet: Eine Σ-Algebra besteht aus • einer – Daten-, Grund- oder Trägermenge – genannten Menge A und • einer Menge {f A : An → A | f : n → 1 ∈ Σ} von Funktionen, den Interpretationen von Σ in A. Falls keine Verwechslungen möglich sind, dann werden eine Algebra und ihre Trägermenge gleich bezeichnet. 92 5 Gleichungslogik Da ein nullstelliges Produkt mit der Menge 1 = {} gleichgesetzt wird (siehe Kapitel 3), wird eine Operation f : 0 → 1 in A als Funktion f A : 1 → A interpretiert. Da diese allein durch ihren Wert an der Stelle bestimmt ist, wird f A meistens mit f A() gleichgesetzt. AlgΣ bezeichnet die Klasse aller Σ-Algebren. TΣ(X) ist die Trägermenge der gleichnamigen Σ-Algebra, die f ∈ Σ durch den Konstruktor f TΣ(X) von CΣ (s.o.) interpretiert. Da ihre Trägermenge aus Termen besteht, wird sie als Termalgebra bezeichnet. Seien A und B Σ-Algebren. Eine Funktion h : A → B heißt Σ-Homomorphismus, Σ-homomorph oder mit Σ verträglich, wenn für alle f : n → 1 ∈ Σ das folgende Funktionsdiagramm kommutiert: fA n A A hn g Bn = fB h g B 93 5 Gleichungslogik Für alle n > 0 bezeichnet hn das n-fache Produkt von h (siehe Abschnitt Funktionen in Kapitel 3). Das obige Funktionsdiagramm veranschaulicht die Orthogonalität zwischen Operationen und Homomorphismen: Erstere transformieren Elemente einer Algebra, letztere stellen Bezüge zwischen mehreren Algebren her. Bijektive Σ-Homomorphismen heißen Σ-Isomorphismen. Die hier behandelten Signaturen Σ sind einsortig, d.h. jede Σ-Algebra hat genau eine Trägermenge. In realistischen Anwendungen kommen häufig Operationen vor, deren Definitionsbereich aus verschiedenen Mengen zusammengesetzt ist. Die zugrundeliegende Signatur hat dann für jede dieser Mengen einen Namen, den man Sorte nennt. Z.B. kann der Konstruktor cons bzw. poly (siehe Beispiel 4.16 bzw. 4.17) nur als Interpretation einer Operation einer Signatur betrachtet werden, die für A und A∗ bzw. R und R[x] jeweils eine eigene Sorte hat. 94 5 Gleichungslogik Dementsprechend ist die Trägermenge einer Algebra einer n-sortigen Signatur ein n-Tupel von Mengen: Jeder Sorte wird eine eigene Menge zugeordnet. Die Menge der Terme setzt sich aus n wechselseitig induktiv definierten Termmengen zusammen (siehe Abschnitt Induktiv definierte Mengen in Kapitel 4). Im Übersetzerbau [28] werden die Terme einer (aus einer kontextfreien Grammatik gebildeten) mehrsortigen Signatur Syntaxbäume genannt. Sie liefern abstrakte Beschreibungen von Quellprogrammen, auf deren Basis sie ein Compiler in Zielprogramme übersetzt. Auch logische Formeln sind Terme geeigneter Signaturen. Während die Syntax der aussagenund modallogischer Formeln durch eine feste Signatur gegeben ist, baut dort die Signatur prädikatenlogischer Formeln auf einer beliebigen Signatur Σ von Operationen auf einem Datenbereich auf, dessen Eigenschaften durch die Formeln beschrieben werden. Sollen Bezüge zwischen n > 1 Datenbereichen beschrieben werden, dann muss Σ n-sortig sein. Fast alle Begriffe und Resultate, die wir hier für einsortige Signaturen formulieren, können problemlos auf mehrsortige Signaturen übertragen werden. 95 5 Gleichungslogik Beispiel 5.1 Die Bitalgebra Die in Kapitel 6 behandelte Aussagenlogik ist auf folgender Signatur aufgebaut: AL = {⊥, > : 0 → 1, ¬ : 1 → 1, ∨, ∧, ⇒: 2 → 1}. Die AL-Algebra mit Trägermenge 2 = {0, 1} und folgender Interpretation von AL nennen wir Bitalgebra: ⊥2 = 0, >2 = 1, ¬2 = λb.1 − b, ∧2 = min, ∨2 = max, ⇒2 = λ(b, c).max(1 − b, c) = χ(≤). ⊥ (bottom) und > (top) werden also durch die Wahrheitswerte 0 bzw. 1 interpretiert. 96 5 Gleichungslogik AL-Terme nennt man üblicherweise Boolesche Ausdrücke. o Aufgabe Zeigen Sie: Sind zwei Mengen A und B isomorph und ist A (die Trägermenge) eine(r) Σ-Algebra, dann ist auch B eine Σ-Algebra. o Sei A eine Σ-Algebra und C eine Menge. A lässt sich wie folgt zu einer Σ-Algebra mit Trägermenge AC liften: • Für alle f : n → 1 ∈ Σ, g1, . . . , gn ∈ AC und c ∈ C, C f A (g1, . . . , gn)(c) =def f A(g1(c), . . . , gn(c)). Aufgabe Sei h : A → B ein Σ-Homomorphismus und C eine Menge. Zeigen Sie, dass dann auch λg.(h ◦ g) : AC → B C Σ-homomorph ist, wobei die Σ-Algebren A und B wie oben zu Σ-Algebren AC bzw. B C geliftet wurden. o 97 5 Gleichungslogik 5.2 Termauswertung und -substitution Die induktiv definierte Funktion var : TΣ (X ) → P(X ) liefert die Menge der Variablen von X, die in t vorkommen: • Für alle x ∈ X, var (x ) = {x }. • Für alle f : n → 1 ∈ Σ und t1, . . . , tn ∈ TΣ(X), var(f (t1, . . . , tn)) =def n [ var (ti ). i=1 Funktionen von der Variablenmenge X in eine Σ-Algebra A heißen Belegungen (valuations) von X in A. Gibt man eine Belegung g : X → A vor, dann ist der Wert eines Terms t unter g definiert als das Bild von t unter der wie folgt induktiv definierten Extension oder Fortsetzung g ∗ : TΣ(X) → A von g auf TΣ(X): 98 5 Gleichungslogik • Für alle x ∈ X, g ∗(x) =def g(x). • Für alle f : n → 1 ∈ Σ und t1, . . . , tn ∈ TΣ(X), g ∗(f (t1, . . . , tn)) =def f A(g ∗(t1), . . . , g ∗(tn)). Aus dem ersten Teil der Definition von g ∗ folgt die Gleichung g ∗ ◦incX = g, die folgendem Funktionsdiagramm entspricht: incX = g TΣ(X) g∗ ≺ X A Anschaulich gesprochen, wertet g ∗ einen Term t unter g aus, d.h. nachdem g die Variablen von t mit Werten aus A belegt hat. Wir nennen g ∗(t) deshalb den Wert von t unter g. Aufgabe Sei C = X ∪ {f TΣ(X) | f ∈ Σ}. Zeigen Sie durch Konstruktorinduktion über C, dass g ∗ der einzige Σ-Homomorphismus von TΣ(X) nach A mit g ∗ ◦ incX = g ist. o 99 5 Gleichungslogik Beispiel 5.2 Sei X = {a, b, c, d} und Σ = {¬ : 1 → 1, ∨, =, +, ∗ : 2 → 1}. + Schrittweise Auswertung des Terms (a ∗ (b + c + d) = a ∗ b + a ∗ c + a ∗ d) ∨ ¬(a ∗ (b + c + d) = a ∗ b + a ∗ c + a ∗ d) in einer Σ-Algebra mit Trägermenge N unter der Belegung g = (λx.0)[5/a, 23/b, 45/c, 111/d] : X → N Man sieht in der Animation, wie g von oben nach unten durch den o Da Grundterme keine Variablen enthalten, hängt die Einschränkung von g ∗ auf TΣ nicht von g ab. Sie wird auch Termfaltung genannt und mit fold A bezeichnet. Sei g : ∅ → A. Gemäß obiger Aufgabe ist fold A der einzige Σ-Homomorphismus von TΣ nach A mit fold A ◦ inc∅ = g. Da g eindeutig ist, gilt diese Gleichung für alle Funktionen von TΣ nach A. Demnach ist fold A der einzige Σ-Homomorphismus von TΣ nach A. Man nennt TΣ deshalb die initiale Σ-Algebra. 100 5 Gleichungslogik Aufgabe Sei f : TΣ → A eine induktiv definierte Funktion, wobei die Interpretationen der Operationen von Σ in der Termalgebra TΣ(X) als Konstruktoren von TΣ(X) (siehe Kapitel 4) dienen. Erweitern Sie A so zu einer Σ-Algebra, dass f mit fold A übereinstimmt.o Belegungen durch Terme heißen Substitutionen. Belegungen durch Grundterme heißen Grundsubstitutionen. Aufgabe Sei σ : X → TΣ(X) eine Substitution. Zeigen Sie, dass ihre Extension σ ∗ : TΣ(X) → TΣ(X) die folgende induktive Definition hat: • Für alle x ∈ X, σ ∗(x) = σ(x). • Für alle f : n → 1 ∈ Σ und t1, . . . , tn ∈ TΣ(X), σ ∗(f (t1, . . . , tn)) = f (σ ∗(t1), . . . , σ ∗(tn)). o Das Bild eines Terms t unter σ ∗ heißt σ-Instanz von t. 101 5 Gleichungslogik Lemma 5.3 (Substitutionslemma für Terme) (i) Für alle Σ-Algebren A, g : X → A und Σ-Homomorphismen h : A → B gilt (h ◦ g)∗ = h ◦ g ∗. incX = g TΣ(X) g∗ = (h ◦ g)∗ ≺ X B h (ii) Für alle Σ-Algebren A, g : X → A und Substitutionen σ : X → TΣ(X) gilt (g ∗ ◦ σ)∗ = g ∗ ◦ σ ∗. A Beweis. (i) Wegen (h ◦ g)∗ ◦ incX = h ◦ g und h ◦ g ∗ ◦ incX = h ◦ g sind (h ◦ g)∗ und h ◦ g ∗ zwei Σ-Homomorphismen h0 : TΣ(X) → B, die h0∗ ◦ incX = h ◦ g erfüllen und deshalb miteinander übereinstimmen. (ii) folgt aus (i), weil σ ∗ ein Σ-Homomorphismus ist. o 102 5 Gleichungslogik t σ* t σ(x) x y σ(x) σ(y) z z z' z' x g*(σ(x)) g*(σ*(t)) = (g* o σ)*(t) (g* t g* g* σ(y) o σ)* y g*(σ(y)) 103 5 Gleichungslogik Sei x1, . . . , xk ∈ X, t1, . . . , tk , t ∈ TΣ(X) und σ, σ1, . . . , σn : X → TΣ(X). Fortan schreiben wir auch {t1/x1, . . . , tk /xk } anstelle von incX [t1/x1, . . . , tk /xk ], (siehe Abschnitt 3.2) σ1 . . . σn anstelle von σn∗ ◦ · · · ◦ σ2∗ ◦ σ1, tσ anstelle von σ ∗(t). σ1 . . . σn bezeichnet man auch als Kleisli-Komposition der Substitutionen σ1, . . . , σn. Wie die Funktionskomposition ◦, so ist auch die Kleisli-Komposition assoziativ: Aufgabe Folgern Sie aus Lemma 5.3 (ii), dass für alle ρ, σ, τ : X → TΣ(X) (ρσ)τ = ρ(στ ) gilt. Aufgabe Bezeichnen σ{t/x} und σ[t/x] dieselben Substitutionen? u ∈ TΣ(X) ist ein Teilterm von t ∈ TΣ(X), wenn es einen Term v und x ∈ var(v) gibt mit v{u/x} = t. 104 5 Gleichungslogik 5.3 Termgleichungen Sei n ∈ N und t1, . . . , tn, t01, . . . , t0n, t, t0 ∈ TΣ(X). Die Formel t1 ≡ t01 ∧ · · · ∧ tn ≡ t0n ⇒ t ≡ t0 (1) heißt Σ-Gleichung über X. Im Fall n = 0 ist (1) unbedingt, andernfalls bedingt. Sei e eine Σ-Gleichung. Eine Σ-Algebra A erfüllt e und e ist gültig in A, geschrieben: A |= e, wenn für alle Belegungen g : X → A Folgendes gilt: g ∗(t1) = g ∗(t01)) ∧ · · · ∧ g ∗(tn) = g ∗(t0n) ⇒ g ∗(t) = g ∗(t0). (2) In (1) sind ∧ und ⇒ lediglich Symbole, in (2) werden sie in ihrer umgangssprachlichen Bedeutung (“und” bzw. “impliziert”) verwendet! Nur bei der Gleichheit unterscheiden wir zwischen dem Symbol (≡) und der Bedeutung als Diagonale (=; siehe Kapitel 3). 105 5 Gleichungslogik Eine Klasse K von Σ-Algebren erfüllt e und e ist gültig in K, geschrieben: K |= e, wenn (1) in allen Elementen von K gültig ist. A bzw. K erfüllen eine Menge E von ΣGleichungen, geschrieben: A |= E bzw. K |= E, wenn für alle e ∈ E A |= e bzw. K |= e gilt. ≡A bezeichnet die Menge aller Termpaare (t, t0) und aller Substitutionspaare (σ, τ ) mit A |= t ≡ t0 bzw. A |= σ(x) ≡ τ (x) für alle x ∈ X. Lemma 5.4 (Äquivalenzlemma für Terme) Sei t ∈ TΣ(X), σ, τ : X → TΣ(X) und A eine Σ-Algebra. σ ≡A τ ⇒ tσ ≡A tτ. Beweis. Sei g : X → A und σ ≡A τ . Daraus folgt (g ∗ ◦ σ)(x) = g ∗(σ(x)) = g ∗(τ (x)) = (g ∗ ◦ τ )(x). (1) Aus zweimaliger Anwendung von Lemma 5.3 (ii) folgt daher (1) g ∗(σ ∗(t)) = (g ∗ ◦ σ)∗(t) = (g ∗ ◦ τ )∗(t) = g ∗(τ ∗(t)), also tσ = σ ∗(t) ≡A τ ∗(t) = tτ . o 106 5 Gleichungslogik 5.4 Normalformen Eine Teilmenge NF von TΣ(X) mit X ⊆ NF ist eine Menge von Normalformen bzgl. einer Σ-Algebra A, wenn NF für jeden Σ-Term t einen Term u mit t ≡A u enthält. Man nennt u dann eine Normalform von t bzgl. A. Idealerweise sind Normalformen eindeutig, m.a.W.: äquivalente Normalformen sind gleich. In diesem Fall liefert jeder Algorithmus, der Terme in äquivalente Normalformen überführt, ein Entscheidungsverfahren für die Äquivalenz zweier Terme t und t0: • Berechne Normalformen u und u0 von t bzw. t0. • Sind u und u0 gleich, dann gilt t ≡A u = u0 ≡A t0. Also sind t und t0 äquivalent. Sind u und u0 verschieden, dann erhält man t 6≡A t0 durch Kontraposition: Wären t und t0 äquivalent, dann wären auch u und u0 äquivalent. Also wären nach Voraussetzung u und u0 gleich. Die Eindeutigkeit von Normalformen ist oft weit schwieriger nachzuweisen als ihre Existenz und erfordert Begriffe aus der Termersetzungstheorie (siehe z.B. [14], Kapitel 5). Hier interessiert uns vor allem, wie äquivalente Normalformen berechnet werden können. 107 5 Gleichungslogik Beispiel 5.5 Sei Σ = {+, ∗ : 2 → 1}, X = {x, y, z, z 0}, E = {x ∗ (y + z) ≡ (x ∗ y) + (x ∗ z), (x + y) ∗ z ≡ (x ∗ z) + (y ∗ z)} und NF die Menge aller Σ-Terme über X, deren Teilterme der Form t ∗ u keine Teilterme der Form t + u haben. Für jede Σ-Algebra A, die E erfüllt, und jeden Σ-Term t gibt es u ∈ NF mit t ≡A u. Unten werden zwei Verfahren beschrieben, mit deren Hilfe das gezeigt werden kann (siehe Beispiel 5.8 bzw. 5.10). Aufgabe Sei A die Σ-Algebra mit Trägermenge N und der üblichen Interpretation von Σ in N. Zeigen Sie, dass der Σ-Term (x+y)∗(z+z 0) mehrere Normalformen bzgl. A hat. o Normalisierungen logischer Formeln sind erforderlich, weil logische Ableitungsregeln oft nur auf Normalformen anwendbar sind. Das verkleinert den Suchraum (die Menge möglicher Regelanwendungen auf eine einzelne Formel), führt aber vielfach zu Ableitungen, die für Menschen nur schwer nachvollziehbar sind, weil Normalisierungen die intuitive Verständlichkeit logischer Formeln i.a. verschlechtern. 108 5 Gleichungslogik Das spielt keine Rolle, wenn Ableitungen vollautomatisch erzeugt werden. Sind jedoch Eingriffe in den Ableitungsprozess notwendig – weil der Suchraum zu groß oder der verwendete Kalkül unvollständig ist (siehe Kapitel 2) –, dann müssen die am Eingriffspunkt vorliegenden Zwischenergebnisse schnell verstehbar sein, damit entscheiden werden kann, wie die Ableitung fortgesetzt werden soll. Im Gegensatz zur rekursiven Auswertung eines Terms t (siehe oben) werden Normalformen von t üblicherweise durch iterative – d.h. wiederholte – Anwendung von Gleichungen auf t berechnet. 5.5 Äquivalenzrelationen und Quotienten Um die Korrektheit solcher Ableitungen beweisen zu können, widmen wir uns zunächst den wichtigen Eigenschaften von ≡A – die z.T. schon im o.g. Entscheidungsverfahren für Termäquivalenz verwendet wurden. Sei A eine Menge. Eine Relation R ⊆ A2 heißt • reflexiv, wenn die Diagonale von A2 eine Teilmenge von R ist; (1) • transitiv: Für alle (a, b), (b, c) ∈ R auch (a, c) zu R gehört; (2) 109 5 Gleichungslogik • symmetrisch, wenn für alle (a, b) ∈ R auch (b, a) zu R gehört; (3) • antisymmetrisch, wenn alle a, b ∈ A mit (a, b), (b, a) ∈ R gleich sind; (4) Eine reflexive und transitive Relation heißt Prä- oder Quasiordnung. Eine antisymmetrische Präordnung heißt Halbordnung oder partielle Ordnung. Eine Halbordnung R heißt totale Ordnung, wenn für alle a, b ∈ R (a, b) oder (b, a) zu R gehört. Eine wohlfundierte (siehe Kapitel 4) und totale Ordnung heißt Wohlordnung. R heißt Äquivalenzrelation, wenn (1)-(3) gelten. Eine Äquivalenzrelation R zerlegt A in Äquivalenzklassen [a]R =def {b ∈ A | (a, b) ∈ R}. Die entstehende Zerlegung heißt Quotient von A (faktorisiert) nach R und wird mit A/R bezeichnet: A/R =def {[a]R | a ∈ A}. Die natürliche Abbildung natR : A → A/R bildet a ∈ A auf [a]R ab. 110 5 Gleichungslogik Umgekehrt liefert jede Zerlegung Z = {A1, . . . , An} von A die Äquivalenzrelation RZ = {(a, b) ∈ A2 | es gibt 1 ≤ i ≤ n mit a, b ∈ Ai}. o Aufgabe Zeigen Sie A/RZ = Z. Eine Äquivalenzrelation R auf A heißt Σ-Kongruenz, wenn R mit allen f : n → 1 ∈ Σ verträglich ist, d.h. wenn für alle a1, . . . , an, b1, . . . , bn ∈ An Folgendes gilt: (a1, b1), . . . , (an, bn) ∈ R ⇒ (f A(a1, . . . , an), f A(b1, . . . , bn)) ∈ R. (5) Aufgabe Zeigen Sie, dass für alle Σ-Algebren A ≡A eine Σ-Kongruenz ist, also (1)-(3) und (5) erfüllt. o Sei R eine Σ-Kongruenz. Die Quotientenmenge A/R ist die Trägermenge der gleichnamigen Σ-Algebra, die alle f : n → 1 ∈ Σ wie folgt interpretiert: Für alle a1, . . . , an ∈ An, f A/R ([a1]R , . . . , [an]R ) = [f A(a1, . . . , an)]R . Aufgabe Zeigen Sie, dass die natürliche Abbildung (s.o) Σ-homomorph ist. o 111 5 Gleichungslogik 5.6 Gleichungskalkül Sei E eine Menge von Σ-Gleichungen. Der Gleichungskalkül GK besteht aus fünf Regeln: Reflexivitätsregel E`t≡t Symmetrieregel E ` t ≡ t0 E ` t0 ≡ t t ∈ TΣ(X) t, t0 ∈ TΣ(X) Transitivitätsregel E ` t ≡ t0, E ` t0 ≡ t00 E ` t0 ≡ t00 t, t0, t00 ∈ TΣ(X) Kongruenzregel E ` t1 ≡ t01, . . . , E ` tn ≡ t0n E ` f (t1, . . . , tn) ≡ f (t01, . . . , t0n) f : n → 1 ∈ Σ, t1, . . . , tn, t01, . . . , t0n ∈ TΣ(X) 112 5 Gleichungslogik Modus ponens E ` t1σ ≡ t01σ, . . . , E ` tnσ ≡ t0nσ E ` tσ ≡ t0σ (t1 ≡ t01 ∧ · · · ∧ tn ≡ t0n ⇒ t ≡ t0) ∈ E, σ : X → TΣ(X) AlgΣ,E bezeichnet die Klasse aller Σ-Algebren, die E erfüllen: AlgΣ,E =def {A ∈ AlgΣ | A |= E}. Σ-Algebren, die E erfüllen, heißen (Σ, E)-Algebren. Satz 5.6 Korrektheit des Gleichungskalküls Für alle Mengen E von Σ-Gleichungen und unbedingten Σ-Gleichungen e gilt: E `GK e ⇒ AlgΣ,E |= e. Beweis. Nach Satz 4.1 (iii) gilt die Behauptung, wenn die Menge P aller Paare (E, e) ∈ P(TΣ(X)2) × TΣ(X)2 mit AlgΣ,E |= e FGK -abgeschlossen ist (siehe Abschnitt 4.4). Sei (E, t ≡ t0) ∈ FGK (P ). 113 5 Gleichungslogik Fall 1 (Reflexivitätsregel): t = t0. Dann gilt AlgΣ,E |= t ≡ t0. Fall 2 (Symmetrieregel): (E, t0 ≡ t) ∈ P . Dann gilt AlgΣ,E |= t0 ≡ t, also auch AlgΣ,E |= t ≡ t0. Fall 3 (Transitivitätsregel): Es gibt einen Σ-Term t00 mit (E, t ≡ t00), (E, t00 ≡ t0) ∈ P . Dann gilt AlgΣ,E |= t ≡ t00 und AlgΣ,E |= t00 ≡ t0, also auch AlgΣ,E |= t ≡ t0. Fall 4 (Kongruenzregel): Es gibt f : n → 1 ∈ Σ und Σ-Terme t1, . . . , tn, t01, . . . , t0n mit t = f (t1, . . . , tn), t0 = f (t01, . . . , t0n) und (E, ti ≡ t0i) ∈ P für alle 1 ≤ i ≤ n. Dann gilt g ∗(ti) = g ∗(t0i) für alle (Σ, E)-Algebren A und g ∈ AX , also auch g ∗(t) = g ∗(f (t1, . . . , tn)) = f A(g ∗(t1), . . . , g ∗(tn)) = f A(g ∗(t01), . . . , g ∗(t0n)) = g ∗(f (t01, . . . , t0n)) = g ∗(t0). Daher gilt t ≡ t0 in allen (Σ, E)-Algebren. Fall 5 (Modus ponens): Es gibt (t1 ≡ t01 ∧ · · · ∧ tn ≡ t0n ⇒ u ≡ u0) ∈ E, Σ-Terme t1, . . . , tn, t01, . . . , t0n und σ : X → TΣ(X) mit t = uσ, t0 = u0σ und (E, tiσ ≡ t0iσ) ∈ P für alle 1 ≤ i ≤ n. Dann gilt g ∗(tiσ) = g ∗(t0iσ) für alle (Σ, E)-Algebren A und g ∈ AX , also auch 114 5 Gleichungslogik (g ∗ ◦ σ)∗(ti) Lemma 5.3 (ii) = g ∗(tiσ) = g ∗(t0iσ) Lemma 5.3 (ii) = (g ∗ ◦ σ)∗(t0i). (1) Da A E erfüllt, folgt g ∗(t) = g ∗(uσ) Lemma 5.3 (ii) = (g ∗ ◦ σ)∗(u) = (g ∗ ◦ σ)∗(u0) Lemma 5.3 (ii) = g ∗(u0σ) = g ∗(t0) aus (1). Daher gilt t ≡ t0 in allen (Σ, E)-Algebren. Demnach gehört (E, t ≡ t0) in allen fünf Fällen zu P . o 5.7 Berechnung äquivalenter Normalformen Sei E eine Menge unbedingter (!) Σ-Gleichungen. Die Menge aller Paare (t, t0) von Σ-Termen mit E `GK t ≡ t0 heißt E-Äquivalenz und wird mit ≡E bezeichnet. Aus Satz 5.6 folgt, dass für alle (Σ, E)-Algebren A ≡E in ≡A enthalten ist. (2) Die folgende Teilrelation von ≡E erlaubt nur “orientierte” Anwendungen der Gleichungen von E: Die E-Reduktionsrelation →E besteht aus allen Paaren (u{tσ/x}, u{t0σ/x}) von ΣTermen mit u ∈ TΣ(X), t ≡ t0 ∈ E und σ : X → TΣ(X). 115 5 Gleichungslogik Erstes Normalisierungsverfahren Ein Σ-Term t heißt E-irreduzibel, wenn kein t0 mit t →E t0 existiert. + Die kleinste transitive Relation auf TΣ(X), die →E enthält, wird mit →E bezeichnet. + Aufgabe Zeigen sie, dass →E die kleinste transitive und mit Σ verträgliche Relation ist, die Inst(E ) =def {(tσ, t0σ) | (t, t0) ∈ E, σ : X → TΣ(X)} + enthält. Folgern Sie daraus, dass →E eine Teilmenge von ≡E ist. o Satz 5.7 Sei NF ⊆ TΣ(X)2 und A eine (Σ, E)-Algebra. Ist →E ist wohlfundiert und gehört jeder E-irreduzible Term zu NF , dann hat jeder Σ-Term t eine Normalform u in NF , d.h. es gilt t ≡A u. Beweis. Aus der Wohlfundiertheit von →E folgt die Existenz eines E-irreduziblen Σ+ + (2) Terms u mit t →E u. Also gehört u zu NF . Aus →E ⊆ ≡E ⊆ ≡A folgt t ≡A u. o 116 5 Gleichungslogik Ein Kriterium für Wohlfundiertheit von →E ist die Existenz einer Gewichtsfunktion weight : TΣ(X) → W, die Termen Elemente einer Menge W zuordnet, auf der es eine wohlfundierte Halbordnung < mit folgender Eigenschaft gibt: • Für alle t, t0 ∈ TΣ(X) mit t →E t0 gilt weight(t) > weight(t0). (3) Gäbe es eine unendliche Reduktion t1 →E t2 →E t3 →E . . . , dann gälte weight(t1) > weight(t2) > weight(t3) > . . . , was der Wohlfundiertheit von < widerspricht. Die einfachste Gewichtsfunktion ordnet einem Term die Anzahl seiner Symbole zu. Sie erfüllt aber selten Bedingung (3). Häufig genügt es, natürliche Zahlen als Gewichte und < als die übliche Ordnung auf N zu wählen. Manchmal wird aber eine komplexere Ordnung benötigt, die z.B. auf Tupeln oder Multimengen natürlicher Zahlen basiert. Hierzu zählen die lexikographische bzw. Multimengen-Erweiterung einer wohlfundierten Ordnung < auf einer Menge A: 117 5 Gleichungslogik Für alle n > 1, a = (a1, . . . , an), b = (b1, . . . , bn) ∈ An und f, g ∈ B(A) = NA, a <lex b ⇔def es gibt 1 ≤ i ≤ n mit ai < bi und aj ≤ bj für alle 1 ≤ j < i. Für alle f, g ∈ B(A) = NA (siehe Isomorphien), f <mult g ⇔def f 6= g und für alle a ∈ Af \ Ag gibt es b ∈ Ag \ Af mit a < b, wobei Af = f −1(N>0) und Ag = g −1(N>0). Beispiel 5.8 Seien Σ, X, E und NF wie in Beispiel 5.5. Man sieht sofort, dass Eirreduzible Terme zu NF gehören. + Schrittweise E-Reduktion des Terms dist = 5 ∗ (6 ∗ (11 ∗ (x + y + z) ∗ 14 + (c + g + b) ∗ 22) + 44 ∗ (gg + hh)) zu einer Normalform. + und ∗ treten hier auch als dreistellige Funktionssymbole auf. Ein Termgewicht, das Bedingung (3) erfüllt, ist die Multimenge der Längen aller Pfade von einem mit ∗ markierten Knoten zu einem Blatt, wobei sich die Begriffe Pfad, Knoten und Blatt auf die Baumdarstellung des gewichteten Terms beziehen. o 118 5 Gleichungslogik Zweites Normalisierungsverfahren Eine andere Methode, äquivalente Normalformen zu berechnen, besteht in der Definition von Interpretationen von Σ in NF , also in der Erweiterung von NF zur Σ-Algebra. Hier kann E auch bedingte Gleichungen enthalten. Satz 5.9 Sei A eine (Σ, E)-Algebra. Unter folgender Bedingung gilt t ≡A inc∗X (t), ist inc∗X (t) also eine Normalform von t: ∀ f : n → 1 ∈ Σ, t ∈ NF n : f NF (t) ≡E f t. incX X TΣ(X) inc∗X ≺ = incX (4) NF Beweis. Für alle t ∈ TΣ(X) gelte t ≡E inc∗X (t). (5) Aus (5) und (2) folgt t ≡A inc∗X (t). 119 5 Gleichungslogik Beweis von (5) durch FΣ-Induktion. Sei x ∈ X. Wegen der Reflexivität von ≡E gilt x ≡E x = incX (x) = inc∗X (x). Sei f : n → 1 ∈ Σ, t1, . . . , tn ∈ TΣ(X) und ti ≡E inc∗X (ti) für alle 1 ≤ i ≤ n. Daraus folgt ft ≡E ist mit f verträglich = f TΣ(X)(t1, . . . , tn) ≡E f TΣ(X)(inc∗X (t1), . . . , inc∗X (tn)) (4) = f (inc∗X (t1), . . . , inc∗X (tn)) ≡E f NF (inc∗X (t1), . . . , inc∗X (tn)) inc∗X Σ−hom. = inc∗X (f TΣ(X)(t1, . . . , tn)) = inc∗X (f t). o Sei T ⊆ TΣ(X)+. Die Relation R = {(t, t0) ∈ T 2 | t0 ist ein echter Teilausdruck von t} heißt Teiltermrelation bzgl. T und ist wohlfundiert. Noethersche Induktion bzgl. R wird auch strukturelle Induktion über T genannt. Beispiel 5.10 Seien Σ, NF und E wie in Beispiel 5.5. + und ∗ werden in NF als induktiv definierte Funktionen interpretiert: 120 5 Gleichungslogik Für alle t, t0 ∈ NF , t +NF t0 = t + t0, 0 t ∗ t (u ∗NF t0) + (v ∗NF t0) t ∗NF t0 = (t ∗NF u) + (t ∗NF v) falls t, t0 ∈ T{∗}(X), falls es u, v ∈ NF gibt mit t = u + v, falls t ∈ T{∗}(X) und es u, v ∈ NF gibt mit t0 = u + v. NF 2 kann wie folgt induktiv definiert werden: • t, t0 ∈ T{∗}(X) ⇒ (t, t0) ∈ NF 2, • u, v, t0 ∈ NF ⇒ (u + v, t0) ∈ NF 2, • t ∈ T{∗}(X) ∧ u, v ∈ NF ⇒ (t, u + v) ∈ NF 2. Beweis von (4) durch strukturelle Induktion über NF 2. Sei f ∈ Σ und t, t0 ∈ NF . Fall 1: f = +. Dann gilt (5) nach Definition von f NF . Fall 2: f = ∗. Ist t, t0 ∈ T{∗}(X), dann gilt (5) nach Definition von ∗NF . 121 5 Gleichungslogik Sonst gibt es u, v ∈ NF mit t = u + v, u ∗NF t0 ≡E u ∗ t0 und v ∗NF t0 ≡E v ∗ t0 oder mit t0 = u + v, t ∗NF u ≡E t ∗ u und t ∗NF v ≡E t0 ∗ v (Induktionshypothese). Daraus folgt t ∗NF t0 = (u ∗NF t0) + (v ∗NF t0) ≡E (u ∗ t0) + (v ∗ t0) ≡E (u + v) ∗ t0 = t ∗ t0 bzw. t ∗NF t0 = (t ∗NF u) + (t ∗NF v) ≡E (t ∗ u) + (t ∗ v) ≡E t ∗ (u + v) = t ∗ t0 wegen x∗(y+z) ≡ (x∗y)+(x∗z) ∈ E sowie wegen der Symmetrie und der Verträglichkeit von ≡E mit +. Sei A die Σ-Algebra mit Trägermenge N und der üblichen Interpretation von + und ∗ auf N. Grundschulwissen impliziert die Gültigkeit von E in A. Nach Satz 5.9 gibt es zu jedem Σ-Term t eine Normalform u mit t ≡A u. Sei X = {x, y, z, c, g, b, gg, hh}. In der + schrittweisen Auswertung des Terms dist unter der Belegung nf = incX : X → NF zu einer Normalform bezeichne add und mul die Interpretationen der Operationen + bzw. ∗ in NF , die hier auch als dreistellige Funktionssymbole auftreten. o 122 5 Gleichungslogik Beispiel 5.11 (siehe Beispiel 5.1) Sei nand = λ(x, y).¬(x∧y) : TAL(X)2 → TAL(X) und NF ⊆ TAL(X) die folgendermaßen induktiv definierte Menge von Normalformen: • X ∪ {>} ⊆ NF , • t, u ∈ NF ⇒ nand(t, u) ∈ NF . Die Operationen von AL werden in NF wie folgt interpretiert: Für alle t, u ∈ NF , >NF = >, ⊥NF = nand(>, >), ¬NF (t) = nand(t, t), t ∧NF u = nand(nand(t, u), nand(t, u)), t ∨NF u = nand(nand(t, t), nand(u, u)), t ⇒NF u = nand(t, nand(u, u)). Sei E die Menge folgender AL-Gleichungen: 123 5 Gleichungslogik ¬(¬x ∧ ¬y) ≡ x ∨ y, x∧x ≡ x, ¬> ≡ ⊥, ¬¬x ≡ x, ¬t ∨ u ≡ t ⇒ u. Aufgabe Zeigen Sie (4) für Σ = AL. Im Gegensatz zu Beispiel 5.10 wird hier keine strukturelle Induktion benötigt, weil die Interpretation der Operationen von AL nicht induktiv definiert ist. Nach Satz 5.9 hat jeder Σ-Term eine in allen A ∈ AlgΣ,E äquivalente Normalform. o Satz 5.12 Vollständigkeit des Gleichungskalküls Jede unbedingte Σ-Gleichung, die in allen Σ-Algebren, die E erfüllen, gültig ist, gehört zur E-Äquivalenz. Beweis. Da ≡E eine Σ-Kongruenz ist, lässt sich die Quotientenmenge TΣ(X)/≡E wie oben beschrieben zur Σ-Algebra erweitern. Wir zeigen zunächst, dass sie die Gleichungen von E erfüllt. 124 5 Gleichungslogik Sei ϕ = (t1 ≡ t01 ∧· · ·∧tn ≡ t0n ⇒ t ≡ t0) ∈ E und g : X → TΣ(X)/≡E mit g ∗(ti) = g ∗(t0i) für alle 1 ≤ i ≤ n. Dann gibt es σ : X → TΣ(X) mit nat≡E ◦ σ = g. Daraus folgt [tiσ]≡E = nat≡E (tiσ) = (nat≡E ◦ σ)∗(t0i) Lemma 5.3 (i) = Lemma 5.3 (i) = (nat≡E ◦ σ)∗(ti) = g ∗(ti) = g ∗(t0i) nat≡E (t0iσ) = [t0iσ]≡E , also tiσ ≡E t0iσ, d.h. es gibt eine GK-Ableitung von E ` tiσ ≡ t0iσ. Eine Anwendung des Modus ponens auf die Gleichungen t1σ ≡ t01σ, . . . , tnσ ≡ t0nσ und ϕ liefert die Gleichung tσ ≡ t0σ. Demnach gilt tσ ≡E t0σ und wir erhalten g ∗(t) = (nat≡E ◦ σ)∗(t) Lemma 5.3 (i) = Lemma 5.3 (i) = nat≡E (tσ) = [tσ]≡E = [t0σ]≡E = nat≡E (t0σ) (nat≡E ◦ σ)∗(t0) = g ∗(t0). Also ist ϕ in TΣ(X)/≡E gültig. Sei nun t ≡ t0 eine Σ-Gleichung, die in allen Σ-Algebren, die E erfüllen, gültig ist. Daher ist t ≡ t0 in TΣ(X)/≡E gültig, und wir erhalten für alle σ : X → TΣ(X): nat≡E (σ ∗(t)) Lemma 5.3 (i) = Lemma 5.3 (i) = (nat≡E ◦ σ)∗(t) TΣ (X)/≡E erfüllt t≡t0 = (nat≡E ◦ σ)∗(t0) nat≡E (σ ∗(t0)), 125 5 Gleichungslogik also insbesondere t = id(t) = inc∗X (t) ≡E inc∗X (t0) = id(t0) = t0. incX = incX TΣ(X) inc∗X = idTΣ(X) ≺ X TΣ(X) o 5.8 Gleichungslogik in anderen Logiken Bei allen drei in den nächsten Kapiteln behandelten Logiken folgen Syntax und Semantik dem gleichen Definitionsschema. Zunächst wird eine Signatur L logischer Operationen angegeben. Die Formelmenge wird als Menge TL(At) der L-Terme über einer Menge At von Atomen definiert. In der Aussagenlogik (L = AL); siehe Beispiel 5.1) und der Modallogik (L = ML) ist At eine beliebige – i.d.R. endliche – Menge. 126 5 Gleichungslogik In der Prädikatenlogik (L = PL) ist At eine Menge von Ausdrücken der Form p(t1, . . . , tn), die aus Termen t1, . . . , tn einer beliebigen Signatur Σ und – neben den Operationen ebenfalls zu Σ gehörigen Prädikaten p besteht. Demnach ist eine prädikatenlogische Formel ein Term mit Symbolen aus zwei Signaturen: PL und Σ. Während die Bedeutung einer aussagenlogischen Formel durch einen Wahrheitswert (= Element der Bitalgebra 2) gegeben ist, ist – intuitiv gesprochen – die Semantik einer modal- oder prädikatenlogischen Formel die Menge aller Zustände (“Welten”), die sie erfüllen. An die Stelle einer Belegung g : At → 2 durch Wahrheitswerte tritt in der Modallogik eine Kripke-Struktur K : State → P(State) × P(At), die jedem Zustand s seine (direkten) Folgezustände sowie alle atomaren Formeln zuordnet, die im Zustand s gelten (sollen). In der Prädikatenlogik besteht die Zustandsmenge State aus allen Belegungen von X in einer Σ-StrukturA, d.i. eine Σ-Algebra, die die Prädikate von Σ als Relationen auf A interpretiert. 127 5 Gleichungslogik Die jeweilige Kripke-Struktur K bzw. Σ-Struktur A liefert eine Belegung gK : At → P(State) bzw. gA : AtΣ(X) → P(AX ) atomarer Formeln in der ML- bzw. PL-Algebra P(State) bzw. P(AX ), deren Extension gK∗ : TML(At) → P(State) bzw. gA∗ : TPL(AtΣ(X)) → P(AX ) modal- bzw. prädikatenlogischen Formeln ihre jeweilige Bedeutung zuordnet: incAt incAt At TAL(At) At TML(At) g∗ = gK gK∗ P(State) 2 incAtΣ(X) AtΣ(X) = gA TPL(AtΣ(X)) gA∗ ≺ ≺ = ≺ g P(AX ) 128 5 Gleichungslogik Highlights Eine Signatur Σ besteht aus Operation(ssymbol)en der Form f : n → 1 mit n ∈ N. Induktive Definition der Menge TΣ(X) der Σ-Terme über X: • X ⊆ TΣ(X), • Für alle f : n → 1 ∈ Σ und t ∈ TΣ(X)n, f t ∈ TΣ(X). Strukturelle Induktion über T ⊆ TΣ(X)+ = Noethersche Induktion bzgl. der Teiltermrelation auf T Eine Σ-Algebra A besteht aus einer – oft ebenfalls mit A bezeichneten – Trägermenge und für alle f : n → 1 ∈ Σ einer Funktion f A : An → A. Als Σ-Algebra interpretiert TΣ(X) f wie folgt: f TΣ(X)(t1, . . . , tn) =def f (t1, . . . , tn). Für Σ-Algebren A und B heißt eine Funktion h : A → B Σ-Homomorphismus, wenn für alle f ∈ Σ h ◦ f A = f B ◦ h gilt. Bijektive Σ-Homomorphismen heißen Σ-Isomorphismen. 129 5 Gleichungslogik Die Termfortsetzung g ∗ : TΣ(X) → A einer Belegung g : X → A von X in einer Σ-Algebra A ist wie folgt induktiv definiert: • Für alle x ∈ X, g ∗(x) = g(x). • Für alle f : n → 1 und t1, . . . , tn ∈ TΣ(X), g ∗(f (t1, . . . , tn)) = f A(g ∗(t1), . . . , g ∗(tn)). g ∗ ist der einzige Σ-Homomorphismus von TΣ(X) nach A mit g ∗ ◦ incX = g. Folglich ist die Einschränkung fold A : TΣ → A von g ∗ auf Grundterme der einzige ΣHomomorphismus von TΣ(X) nach A Belegungen durch Terme heißen Substitutionen. Substitutionslemma (Lemma 5.3): Für alle Σ-Algebren A, Belegungen g : X → A und Substitutionen σ : X → TΣ(X) gilt (g ∗ ◦ σ)∗ = g ∗ ◦ σ ∗. Sei t1, . . . , tn, t01, . . . , t0n, t, t0 ∈ TΣ(X). Die Formel ϕ = (t1 ≡ t01 ∧ · · · ∧ tn ≡ t0n ⇒ t ≡ t0) heißt (bedingte) Σ-Gleichung. 130 5 Gleichungslogik Eine Σ-Algebra A erfüllt ϕ, falls für alle Belegungen g : X → A mit g ∗(ti) = g ∗(t0i) für alle 1 ≤ i ≤ n auch g ∗(t) = g ∗(t0) gilt. Der Gleichungskalkül GK besteht aus den fünf o.g. Regeln. Die Relation ≡E =def {(t, t0) ∈ TΣ(X)2 | E `GK t ≡ t0} heißt E-Äquivalenz. Korrektheit von GK (Satz 5.6): Jede Σ-Algebra, die E erfüllt, erfüllt auch alle mit GK aus E ableitbaren Gleichungen. Zweites Verfahren zur Normalformkonstruktion: Sei NF ⊆ TΣ(X) die Trägermenge einer Σ-Algebra, incX die Inklusion von X in NF und für alle f : n → 1 ∈ Σ und t ∈ NF n gelte f NF (t) ≡E f t. Dann erfüllt jede Σ-Algebra, die E erfüllt, auch t ≡ inc∗X (t) für alle t ∈ TΣ(X), d.h. inc∗X (t) liefert eine Normalform von t. Vollständigkeit von GK (Satz 5.12): Jede unbedingte Σ-Gleichung, die in allen ΣAlgebren, die E erfüllen, gültig ist, gehört zur E-Äquivalenz. 131 6 Aussagenlogik (propositional logic) Aussagenlogische Formeln (propositional formulas) sind logische Verknüpfungen elementarer Sachverhalte, die durch eine Menge At von Atomen gegeben sind. Die Symbole der Signatur AL (siehe Beispiel 5.1) heißen aussagenlogische Operationen. Ein AL-Term über At heißt aussagenlogische Formel über At. Ein AL-Term der Form ¬ϕ, ϕ ∧ ψ, ϕ ∨ ψ oder ϕ ⇒ ψ heißt Negation, Disjunktion, Konjunktion bzw. Implikation. ϕ und ψ heißen Faktoren von ϕ ∧ ψ und Summanden von ϕ ∨ ψ. prem(ϕ ⇒ ψ) =def ϕ heißt Prämisse von ϕ ⇒ ψ. conc(ϕ ⇒ ψ) =def ψ heißt Konklusion von ϕ ⇒ ψ. Um Klammern zu sparen, vereinbaren wir die folgenden (üblichen) + Prioritäten aussagenlogischen Operationen: Negation vor Konjunktion, Konjunktion vor Disjunktion, Disjunktion vor Implikation. In den verlinkten Ableitungsbeispielen steht false für ⊥, true für > und – wie in Java – das Ausrufezeichen für ¬. 132 6 Aussagenlogik Sei g : At → 2. Den Wahrheitswert einer aussagenlogischen Formel ϕ unter g erhält man durch Anwendung der Extension g ∗ : TAL(At) → 2 von g auf ϕ. incAt g = TAL(At) g∗ ≺ At 2 g ∗ wertet aussagenlogische Formeln in der Bitalgebra aus. Sei ϕ, ψ ∈ TAL(At) und Φ ⊆ TAL(At). g : At → 2 erfüllt ϕ oder ist ein Modell von ϕ, geschrieben: g |= ϕ, wenn g ∗(ϕ) = 1 gilt. Darauf aufbauend sind Erfüllbarkeit, Allgemeingültigkeit, Folgerung und Äquivalenz aussagenlogischer Formeln wie in Kapitel 2 definiert, wobei der zugrundeliegende semantische Bereich D durch die Menge 2At gegeben ist. 133 6 Aussagenlogik Aufgaben Sei ϕ, ψ, ϑ ∈ TAL(At). Zeigen Sie: • ϕ ist genau dann allgemeingültig, wenn ϕ aus > folgt. (1) • ϕ ist genau dann unerfüllbar, wenn ⊥ aus ϕ folgt. (2) • Folgerungssatz: ϕ ∧ ψ |= ϑ gilt genau dann, wenn ϕ |= (ψ ⇒ ϑ) gilt. (3) • Für alle Substitutionen σ : At → TAL(At) gilt: Ist ϕσ erfüllbar, dann ist auch ϕ erfüllbar. (4) • ϕ und ψ sind äquivalent, wenn die AL-Gleichung ϕ ≡ ψ in der Bitalgebra gültig ist (siehe Abschnitt 5.1). o Aus (2) und (3) folgt sofort der Unerfüllbarkeitssatz: Sei ϕ, ψ ∈ TAL(At). ψ folgt genau dann aus ϕ, wenn ϕ ∧ ¬ψ unerfüllbar ist. (5) 134 6 Aussagenlogik Aufgabe Zeigen Sie, dass ϕ und ψ genau dann äquivalent sind, wenn ψ aus ϕ und ϕ aus ψ folgt. o Aufgabe Sei x, y, z ∈ At. Zeigen Sie, dass die Bitalgebra folgende AL-Gleichungen erfüllt: x ∨ (y ∨ z) ≡ (x ∨ y) ∨ z x ∧ (y ∧ z) ≡ (x ∧ y) ∧ z (Assoziativität) x∨y ≡y∨x x∧y ≡y∧x (Kommutativität) x∨x≡x x∧x≡x (Idempotenz) o Wegen der Gültigkeit dieser sechs Gleichungen in der Bitalgebra können die Operationen ∨ und ∧ ohne innere Klammerung auf mehr als zwei Formeln wie z.B. hier: ϕ ∨ ψ ∨ ϑ W oder auf eine endliche Formelmenge wie z.B hier: {ϕ, ψ, ϑ} angewendet werden. W V W V ∅ wird mit ⊥ identifiziert, ∅ mit > und {ϕ} und {ϕ} mit ϕ. 135 6 Aussagenlogik Weitere in der Bitalgebra gültige (bedingte) AL-Gleichungen x∨⊥≡x x∧>≡x (Neutralität) x∨>≡> x∧⊥≡⊥ (Annihilation oder Extremalgesetze) x ∨ (x ∧ y) ≡ x x ∧ (x ∨ y) ≡ x (Absorption) x ∨ (y ∧ z) ≡ (x ∨ y) ∧ (x ∨ z) x ∧ (y ∨ z) ≡ (x ∧ y) ∨ (x ∧ z) (Distributivität) x ∨ ¬x ≡ > x ∧ ¬x ≡ ⊥ (Auslöschung oder Komplementarität) (x ∨ z ≡ y ∨ z) ∧ (x ∧ z ≡ y ∧ z) ⇒ x ≡ y ¬⊥ ≡ > ¬> ≡ ⊥ ¬(x ∧ y) ≡ ¬x ∨ ¬y (Kürzungsregel) ¬¬x ≡ x ¬(x ∨ y) ≡ ¬x ∧ ¬y ¬(x ⇒ y) ≡ x ∧ ¬y x ⇒ y ≡ ¬x ∨ y (negAL) Die Menge der Assoziativitäts-, Kommutativitäts-, Absorptions-, Distributivitäts- und Auslöschungsgleichungen bezeichnen wir fortan mit BE . Eine AL-Algebra, die BE erfüllt, heißt Boolesche Algebra. 136 6 Aussagenlogik Aufgabe Zeigen Sie, dass jede Potenzmenge eine Boolesche Algebra ist. o Demnach ist die Bitalgebra eine Boolesche Algebra und ϕ ∈ TAL(At) nach Satz 5.6 allgemeingültig bzw. unerfüllbar, wenn ϕ ≡BE > bzw. ϕ ≡BE ⊥ gilt. Idempotenz, Neutralität, Annihilation und alle Gleichungen von negAL (außer denen mit ⇒) lassen sich aus BE ableiten, d.h. sie gehören zur BE -Äquivalenz. Umgekehrt gelten alle aus BE ableitbaren Gleichungen nach Satz 5.6 in jeder Booleschen Algebra. Laut Satz 6.2 (s.u.) gilt sogar jede in der Bitalgebra gültige Gleichung auch in jeder anderen Booleschen Algebra, was nach Satz 5.12 impliziert, dass alle diese Gleichungen zur BE -Äquivalenz gehören. Letztere ist also nicht nur in der semantischen Äquivalenz ≡2 enthalten, sie stimmt sogar mit ≡2 überein! Aufgabe Die folgenden AL-Gleichungen ϕ ≡ ψ werden häufig in Beweisen mathematischer Sätze verwendet, indem ψ an Stelle der zu beweisenden Aussage ϕ gezeigt wird: Sei x, y, z, x1, . . . , xn ∈ At. 137 6 Aussagenlogik x ≡ ¬x ⇒ ⊥ x ⇒ y ≡ ¬y ⇒ ¬x x ⇒ (y ⇒ z) ≡ (x ∧ y) ⇒ z (Ableitung eines Widerspruchs) (Kontraposition) (Dekaskadierung) x ≡ (x1 ⇒ x) ∧ · · · ∧ (xn ⇒ x) ∧ (¬x1 ∧ · · · ∧ ¬xn ⇒ x) (Fallunterscheidung) Die Dekaskadierung ähnelt der Isomorphie (6) im Abschnitt Isomorphien auf, wenn man A, B, C durch Formeln, × durch ∧ und → durch ⇒ ersetzt. Ersetzt man noch + durch ∨, dann werden auch die Kommutativitäts-, Assoziativitätsund Distributivitätsgesetze im Abschnitt Isomorphien zu gleichnamigen aussagenlogischen Äquivalenzen (s.o). Diese Analogie zwischen Mengenverknüpfungen einerseits und logischen Operationen andererseits ist unter dem Namen + Curry–Howard Korrespondenz bekannt. o 6.1 Normalformen Eine aussagenlogische Formel heißt Negationsnormalform (NNF), wenn ⇒ in ihr nicht vorkommt und ¬ nur direkt vor Atomen. 138 6 Aussagenlogik Atome nennt man auch positive Literale, während Formeln ¬ϕ mit ϕ ∈ At negative Literale genannt werden. Für alle x ∈ At heißen x und ¬x komplementär zueinander. Eine Disjunktion von Konjunktionen paarweise verschiedener Literale heißt disjunktive Normalform (DNF). Eine Konjunktion von Disjunktionen paarweise verschiedener Literale heißt konjunktive Normalform (KNF). Eine Disjunktion oder Konjunktion von Literalen ϕ1, . . . , ϕn heißt geschlossen, wenn es 1 ≤ i, j ≤ n gibt mit ϕi = ¬ϕj . Andernfalls heißt sie offen. Eine KNF ϕ ist genau dann allgemeingültig, wenn alle ihre Faktoren geschlossen sind. (6) Beweis. Da ϕ eine KNF ist, gibt es Literale ϕ11, . . . , ϕ1n1 , . . . , ϕm1, . . . , ϕmnm mit ϕ = ni m _ ^ ϕij . i=1 j=1 0 Sei e = (x ∨ ¬x ≡ >) und e = (x ∧ > ≡ x). Ist dann gilt Wni j=1 ϕij für alle 1 ≤ i ≤ m geschlossen, 139 6 Aussagenlogik ϕ ≡e > ∧ · · · ∧ > ≡e0 >. Da die Bitalgebra e und e0 erfüllt, erfüllt sie nach Satz 5.6 auch die Gleichung ϕ ≡ >. Wni Sei umgekehrt ϕ allgemeingültig. Gäbe es 1 ≤ i ≤ m derart, dass ψ = j=1 ϕij offen ist, dann würde g : At → 2 mit g −1(0) = {x ∈ At | ∃ 1 ≤ j ≤ ni : x = ϕij } ψ, also auch ϕ nicht erfüllen. Beweis von g ∗(ψ) = 0. Sei 1 ≤ j ≤ ni. Für alle Atome x, die in ϕij vorkommen, gilt g ∗(x) = g(x) = 0. Für alle Literale ¬z, die in ψ vorkommen, gilt g ∗(¬z) = 1 − g ∗ (z) = 1 − g(z) = 1 − 0 = 1, o weil ψ offen ist und deshalb z nicht zu ψ gehört. Eine DNF ϕ ist genau dann unerfüllbar, wenn alle ihre Summanden geschlossen sind. (7) Beweis. Da ϕ eine DNF ist, gibt es Literale ϕ11, . . . , ϕ1n1 , . . . , ϕm1, . . . , ϕmnm mit ni m ^ _ ϕ = ϕij . i=1 j=1 Sei e = (x ∧ ¬x ≡ ⊥) und e0 = (x ∨ ⊥ ≡ x). Ist ist, dann gilt Vni j=1 ϕij für alle 1 ≤ i ≤ m geschlossen 140 6 Aussagenlogik ϕ ≡e ⊥ ∨ · · · ∨ ⊥ ≡e0 ⊥. V ni Sei umgekehrt ϕ unerfüllbar. Gäbe es 1 ≤ i ≤ m derart, dass ψ = j=1 ϕij offen ist, dann würde g : At → 2 mit g −1(1) = {x ∈ At | ∃ 1 ≤ j ≤ ni : x = ϕij } ψ, also auch ϕ erfüllen. Beweis von g ∗(ψ) = 1. Sei 1 ≤ j ≤ ni. Für alle Atome x, die in ϕij vorkommen, gilt g ∗(x) = g(x) = 1. Für alle Literale ¬z, die in ψ vorkommen, gilt g ∗(¬z) = 1 − g ∗ (z) = 1 − g(z) = 1 − 1 = 0, weil ψ offen ist und deshalb z nicht zu ψ gehört. o > sowie jede Implikation ϕ ⇒ ψ mit folgenden Eigenschaften heißt Gentzenformel über At (englisch: sequent): • ϕ = > oder ϕ ist eine Konjunktion paarweise veschiedener Atome, • ψ = ⊥ oder ψ ist eine Disjunktion paarweise veschiedener Atome. Bei einer Gentzenformel der Form > ⇒ ϕ wird > ⇒ oftmals weggelassen. Eine Gentzenformel heißt minimal, wenn in ihr kein Atom zweimal vorkommt. 141 6 Aussagenlogik Aufgabe Jede Gentzenformel ist äquivalent zu > oder einer minimalen Gentzenformel. o Eine Konjunktion von Gentzenformeln mit Atomen aus X heißt implikative Normalform (INF) über X. Zwei Gentzenformeln, die sich nur in der Anordnung der Atome der Prämisse oder der Konklusion voneinander unterscheiden, werden als gleich angesehen. Deshalb werden sie manchmal als Implikationen zwischen Mengen notiert: {x1, . . . , xm} ⇒ {y1, . . . , yn} steht dann für (x1 ∧ · · · ∧ xm) ⇒ (y1 ∨ · · · ∨ yn). Der Vorteil von Gentzenformeln ist ihre “Natürlichkeit” im Sinne der leichten Erfassbarkeit der konkrete Aussage hinter den Formeln. Ebenso entsprechen Anwendungen der Schnittregel (s.u.), aus denen Beweise der Allgemeingültigkeit oder Erfüllbarbarkeit von Gentzenformeln bestehen, eher natürlichen Schlüssen als es z.B. Anwendungen von Gleichungen tun. 142 6 Aussagenlogik Beispiel + Schrittweise Transformation der DNF (¬x ∧ y ∧ z) ∨ (x ∧ ¬y ∧ z) ∨ (x ∧ y ∧ ¬z) in eine INF. Satz 6.1 Sei ϕ ∈ TAL(At), ψ eine NNF und ϑ eine KNF. • ϕ ist zu einer NNF äquivalent. (8) • ψ ist zu einer DNF äquivalent. (9) • ψ ist zu einer KNF äquivalent. (10) • ϑ ist zu einer INF äquivalent. (11) Beweis von (8). Da jede Teilformel ¬ϕ einer negAL-irreduziblen Formel ein Literal ist, sind alle negAL-irreduziblen Formeln Negationsnormalformen. Ein Gewicht einer Formel ϕ, das Bedingung (10) in Kapitel 5 erfüllt, ist die Summe der Symbole aller Teilformeln ¬ψ oder ψ ⇒ ϑ von ϕ. Damit ist (8) nach dem ersten Verfahren, äquivalente Normalformen zu berechnen, bewiesen. 143 6 Aussagenlogik Zur Anwendung des zweiten Verfahrens, äquivalente Normalformen zu berechnen, definieren wir NF als die Menge aller Negationsnormalformen und interpretieren Σ in NF wie folgt: Für alle c ∈ {⊥, >}, ⊗ ∈ {∨, ∧}, ϕ, ψ ∈ NF und x ∈ At, cNF = c, ϕ ⊗NF ψ = ϕ ⊗ ψ, ϕ ⇒NF ψ = ¬NF (ϕ) ∨ ψ, ¬NF (⊥) = >, ¬NF (>) = ⊥, ¬NF (x) = ¬x, ¬NF (¬ϕ) = ϕ, ¬NF (ϕ ∨ ψ) ¬NF (ϕ ∧ ψ) = ¬NF (ϕ) ∨ ¬NF (ψ), = ¬NF (ϕ) ∧ ¬NF (ψ), ¬NF (ϕ ⇒ ψ) = ϕ ∧ ¬NF (ψ). Zunächst ist zu zeigen, dass ¬NF induktiv definiert ist. Das folgt sofort aus der induktiven Definition von NF als kleinste Menge aussagenlogischer Formeln mit folgenden Eigenschaften: 144 6 Aussagenlogik • x ∈ At ⇒ x, ¬x ∈ T , • ⊥, > ∈ T , • ϕ, ψ ∈ T ⇒ ϕ ∨ ψ, ϕ ∧ ψ ∈ T . Zu zeigen bleibt f NF (t) ≡negAL f t für alle f : n → 1 ∈ AL und t ∈ NF n. Aufgabe Zeigen Sie das durch strukturelle Induktion über NF . Durch Anwendung der Auswertungsfunktion nnf =def id∗At : TAL(At) → NF auf eine aussagenlogische Formel lässt sich eine äquivalente NNF konstruieren. Aufgabe Zeigen Sie (9) und (10) mit dem zweiten Verfahren, äquivalente Normalformen zu berechnen. Folgen Sie dem Vorgehen in Beispiel 5.9 oder im Beweis von (8). Beweis von (11). Sei ϑ eine KNF. Für alle Faktoren d von ϑ definieren wir: neg(d) = {x ∈ At | ¬x kommt in d vor} = {x1, . . . , xm}, pos(d) = {x ∈ At | x kommt in d vor} = {y1, . . . , yn}, 145 6 Aussagenlogik ⊥ x ∧ ··· ∧ x ⇒ ⊥ 1 m gen(d) = y1 ∨ · · · ∨ yn x ∧ ··· ∧ x ⇒ y ∨ ··· ∨ y 1 m 1 n falls neg(d) = ∅ = pos(d), falls neg(d) 6= ∅, pos(d) = ∅, falls neg(d) = ∅, pos(d) 6= ∅, sonst. Kurz gesagt, die negativen Literale von d bilden, konjunktiv verknüpft, die Prämisse der Gentzenformel gen(d), während die Atome der positiven Literale von d, disjunktiv verknüpft, die Konklusion von gen(d) bilden. Aufgabe Zeigen Sie, dass ϑ zu inf (ϑ) äquivalent ist, wobei ^ {gen(d) | d ist Faktor von ϑ}. inf (ϑ) =def o Zusammengefasst erhält man eine zu einer aussagenlogischen Formel ϕ äquivalente • NNF durch Anwendung der Funktion nnf auf ϕ; • DNF und KNF durch Anwendung von in der Bitalgebra gültigen Gleichungen auf nnf (ϕ); • INF durch Anwendung der Funktion inf auf die KNF. 146 6 Aussagenlogik Sei die Menge At der Atome endlich. Dann können wir ihre Elemente anordnen: At = {x1, . . . , xn}. Folglich gibt es für jede aussagenlogische Formel ϕ über At eine eindeutige Normalform, und zwar in der Menge aller maximalen DNFs: Eine DNF ϕ ist eine maximale DNF (MDNF), wenn jeder Summand von ϕ die Form f1(x1) ∧ · · · ∧ fn(xn) hat, wobei für alle 1 ≤ i ≤ n und x ∈ At fi(x) ∈ {x, ¬x} gilt. Mit Hilfe von Neutralitäts-, Komplementaritäts-, Distributivitäts- und Kommutativitätsgleichungen lässt sich jede DNF in eine BE -äquivalente MDNF überführen. Deren Eindeutigkeit liefert das folgende – bereits oben erwähnte – Theorem: Satz 6.2 Jede in der Bitalgebra gültige unbedingte Σ-Gleichung ist in jeder Booleschen Algebra gültig. Beweis. Nach Satz 5.6 und Satz 5.12 gilt eine AL-Gleichung t ≡ t0 genau dann in allen Booleschen Algebren, wenn sie zur BE -Äquivalenz gehört. Es genügt also Folgendes zu zeigen: Für alle t, t0 ∈ TAL(At), t ≡2 t0 ⇒ t ≡BE t0. (12) 147 6 Aussagenlogik Wir zeigen (12) unter der Annahme, dass für alle MDNFs u, u0 Folgendes gilt: u ≡2 u0 ⇒ u = u0. (13) Sei also t ≡2 t0. Dann erhalten wir zwei MDNFs u, u0 mit t ≡BE u und t0 ≡BE u0. Nach Satz 5.6 folgt t ≡2 u und t0 ≡2 u0, also auch u ≡2 u0 und damit u = u0 wegen (13). Folglich sind t und t0 BE -äquivalent, womit (12) bewiesen ist. Den Beweis von (13) führen wir durch Kontraposition: Seien u und u0 zwei unterschiedliche MDNFs. Dann hat u einen Summanden, den u0 nicht hat (Fall 1), oder u0 hat einen Summanden, den u nicht hat (Fall 2). Sei ϕ = f1(x1) ∧ · · · ∧ fn(xn) dieser Faktor und g : At → 2 definiert durch g −1(1) = {x ∈ At | ∃ 1 ≤ i ≤ n : fi = idAt}. Im Fall 1 gilt g ∗(u) = 1 und g ∗(u0) = 0. Im Fall 2 gilt g ∗(u) = 0 und g ∗(u0) = 1. In beiden Fällen folgt g ∗(u) 6= g ∗(u0), also u 6≡2 u0. o Aufgabe Zeigen Sie unter Verwendung von (13) und Satz 5.6, dass TAL(At) und P(At) AL-isomorph sind. o 148 6 Aussagenlogik Zur Größe von Normalformen Die mit negAL gebildete NNF von ϕ besteht aus höchstens zweimal so vielen Symbolen wie ϕ. Bei der Transformation einer NNF zur DNF oder KNF mit Hilfe von Distributivitätsgleichungen werden Teilformeln verdoppelt. Finden solche Verdopplungen auf mehreren Ebenen der Baumdarstellung von ϕ statt, dann werden sie bis zu n-mal geschachtelt, wobei n die Höhe (maximale Pfadlänge) des Baumes ist. Die DNF bzw. KNF von ϕ besteht daher aus bis zu 2n Symbolen. Aufgabe Zeigen Sie, dass es genau 3|At| + 1 minimale Gentzenformeln gibt. o 6.2 Schnittkalkül Der aussagenlogische Schnittkalkül ASK besteht aus zwei Regeln: Einführungsregel Φ`ϕ ϕ ∈ Φ ⊆ TAL(At) 149 6 Aussagenlogik Aussagenlogische Schnittregel Φ ` ϕ ⇒ ψ ∨ x, Φ ` x ∧ ϕ0 ⇒ ψ 0 Φ ` ϕ ∧ ϕ0 ⇒ ψ ∨ ψ 0 ϕ, ϕ0, ψ, ψ 0 ∈ TAL(At), x ∈ At Jede zur Gentzenformel des Sukzedenten der Schnittregel äquivalente Gentzenformel heißt Resolvente der beiden Gentzenformeln des Antezedenten. Letztere haben ein gemeinsames Atom x, das wegen der Kommutativität von ∨ bzw. ∧ nicht notwendig am Ende bzw. Anfang steht. Eine ASK -Widerlegung einer Menge Φ von Gentzenformeln ist eine ASK -Ableitung von Φ ` ⊥. Beispiel Schnittwiderlegung der Gentzenformelmenge Φ = {ϕ1, ϕ2, ϕ3, ϕ4} mit ϕ1 ϕ2 ϕ3 ϕ4 = = = = > ⇒ x ∨ y ∨ z, x ⇒ y ∨ z, z ⇒ y, y ⇒ ⊥. 150 Φ Φ Φ Φ Φ Φ Φ ` ` ` ` ` ` ` >⇒x∨y∨z y∨z >⇒y∨z z⇒y >⇒y y⇒⊥ ⊥ Einführung von ϕ1 Einführung von ϕ2 Resolvente von ϕ1 und ϕ2 Einführung von ϕ3 Resolvente von > ⇒ y ∨ z und ϕ3 Einführung von ϕ4 Resolvente von > ⇒ y und ϕ4 o Satz 6.3 (Korrektheit von ASK -Ableitungen) Sei Φ eine endliche Menge von Gentzenformeln. (i) Aus Φ `ASK ϕ folgt Φ |= ϕ. (ii) Aus Φ `ASK ⊥ folgt, dass Φ unerfüllbar ist. Beweis von (i). Nach Satz 4.1 (iii) gilt die Behauptung, wenn die Menge P aller Paare (Φ, ϕ) einer Menge Φ von Gentzenformeln und einer einzelnen Gentzenformel ϕ mit Φ |= ϕ FASK -abgeschlossen ist (siehe Abschnitt 4.4), wenn also Folgendes gilt: Aus ϕ ∈ Φ folgt Φ |= ϕ, Φ |= ϕ ⇒ ψ ∨ x und Φ |= x ∧ ϕ0 ⇒ ψ 0 folgt Φ |= ϕ ∧ ϕ0 ⇒ ψ ∨ ψ 0. (14) (15) 151 6 Aussagenlogik (14) gilt, weil jedes Modell einer Formelmenge ein Modell jedes ihrer Elemente ist. Es gelte also: Φ |= ϕ ⇒ ψ ∨ x und Φ |= x ∧ ϕ0 ⇒ ψ 0, g : At → 2 ist ein Modell von Φ, g ist ein Modell von ϕ ∧ ϕ0. (16) (17) (18) Zu zeigen ist: g ist ein Modell von ϕ ∧ ϕ0. (19) Beweis von (19). Fall 1: g(x) = 0. Wegen (18) ist g ein Modell von ϕ. Wegen (16) und (17) ist g ein Modell von ϕ ⇒ ψ ∨ x. Also ist g ein Modell von ψ ∨ x. Daraus folgt (19): g ∗(ψ ∨ ψ 0) = g ∗(ψ) ∨2 g ∗(ψ 0) = g ∗(ψ) ∨2 0 ∨2 g ∗(ψ 0) = g ∗(ψ) ∨2 g(x) ∨2 g ∗(ψ 0) = g ∗(ψ ∨ x) ∨2 g ∗(ψ 0) = 1 ∨2 g ∗(ψ 0) = 1. Fall 2: g(x) = 1. Wegen (18) ist g ein Modell von ϕ0. Wegen (16) und (17) ist g ein Modell von x ∧ ϕ0 ⇒ ψ 0. Also ist g ein Modell von ψ 0. Daraus folgt (19): g ∗(ψ ∨ ψ 0) = g ∗(ψ) ∨2 g ∗(ψ 0) = g ∗(ψ) ∨2 1 = 1. 152 6 Aussagenlogik Beweis von (ii). Sei Φ `ASK ⊥. Aus (i) folgt Φ |= ⊥, also ist Φ wegen (2) unerfüllbar. o Aufgabe Zeigen Sie, dass eine Menge von Gentzenformeln ohne ⊥ erfüllbar ist, wenn die Schnittregel auf keine der Formeln von Φ anwendbar ist. V Geben Sie dazu eine Belegung g ∈ 2At mit g ∗( Φ) = 1 an oder schließen Sie die Behauptung aus folgendem Satz: Satz 6.4 (Vollständigkeit von ASK -Widerlegungen) Sei Φ eine unerfüllbare endliche Menge von Gentzenformeln. Dann gilt Φ `ASK ⊥. Beweis. Wir zeigen Φ `ASK ⊥ durch Induktion über die Anzahl n der Atome von Φ. Im Fall n = 0 ist Φ = {⊥}. Sei x ein in Φ vorkommendes Atom. Da Φ eine unerfüllbar ist, sind wegen (4) auch Φ⊥ = {ϕ{⊥/x} | ϕ ∈ Φ, ϕ{⊥/x} 6≡2 >} und Φ> = {ϕ{>/x} | ϕ ∈ Φ, ϕ{>/x} ≡ 6 2 >} unerfüllbar. Da Φ⊥ und Φ> ein Atom weniger enthalten als Φ, gelten Φ⊥ `ASK ⊥ und Φ> `ASK ⊥ nach Induktionsvoraussetzung. 153 6 Aussagenlogik Sei nx(Φ) die Mengen aller Gentzenformeln von Φ, die x nicht enthalten. Wie man leicht sieht, lässt sich Φ⊥ bzw. Φ> wie folgt darstellen: Φ⊥ = {ϑ ⇒ ϑ0 | ϑ ⇒ ϑ0 ∨ x ∈ Φ} ∪ nx(Φ), (20) Φ> = {ϑ ⇒ ϑ0 | x ∧ ϑ ⇒ ϑ0 ∈ Φ} ∪ nx(Φ). (21) Aus (20) und Φ⊥ `ASK ⊥ folgt Φ `ASK ⊥ oder Φ `ASK > ⇒ x (siehe folgende Aufgabe). Analog folgt Φ `ASK ⊥ oder Φ `ASK x ⇒ ⊥ aus (21) und Φ> `ASK ⊥. Zusammengefasst gilt also Φ `ASK ⊥ oder sowohl Φ `ASK > ⇒ x als auch Φ `ASK x ⇒ ⊥. Da ⊥ die Resolvente von > ⇒ x und x ⇒ ⊥ ist, ist ⊥ auch im zweiten Fall aus Φ ASK -ableitbar. o Aufgabe Sei Φ⊥ `ASK ϑ ⇒ ϑ0. Zeigen Sie durch Induktion über die Anzahl der Schnittregelanwendungen einer kürzesten Ableitung von Φ⊥ ` ϑ ⇒ ϑ0 und unter Verwendung von (20), dass Φ ` ϑ ⇒ ϑ0 oder Φ ` ϑ ⇒ ϑ0 ∨ x ASK -ableitbar ist. o Die Frage, ob eine endliche Menge Φ von Gentzenformeln unerfüllbar ist. lässt sich mit V Hilfe von (7) (siehe Abschnitt 6.1) entscheiden: Man bilde die DNF von Φ und prüfe, ob alle ihre Summanden geschlossen sind. Einen anderen Algorithmus, der die Unerfüllbarkeit entscheidet, erhält man wie folgt: 154 6 Aussagenlogik Für jede ASK -Ableitung (Φ1 ` ϕ1, . . . , Φn ` ϕn) gilt offenbar Φ1 = Φi für alle 1 < i ≤ n. Darüberhinaus gibt es nur endlich viele ASK -Ableitungen (Φ1 ` ϕ1, . . . , Φn ` ϕn), wenn Φ1 endlich ist. Um zu zeigen, dass Φ unerfüllbar ist, konstruiert man alle diese Ableitungen. Befindet sich darunter eine mit ϕn = ⊥, dann gilt Φ `ASK ⊥, und wir schließen aus Satz 6.3 (ii), dass Φ unerfüllbar ist. Andernfalls gilt Φ 6`ASK ⊥, und Satz 6.4 impliziert, dass Φ erfüllbar ist. 6.3 Knotenmarkierte Bäume Während mit der Schnittregel INFs transformiert werden, die aus KNFs hervorgehen, werden mit den unten eingeführten Tableauregeln NNFs in Baumdarstellungen (Tableaus) ihrer DNFs überführt. Die Summanden einer DNF entsprechen den Pfaden in der Baumdarstellung. Demnach folgt aus (7), dass eine NNF genau dann unerfüllbar ist, wenn das Tableau ihrer DNF aus geschlossenen Pfaden besteht. Bei der mathematischen Darstellung eines Baumes muss unterschieden werden zwischen seinen Knoten und deren Markierung, die für mehrere Knoten übereinstimmen kann. 155 6 Aussagenlogik Sei L eine Menge von Markierungen (labels). Eine Funktion t : N∗ → 1 + L heißt Lmarkierter Baum, wenn t() ∈ L und für alle w ∈ N∗ und n ∈ N Folgendes gilt: w(n + 1) ∈ L ⇒ wn ∈ L, wn ∈ L ⇒ w ∈ L. (22) (23) w ∈ N∗ heißt Knoten (node) von t, wenn t(w) zu L gehört. heißt Wurzel von t. Die Menge dom(t) =def {w ∈ N∗ | t(w) ∈ L} heißt Domäne von t. t ist endlich, wenn dom(t) endlich ist. Beispiel einer Baumdomäne: Jedes Element von dom(t) identifiziert eindeutig einen Knoten von t. (22) drückt aus, dass jeder Knoten außer der Wurzel einen Vorgänger in t hat. (23) erlaubt die eindeutige Identifizierung von Geschwisterknoten. 156 6 Aussagenlogik Tree(L) bezeichnet die Menge aller L-markierten Bäume. Sei t ∈ Tree(L) und w ∈ N∗ mit t(w) ∈ L. t0 ∈ Tree(L) mit t0(v) = t(wv) für alle v ∈ N∗ heißt Unterbaum von t mit Wurzel w. Ist w ∈ N, dann ist t0 ein maximaler Unterbaum von t. w ∈ N∗ heißt Blatt von t, wenn für alle n > 0 t(wn) = ist. Die Präfixrelation ≤ auf N∗ ist wie folgt definiert: Für alle v, w ∈ N∗, v ≤ w ⇔def es gibt u ∈ N∗ mit vu = w, v < w ⇔def v ≤ w und v 6= w. Ist v ≤ w, dann heißt w von v aus erreichbar. Ist v < w, dann heißt v Vorgänger von w und w Nachfolger von v. leaves(t, w) bezeichnet die Menge aller von w aus erreichbaren Blätter von t. path(v, w) =def {u ∈ N∗ | v ≤ u ≤ w} heißt Pfad oder Weg von v nach w. ≤ überträgt sich auf Bäume wie folgt und heißt dort Subsumptionsrelation: Für alle L-markierten Bäume t und t0, t ≤ t0 ⇔def für alle w ∈ f −1(L), t(w) = t0(w). 157 6 Aussagenlogik 6.4 Tableaukalkül Ein (aussagenlogisches) Tableau ist ein endlicher Baum t, dessen Knoten mit aussagenlogischen Formeln markiert sind. t repräsentiert die aussagenlogische Formel _ ^ form(t) = { path(, w) | w ist ein Blatt von t}. Da die Summe der Längen aller Pfade eines Baums t i.d.R. größer ist als die Anzahl aller Knoten von t, ist die Darstellung einer aussagenlogischen Formel als Tableau platzsparender als die Formel selbst. Sei ϕ eine NNF. Eine Folge (t1, . . . , tn) von Tableaus heißt (aussagenlogische) TableauAbleitung von tn aus ϕ, wenn • t1 ein mit ϕ markiertes Blatt ist, • für alle 1 ≤ i < n ti+1 durch Anwendung einer Tableauregel (siehe unten) aus ti gebildet ist, • tn gesättigt (saturated) ist, d.h. auf tn ist keine Tableauregel anwendbar, m.a.W.: form(tn) ist eine DNF. 158 6 Aussagenlogik Enthält form(tn) eine geschlossene Konjunktion, dann heißt (t1, . . . , tn) Tableau-Widerlegung. Wir schreiben ϕ `T t, falls es eine Tableau-Ableitung von t aus ϕ gibt. Aussagenlogische Tableauregeln Sei t ein Tableau und w ein Knoten von t. Wir nennen ihn den Redex der jeweiligen Regelanwendung, die t in das neue Tableau t0 transformiert. • ∨-Regel Sei t(w) = ϕ ∨ ψ. Für alle u ∈ N∗, > falls u = w, ϕ falls u = v0 und v ∈ leaves(t, w), 0 t (u) =def ψ falls u = v1 und v ∈ leaves(t, w), t(u) sonst. • ∧-Regel Sei t(w) = ϕ ∧ ψ. Für alle u ∈ N∗, > falls u = w, ϕ falls u = v0 und v ∈ leaves(t, w), 0 t (u) =def ψ falls u = v00 und v ∈ leaves(t, w), t(u) sonst. 159 6 Aussagenlogik Anschaulich gesprochen, bildet die ∨- bzw. ∧-Regel t0 aus t, indem sie den Knoten w mit > markiert sowie ϕ und ψ parallel bzw. hintereinander an alle von w aus erreichbaren Blätter von t anhängt. Aufgabe Die Gleichungen von negAL legen weitere Tableauregeln nahe, die zusammen mit den vier obigen nicht nur NNFs, sondern beliebige aussagenlogische Formeln verarbeiten können. Wie lauten die zusätzlichen Regeln? Satz 6.5 (Korrektheit aussagenlogischer Tableau-Ableitungen) Sei ϕ `T t. (i) ϕ ≡2 form(t). (ii) Alle Summanden von form(t) sind geschlossen. Dann ist ϕ unerfüllbar. Beweis. (i): Sei (t1, . . . , tn) eine Tableau-Ableitung von t aus ϕ. Dann ist form(t1) = ϕ und tn = t. Es genügt also zu zeigen, dass für alle 1 ≤ i < n form(ti) und form(ti+1) in der Bitalgebra äquivalent sind. (19) 160 6 Aussagenlogik Aufgabe Zeigen Sie (19). (ii): Da form(t) eine DNF ist, folgt aus (7), dass form(t) unerfüllbar ist. Also ist wegen (i) auch ϕ unerfüllbar. o Satz 6.6 (Vollständigkeit aussagenlogischer Tableau-Widerlegungen) Eine NNF ϕ sei unerfüllbar. Dann gibt es ein Tableau t mit ϕ `T t und der Eigenschaft, dass form(t) keine offene Konjunktion von Literalen enthält. Beweis. Wiederholte Anwendungen der Tableauregeln führen von ϕ (als einknotigem Tableau t) zu einem gesättigten Tableau t, weil jede Regelanwendung die Knotenanzahl eines Tableaus zwar erhöht, die Gesamtzahl der Vorkommen von ∨ und ∧ jedoch verkleinert, so dass irgendwann ein Tableau ohne diese Symbole, also ein gesättigtes Tableau t, erreicht ist. Sei ϕ unerfüllbar. Aus Satz 6.5 (i) folgt, dass ϕ und t in der Bitalgebra äquivalent sind, womit sich die Unerfüllbarkeit von ϕ auf form(t) überträgt. Da t gesättigt und form(t) unerfüllbar ist, folgt aus (7), dass alle Summanden von form(t) geschlossen sind. o 161 6 Aussagenlogik Erfüllbarkeitstest für aussagenlogische NNFs Sei ϕ eine NNF. Wende Tableauregeln in beliebiger Reihenfolge auf ϕ an, bis ein gesättigtes Tableau t erreicht ist. Prüfe, ob form(t) eine offene Konjunktion von Literalen enthält. Wenn ja, ist form(t) – wegen (6) – erfüllbar. Wenn nein, ist form(t) – ebenfalls wegen (6) – unerfüllbar. Aus Satz 6.5 (i) folgt, dass sich die Erfüllbarkeit bzw. Unerfüllbarkeit von form(t) auf ϕ überträgt. Jede in form(t) enthaltene offene Konjunktion ϕ1 ∧· · ·∧ϕn von Literalen ( liefert eine Bele1 falls ϕi ∈ At, gung g, die form(t), also auch ϕ erfüllt: Sei 1 ≤ i ≤ n. Setze g(ϕi) = 0 sonst. Effizienter wird der Test, wenn man nicht erst im gesättigten Tableau nach offenen Konjunktionen sucht, sondern schon vorher Teiltableaus entfernt, deren Pfade komplementäre Literale enthalten. Dazu muss der Kalkül um folgende Regeln erweitert werden, die alle Unterbäume t0 von t durch ein Blatt mit der Markierung ⊥ ersetzen, sofern die Wurzel w von t0 mit einem Literal ϕ und ein Vorgänger von w in t mit dem zu ϕ komplementären Literal markiert ist: 162 6 Aussagenlogik • Atomregel Sei t(w) = ϕ ∈ At. Für alle u ∈ N∗, ⊥ falls u > w und t(u) = ¬ϕ, t0(u) =def falls es v > w gibt mit t(v) = ¬ϕ und u > v, t(u) sonst. • Literalregel Sei t(w) = ¬ϕ und ϕ ∈ At. Für alle u ∈ N∗, ⊥ falls u > w und t(u) = ϕ, t0(u) =def falls es v > w gibt mit t(v) = ϕ und u > v, t(u) sonst. Außerdem ist in der ∨- und der ∧-Regel die Menge leaves(t, w) der von w aus erreichbaren Blätter von t auf diejenigen zu beschränken, die nicht mit ⊥ markiert sind. Schließlich wird der Erfüllbarkeitstest für NNFs zu einem Erfüllbarkeitstest für beliebige aussagenlogische Formeln, wenn er die oben erwähnten, aus den Gleichungen von negAL gebildeten Tableauregeln mitverwendet. 163 6 Aussagenlogik Beispiele 1. Sei At = {x, y, z, x1, y1, z1, x2}. + Erfüllbarkeitstest der Formel (((x ∧ y) ∨ z) ∧ x1) ∨ y1 ∨ z1 ∨ ¬x2 Die Formel ist allgemeingültig, da das letzte Tableau der Ableitung kein mit false markiertes Blatt enthält. 2. Sei At = {x, y, z}. + Erfüllbarkeitstest der Formel (¬x ∧ (y ∨ x) ∧ (y ⇒ x)) ∨ (x ∧ ((¬x ∧ y) ∨ ¬y)) Aus den mit false markierten Blättern des letzten Tableaus der Ableitung ergibt sich, dass g ∈ 2At die Formel genau dann erfüllt, wenn g(x) = 1 und g(y) = 0 ist. 164 6 Aussagenlogik Highlights Signatur der Aussagenlogik: AL = {⊥, > : 0 → 1, ¬ : 1 → 1, ∨, ∧, ⇒: 2 → 1} Semantik der Aussagenlogik: AL-Algebra mit Trägermenge 2 = {0, 1} (“Bitalgebra”) und folgender Interpretation von AL: ⊥2 >2 ¬2 ∧2 ∨2 ⇒2 = = = = = = 0, 1, λb.1 − b, min, max, λ(b, c).max(1 − b, c) = χ(≤). ϕ, ψ ∈ TAL(X) sind äquivalent, wenn die AL-Gleichung ϕ ≡ ψ in der Bitalgebra gültig ist. g : At → 2 erfüllt ϕ oder ist ein Modell von ϕ, geschrieben: g |= ϕ, wenn g ∗(ϕ) = 1 gilt. 165 6 Aussagenlogik Unerfüllbarkeitssatz: ψ folgt genau dann aus ϕ, wenn ϕ ∧ ¬ψ unerfüllbar ist. Eine Boolesche Algebra ist eine AL-Algebra, die folgende AL-Gleichungen erfüllt: x ∨ (y ∨ z) ≡ (x ∨ y) ∨ z x∨y ≡y∨x x ∨ (x ∧ y) ≡ x x ∨ (y ∧ z) ≡ (x ∨ y) ∧ (x ∨ z) x ∨ ¬x ≡ > x ∧ (y ∧ z) ≡ (x ∧ y) ∧ z x∧y ≡y∧x x ∧ (x ∨ y) ≡ x x ∧ (y ∨ z) ≡ (x ∧ y) ∨ (x ∧ z) x ∧ ¬x ≡ ⊥ (Assoziativität) (Kommutativität) (Absorption) (Distributivität) (Auslöschung) Atome heißen auch positive Literale, Formeln ¬ϕ mit ϕ ∈ At negative Literale. Eine Disjunktion von Konjunktionen paarweise verschiedener Literale heißt disjunktive Normalform (DNF). Eine Konjunktion von Disjunktionen paarweise verschiedener Literale heißt konjunktive Normalform (KNF). 166 6 Aussagenlogik Satz 6.1 (9) und (10): Jede aussagenlogische Formel hat äquivalente DNFs und KNFs, wobei BE die Menge der obigen zehn Gleichungen ist. Eine Disjunktion oder Konjunktion von Literalen ϕ1, . . . , ϕn heißt geschlossen, wenn es 1 ≤ i, j ≤ n gibt mit ϕi = ¬ϕj . Eine KNF (DNF) ϕ ist genau dann allgemeingültig (unerfüllbar), wenn alle ihre Faktoren (Summanden) geschlossen sind. > sowie jede Implikation ϕ ⇒ ψ mit folgenden Eigenschaften heißt Gentzenformel über At (englisch: sequent): • ϕ = > oder ϕ ist eine Konjunktion paarweise verschiedener Atome, • ψ = ⊥ oder ψ ist eine Disjunktion paarweise verschiedener Atome. Eine Gentzenformel heißt minimal, wenn in ihr kein Atom zweimal vorkommt. Eine Konjunktion von Gentzenformeln heißt implikative Normalform (INF). Satz 6.1 (11): Jede aussagenlogische Formel hat eine BE -äquivalente INF. 167 6 Aussagenlogik Der aussagenlogische Schnittkalkül ASK besteht aus den in Abschnitt 6.2 angegebenen zwei Regeln. Die Gentzenformel des Sukzedenten der Schnittregel heißt Resolvente. Eine ASK -Widerlegung einer Menge Φ von Gentzenformeln ist eine ASK -Ableitung von Φ ` ⊥. Korrektheit und Vollständigkeit von ASK -Ableitungen bzw. -Widerlegungen (Sätze 6.3 und 6.4): Sei Φ endlich. Aus Φ `ASK ψ folgt Φ |= ψ. Φ `ASK ⊥ gilt genau dann, wenn Φ unerfüllbar ist. 168 7 Modallogik Während mit Aussagen- und Prädikatenlogik überall dasselbe gemeint ist, gibt es sowohl von der Syntax her als auch bzgl. der Semantik viele Modallogiken (siehe unten). Allen gemeinsam ist die Möglichkeit, Formeln in Abhängigkeit von verschiedenen Zuständen, Situationen, Welten, etc., auszuwerten. Die (Unterschiede zwischen den) Welten sind entweder in der Realität bereits vorhanden oder – und so wird Modallogik am häufigsten in der Informatik angewendet – werden im Rahmen eines Hardware- oder Softwareentwurfs entwickelt. Dann beschreiben, anschaulich gesprochen, verschiedene Zustände verschiedene Gedächtnisinhalte. Nehmen wir eine Zahltaste eines Handys, die je nachdem wie oft sie gedrückt wird, die Buchstaben A, B oder C anzeigt. Wie funktioniert das? Jeder Druck auf die Taste bringt das Handy in einen neuen Zustand. Die Gültigkeit elementarer Aussagen wie “A wird angezeigt” oder “B wird angezeigt” hängt vom aktuellen Zustand ab, der selbst vom Vorgängerzustand abhängt, usw. Deshalb wird die Bedeutung einer modallogischen Formel nicht nur von einer zustandsabhängigen Belegung der Atome bestimmt, sondern auch von einer Transitionsfunktion, die allen im jeweiligen System möglichen Zustandsübergänge definiert. 169 7 Modallogik Die hier behandelte Modallogik baut direkt auf der Aussagenlogik auf und erweitert diese um die einstelligen modalen Operationen 3 (diamond) und 2 (box), die es erlauben, Aussagen zu formulieren, deren Gültigkeit im gegenwärtigen Zustand von der Gültigkeit einer anderen Aussage in zukünftigen Situationen bestimmt wird. Syntax Sei ML = AL ∪ {2, 3 : 1 → 1}. Ein ML-Term über At heißt modallogische Formel über At. Semantik Die Bedeutung modallogischen Formeln hängt ab von einer Kripke-Struktur genannten Funktion K : State → (P(State) × P(At)), die jedem – manchmal auch “Welt” genannten – Zustand s ∈ State dessen direkten Folgezustände sowie die Atome zuordnet, die s erfüllt. 170 7 Modallogik Wegen Isomorphie (14) für n = 2 (siehe Kapitel 3) kann K geschrieben werden als Produktextension hδ, βi zweier Funktionen δ : State → P(State) und β : State → P(At). δ heißt auch Kripke-Rahmen oder Transitionsfunktion von K und bestimmt die Interpretation der modalen Operationen von ML, während β die Belegung gK (s.u.) der Atome in P(State) festlegt. Kripke-Strukturen und andere zustandsbasierte Modelle sind – im Gegensatz zu induktiv definierten Mengen – black-box-Modelle, weil der Aufbau ihrer einzelnen Elemente verborgen bleibt. Die Identität eines Zustands kann nur durch Beobachtung seines Verhaltens ermittelt werden, das hier durch β und δ bestimmt wird. An die Stelle der Bitalgebra mit Trägermenge 2, auf der wir die Semantik aussagenlogischer Formeln aufgebaut haben, tritt jetzt eine ML-Algebra mit Trägermenge P(State), die wir Pow (δ) nennen, weil die Interpretation der Signatur ML in dieser Algebra nicht nur von State, sondern auch von δ abhängt: 171 7 Modallogik Für alle S, S 0 ⊆ State, ⊥Pow (δ) = ∅, >Pow (δ) = State, ¬Pow (δ)(S) = State \ S, ∧Pow (δ)(S, S 0) = S ∩ S 0, ∨Pow (δ)(S, S 0) = S ∪ S 0, ⇒Pow (δ) (S, S 0) = (State \ S) ∪ S 0, 2Pow (δ)(S) = {s ∈ State | δ(s) ⊆ S}, 3Pow (δ)(S) = {s ∈ State | δ(s) ∩ S 6= ∅}. β bestimmt die Belegung gK : At → P(State), unter der modallogische Formeln in Pow (δ) – durch Anwendung der aus gK abgeleiteten Auswertungsfunktion gK∗ (siehe Kapitel 5) – ausgewertet werden: Für alle x ∈ At und s ∈ State, gK (x) =def {s ∈ State | x ∈ β(s)}. 172 7 Modallogik incAt = gK TML(At) gK∗ ≺ At P(State) Sei ϕ ∈ TML(At) und s ∈ State. Das Paar (ϕ, s) heißt Zustandsformel. (K, s) ist ein Modell von ϕ, geschrieben: K |=s ϕ, wenn s zu gK∗ (ϕ) gehört, in Worten: wenn ϕ im Zustand s gilt. Darauf aufbauend sind Erfüllbarkeit, Allgemeingültigkeit, Folgerung und Äquivalenz modallogischer Formeln wie in Kapitel 2 definiert, wobei der zugrundeliegende semantische Bereich D durch die Menge aller Paare gegeben ist, die aus einer KripkeStruktur K : State → (P(State) × P(At)) und einem Zustand s ∈ State bestehen. Aufgabe Zeigen Sie (1)-(4) aus Kapitel 6 für modallogische Formeln. o 173 7 Modallogik K = hδ, βi heißt endlich verzweigt (finitely branching), wenn für alle s ∈ State die Menge δ(s) endlich ist. 7.1 Übersetzung modallogischer in aussagenlogische Formeln Ist K endlich verzweigt, dann lässt sich die Frage, ob K eine modallogische Formel ϕ im Zustand s erfüllt, dadurch beantworten, dass man die Zustandsformel (ϕ, s) in eine aussagenlogische Formel über At × State übersetzt und anschließend in der Bitalgebra auswertet. Der Übersetzer ml2al : TML(At) × State → TAL(At × State) ist wie folgt induktiv definiert: Für alle x ∈ At, s ∈ State, c ∈ {⊥, >}, ⊗ ∈ {∨, ∧, ⇒} und ϕ, ψ ∈ TML(At), 174 7 Modallogik ml2al (x, s) = (x, s), ml2al (c, s) = c, ml2al (¬ϕ, s) = ¬ml2al (ϕ, s), ml2al (ϕ ⊗ ψ, s) = ml2al (ϕ, s) ⊗ ml2al (ψ, s), V ml2al (2ϕ, s) = {ml2al (ϕ, s0) | s0 ∈ δ(s)}, W ml2al (3ϕ, s) = {ml2al (ϕ, s0) | s0 ∈ δ(s)}. s ml2al ML x1 x2 AL x3 Zustandsformel über At = (ML-Term über At, Zustand) x1 s1 x2 s2 x3 s3 aussagenlogische Formel (= AL-Term) über At x State 175 7 Modallogik Auf semantischer Ebene wird eine Kripke-Struktur K in die aussagenlogische Belegung hK =def uncurry(χ ◦ gK ) : At × State → 2 transformiert. Satz 7.1 (Korrektheit von ml2al ) Für alle Kripke-Strukturen K mit Zustandsmenge State, s ∈ State und modallogischen Formeln ϕ gilt: K |=s ϕ ⇔ hK |= ml2al (ϕ, s), (1) in Worten: K erfüllt die modallogische Formel ϕ im Zustand s genau dann, wenn die aussagenlogische Belegung hK die aussagenlogische Formel ml2al (ϕ, s) erfüllt. Beweis. Sei s ∈ State. Nach Definition der modal- bzw. aussagenlogischen Erfüllbarkeitsrelation ist (1) äquivalent zu: s ∈ gK∗ (ϕ) ⇔ h∗K (ml2al (ϕ, s)) = 1. (2) Wir zeigen (2) durch strukturelle Induktion über TML(At). 176 7 Modallogik Für alle x ∈ At, s ∈ gK∗ (x) ⇔ s ∈ gK (x) ⇔ h∗K (ml2al (x, s)) = h∗K (x, s) = uncurry(χ ◦ gK )∗(x, s) = uncurry(χ ◦ gK )(x, s) = (χ ◦ gK )(x)(s) = χ(gK (x))(s) = 1, s ∈ gK∗ (⊥) = ∅ ⇔ h∗K (ml2al (⊥, s)) = h∗K (⊥) = 0, s ∈ gK∗ (>) = State ⇔ h∗K (ml2al (⊥, s)) = h∗K (>) = 1. Für alle ϕ, ψ ∈ TML(At), s ∈ gK∗ (¬ϕ) ⇔ s ∈ State \ gK∗ (ϕ) ⇔ h∗K (ml2al (¬ϕ, s)) = h∗K (¬ml2al (ϕ, s)) = 1 − h∗K (ml2al (ϕ, s))) ind. hyp. = 1 − 0 = 1, s ∈ gK∗ (ϕ ∧ ψ) ⇔ s ∈ gK∗ (ϕ) ∩ gK∗ (ψ) ⇔ h∗K (ml2al (ϕ ∧ ψ, s)) = h∗K (ml2al (ϕ, s) ∧ ml2al (ψ, s)) = min{h∗K (ml2al (ϕ, s)), h∗K (ml2al (ψ, s))} ind. hyp. = 1, 177 7 Modallogik s ∈ gK∗ (ϕ ∨ ψ) ⇔ s ∈ gK∗ (ϕ) ∪ gK∗ (ψ) ⇔ h∗K (ml2al (ϕ ∨ ψ, s)) = h∗K (ml2al (ϕ, s) ∨ ml2al (ψ, s)) = max{h∗K (ml2al (ϕ, s)), h∗K (ml2al (ψ, s))} ind. hyp. = 1, s ∈ gK∗ (ϕ ⇒ ψ) ⇔ s ∈ (State \ gK∗ (ϕ)) ∪ gK∗ (ψ) ⇔ h∗K (ml2al (ϕ ⇒ ψ, s)) = h∗K (ml2al (ϕ, s) ⇒ ml2al (ψ, s)) = max{1 − h∗K (ml2al (ϕ, s)), h∗K (ml2al (ψ, s))} ind. hyp. = 1, s ∈ gK∗ (2ϕ) ⇔ δ(s) ⊆ gK∗ (ϕ) ⇔ ∀ s0 ∈ δ(s) : s0 ∈ gK∗ (ϕ) V ∗ ∗ ⇔ hK (ml2al (2ϕ, s)) = hK ( {ml2al (ϕ, s0) | s0 ∈ δ(s)}) = min{h∗K (ml2al (ϕ, s0)) | s0 ∈ δ(s)} ind. hyp. = min{1, . . . , 1} = 1, s ∈ gK∗ (3ϕ) ⇔ δ(s) ∩ gK∗ (ϕ) 6= ∅ ⇔ ∃ s0 ∈ δ(s) : s0 ∈ gK∗ (ϕ) W ⇔ h∗K (ml2al (3ϕ, s)) = h∗K ( {ml2al (ϕ, s0) | s0 ∈ δ(s)}) = max{h∗K (ml2al (ϕ, s0)) | s0 ∈ δ(s)} ind. hyp. = max{. . . , 1, . . . } = 1. o 178 7 Modallogik Beispiel 7.2 ([34], B 5.1, “Murmelspiel”) Sei State = 23, At = {x1, x2, x3}, K = hδ, βi : State → P(State) × P(At) mit δ(001) = {100, 010}, δ(010) = {001, 110}, δ(100) = {110, 010}, δ(110) = {001, 101}, δ(101) = {010, 110}, δ(000) = δ(011) = δ(111) = ∅ und für alle a1a2a3 ∈ State, β(a1a2a3) = {xi | ai = 1, 1 ≤ i ≤ 3}. Dann gilt ml2al (332x3, 001) = ml2al (32x3, 100) ∨ ml2al (32x3, 010) = ml2al (2x3, 110) ∨ ml2al (2x3, 010) ∨ ml2al (2x3, 001) ∨ ml2al (2x3, 110) = ml2al (2x3, 110) ∨ ml2al (2x3, 010) ∨ ml2al (2x3, 001) = ml2al (x3, 001) ∧ ml2al (x3, 101) ∨ ml2al (x3, 001) ∧ ml2al (x3, 110) ∨ ml2al (x3, 100) ∧ ml2al (x3, 010) = (x3, 001) ∧ (x3, 101 ∨ (x3, 001) ∧ (x3, 110) ∨ (x3, 100) ∧ (x3, 010) (3) Die o.g. Belegung hK : At × State → 2 (s.o.) hat hier folgende Werte: Für alle 1 ≤ i ≤ 3 und a1a2a3 ∈ State, 179 7 Modallogik hK (xi, a1a2a3) = uncurry(χ ◦ gK )(xi, a1a2a3) = (χ ◦ gK )(xi)(a1a2a3) = χ(gK (xi))(a1a2a3) = χ({b1b2b3 ∈ State | xi ∈ β(b1b2b3)})(a1a2a3) = χ({b1b2b3 ∈ State | bi = 1})(a1a2a3) = ai. (4) Daraus folgt: h∗K (ml2al (332x3, 001)) (3) = h∗K ((x3, 001) ∧ (x3, 101) ∨ (x3, 001) ∧ (x3, 110) ∨ (x3, 100) ∧ (x3, 010) = h∗K (x3, 001) ∧2 h∗K (x3, 101) ∨2 h∗K (x3, 001) ∧2 h∗K (x3, 110) ∨2 h∗K (x3, 100) ∧2 h∗K (x3, 010) = hK (x3, 001) ∧2 hK (x3, 101) ∨2 hK (x3, 001) ∧2 hK (x3, 110) ∨2 hK (x3, 100) ∧2 hK (x3, 010) (4) = 1 ∧2 1 ∨2 1 ∧2 0 ∨2 0 ∧2 0 = 1. Also ist nach Satz 7.1 (K, 001) ein Modell von 332x3. Das Beispiel ist typisch für die Bildung vieler Zustandsmengen: Das konkrete System, das als Kripke-Struktur modelliert werden soll, hat n veränderliche Attribute. In Beispiel 7.2 bilden die Positionen 1,2,3 der drei Komponenten eines Zustands s ∈ 23 die Attribute. o 180 7 Modallogik Ein Atom steht für die Aussage, dass ein bestimmtes Attribut einen bestimmten Wert hat. In Beispiel 7.2 hat jedes der drei Attribute den Wert 0 oder 1. Das Atom x2 bedeutet z.B., dass 1 der aktuelle Wert von Attribut 2 ist. Das Literal ¬x2 drückt aus, dass Attribut 2 den Wert 0 hat. Gibt es n Attribute at1, . . . , atn und ist für alle 1 ≤ i ≤ n Ai die Menge der Werte, die ati annehmen kann, dann entspricht das Produkt A1 × · · · × An der Menge der Zustände, in denen sich das durch die Kripke-Struktur modellierte System befinden kann. So kommt man in Beispiel 7.2 auf die Zustandsmenge 23. Darüberhinaus lassen sich als Binärworte, also Elemente von 2∗ (siehe Kapitel 4), repräsentierte Zustände direkt in Hardware “gießen” (siehe Rechnerstrukturen). Aufgabe Sei K : State → (P(State) × P(At)) eine Kripke-Struktur und x, y ∈ At. Zeigen Sie, dass die ML-Algebra Pow (δ) alle in der Bitalgebra gültigen AL-Gleichungen und darüberhinaus folgende ML-Gleichungen erfüllt: ¬3x ≡ 2¬x 3(x ∨ y) ≡ 3x ∨ 3y ¬2x ≡ 3¬x 2(x ∧ y) ≡ 2x ∧ 2y (negM ) (distDia/distBox ) 181 7 Modallogik Eine modallogische Formel heißt Negationsnormalform über At (NNF), wenn ⇒ in ihr nicht vorkommt und ¬ nur direkt vor Atomen. Der Beweis von Satz 6.1 (8) lässt sich leicht zu einem Beweis dafür fortsetzen, dass jede modallogische Formel über At zu einer NNF (BE ∪ negM )-äquivalent ist. 7.2 Tableaukalkül Fortan nennen wir eine Zustandsformel (ϕ, s) Zustandsatom bzw. Zustandsliteral, wenn ϕ ein Atom bzw. Literal ist. K erfüllt eine Transition (s, s0), geschrieben: K |= (s, s0), wenn s0 zu δ(s) gehört. Die Erweiterung des aussagenlogischen Tableaukalküls um Regeln für die modalen Operationen 3 und 2 dient dem Beweis der Erfüllbarkeit einer gegebenen Zustandsformel. Eine Transitionsfunktion ist hier nicht vorgegeben, sondern wird schrittweise im Laufe des Ableitungsprozesses aufgebaut. Liegt eine Kripke-Struktur K vor, dann verwendet man modallogische Formeln, um Eigenschaften von K zu beschreiben und deren Gültigkeit zu überprüfen (model checking). 182 7 Modallogik In diesem Zusammenhang den Tableaukalkül auf eine Formel ϕ anzusetzen dient dazu festzustellen, ob es einen Zustand s von K mit K |=s ϕ geben kann. Um diese Frage zu beantworten, ist es i.d.R. einfacher, gK∗ : TML(At) → P(State) auf ϕ anzuwenden und das Ergebnis auf Leerheit zu testen. Den Tableaukalkül wendet man deshalb eher in einem Szenario an, in dem keine KripkeStruktur vorliegt und das Aussehen der vom Kalkül konstruierten keine Rolle spielt. Das ist z.B. dann der Fall, wenn schon die intuitive Interpretation der modalen Operationen keine Transitionsfunktion beinhaltet, sondern 3ϕ schlicht als Notwendigkeit der Gültigkeit von ϕ und 2ϕ als deren Möglichkeit interpretiert wird. Sei State eine mindestens abzählbar unendliche Menge von Zuständen. Für alle Zustandsformeln ϕ nennen wir den Ausdruck box(ϕ) eine besuchte Box-Formel. Ein (modallogisches) Tableau ist ein endlicher Baum t, dessen Knoten mit >, einer Transition, einer Zustandsformel oder einer besuchten Box-Formel markiert sind (siehe Knotenmarkierte Bäume). Ein Knoten w von t heißt geschlossen, wenn es zwei Knoten u ≤ w und v ≤ w gibt mit π1(t(u)) ≡2 ¬π1(t(v)) und π2(t(u)) = π2(t(v)). w heißt offen, wenn w nicht geschlossen ist. 183 7 Modallogik t heißt geschlossen, wenn alle Blätter von t geschlossen sind. t heißt offen, wenn t nicht geschlossen ist. Eine Kripke-Struktur K erfüllt t, geschrieben: K |= t, wenn es ein Blatt w von t gibt mit K |= ϕ für alle Zustandsformeln und Transitionen ϕ ∈ t(path(, w)). Eine Folge (t1, . . . , tn) von Tableaus heißt (modallogische) Tableau-Ableitung von tn aus t1, wenn • t1 ein mit einer Zustandsformel markiertes Blatt ist, • für alle 1 < i ≤ n ti durch Anwendung einer Tableauregel (siehe unten) aus ti−1 gebildet ist, • tn gesättigt (saturated) ist, d.h. auf tn ist keine Tableauregel anwendbar, m.a.W.: alle noch nicht besuchten Zustandsformeln von tn sind Zustandsliterale. Ist tn geschlossen, dann heißt (t1, . . . , tn) Tableau-Widerlegung. Wir schreiben t `T t0, falls es eine Tableau-Ableitung von t0 aus t gibt. 184 7 Modallogik Für alle s ∈ State und w ∈ N∗ sei boxes(s, t, w) = {ϕ ∈ TML(At) | es gibt v ≤ w mit t(v) = box(ϕ, s)}, succs(s, t, w) = {s0 ∈ State | es gibt v ≤ w mit t(v) = (s, s0)}. • ϕ gehört genau dann zu boxes(s, t, w), wenn box(s, ϕ) einen Vorgänger von w markiert. • s0 gehört genau dann zu succs(s, t, w), wenn (s, s0) einen Vorgänger von w markiert. Modallogische Tableauregeln Sei t ein Tableau und w ein Knoten von t. Wir nennen ihn den Redex der jeweiligen Regelanwendung, die t in das neue Tableau t0 transformiert. • ∨-Regel Sei t(w) = (ϕ ∨ ψ, s). Für alle u ∈ N∗, > falls u = w, (ϕ, s) falls u = v0 und v ∈ leaves(t, w), t0(u) =def (ψ, s) falls u = v1 und v ∈ leaves(t, w), t(u) sonst. 185 7 Modallogik • ∧-Regel Sei t(w) = (ϕ ∧ ψ, s). Für alle u ∈ N∗, > falls u = w, (ϕ, s) falls u = v0 und v ∈ leaves(t, w), 0 t (u) =def (ψ, s) falls u = v00 und v ∈ leaves(t, w), t(u) sonst. • 3-Regel Sei t(w) = (3ϕ, s) > 0 (s, s ) (ϕ, s0) t0(u) =def 0 (ϕ , s ) i t(u) und s0 ∈ State komme in t nicht vor. Für alle u ∈ N∗, falls u = w, falls u = v0 und v ∈ leaves(t, w), falls u = v00 und v ∈ leaves(t, w), falls u = v000i, v ∈ leaves(t, w), {ϕ1, . . . , ϕn} = boxes(s, t, v) und 1 ≤ i ≤ n, sonst. 186 7 Modallogik • 2-Regel Sei t(w) = (2ϕ, s). Für alle u ∈ N∗, box(ϕ, s) falls u = w, (ϕ, s ) falls u = v0i, v ∈ leaves(t, w), i 0 t (u) =def {s1, . . . , sn} = succs(s, t, v) und 1 ≤ i ≤ n, t(u) sonst. Aufgabe Die Gleichungen von negAL und negM legen weitere Tableauregeln nahe, die zusammen mit den beiden obigen nicht nur NNFs, sondern beliebige modallogische Formeln verarbeiten können. Wie lauten die zusätzlichen Regeln? Lemma 7.3 Ein gesättigtes Tableau t ist genau dann erfüllbar, wenn es offen ist. Beweis. Sei t erfüllbar. Dann gibt es eine Kripke-Struktur K : State → P(State) × P(At) und ein Blatt w von t, das von K erfüllt wird. 187 7 Modallogik Seien Φ = {(x1, s1), . . . (xm, sm)} und {(¬y1, s01), . . . , (¬yn, s0n)} die Mengen der positiven bzw. negativen Zustandsliterale von t(path(, w)). Dann gilt für alle 1 ≤ i ≤ m, gK (xi)(si) = gK∗ (xi)(si) = 1, und für alle 1 ≤ i ≤ n, ¬2(gK (yi)(s0i)) = ¬2(gK∗ (yi)(s0i)) = gK∗ (¬yi)(s0i) = 1, also gK (yi)(s0i) = 0. Daraus folgt, dass Φ und {(y1, s01), . . . , (yn, s0n)} disjunkt sind. Für alle Knoten u ≤ w und v ≤ w, s ∈ State und Literale ϕ, ψ mit t(u) = (ϕ, s) und t(v) = (ψ, s) gilt demnach ϕ 6= ¬ψ. Also ist t offen. Sei t offen. Dann gibt es ein Blatt w von t mit der Eigenschaft, dass für je zwei Knoten u ≤ w und v ≤ w, s ∈ State und ein Literal ϕ mit t(u) = (ϕ, s) und t(v) = (ψ, s) ϕ 6= ¬ψ gilt. Seien R1 die Menge der Transitionen und R2 = {(x1, s1), . . . (xm, sm)} und {(¬y1, s01), . . . , (¬yn, s0n)} die Mengen der positiven bzw. negativen Zustandsliterale von t(path(, w)). 188 7 Modallogik Sei K = hmkfun(R1), mkfun(R2−1)i (siehe Isomorphien). Wir zeigen, dass K t erfüllt. Da t offen ist, sind β und {(y1, s01), . . . , (yn, s0n)} disjunkt. Daraus folgt für alle 1 ≤ i ≤ m, gK∗ (xi)(si) = gK (xi)(si) = 1, und für alle 1 ≤ i ≤ n, gK∗ (¬yi)(s0i) = ¬2(gK∗ (yi)(s0i)) = ¬2(gK (yi)(s0i)) = ¬2(0) = 1. Also erfüllt K alle Formeln von t(path(, w)), d.h. K erfüllt t. o Für alle Tableaus t, t0 definieren wir: falls t(w) Zustandsliteral ist, = t(w) t ≤ t0 ⇔def für alle w ∈ N∗, t0(w) ∈ {t(w), box(ϕ, s)} falls t(w) = (2ϕ, s), ∈ {t(w), >} sonst. Sei (t1, . . . , tn) eine Tableau-Ableitung. Da jede Anwendung einer Tableauregel keine Knoten entfernt, sondern höchstens neue Knoten an vorhandene Blätter anhängt, gilt ti ≤ ti+1 für alle 1 ≤ i < n. 189 7 Modallogik Satz 7.4 (Korrektheit modallogischer Tableau-Ableitungen) Sei K = hδ, βi eine Kripke-Struktur. (i) Aus t `T t0 und K |= t folgt K |= t0. (ii) Sei t0 geschlossen. Dann ist t unerfüllbar. Beweis. (i): Sei (t1, . . . , tn) eine Tableau-Ableitung von t0 aus t. Wir zeigen, dass für alle 1 ≤ i < n K |= ti+1 aus K |= ti folgt. Sei K |= ti. Dann gibt es ein Blatt v von ti derart, dass K alle Zustandsformeln und Transitionen von ti(path(, v)) erfüllt. Ist v auch ein Blatt von ti+1, dann folgt K |= ti+1 aus ti ≤ ti+1. Andernfalls gilt w ≤ v für den Redex w der Regelanwendung, die von ti zu ti+1 führt, und es gibt einen Teilbaum tv von ti+1, der das Blatt v von ti ersetzt. Angenommen, es gibt ein Blatt v 0 von tv derart, dass K alle Zustandsformeln 0 und Transitionen von tv (path(, v )) erfüllt. (1) 190 7 Modallogik Dann erfüllt K auch alle Zustandsformeln und Transitionen von ti+1(path(, v 0)). Also gilt K |= ti+1. Zu zeigen bleibt (1). Fall 1: ti+1 wurde durch Anwendung der ∨-Regel aus ti gebildet. Dann gilt für alle u ∈ N∗ , (ϕ, s) falls u = 0, tv (u) =def (ψ, s) falls u = 1, ti(u) sonst. Aus K |= ti(w) = (ϕ ∨ ψ, s) folgt K |= (ϕ, s) = tv (0) oder K |= (ψ, s) = tv (1). Also gilt (1) für v 0 = 0 oder v 0 = 1. Fall 2: ti+1 wurde durch Anwendung der ∧-Regel aus ti gebildet. Dann gilt für alle u ∈ N∗ , (ϕ, s) falls u = 0, tv (u) =def (ψ, s) falls u = 00, ti(u) sonst. 191 7 Modallogik Aus K |= ti(w) = (ϕ ∧ ψ, s) folgt K |= (ϕ, s) = tv (0) und K |= (ψ, s) = tv (00). Also gilt (1) für v 0 = 11. Fall 3: ti+1 wurde durch Anwendung der 3-Regel aus ti gebildet. Sei {ϕ1, . . . , ϕn} = boxes(s, t, v). Dann 0 (s, s ) (ϕ, s0) tv (u) =def 0 (ϕ , s ) i t (u) i gilt für alle u ∈ N∗, falls u = 0, falls u = 00, falls 1 ≤ i ≤ n und u = 000i, sonst. Aus K |= ti(w) = (3ϕ, s) folgt, dass es s0 ∈ δ(s) mit K |= (ϕ, s0) gibt. Demnach gilt K |= (s, s0) = tv (0) und K |= (ϕ, s0) = tv (00). Sei 1 ≤ i ≤ n. Da es u ≤ v gibt mit ti(u) = (2ϕi, s), gilt K |= (2ϕi, s), also wegen (s, s0) ∈ δ auch K |= (ϕi, s0) = tv (000i). Demnach gilt (1) für v 0 = 000n. 192 7 Modallogik Fall 4: ti+1 wurde durch Anwendung der 2-Regel aus ti gebildet. Sei {s1, . . . , sn} = succs(s, t, v). Dann gilt für alle u ∈ N∗, ( (ϕ, si) falls 1 ≤ i ≤ n und u = 0i, tv (u) =def ti(u) sonst. Aus K |= ti(w) = (2ϕ, s) folgt, dass für alle s0 ∈ δ(s) K |= (ϕ, s0) gilt. Sei 1 ≤ i ≤ n. Da es u ≤ v gibt mit ti(u) = (s, si), gehört (s, si) zu δ. Daraus folgt K |= (ϕ, si). Demnach gilt (1) für v 0 = 0n. (ii): Da t0 geschlossen ist, folgt aus Lemma 7.3, dass t0 unerfüllbar ist. Also ist wegen (i) auch t unerfüllbar. o 193 7 Modallogik Satz 7.5 (Vollständigkeit modallogischer Tableau-Ableitungen) Sei (ϕ, s) eine unerfüllbare Zustandsformel und ein erstes Tableau wie folgt definiert: Für alle w ∈ N∗, ( (ϕ, s) falls w = , t1(w) = sonst. Dann gibt es eine Tableau-Widerlegung (t1, . . . , tn). Beweis. Wiederholte Anwendungen der Tableauregeln führen von t1 zu einem gesättigten Tableau t, weil jede Regelanwendung die Knotenanzahl eines Tableaus zwar erhöht, die Multimenge der Größen aller noch nicht besuchten Zustandsformeln jedoch verkleinert, so dass irgendwann ein Tableau ohne solche Formeln, also ein gesättigtes Tableau, erreicht ist, m.a.W.: es gibt eine Tableau-Ableitung (t1, . . . , tn). Es bleibt zu zeigen, dass tn geschlossen ist. Wir führen den Beweis durch Kontraposition, nehmen also an, dass tn offen ist. Da tn gesättigt ist, folgt aus Lemma 7.3, dass tn erfüllbar ist, d.h. es gibt eine Kripke-Struktur K = hδ, βi mit K |= tn, also ein Blatt w von tn derart, dass K alle Zustandsformeln und Transitionen von tn(path(, w)) erfüllt. 194 7 Modallogik Sei K0 = hδ 0, βi mit δ 0(s) = {s0 ∈ δ(s) | (s, s0) ∈ tn(path(, w))} für alle s ∈ State. Da jede Zustandsformel von tn ein Zustandsliteral ist, also keine modalen Operationen enthält, deren Gültigkeit von δ abhängen könnte, erfüllt auch K0 alle Zustandsformeln und Transitionen von tn(path(, w)). (2) Wir zeigen zunächst durch Induktion über k = n − i, dass es für alle 1 ≤ i ≤ n ein Blatt v ≤ w gibt derart, dass K0 alle Zustandsformeln und Transitionen von ti(path(, v)) erfüllt. (3) Fall 1: k = 0. Dann ist i = n. Also folgt (3) aus (2). Fall 2: k > 0. Dann ist i < n und nach Induktionsvoraussetzung gibt es ein Blatt v ≤ w von ti+1 derart, dass K0 alle Zustandsformeln und Transitionen von ti+1(path(, v)) erfüllt. Nach Konstruktion von ti+1 aus ti gibt es ein Blatt u ≤ v von ti. Es bleibt zu zeigen, dass K0 alle Zustandsformeln und Transitionen von ti(path(, u)) erfüllt. (4) Sei u0 ≤ u und ti(u0) eine Zustandsformel oder Transition. Fall 2.1: ti(u0) = ti+1(u0). Wegen u0 ∈ path(, v) folgt K0 |= ti(u0). 195 7 Modallogik Fall 2.2: Es gibt ϕ ∈ TML(At) und s ∈ State mit ti(u0) = (ϕ, s) und ti+1(u0) = >. Fall 2.2.1: ϕ = (ϕ0 ∨ ψ). Dann führt eine Anwendung der ∨-Regel von ti nach ti+1, d.h. es gibt v 0 > v mit v 0 ≤ w und ti+1(v 0) ∈ {(ϕ0, s), (ψ, s)}. Wegen v 0 ∈ path(, w) folgt K0 |= (ϕ0, s) oder K0 |= (ψ, s), also K0 |= (ϕ0 ∨ ψ, s) = (ϕ, s). Fall 2.2.2: ϕ = (ϕ0 ∧ ψ). Dann führt eine Anwendung der ∧-Regel von ti nach ti+1, d.h. es gibt v 0, v 00 > v mit v 0, v 00 ≤ w, ti+1(v 0) = (ϕ0, s) und ti+1(v 00) = (ψ, s). Wegen v 0, v 00 ∈ path(, w) folgt K0 |= (ϕ0, s) und K0 |= (ψ, s), also K0 |= (ϕ0 ∧ ψ, s) = (ϕ, s). Fall 2.2.3: ϕ = 3ψ. Dann gibt es v 0 > v, v 00 > v und s0 ∈ State mit v 0, v 00 ≤ w, ti+1(v 0) = (s, s0) und ti+1(v 00) = (s0, ψ). Wegen v 0, v 00 ∈ path(, w) folgt s0 ∈ δ(s) und K0 |= (ψ, s0), also K0 |= (3ψ, s) = (ϕ, s). Fall 2.3: ϕ = 2ψ und ti+1(u0) = box(ψ, s). Sei δ(s) = {s1, . . . , sk }. Nach Konstruktion von K0 und (ti+1 . . . , tn) gibt es u1, . . . , uk ∈ tn(path(, w)) mit tn(ui) = (ψ, si) für alle 1 ≤ i ≤ k. Daraus folgt K0 |= (ψ, si) für alle 1 ≤ i ≤ k, also K |= (2ψ, s) = (ϕ, s). Da u0 ∈ path(, u) beliebig gewählt wurde, haben wir (4) gezeigt, womit der Beweis von Fall 2 des Induktionsbeweises von (3) beendet ist. Damit gilt (3) insbesondere für t1. Also erfüllt K0 die Zustandsformel t1() = (ϕ, s). o 196 7 Modallogik Erfüllbarkeitstest für modallogische NNFs Sei (ϕ, s) eine NNF. Wende Tableauregeln in beliebiger Reihenfolge auf das durch t1() = (ϕ, s) und t1(w) = für alle w ∈ N∗ \ {} definierte Tableau an, bis ein gesättigtes Tableau t erreicht ist. Prüfe, ob t offen ist. Wenn ja, ist t – nach Lemma 7.3 – erfüllbar. Wenn nein, ist t – ebenfalls nach Lemma 7.3 – unerfüllbar. Im ersten Fall folgt aus Satz 7.5, dass (ϕ, s) erfüllbar ist. Im zweiten Fall folgt aus Satz 7.4 (ii), dass t1, also auch (ϕ, s) unerfüllbar ist. o Wie im aussagenlogischen Fall wird der Test effizienter, wenn man nicht erst im gesättigten Tableau nach offenen Blättern sucht, sondern schon vorher Teiltableaus entfernt, deren Pfade komplementäre Literale enthalten. Dazu muss der Kalkül um folgende Regeln erweitert werden, die alle Unterbäume t0 von t durch ein Blatt mit der Markierung ⊥ ersetzen, sofern die Wurzel w von t0 mit einem Literal ϕ und ein Vorgänger von w in t mit dem zu ϕ komplementären Literal markiert ist: 197 7 Modallogik • Atomregel Sei t(w) = (ϕ, s) ein Zustandsatom. Für alle u ∈ N∗, ⊥ falls u > w und t(u) = (¬ϕ, s), t0(u) =def falls es v > w gibt mit t(v) = (¬ϕ, s) und u > v, t(u) sonst. • Literalregel Sei t(w) = (¬ϕ, s) ein Zustandsliteral. Für alle u ∈ N∗, ⊥ falls u > w und t(u) = (ϕ, s), t0(u) =def falls es v > w gibt mit t(v) = (ϕ, s) und u > v, t(u) sonst. Außerdem ist in den anderen Tableauregeln die Menge leaves(t, w) der von w aus erreichbaren Blätter von t auf diejenigen zu beschränken, die nicht mit ⊥ markiert sind. Schließlich wird der Erfüllbarkeitstest für NNFs zu einem Erfüllbarkeitstest für beliebige modallogische Formeln, wenn er die oben erwähnten, aus den Gleichungen von negAL und negM gebildeten Tableauregeln mitverwendet. 198 7 Modallogik Beispiele ([34], B 6.2) Sei State = {s1, s2, s3, . . . }. 1. Sei At = {x}. + Erfüllbarkeitstest der Zustandsformel (33x ∧ 2(x ⇒ 2¬x), s1) Aus dem letzten Tableau der Ableitung ergibt sich, dass die Formel von jeder KripkeStruktur hδ, βi mit δ(s1) = {s2}, δ(s2) = {s3}, δ(s) = ∅ für alle s ∈ State \ {s1, s2} und x ∈ β(s3) \ β(s2) erfüllt wird. 2. Sei At = {x, y}. + Erfüllbarkeitstest der Zustandsformel (3x ∧ 2¬y ∧ 3(x ⇒ y), s1) Aus dem letzten Tableau der Ableitung ergibt sich, dass die Formel von jeder KripkeStruktur hδ, βi mit δ(s1) = {s2}, δ(s1) = {s3}, δ(s) = ∅ für alle s ∈ State \ {s1, s2}, x ∈ β(s2) \ β(s3) und y 6∈ β(s2) ∪ β(s3) erfüllt wird. 3. Sei At = {x, y}. + Erfüllbarkeitstest der Zustandsformel (2(x ⇒ y) ∧ 3x ∧ 2¬y, s1) 199 7 Modallogik Aus dem letzten Tableau der Ableitung ergibt sich, dass die Formel unerfüllbar ist. Dementsprechend ist ihre Negation erfüllbar, und zwar – wie ihr + Erfüllbarkeitstest zeigt – von jeder Kripke-Struktur hδ, βi mit • δ(s1) = {s2}, x ∈ β(s2) und y 6∈ β(s2), oder • δ = ∅, oder • δ(s1) = {s3} und y ∈ β(s3). Da jedes Tableau höchstens endlich viele Transitionen enthält und jedes Tableau, auf das eine Regel angewendet wird, die es um eine Transition (s, s0) erweitert, s0 nicht enthält, schließen wir aus den Sätzen 7.4 (ii) und 7.5, dass jede erfüllbare Zustandsformel ein endliches Baummodell hat, das ist eine Kripke-Struktur mit endlicher Zustandsmenge, deren Transitionsfunktion δ folgende Eigenschaft hat: Für alle s ∈ State, |δ(s)| ≤ 1. 200 7 Modallogik 7.3 Zustandsäquivalenzen Wie oben schon erwähnt wurde, sind Kripke-Strukturen black-box-Modelle: Ein Zustand ist nicht wie ein Term aus Konstruktoren zusammengesetzt und lässt sich daher nicht anhand seines jeweiligen Aufbaus von anderen Zuständen unterscheiden. Stattdessen ist die Gleichheit oder Ungleichheit von Zuständen nur indirekt erkennbar, indem man mit ihnen experimentiert, d.h. im Fall von Kripke-Strukturen δ und β solange anwendet, bis die Ergebnisse der Anwendung das gleiche oder ungleiche Verhalten der getesteten Zustände offenbart. Das führt zu einer coinduktiven Definition der K-Verhaltensäquivalenz (behavioral equivalence, bisimilarity) ∼K von Zuständen der Kripke-Struktur K = hδ, βi : State → P(State) × P(At) bzgl. folgender Schrittfunktion FK : P(State 2) → P(State 2) (siehe Kapitel 4): Für alle R ⊆ State 2, FK (R) = {(s, s0) ∈ State 2 | β(s) = β(s0), ∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : (t, t0) ∈ R, ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : (t, t0) ∈ R}. 201 7 Modallogik Eine FK -dichte Teilmenge von State 2 heißt K-Bisimulation. ∼K ist definiert als größte K-Bisimulation, m.a.W.: ∼K =def gfp(FK ). Zwei Zustände s, s0 ∈ State heißen K-verhaltensäquivalent, wenn (s, s0) zu ∼K gehört. Aufgabe Zeigen Sie, dass die Diagonale von State 2 eine K-Bisimulation ist. Satz 7.5 ∼K ist eine Äquivalenzrelation (siehe Kapitel 5). Beweis. Sei ∼eq K der Äquivalenzabschluss von ∼K , das ist die kleinste Äquivalenzrelation, die ∼K enthält. Wir nehmen an, dass ∼eq K eine K-Bisimulation ist. (1) Da ∼K die größte K-Bisimulation ist, folgt aus (1), dass ∼eq K in ∼K enthalten ist. Andeeq eq rerseits ist ∼K nach Definition von ∼K in ∼K enthalten. Beide Relationen stimmen also überein, so dass mit ∼eq K auch ∼K eine Äquivalenzrelation ist. Zu zeigen bleibt also (1), was bedeutet, dass für alle (s, s0) ∈ State 2 die folgenden drei Implikationen gelten: 202 7 Modallogik 0 s ∼eq ⇒ K s 0 β(s) = β(s ), ∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : t ∼eq t0, K ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ∼eq t0. K (2) (3) (4) Beweis von (1)-(3). Nach Definition von ∼eq K stimmt diese Relation mit lfp(G) überein, wobei G : P(State 2) → P(State 2) wie folgt definiert ist: Für alle R ⊆ State 2, G(R) = ∼K ∪ ∆State ∪ {(s0, s) | (s, s0) ∈ R} ∪ {(s, s0) | ∃ s00 : (s, s00), (s00, s0) ∈ R}. Offenbar gelten (2)-(4) genau dann, wenn R =def {(s, s0) ∈ State 2 | (s, s0) erfüllt (2)-(4)} eq ∼eq enthält. Nach Satz 4.2 (iii) ist lfp(G) = ∼ K K in jeder G-abgeschlossenen Teilmenge von State 2 enthalten. Also gelten (2)-(4), wenn R G-abgeschlossen ist. Sei (s, s0) ∈ G(R). Fall 1: s ∼K s0. Daraus folgt (s, s0) ∈ R, weil ∼K eine K-Bisimulation und in ∼eq K enthalten ist. Fall 2: s = s0. Daraus folgt (s, s0) ∈ R, weil die Diagonale von State 2 eine K-Bisimulation und in ∼eq K enthalten ist. 203 7 Modallogik eq 0 0 0 0 Fall 3: s0 ∼eq K s. Dann gelten β(s ) = β(s), ∀ t ∈ δ(s ) ∃ t ∈ δ(s) : t ∼K t und 0 ∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : t0 ∼eq K t nach Induktionsvoraussetzung. Daraus folgt (s, s ) ∈ R, weil die Diagonale von P(At)2 und ∼eq K symmetrisch sind. eq 0 00 00 00 0 Fall 4: Es gibt s00 ∈ State mit s ∼eq s und s ∼ K K s . Dann gelten β(s) = β(s ) = β(s ), eq 00 00 00 00 00 00 0 ∀ t ∈ δ(s) ∃ t00 ∈ δ(s00) : t ∼eq K t , ∀ t ∈ δ(s ) ∃ t ∈ δ(s) : t ∼K t , ∀ t ∈ δ(s ) ∃ t ∈ eq 0 0 0 0 00 00 00 δ(s0) : t00 ∼eq t und ∀ t ∈ δ(s ) ∃ t ∈ δ(s ) : t ∼ K K t nach Induktionsvoraussetzung. Daraus folgt (s, s0) ∈ R, weil die Diagonale von P(At)2 und ∼eq K transitiv sind. Damit haben wir gezeigt, dass R G-abgeschlossen ist. o K-Bisimulationen setzen Zustände ein und derselben Kripke-Struktur in Beziehung. Eine allgemeinere Definition erlaubt den Vergleich von Zuständen zweier Kripke-Strukturen K = hδ, βi : State → (P(State) × P(At)), K0 = hδ 0, β 0i : State 0 → (P(State 0) × P(At)) mit denselben Atomen, aber möglicherweise verschiedenen Zustandsmengen: R ⊆ State × State 0 heißt K, K0- Bisimulation, wenn R FK,K0 -dicht ist, wobei FK,K0 : P(State × State 0) → P(State × State 0) wie folgt definiert ist: 204 7 Modallogik 0 Für alle R ⊆ State × State , FK,K0 (R) = {(s, s0) ∈ State × State 0 | β(s) = β(s0), ∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : (t, t0) ∈ R, ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : (t, t0) ∈ R}. Eine Funktion h : State → State 0 heißt Kripke-Morphismus, wenn das folgende Diagramm kommutiert: State h g State 0 K P(State) × P(At) = h × id g K0 0 P(State ) × P(At) In Worten: h ist ein Kripke-Morphismus, wenn h jeden Zustand s ∈ State auf einen Zustand s0 ∈ State 0 abbildet, der dieselben Atome erfüllt wie s, sowie jeden direkten Folgezustand von s auf einen direkten Folgezustand von s0. 205 7 Modallogik Kripke-Morphismen sind für Kripke-Strukturen offenbar das, was Σ-Homomorphismen für Σ-Algebren sind. Dementsprechend sind zwei Kripke-Strukturen K und K0 Kripkeisomorph, wenn es Kripke-Morphismen g : K → K0 und h : K0 → K mit g ◦ h = idState 0 und h ◦ g = idState gibt. Aufgabe Zeigen Sie, dass h : State → State 0 genau dann ein Kripke-Morphismus ist, wenn der Graph von h (siehe Abschnitt 3.2) eine K, K0-Bisimulation ist. o Die größte K, K0-Bisimulation heißt K, K0-Verhaltensäquivalenz und wird mit ∼K,K0 bezeichnet. Offenbar ist ∼K,K = ∼K . s ∈ State und s0 ∈ State 0 heißen elementar K, K0-äquivalent, wenn K im Zustand s dieselben modallogischen Formeln erfüllt wie im Zustand s0. Die Menge aller Paare elementar K, K0-äquivalenter Zustände bezeichnen wir mit ≈K,K0 , im Fall K = K0 mit ≈K . 206 7 Modallogik Satz 7.6 Hennessy-Milner-Theorem Seien K und K0 endlich verzweigt. Dann gilt ∼K,K0 = ≈K,K0 . Beweis. Wir zeigen zunächst: ∼K,K0 ⊆ ≈K,K0 . (1) (1) folgt aus der Definition elementarer K-Äquivalenz und folgender Eigenschaft: Für alle ϕ ∈ TML(At) und s, s0 ∈ State gilt: s ∼K,K0 s0 ⇒ (s ∈ gK∗ (ϕ) ⇔ s0 ∈ gK∗ 0 (ϕ)). (2) Beweis von (2) durch strukturelle Induktion über TML(At): Sei s ∼K,K0 s0. Dann gilt für alle x ∈ At, s∈ gK∗ (x) = gK (x) ⇔ x ∈ β(s) s∼K,K0 s0 = β 0(s0) ⇔ s0 ∈ gK0 (x) = gK∗ 0 (x). Für alle ϕ, ψ ∈ TML(At), s ∈ gK∗ (¬ϕ) = State \ gK∗ (ϕ) ind. hyp. ⇔ s0 ∈ State 0 \ gK∗ 0 (ϕ) = gK∗ 0 (ϕ)(s0), s ∈ gK∗ (ϕ ∧ ψ) = gK∗ (ψ) ∩ gK∗ (ϑ) ind. hyp. ⇔ s0 ∈ gK∗ 0 (ϕ) ∩ gK∗ 0 (ψ) = gK∗ 0 (ϕ ∧ ψ), s ∈ gK∗ (ϕ ∨ ψ) = gK∗ (ψ) ∪ gK∗ (ϑ) ind. hyp. s0 ∈ gK∗ 0 (ϕ) ∪ gK∗ 0 (ψ) = gK∗ 0 (ϕ ∨ ψ). ⇔ 207 7 Modallogik Wegen s ∼K,K0 s0 gilt ∀ t ∈ δ(s) ∃ t0 ∈ δ 0(s0) : t ∼K t0 und ∀ t0 ∈ δ 0(s0) ∃ t ∈ δ(s) : t ∼K,K0 t0. (3) Daraus folgt s ∈ gK∗ (2ϕ) ⇔ δ(s) ⊆ gK∗ (ϕ) (3), ind. hyp. δ 0(s0) ⊆ gK∗ 0 (ϕ) ⇔ s0 ∈ gK∗ 0 (2ϕ), s ∈ gK∗ (3ϕ) ⇔ δ(s) ∩ gK∗ (ϕ) 6= ∅ (3), ind. hyp. δ 0(s0) ∩ gK∗ 0 (ϕ) 6= ∅ ⇔ s0 ∈ gK∗ 0 (3ϕ). ⇔ ⇔ Zu zeigen bleibt die Umkehrung von (1): ≈K,K0 ⊆ ∼K,K0 . Da ∼K,K0 die größte K, K0-Bisimulation ist, genügt es zu zeigen, dass ≈K,K0 eine solche ist, dass also folgende Implikation gilt: 0 0 (4) β(s) = β (s ), s ≈K,K0 s0 ⇒ ∀ t ∈ δ(s) ∃ t0 ∈ δ 0(s0) : t ≈K,K0 t0, (5) ∀ t0 ∈ δ 0(s0) ∃ t ∈ δ(s) : t ≈ 0 t0. (6) K,K Sei s ≈K,K0 s0. Dann gilt für alle x ∈ At, x ∈ β(s) ⇔ s ∈ gK (x) = gK∗ 0 (x) ⇔ x ∈ β 0(s0), 208 7 Modallogik also (4). Ab hier folgen wir dem Beweis von [6], Satz 3.17, und zeigen (5). Sei t ∈ δ(s) und St = {u ∈ δ 0(s0) | t 6≈K u}. Dann gibt es für alle u ∈ St eine Formel ϕu ∈ TML(At) mit t ∈ gK∗ (ϕu) und u 6∈ gK∗ 0 (ϕu). Da K0 endlich verzweigt ist, ist δ 0(s0), also auch St, endlich und damit (K, t) ein Modell von ^ ϕ = {ϕu | u ∈ St}. Aus t ∈ δ(s) folgt s ∈ gK∗ 0 (3ϕ), also wegen s ≈K,K0 s0 auch s0 ∈ gK∗ 0 (3ϕ). Demnach gibt es t0 ∈ δ 0(s0) ∩ gK∗ 0 (ϕ). Wäre t0 in St, dann wäre t0 6∈ gK∗ 0 (ϕt0 ), also \ ^ 0 ∗ ∗ t 6∈ {gK0 (ϕu) | u ∈ St} = gK0 ( {ϕu | u ∈ St}) = gK∗ 0 (ϕ). t0 gehört also nicht zu St, d.h. t und t0 sind elementar K, K0-äquivalent. Analog erhält man (6). o 209 7 Modallogik Das Hennessy-Milner-Theorem zeigt die Charakterisierung der Verhaltensäquivalenz zweier Zustände s und s0 als deren Ununterscheidbarkeit: s und s0 sind genau dann verhaltensäquivalent, wenn es keine modallogische Formel gibt, die in s einen anderen Wahrheitswert hat als in s0. Approximative Konstruktion der Verhaltensäquivalenz T Der untere Kleene-Abschluss FK,∞ = n∈N FKn(State 2) von FK stimmt nach Satz 4.9 (iv) mit ∼K = gfp(FK ) überein, falls er FK -dicht ist. Um das zu zeigen, definieren wir zunächst die folgenden Approximationen von ∼K induktiv wie folgt: Für alle n ∈ N, ∼0 = ker(β), ( ∼n+1 = {s ∼n s0 | 0 0 0 ∀ t ∈ δ(s) ∃ t ∈ δ(s ) : t ∼n t , 0 0 0 ∀ t ∈ δ(s ) ∃ t ∈ δ(s) : t ∼n t ) }. 210 7 Modallogik Lemma 7.7 Für alle n ∈ N, ∼n = FKn(ker(β)). Beweis durch Induktion über n. ∼0 = ker(β) = FK0 (ker(β)). Sei s ∼n+1 s0, t ∈ δ(s) und t0 ∈ δ(s0). Nach Definition von s ∼n+1 s0 gilt β(s) = β(s0) und gibt es u0 ∈ δ(s0) und u ∈ δ(s) mit t ∼n u0 und u ∼n t0. Nach Induktionsvoraussetzung folgt (t, u0), (u, t0) ∈ FKn(ker(β)) ⊆ ker(β). Nach Definition von FK gehört daher (s, s0) zu FKn+1(ker(β)). Sei (s, s0) ∈ FKn+1(ker(β)). Nach Definition von FK gilt FKn+1(ker(β)) = FKn(FK (ker(β))) ⊆ FKn(ker(β)), also s ∼n s0 nach Induktionsvoraussetzung. Sei t ∈ δ(s) und t0 ∈ δ(s0). Nach Definition von FK gibt es u0 ∈ δ(s0) und u ∈ δ(s) mit (t, u0), (u, t0) ∈ FKn(ker(β)). Nach Induktionsvoraussetzung folgt t ∼n u0 und u ∼n t0. Nach Definition von ∼n+1 gilt daher s ∼n+1 s0. o 211 7 Modallogik Satz 7.8 Sei K = hδ, βi eine endlich verzweigte Kripke-Struktur. T Dann stimmt die K-Verhaltensäquivalenz mit ∼ω = n∈N ∼n überein. Beweis. Nach Lemma 7.7 gilt T T FK,∞ = n∈N FKn(State 2) = n∈N FKn+2(State 2) T = n∈N FKn+1(FK (ker(β) ∩ {(s, s0) ∈ State 2 | δ(s) = ∅ ⇔ δ(s0) = ∅})) T T T = n∈N FKn+1(FK (ker(β))) = n∈N FKn+2(ker(β)) = n∈N ∼n+2 = ∼ω . Wegen ∼K = gfp(FK ) bleibt nach Satz 4.9 (iv) zu zeigen, dass FK,∞ = ∼ω FK -dicht ist. Sei s ∼ω s0, t ∈ δ(s) und t0 ∈ δ(s0). Nach Definition von ∼ω gibt es für alle n > 0 t0n ∈ δ(s0) und tn ∈ δ(s) mit t ∼n−1 t0n und tn ∼n−1 t0. Da δ(s) und δ(s0) endlich sind, gibt es u ∈ δ(s) und u0 ∈ δ(s0) derart, dass für alle n > 0 kn, mn ≥ n existieren mit t ∼kn−1 t0kn = u0 und u = tmn ∼mn−1 t0, also t ∼n−1 u0 und u ∼n−1 t0 wegen ∼m⊆∼n für alle m ≥ n. Demnach gilt t ∼n u0 und u ∼n t0 für alle n ∈ N. Daraus folgt t ∼ω u0 und u ∼ω t0. Außerdem gilt β(s) = β(s0) wegen s ∼0 s0. Damit ergibt sich (s, s0) ∈ FK (∼ω ) aus der Definition von FK . Wir haben gezeigt, dass ∼ω FK -dicht ist. o 212 Sei K = hδ, βi : State → (P(State) × P(At)) eine Kripke-Struktur. Die Quotientenmenge State/∼K (siehe Abschnitt 5.5) lässt sich zu folgender KripkeStruktur erweitern: Kmin = hδmin, βmini : State/∼K → P(State/∼K ) × P(At) [s] 7→ ({[s0] | s0 ∈ δ(s)}, β(s)) Hier bleibt zu prüfen, ob Kmin([s]) unabhängig vom Repräsentanten s der Äquivalenzklasse [s] stets denselben Wert hat, d.h. ob für alle s ∼K t Folgendes gilt: δmin([s]) = δmin([t]), βmin([s]) = βmin([t]). (1) (2) Beweis von (1). Sei [s0] ∈ δmin([s]). Nach Definition von δmin gibt es u ∈ δ(s) mit u ∼K s0. Da ∼K eine K-Bisimulation ist, existiert v ∈ δ(t) mit u ∼K v. Also folgt [s0] ∈ δmin([t]) aus v ∼K u ∼K s0. Die Umkehrung δmin([t]) ⊆ δmin([s]) erhält man analog. Beweis von (2). Sei x ∈ βmin([s]). Nach Definition von βmin gilt x ∈ β(s). Da ∼K eine KBisimulation ist, folgt x ∈ β(s) = β(t) = βmin([t]). Die Umkehrung δmin([t]) ⊆ δmin([s]) erhält man analog. o 213 7 Modallogik Aufgabe Zeigen Sie, dass die natürliche Abbildung nat∼K : State → State/∼K (siehe Kapitel 5) ein Kripke-Morphismus ist. o Demnach ist der Graph von nat∼K eine K, Kmin-Bisimulation (siehe Aufgabe vor Satz 7.6), also in ∼K,K0 enthalten. Folglich ist jeder Zustand s von K nach Satz 7.6 zu seiner Äquivalenzklasse [s]∼K elementar äquivalent, d.h. erfüllt dieselben modallogischen Formeln wie [s]∼K . Dass Kmin unter allen Kripke-Strukturen K0, deren Zustandsmenge das Bild eines KripkeMorphismus h : K → K0 ist, bzgl. der Anzahl der Zustände minimal ist, zeigt folgender Satz: 214 7 Modallogik Satz 7.9 Sei K endlich verzweigt. Kmin-verhaltensäquivalente Zustände sind gleich. Die Anzahl der Zustände von Kmin kann also nicht weiter verringert werden, ohne dass nicht verhaltensäquivalente Zustände miteinander verschmolzen werden. T Beweis. Nach Satz 7.8 gilt ∼K = ∼ω = FK,∞ = n∈N FKn(State 2). Also genügt es zu zeigen, dass für alle n ∈ N und s, s0 ∈ State Folgendes gilt: [s] ∼Kmin [s0] =⇒ (s, s0) ∈ FKn(State 2). (3) Wir zeigen (3) durch Induktion über n. Wegen FK0 (State 2) = State 2 gilt (3) im Fall n = 0. Sei [s] ∼Kmin [s0]. Dann ist βmin([s]) = βmin([s0]) und für alle [t] ∈ δmin([s]) bzw. [t0] ∈ δmin([s0]) gibt es [u0] ∈ δmin([s0]) bzw. [u] ∈ δmin([s]) mit [t] ∼Kmin [u0] bzw. [u] ∼Kmin [t0]. Also ist β(s) = β(s0) nach Definition von βmin und für alle t ∈ δ(s) bzw. t0 ∈ δ(s0) gibt es u0 ∈ δ(s0) bzw. u ∈ δ(s) mit (t, u0) ∈ FKn(State 2) bzw. (u, t0) ∈ FKn(State 2) nach Definition von δmin und Induktionsvoraussetzung. Nach Definition von FK folgt (s, s0) ∈ FK (FKn(State 2)) = FKn+1(State 2). o 215 7 Modallogik 7.4 Minimierungsalgorithmus (Paull-Unger-Verfahren) Sei K = hδ, βi eine Kripke-Struktur mit endlicher Zustandsmenge State und < eine totale Ordnung auf State (siehe Kapitel 5). Die Approximation ∼n, n ∈ N, von ∼K wird über die Funktion Mn : {(s, s0) ∈ State 2 | s < s0} → 1 + P(State)2, n ∈ N, berechnet, die folgendermaßen definiert ist: Für alle s, s0 ∈ State mit s < s0, ( (δ(s), δ(s0)) falls β(s) = β(s0), 0 M0(s, s ) = sonst, 0 0 0 M (s, s ) falls für alle (S, S ) ∈ M (s, s ) Folgendes gilt: n n ∀ t ∈ S ∃ t0 ∈ S 0 : t = t0 ∨ Mn(min{t, t0}, max{t, t0}) 6= , 0 Mn+1(s, s ) = 0 0 0 0 0 ∀ t ∈ S ∃ t ∈ S : t = t ∨ M (min{t, t }, max{t, t }) 6= , n sonst. Während ∼0 auf β und alle Relationen ∼n mit n > 0 auf δ zugreifen, wird sowohl β als auch δ nur von M0, aber von keinem Mn mit n > 0 benutzt! 216 7 Modallogik Mn lässt sich als Dreiecksmatrix darstellen (siehe Beispiel unten und [29], Abschnitt 2.3, wo mit dem gleichen Verfahren deterministische Automaten minimiert werden). Für alle n ∈ N sei Rn = {(s, s0) ∈ State 2 | s < s0, Mn(s, s0) 6= }. Durch Induktion über n erhält man: ∼n = ∆State ∪ Rn ∪ Rn−1. Da State endlich ist, gibt es eine kleinste natürliche Zahl k mit Mk = Mn, also auch Rk = Rn für alle n ≥ k. Daraus folgt nach Satz 7.8: ∼K = ∼ω = ∆State ∪ Rk ∪ Rk−1. Beispiel 7.10 (+ http://www.cs.indiana.edu/cmcs/bisimulation.pdf) b3 a3 a2 b2 1 c3 d3 c2 217 7 Modallogik Der Graph stellt folgende Kripke-Struktur K = hδ, λs.∅i dar: State = {1, a2, b2, c2, a3, b3, c3, d3}, δ(1) = {b2, b3, c2, c3}, δ(a2) = {a3, c2}, δ(b2) = {a2, b3}, δ(c2) = {b2, c3}, δ(s) = ∅ für alle s ∈ {a3, b3, c3, d3}. Wir erhalten: ∼0 = State 2, ( ∼1 = {s ∼0 s0 | 0 0 0 ∀ t ∈ δ(s) ∃ t ∈ δ(s ) : t ∼0 t , ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ∼0 t0 ) } = {1, a2, b2, c2}2 ∪ {a3, b3, c3, d3}2, ( ) 0 0 0 ∀ t ∈ δ(s) ∃ t ∈ δ(s ) : t ∼1 t , ∼2 = {s ∼1 s0 | } 0 0 0 ∀ t ∈ δ(s ) ∃ t ∈ δ(s) : t ∼1 t = ∼1 Also stimmt ∼K mit ∼1 überein. Folglich ist State/∼K = {{1, a2, b2, c2}, {a3, b3, c3, d3}} die Zustandsmenge von Kmin. 218 7 Modallogik Die (mit + Expander2 erstellten) ∼0 und ∼1 entsprechenden “Dreiecksmatrizen” M0 bzw. M1 lauten wie folgt: 219 7 Modallogik 7.5 Verhaltensmodelle und finale Strukturen Die Funktion, die jede Menge A auf ihre Potenzmenge P(A) abbildet, ist ein – mit P bezeichneter – Funktor, der nicht nur Mengen auf Mengen, sondern auch Funktionen auf Funktionen abbildet. Dabei ist P wie folgt auf Funktionen f : A → B definiert: P(f ) : P(A) → P(B) C 7→ λC.f (C) P darf sich Funktor nennen, weil für alle f : A → B und g : B → C Folgendes gilt: P(g ◦ f ) = P(g) ◦ P(f ) und P(idA) = idP(A). Allgemein bildet ein Funktor jedes Objekt und jeden Morphismus einer Kategorie auf ein Objekt bzw. einen Morphismus derselben oder einer anderen Kategorie ab. All diese Begriffe entstammen der + Kategorientheorie, die sich mit universellen mathematischen Konstruktionen und Eigenschaften befasst. Der Typ eines Funktors ist also immer von der Form K → L, wobei K und L Kategorien sind. Im Fall des oben definierten Funktors P ist sowohl K als auch L die Kategorie Set der Mengen (als Objekte) und Funktionen (als Morphismen), also P : Set → Set. 220 7 Modallogik Jeder Funktor F : Set → Set definiert die Kategorie coAlgF der F -Coalgebren mit allen Funktionen α : A → F (A) (mit irgendeiner Menge A) als Objekten und allen Funktionen h : A → B, für die folgendes Diagramm für alle F -Coalgebren α : A → F (A) und β : B → F (B) kommutiert, als Morphismen: F (A) A h g B = F (h) g F (B) Z.B. sind die endlich verzweigten Kripke-Strukturen mit fester Atommenge At die Objekte der Kategorie der FAt-Coalgebren, wobei FAt : Set → Set wie folgt definiert ist: Für alle Mengen State, f : State → State 0, S ⊆ State und A ⊆ At, FAt(State) = Pfin (State) × P(At), FAt(f )(S, A) = (f (S), A). Wir nennen FAt den von At induzierten Kripke-Funktor. 221 7 Modallogik Die Morphismen von coAlgFAt sind offenbar Kripke-Morphismen (siehe Abschnitt 7.3). Die Menge Tree(P(At)) aller P(At)-markierten Bäume t : N∗ → 1 + P(At) (siehe Abschnitt 6.3) lässt sich zu folgender Kripke-Struktur erweitern: T (At) = hδ, βi : Tree(P(At)) → Pfin (Tree(P(At))) × P(At) t 7→ ({λw.t(iw) | i ∈ dom(t)}, t()). Anschaulich gesprochen, ist δ(t) die Menge der maximalen echten Unterbäume von t und β(t) die Markierung der Wurzel von t. Aufgabe Zeigen Sie, dass T (At) in coAlgFAt schwach final ist, d.h. es gibt von jeder FAt-Coalgebra einen Kripke-Morphismus nach T (At). o Nach Definition von T (At) gilt für die Schrittfunktion FT (At) : P(Tree(P(At))2) → P(Tree(P(At))2) der Verhaltensäquivalenz ∼T (At) Folgendes: 222 Für alle R ⊆ Tree(P(At))2, 7 Modallogik FT (At)(R) = {(t, t0) ∈ Tree(P(At))2 | t() = t0(), ∀ i ∈ dom(t) ∃ j ∈ dom(t0) : (λw.t(iw), λw.t0(jw)) ∈ R, ∀ j ∈ dom(t0) ∃ i ∈ dom(t) : (λw.t(iw), λw.t0(jw)) ∈ R}. M.a.W.: Zwei Bäume t, t0 ∈ Tree(P(At)) sind genau dann T (At)-verhaltensäquivalent, wenn für die maximalen Unterbäume t1, . . . , tm bzw. t01, . . . , t0n von t bzw. t0 Folgendes gilt: Für alle 1 ≤ i ≤ m gibt es 1 ≤ j ≤ n mit ti ∼T (At) t0j und für alle 1 ≤ j ≤ n gibt es 1 ≤ i ≤ m mit ti ∼T (At) t0j . Den Quotienten Beh(At) =def T (At)min (siehe Abschnitt 7.3) nennen wir Verhaltensmodell. Er ist final in coAlgFAt , d.h. von jeder F -Coalgebra gibt es genau einen Kripke-Morphismus nach Beh(At). Aufgabe Zeigen Sie, dass alle finalen FAt-Coalgebren Kripke-isomorph sind. o 223 7 Modallogik Ähnlich wie eine Σ-Algebra A durch die Termfaltung fold A : TΣ → A mit der Termalgebra TΣ in Beziehung steht (siehe Kapitel 5), so verbindet ein KripkeMorphismus unfold K : K → Beh(At) eine F -Coalgebra K mit dem Verhaltensmodell Beh(At). Während fold A(t) den Term t zu einem Wert in A faltet, entfaltet unfold K (s) den Zustand s in zur ∼T (At)-Äquivalenzklasse aller P(At)-markierten Bäume, deren Pfade alle möglichen, in s beginnenden Zustandsfolgen repäsentieren. Die Dualität zwischen fold A und unfold K geht noch weiter: • fold A ist der einzige Σ-Homomorphismus von TΣ nach A (siehe Kapitel 5); • unfold K ist der einzige Kripke-Morphismus von K nach Beh(At) (s.o.). So wie Faltungen für alle Signaturen gleich definiert sind, so sind werden Entfaltungen für andere Automatentypen als den durch FAt analog zu unfold K definiert. Konsequenzen der Eindeutigkeit von Entfaltungen wie das folgende Lemma gelten daher auch für andere Funktoren. 224 7 Modallogik Satz 7.11 Lambeks Lemma (für Kripke-Strukturen) Sei State = Tree(P(At))/∼T (At). Das oben definierte Verhaltensmodell Beh(At) : State → FAt(State) ist bijektiv. Beweis. Zunächst stellen wir fest, dass die Aussage nur gelten kann, weil FAt(State) Pfin (State) und nicht P(State) enthält. Andernfalls könnte Beh(At) wegen S ∼ 6= P(S) für alle Mengen S (siehe Isomorphien) gar nicht bijektiv sein. Das folgende kommutative Diagramm zeigt, dass Beh(At) selbst ein Kripke-Morphismus von Beh(At) in die Kripke-Struktur FAt(Beh(At)) ist: Beh(At) State FAt(State) Beh(At) g FAt(State) (1) FAt(Beh(At)) g FAt(FAt(State)) FAt(Beh(At)) In umgekehrter Richtung gibt es einen weiteren Kripke-Morphismus: Sei unfold = unfold FAt(Beh(At)). 225 7 Modallogik FAt(State) FAt(Beh(At)) FAt(FAt(State)) unfold (2) FAt(unfold ) g FAt(State) g State Beh(At) Aus der Kommutativität von (1) und (2) und der Funktoreigenschaft von FAt folgt, dass auch die Komposition unfold ◦ Beh(At) ein Kripke-Morphismus ist: State Beh(At) g FAt(State) Beh(At) (1) FAt(State) unfold FAt(Beh(At)) State (2) Beh(At) g g FAt(FAt(State)) FAt(State) FAt(Beh(At)) FAt(unfold ) Da es von jeder Kripke-Struktur (hier: Beh(At)) nach Beh(At) genau einen KripkeMorphismus gibt, stimmt unfold ◦ Beh(At) mit der Identität auf State überein, d.h. unfold ◦ Beh(At) = idState . (3) 226 7 Modallogik Damit ist Beh(At) bijektiv, wenn auch die Umkehrung gilt: Beh(At) ◦ unfold = idFAt(State). (4) Beweis von (4). (2) Beh(At) ◦ unfold = FAt(unfold ) ◦ FAt(Beh(At)) = FAt(unfold ◦ Beh(At)) (3) = FAt(idState ) = idFAt(State). o Der Beweis von Lambeks Lemma zeigt an einem einfachen Beispiel, wie Eigenschaften von Modellen mit Hilfe von Funktionsdiagrammen ohne Bezug auf – die manchmal recht komplexen – konkreten Repräsentationen der Modelle gezeigt werden können. Das ist durchaus vergleichbar mit der Formulierung von Algorithmen in höheren Programmiersprachen, die gegenüber der Implementierung in maschinenorientierten Sprachen in der Regel weitaus kompakter und überschaubarer ist. Modelleigenschaften sollten deshalb stets auf der Basis von allen irrelevanten Details befreiter Repräsentationen ihrer zugrundeliegenden Datenstrukturen verifiziert werden. In der Folge werden nicht nur die Beweise kürzer, nachvollziehbarer und fehlerfreier, sondern auch die Modelle flexibler, d.h. leichter an neue Anforderungen anpassbar (Stichwort adaptive und agile Software). 227 7 Modallogik Bezogen auf die oben definierte Baumrepräsentation der Elemente von Beh(At) besagt Lambeks Lemma, dass sich jeder Baum eindeutig zerlegen lässt in das Paar (T, A), das aus der Menge T seiner maximalen Unterbäume und seiner Wurzelmarkierung A besteht, und dass umgekehrt jedes solche Paar eindeutig einem Baum entspricht, dessen Menge maximaler Unterbäume mit T und dessen Wurzelmarkierung mit A übereinstimmt. So gesehen, ist die Aussage von Lambeks Lemma trivial. Das Entscheidende ist aber, dass die Bijektivität von Beh(At) nicht aus der Baumrepräsentation abgeleitet wurde, sondern allein aus der Charakterisierung von Beh(At) als finale F -Coalgebra (s.o.). Da alle finalen F -Coalgebren Kripke-isomorph sind, gilt Lambeks Lemma also nicht nur für Beh(At), sondern auch jede andere finale F -Coalgebra. Der kategorientheoretische Zugang zu Kripke-Strukturen kann ähnlich auch für Σ-Algebren (siehe Kapitel 5) gewählt werden, allerdings in dualer Weise: Eine Signatur Σ entspricht einem Funktor HΣ : Set → Set. Eine Σ-Algebra mit Trägermenge A entspricht keiner HΣ-Coalgebra, sondern einer HΣ-Algebra, d.h. einer Funktion α : HΣ(A) → A. α ist die Summenextension aller Operationen der Σ-Algebra. ΣHomomorphismen zwischen Σ-Algebren entsprechen Morphismen zwischen HΣ-Algebren. 228 7 Modallogik Näheres darüber in [30], Kapitel 14. Zurück zu Coalgebren: Modallogik, Verhaltensäquivalenz, elementare Äquivalenz und das Verhaltensmodell lassen sich analog zur Kategorie coAlgFAt endlich verzweigter KripkeStrukturen für andere Klassen von Coalgebren definieren. Betrachten wir als herausragendes Beispiel Moore-Automaten, die in vielen Bereichen der Informatik – vom Schaltwerksentwurf bis zum Übersetzerbau – bei der Modellierung eingesetzt werden. Ein Moore-Automat mit Eingabemenge In, Ausgabemenge Out ist eine Funktion M : State → G(State), wobei der Funktor G wie folgt definiert ist: Für alle Mengen State, State 0, f : State → State 0, g : In → State und z ∈ Out, G(State) = State In × Out, G(f )(g, z) = (f ◦ g, z). 229 7 Modallogik M ordnet also jedem Zustand s ∈ State ein Paar (g, z) zu, wobei g : In → State angibt, welche im Zustand s an den Automaten übergebene Eingabe zu welchem eindeutigen (!) Folgezustand führt, und z die im Zustand s erfolgte Ausgabe darstellt. Im Gegensatz zu Kripke-Strukturen sind Moore-Automaten deterministisch. weil zwar auch hier jeder Zustand mehrere Nachfolger haben kann. Die jeweilige Eingabe legt aber fest, welcher davon ausgewählt wird. Außerdem gibt es immer einen Folgezustand. Um Aussagen über Moore-Automaten zu formulieren, kann man die Operationen von AL verwenden und anstelle der modalen Operationen 3 und 2 eine Operation hxi für jede Eingabe x ∈ In. Die Signatur logischer Operationen lautet hier also Σ = AL ∪ {hxi | x ∈ In}. Out ist die Menge der atomaren Formeln. Interpretiert werden alle Formeln in folgender Σ-Algebra Pow (δ) mit Trägermenge P(State): Für alle x ∈ In, S ⊆ State und s ∈ State, s ∈ hxiPow (δ)(S) ⇔def δ(s)(x) ∈ S. 230 7 Modallogik Sei M = hδ, βi : State → G(State) ein Moore-Automat. Dann ist gM : Out → P(State) wie folgt definiert: Für alle z ∈ Out und s ∈ State, s ∈ gM(z) ⇔def z = β(s). ∗ (ϕ) die Menge der Zustände, die ϕ erfüllen. Wieder liefert gM Aufgabe Wie lauten wohl die Definitionen einer M-Bisimulation, der M-Verhaltensäquivalenz und eines Moore-Morphismus? Aufgabe Wie lautet der Minimierungsalgorithmus für Moore-Automaten? Das dem Verhaltensmodell Beh(At) für Kripke-Strukturen (s.o.) entsprechende Verhaltensmodell Beh(In, Out) für Moore-Automaten lässt sich als finale G-Coalgebra darstellen, also als diejenige G-Coalgebra, in die es von jeder G-Coalgebra aus genau einen Moore-Morphismus gibt. 231 7 Modallogik Da Moore-Automaten deterministisch sind, besteht die Zustandsmenge Beh(In, Out) nicht wie Beh(At) aus (Äquivalenzklassen von) Bäumen, sondern aus der Menge der Funktionen von In ∗ nach Out. δ und β sind darauf wie folgt definiert: ∗ ∗ β : Out In → Out f 7→ λx.λw.f (xw) f 7→ f () δ : Out In → (In → Out In ) ∗ ∗ Aufgabe Zeigen Sie, dass Out In im Fall In = 1 isomorph ist zur Menge Out N der Ströme über Out. ∗ Aufgabe Zeigen Sie, dass Out In im Fall Out = 2 isomorph ist zur Menge P(In ∗) der Teilmengen von In ∗, die auch als Menge der Sprachen über In bezeichnet wird. MooreAutomaten vom Typ State → State In × 2 heißen folglich auch (Sprach-)erkennende Automaten. Mit Formeln der Modallogik für Moore-Automaten kann z.B. die Bedeutung imperativer (= befehlsorientierter) Programme beschrieben werden. In ist dann die Menge der jeweils verwendeten Sprache Zuweisungen, Prozeduraufrufe, etc., Out die Menge der Ausgabewerte und State die Menge der Belegungen von Programmvariablen mit Ausgabewerten. 232 7 Modallogik Eine – Zusicherung genannte – Formel ϕ ⇒ hpiψ drückt aus, dass nach Ausführung des Programms p ψ gilt, falls vorher ϕ galt. Z.B. besagt (x = a) ⇒ hx := x ∗ 2i(x = a ∗ 2), dass die Zuweisung x := x ∗ 2 den Wert der Programmvariablen x verdoppelt. Programme, die nicht auf jeder Eingabe terminieren, lassen sich auf der Basis einer weiteren Klasse von Coalgebren verifizieren, den partiellen Automaten. Der entsprechende Funktor H wie folgt: Für alle Mengen State, H(State) = (1+State)In × Out. Hier bieten sich zwei modale Operatoren für jede Eingabe an, so dass wir Σ = AL ∪ {hxi | x ∈ In} ∪ {[x] | x ∈ In} als Signatur logischer Operationen für partielle Automaten erhalten. Out ist wieder die Menge der atomaren Formeln. 233 7 Modallogik Interpretiert werden alle Formeln in folgender Σ-Algebra Pow (δ) mit Trägermenge P(State): Für alle x ∈ In, S ⊆ State und s ∈ State, s ∈ hxiPow (δ)(S) ⇔def δ(s)(x) ∈ S, s ∈ [x]Pow (δ)(S) ⇔def δ(s)(x) ∈ S oder δ(s)(x) = . Die Zusicherung ϕ ⇒ [p]ψ bedeutet, dass • nach Ausführung von p ψ gilt, falls vorher ϕ galt, oder • p nicht terminiert, während ϕ ⇒ hpiψ die Termination von p miteinschließt. 234 7 Modallogik Highlights Signatur der Modallogik: ML = AL ∪ {2, 3 : 1 → 1} Semantik der Modallogik: ML-Algebra Pow (δ) mit Trägermenge P(State) und – von einer Kripke-Struktur K = hδ, βi : State → (P(State) × P(At)) abhängiger – folgender Interpretation von ML: Für alle S, S 0 ⊆ State, ⊥Pow (δ) = ∅, >Pow (δ) = State, ¬Pow (δ)(S) = State \ S, ∧Pow (δ)(S, S 0) = S ∩ S 0, ∨Pow (δ)(S, S 0) = S ∪ S 0, ⇒Pow (δ) (S, S 0) = (State \ S) ∪ S 0, 2Pow (δ)(S) = {s ∈ State | δ(s) ⊆ S}, 3Pow (δ)(S) = {s ∈ State | δ(s) ∩ S 6= ∅}. Die zweite Komponente von K induziert eine Belegung gK : At → P(State) der Atome: Für alle x ∈ At und s ∈ State, gK (x) =def {s ∈ State | x ∈ β(s)}. 235 7 Modallogik (K, s) erfüllt ϕ oder (K, s) ist ein Modell von ϕ, geschrieben: K |=s ϕ, wenn s zu gK∗ (ϕ) gehört. K heißt endlich verzweigt, wenn für alle s ∈ State δ(s) endlich ist. Sei K endlich verzweigt. Die folgende Funktion ml2al : TML(At) × State → TAL(At × State) übersetzt modallogische in aussagenlogische Formeln: Für alle x ∈ At, s ∈ State, c ∈ {⊥, >}, ⊗ ∈ {∨, ∧, ⇒} und ϕ, ψ ∈ TML(At), ml2al (x, s) = (x, s), ml2al (c, s) = c, ml2al (¬ϕ, s) = ¬ml2al (ϕ, s), ml2al (ϕ ⊗ ψ, s) = ml2al (ϕ, s) ⊗ ml2al (ψ, s), V ml2al (2ϕ, s) = {ml2al (ϕ, s0) | s0 ∈ δ(s)}, W ml2al (3ϕ, s) = {ml2al (ϕ, s0) | s0 ∈ δ(s)}. Korrektheit der Übersetzung (Satz 7.1): K |=s ϕ ⇔ uncurry(χ ◦ gK ) |= ml2al (ϕ, s). 236 7 Modallogik Alle in der Bitalgebra gültigen AL-Gleichungen sind auch in Pow (δ) gültig. Darüberhinaus erfüllt Pow (δ) die folgenden AL-Gleichungen: ¬3x ≡ 2¬x 3(x ∨ y) ≡ 3x ∨ 3y ¬2x ≡ 3¬x 2(x ∧ y) ≡ 2x ∧ 2y (negM ) (distDia/distBox ) Sei K0 = hδ 0, β 0i : State 0 → (P(State 0) × P(At)) eine weitere Kripke-Struktur. K, K0-Verhaltensäquivalenz: ∼K,K0 =def gfp(FK,K0 ), wobei FK,K0 : P(State × State 0) → P(State × State 0) {(s, s0) ∈ State × State 0 | β(s) = β 0(s0), R 7→ ∀ t ∈ δ(s) ∃ t0 ∈ δ 0(s0) : (t, t0) ∈ R, ∀ t0 ∈ δ 0(s0) ∃ t ∈ δ(s) : (t, t0) ∈ R} Elementare K, K0-Äquivalenz: ≈K,K0 =def {(s, s0) ∈ State 2 | ∀ ϕ ∈ TML(At) : K |=s ϕ ⇔ K |=s0 ϕ} Hennessy-Milner-Theorem: Sind K und K0 endlich verzweigt, dann gilt ∼K,K0 = ≈K,K0 . 237 7 Modallogik Approximative Konstruktion der K-Verhaltensäquivalenz ∼K =def ∼K,K : ∼0 = ker(β), ( ∼n+1 = {s ∼n s0 | ∼ω = T n∈N 0 0 0 ∀ t ∈ δ(s) ∃ t ∈ δ(s ) : t ∼n t , ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ∼n t0 ) }, ∼n . Satz 7.8: Ist K endlich verzweigt, dann gilt ∼ω = ∼K . Minimale Kripke-Struktur: Kmin = hδmin, βmini : State/∼K → Pfin (State/∼K ) × P(At) [s] 7→ ({[s0] | s0 ∈ δ(s)}, β(s)) Für alle s ∈ State, s ∼K,Kmin [s]. Satz 7.9: Ist K endlich verzweigt, dann gilt ∼Kmin = ∆State/∼K . 238 7 Modallogik Minimierung nach Paull-Unger durch schrittweise Bildung von Dreiecksmatrizen: Für alle n ∈ N und s, s0 ∈ State mit s < s0, ( (δ(s), δ(s0)) falls β(s) = β(s0), 0 M0(s, s ) = sonst, 0 0 0 M (s, s ) falls für alle (S, S ) ∈ M (s, s ) Folgendes gilt: n n ∀ t ∈ S ∃ t0 ∈ S 0 : t = t0 ∨ Mn(min{t, t0}, max{t, t0}) 6= , 0 Mn+1(s, s ) = 0 0 0 0 0 ∀ t ∈ S ∃ t ∈ S : t = t ∨ M (min{t, t }, max{t, t }) 6= , n sonst, Rn = {(s, s0) ∈ State 2 | s < s0, Mn(s, s0) 6= }. =⇒ ∼n = ∆State ∪ Rn ∪ Rn−1. (1) Ist State endlich, dann gibt es eine kleinste natürliche Zahl k mit Mk = Mn, also auch Rk = Rn für alle n ≥ k. Folglich stimmt die K-Verhaltensäquivalenz wegen (1) und nach Satz 7.8 mit ∆State ∪ Rk ∪ Rk−1 überein. 239 8 Prädikatenlogik (predicate logic, first-order logic) In der Prädikatenlogik sind Atome keine Variablen, sondern Ausdrücke der Form p(t1, . . . , tn) mit einem Prädikat p und Termen t1, . . . , tn über einer Menge X von Individuenvariablen. Diese stehen nicht für Aussagen, sondern für Elemente der Trägermenge einer Algebra A, die die Terme interpretiert (siehe Kapitel 5). Die Algebra wird um eine Interpretation der Prädikate als Relationen ergänzt und dann Struktur genannt. Zu den aussagenlogischen Operationen kommen für jede Individuenvariable x die beiden einstelligen Operationen ∃x und ∀x (Existenz- bzw. Allquantor) hinzu, die x binden, was bedeutet, dass der Wert einer Formel ∃xϕ oder ∀xϕ unter einer Belegung g : X → A nicht von g(x) abhängt. Modallogisch ausgedrückt, sind die Belegungen von X in A die Zustände, die den Wahrheitswert einer Formel bestimmen. Dementsprechend könnte man Belegungen von At in 2 als aussagenlogische Zustände bezeichnen, was suggeriert, dass – zumindest von der Semantik her – Aussagenlogik und Prädikatenlogik spezielle Modallogiken sind. 240 8 Prädikatenlogik Was die Parameter der Auswertung einer Formel angeht, so liegt die Prädikatenlogik jedoch eher zwischen Aussagen- und Modallogik: • In der Aussagenlogik gibt es nur einen Parameter, nämlich eine Belegung der Atome durch Wahrheitswerte. • In der Modallogik hängt der Wert einer Formel von einer Kripke-Struktur ab. • In der Prädikatenlogik gibt es drei Parameter: eine Belegung der Individuenvariablen durch Elemente (der Trägermenge) einer Algebra A, eine Interpretation der (nichtlogischen) Operationen, die in den Termen der Formel vorkommen, und eine Interpretation der Prädikate durch Relationen auf A. Die letzten beiden Parameter werden zu einer Struktur im u.g. Sinne zusammengefasst. Syntax Sei X eine Menge von Individuenvariablen. PL = AL ∪ {(∃x) : 1 → 1 | x ∈ X} ∪ {(∀x) : 1 → 1 | x ∈ X} ist die Signatur der prädikatenlogischen Operationen. 241 8 Prädikatenlogik Eine Signatur Σ gemäß Kapitel 5 besteht aus Operationen. Zusätzlich kann Σ jetzt auch – Prädikate genannte – Relationssymbole enthalten, die – wie die Operationen – jeweils eine feste Stelligkeit haben. Zur Unterscheidung von Operationen f : n → 1 schreiben wir p : n für ein Prädikat mit Stelligkeit n. Ein-, zwei- bzw. dreistellige Prädikate werden unär, binär bzw. ternär genannt. Ein Ausdruck der Form p(t1, . . . , tn) heißt Σ-Atom über X, falls p : n ein Prädikat von Σ ist und t1, . . . , tn Σ-Terme über X sind. AtΣ(X) bezeichnet die Menge aller Σ-Atome über X. AtΣ =def AtΣ(∅). PL Σ-Atome über Χ p1 p2 p3 t1 t2 t3 x1 x2 y1 y2 z1 z2 Prädikate von Σ Σ-Terme über Χ Variablen von X prädikatenlogische Formel über X = PL-Term über AtΣ(Χ) 242 8 Prädikatenlogik Ein PL-Term ϕ über AtΣ(X) heißt (prädikatenlogische) Σ-Formel über X. Semantik Eine Σ-Struktur A ist eine Σ-Algebra, die für alle n ∈ N jedem n-stelligen Prädikat p ∈ Σ eine n-stellige Relation pA ⊆ An zuordnet. Hat A die Trägermenge TΣ und sind die Operationen von Σ so auf TΣ interpretiert wie in Kapitel 5, dann heißt A Herbrand-Struktur. Struct Σ bezeichnet die Klasse aller Σ-Strukturen. Σ-Homomorphismen h : A → B zwischen Σ-Strukturen A und B sind mit den jeweiligen Interpretationen nicht nur der Operationen, sondern auch der Prädikate von Σ verträglich, d.h. für alle Prädikate p ∈ Σ ist h(pA) ⊆ pB . Entsprechendes gilt für Σ-Kongruenzen ∼ auf einer Σ-Struktur A: Neben der Verträglichkeit von ∼ mit Σ wird gefordert, dass für alle Prädikate p : n ∈ Σ und a1, . . . , an, b1, . . . , bn ∈ A Folgendes gilt: a1 ∼ b1 ∧ · · · ∧ an ∼ bn ⇒ (a1, . . . , an) ∈ pA ⇔ (b1, . . . , bn) ∈ pB . 243 8 Prädikatenlogik In der Modallogik trat an die Stelle der Bitalgebra, auf der die Semantik aussagenlogischer Formeln aufbaut, die ML-Algebra Pow (δ), wobei δ die Transitionsfunktion der jeweils zugrundeliegenden Kripke-Struktur K ist. Hat K die Zustandsmenge State, dann ist P(State) die Trägermenge von Pow (δ). Wie im Abschnitt Gleichungslogik in anderen Logiken von Kapitel 5 erwähnt wurde, werden Zustände in der Prädikatenlogik als Belegungen von X in einer Σ-Struktur A dargestellt. Folglich tritt die Stelle der von Pow (δ) die wie folgt definierte PL-Algebra Pow (A) mit Trägermenge P(AX ): Für alle Σ-Strukturen A und S, S 0 ⊆ AX , ⊥Pow (A) = ∅, >Pow (A) = AX , ¬Pow (A)(S) = AX \ S, ∧Pow (A)(S, S 0) = S ∩ S 0, ∨Pow (A)(S, S 0) = S ∪ S 0, ⇒Pow (A) (S, S 0) = (AX \ S) ∪ S 0, (∀x)Pow (A)(S) = {h ∈ AX | ∀ a ∈ A : h[a/x] ∈ S}, (∃x)Pow (A)(S) = {h ∈ AX | ∃ a ∈ A : h[a/x] ∈ S}. 244 Die Σ-Struktur A bestimmt die Belegung gA : AtΣ(X) → P(AX ), unter der prädikatenlogische Formeln in Pow (A) – durch Anwendung der aus gA abgeleiteten Auswertungsfunktion gA∗ (siehe Kapitel 5) – ausgewertet werden: Für alle p(t1, . . . , tn) ∈ AtΣ(X), gA(p(t1, . . . , tn)) =def {h ∈ AX | (h∗(t1), . . . , h∗(tn)) ∈ pA}. incAtΣ(X) = gA TPL(AtΣ(X)) gA∗ ≺ AtΣ(X) (1) P(AX ) Sei ϕ, ψ ∈ TPL(AtΣ(X)) und h : X → A. (A, h) erfüllt ϕ oder ist ein Modell von ϕ, geschrieben: A |=h ϕ, wenn h zu gA∗ (ϕ) gehört. h heißt dann auch Lösung von ϕ in A. A erfüllt ϕ oder ist ein Modell von ϕ, geschrieben: A |= ϕ, wenn A |=h ϕ für alle h ∈ AX gilt. Eine Herbrand-Struktur, die ϕ erfüllt, heißt Herbrand-Modell von ϕ. 245 8 Prädikatenlogik Darauf aufbauend sind Erfüllbarkeit, Allgemeingültigkeit, Folgerung und Äquivalenz prädikatenlogischer Formeln wie in Kapitel 2 definiert, wobei der zugrundeliegende semantische Bereich D gegeben ist durch Struct Σ bzw. die Menge aller Paare, die aus einer Σ-Struktur A und einer Funktion h : X → A bestehen. Wir schreiben ϕ ⇔A h ψ, falls (A, h) genau dann ϕ erfüllt, wenn (A, h) ψ erfüllt, und ϕ ⇔A ψ, falls A genau dann ϕ erfüllt, wenn A ψ erfüllt. var (ϕ) bezeichnet die Menge aller Variablen von X, die in ϕ vorkommen, aber nicht nur als Teil einer Operation wie ∃x oder ∀x. x ∈ var (ϕ) kommt in ϕ gebunden vor, wenn es eine Teilformel ∃xψ oder ∀xψ von ϕ mit x ∈ var (ψ) gibt. x ∈ var (ϕ) ist eine freie Variable von ϕ, wenn x mindestens einmal nicht gebunden in ϕ vorkommt. free(ϕ) bezeichnet die Menge der freien Variablen von ϕ. ϕ heißt geschlossen, wenn free(ϕ) leer ist. Sei {x1, . . . , xn} = free(ϕ). all(ϕ) =def ∀x1 . . . ∀xnϕ heißt Allabschluss von ϕ. any(ϕ) =def ∃x1 . . . ∃xnϕ heißt Existenzabschluss von ϕ. 246 8 Prädikatenlogik Aufgabe Zeigen Sie (1)-(3) von Kapitel 6 für geschlossene prädikatenlogische Formeln. Aufgabe Zeigen Sie, dass eine Σ-Struktur A eine Σ-Formel ϕ genau dann erfüllt, wenn sie all(ϕ) erfüllt. Sei σ : X → TΣ(X) und t ein Term oder eine quantorenfreie Formel. Anstelle von σ ∗(t) schreiben wir fortan auch kurz tσ. Lemma 8.1 Jede erfüllbare quantorenfreie Σ-Formel hat ein Herbrand-Modell. Beweis. Sei A eine Σ-Struktur und H die Herbrand-Struktur mit folgender Interpretation der Prädikate p : n ∈ Σ: Für alle (t1, . . . , tn) ∈ TΣn, (t1, . . . , tn) ∈ pH ⇔def (fold A(t1), . . . , fold A(tn)) ∈ pA. (2) Durch strukturelle Induktion über TAL(AtΣ(X)) zeigen wir, dass für alle σ : X → TΣ Folgendes gilt: ∗ gH (ϕ) = {σ : X → TΣ | fold A ◦ σ ∈ gA∗ (ϕ)}. (3) 247 8 Prädikatenlogik Für alle p(t1, . . . , tn) ∈ AtΣ(X), (1) ∗ gH (p(t1, . . . , tn)) = gH (p(t1, . . . , tn)) = {σ : X → TΣ | (t1σ, . . . , tnσ) ∈ pH } (2) = {σ : X → TΣ | (fold A(t1σ), . . . , fold A(tnσ)) ∈ pA} Lemma 5.3 (i) = {σ : X → TΣ | ((fold A ◦ σ)∗(t1), . . . , (fold A ◦ σ)∗(tn)) ∈ pA} (3) = {σ : X → TΣ | fold A ◦ σ ∈ gA(p(t1, . . . , tn))} = {σ : X → TΣ | fold A ◦ σ ∈ gA∗ (p(t1, . . . , tn))}. Für alle ϕ, ψ ∈ TAL(AtΣ(X)), ∗ ∗ gH (¬ϕ) = TΣX \ gH (ϕ) ind. hyp. = TΣX \ {σ : X → TΣ | fold A ◦ σ ∈ gA∗ (ϕ)} = {σ : X → TΣ | fold A ◦ σ ∈ AX \ gA∗ (ϕ)} = {σ : X → TΣ | fold A ◦ σ ∈ gA∗ (¬ϕ)}, ∗ ∗ ∗ gH (ϕ ∧ ψ) = gH (ϕ) ∩ gH (ϕ) ind. hyp. = {σ : X → TΣ | fold A ◦ σ ∈ gA∗ (ϕ) ∩ gA∗ (ψ)} = {σ : X → TΣ | fold A ◦ σ ∈ gA∗ (ϕ ∧ ψ)}, ∗ ∗ ∗ gH (ϕ ∨ ψ) = gH (ϕ) ∪ gH (ϕ) ind. hyp. = {σ : X → TΣ | fold A ◦ σ ∈ gA∗ (ϕ) ∪ gA∗ (ψ)} = {σ : X → TΣ | fold A ◦ σ ∈ gA∗ (ϕ ∨ ψ)}. 248 8 Prädikatenlogik Damit endet der Beweis von (3). Sei A ein Modell von ϕ. Dann gilt gA∗ (ϕ) = AX , also insbesondere fold A ◦ σ ∈ gA∗ (ϕ) für alle σ : X → TΣ. Da TΣ die Trägermenge von H ist, folgt aus (3), dass σ zu g ∗(ϕ) gehört. Demnach gilt g ∗(ϕ) = TΣX . Also ist H ein Modell von ϕ. o Substitution von Variablen durch Terme in einer prädikatenlogischen Formel Sei ϕ eine prädikatenlogische Σ-Formel über X und σ : X → TΣ(X). Da TΣ(X) eine Σ-Algebra ist, gibt es laut Kapitel 5 den Σ-Homomorphismus σ ∗ : TΣ(X) → TΣ(X), der jedem Term t die Σ-Instanz von t zuordnet, d.h. denjenigen Term, der aus t durch Ersetzung der Variablen von t durch ihre jeweiligen Bilder unter σ zuordnet. Wollen wir eine solche Ersetzung in den Termen einer prädikatenlogischen Formel durchführen, müssen wir berücksichtigen, dass Variablen durch Quantoren gebunden sein können. Diese Variablen dürfen nicht ersetzt werden! 249 8 Prädikatenlogik Außerdem würde durch die Ersetzung freier Variablen durch Terme, in denen zufälligerweise Variablen vorkommen, die in der Formel gebunden sind, eine zusätzliche Bindung entstehen, die durch die Umbenennung der gebundenen Variablen verhindert werden muss. Die Funktion σ ∗ : TPL(AtΣ(X)) → TPL(AtΣ(X)), die die Ersetzung durchführt und dabei die Existenz von Quantoren in obiger Weise berücksichtigt, setzt die gleichnamige Funktion σ ∗ : TΣ(X) → TΣ(X) von Termen auf Formeln fort. Sie ist wie folgt definiert: • Für alle f : n → 1 ∈ Σ und t1, . . . , tn ∈ TΣ(X), σ ∗(f (t1, . . . , tn) = f (σ ∗(t1), . . . , σ ∗(tn)). • Für alle p : n ∈ Σ und t1, . . . , tn ∈ TΣ(X), σ ∗(p(t1, . . . , tn) = p(σ ∗(t1), . . . , σ ∗(tn)). • Für alle f : n → 1 ∈ AL und ϕ1, . . . , ϕn ∈ TPL(AtΣ(X)), σ ∗(f (ϕ1, . . . , ϕn)) = f (σ ∗(ϕ1), . . . , σ ∗(ϕn)). • Für alle Q ∈ {∃, ∀}, x ∈ X und ϕ ∈ TPL(AtΣ(X)), ( S 0 0 ∗ Qx σ[x /x] (ϕ) falls x ∈ V = var(σ(free(ϕ) \ {x })), ϕ,σ,x def σ ∗(Qxϕ) = Qxσ[x/x]∗(ϕ) sonst. 250 8 Prädikatenlogik Wegen σ[x/x](x) = x verhindert σ[x/x] die Ersetzung von x durch σ(x). Qx σ* Qx' φ φ x y z x' σ(y) σ(y) σ(z) σ(z) x x Offenbar gehört x genau dann zu Vϕ,σ,x, wenn x in einem Term t vorkommt, der bei der Anwendung von σ[x/x]∗ auf ϕ eine freie Variable von ϕ substituiert und damit ein neues gebundenes Vorkommen von x in ϕ einführen würde, wenn wir x nicht durch x0 ersetzen würden. Wie folgendes Beispiel zeigt, kann das bewirken, dass Qxϕ erfüllbar ist, die σ-Instanz von Qxϕ jedoch nicht! 251 8 Prädikatenlogik Sei ϕ ∈ TPL(AtΣ(X)) und σ, σ1, . . . , σn : X → TΣ(X). Fortan schreiben wir auch ϕσ anstelle von σ ∗(ϕ), σ1 . . . σn anstelle von σn∗ ◦ · · · ◦ σ2∗ ◦ σ1. Beispiel 8.2 Sei ϕ = ∃xp(x, y), A = {a, b}, pA = {(a, b)} und h = λz.b. Dann gilt h ∈ gA∗ (ϕ) ⇔ {h[a/x], h[b/x]} ∩ gA(p(x, y)) 6= ∅ ⇔ {h[a/x], h[b/x]} ∩ {h0 ∈ AX | (h0(x), h0(y)) ∈ pA} = 6 ∅ ⇔ {(h[a/x](x), h[a/x](y)), (h[b/x](x), h[b/x](y))} ∩ pA 6= ∅ ⇔ {(a, b), (b, b)} ∩ pA 6= ∅, also A |=h ϕ. Sei σ = {x/y}. Dann ist Vϕ,σ,x = {x}. Ohne Umbenennung erhält man !! h ∈ gA∗ (ϕσ) = gA∗ ((∃xp(x, y))σ) = gA∗ (∃xp(x, y)σ[x/x]) = gA∗ (∃xp(x, x)) ⇔ {h[a/x], h[b/x]} ∩ gA(p(x, x)) 6= ∅ ⇔ {h[a/x], h[b/x]} ∩ {h0 ∈ AX | (h0(x), h0(x)) ∈ pA} = 6 ∅ 252 8 Prädikatenlogik ⇔ {(h[a/x](x), h[a/x](x)), (h[b/x](x), h[b/x](x))} ∩ pA 6= ∅ ⇔ {(a, a), (b, b)} ∩ pA 6= ∅, also A 6|=h ϕσ. / Mit Umbenennung wird’s richtig: !! h ∈ gA∗ (ϕσ) = gA∗ ((∃xp(x, y))σ) = gA∗ (∃x0p(x, y)σ[x0/x]) = gA∗ (∃x0p(x0, x)) ⇔ {h[a/x0], h[b/x0]} ∩ {h0 ∈ AX | (h0(x0), h0(x)) ∈ pA} = 6 ∅ ⇔ {(h[a/x0](x0), h[a/x0](x)), (h[b/x0](x0), h[b/x0](x))} ∩ pA 6= ∅ ⇔ {(a, b), (b, b)} ∩ pA 6= ∅, also A |=h ϕσ. , o Lemma 8.3 (Substitutionslemma für prädikatenlogische Formeln) Für alle Σ-Strukturen A, h : X → A, σ : X → TΣ(X) und ϕ ∈ TPL(AtΣ(X)), A |=h ϕσ ⇔ A |=h∗◦σ ϕ. (1) 253 8 Prädikatenlogik Beweis. Wir zeigen zunächst, dass für alle ϕ ∈ TPL(AtΣ(X)), x ∈ X, y ∈ X \ Vϕ,σ,x, z ∈ free(ϕ) und a ∈ A Folgendes gilt: (h[a/y]∗ ◦ σ[y/x])(z) = (h∗ ◦ σ)[a/x](z). (2) Fall 1: z = x. Wegen (h[a/y]∗◦σ[y/x])(x) = h[a/y]∗(σ[y/x](x)) = h[a/y]∗(y) = h[a/y](y) = a = (h∗◦σ)[a/x](x) gilt (2). Fall 2: z ∈ free(ϕ) \ {x }. Aus var(σ(z)) ⊆ Vϕ,σ,x und y 6∈ Vϕ,σ,x folgt y 6∈ var(σ(z)), also auch (2): x6=z (h[a/y]∗ ◦ σ[y/x])(z) = h[a/y]∗(σ[y/x](z)) = h[a/y]∗(σ(z)) y6∈var(σ(z)) = h∗(σ(z)) x6=z = (h∗ ◦ σ)(z) = (h∗ ◦ σ)[a/x](z). Nun zeigen wir (1) durch strukturelle Induktion über TPL(AtΣ(X)). Für alle p(t1, . . . , tn) ∈ AtΣ(X), A |=h p(t1, . . . , tn)σ ⇔ h ∈ gA∗ (p(t1, . . . , tn)σ) = gA∗ (p(t1σ, . . . , tnσ)) = gA(p(t1σ, . . . , tnσ)) 254 8 Prädikatenlogik ⇔ ((h∗ ◦ σ)∗(t1), . . . , (h∗ ◦ σ)∗(tn)) = (h∗(t1σ), . . . , h∗(tnσ)) ∈ pA ⇔ h∗ ◦ σ ∈ gA(p(t1, . . . , tn)) = gA∗ (p(t1, . . . , tn)) ⇔ A |=h∗◦σ p(t1, . . . , tn). Für alle ϕ, ψ ∈ TPL(AtΣ(X)), A |=h ¬ϕσ ⇔ h ∈ gA∗ (¬ϕσ) = AX \ gA∗ (ϕσ) ind. hyp. ⇔ h∗ ◦ σ ∈ AX \ gA∗ (ϕ) = gA∗ (¬ϕ) ⇔ A |=h∗◦σ ¬ϕ, A |=h (ϕ ∧ ψ)σ ⇔ h ∈ gA∗ ((ϕ ∧ ψ)σ) = gA∗ (ϕσ) ∩ gA∗ (ψσ) ind. hyp. ⇔ h∗ ◦ σ ∈ gA∗ (ϕ) ∩ gA∗ (ψ) = gA∗ (ϕ ∧ ψ) ⇔ A |=h∗◦σ ϕ ∧ ψ und analog A |=h (ϕ ∨ ψ)σ ⇔ A |=h∗◦σ ϕ ∨ ψ. Sei x ∈ X und ϕ ∈ TPL(AtΣ(X)). Nach Definition von σ ∗ gibt es eine Variable y ∈ X \ V∀xϕ,σ,x mit (∀xϕ)σ = ∀yϕσ[y/x]. Daraus folgt A |=h (∀xϕ)σ ⇔ h ∈ gA∗ ((∀xϕ)σ) = gA∗ (∀yϕσ[y/x]) ⇔ ∀ a ∈ A : h[a/y] ∈ gA∗ (ϕσ[y/x]) ind. hyp. ⇔ ∀ a ∈ A : h[a/y]∗ ◦ σ[y/x] ∈ gA∗ (ϕ) 255 8 Prädikatenlogik (2) ⇔ ∀ a ∈ A : (h∗ ◦ σ)[a/x] ∈ gA∗ (ϕ) ⇔ h∗ ◦ σ ∈ gA∗ (∀xϕ) ⇔ A |=h∗◦σ ∀xϕ. Analog erhält man A |=h (∃xϕ)σ ⇔ A |=h∗◦σ ∃xϕ. o Aus Lemma 8.3 folgt, dass die Kleisli-Komposition von Substitutionen assoziativ bleibt (siehe Kapitel 5), wenn man sie von Σ-Termen auf Σ-Formeln fortsetzt. Lemma 8.4 (Äquivalenzlemma für prädikatenlogische Formeln) Sei ϕ ∈ TPL(AtΣ(X)) und A eine Σ-Struktur. (i) Für alle σ, τ : X → TΣ(X) mit σ ≡A τ gilt ϕσ ⇔A ϕτ . (ii) Für alle Σ-Kongruenzen ∼ auf A und h, h0 ∈ AX gilt: A |=h ϕ ∧ h ∼ h0 ⇒ A |=h0 ϕ. Beweis. (i): Sei h : X → A. σ ≡A τ impliziert (h∗ ◦ σ)(x) = h∗(σ(x)) = h∗(τ (x)) = (h∗ ◦ τ )(x) (3) für alle x ∈ X. Daraus folgt 256 8 Prädikatenlogik (1) (3) (1) A |=h ϕσ ⇔ A |=h∗◦σ ϕ ⇔ A |=h∗◦τ ϕ ⇔ A |=h ϕτ, also ϕσ ⇔A ϕτ . (ii) erhält man durch strukturelle Induktion über TPL(AtΣ(X)). Sei h ∼ h0. Für alle (p(t1, . . . , tn) ∈ AtΣ(X) und 1 ≤ i ≤ n gilt h∗(ti) ∼ h0∗(ti), also A |=h p(t1, . . . , tn)) ⇔ h ∈ gA∗ (p(t1, . . . , tn)) = gA(p(t1, . . . , tn)) ⇔ (h∗(t1) . . . , h∗(tn)) ∈ pA ⇔ (h0∗(t1) . . . , h0∗(tn)) ∈ pA ⇔ h0 ∈ gA(p(t1, . . . , tn)) = gA(p(t1, . . . , tn)) ⇔ A |=h0 p(t1, . . . , tn). Die Induktionsschritte ergeben sich analog zum Beweis von (1) oder Lemma 8.1 (3) aus der induktiven Definition von gA∗ . o 8.1 Normalformen Die Normalisierung prädikatenlogischer Formeln zielt darauf ab, sie in erfüllbarkeitsäquivalente aussagenlogische Formeln über AtΣ(X) umzuwandeln, so dass ihre Erfüllbarkeit mit Hilfe zu prädikatenlogischen Verallgemeinerungen aussagenlogischer Schnitt- oder Tableau-Ableitungen überprüft werden kann. 257 8 Prädikatenlogik Wir werden hier nur Schnittableitungen verallgemeinern. Tableau-Kalküle für prädikatenlogische Formeln werden in [7], [20] und [36] vorgestellt. Aufgabe Sei A eine Σ-Struktur, x, y ∈ X, Q ∈ {∃, ∀} und ϕ, ψ, ϑ Σ-Formeln mit x 6∈ free(ϑ). Zeigen Sie, dass Pow (A) folgende PL-Gleichungen erfüllt: ¬∃xϕ ≡ ∀x¬ϕ ¬∀xϕ ≡ ∃x¬ϕ ∃x(ϕ ∨ ψ) ≡ ∃xϕ ∨ ∃xψ ∃x(ϕ ∧ ϑ) ≡ ∃xϕ ∧ ϑ ∃x(ϑ ∧ ϕ) ≡ ϑ ∧ ∃xϕ ∀x(ϕ ∧ ψ) ≡ ∀xϕ ∧ ∀xψ ∀x(ϕ ∨ ϑ) ≡ ∀xϕ ∨ ϑ Qxϑ ≡ ϑ Qxϕ ≡ Qy(ϕ{y/x}) ∀x(ϑ ∨ ϕ) ≡ ϑ ∨ ∀xϕ (negQ) (distEx ) (distAll ) (removeQ) (rename) 258 8 Prädikatenlogik Eine Σ-Formel heißt Negationsnormalform über AtΣ(X) (NNF), wenn ⇒ in ihr nicht vorkommt und ¬ nur direkt vor Atomen. Seien Σ, Σ0 Signaturen mit Σ ⊆ Σ0 und A eine Σ0-Struktur. Das Σ-Redukt A|Σ von A ist die Σ-Struktur mit derselben Trägermenge und Interpretation der Symbole von Σ wie A. Die Normalisierung einer prädikatenlogischen Formel zielt vor allem auf die Eliminierung ihrer Existenzquantoren ab. Wegen der dazu erforderlichen Einführung zusätzlicher Operationen in die Formel (s.u.) ist die normalisierte zur ursprünglichen nur in folgendem Sinne äquivalent: Eine Σ-Formel ϕ und eine Σ0-Formel ψ heißen erfüllbarkeitsäquivalent bzgl. Σ, geschrieben: ϕ ≈Σ ψ, wenn es für alle Σ-Strukturen A und h ∈ AX eine Σ0-Struktur B gibt, deren Σ-Redukt mit A übereinstimmt und die folgende Äquivalenz erfüllt: A |=h ϕ ⇔ B |=h ψ. Aufgabe Zeigen Sie, dass die Erfüllbarkeitsäquivalenz bzgl. Σ0 (!) mit der Äquivalenz in allen Σ0-Strukturen übereinstimmt. o 259 8 Prädikatenlogik Satz 8.6 Sei x ∈ X, ϕ ∈ TPL(AtΣ(X)), {x1, . . . , xn} = free(ϕ) \ {x }, f eine – Skolemfunktion genannte – n-stellige Operation, Σ0 = Σ ] {f } und σ = {f (x1, . . . , xn)/x}. ∃x ≈Σ φ x x1 (i) ∃xϕ ≈Σ ϕσ. ... φ xn f x1 x1 ... ... xn xn (ii) Sei ϑ ∈ TPL(AtΣ(X)) und z ∈ X. Dann gilt: ϑ{∃xϕ/z} ≈Σ ϑ{ϕσ/z}. Beweis von (i). Sei B eine Σ0-Struktur mit B|Σ = A, h ∈ AX und a = f B (h(x1), . . . , h(xn)). 260 8 Prädikatenlogik Wir zeigen zunächst: h∗ ◦ σ = h[a/x]. (4) Nach Definition von h∗ gilt h∗(σ(x)) = h∗(f (x1, . . . , xn)) = f B (h(x1), . . . , h(xn)) = a = h[a/x](x) und h∗(σ(y)) = h(y) = h[a/x](y) für alle y ∈ X \ {x}. Also gilt (4). Daraus folgt (1) (4) B |=h ϕσ ⇔ B |=h∗◦σ ϕ ⇔ B |=h[a/x] ϕ. (5) Sei nun A |=h ∃xϕ. Dann gibt es a ∈ A mit A |=h[a/x] ϕ. Wir definieren eine Σ0-Struktur B wie folgt: B|Σ = A und für alle (a1, . . . , an) ∈ An, f B (a1, . . . , an) = a. Da f in ϕ nicht vorkommt, gilt B |=h[a/x] ϕ, also B |=h ϕσ wegen (5). Sei B |=h ϕσ und a = f B (h(x1), . . . , h(xn)). (5) impliziert B |=h[a/x] ϕ, also A |=h[a/x] ϕ, weil f in ϕ nicht vorkommt. Daraus folgt A |=h ∃xϕ. (ii) folgt aus (i), weil ≈Σ mit PL verträglich ist. o Eine prädikatenlogische Formel ∀x1 . . . ∀xnϕ heißt Skolemnormalform (SNF), wenn ϕ eine implikative Normalform über AtΣ(X) ist (siehe Kapitel 6). 261 8 Prädikatenlogik Satz 8.7 Jede prädikatenlogische Formel ψ hat eine erfüllbarkeitsäquivalente Skolemnormalform. Beweis. Zunächst wird ψ durch Anwendung von negAL- und negQ-Gleichungen in eine NNF ψ1 überführt. Dann werden die Quantoren von ψ1 durch Anwendung von distEx -, distAll -, removeQ- und rename-Gleichungen soweit wie möglich nach rechts geschoben. Anschließend wird die resultierende Formel ψ2 durch Anwendung von Gleichungen der Form ϑ{∃xϕ/z} ≡ ϑ{ϕσ/z}, (6) deren Komponenten die Bedingungen von Satz 8.6 (ii) erfüllen, in eine zu ψ2 erfüllbarkeitsäquivalente Formel ψ3 ohne Existenzquantoren transformiert. Durch Anwendung von rename-Gleichungen und Inversen von distAll -Gleichungen werden die Allquantoren von ψ3 nach links geschoben, bis eine äquivalente Formel ∀x1 . . . ∀xnψ4 mit paarweise verschiedenen Variablen x1, . . . , xn und quantorenfreier Formel ψ4 entsteht. ψ4 wird durch die Anwendung gültiger AL-Gleichungen (siehe Kapitel 6) in eine äquivalente KNF ψ5 transformiert und diese in die INF ψ6 = inf (ψ5) (siehe Satz 6.1 (11)). 262 8 Prädikatenlogik Zusammengefasst ergibt sich folgende Kette von Äquivalenzen, wobei A eine Σ-Struktur, h ∈ AX , Σ0 die durch die Anwendungen von (6) definierte Erweiterung von Σ und B die gemäß Satz 8.6 (i) aus (A, h) gebildete Σ0-Struktur ist: A B B ψ ⇔A h ψ1 ⇔h ψ2 ≈Σ ψ3 ⇔h ∀x1 . . . ∀xn ψ4 ⇔h ∀x1 . . . ∀xn ψ5 ⇔B h ∀x1 . . . ∀xn ψ6 . ∀x1 . . . ∀xnψ6 ist also die gewünschte Skolemnormalform. (6) könnte auch an anderer Stelle des Normalisierungsprozesses angewendet werden. Die hier genannte Schrittfolge stellt jedoch sicher, dass bei jeder Anwendung von (6) die Teilformel ϕ möglichst klein ist und daher die auf der rechten Seite von (6) eingeführte Operation f (siehe Satz 8.6 (i)) eine möglichst niedrige Stelligkeit hat. o 263 8 Prädikatenlogik Satz 8.8 Eine Menge Φ prädikatenlogischer Gentzenformeln ist genau dann erfüllbar, wenn ihre Herbrand-Expansion HE (Φ) = {ϕσ | ϕ ∈ Φ, σ : X → TΣ} (im aussagenlogischen Sinne) erfüllbar ist. Beweis. Wegen Lemma 8.1 genügt es zu zeigen, dass ϕ genau dann ein Herbrand-Modell hat, wenn HE (Φ) ein aussagenlogisches Modell hat. Sei H ein Herbrand-Modell von Φ und σ : X → TΣ. Dann gibt es für alle Gentzenformeln ϕ ⇒ ψ von Φ ein Atom atϕ,ψ in ϑ oder ϑ0 mit σ 6∈ gH (atϕ,ψ ) bzw. σ ∈ gH (atϕ,ψ ). Wir bilden daraus folgende (aussagenlogische) Belegung g : AtΣ(X) → 2: Für alle ΣAtome at über X, g(at) =def gH (at)(σ). Dann gilt g(atϕ,ψ ) = 0 bzw. g(atϕ,ψ ) = 1, also g(ϕ ⇒ ψ) = 1 für alle Gentzenformeln ϕ ⇒ ψ von Φ. Da σ beliebig gewählt wurde, ist g ist ein aussagenlogisches Modell von HE (Φ). 264 8 Prädikatenlogik Sei umgekehrt g : AtΣ(X) → 2 ein aussagenlogisches Modell von HE (Φ) und H die Herbrand-Struktur mit folgender Interpretation der Prädikate p ∈ Σ. Sei n = arity(σ). Für alle t1, . . . , tn ∈ TΣ, (t1, . . . , tn) ∈ pH ⇔def g(p(t1, . . . , tn)) = 1. (7) Sei σ : X → TΣ. Nach Voraussetzung gibt es für alle Gentzenformeln ϕ ⇒ ψ von Φ • einen Faktor atϑ,ϑ0 von ϑ mit g(atϑ,ϑ0 σ) = 0 • oder einen Summanden atϑ,ϑ0 von ϑ0 mit g(atϑ,ϑ0 σ) = 1. (*) (**) Sei atϑ,ϑ0 = p(t1, . . . , tn). Im Fall (*) erhalten wir (7) g(p(t1σ, . . . , tnσ) = g(atϑ,ϑ0 σ) = 0 ⇔ (t1σ, . . . , tnσ) 6∈ pH ∗ ∗ ⇔ σ 6∈ gH (p(t1, . . . , tn)) = gH (atϑ,ϑ0 ) ⇒ σ 6∈ gH (ϑ) ⇒ σ ∈ gH (ϕ ⇒ ψ). Im Fall (**) erhalten wir (7) g(p(t1σ, . . . , tnσ) = g(atϑ,ϑ0 σ) = 1 ⇔ (t1σ, . . . , tnσ) ∈ pH ∗ ∗ ⇔ σ ∈ gH (p(t1, . . . , tn)) = gH (atϑ,ϑ0 ) ⇒ σ ∈ gH (ϑ0) ⇒ σ ∈ gH (ϕ ⇒ ψ). 265 8 Prädikatenlogik Also gilt H |=σ ϕ ⇒ ψ für alle Gentzenformeln ϕ ⇒ ψ von Φ. Da σ beliebig gewählt wurde, ist H ein Modell von Φ. o 8.2 Schnittkalkül Während die aussagenlogische Schnittregel das gleiche Atom aus zwei Gentzenformeln herausschneidet, ist die unten definierte prädikatenlogische Schnittregel auch auf zwei verschieden Atome anwendbar, sofern diese unifizierbar sind, d.h. eine gemeinsame Instanz haben (siehe Kapitel 5): Sei σ, τ : X → TΣ(X). σ subsumiert τ , geschrieben: σ ≤ τ , wenn es ρ : X → TΣ(X) mit σρ = τ gibt. Seien t, u Atome oder Terme. σ unifiziert oder ist ein Unifikator von t und u, wenn tσ = uσ gilt. Subsumiert ein Unifikator von t und u alle Unifikatoren von t und u, dann nennen wir ihn einen allgemeinster Unifikator (most general unifier; mgu) von t und u. 266 8 Prädikatenlogik Die folgenden Funktionen unify : (AtΣ(X) ∪ TΣ(X))2 → 1 + TΣ(X)X , 0 S unify : n∈N(TΣ(X)n × TΣ(X)n) → 1 + TΣ(X)X berechnen einen mgu zweier Atome oder Terme bzw. zweier gleichlanger Termtupel, sofern diese unifizierbar sind. Sie liefern den Wert , wenn die zu unifizierenden Ausdrücke an der gleichen Baumposition mit verschiedenen Operationen oder Prädikaten markiert sind oder der occur check x ∈ var(f t) (s.u.) erfolgreich ist. Er verhindert, dass eine Variable x durch einen Term t ersetzt wird, der keine Variable ist, aber x enthält. Wenn sie nicht verhindert wird, würde sich eine solche Ersetzung unendlich oft wiederholen. M.a.W.: Ein Unifikator von x und t müsste x und t den unendlichen Term t{t/x}{t/x} . . . zuweisen. Der gehört aber nicht zu TΣ(X). unify und unify 0 sind wie folgt definiert: Für alle f, g ∈ Σ, t, u ∈ TΣ(X), ts, us ∈ TΣ(X)∗ und x ∈ X, ( unify 0(ts, us) falls f = g, unify(f (ts), g(us)) = sonst, 267 8 Prädikatenlogik ( falls x ∈ var(f (ts)), unify(f (ts), x) = unify(x, f (ts)) = unify(f (ts), x), {f (ts)/x} sonst, = {x/y}, στ falls σ = unify(t, u) 6= und unify 0(cons(t, ts), cons(u, us)) = τ = unify 0(map(σ)(ts), map(σ(us)) 6= , sonst, unify(x, y) unify 0(, ) = incX , wobei map(σ)(t1, . . . , tn) =def (t1σ, . . . , tnσ). Die Funktion cons wurde in Beispiel 4.16 definiert. Der mögliche Wert von unify oder unify 0 zeigt das Scheitern der Algorithmus. Jeder von verschiedene Wert ist ein mgu der jeweiligen Parameterterme bzw. -atome. Da die Argumente von unify nur endlich viele Variablen enthalten, hat jede von unify berechnete Substitution σ endlichen Support supp(σ) =def {x ∈ X | xσ 6= x}. 268 8 Prädikatenlogik Außerdem garantiert der – durch die Abfrage x ∈ var(f t) realisierte – o.g. occur check, dass kein Term von σ(supp(σ)) Variablen von supp(σ) enthält. Der occur check kann auch dann zum Scheitern von unify(t, t0) führen, wenn keine Variable von t in t0 vorkommt. Z.B. ersetzt unify bei der Unifikation von f (x, x) und f (y, g(y)) zunächst die Variable x durch y, so dass der Algorithmus nun f (y, y) und f (y, g(y)), also u.a. y mit g(y) unifizieren muss. Würde er jetzt nicht abbrechen, sondern y durch g(y) ersetzen, dann hätte er im nächsten Schritt f (g(y), g(y)) und f (g(y), g(g(y))) zu unifizieren, usw. Eine injektive Substitution σ heißt Variablenumbenennung, wenn σ(X) eine Teilmenge von X ist. Aufgabe Zeigen Sie, dass es für alle t, t0 ∈ TΣ(X) genau dann eine Variablenumbenennung σ mit tσ = t0 gibt, wenn t t0 subsumiert und t0 t subsumiert. o Der prädikatenlogische Schnittkalkül PSK besteht aus drei Regeln: 269 8 Prädikatenlogik Einführungsregel Φ`ϕ Summandregel Φ ` ϕ ⇒ ψ ∨ ϑ ∨ ϑ0 Φ ` ϕσ ⇒ ψσ ∨ ϑσ Faktorregel Φ ` ϑ ∨ ϑ0 ∧ ϕ ⇒ ψ Φ ` ϑσ ∧ ϕσ ⇒ ψσ ϕ ∈ Φ ⊆ TPL(AtΣ(X)) ϕ, ψ ∈ TPL(AtΣ(X)), ϑ, ϑ0 ∈ AtΣ(X), σ = unify(ϑ, ϑ0) ϕ, ψ ∈ TPL(AtΣ(X)), ϑ, ϑ0 ∈ AtΣ(X), σ = unify(ϑ, ϑ0) Prädikatenlogische Schnittregel (binäre Resolution) ϕ, ψ, ϕ0, ψ 0 ∈ TPL(AtΣ(X)), ϑ, ϑ0 ∈ AtΣ(X), Φ ` ϕ ⇒ ψ ∨ ϑ, Φ ` ϑ0 ∧ ϕ0 ⇒ ψ 0 Φ ` ϕτ σ ∧ ϕ0σ ⇒ ψτ σ ∨ ψ 0σ σ = unify(ϑτ, ϑ0), τ ist eine Variablenumbenennung mit var(ϕτ ∨ ψτ ∨ ϑτ ) k var(ϑ0 ∨ ϕ0 ∨ ψ 0) 270 8 Prädikatenlogik Jede zur Gentzenformel des Sukzedenten der Schnittregel äquivalente Gentzenformel heißt Resolvente der beiden Gentzenformeln des Antezedenten. Letzterer enthält zwei unifizierbare Atome ϑ und ϑ0, die wegen der Kommutativität von ∨ bzw. ∧ nicht notwendig am Ende bzw. Anfang stehen. Eine PSK -Widerlegung einer Menge Φ von Gentzenformeln ist eine PSK -Ableitung von Φ ` ⊥. Beispiele Schnittwiderlegung der Gentzenformelmenge Φ = {ϕ1, ϕ2, ϕ3} mit ϕ1 = p(y) ∧ p(f (a)) ⇒ q(x), ϕ2 = > ⇒ p(x), ϕ3 = p(g(b, y)) ∧ q(b) ⇒ ⊥. Φ ` p(y) ∧ p(f (a)) ⇒ q(x) Einführung von ϕ1 Φ ` p(f (a)) ⇒ q(x) Faktorregelanwendung auf ϕ1 wegen unify(p(y), p(f (a))) = {f (a)/y} 271 8 Prädikatenlogik Φ ` > ⇒ p(x) Einführung von ϕ2 Φ ` > ⇒ q(x) Resolvente von ϕ2 und p(f (a)) ⇒ q(x) wegen unify(p(x), p(f (a))) = {f (a)/x} Φ ` p(g(b, y)) ∧ q(b) ⇒ ⊥ Einführung von ϕ3 Φ ` p(g(b, y)) ⇒ ⊥ Resolvente von > ⇒ q(x) und ϕ3 wegen unify(q(x), q(b)) = {b/x} Φ ` ⊥ Resolvente von ϕ2 und p(g(b, y)) ⇒ ⊥ wegen unify(p(x), p(g(b, y))) = {g(b, y)/x} Schnittwiderlegung der Gentzenformelmenge Φ = {ϕ1, ϕ2, ϕ3} mit ϕ1 = > ⇒ p(f (y)) ∨ q(y), ϕ2 = p(x) ⇒ ⊥, ϕ3 = q(x) ∧ q(f (b)) ⇒ ⊥. Φ ` > ⇒ p(f (y)) ∨ q(y) Einführung von ϕ1 Φ ` p(x) ⇒ ⊥ Einführung von ϕ2 272 8 Prädikatenlogik Φ ` > ⇒ q(y) Resolvente von ϕ1 und ϕ2 wegen unify(p(f (y)), p(x)) = {f (y)/x} Φ ` q(x) ∧ q(f (b)) ⇒ ⊥ Einführung von ϕ3 Φ ` q(f (b)) ⇒ ⊥ Faktorregelanwendung auf q(x) ∧ q(f (b)) ⇒ ⊥ wegen unify(q(x), q(f (b)) = {f (b)/x} Φ ` ⊥ Resolvente von > ⇒ q(y) und q(f (b)) ⇒ ⊥ wegen unify(q(y), q(f (b))) = {f (b)/y} Schnittwiderlegung der Gentzenformelmenge Φ = {ϕ1, ϕ2} mit ϕ1 = > ⇒ p(f (x), y) ∨ p(y, f (x)), ϕ2 = p(f (c), x) ⇒ ⊥. Φ ` > ⇒ p(f (x), y) ∨ p(y, f (x)) Einführung von ϕ1 Φ ` > ⇒ p(f (x), f (x)) Faktorregelanwendung auf ϕ1 wegen unify(p(f (x), y), p(y, f (x))) unify 0((f (x), y), (y, f (x))) = {f (x)/y}unify(f (x), f (x)) = {f (x)/y} 273 8 Prädikatenlogik Φ ` p(f (c), x) ⇒ ⊥ Einführung von ϕ2 Φ ` ⊥ Resolvente von > ⇒ p(f (x), f (x)) und ϕ2 wegen unify(p(f (x), f (x)){z/x}, p(f (c), x)) unify(p(f (z), f (z)), p(f (c), x)) unify 0((f (z), f (z)), (f (c), x)) = {c/z}unify(f (c), x) = {c/z}{f (c)/x} = {c/z, f (c)/x} o Aufgabe Zeigen Sie, dass die Widerlegung der Gentzenformelmenge {> ⇒ p(x) ∨ p(x0), p(y) ∧ p(y 0) ⇒ ⊥} eine Summand- oder Faktorregelanwendung benötigt. o Satz 8.9 (Korrektheit prädikatenlogischer Schnittableitungen) Sei Φ eine endliche Menge von Gentzenformeln über AtΣ(X) und ψ eine Gentzenformel. (i) Aus Φ `PSK ψ folgt Φ |= ψ. 274 8 Prädikatenlogik (ii) Aus Φ `PSK ⊥ folgt, dass Φ unerfüllbar ist. Beweis von (i). Es genügt zu zeigen, dass aus dem Antezendenten der Summand-, Faktorund Schnittregel der jeweilige Sukzedent folgt. Daraus erhält man (i) durch Induktion über die Anzahl der Summand- bzw. Faktorregelanwendungen und Resolventen einer PSK -Ableitung von Φ ` ψ. Fall 1: ϕ1 ϕ2 ist die Summandregel. Dann gilt ϕ1 = (ϕ ⇒ ψ ∨ ϑ ∨ ϑ0) und ϕ2 = (ϕσ ⇒ ψσ ∨ ϑσ) für Formeln bzw. Substitutionen ϕ, ϑ, ϑ0, ψ, σ, die die Anwendbarkeitsbedingungen der Summandregel erfüllen. Sei A |= ϕ1 und h ∈ AX mit A |=h ϕσ. Nach Lemma 8.3 folgt A |=h∗◦σ ϕ, also A |=h∗◦σ ψ ∨ ϑ ∨ ϑ0 wegen A |= ϕ1. Also gilt A |=h ψσ ∨ ϑσ ∨ ϑ0σ, wieder nach Lemma 8.3. Wegen ϑσ = ϑ0σ folgt A |=h ψσ ∨ ϑσ. Da h beliebig gewählt wurde, schließen wir A |= ϕ2. Fall 2: Fall 3: ϕ1 ϕ2 ist ϕ1 ϕ2 ϕ3 die Faktorregel. Der Beweis verläuft analog zu Fall 1. ist die Schnittregel. Dann gilt ϕ1 = (ϕ ⇒ ψ ∨ ϑ), ϕ2 = (ϑ0 ∧ ϕ0 ⇒ ψ 0) und ϕ3 = ϕτ σ ∧ ϕ0σ ⇒ ψτ σ ∨ ψ 0σ 275 8 Prädikatenlogik für Formeln bzw. Substitutionen ϕ, ϕ0, ϑ, ϑ0, ψ, ψ 0, τ, σ, die die Anwendbarkeitsbedingungen der Schnittregel erfüllen. Sei A |= ϕ1 ∧ϕ2 und h ∈ AX mit A |=h ϕτ σ ∧ϕ0σ. Nach Lemma 8.3 folgt A |=h∗◦τ σ ϕ und A |=h∗◦σ ϕ0, also A |=h∗◦τ σ ψ ∨ ϑ wegen A |= ϕ1. Nach Lemma 8.3 folgt A |=h ψτ σ ∨ ϑτ σ. Fall 3.1: A |=h ψτ σ. Dann gilt A |=h ψτ σ ∨ ψ 0σ. Da h beliebig gewählt wurde, schließen wir A |= ϕ3. Fall 3.2: A |=h ϑτ σ. Dann gilt A |=h ϑ0σ wegen ϑτ σ = ϑ0σ. Nach Lemma 8.3 folgt A |=h∗◦σ ϑ0. Wegen A |=h∗◦σ ϕ0 und A |= ϕ2 folgt A |=h∗◦σ ψ 0, also A |=h ψ 0σ wieder nach Lemma 8.3. Daraus folgt A |=h ψτ σ ∨ ψ 0σ. Da h beliebig gewählt wurde, schließen wir A |= ϕ3. V V Beweis von (ii). Sei Φ `PSK ⊥. Aus (i) folgt Φ |= ⊥, also ist Φ unerfüllbar. o Lemma 8.10 (Lifting-Lemma) Seien ϕ1, ϕ2 Gentzenformeln über AtΣ(X), ψ1 ∈ HE (ϕ1), σ : X → TΣ, und ψ3 eine aussagenlogische Resolvente von ψ1 und ϕ2σ. 276 8 Prädikatenlogik Dann gibt es eine einer Gentzenformel ϕ3, eine PSK -Ableitung von {ϕ1, ϕ2} ` ϕ3 und ρ0 : X → TΣ mit ϕ3ρ0 = ψ3 und σ = γ 0ρ0, wobei γ 0 die Komposition der im Laufe der Ableitung gebildeten mgus ist. Die aus der aussagenlogischen Resolvente gebildete PSK -Ableitung besteht aus möglicherweise leeren Folgen von Anwendungen der Summand -bzw. Faktorregel auf ϕ1 bzw. ϕ2 und einer anschließenden Anwendung der Schnittregel: ψ1 = ϕ1τ σ ϕ2 σ ϕ1 ϕ2 .. .. .. .. . . aussagenlogischer Faktorregel - .... .. Summandregel .. .. .. anwendungen .. Schnitt anwendungen .. .. .. .. . . ≺0 g g ϕ1τ γ1 ψ3 = ϕ3ρ ϕ2 γ 2 prädikatenlogischer Schnitt ≺ ϕ3 Beweis. Wegen ψ1 ∈ HE (ϕ1) gibt es eine Variablenumbenennung τ mit var(ϕ1τ )kvar(ϕ2) und ψ1 = ϕ1τ σ. 277 8 Prädikatenlogik Da ψ3 eine aussagenlogische Resolvente von ψ1 und ϕ2σ ist, gibt es Formeln ϕ, ϕ0, ψ, ψ 0 und Atome ϑ1, . . . , ϑm, ϑ01, . . . , ϑ0n mit ϕ1 = ϕ ⇒ ψ ∨ ϑ1 ∨ · · · ∨ ϑm, ψ3 = ϕτ σ ∧ ϕ0σ ⇒ ψτ σ ∨ ψ 0σ ϕ2 = ϑ01 ∧ · · · ∧ ϑ0n ∧ ϕ0 ⇒ ψ 0, und ϑiτ σ = ϑ0j σ für alle 1 ≤ i ≤ m und 1 ≤ j ≤ n. Insbesondere werden sowohl die Atome ϑ1τ, . . . , ϑmτ als auch die Atome ϑ01, . . . , ϑ0n von σ unifiziert. Also gibt es einen mgu γ1 ≤ σ der Atome ϑ1τ, . . . , ϑmτ und einen mgu γ2 ≤ σ der Atome ϑ01, . . . , ϑ0n mit var(ϕ1τ γ1)kvar(ϕ2γ2). Folglich ist τ −1γ1 ein mgu von ϑ1, . . . , ϑm, und wir erhalten durch (m-1)-fache Anwendung der Summandregel auf ϕ1 und (n-1)-fache Anwendung der Faktorregel auf ϕ2 die Formeln ϕ1τ γ1 = ϕτ γ1 ⇒ ψτ γ1 ∨ ϑ1τ γ1 bzw. ϕ2γ2 = ϑ01γ2 ∧ ϕ0γ2 ⇒ ψ 0γ2. Da ϕ1τ und ϕ2 keine gemeinsamen Variablen haben, lässt sich X als Summe der Mengen var(ϕ1τ ) und X \ var(ϕ2) darstellen. Also gilt ϕ1τ γ = ϕ1τ γ1, ϕ2γ = ϕ2γ2 und γ ≤ σ für die Summenextension γ = [γ1, γ2]. 278 8 Prädikatenlogik Wegen γ ≤ σ gibt es eine Substitution ρ mit γρ = σ. Wegen ϑiτ σ = ϑ0j σ unifiziert ρ die Atome ϑ1τ γ und ϑ01γ. Also gibt es einen mgu ξ dieser Atome und eine Substitution ρ0 mit ξρ0 = ρ. Da var(ϕ1τ γ) = var(ϑ1τ γ1) und var(ϑ01γ) = var(ϑ01γ2) disjunkt sind, benötigen wir keine weitere Variablenumbenennung, um die Schnittregel auf ϕ1τ γ und ϕ2γ anzuwenden, was zur Resolvente ϕ3 = ϕτ γξ ∧ ϕ0γξ ⇒ ψτ γξ ∨ ψ 0γξ führt. Also gibt es eine PSK -Ableitung von {ϕ1, ϕ2} ` ϕ3. Aus σ = γρ = γξρ0 folgt ψ3 = ϕτ σ ∧ ϕ0σ ⇒ ψτ σ ∨ ψ 0σ = ϕτ γξρ0 ∧ ϕ0γξρ0 ⇒ ψτ γξρ0 ∨ ψ 0γξρ0 = ϕ3ρ0. Demnach gilt die Behauptung des Lemmas für γ 0 = γξ. o Das folgende Theorem überträgt Satz 6.4 auf unendliche Mengen aussagenlogischer Gentzenformeln. Es wird in Satz 8.12 auf Herbrand-Expansionen angewendet. 279 8 Prädikatenlogik Satz 8.11 (Vollständigkeit aussagenlogischer Schnittwiderlegungen von Gentzenformelmengen) Sei Φ eine unerfüllbare Menge von (aussagenlogischen) Gentzenformeln über einer abzählbaren Menge von Atomen. Dann gilt Φ `ASK ⊥. Zusammen mit Satz 6.3 (i) folgt daraus, dass Φ genau dann unerfüllbar ist, wenn Φ `ASK ⊥ gilt. Beweis. Wir folgen dem Beweis von [9], Satz 1.49, und zeigen die Behauptung durch Kontraposition. Sei Φ 6`ASK ⊥ und x1, x2, x3, . . . eine Abzählung der Atome von Φ. Der konsistente Abschluss von Φ ist die folgendermaßen definierte Menge: S closure(Φ) = n∈N Φn, Φ0 = Φ, ( Φn+1 = Φn ∪ {xn ⇒ ⊥} falls Φn ∪ {xn} `ASK ⊥, Φn ∪ {xn} falls Φn ∪ {xn} 6`ASK ⊥. 280 8 Prädikatenlogik Durch Induktion über n zeigen wir zunächst, dass Φn 6` ⊥ für alle n ∈ N gilt: Nach Voraussetzung ist ⊥ nicht aus Φ0 = Φ ableitbar. Sei ⊥ nicht aus Φn ableitbar. Fall 1: Φn ∪ {xn} 6`ASK ⊥. Dann gilt Φn+1 = Φn ∪ {xn} 6`ASK ⊥. Fall 2: Φn ∪ {xn} `ASK ⊥. Dann ist Φn+1 = Φn ∪ {xn ⇒ ⊥}. Wäre ⊥ aus Φn+1 ableitbar, dann müsste ⊥ wegen Φn 6`ASK ⊥ die Resolvente des Schnittes von xn ⇒ ⊥ mit einer Gentzenformel von Φn sein. Diese kann aber nur xn ⇒ ⊥ sein, d.h. xn müsste zu Φn gehören. Also würde gelten: Φn ∪ {xn} = Φn `ASK ⊥. Also gilt Φn 6`ASK ⊥ für alle n ∈ N. Angenommen, es gilt closure(Φ) `ASK ⊥. Da jede Ableitung aus closure(Φ) nur endlich viele Formeln von closure(Φ) benutzt und für alle n ∈ N Φn in Φn+1 enthalten ist, gäbe es n ∈ N derart, dass alle in einer Ableitung von closure(Φ) ` ⊥ vorkommenden Formeln zu Φn gehören. Also würde Φn `ASK ⊥ gelten. Folglich ist ⊥ nicht aus closure(Φ) ableitbar. 281 8 Prädikatenlogik Nun zeigen wir durch Kontraposition, dass die Belegung g = χ({x ∈ At | x ∈ closure(Φ)}) von At ein (aussagenlogisches) Modell von Φ ist. Angenommen, es gibt eine Gentzenformel ϕ = x1 ∧ · · · ∧ xm ⇒ y1 ∨ · · · ∨ yn von Φ, die g nicht erfüllt. Dann wäre für alle 1 ≤ i ≤ m und 1 ≤ j ≤ n g(xi) = 1 und g(yj ) = 0, d.h. xi gehört zu closure(Φ), yj jedoch nicht. Also gehört yj ⇒ ⊥ zu closure(Φ). Damit ist {xi | 1 ≤ i ≤ m} ∪ {ϕ} ∪ {yj ⇒ ⊥ | 1 ≤ j ≤ n} eine Teilmenge von closure(Φ), aus der sich durch m + n Anwendungen der (aussagenlogischen) Schnittregel ⊥ ableiten lässt. Also würde closure(Φ) `ASK ⊥ gelten. Folglich erfüllt g alle Gentzenformeln von Φ, ist also ein Modell von Φ. o Um Satz 8.11 im folgenden Theorem anwenden zu können, setzen wir ab jetzt voraus, dass Σ, X und damit dass auch AtΣ(X) abzählbar sind. 282 8 Prädikatenlogik Satz 8.12 (Vollständigkeit prädikatenlogischer Schnittwiderlegungen) Sei Φ eine endliche Menge von Gentzenformeln über AtΣ(X). (i) Aus HE (Φ) `ASK ψ folgt Φ `PSK ϕ für eine Gentzenformel ϕ mit ψ ∈ HE (ϕ). (ii) Ist Φ unerfüllbar, dann gilt Φ `PSK ⊥. Beweis von (i) durch Induktion über eine – bzgl. der Anzahl n ihrer Resolventen – minimale ASK -Ableitung von HE (Φ) ` ψ. Fall 1: n = 0. Dann gibt es ϕ ∈ Φ mit ψ ∈ HE (ϕ). Also ist (Φ ` ϕ) eine PSK -Ableitung von Φ ` ϕ. Fall 2: n > 0. Dann ist ψ eine Resolvente zweier Gentzenformeln ψ1 und ψ2 und es gibt ASK -Ableitungen von HE (Φ) ` ψ1 bzw. HE (Φ) ` ψ1 mit weniger als n Resolventen. Nach Induktionsvoraussetzung gibt es Gentzenformeln ϕ1, ϕ2 mit Φ `PSK ϕ1, ψ1 ∈ HE (ϕ1), Φ `PSK ϕ2 und ψ2 ∈ HE (ϕ2). Also liefert Lemma 8.10 eine Gentzenformel ϕ mit {ϕ1, ϕ2} `PSK ϕ und ψ ∈ HE (ϕ). Zusammengenommen liefern die drei PSK -Ableitungen die gewünschte PSK -Ableitung von Φ ` ϕ. 283 8 Prädikatenlogik Beweis von (ii). Nach Voraussetzung und Satz 8.8 ist die Herbrand-Expansion von Φ unerfüllbar. Da sie eine Menge variablenfreier Gentzenformeln über der abzählbaren (!) Menge AtΣ(X) ist, folgt HE (Φ) `ASK ⊥ aus Satz 8.11 und damit Φ `PSK ⊥ aus (i). o 8.3 Prädikatenlogik mit Gleichheit Σ enthalte das zweistellige Gleichheitsprädikat ≡ oder das zweistellige Ungleichheitsprädikat 6≡ (siehe Kapitel 5). Eine Σ-Struktur A heißt Σ-Gleichheitsstruktur ist, wenn ≡ und 6≡ durch die Diagonale ∆A bzw. deren Komplement A2 \ ∆A interpretiert werden. Ein Modell einer prädikatenlogischen Formel ϕ heißt Gleichheitsmodell von ϕ, wenn es eine Gleichheitsstruktur ist. Seien ϕ, ψ ∈ TPL(AtΣ(X)). Wir schreiben ϕ |=EQ ψ, wenn jedes Gleichheitsmodell von ϕ auch ψ erfüllt. Seien x, y, x1, . . . , xn, y1, . . . , yn ∈ X, f eine Operation und p ein Prädikat von Σ mit arity(f ) = arity(p) = n. 284 8 Prädikatenlogik Die Menge congΣ der Σ-Kongruenzaxiome besteht aus folgenden Gentzenformeln: x≡x (Reflexivität) x≡y ⇒ y≡x (Symmetrie) x1 ≡ y1 ∧ · · · ∧ xn ≡ yn ⇒ f (x1, . . . , xn) ≡ f (y1, . . . , yn) (Verträglichkeit mit f ) p(x1, . . . , xn) ∧ x1 ≡ y1 ∧ · · · ∧ xn ≡ yn ⇒ p(y1, . . . , yn) (Verträglichkeit mit p) Die Menge disgΣ der Σ-Disgruenzaxiome besteht aus folgenden Gentzenformeln: x 6≡ x ⇒ ⊥ (Reflexivität) x 6≡ y ⇒ y 6≡ x (Symmetrie) f (x1, . . . , xn) 6≡ f (y1, . . . , yn) ⇒ x1 6≡ y1 ∨ · · · ∨ xn 6≡ yn (Verträglichkeit mit f ) p(x1, . . . , xn) ⇒ x1 6≡ y1 ∨ · · · ∨ xn 6≡ yn (Verträglichkeit mit p) Aufgabe Zeigen Sie, dass aus der Reflexivität und der Verträglichkeit mit Prädikaten die als Gentzenformel x≡y∧y ≡z ⇒ x≡z ausgedrückte Transitivität von ≡ folgt. bzw. x 6≡ z ⇒ x 6≡ y ∨ y 6≡ z o 285 8 Prädikatenlogik Aufgabe Zeigen Sie, dass jede Σ-Gleichheitsstruktur ein Modell von congΣ bzw. disgΣ ist. o Die in Kapitel 5 behandelte Gleichungslogik ist der Spezialfall der Prädikatenlogik, in dem die Prädikate von Σ auf ≡ und 6≡, Formeln auf Σ-Gleichungen und Σ-Ungleichungen und Σ-Strukturen auf Gleichheitsstrukturen beschränkt sind. Aufgabe Sei A ein Modell von Kongruenz ist. V disgΣ. Zeigen Sie, dass ∼A =def A2\ 6≡A eine Σo Sei ∼ eine beliebige Σ-Kongruenz (siehe Kapitel 5). Die Quotientenalgebra A/∼ wird zur Σ-Struktur, wenn die Prädikate p von Σ wie folgt interpretiert werden: Sei arity(p) = n. Für alle a1, . . . , an ∈ An, ([a1], . . . , [an]) ∈ pA/∼ ⇔def (a1, . . . , an) ∈ pA. 286 8 Prädikatenlogik Daraus folgt für alle a, b ∈ A: A [a] ≡A/≡ [b] ⇔ a ≡A b ⇔ [a] = [b], A [a] 6≡A/∼ [b] ⇔ a 6∼A b ⇔ [a] 6= [b]. Demnach sind A/ ≡A und A/∼A Gleichheitsstrukturen. Satz 8.13 (i) Sei ϕ ∈ TPL(AtΣ(X)) und A eine Σ-Struktur. A/≡A |= ϕ A/∼A |= ϕ ⇔ ⇔ A |= ϕ ∧ V congΣ, A |= ϕ ∧ V disgΣ. (ii) Sei ϕ eine implikative Normalform über AtΣ(X). V ϕ hat kein Gleichheitsmodell ⇔ ϕ ∧ congΣ ist unerfüllbar, V ϕ hat kein Gleichheitsmodell ⇔ ϕ ∧ disgΣ ist unerfüllbar. (1) (2) 287 8 Prädikatenlogik Beweis von (i). Sei ∼ ∈ {≡A, ∼A} und für alle h ∈ AX gelte folgende Äquivalenz: A/∼ |=nat◦h ϕ ⇔ A |=h ϕ. (3) Da jede Σ-Gleichheitsstruktur, also auch A/∼, die Σ-Kongruenz- bzw. -Disgruenzaxiome erfüllt und es zu jeder Belegung h0 : X → A/∼ eine Belegung h : X → A mit nat◦h = h0 gibt, folgt (1) aus (3). Beweis von (3) durch strukturelle Induktion über TPL(AtΣ(X)). Für alle p(t1, . . . , tn) ∈ AtΣ(X), ∗ A/∼ |=nat◦h p(t1, . . . , tn) ⇔ nat ◦ h ∈ gA/∼ (p(t1, . . . , tn)) = gA/∼(p(t1, . . . , tn)) ⇔ ([h∗(t1)], . . . , [h∗(tn)]) = (nat(h∗(t1)), . . . , nat(h∗(tn))) Lemma 5.3 (i) = ((nat ◦ h)∗(t1), . . . , (nat ◦ h)∗(tn)) ∈ pA/∼ ⇔ (h∗(t1), . . . , h∗(tn)) ∈ pA ⇔ h ∈ gA(p(t1, . . . , tn)) = gA∗ (p(t1, . . . , tn)) ⇔ A |=h p(t1, . . . , tn). 288 8 Prädikatenlogik Für alle ϕ, ψ ∈ TPL(AtΣ(X)), ∗ ∗ ∗ A/∼ |=nat◦h ¬ϕ ⇔ nat ◦ h ∈ gA/∼ (¬ϕ) = ¬Pow (A/∼)(gA/∼ (ϕ)) = (A/∼)X \ gA/∼ (ϕ) ind. hyp. ⇔ h ∈ AX \ gA∗ (ϕ) = ¬Pow (A)(gA∗ (ϕ)) = gA∗ (¬ϕ) ⇔ A |=h ϕ, A/∼ |=nat◦h ϕ ∧ ψ ∗ ∗ ∗ ∗ ∗ ⇔ nat ◦ h ∈ gA/∼ (ϕ ∧ ψ) = gA/∼ (ϕ) ∧Pow (A/∼) gA/∼ (ψ) = gA/∼ (ϕ) ∩ gA/∼ (ψ) ind. hyp. ⇔ h ∈ gA∗ (ϕ) ∩ gA∗ (ψ) = gA∗ (ϕ) ∧Pow (A) gA∗ (ψ) = gA∗ (ϕ ∧ ψ) ⇔ A |=h ϕ ∧ ψ und analog A/∼ |=nat◦h ϕ ∨ ψ ⇔ A |=h ϕ ∨ ψ. Für alle x ∈ X und ϕ ∈ TPL(AtΣ(X)), ∗ ∗ A/∼ |=nat◦h ∀xϕ ⇔ nat ◦ h ∈ gA/∼ (∀xϕ) = (∀x)Pow (A/∼)(gA/∼ (ϕ)) ∗ ⇔ ∀ [a] ∈ A/∼ : nat ◦ h[a/x] = (nat ◦ h)[[a]/x] ∈ gA/∼ (ϕ) ind. hyp. ⇔ ∀ a ∈ A : h[a/x] ∈ gA∗ (ϕ) = (∀x)Pow (A)(gA∗ (ϕ)) = gA∗ (∀xϕ) ⇔ A |=h ∀xϕ und analog A/∼ |=nat◦h ∃xϕ ⇔ A |=h ∃xϕ. 289 8 Prädikatenlogik Beweis von (ii). ϕ habe kein Gleichheitsmodell. Dann gilt für alle Σ-Strukturen A, A/∼6|= ϕ, also A 6|= V V V V ϕ ∧ congΣ bzw. A 6|= ϕ ∧ disgΣ wegen (i), d.h. ϕ ∧ congΣ bzw. ϕ ∧ disgΣ ist unerfüllbar. V V Sei umgekehrt ϕ ∧ congΣ bzw. ϕ ∧ disgΣ erfüllbar. Dann gibt es ein Modell A von V V ϕ ∧ congΣ bzw. ϕ ∧ disgΣ und damit wegen (i) das Gleichheitsmodell A/∼ von ϕ. o Wir fassen zusammen: Sei Φ eine endliche Menge von Gentzenformeln über AtΣ(X). Aus den Sätzen 8.9 (ii) und 8.12 (ii) folgt: Φ ist unerfüllbar ⇔ Φ `PSK ⊥. (4) Mit Hilfe von Satz 8.13 (ii) lässt sich (4) auf Gleichheitsmodelle übertragen: 290 8 Prädikatenlogik Φ hat kein Gleichheitsmodell 8.13 (ii) ⇔ (4) ⇔ Φ ∪ congΣ ist unerfüllbar (5) Φ ∪ congΣ `PSK ⊥. Φ hat kein Gleichheitsmodell 8.13 (ii) ⇔ (4) ⇔ Φ ∪ disgΣ ist unerfüllbar (6) Φ ∪ disgΣ `PSK ⊥. 8.4 Übersetzung modallogischer in prädikatenlogische Formeln Sei At eine Menge unstrukturierter Atome wie in Kapitel 6 und 7, X = {x1, x2, . . . } eine abzählbare Menge von Variablen für Zustände und Σ eine Signatur, die das zweistellige Prädikat trans und jedes Atom von At als einstelliges Prädikat enthält. 291 8 Prädikatenlogik Die im Folgenden induktiv definierte Funktion ml2pl : TML(At) × X → TPL(AtΣ(X)) übersetzt jede modallogische Formel über At in eine prädikatenlogische Σ-Formel über Xstate: Für alle p ∈ At, ⊗ ∈ {∨, ∧, ⇒}, ϕ, ψ ∈ TML(At), x ∈ X und i ∈ N, ml2pl (p, x) = p(x), ml2pl (⊥, x) = ⊥, ml2pl (>, x) = >, ml2pl (¬ϕ, x) = ¬ml2pl (ϕ, x), ml2pl (ϕ ⊗ ψ, x) = ml2pl (ϕ, x) ⊗ ml2pl (ψ, x), ml2pl (2ϕ, xi) = ∀xi+1(trans(xi, xi+1) ⇒ ml2pl (ϕ, xi+1)), ml2pl (3ϕ, xi) = ∃xi+1(trans(xi, xi+1) ∧ ml2pl (ϕ, xi+1)). Aufgabe Zeigen Sie, dass für alle ϕ ∈ TML(At) und x ∈ X x die einzige freie Variable von ml2pl (ϕ, x) ist. o 292 8 Prädikatenlogik Im Gegensatz zum Übersetzer von Zustandsformeln in aussagenlogische Formeln (siehe Kapitel 7) ist ml2pl nicht von einer Kripke-Struktur K = hδ, βi : State → (P(State) × P(At)) abhängig. K bestimmt jedoch die Interpretation von trans und At in einer Σ-Struktur: Sei Σ0 = Σ \ {trans} ∪ At und A eine Σ0-Struktur mit Trägermenge State. Dann bezeichnet AK die Σ-Struktur mit transAK = χ−1(δ) = {(s, s0) ∈ State 2 | s0 ∈ δ(s)}, pAK = {s ∈ State | p ∈ β(s)} für alle p ∈ At. Satz 8.14 (Korrektheit von ml2pl ) Für alle Kripke-Strukturen K mit Zustandsmenge State, Σ0-Strukturen A mit Trägermenge State, ϕ ∈ TML(At), h ∈ State X und x ∈ X gilt: K |=h(x) ϕ ⇔ AK |=h ml2pl (ϕ, x). (1) 293 8 Prädikatenlogik Beweis. Nach Definition der modal- bzw. prädikatenlogischen Erfüllbarkeitsrelation ist (1) äquivalent zu: (2) h(x) ∈ gK∗ (ϕ) ⇔ h ∈ gA∗ K (ml2pl (ϕ, x)). Wir zeigen (2) durch Induktion über TML(At). Für alle p ∈ At und x ∈ X, h(x) ∈ gK∗ (p) = gK (p) ⇔ p ∈ β(h(x)) ⇔ h∗(x) = h(x) ∈ pAK ⇔ h ∈ gA∗ K (ml2pl (p, x)) = gA∗ K (p(x)), h(x) ∈ gK∗ (⊥) = ∅ ⇔ h ∈ ∅ = gA∗ K (⊥) = gA∗ K (ml2pl (⊥)) h(x) ∈ gK∗ (>) = State ⇔ h ∈ State X = gA∗ K (>) = gA∗ K (ml2pl (>)). Für alle ϕ, ψ ∈ TML(At) und x ∈ X, h(x) ∈ gK∗ (¬ϕ) = State \ gK∗ (ϕ) ind. hyp. ⇔ h ∈ State X \ gA∗ K (ml2pl (ϕ, x)) = gA∗ K (¬(ml2pl (ϕ, x))) = gA∗ K (ml2pl (¬ϕ, x)), 294 8 Prädikatenlogik h(x) ∈ gK∗ (ϕ ∧ ψ) = gK∗ (ϕ) ∩ gK∗ (ψ) ind. hyp. ⇔ h ∈ gA∗ K (ml2pl (ϕ, x)) ∩ gA∗ K (ml2pl (ψ, x)) = gA∗ K (ml2pl (ϕ, x) ∧ ml2pl (ψ, x)) = gA∗ K (ml2pl (ϕ ∧ ψ, x)), h(x) ∈ gK∗ (ϕ ∨ ψ) = gK∗ (ϕ) ∪ gK∗ (ψ) ind. hyp. ⇔ h ∈ gA∗ K (ml2pl (ϕ, x)) ∪ gA∗ K (ml2pl (ψ, x)) = gA∗ K (ml2pl (ϕ, x) ∨ ml2pl (ψ, x)) = gA∗ K (ml2pl (ϕ ∨ ψ, x)), h(x) ∈ gK∗ (ϕ ⇒ ψ) = (State \ gK∗ (ϕ)) ∪ gK∗ (ψ) ind. hyp. ⇔ h ∈ (State X \ gA∗ K (ml2pl (ϕ, x))) ∪ gA∗ K (ml2pl (ψ, x)) = gA∗ K (ml2pl (ϕ, x) ⇒ ml2pl (ψ, x)) = gA∗ K (ml2pl (ϕ ⇒ ψ, x)). Für alle ϕ ∈ TML(At) und i ∈ N, h(xi) ∈ gK∗ (2ϕ) = {s ∈ State | δ(s) ⊆ gK∗ (ϕ)} ⇔ δ(h(xi)) ⊆ gK∗ (ϕ) ⇔ ∀ s ∈ State : s 6∈ δ(h(xi)) oder h[s/xi+1](xi+1) = s ∈ gK∗ (ϕ) ind. hyp. ⇔ ∀ s ∈ State : s 6∈ δ(h(xi)) oder h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1)) ⇔ ∀ s ∈ State : (h[s/xi+1](xi), h[s/xi+1](xi+1)) = (h(xi), s) 6∈ transAK ∨ h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1)) 295 8 Prädikatenlogik ⇔ ∀ s ∈ State : h[s/xi+1] 6∈ gA∗ K (trans(xi, xi+1)) ∨ h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1)) ⇔ ∀ s ∈ State : h[s/xi+1] ∈ gA∗ K (trans(xi, xi+1) ⇒ ml2pl (ϕ, xi+1)) ⇔ h ∈ gA∗ K (∀xi+1(trans(xi, xi+1) ⇒ ml2pl (ϕ, xi+1))) = gA∗ K (ml2pl (2ϕ, xi)), h(xi) ∈ gK∗ (3ϕ) = {s ∈ State | δ(s) ∩ gK∗ (ϕ) 6= ∅} ⇔ δ(h(xi)) ∩ gK∗ (ϕ) 6= ∅ ⇔ ∃ s ∈ δ(h(xi)) : h[s/xi+1](xi+1) = s ∈ gK∗ (ϕ) ind. hyp. ⇔ ∃ s ∈ δ(h(xi)) : h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1)) ⇔ ∃ s ∈ State : (h[s/xi+1](xi), h[s/xi+1](xi+1)) = (h(xi), s) ∈ transAK ∧ h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1)) ⇔ ∃ s ∈ State : h[s/xi+1] ∈ gA∗ K (trans(xi, xi+1)) ∧ h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1)) ⇔ ∃ s ∈ State : h[s/xi+1] ∈ gA∗ K (trans(xi, xi+1) ⇒ ml2pl (ϕ, xi+1)) ⇔ h ∈ gA∗ K (∃xi+1(trans(xi, xi+1) ⇒ ml2pl (ϕ, xi+1))) = gA∗ K (ml2pl (3ϕ, xi)). o 296 8 Prädikatenlogik Eine modallogische Formel ϕ heißt bisimulationsinvariant, wenn für alle Kripke-Strukturen K ∼K zum Kern von gK∗ (ϕ) gehört. Demnach sind laut Satz 7.9 alle modallogischen Formeln bisimulationsinvariant. Analog nennen wir eine prädikatenlogische Σ-Formel ϕ bisimulationsinvariant, wenn für alle Kripke-Strukturen K mit Zustandsmenge State, Σ0-Strukturen A ∼K zum Kern von gA∗ K (ϕ) gehört. Satz 10.3 ([3], Theorem 4.18) Eine prädikatenlogische Formel ist genau dann bisimulationsinvariant, wenn sie zum Bild von ml2pl gehört. o Highlights Signatur der Prädikatenlogik: PL = AL ∪ {Qx : 1 → 1 | Q ∈ {∀, ∃}, x ∈ X} Sei Σ eine Signatur der in prädikatenlogischen Formeln vorkommenden Operationen f : n → 1 und Prädikate p : n. Σ-Atome: AtΣ(X) = {p(t1, . . . , tn) | t1, . . . , tn ∈ TΣ(X)}. 297 8 Prädikatenlogik Semantik der Prädikatenlogik: PL-Algebra Pow (A) mit Trägermenge P(AX ) und – von einer Σ-Struktur (= Interpretation der Operationen und Prädikate von Σ) abhängiger – folgender Interpretation von PL: Für alle S, S 0 ⊆ AX , ⊥Pow (A) = ∅, >Pow (A) = AX , ¬Pow (A)(S) = AX \ S, ∧Pow (A)(S, S 0) = S ∩ S 0, ∨Pow (A)(S, S 0) = S ∪ S 0, ⇒Pow (A) (S, S 0) = (AX \ S) ∪ S 0, (∀x)Pow (A)(S) = {h ∈ AX | ∀ a ∈ A : h[a/x] ∈ S}, (∃x)Pow (A)(S) = {h ∈ AX | ∃ a ∈ A : h[a/x] ∈ S}. Die Σ-Struktur A induziert eine Belegung gA : At → P(State) der Atome: Für alle p(t1, . . . , tn) ∈ AtΣ(X), gA(p(t1, . . . , tn)) =def {h ∈ AX | (h∗(t1), . . . , h∗(tn)) ∈ pA}. 298 8 Prädikatenlogik Sei ϕ, ψ ∈ TPL(AtΣ(X)) und h : X → A. (A, h) erfüllt ϕ oder ist ein Modell von ϕ, geschrieben: A |=h ϕ, wenn h zu gA∗ (ϕ) gehört. h heißt dann auch Lösung von ϕ in A. A erfüllt ϕ oder ist ein Modell von ϕ, geschrieben: A |= ϕ, wenn gA∗ (ϕ) = AX gilt. Wir schreiben ϕ ⇔A h ψ, falls (A, h) genau dann ϕ erfüllt, wenn (A, h) ψ erfüllt, und ϕ ⇔A ψ, falls A genau dann ϕ erfüllt, wenn A ψ erfüllt. Sei σ : X → TΣ(X). Die Erweiterung σ ∗ : TPL(AtΣ(X)) → TPL(AtΣ(X)) von σ auf prädikatenlogische Formeln verlangt eine spezielle Behandlung der Quantoren: • Für alle f : n → 1 ∈ Σ und t1, . . . , tn ∈ TΣ(X), σ ∗(f (t1, . . . , tn) = f (σ ∗(t1), . . . , σ ∗(tn)). • Für alle p : n ∈ Σ und t1, . . . , tn ∈ TΣ(X), σ ∗(p(t1, . . . , tn) = p(σ ∗(t1), . . . , σ ∗(tn)). • Für alle f : n → 1 ∈ AL und ϕ1, . . . , ϕn ∈ TPL(AtΣ(X)), σ ∗(f (ϕ1, . . . , ϕn)) = f (σ ∗(ϕ1), . . . , σ ∗(ϕn)). 299 8 Prädikatenlogik • Für alle Q ∈ {∃, ∀}, x ∈ X und ϕ ∈ TPL(AtΣ(X)), ( S 0 0 ∗ Qx σ[x /x] (ϕ) falls x ∈ V = var(σ(free(ϕ) \ {x })), ϕ,σ,x def σ ∗(Qxϕ) = Qxσ[x/x]∗(ϕ) sonst. Substitutionslemma (Lemma 8.3): Für alle Σ-Strukturen A, h : X → A, σ : X → TΣ(X) und ϕ ∈ TPL(AtΣ(X)) gilt A |=h ϕσ ⇔ A |=h∗◦σ ϕ. Alle in der Bitalgebra gültigen AL-Gleichungen sind auch in Pow (A) gültig. Darüberhinaus erfüllt Pow (A) u.a. die folgenden PL-Gleichungen: ¬∃xϕ ≡ ∀x¬ϕ ¬∀xϕ ≡ ∃x¬ϕ ∃x(ϕ ∨ ψ) ≡ ∃xϕ ∨ ∃xψ ∀x(ϕ ∧ ψ) ≡ ∀xϕ ∧ ∀xψ Seien Σ, Σ0 Signaturen mit Σ ⊆ Σ0 und A eine Σ0-Struktur. Das Σ-Redukt A|Σ von A ist die Σ-Struktur mit derselben Trägermenge und Interpretation der Symbole von Σ wie A. 300 8 Prädikatenlogik Eine Σ-Formel ϕ und eine Σ0-Formel ψ heißen erfüllbarkeitsäquivalent bzgl. Σ, geschrieben: ϕ ≈Σ ψ, wenn es für alle Σ-Strukturen A und h ∈ AX eine Σ0-Struktur B gibt, deren Σ-Redukt mit A übereinstimmt und die folgende Äquivalenz erfüllt: A |=h ϕ ⇔ B |=h ψ. Eine prädikatenlogische Formel ∀x1 . . . ∀xnϕ heißt Skolemnormalform (SNF), wenn ϕ eine implikative Normalform über AtΣ(X) ist (siehe Kapitel 6). Satz 8.7: Jede prädikatenlogische Formel hat eine erfüllbarkeitsäquivalente Skolemnormalform. Der prädikatenlogische Schnittkalkül PSK besteht aus den in Abschnitt 8.2 angegebenen vier Regeln. Die Gentzenformel des Sukzedenten der Schnittregel heißt Resolvente. Eine PSK -Widerlegung einer Menge Φ von Gentzenformeln ist eine PSK -Ableitung von Φ ` ⊥. Satz 8.11: Die Korrektheit und Vollständigkeit von ASK -Ableitungen bzw. -Widerlegungen gilt auch für unendliche Gentzenformelmengen Φ mit abzählbar vielen Atomen. 301 8 Prädikatenlogik Korrektheit und Vollständigkeit von PSK -Ableitungen bzw. -Widerlegungen (Sätze 8.9 und 8.12): Sei Φ endlich. Aus Φ `PSK ψ folgt Φ |= ψ. Φ `PSK ⊥ gilt genau dann, wenn Φ unerfüllbar ist. Eine Σ-Struktur A heißt Σ-Gleichheitsstruktur ist, wenn das Gleichheitsprädikat ≡: 2 und das Ungleichheitsprädikat 6≡: 2 durch die Diagonale ∆A bzw. deren Komplement A2 \ ∆A interpretiert werden. Ein Modell einer prädikatenlogischen Formel ϕ heißt Gleichheitsmodell von ϕ, wenn es eine Gleichheitsstruktur ist. Satz 8.13 (ii): Eine implikative Normalform ϕ über AtΣ(X) hat genau dann kein GleichV heitsmodell wenn ϕ ∧ congΣ unerfüllbar ist. =⇒ Korrektheit und Vollständigkeit von PSK -Widerlegungen in Gleichheitsmodellen: Sei Φ endlich. Φ ∪ congΣ `PSK ⊥ gilt genau dann, wenn Φ kein Gleichheitsmodell hat. 302 9 Logische Programmierung Im weitesten Sinne ist ein logisches Programm eine Menge LP prädikatenlogischer Formeln. Seine Eingabe ist eine – Anfrage genannte – weitere prädikatenlogische Formel. Es V berechnet eine Menge von Lösungen der Anfrage in einem Modell von LP . Funktionale oder objektorientierte Programme repräsentieren Funktionen, logische Programme sollen Relationen repräsentieren. Das schließt schon mal alle unerfüllbaren Formeln von ihrer Verwendung als logische Programme aus. Eine Gentzenformel ϕ ⇒ ψ über AtΣ(X) heißt Hornformel bzw. co-Hornformel, wenn ψ bzw. ϕ ein Atom ist. Eine Gentzenformel ϕ ⇒ ψ über AtΣ(X) heißt Σ-Goal bzw. Σ-co-Goal, wenn ψ = ⊥ bzw. ϕ = > ist. Demnach ist > ⇒ ⊥ das einzige Goal, das gleichzeitig ein co-Goal ist. Eine Menge LP von Hornformeln bzw. co-Hornformeln über AtΣ(X) heißt logisches bzw. co-logisches Σ-Programm für die Prädikate von Σ, die in Konklusionen bzw. Prämissen der Formeln von LP vorkommen. 303 9 Logische Programmierung Beispiel 9.1 Die Signatur Σ bestehe aus den nullstelligen Operationen zero und nil (leere Liste), der unären Operation suc (successor, Nachfolger), den infix-notierten binären Operationen : und ++, dem unären Prädikat sorted und den binären Prädikaten le, ≡, 6≡, perm und select. Sei x, y, s, s0 ∈ X. Die folgenden (co-)Hornformeln bilden ein logisches Programm LP für die Prädikate von Σ: (le) le(zero, x) le(x, y) ⇒ le(suc(x), suc(y)) (gt) gt(zero, x) ⇒ ⊥ gt(suc(x), suc(y)) ⇒ gt(x, y) (6≡) zero 6≡ suc(x) suc(x) 6≡ zero x 6≡ y ⇒ suc(x) 6≡ suc(y) 304 9 Logische Programmierung (sorted) sorted(nil) sorted(x : nil) le(x, y) ∧ sorted(y : s) ⇒ sorted(x : (y : s)) (unsorted) unsorted(nil) ⇒ ⊥ unsorted(x : nil) ⇒ ⊥ unsorted(x : (y : s)) ⇒ gt(x, y) ∨ unsorted(y : s) (conc) nil++acts ≡ acts (act : acts)++acts0 ≡ act : (acts++acts0) (select) select(x : s, x : s) select(s, y : s0) ⇒ select(x : s, y : (x : s0)) (perm) perm(nil, nil) select(x : s, y : s0) ∧ perm(s, s0) ⇒ perm(x : s, y : s0) Die Menge A = N∗ wird mit folgender Interpretation von Σ zur Σ-Struktur: 305 9 Logische Programmierung Für alle a, b, v, w ∈ A, zeroA = 0, ( sucA(a) = nilA = , ( a :A w = v ++ w = sonst, aw falls a ∈ N, ( A a + 1 falls a ∈ N, sonst, vw falls v, w ∈ ({B, C, D}2)∗ sonst, (a, b) ∈ leA ⇔ a, b ∈ N ∧ a ≤ b, (a, b) ∈ gtA ⇔ a, b ∈ N ∧ a > b, (a, b) ∈ ≡A ⇔ a, b ∈ N ∧ a = b, (a, b) ∈ 6≡A ⇔ a, b ∈ N ∧ a 6= b, w ∈ sortedA ⇔ ∀ 1 ≤ i < length(w) : ai ≤ ai+1, (siehe Beispiel 4.16) w ∈ unsortedA ⇔ ∃ 1 ≤ i < length(w) : ai > ai+1, 306 9 Logische Programmierung (v, aw) ∈ selectA ⇔ ∃ a1, . . . , an : v = a1 . . . an ∧ a = ai ∧ w = a1 . . . ai−1ai+1 . . . an, (v, w) ∈ permA ⇔ w ist eine + Permutation von v. V Aufgabe Zeigen Sie A |= LP . o Beispiel 9.2 + Türme von Hanoi n Bauklötze sind vom Ort B zum Ort D zu transportieren, wobei ein weiterer Ort C als Zwischenlager dient. Die Klötze dürfen nur mit nach oben abnehmender Größe gestapelt werden. Jeder während des Transports erreichte Zustand ist ein Tripel von Listen der bei B, C bzw. D gelagerten Klötze. Z.B. lässt sich die Folge der Zustände, die beim Transport von fünf Klötzen von B nach D durchlaufen werden, wie folgt graphisch darstellen: 307 9 Logische Programmierung B C D B C D 308 9 Logische Programmierung Das logische Programm soll keine Zustandsfolge, sondern die Folge der Ortswechsel, die erforderlich sind, um n Klötze von B nach D zu transportieren. Wir modellieren die Aufgabe mit Hilfe einer Signatur Σ, die aus den Operationen von Beispiel 9.1, den nullstelligen Operationen B, C, D, der infix-notierten binären Operationen ;, dem binären Prädikat ≡ und dem fünfstelligen Prädikat actions besteht. Deren intendierte Bedeutung ist unten als Σ-Struktur beschrieben. Sei n, x, y, z, act, acts, acts0 ∈ X. Zusammen mit den Σ-Kongruenzaxiomen bilden die folgenden Hornformeln bilden ein logisches Programm LP für die Prädikate von Σ: actions(zero, x, y, z, nil) actions(n, x, z, y, acts) ∧ actions(n, y, x, z, acts0) ⇒ actions(suc(n), x, y, z, acts++((x ; z) : acts0)) Das Atom x ; y steht für “Bring den obersten Klotz vom Ort x zum Ort y”. Das zweite actions-Axiom drückt aus, dass n + 1 Klötze von x über y nach z getragen werden können, indem zunächst n Klötze von x über z nach y, dann ein Klotz von x nach z und schließlich n Klötze von y über x nach z transportiert werden. 309 9 Logische Programmierung Die Menge A = N + {B, C, D} + ({B, C, D}2)∗ wird mit folgender Interpretation von Σ zur Σ-Algebra: Für alle a, b, c, v, w, n ∈ A, ( a ;A b = (a, b) falls a, b ∈ {B, C, D}, sonst, (n, a, b, c, w) ∈ actionsA ⇔ (a, b, c, w) ∈ actionsn, wobei actionsn ⊆ {B, C, D}3 × ({B, C, D}2)∗ wie folgt induktiv definiert ist: (a, b, c, w) ∈ actions0 ⇔ w = , (a, b, c, w) ∈ actionsn+1 ⇔ ∃ v, v 0 ∈ ({B, C, D}2)∗ : (a, c, b, v), (b, a, c, v 0) ∈ actionsn ∧ w = v · (a, c) · v 0. zero, suc, nil, :, ++ und ≡ werden wie in Beispiel 9.1 interpretiert. Aufgabe Zeigen Sie A |= V LP . o 310 9 Logische Programmierung Beispiel 9.3 + Damenproblem n Damen auf einem (n × n)-Schachbrett sollen so platziert werden, dass sie sich nach den Schachregeln nicht schlagen können, also keine zwei Damen auf derselben Diagonalen, Horizontalen oder Vertikalen stehen. Z.B. gibt es für fünf Damen auf einem 5×5-Schachbrett genau zehn sichere Platzierungen: Die Platzierung einer Dame in jeder Zeile eines (n×n)-Schachbrettes wird als Permutation (k1, . . . , kn) von (1, 2, . . . , n) dargestellt: Für alle 1 ≤ i ≤ n ist ki die Spaltenposition der Dame in der i-ten Zeile. 311 9 Logische Programmierung Wir modellieren die Aufgabe mit Hilfe einer Signatur Σ, die aus den Operationen von Beispiel 9.1, der unären Operation enum, der binären Operation plus und den binären Prädikaten ≡, 6≡, queens, board und safe besteht. Deren intendierte Bedeutung ist unten als Σ-Struktur A beschrieben. A erfüllt folgende Bedingungen: ((1, . . . , n), (k1, . . . , kn)) gehört genau dann zu boardA, wenn (k1, . . . , kn) eine sichere Platzierung von n Damen repräsentiert, also eine, bei der sich keine zwei Damen schlagen können. (1, (k, k1, . . . , kn−1)) gehört genau dann zu safe A, wenn unter der Voraussetzung, dass (k1, . . . , kn−1) eine sichere Damenplatzierung auf den unteren n − 1 Zeilen repräsentiert, (k, k1, . . . , kn−1) eine sichere Damenplatzierung auf dem gesamten (n×n)-Brett darstellt. Sei n, x, y, s, s0, val ∈ X. Die folgenden Hornformeln bilden ein logisches Programm LP für die Prädikate von Σ: (queens) board(enum(n), val) ⇒ queens(n, val) (board) board(nil, nil) select(x : s, y : s0) ∧ board(s0, val) ∧ safe(suc(zero), y : val) ⇒ board(x : s, y : val) 312 9 Logische Programmierung (safe) safe(n, x : nil) x 6≡ plus(y, n) ∧ y 6≡ plus(x, n) ∧ safe(suc(n), x : s) ⇒ safe(n, x : (y : s)) (plus) plus(zero, x) ≡ zero plus(suc(x), y) ≡ suc(plus(x, y)) (enum) enum(zero) ≡ nil enum(suc(n)) ≡ enum(n)++(suc(n) : nil) Hornformeln für 6≡, conc und select stehen in Beispiel 9.1. Die Menge A = N∗ wird mit folgender Interpretation von Σ zur Σ-Struktur: Für alle a, b, v, v 0, w, w0, i, n ∈ A, ( plusA(a, b) = ( enumA(n) = a + b falls a, b ∈ N, sonst, (1, . . . , n) falls n ∈ N, sonst, 313 9 Logische Programmierung (i, aw) ∈ safe A ⇔ (i, a) ∈ N2 ∧ ∃ a1, . . . , an ∈ N : (w = a1 . . . an ∧ ∀ i ≤ j ≤ n : (aj − j 6= a 6= aj + j)), (n, w) ∈ queensA ⇔ (n, w) ∈ N × N∗ ∧ (enumA(n), w) ∈ boardA, (v, w) ∈ boardA ⇔ ∃ n ∈ N : (v, w) ∈ boardn, wobei boardn ⊆ N∗ × N∗ wie folgt induktiv definiert ist: (v, w) ∈ board0 ⇔ v = = w, (v, w) ∈ boardn+1 ⇔ ∃ v 0, w0, a1, . . . , an+1, 1 ≤ i ≤ n + 1 : (v = a1 . . . an+1 ∧ (v, aiv 0) ∈ selectA ∧ (v 0, w0) ∈ boardn ∧ (1, aiw0) ∈ safe A. zero, suc, nil, :, ++, select, ≡ und 6≡ werden wie in Beispiel 9.1 interpretiert. Aufgabe Zeigen Sie A |= V LP . 314 9 Logische Programmierung Die folgenden Hornformeln für queens und board sind semantisch äquivalent zu den obigen. Ihre Anwendung im weiter unten definierten Berechnungskalkül führt aber schneller zu Lösungen. Das lässt sich darauf zurückführen, dass sie einem iterativen Programm entsprechen, während die obigen Hornformeln einem linear-rekursiven Schema folgen. (queensI) board(enum(n), nil, val) ⇒ queens(n, val) (boardI) board(nil, val, val) select(x : s, y : s0) ∧ safe(suc(zero), y : val) ∧ board(s0, y : val, val0) ⇒ board(x : s, val, val0) Iterativ ist dieses logische Programm, weil es eine Transitionsfunktion im Sinne von Kapitel 7 realisiert, die auf Paaren von Listen natürlicher Zahlen operiert, deren zwei oben blau bzw. rot gefärbte Komponenten die noch nicht vergebenen bzw. vergebenen Spalten wiedergeben, in denen Damen sicher platziert werden können. Aufgabe Transformieren Sie queensI und boardI in eine Kripke-Struktur mit Zustandsmenge N∗ × N∗ und Transitionsfunktion δ, so dass durch wiederholte Anwendung von δ alle sicheren Platzierungen von n Damen auf einem (n × n)-Schchbrett berechnen werden können. o 315 9 Logische Programmierung Vom Schnitt- zum SLD-Kalkül Für ein Goal ϕ ⇒ ⊥ schreiben wir fortan auch ϕ. Berechnungen eines logischen Programms LP sind Schnittwiderlegungen von Φ = LP ∪ {ϕ}, wobei ϕ ein Goal ist. Wegen der speziellen Form von LP bzw. ϕ lässt sich der obige Schnittkalkül vereinfachen, ohne dass seine Vollständigkeit bzgl. Widerlegungen von Φ verlorengeht. Dazu betrachten wir zunächst variablenfreie PSK -Ableitungen von Φ ` ψ mit einem (co-)Goal ψ. Jede solche Ableitung s lässt sich in eine Ableitung von Φ ` ψ transformieren, die keine Resolvente zweier Hornformeln ϕ ⇒ pt und pt ∧ ϕ0 ⇒ qu enthält. Schneidet man eine solche Resolvente nicht irgendwann mit einem Goal von s (das die Form qu ∧ ϑ haben müsste), dann bleibt s eine Ableitung von Φ ` ψ, auch wenn die Resolvente aus s entfernt wird. Auch wenn man die Resolvente mit qu ∧ ϑ schneidet, ist sie überflüssig, weil dieser Schnitt dieselbe Resolvente liefert wie der Schnitt der ersten Hornformel ϕ ⇒ pt mit der Resolvente pt ∧ ϕ0 ∧ ϑ der zweiten Hornformel pt ∧ ϕ0 ⇒ qu und dem Goal qu ∧ ϑ: 316 9 Logische Programmierung ϕ ⇒ pt pt ∧ ϕ0 ⇒ qu ≺ ϕ ∧ ϕ0 ⇒ qu pt ∧ ϕ0 ⇒ qu qu ∧ ϑ ≺ 0 ϕ∧ϕ ∧ϑ qu ∧ ϑ ≺ pt ∧ ϕ0 ∧ ϑ ϕ ⇒ pt ≺ 0 ϕ∧ϕ ∧ϑ Demnach gilt Φ `ASK ψ genau dann, wenn es eine Folge (ψ1, . . . , ψn) von Goals gibt derart, dass ψ1 ∈ Φ, ψn = ψ und für alle 1 < i ≤ n ψi die Resolvente von ψi−1 und einer Hornformel von Φ ist — und nicht die Resolvente zweier beliebiger Vorgänger von ψi. Analog kann man alle Resolventen zweier co-Hornformeln aus Schnittableitungen von Φ = LP ∪ {ϕ} `ASK ψ entfernen, wenn LP eine co-logisches Programm ist und ϕ, ψ co-Goals sind, so dass Φ `ASK ψ genau dann gilt, wenn es eine Folge (ψ1, . . . , ψn) von co-Goals gibt derart, dass ψ1 ∈ Φ, ψn = ψ und für alle 1 < i ≤ n ψi die Resolvente von ψi−1 und einer co-Hornformel von Φ ist. 317 9 Logische Programmierung Aus dieser Beobachtung über variablenfreie Schnittwiderlegung ergibt sich der SLDKalkül zur Widerlegung einer Menge, die aus – nicht nur variablenfreien – (co-)Hornformeln und einem (co-)Goal besteht: 9.1 SLD-Kalkül Sei LP ein (co-)logisches Σ-Programm und LP 0 die Menge aller (co-)Hornformeln ϕ0, für die es ϕ ∈ LP und eine Variablenumbenennung τ mit ϕτ = ϕ0 gibt. Sei ϕ ein Σ-(co-)Goal mit var(φ)kvar(LP ). Der SLD-Kalkül besteht aus fünf Regeln: (Co-)Goal-Einführung LP ∪ {ϕ} ` ϕ Faktor- bzw. Summandregel LP ∪ {ϕ} ` ϑ ∧ ϑ0 ∧ ϕ LP ∪ {ϕ} ` ϑσ ∧ ϕσ LP ∪ {ϕ} ` > ⇒ ϕ ∨ ϑ ∨ ϑ0 LP ∪ {ϕ} ` > ⇒ ϕσ ∨ ϑσ σ = unify(ϑ, ϑ0) 318 9 Logische Programmierung Resolution über LP LP ∪ {ϕ} ` ϑ0 ∧ ψ LP ∪ {ϕ} ` ϕσ ∧ ψσ ϕ ⇒ ϑ ∈ LP 0, σ = unify(ϑ, ϑ0), var(ϕ ∨ ϑ) k var(ϑ0 ∨ ψ) co-Resolution über LP LP ∪ {ϕ} ` ψ ∨ ϑ0 LP ∪ {ϕ} ` ψσ ∨ ϕσ ϑ ⇒ ϕ ∈ LP 0, σ = unify(ϑ, ϑ0), var(ϑ ∨ ϕ) k var(ψ ∨ ϑ0) Eine SLD-Widerlegung LP ∪ {ϕ} ist eine SLD-Ableitung von LP ∪ {ϕ} ` ⊥. Der Name SLD geht zurück auf selective linear definite clause resolution. Das Adjektiv selective spielt hier erstmal keine Rolle. Es weist auf eine mögliche Strategie hin, nach der das Atom ausgewählt wird, das bei einem Schnitt entfernt wird. linear steht für die Tatsache, dass sich jede Formel einer SLD-Ableitung direkt aus LP und genau einem ihrer Vorgänger ergibt, dass sie also niemals die Resolvente zweier Resolventen enthält. 319 9 Logische Programmierung Der Begriff clause (deutsch: Klausel) umfasst Hornformeln (definite clauses) und Goals. Eine SLD-Ableitung heißt aussagenlogisch, wenn sie aus variablenfreien Formeln besteht. Wir schreiben LP ∪ {ϕ} `ASLD ψ, falls es eine aussagenlogische SLD-Ableitung von LP ∪ {ϕ} ` ψ gibt. Aufgrund der obigen Bemerkungen über (co-)Hornformel-Resolventen gilt Satz 8.11 auch für aussagenlogische SLD-Widerlegungen: Satz 9.4 (Vollständigkeit aussagenlogischer SLD-Widerlegungen) Sei LP ein abzählbares, variablenfreies (co-)logisches Programm und ϕ ein variablenfreies (co-)Goal. Ist LP ∪ {ϕ} unerfüllbar, dann gilt LP ∪ {ϕ} `ASLD ⊥. o 320 9 Logische Programmierung Satz 9.5 (Vollständigkeit von SLD-Widerlegungen) Sei LP ein (co-)logisches Σ-Programm, ϕ ein Σ-(co-)Goal und σ : X → TΣ. (i) Aus HE (LP ) ∪ {ϕσ} `ASLD ψ folgt LP ∪ {ϕ} `SLD ϕ0 für ein (co-)Goal ϕ0 und ρ : X → TΣ mit ϕ0ρ = ψ und γρ = σ, wobei γ die Komposition der im Laufe der Ableitung von LP ∪ {ϕ} ` ϕ0 gebildeten mgus ist. (ii) Ist LP ∪ {ϕ} unerfüllbar, dann gilt LP ∪ {ϕ} `SLD ⊥ . Beweis von (i) durch Induktion über eine – bzgl. der Anzahl n ihrer Resolventen – minimale aussagenlogische SLD-Ableitung von HE (LP ∪ {ϕ}) ` ψ. Fall 1: n = 0. Dann ist ψ = ϕσ. Also ist (LP ∪ {ϕ} ` ϕ) eine SLD-Ableitung von LP ∪ {ϕ} ` ϕ, die die Bedingungen von (i) erfüllt, wenn man ρ = σ und γ = idX setzt. Fall 2: n > 0. Dann ist ψ eine Resolvente einer (co-)Hornformel von HE (LP ) und eines (co-)Goals ψ1 und es gibt eine aussagenlogische SLD-Ableitung von HE (LP )∪{ϕσ} ` ψ1 mit weniger als n Resolventen. Nach Induktionsvoraussetzung gibt es ein (co-)Goal ϕ1, eine SLD-Ableitung von LP ∪ {ϕ} ` ϕ1 und ρ : X → TΣ und mit ϕ1ρ = ψ1 und γρ = σ, wobei γ die Komposition der im Laufe der Ableitung von LP ∪{ϕ} ` ϕ1 gebildeten mgus ist. 321 9 Logische Programmierung Wegen ϕ1ρ = ψ1 liefert Lemma 8.10 ein (co-)Goal ϕ2, eine SLD-Ableitung von LP ∪ {ϕ1} ` ϕ2 und ρ0 : X → TΣ mit ϕ2ρ0 = ψ und γ 0ρ0 = ρ, wobei γ 0 die Komposition der im Laufe der Ableitung gebildeten mgus ist. Zusammengenommen liefern die beiden SLD-Ableitungen eine SLD-Ableitung von LP ∪ {ϕ} ` ϕ2, die die Bedingungen von (i) erfüllt: ϕ2ρ0 = ψ, γγ 0ρ0 = γρ = σ und γ 0γ ist die Komposition der im Laufe der Ableitung gebildeten mgus. Beweis von (ii). Sei σ : X → TΣ. Da LP ∪ {ϕ} unerfüllbar ist und LP und ϕ keine gemeinsamen Variablen haben, ist auch LP ∪ {ϕσ} unerfüllbar und damit nach Satz 8.8 auch die Herbrand-Expansion von LP ∪ {ϕσ}. Da diese abzählbar ist und mit HE(LP ) ∪ {ϕσ} übereinstimmt, gilt HE(LP ) ∪ {ϕσ} `ASLD ⊥ nach Satz 9.4. Aus (i) folgt schließlich LP ∪ {ϕ} `SLD ⊥. o Zusammen mit der Korrektheit von PSK -Ableitungen (Satz 8.9) liefert Satz 9.5 Charakterisierungen der Existenz von Lösungen einer Konjunktion ϕ (bzw. negierten Disjunktion ¬ϕ) von Atomen in jeder Σ-Struktur, die das logische (bzw. co-logische) Programm LP erfüllt: 322 9 Logische Programmierung Sei LP ein logisches Programm und ϕ eine Konjunktion von Atomen. LP |= any(ϕ) ⇔ LP ∪ {¬any(ϕ)} ist unerfüllbar ⇔ LP ∪ {all(¬ϕ)} ist unerfüllbar ⇔ LP ∪ {ϕ} ist unerfüllbar 8.9 (ii), 9.5 (ii) ⇔ (1) LP ∪ {ϕ} `SLD ⊥. Sei LP ein co-logisches Programm und ϕ eine Disjunktion von Atomen. LP |= any(¬ϕ) ⇔ LP ∪ {¬any(¬ϕ)} ist unerfüllbar ⇔ LP ∪ {all(ϕ)} ist unerfüllbar ⇔ LP ∪ {ϕ} ist unerfüllbar 8.9 (ii), 9.5 (ii) ⇔ (2) LP ∪ {ϕ} `SLD ⊥. 323 9 Logische Programmierung Da Kongruenzaxiome Hornformeln und Diskongruenzaxiome co-Hornformeln sind, gelten (1) und (2) entsprechend modifiziert auch in der Prädikatenlogik mit Gleichheit: Sei LP ein logisches Programm und ϕ eine Konjunktion von Atomen. LP |=EQ any(ϕ) ⇔ LP ∪ {¬any(ϕ)} hat kein Gleichheitsmodell ⇔ LP ∪ {all(¬ϕ)} hat kein Gleichheitsmodell ⇔ LP ∪ {ϕ} hat kein Gleichheitsmodell 8.13 (ii) ⇔ 8.9 (ii), 9.5 (ii) ⇔ (3) LP ∪ congΣ ∪ {ϕ} ist unerfüllbar LP ∪ congΣ ∪ {ϕ} `SLD ⊥. 324 9 Logische Programmierung Sei LP ein co-logisches Programm und ϕ eine Disjunktion von Atomen. LP |=EQ any(¬ϕ) ⇔ LP ∪ {¬any(¬ϕ)} hat kein Gleichheitsmodell ⇔ LP ∪ {all(ϕ)} hat kein Gleichheitsmodell ⇔ LP ∪ {ϕ} hat kein Gleichheitsmodell 8.13 (ii) ⇔ 8.9 (ii), 9.5 (ii) ⇔ (4) LP ∪ disgΣ ∪ {ϕ} ist unerfüllbar LP ∪ disgΣ ∪ {ϕ} `SLD ⊥. 9.2 Kleinste und größte Herbrand-Modelle Sei LP ein (co-)logisches Σ-Programm. Wie man sofort sieht, können Schnitte von (co)Hornformeln niemals zu ⊥ führen, d.h. LP 6`PSK ⊥. Also ist LP nach Satz 8.12 (ii) erfüllbar. Folglich hat LP nach Lemma 8.1 ein Herbrand-Modell. **** Wir ordnen Herbrand-Strukturen nach der Mächtigkeit ihrer Relationen: Für alle Herbrand-Strukturen A, B, 325 9 Logische Programmierung A ≤ B ⇔def pA ⊆ pB für alle Prädikate p von Σ. Lemma 9.6 (i) Seien LP ein logisches Σ-Programm, ϕ und ψ Σ-Goals und (ϕ1, . . . , ϕn) eine SLDAbleitung aus Φ ∪ {ϕ}. Dann ist (ϕ1 ∧ ψ, . . . , ϕn ∧ ψ) eine SLD-Ableitung aus LP ∪ {ϕ ∧ ψ}. (ii) Seien LP ein co-logisches Σ-Programm, ϕ und ψ Σ-co-Goals und (ϕ1, . . . , ϕn) eine SLD-Ableitung aus Φ ∪ {ϕ}. Dann ist (ϕ1 ∨ ψ, . . . , ϕn ∨ ψ) eine SLD-Ableitung aus LP ∪ {ϕ ∨ ψ}. o Satz 9.7 (i) Sei LP ein logisches Σ-Programm und M (LP ) die Herbrand-Struktur, die jedes Prädikat p von Σ wie folgt interpretiert: pM (LP ) = {t ∈ TΣ∗ | LP ∪ {pt} `SLD ⊥}. V M (LP ) ist das bzgl. ≤ kleinste Herbrand-Modell von LP . (ii) Sei LP ein co-logisches Σ-Programm und M (LP ) die Herbrand-Struktur, die jedes 326 Prädikat p von Σ wie folgt interpretiert: pM (LP ) = {t ∈ TΣ∗ | LP ∪ {pt} 6`SLD ⊥}. V M (LP ) ist das bzgl. ≤ größte Herbrand-Modell von LP . Beweis von (i). Wir zeigen zunächst, dass M (LP ) ein Modell von V LP ist. Sei ϕ ⇒ pt ∈ LP und σ : X → TΣ mit M (LP ) |= ϕσ. Dann gibt es Atome p1t1, . . . , pntn mit ϕ = p1t1 ∧ · · · ∧ pntn, also ϕσ = p1t1σ ∧ · · · ∧ pntnσ, (5) M (LP ) derart, dass für alle 1 ≤ i ≤ n M (LP ) |= pitiσ gilt, also tiσ ∈ pi und daher LP ∪ {pitiσ} `SLD ⊥. Für alle 1 ≤ i ≤ n sei (pitiσ, ϕi1 . . . , ϕiki , ⊥) eine SLD-Widerlegung von LP ∪ {pitiσ}. Daraus erhält man durch Anwendung der Resolution, aus (5) und nach Lemma 9.6 (i) die folgende SLD-Widerlegung von LP ∪ {ptσ}: 327 9 Logische Programmierung (ptσ, ϕσ, ϕ12 ∧ p2t2σ ∧ · · · ∧ pntnσ, . . . , ϕ1k1 ∧ p2t2σ ∧ · · · ∧ pntnσ, > ∧ p2t2σ ∧ · · · ∧ pntnσ, > ∧ ϕ22 ∧ · · · ∧ pntnσ, . . . , > ∧ ϕ2k2 ∧ · · · ∧ pntnσ, > ∧ > ∧ · · · ∧ pn−1tn−1σ ∧ pntnσ, ..., > ∧ > ∧ · · · ∧ > ∧ pntnσ, > ∧ > ∧ · · · ∧ > ∧ ϕn2, . . . , > ∧ > ∧ · · · ∧ > ∧ ϕnkn , > ∧ > ∧ · · · ∧ > ∧ >) Also gilt LP ∪ {ptσ} `SLD ⊥, d.h. tσ ∈ pM (LP ), und daher M (LP ) |= ptσ. Zu zeigen bleibt, dass M (LP ) das bzgl. ≤ kleinste Herbrand-Modell von V LP ist. 328 9 Logische Programmierung V Sei A ein Herbrand-Modell von LP , p ein Prädikat von Σ und t ∈ pM (LP ). Nach Definition von pM (LP ) gilt LP ∪ {pt} `SLD ⊥, also auch LP ∪ {pt} `ASK ⊥. V V Nach Satz 8.9 (ii) ist LP ∧pt unerfüllbar. Da A ein Modell von LP ist, folgt A |= pt, also t ∈ pA. V Beweis von (ii). Wir zeigen zunächst, dass M (LP ) ein Modell von LP ist. Sei pt ⇒ ϕ ∈ LP und σ : X → TΣ mit M (LP ) |= ptσ. Dann gilt ^ HE ( LP ) ∪ {ptσ} 6`SLD ⊥. (6) Außerdem gibt es Atome p1t1, . . . , pntn mit ϕ = p1t1 ∨ · · · ∨ pntn, also ϕσ = p1t1σ ∨ · · · ∨ pntnσ. (7) Angenommen, für alle 1 ≤ i ≤ n gilt LP ∪ {pitiσ} `SLD ⊥. Dann gäbe es für alle 1 ≤ i ≤ n eine SLD-Widerlegung (pitiσ, ϕi1 . . . , ϕiki , ⊥) von LP ∪ {pitiσ} und man erhielte durch Anwendung der co-Resolution, aus (7) und nach Lemma 9.6 (ii) die folgende SLD-Widerlegung von LP ∪ {ptσ}: 329 9 Logische Programmierung (ptσ, ϕσ, ϕ12 ∨ p2t2σ ∨ · · · ∨ pntnσ, . . . , ϕ1k1 ∨ p2t2σ ∨ · · · ∨ pntnσ, ⊥ ∨ p2t2σ ∨ · · · ∨ pntnσ, ⊥ ∨ ϕ22 ∨ · · · ∨ pntnσ, . . . , ⊥ ∨ ϕ2k2 ∨ · · · ∨ pntnσ, ⊥ ∨ ⊥ ∨ · · · ∨ pn−1tn−1σ ∨ pntnσ, ..., ⊥ ∨ ⊥ ∨ · · · ∨ ⊥ ∨ pntnσ, ⊥ ∨ ⊥ ∨ · · · ∨ ⊥ ∨ ϕn2, . . . , ⊥ ∨ ⊥ ∨ · · · ∨ ⊥ ∨ ϕnkn , ⊥ ∨ ⊥ ∨ · · · ∨ ⊥ ∨ ⊥) Demnach würde LP ∪ {ptσ} `SLD ⊥ gelten — im Widerspruch zu (6). M (LP ) Also gibt es 1 ≤ i ≤ n mit LP ∪ {pitiσ} `SLD ⊥, d.h. tiσ ∈ pi M (LP ) |= pitiσ. Wegen (7) folgt M (LP ) |= ϕσ. , und daher V Zu zeigen bleibt, dass M (LP ) das bzgl. ≤ größte Herbrand-Modell von LP ist. V Sei A ein Herbrand-Modell von LP , p ein Prädikat von Σ und t ∈ pA. 330 9 Logische Programmierung Wäre t 6∈ pM (LP ), dann gälte LP ∪ {pt} `SLD ⊥ nach Definition von pM (LP ), also auch V LP ∪ {pt} `ASK ⊥. Nach Satz 8.9 (ii) wäre LP ∧ pt unerfüllbar. Da A ein Modell V von LP ist, könnte demnach – im Widerspruch zur Annahme – A kein Modell von pt sein. Also ist t ∈ pM (LP ). o Wie die Korrektheit und Vollständigkeit von Schnittwiderlegungungen (8.9 (ii) und 8.12 (ii)), so lässt sich auch Satz 9.7 mit Hilfe von Satz 8.13 (ii) auf Gleichheitsmodelle übertragen: Satz 9.8 OP bezeichne die Menge der Operationen von Σ. (i) Sei LP ein logisches Σ-Programm. cM (LP ) =def H(LP ∪ congΣ)/≡H(LP ∪congΣ) ist V das bzgl. der Mächtigkeit ihrer Relationen kleinste Modell von LP unter allen ΣStrukturen, deren OP -Redukt mit dem OP -Redukt von cM (LP )|OP übereinstimmt (siehe Kapitel 8). (ii) Sei LP ein co-logisches Σ-Programm. dM (LP ) =def H(LP ∪ disgΣ)/∼H(LP ∪disgΣ) V ist das bzgl. der Mächtigkeit ihrer Relationen größte Modell von LP unter allen ΣStrukturen, deren OP -Redukt mit dem OP -Redukt von dM (LP )|OP übereinstimmt. o 331 9 Logische Programmierung Die Menge disgΣ der Σ-Disgruenzaxiome erhält man durch Kontraposition aus der Menge congΣ der Σ-Kongruenzaxiome und umgekehrt. Für beliebige Gentzenformelmengen definieren wir deren Kontraposition wie folgt: Sei Φ eine Menge von Gentzenformeln über AtΣ(X) und CΣ die Menge aller Operationen von Σ und aller Prädikate p, für die Σ ein Prädikat p enthält. Die Kontraposition C(Φ) von Φ ist die wie folgt induktiv definierte Menge von Gentzenformeln über AtCΣ(X): • C(Φ) = {C(ϕ) | ϕ ∈ Φ}. • Für alle Gentzenformeln ϕ ⇒ ψ über AtΣ(X), C(ϕ ⇒ ψ) = C(ψ) ⇒ C(ϕ). • Für alle Σ-Atome p1t1, . . . , pntn, C(p1t1 ∧ · · · ∧ pntn) = p1t1 ∨ · · · ∨ pntn, C(p1t1 ∨ · · · ∨ pntn) = p1t1 ∧ · · · ∧ pntn. In Beispiel 9.1 bilden die co-Hornformeln für unsorted die Kontraposition der Hornformeln für sorted und umgekehrt. 332 9 Logische Programmierung Satz 9.9 Sei LP ein (co-)logisches Σ-Programm. Für alle Prädikate p von Σ ist pM (C(LP )) das Komplement von pM (LP ): pM (C(LP )) = TΣ∗ \ pM (LP ). Beweis. O.B.d.A. sei LP ein logisches Σ-Programm und p ein Prädikat von Σ. Dann ist C(LP ) ein co-logisches CΣ-Programm. Da C(LP ) ∪ {pt} die Kontraposition von LP ∪ {pt} ist, erhält man (durch Induktion über Ableitungslängen) folgende Äquivalenz: C(LP ) ∪ {pt} `SLD ⊥ ⇔ LP ∪ {pt} `SLD ⊥. Also gilt: ∗ pM (C(LP )) = {t ∈ TCΣ | C(LP ) ∪ {pt} 6`SLD ⊥} = {t ∈ TΣ∗ | LP ∪ {pt} 6`SLD ⊥} = TΣ∗ \ {t ∈ TΣ∗ | LP ∪ {pt} `SLD ⊥} = TΣ∗ \ pM (LP ). o 333 9 Logische Programmierung Während (1)-(4) Beweismethoden für Eigenschaften aller Modelle eines (co-)logischen Programms LP liefern, ergeben sich aus der Minimalität bzw. Maximalität von M (LP ) – Satz 4.2 (iii) bzw. (iv) entsprechende – (Co-)Induktionsregeln, mit denen Eigenschaften von M (LP ) bewiesen werden können. Häufig stehen gerade diese Eigenschaften bei der Entwicklung eines (co-)logischen Programms im Vordergrund, was die herausragende Bedeutung seines kleinsten bzw. größten Herbrand-Modells gegenüber beliebigen Modellen unterstreicht. (Co-)Induktionsregeln werden ausführlich in [27] sowie meinen Lehrveranstaltungen über logisch-algebraischen Systementwurf behandelt und vom Beweiseditor + Expander2 neben (co-)Resolution in mehreren automatisch bzw. halbautomatisch angewendet. 9.3 Berechnungskalkül Wie Satz 9.5 (i) zeigt, dient der SLD-Kalkül nicht nur dem Beweis der Existenz von Lösungen von (co-)Goals, sondern auch der Berechnung der Lösungen selbst in Form der Komposition der bei den Regelanwendungen erzeugten mgus. 334 9 Logische Programmierung Im Folgenden werden wir die mgus in Gestalt von (Un-)Gleichungen x ≡ xσ bzw. x 6≡ xσ mit den jeweiligen Regelsukzedenten konjunktiv bzw. disjunktiv verknüpfen. Aus der Ableitung solcher (Un-)Gleichungen aus einem (co-)Goal ϕ kann dann geschlossen werden, dass die durch sie repräsentierte Variablenbelegung ϕ in Modellen von LP löst. Sei LP ein (co-)logisches Σ-Programm. Eine Folge (ϕ1, . . . , ϕn) von Σ-(co-)Goals heißt LP -Berechnung von ϕn aus ϕ1, wenn für alle 1 < i ≤ n ϕi das Ergebnis der Anwendung einer der folgenden Regeln auf ϕi−1 ist. Wieder bezeichnen ϑ und ϑ0 einzelne Atome, ϕ, ψ – möglicherweise leere – Konjunktionen oder Disjunktionen von Atomen und LP 0 die Menge aller (co-)Hornformeln ϕ0, für die es ϕ ∈ LP und eine Variablenumbenennung τ mit ϕτ = ϕ0 gibt. Faktorregel ϑ ∧ ϑ0 ∧ ϕ ⇒ ⊥ V ϑσ ∧ ϕσ ∧ {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥ ϕ, ψ ∈ TPL(AtΣ(X)), σ = unify(ϑ, ϑ0) Resolution über LP ϑ0 ∧ ϕ ⇒ ⊥ V ψσ ∧ ϕσ ∧ {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥ ψ ⇒ ϑ ∈ LP,0 σ = unify(ϑ, ϑ0), var(ψ ⇒ ϑ) k var(ϑ0 ∧ ϕ) 335 9 Logische Programmierung Summandregel ϕ ∨ ϑ ∨ ϑ0 W ϕσ ∨ ϑσ ∨ {x 6≡ xσ | x ∈ supp(σ)} σ = unify(ϑ, ϑ0) co-Resolution über LP ϕ ∨ ϑ0 W ϕσ ∨ ψσ ∨ {x 6≡ xσ | x ∈ supp(σ)} ϑ ⇒ ψ ∈ LP 0, σ = unify(ϑ, ϑ0), mit var(ϑ ⇒ ψ) k var(ϕ ∨ ϑ0) Wir schreiben ϕ `LP ψ, falls es eine LP -Berechnung von ψ aus ϕ gibt. Obgleich auch die so modifizierten SLD-Regeln aus (co-)Goals bestehende Schnittableitungen (ϕ1, . . . , ϕn) erzeugen, sind diese nicht korrekt im Sinne von Satz 8.9 (i). Anstelle V der Gültigkeit von ϕn in allen Modellen von LP ∧ϕ1 liefern sie die Gültigkeit der ImpliV kation ϕ1 ⇒ ϕn in allen Modellen von LP , die die Kongruenz- bzw. Disgruenzaxiome erfüllen: 336 9 Logische Programmierung Satz 9.10 (Korrektheit von LP -Berechnungen) (i) Seien LP ein logisches Σ-Programm, das die Σ-Kongruenzaxiome enthält, und ϕ, ψ V Σ-Goals mit ϕ `LP ψ. Alle Modelle von LP erfüllen ϕ ⇒ ψ, also auch ψ ⇒ ϕ. (ii) Seien LP ein co-logisches Σ-Programm, das die Σ-Disgruenzaxiome enthält, und ϕ, ψ V Σ-co-Goals mit ϕ `LP ψ. Alle Modelle von LP erfüllen ϕ ⇒ ψ. V Beweis von (i). Sei A ein Modell von LP . Wir zeigen, dass für die Faktorregel und die Resolution, den jeweiligen Antezendenten ϕ1 und den jeweiligen Sukzedenten ϕ2 A ein Modell von ϕ1 ⇒ ϕ2 ist. Daraus folgt (i) durch Induktion über die Länge einer LP -Berechnung von ψ aus ϕ. Da A die Σ-Kongruenzaxiome erfüllt, ist ≡A eine Σ-Kongruenz. Fall 1: ϕ1 ϕ2 ist die Faktorregel. V Dann gilt ϕ1 = (ϑ ∧ ϑ0 ∧ ϕ ⇒ ⊥) und ϕ2 = (ϑσ ∧ ϕσ ∧ {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥) für Formeln bzw. Substitutionen ϕ, ϑ, ϑ0, σ, die die Anwendbarkeitsbedingungen der Summandregel erfüllen. 337 9 Logische Programmierung Sei A |= ϕ1 und h ∈ AX . Wir unterscheiden zwei Fälle: (*) h ≡A h∗ ◦ σ oder (**) es gibt x ∈ supp(σ) mit h(x) 6≡A h∗(xσ). Aus h ∈ gA∗ (ϑσ ∧ ϕσ ⇒ ⊥) 8.3 ϑσ=ϑ0 σ = gA∗ (ϑσ ∧ ϑ0σ ∧ ϕσ ⇒ ⊥) ⇔ h∗ ◦ σ ∈ gA∗ (ϑ ∧ ϑ0 ∧ ϕ ⇒ ⊥) (∗), 8.4 (ii) ⇔ h ∈ gA∗ (ϑ ∧ ϑ0 ∧ ϕ ⇒ ⊥) = gA∗ (ϕ1) und A |=h ϕ1 folgt A |=h ϑσ ∧ ϕσ ⇒ ⊥ (1) ^ A |=h {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥, (2) im Fall (*). Im Fall (**) gilt weil (**) äquivalent ist zu: V V ∗ ∗ h ∈ gA( {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥) = gA(¬ {x ≡ xσ | x ∈ supp(σ)}) W S = gA∗ ( {¬ x ≡ xσ | x ∈ supp(σ)}) = {gA∗ (¬ x ≡ xσ) | x ∈ supp(σ)} S X T X = {A \ gA(x ≡ xσ) | x ∈ supp(σ)} = A \ {gA(x ≡ xσ) | x ∈ supp(σ)} T = AX \ {{h0 ∈ AX | h0(x) ≡A h0∗(xσ)} | x ∈ supp(σ)} = AX \ {h0 ∈ AX | h0(x) ≡A h0∗(xσ), x ∈ supp(σ)} = {h0 ∈ AX | h0(x) 6≡A h0∗(xσ), x ∈ supp(σ)}. 338 9 Logische Programmierung Also folgt A |= ϕ2 aus h ∈ gA∗ (ϕ2) = gA∗ (ϑσ ∧ ϕσ ∧ V {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥) V = gA∗ ((ϑσ ∧ ϕσ ⇒ ⊥) ∨ ( {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥)) V = gA∗ (ϑσ ∧ ϕσ ⇒ ⊥) ∪ gA∗ ( {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥ ⇔ (1) oder (2) ⇐ (*) oder (**). Fall 2: ϕ1 ϕ2 ist die Resolution. V Dann gilt ϕ1 = (ϑ0 ∧ ψ ⇒ ⊥) und ϕ2 = (ψσ ∧ ϕσ ∧ {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥) für ψ ⇒ ϑ ∈ LP 0 sowie Formeln bzw. Substitutionen ϑ0, ϕ, σ, die die Anwendbarkeitsbedingungen der Resolution erfüllen. Sei A |= ϕ1 und h ∈ AX . Wir unterscheiden wieder die Fälle (*): h ≡A h∗ ◦ σ und (**): es gibt x ∈ supp(σ) mit h(x) 6≡A h∗(xσ). Aus h∈ 8.3 gA∗ (ϑσ ∧ ϕσ ⇒ ⊥) ϑσ=ϑ0 σ = ⇔ h∗ ◦ σ ∈ gA∗ (ϑ0 ∧ ϕ ⇒ ⊥) gA∗ (ϑ0σ ∧ ϕσ ⇒ ⊥) (∗), 8.4 (ii) ⇔ h ∈ gA∗ (ϑ0 ∧ ϕ ⇒ ⊥) = gA∗ (ϕ1) und A |=h ϕ1 folgt A |=h ϑσ ∧ ϕσ ⇒ ⊥ im Fall (*), also wegen ψ ⇒ ϑ ∈ LP und Lemma 8.3: A |=h ψσ ∧ ϕσ ⇒ ⊥. (3) 339 9 Logische Programmierung Im Fall (**) gilt wieder (2). Also folgt A |= ϕ2 aus V h ∈ gA∗ (ϕ2) = gA∗ (ψσ ∧ ϕσ ∧ {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥) V ∗ = gA((ψσ ∧ ϕσ ⇒ ⊥) ∨ ( {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥)) V = gA∗ (ψσ ∧ ϕσ ⇒ ⊥) ∪ gA∗ ( {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥) ⇔ (3) oder (2) ⇐ (*) oder (**). V Beweis von (ii). Sei A ein Modell von LP . Wir zeigen, dass für die Summandregel und die co-Resolution, dem jeweiligen Antezendenten ϕ1 und dem jeweiligen Sukzedenten ϕ2 A ein Modell von ϕ1 ⇒ ϕ2 ist. Daraus folgt (ii) durch Induktion über die Länge einer LP -Berechnung von ψ nach ϕ. Da A die Σ-Disgruenzaxiome erfüllt, ist ∼A = A2\ 6≡A eine Σ-Kongruenz. Fall 1: ϕ1 ϕ2 ist die Summandregel. W Dann gilt ϕ1 = (ϕ ∨ ϑ ∨ ϑ0) und ϕ2 = (ϕσ ∨ ϑσ ∨ {x 6≡ xσ | x ∈ supp(σ)}) für Formeln bzw. Substitutionen ϕ, ϑ, ϑ0, σ, die die Anwendbarkeitsbedingungen der Summandregel erfüllen. 340 9 Logische Programmierung Sei A |= ϕ1 und h ∈ AX . Wir unterscheiden zwei Fälle: (*) h ∼A h∗ ◦ σ oder (**) es gibt x ∈ supp(σ) mit h(x) 6≡A h∗(xσ). Aus h ∈ gA∗ (ϕσ ∨ ϑσ) 8.3 ϑσ=ϑ0 σ = gA∗ (ϕσ ∨ ϑσ ∨ ϑ0σ) ⇔ h∗ ◦ σ ∈ gA∗ (ϕ ∨ ϑ ∨ ϑ0) (∗), 8.4 (ii) ⇔ h ∈ gA∗ (ϕ ∨ ϑ ∨ ϑ0) = gA∗ (ϕ1) und A |=h ϕ1 folgt A |=h ϕσ ∨ ϑσ (1) _ A |=h {x 6≡ xσ | x ∈ supp(σ)}, (2) im Fall (*). Im Fall (**) gilt weil (**) äquivalent ist zu: W W h ∈ gA∗ ( {x 6≡ xσ | x ∈ supp(σ)}) = gA∗ ( {x 6≡ xσ | x ∈ supp(σ)}) S = {gA(x 6≡ xσ) | x ∈ supp(σ)} S = {{h0 ∈ AX | h0(x) 6≡A h0∗(xσ)} | x ∈ supp(σ)} = {h0 ∈ AX | h0(x) 6≡A h0∗(xσ), x ∈ supp(σ)}. 341 9 Logische Programmierung Also folgt A |= ϕ2 aus h ∈ gA∗ (ϕ2) = gA∗ (ϕσ ∨ ϑσ ∨ W {x 6≡ xσ | x ∈ supp(σ)}) W ∗ = gA((ϕσ ∨ ϑσ) ∨ ( {x 6≡ xσ | x ∈ supp(σ)})) W = gA∗ (ϕσ ∨ ϑσ) ∪ gA∗ ( {x 6≡ xσ | x ∈ supp(σ)}) ⇔ (1) oder (2) ⇐ (*) oder (**). Fall 2: ϕ1 ϕ2 ist die co-Resolution. 0 W Dann gilt ϕ1 = (ϕ∧ϑ ) und ϕ2 = (ϕσ∨ψσ∨ {x 6≡ xσ | x ∈ supp(σ)}) für ϑ ⇒ ψ ∈ LP sowie Formeln bzw. Substitutionen ϑ0, ϕ, , σ, die die Anwendbarkeitsbedingungen der coResolution erfüllen. Sei A |= ϕ1 und h ∈ AX . Wir unterscheiden wieder die Fälle (*): h ∼A h∗ ◦ σ und (**): es gibt x ∈ supp(σ) mit h(x) 6∼A h∗(xσ). Aus h∈ 8.3 gA∗ (ϕσ ∨ ϑσ) ϑσ=ϑ0 σ = ⇔ h∗ ◦ σ ∈ gA∗ (ϕ ∨ ϑ0) gA∗ (ϕσ ∨ ϑ0σ) (∗), 8.4 (ii) ⇔ h ∈ gA∗ (ϕ ∨ ϑ0) = gA∗ (ϕ1) und A |=h ϕ1 folgt A |=h ϕσ ∨ ϑσ im Fall (*), also wegen ϑ ⇒ ψ ∈ LP und Lemma 8.3: 342 9 Logische Programmierung A |=h ϕσ ∨ ψσ. (3) Im Fall (**) gilt wieder (2). Also folgt A |= ϕ2 aus W h ∈ gA∗ (ϕ2) = gA∗ (ϕσ ∨ ψσ ∨ {x 6≡ xσ | x ∈ supp(σ)}) W ∗ = gA((ϕσ ∨ ψσ) ∨ ( {x 6≡ xσ | x ∈ supp(σ)})) W = gA∗ (ϕσ ∨ ψσ) ∪ gA∗ ( {x 6≡ xσ | x ∈ supp(σ)}) ⇔ (3) oder (2) ⇐ (*) oder (**). o V W Konjunktionen der Form ni=1 xi ≡ ti und Disjunktionen der Form ni=1 xi 6≡ ti heißen gelöste Σ-Formeln, wenn x1, . . . , xn paarweise verschiedene Variablen sind und für alle 1 ≤ i ≤ n var(ti) und {x1, . . . , xn} disjunkt sind. Korollar 9.11 Vn Wn 0 Seien sol = ( i=1 xi ≡ ti) und sol = ( i=1 xi 6≡ ti) gelöste Σ-Formeln und σ = {t1/x1, . . . , tn/xn}. Seien LP ein logisches Σ-Programm, das die Σ-Kongruenzaxiome enthält, und ϕ, ψ ΣGoals. 343 9 Logische Programmierung V (i) Aus ϕ `LP ψ ∧ sol folgt LP |= (ψσ ⇒ ϕσ). V (ii) Aus ϕ `LP sol folgt LP |= ϕσ. Seien LP ein co-logisches Σ-Programm, das die Σ-Disgruenzaxiome enthält, und ϕ, ψ Σ-co-Goals. V (iii) Aus ϕ `LP (ψ ∨ sol0) folgt LP |= (ϕσ ⇒ ψσ). V 0 (iv) Aus ϕ `LP sol folgt LP ∪ |= any(¬ϕσ). V Beweis von (i). Sei A ein Modell von LP und h ∈ AX mit A |=h ψσ. Nach Voraussetzung und Satz 9.10 (i) erfüllt A die Implikation (ψ ∧ sol) ⇒ ϕ. Damit folgt A |=h ϕσ aus A |=h solσ. (1) Nach Definition von σ erhält man (1) wie folgt: V V T h ∈ gA∗ (solσ) = gA∗ ( ni=1 xiσ ≡ tiσ) = gA∗ ( ni=1 ti ≡ ti) = ni=1 gA(ti ≡ ti) T A |= x≡x = ni=1{h0 ∈ AX | h0(ti) ≡A h0(ti)} = = AX . (ii) entspricht (i) für den Fall ψ = >. 344 9 Logische Programmierung V Beweis von (iii). Sei A ein Modell von LP und h ∈ AX mit A |=h ϕσ. Nach Voraussetzung und Satz 9.10 (ii) erfüllt A die Implikation ϕ ⇒ (ψ ∨ sol0). Damit folgt A |=h ψσ aus: A |=h sol0σ. (2) Nach Definition von σ erhält man (2) wie folgt: Wn Wn Sn ∗ 0 ∗ ∗ h 6∈ gA(sol σ) = gA( i=1 xiσ 6≡ tiσ) = gA( i=1 ti 6≡ ti) = i=1 gA(ti 6≡ ti) S A |= x6≡x = ni=1{h0 ∈ AX | h0(ti) 6≡A h0(ti)} = ∅. (iv) entspricht (iii) für den Fall ψ = ⊥. o Eine SLD-Ableitung (ϕ1, . . . , ϕn) heißt kanonisch, wenn für alle 1 ≤ i < n der Support der beim Schritt von ϕi nach ϕi+1 gebildeten Variablenumbenennung keine Variablen von Si k=1 ϕk enthält. Zu jeder SLD-Ableitung (ϕ1, . . . , ϕn) gibt es eine Variablenumbenennung τ derart, dass (ϕ1, ϕ2τ, . . . , ϕnτ ) kanonisch ist. 345 9 Logische Programmierung Wie man leicht sieht, sind die Supports der im Laufe einer kanonischen SLD-Ableitung (ϕ, ϕ1, . . . , ϕn) bzw. (ψ, ψ1, . . . , ψn) von (co-)Goals aus LP ∪ {ϕ} bzw. LP ∪ {ψ} konstruierten mgus γ1, . . . , γn und damit auch die Supports der Kompositionen δi = γ1 . . . γi paarweise disjunkt. Folglich sind für alle 1 ≤ i ≤ n die Σ-Formeln ^ soli = ( x ≡ xδi) und soli0 = ( x∈supp(δi ) _ x 6≡ xδi) x∈supp(δi ) gelöst und (ϕ, ϕ1 ∧ sol1, . . . , ϕn ∧ soln) bzw. (ψ, ψ1 ∨ sol10 , . . . , ψn ∨ soln0 ) LP -Berechnungen. Für alle 1 ≤ i ≤ n gilt also: LP ∪ {ϕ} `SLD ϕi LP ∪ {ψ} `SLD ψi ⇒ ⇒ ϕ `LP ϕi ∧ soli, ψ `LP ψi ∨ soli0 . (1) (2) 346 9 Logische Programmierung Satz 9.12 (Vollständigkeit von LP -Berechnungen) (i) Sei LP ein logisches Σ-Programm, das die Σ-Kongruenzaxiome enthält, ϕ eine KonV junktion von Σ-Atomen und σ : X → TΣ mit LP |= ϕσ. V Dann gibt es eine gelöste Σ-Formel sol = ( ni=1 xi ≡ ti) mit ϕ `LP sol und {t1/x1, . . . , tn/xn} ≤ σ (siehe Kapitel 8). (ii) Sei LP ein logisches Σ-Programm, das die Σ-Disgruenzaxiome enthält, ϕ eine DisV junktion von Σ-Atomen und σ : X → TΣ mit LP |= ¬ϕσ. Wn 0 Dann gibt es eine gelöste Σ-Formel sol = ( i=1 xi 6≡ ti) mit ϕ `LP sol0 und {t1/x1, . . . , tn/xn} ≤ σ. Beweis von (i). V V Nach Voraussetzung ist LP ∧ ¬ϕσ, also auch LP ∧ ϕσ unerfüllbar. Also gibt es nach Satz 9.5 (ii) eine SLD-Widerlegung von LP ∪ {ϕσ}, die aussagenlogisch ist, weil σ eine Grundsubstitution ist. Daher gibt es nach Satz 9.5 (i) eine o.B.d.A. kanonische SLD-Widerlegung von LP ∪ {ϕ} mit γ ≤ σ, wobei γ die Komposition der im Laufe der Widerlegung gebildeten mgus ist. 347 9 Logische Programmierung V Wegen (1) gilt also ϕ `LP sol für sol = ( x∈supp(γ) x ≡ xγ). Beweis von (ii). V Nach Voraussetzung ist LP ∧ ϕσ unerfüllbar. Also gibt es nach Satz 9.5 (ii) eine SLDWiderlegung von LP ∪ {ϕσ}, die aussagenlogisch ist, weil σ eine Grundsubstitution ist. Daher gibt es nach Satz 9.5 (i) eine o.B.d.A. kanonische SLD-Widerlegung von LP ∪ {ϕ} mit γ ≤ σ, wobei γ die Komposition der im Laufe der Widerlegung gebildeten mgus ist. W Wegen (2) gilt also ϕ `LP sol0 für sol0 = ( x∈supp(γ) x 6≡ xγ). o Beispiele von Berechnungen logischer Programme Die folgenden Ableitungen verwenden die logischen Programme der obigen Beispiele 9.19.3 und wurden mit dem Beweiseditor+ Expander2 auf der Grundlage der axiomatischen Spezifikation + log4 erzeugt. Jedes Goal ϕ ⇒ ⊥ wird hier nur durch seine Prämisse ϕ dargestellt. Das jeweils ausgewählte Atom eines Goals wird gleichzeitig mit allen (co-)Hornformeln geschnitten, deren Konklusion mit dem (co-)Atom unifizierbar ist. Deshalb besteht das jeweilige Redukt aus der Dis- bzw. Konjunktion ihrer jeweiligen Prämissen bzw. Konklusionen. 348 9 Logische Programmierung Variablen, die in der Prämisse bzw. Konklusion, aber nicht der Konklusion bzw. Prämissen einer der benutzten (co-)Hornformeln vorkommen, werden im Redukt existenz- bzw. allquantifiziert. True steht dort für >, False für ⊥, & für ∧, | für ∨, Any für ∃, All für ∀, <= für le, =/= für 6≡, [] für nil, : für cons, - für remove, ++ für conc, + für plus und [1..n] für enum(n). Kongruenzaxiome sowie Hornformeln für die eben genannten Operationen bzw. Prädikate sind in + Expander2 eingebaut und tauchen deshalb in + log4 nicht auf. Stattdessen folgen auf jede Schnittregelanwendung (hier nicht angezeigte) Simplifikationsschritte, die Teilausdrücke durch äquivalente Teilausdrücke ersetzen und so die jeweilige Resolvente in eine äquivalente Normalform überführen. + + + + + + Beweis von sorted[1,3,4] Widerlegung von unsorted[1,3,4] Berechnung der Lösungen von select([1,3,4],x) Berechnung der Lösungen von perm([1,3,4],s) Berechnung der Lösungen von actsABC(3,acts) Berechnung der Lösungen von queens(4,s) (siehe Beispiel 9.1) (dto.) (dto.) (dto.) (siehe Beispiel 9.2) (siehe Beispiel 9.3) 349 9 Logische Programmierung + Expander2 verbindet Gleichungs- mit (co-)Hornlogik, womit die für manche Ableitungen erforderlichen zahlreichen Schnitte von (co-)Goals mit Kongruenzaxiomen zu einigen wenigen Termersetzungen zusammengefasst werden können. In den obigen Beispielberechnungen gehören diese Termersetzungen zu den hier nicht angezeigten Simplifikationsschritten. 350 Highlights 351 Literatur [1] Pierre Basieux, Die Architektur der Mathematik: Denken in Strukturen, rororo science, 2000 [2] Mordechai Ben-Ari, Mathematical Logic for Computer Science, Lehrbuch, Springer, 2001 [3] Johan van Benthem, Exploring Logical Dynamics, CSLI Publications, Stanford University, 1996 [4] Jürgen Dassow, Logik für Informatiker, Lehrbuch, Teubner, 2005 [5] Hartmut Ehrig et al., Mathematisch-strukturelle Grundlagen der Informatik, Springer 2001 [6] Erich Grädel, Mathematische Logik, Vorlesungsskript, RWTH Aachen, SoSe 2009 [7] Melvin Fitting, First-Order Logic and Automated Theorem Proving, Springer, 1996 [8] Heinz Peter Gumm, Universelle Coalgebra, in: Th. Ihringer, Allgemeine Algebra, Heldermann Verlag, 2003 [9] Dieter Hofbauer, Ralf-Detlef Kutsche, Grundlagen des maschinellen Beweisens, Vieweg, 1991 352 [10] Michael Huth, Mark Ryan, Logic in Computer Science, Cambridge University Press, 2004 [11] Bart Jacobs, Jan Rutten, A Tutorial on (Co)Algebras and (Co)Induction, EATCS Bulletin 62 (1997) 222-259 [12] Uwe Kastens und Hans Kleine Büning, Modellierung: Grundlagen und formale Methoden, Hanser 2008; als Buch zur Zeit nicht verfügbar, aber hier sind die Materialien zur zugehörigen Vorlesung (sehr empfehlenswert!) [13] Gabriele Kern-Isberner, Bernhard Steffen, Oliver Rüthing, Mathematik für Informatiker 1, Kapitel 1-8, Vorlesungsskript, TU Dortmund, WiSe 2011/12, neues Buch dazu [14] Martin Kreuzer, Stefan Kühling, Logik für Informatiker, Pearson 2006; 49 Exemplare in der UB-Lehrbuchsammlung [15] Alexander Kurz, Coalgebras and Modal Logic, Kurs am CWI Amsterdam, 2001 [16] Zohar Manna, Mathematical Theory of Computation, McGraw-Hill, 1974 [17] Christoph Meinel, Martin Mundhenk, Mathematische Grundlagen der Informatik - Mathematisches Denken und Beweisen, Springer Vieweg 2011 [18] K. Meinke, J.V. Tucker, Universal Algebra, in: Handbook of Logic in Computer Science 1 (1992) 189 - 368 353 [19] Faron Moller, Georg Struth, Modelling Computing Systems - Mathematics for Computer Science, Springer 2013 (sehr empfehlenswert!) [20] Anil Nerode, Richard A. Shore, Logic for Applications, Lehrbuch, Springer, 1997 [21] Peter Padawitz, Dirk Siefkes, Einführung in die Syntax und Semantik der Prädikatenlogik, Vorlesungsskript, TU Berlin, 1981 [22] Peter Padawitz, Computing in Horn Clause Theories, EATCS Monographs on Theoretical Computer Science 16, Springer-Verlag, 1988; Freiexemplare gibt es bei mir. [23] Peter Padawitz, Deduction and Declarative Programming, Cambridge Tracts in Theoretical Computer Science 28, Cambridge University Press, 1992 [24] P. Padawitz, Swinging Types = Functions + Relations + Transition Systems, Theoretical Computer Science 243 (2000) 93-165 [25] Peter Padawitz, Modellieren und Implementieren in Haskell, Folienskript, TU Dortmund, 2012 [26] Peter Padawitz, Formale Methoden des Systementwurfs, Vorlesungsskript, TU Dortmund, 2006 [27] Peter Padawitz, From Modal Logic to (Co)Algebraic Reasoning, Folienskript, TU Dortmund, 2013 354 [28] Peter Padawitz, Übersetzerbau, Folienskript, TU Dortmund, 2015 [29] Peter Padawitz, Übersetzerbau, Vorlesungsskript, TU Dortmund, 2010 [30] Peter Padawitz, Fixpoints, Categories, and (Co)Algebraic Modeling, Folienskript, TU Dortmund, 2014 [31] Michael Richter, Logikkalküle, Teubner, 1978 [32] Jan Rutten, Universal Coalgebra: A Theory of Systems, Theoretical Computer Science 249 (2000) 3-80 [33] Uwe Schöning, Logik für Informatiker, Spektrum Akademischer Verlag, 2000 [34] Thomas Schwentick, Logik für Informatiker, Vorlesungsfolien, TU Dortmund, WiSe 2012/13 [35] Walter Vogler, Logik für Informatiker, Vorlesungsskript, Universität Augsburg, WiSe 2011/12 [36] Hubert Wagner, Logische Systeme der Informatik, Vorlesungsskript, TU Dortmund, WiSe 2000/01 355 Index (Σ, E)-Algebra, 113 E-Reduktionsrelation, 115 E-Äquivalenz, 115 E-irreduzibel, 116 F basiert auf C, 68 F basiert auf D, 71 F -Coinduktion, 47 F -Induktion, 47 F -abgeschlossen, 46 F -dicht, 46 HΣ-Algebra, 228 K-Ableitung, 61 LP -Berechnung, 335 ASK -Widerlegung, 150 C-Invariante, 70 D-Kongruenz, 72 K, K0-Bisimulation, 204 PSK -Widerlegung, 271 SLD-Widerlegung, 319 Σ-Algebra, 92 Σ-Atom, 242 Σ-Disgruenzaxiome, 285 Σ-Formel, 243 Σ-Gleichung, 105 Σ-Homomorphismus, 93, 243 Σ-Isomorphismus, 94 Σ-Kongruenz, 111, 243 Σ-Kongruenzaxiome, 285 Σ-Struktur, 243 Σ-Term, 91 χ, 36 distAll , 258 distEx , 258 λ-Notation, 28 distBox , 181, 237 distDia, 181, 237 356 negAL, 136 negM , 181, 237 negQ, 258 removeQ, 258 rename, 258 mkfun, 38 mkrel , 38 curry, 37 n-Tupel, 20 uncurry, 37 Äquivalenzabschluss, 202 Äquivalenzlemma, 106, 256 Äquivalenzrelation, 110 überabzählbar, 42 Abbildung, 25 Ableitungsrelation, 61 Absorption, 136 abzählbar, 42 Adjazenzliste, 38 Adjazenzmatrix, 36 algebraisches Coinduktionsprinzip, 85 Allabschluss, 246 allgemeingültig, 10 allgemeinster Unifikator, 266 Anfrage, 303 Annihilation, 136 Antezedent, 12 antisymmetrisch, 110 Argument, 25 Assoziativität, 135 Atom, 132 aufzählbar, 42 Auslöschung, 136 aussagenlogische SLD-Ableitung, 320 aussagenlogische Formel, 132 aussagenlogische Operation, 132 Axiom, 12 Baum, 156 Belegung, 98 besuchte Box-Formel, 183 357 bijektiv, 33 Bild, 26 binär, 242 binäre Relation, 24 Bisimulation, 202 bisimulationsinvariant, 297 Bitalgebra, 96 Blatt eines Baums, 157 Boolesche Algebra, 136 Boolesche Matrix, 36 Boolescher Ausdruck, 97 charakteristische Funktion, 36 co-Goal, 303 co-Hornformel, 303 co-logisches Σ-Programm, 303 co-Resolution, 319, 336 Coalgebra, 221 coinduktiv definierte Menge, 49 curryfiziert, 37 Definitionsbereich, 25 Destruktormenge, 71 deterministischer Automat, 230 Diagonalargument, 42 Diagonale, 26 Differenz, 20 disjunkt, 21 Disjunktion, 132 disjunktive Normalform, 139, 166 Distributivität, 136 DNF, 139, 166 Domäne eines Baums, 156 Durchschnitt, 20 Einführungsregel, 149, 270 elementar K-äquivalent, 206 elementar äquivalent, 34 endlich verzweigt, 174 endliche Funktion, 26 endlicher Baum, 156 entscheidbar, 15 erfüllbar, 10 358 erfüllbarkeitsäquivalent, 259 erkennender Automat, 232 erreichbarer Knoten, 157 Existenzabschluss, 246 Extension einer Funktion, 98 Faktor, 132 Faktorisierung, 110 Faktorregel, 270, 318, 335 final, 223 Fixpunkt, 26 Folgerung, 10 Folgerungssatz, 134 Fortsetzung einer Funktion, 98 freie Variable, 246 Funktion, 25 Funktor, 220 gültig, 10, 105, 106 gebundenes Vorkommen, 246 gelöste Σ-Formel, 343 Gentzenformel, 141, 167 gesättigtes Tableau, 158, 184 geschlossene Formel, 139, 246 geschlossenes Tableau, 184 Gewichtsfunktion, 117 Gleichheitsmodell, 284, 302 Gleichheitsprädikat, 284 Gleichheitsstruktur, 284, 302 Goal, 303 Graph, 26 Grundsubstitution, 101 Grundterm, 92 Halbordnung, 110 Hennessy-Milner-Theorem, 207 Herbrand-Expansion, 264 Herbrand-Modell, 245 Herbrand-Struktur, 243 Hornformel, 303 Idempotenz, 135 Identität, 30 Implikation, 132 359 Implikationspfeil, 11 implikative Normalform, 142, 167 impliziert, 11 Indexmenge, 24 Individuenvariable, 240 induktiv definierte Menge, 49 INF, 142, 167 Inferenzsystem, 12 initiale Σ-Algebra, 100 Injektion, 31 injektiv, 26 Inklusion, 30 Instanz, 101 Interpretation einer Operation, 92 inverse Funktion, 30 inverse Relation, 24 isomorph, 34 Kalkül, 12 kanonische SLD-Ableitung, 345 Kardinalität, 41 kaskadiert, 37 Kern, 26 Kette, 57 Klasse, 18 Kleene-Abschluss, 57 Kleisli-Komposition, 104 KNF, 139, 166 Knoten, 156 Knoten eines Baums, 156 Kommutativität, 135 komplementäre Literale, 139 Komplementarität, 136 Komponente eines Tupels, 20 Komposition, 29 Komprehension, 19 Kongruenzregel, 112 Konjunktion, 132 konjunktive Normalform, 139, 166 Konkatenation, 75 Konklusion, 11 konsistente Theorie, 15 360 konsistenter Abschluss, 280 Konstante, 26 Konstruktor-Induktion, 73 Konstruktormenge, 68 Kontraposition, 107, 138, 332 korrekter Kalkül, 15 Kripke-Funktor, 221 Kripke-isomorph, 206 Kripke-Morphismus, 205 Kripke-Rahmen, 171 Kripke-Struktur, 170 Lösung in einer Struktur, 245, 299 Lambeks Lemma, 225 leaves, 157 leeres Wort, 18 lexikographische Erweiterung, 117 Lifting einer Algebra, 97 Lifting-Lemma, 276 Liste, 21 Literal, 139, 166 logisches Programm, 303 Mächtigkeit, 41 maximale DNF, 147 Menge, 18 Mengenoperator, 19 mgu, 266 modale Operation, 170 modallogische Formel, 170 Modell, 10, 133, 173, 245, 299 Modus ponens, 113 monotone Funktion, 46 Moore-Automat, 229 Multimenge, 40 Multimengen-Erweiterung, 117 Nachfolger eines Knotens, 157 natürliche Abbildung, 110 Negation, 132 Negationsnormalform, 138, 182, 259 Neutralität, 136 nichtdeterministische Funktion von A nach 361 B, 38 NNF, 138, 182, 259 Normalform bzgl. einer Σ-Algebra, 107 Obermenge, 19 occur check, 267 offene Formel, 139 offenes Tableau, 184 Operation, 91 partielle Ordnung, 110 partieller Automat, 233 Partition, 24 Pfad eines Baumes, 157 Potenzmenge, 21 Prädikat, 242 prädikatenlogische Formel, 243 prädikatenlogische Operation, 241 Präfixrelation, 157 Prämisse, 11 Präordnung, 110 primitiv-rekursive Funktion, 75 Produkt, 20 Produkt von Funktionen, 32 Produktextension, 31 Projektion, 30 Quantor, 240 Quasiordnung, 110 Quotient, 110 Record, 24 Redex, 14 Redukt, 14 Redukt einer Struktur, 259 reflexiv, 109 Reflexivitätsregel, 112 Relation, 24 Relation auf, 24 Resolution, 319, 335 Resolvente, 150, 271 Schnittregel, 150, 270 Schrittfunktion, 49 schwach final, 222 362 Semantik, 10 semantischer Bereich, 10 semi-entscheidbar, 15 Signatur, 91 Skolemfunktion, 260 Skolemnormalform, 261 Sprache, 232 Stelle, 25 Stelligkeit, 25 Strom, 40 Struktur, 240 strukturelle Induktion über einer Termmenge, 120 Substitution, 101 Substitutionslemma, 102, 253 subsumieren, 266 Subsumptionsrelation, 157 Suchraum, 108 Sukzedent, 12 Summand, 132 Summandregel, 270, 318, 336 Summe, 20 Summe von Funktionen, 32 Summenextension, 31 Support, 268 surjektiv, 26 Symmetrieregel, 112 symmetrisch, 110 Syntax, 10 Tableau, 158, 183 Tableau-Ableitung, 158, 184 Tableau-Widerlegung, 159, 184 tautologisch, 10 Teilmenge, 19 Teilterm, 104 Teiltermrelation, 120 Termersetzungstheorie, 107 Termfaltung, 100 ternär, 242 totale Ordnung, 110 Trägermenge, 92 363 Transitionsfunktion, 171 transitiv, 109 Transitivitätsregel, 112 Typ, 25 unär, 242 unäre Relation, 19 Unerfüllbarkeitssatz, 134 Ungleichheitsprädikat, 284 Unifikator, 266 Update einer Funktion, 28 Urbild, 25 Vereinigung, 20 verhaltensäquivalent, 202 Verhaltensäquivalenz, 201 Verhaltensmodell, 223 vollständige Theorie, 15 vollständiger Kalkül, 15 Vorgänger eines Knotens, 157 Weg eines Baums, 157 Wert eines Terms, 99 Wert eines Terms unter einer Belegung, 98 Wertebereich, 25 widersprüchlich, 10 Widerspruchsbeweis, 138 wohlfundierte Relation, 55 Wohlordnung, 110 Wort, 21 Wurzel eines Baums, 156 Zerlegung, 24 Zusicherung, 16, 233 Zustandsatom, 182 Zustandsformel, 173 Zustandsliteral, 182 wechselseitig induktiv definierte Funktion bzgl. C, 80 364
© Copyright 2024 ExpyDoc