Logik für Informatiker Logic for Computer Scientists Peter Padawitz, TU Dortmund, Germany Webseite zur LV: + fldit-www.cs.tu-dortmund.de/logik1.html Monday 11th April, 2016 17:00 1 Inhalt Die mit einem Stern (*) versehenen Abschnitte werden in der laufenden Vorlesung nicht behandelt. Zur Navigation auf Titel, nicht auf Seitenzahlen klicken! 1 Vorbemerkungen 6 2 Bestandteile und Eigenschaften einer Logik 8 1 Logik in der Informatik 3 Mengen und Funktionen 16 18 1 Mengen und Relationen 18 2 Funktionen 24 3 Isomorphien 32 4 Highlights 43 4 (Co)Induktiv Definieren und Beweisen 45 1 (Co)Induktiv definierte Mengen 45 2 Induktion über n ∈ N 52 2 3 Noethersche Induktion bzgl. R ⊆ A2 55 4 Ableitungen und Ableitungsrelationen 58 5 Konstruktoren und Destruktoren 66 6 (Co)Induktiv definierte Funktionen 72 7 Highlights 84 5 Gleichungslogik 88 1 Signaturen, Terme und Algebren 88 2 Termauswertung und -substitution 95 3 Termgleichungen 102 4 Normalformen 104 5 Äquivalenzrelationen und Quotienten 106 6 Gleichungskalkül 109 7 Berechnung äquivalenter Normalformen 112 8 Gleichungslogik in anderen Logiken 122 9 Highlights 125 6 Aussagenlogik 1 Normalformen 128 134 3 2 Schnittkalkül 145 3 Knotenmarkierte Bäume* 151 4 Tableaukalkül* 155 5 Highlights 162 7 Modallogik 165 1 Übersetzung von Modal- in Aussagenlogik 170 2 Tableaukalkül* 178 3 Zustandsäquivalenz 197 4 Minimierungsalgorithmus 211 5 Verhaltensmodelle und finale Strukturen* 215 6 Highlights 229 8 Prädikatenlogik 230 1 Normalformen 248 2 Schnittkalkül 260 3 Prädikatenlogik mit Gleichheit 275 4 Übersetzung von Modal- in Prädikatenlogik 283 5 Highlights 289 4 9 Logische Programmierung 290 1 SLD-Kalkül 305 2 Kleinste und größte Herbrand-Modelle 313 3 Berechnungskalkül 322 4 Highlights 339 10 Literatur 340 11 Index 343 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 Bestandteile und Eigenschaften einer Logik 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 (im Sinne bestimmter symbolischer Ausdrücke) Semantik: Bedeutung, Interpretation der Formeln und ihrer Komponenten in einem semantischen Bereich (domain) Umgekehrt werden Elemente des semantischen Bereichs durch Formeln repräsentiert. Zwei Formeln sind äquivalent bzgl. einer Semantik, wenn sie dieselbe Bedeutung haben. Modell oder Lösung einer Formel ϕ: Element des semantischen Bereichs, das ϕ bzgl. der jeweiligen Semantik erfüllt (satisfies), für das ϕ gilt (gültig ist; is valid; holds true). ϕ folgt aus einer Menge Φ von Formeln, kurz: Φ |= ϕ, wenn jedes Modell (aller Formeln) von Φ ein Modell von ϕ ist. Zwei Formeln heißen äquivalent, wenn sie dieselben Modelle haben. 10 2 Bestandteile und Eigenschaften einer Logik 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 wobei für alle 0 ≤ i ≤ k + 1 Φi eine Menge von Formeln und ϕi eine einzelne Formel der jeweils zugrundeliegenden Logik ist. Die Ausdrücke oberhalb des Bruchstrichs nennt man Antezedenten und den Ausdruck darunter Sukzedenten der Regel. Rechts neben dem Bruchstrich stehen manchmal zusätzliche Bedingungen an die Antezedenten. 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. ϕ heißt aus Φ K-ableitbar, geschrieben: Φ `K ϕ, wenn der Ausdruck Φ ` ψ das Ergebnis wiederholter Anwendungen von Regeln des Kalküls K ist. Intuitiv ist vermutlich klar, was damit gemeint ist. Um es 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 ϕ unterschiedliche Schlüsse ziehen, z.B. • ϕ folgt aus Φ, • Φ ist widersprüchlich, • ϕ repräsentiert eine Lösung von Φ, • ϕ repräsentiert eine Normalform von Φ. Beispiel Anwendungen der bekannten Distributivgesetze x ∗ (y1 + · · · + yn) = x ∗ y1 + · · · + x ∗ yn, (x1 + · · · + xn) ∗ y = x1 ∗ y + · · · + xn ∗ y (1) (2) in einem Beweis entsprechen Anwendungen von Regeln der Form c[(t ∗ (u1 + · · · + un)/z] c[t ∗ u1 + · · · + t ∗ un/z] bzw. c[(t1 + · · · + tn) ∗ u/z] , c[t1 ∗ u + · · · + tn ∗ u/z] (3) 13 2 Bestandteile und Eigenschaften einer Logik wobei c, t1, . . . , tn, u1, . . . , un beliebige arithmetische Ausdrücke sind und z eine Variable von c ist. c[t/x] bezeichnet die t-Instanz von c, d.h. denjenigen Ausdruck, der aus c entsteht, wenn dort x durch t ersetzt wird. Da sich nur der Teilausdruck t ∗ (u1 + · · · + un bzw. (t1 + · · · + tn) ∗ u des Antezedenten der ersten bzw. zweiten Regel von (3) bei deren Anwendung verändert, nennt man ihn Redex und den korrespondierenden Teilausdruck t∗u1 +· · ·+t∗un bzw. t1 ∗u+· · ·+tn ∗u des Sukzedenten Redukt der Regel. + Hier steht eine Folge von Ausdrücken, die beweist, dass aus 5 ∗ (6 ∗ (11 ∗ (x + y + z) ∗ 14 + (c + g + b) ∗ 22) + 44 ∗ (gg + hh)) (4) mit den beiden Regeln von (3) 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 (5) ableitbar ist, dass also (4) `(3) (5) gilt. 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 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 erfüllt ϕ} und e ∈ B ⇔def e ∈ A und e erfüllt ϕ 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 nach Definition der Mengendifferenz. Damit ist A eine Teilmenge von B. o 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}. Aufgabe Beweisen Sie Satz 3.2. (1) (2) o 22 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. 23 3 Mengen und Funktionen 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), 24 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. 25 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) 26 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 27 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. 28 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. 29 3 Mengen und Funktionen Die Elemente von n Mengen A1, . . . , An werden mit Injektionen ιi : Ai → A1 + · · · + An a 7→ (a, i) 1≤i≤n in die Summe A1 + · · · + An eingebettet. Seien n Funktionen fi : Ai → B bzw. gi : B → Ai, 1 ≤ i ≤ n, gegeben. Die Summenextension [f1, . . . , fn] : A1 + · · · + An → B von fi : Ai → B, 1 ≤ i ≤ n, und die Produktextension hg1, . . . , gni : A1 × · · · × An → B von gi : B → Ai, 1 ≤ i ≤ n, sind folgendermaßen definiert: Für alle (a, i) ∈ A1 + · · · + An und b ∈ B, [f1, . . . , fn](a, i) =def fi(a), hg1, . . . , gni(b) =def (g1(b), . . . , gn(b)). 30 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: 31 3 Mengen und Funktionen ιi Ai A1 + · · · + An = f1 + · · · + fn fi g Bi ιi A1 × · · · × An f g1 × · · · × gn g B1 + · · · + Bn B1 × · · · × Bn πi Ai f = gi πi 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.). 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. Beweis. Seien g und h Inverse von f . Dann gilt: h = h ◦ idB = h ◦ (f ◦ g) = (h ◦ f ) ◦ g = idA ◦ g = g. o 32 3 Mengen und Funktionen 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. 33 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 hier 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 ∼ (3) = A ∪ B. −1 −1 Für alle a ∈ A und b ∈ B, f (a, 1) = a, f (b, 2) = b, f (a) = (a, 1) und f (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) = (a, 1). 34 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)) = {b ∈ A | χ(B)(b) = 1} = {b ∈ A | a ∈ B} = B. 35 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: 36 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 • 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. 37 3 Mengen und Funktionen mkfun ist bijektiv. Für alle Mengen A, B gilt also P(A × B) ∼ = P(B)A. (7) folgt auch aus (5) und (6): P(A × B) ∼ = P(B)A. = 2A×B ∼ = (2B )A ∼ (7) 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 (8) (9) (10) Aufgabe Zeigen Sie für alle f : A → C B und g : C → D: g ◦ uncurry(f ) = uncurry((λh.g ◦ h) ◦ f ). (11) Aufgabe Zeigen Sie für alle R ⊆ A × B: curry(χ(R)) = χ−1 ◦ mkfun(R). 38 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. 39 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. 40 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. 41 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. 42 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 43 3 Mengen und Funktionen A+B A×B A × (B + C) C A+B (B × C)A A∼ =C ∧ B∼ =D P(A) P(A) ∼ = ∼ = ∼ = ∼ = ∼ = ⇒ ∼ = ∼ 6= 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 44 4 (Co)Induktiv Definieren und Beweisen (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. 45 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. T (i) lfp(F ) =def {T ⊆ S | F (T ) ⊆ T } ist die kleinste F -abgeschlossene Teilmenge von S und der kleinste Fixpunkt von F . S (ii) gfp(F ) =def {T ⊆ S | T ⊆ F (T )} 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 ). (iv) F -Coinduktion gfp(F ) enthält jede F -dichte Teilmenge von S. 46 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 \ 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 -abgeschlosse 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 . 47 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 . 48 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 ⊆ R Fnat-abgeschlossen und N 6⊆ T . Dann gibt es n ∈ N \ T . Sei n das (bzgl. der üblichen kleiner-Relation auf N) kleinste Element von N \ T . Wegen Fnat(T ) ⊆ T folgt 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 Beispiel 4.3 Zeigen Sie analog zum Beweis von Satz 4.2, dass die Menge evens der geraden Zahlen induktiv definiert und 49 4 (Co)Induktiv Definieren und Beweisen 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 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→ {} ∪ R ∪ {(a, a1, . . . , an) | a ∈ R, a ≤ a1, (a1, . . . , an) ∈ T, n > 0} eine Schrittfunktion für sorted ist. o 50 4 (Co)Induktiv Definieren und Beweisen Beispiel 4.6 Zeigen Sie analog zum Beweis von Satz 4.2, dass die Menge n X R[x] = {λ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 } o eine Schrittfunktion für R[x] ist. 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 : 51 4 (Co)Induktiv Definieren und Beweisen Satz 4.1 (ii) S Def . G S = {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 } gfp(G) Satz 4.2 (i) = S \ lfp(F ) “⇐”: analog. lfp(F )=T = S \ T. o 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 Tϕ aller natürlichen Zahlen, die ϕ erfüllen, Fnat-abgeschlossen ist. 52 4 (Co)Induktiv Definieren und Beweisen Die Korrektheit der Induktion über n folgt demnach aus der Monotonie von Fnat, Satz 4.1 (iii) und Satz 4.2: Fnat(Tϕ) ⊆ Tϕ impliziert N = lfp(Fnat) ⊆ Tϕ, 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 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! 53 4 (Co)Induktiv Definieren und Beweisen 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. 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 54 4 (Co)Induktiv Definieren und Beweisen 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 Tϕ FR -abgeschlossen ist. Die Korrektheit Noetherscher Induktion bzgl. R folgt demnach aus der Monotonie von FR , Satz 4.1 (iii) und Satz 4.8: FR (Tϕ) ⊆ Tϕ impliziert A = lfp(FR ) ⊆ Tϕ, 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 55 4 (Co)Induktiv Definieren und Beweisen 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 n(S) F =def F (∅) bzw. F∞ =def n∈N n∈N heißt oberer bzw. unterer Kleene-Abschluss von F . Satz 4.9 Sei F : P(S) → P(S) monoton. (i) (ii) (iii) F ∞ ⊆ lfp(F ). F (F ∞) ⊆ F ∞ ⇒ F ∞ = lfp(F ). gfp(F ) ⊆ F∞. 56 4 (Co)Induktiv Definieren und Beweisen (iv) F∞ ⊆ F (F∞) ⇒ F∞ = gfp(F ). Beweis von (i). Wir zeigen F n(∅) ⊆ lfp(F ) für alle n ∈ N durch Induktion über n: Induktionsanfang: F 0(∅) = ∅ ⊆ lfp(F ). (1) Induktionsschritt: Da F monoton ist und lfp(F ) ein Fixpunkt von F , gilt F Also gilt F ∞ = S n∈N F n+1 n n (1) (∅) = F (F (∅)) ⊆ F (lfp(F )) = lfp(F ). (∅) ⊆ 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 ). Beweis von (iii). Wir zeigen gfp(F ) ⊆ F n(S) für alle n ∈ N durch Induktion über n: Induktionsanfang: gfp(F ) ⊆ S = F 0(S). (2) 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). 57 4 (Co)Induktiv Definieren und Beweisen Also gilt gfp(F ) ⊆ T 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∞. 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. 58 4 (Co)Induktiv Definieren und Beweisen Offenbar sind FK : P(P(Fo) × Fo) → P(P(Fo) × Fo) T 7→ {(Φ, ϕ) | Φ1 `ϕ1 ,...,Φk `ϕk Φ`ϕ ∈ K, (Φ1, ϕ1), . . . , (Φk ϕk ) ∈ T } und FK ∗ : P((P(Fo) × Fo)∗) → P((P(Fo) × Fo)∗) T 7→ 1 ∪ {(a1, . . . , an+1) | (a1, . . . , an) ∈ T, an+1 ∈ FK ({a1, . . . , an})} monoton. Der obere Kleene-Abschluss von FK heißt K-Ableitungsrelation und wird mit `K bezeichnet. ψ ∈ Fo heißt aus Φ ⊆ Fo K-ableitbar, wenn (Φ, ψ) zu `K gehört, wofür man auch Φ `K ψ schreibt und `K ψ, falls Φ leer ist, bzw. ϕ `K ψ, falls Φ aus genau einem Element ϕ besteht. Ein (im Fall n = 0 leeres) Tupel (t1, . . . , tn) ∈ FK∞∗ heißt K-Ableitung von ϕ aus Φ, wenn tn = (Φ ` ϕ) gilt. o 59 4 (Co)Induktiv Definieren und Beweisen 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 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: ,...,Φk `ϕk ∈ K, (Φ1, ϕ1), . . . , (Φk ϕk ) ∈ FK∞} FK (FK∞) = {(Φ, ϕ) | Φ1`ϕ1Φ`ϕ S ,...,Φk `ϕk = n∈N{(Φ, ϕ) | Φ1`ϕ1Φ`ϕ ∈ K, (Φ1, ϕ1), . . . , (Φk ϕk ) ∈ FKn (∅)} S = n∈N FKn+1(∅) = FK∞. Also gilt (i) nach Satz 4.9 (i) und (ii). 60 4 (Co)Induktiv Definieren und Beweisen Beweis von (ii). FK∞∗ ist FK ∗ -abgeschlossen: FK ∗ (FK∞∗ ) = 1 ∪ {(a1, . . . , an+1) | (a1, . . . , an) ∈ FK∞∗ , an+1 ∈ FK ({a1, . . . , an})} S = FK ∗ (∅) ∪ n∈N{(a1, . . . , an+1) | (a1, . . . , an) ∈ FKn ∗ (∅), an+1 ∈ 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 Tϕ aller (a1, . . . , an) ∈ S ∗ mit a1, . . . , an ⊆ FK∞ FK ∗ -abgeschlossen ist. Sei also s ∈ FK ∗ (Tϕ). Nach Definition von FK ∗ ist s die leere Ableitung oder es gibt (a1, . . . , an) ∈ Tϕ und an+1 ∈ FK ({a1, . . . , an}) mit s = (a1, . . . , an+1). Im ersten Fall folgt s ∈ Tϕ aus ∅ ⊆ FK∞. Im zweiten Fall gilt {a1, . . . , an} ⊆ FK∞ nach Definition von Tϕ 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 Tϕ. 61 4 (Co)Induktiv Definieren und Beweisen Damit ist gezeigt, dass Tϕ F -abgeschlossen ist. o 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(AN) → P(AN) T 7→ {s ∈ AN | s(0) = 0 ∨ λi.s(i + 1) ∈ T }, G : P(AN) → P(AN) T 7→ {s ∈ AN | 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: 62 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 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 63 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 64 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 65 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. Konstruktoren und Destruktoren Sei A eine Menge und C eine Menge von Funktionen mit Wertebereich A. Für alle c : A1 × · · · × An → A ∈ C bezeichne Ic die Menge der Indizes 1 ≤ i ≤ n mit Ai = A. C heißt Konstruktormenge für A, wenn es für alle a ∈ A genau ein c ∈ C und genau ein b ∈ dom(c) mit a = c(b) gibt. T ⊆ A heißt C-Invariante, wenn für alle c : A1 × · · · × An → A ∈ C und (a1, . . . , an) ∈ A1 × · · · × An Folgendes gilt: (∀ i ∈ Ic : ai ∈ T ) ⇒ c(a1, . . . , an) ∈ T . 66 4 (Co)Induktiv Definieren und Beweisen F : P(S) → P(S) basiert auf C, wenn für alle T ⊆ S Folgendes gilt: F (T ) = {c(t) | c ∈ C, t ∈ dom(c), ∀ i ∈ Ic : πi(t) ∈ 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 u ∈ dom(c) mit t = c(u). Demnach haben die Ic-Komponenten von u 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 Beispiel 4.15 Die Schrittfunktionen Fnat, Feven : P(N) → P(N) (s.o.) basieren auf der Konstruktormenge Cnat = {λx.0, (+1) : N → N} bzw. Ceven = {λx.0, (+2) : even → even}. 67 4 (Co)Induktiv Definieren und Beweisen 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 und cons : A × A∗ → A∗ wie folgt definiert: Für alle a, a1, . . . , an ∈ A, cons(a, ) = a, cons(a, (a1, . . . , an)) = (a, a1, . . . , an). Die Schrittfunktion Flist : P(A∗) → P(A∗) (s.o.) basiert auf der Konstruktormenge Clist = {λx., cons}. o Beispiel 4.17 (siehe Beispiel 4.3) Sei post : R[x] × R → R[x] wie folgt definiert: Für alle a ∈ R und p ∈ R[x], post(p, a) = λx.p(x) ∗ x + a. Fpoly basiert auf der Konstruktormenge Cpoly = {λx.a | a ∈ R} ∪ {post} 68 4 (Co)Induktiv Definieren und Beweisen Z.B. repräsentiert die Cpoly -Darstellung post(post(549.32, −33.11), 5.4) das Polynom λx.549.32 ∗ x2 − 33.11 ∗ x + 5.4. o Während Konstruktoren die Synthese von Daten beschreiben, dienen Destruktoren ihrer Analyse durch Transformation und Beobachtung: Sei D eine Menge von Funktionen mit Definitionsbereich A. Für alle d : A → A1 + · · · + An ∈ D bezeichne Id die Menge der Indizes 1 ≤ i ≤ n mit Ai = 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. R ⊆ A2 heißt D-Kongruenz, wenn für alle d : A → A1 + · · · + An ∈ D, a, a0 ∈ A und (b, i), (b0, j) ∈ A1 + · · · + An Folgendes gilt: ( (b, b0) ∈ R ∧ i = j falls i ∈ Id, 0 0 0 ((a, a ) ∈ R ∧ d(a) = (b, i) ∧ d(a ) = (b , j)) ⇒ i = j ∧ b = b0 sonst. 69 4 (Co)Induktiv Definieren und Beweisen F : P(S) → P(S) basiert auf D, wenn für alle T ⊆ S Folgendes gilt: F (T ) = {t ∈ S | ∀ d ∈ D, (u, i) ∈ ran(d) : d(t) = ((u, i) ∧ i ∈ Id) ⇒ u ∈ T }. Beispiel 4.18 (Ströme über A) Die Funktionen head : AN → A und 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 Fstream : P(AN) → P(AN) (siehe Beispiel 4.11) basiert auf der Destruktormenge Dstream = {head, tail}. o Lemma 4.19 Sei F : P(S) → P(S) monoton, C eine Menge von Funktionen mit Wertebereich F ∞ und D eine Menge von Funktionen mit Definitionsbereich F∞. (i) F basiert auf C ⇒ F ∞ = lfp(F ). (ii) F basiert auf D ⇒ F∞ = gfp(F ). 70 4 (Co)Induktiv Definieren und Beweisen (iii) Strukturelle Induktion über lfp(F ) Jede C-Invariante von lfp(F ) enthält lfp(F ). 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 t ∈ dom(c) derart, dass t mit c(u) übereinstimmt und für alle i ∈ Ic πi(u) zu F ∞ gehört. Daher gibt es für alle i ∈ Ic eine natürliche Zahl ni mit πi(u) ∈ F ni (∅). Da Ic endlich und F monoton ist, folgt πi(u) ∈ F m(∅) für m = max{ni | i ∈ Ic}. Also gibt es n ∈ N derart, dass t zu {c(u) | c ∈ C, u ∈ dom(c), ∀ i ∈ Ic : πi(u) ∈ F n(∅)} = F (F n(∅)) = F n+1(∅) gehört. Daraus folgt t ∈ 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)) = {t0 ∈ S | ∀ d ∈ D, i ∈ Id : d(t0) = (u, i) ⇒ u ∈ F n(S)}. 71 4 (Co)Induktiv Definieren und Beweisen Demnach gilt u ∈ F n(S) für alle n ∈ N, d ∈ D und (u, i) ∈ ran(d) mit d(t) = (u, i) und i ∈ Id. Also gehört u für alle d ∈ D und (u, i) ∈ ran(d) mit d(t) = (u, i) und i ∈ Id zu F∞. Daraus folgt t ∈ F (F∞). Beweis von (iii). Sei T eine C-Invariante von lfp(F ). Nach Satz 4.5 (iii) genügt es zu zeigen, dass T F -abgeschlossen ist. Sei also t ∈ F (T ). Dann gibt es c ∈ C und t ∈ dom(c) derart, dass t mit c(u) übereinstimmt und für alle i ∈ Ic πi(u) zu T gehört. Da T eine C-Invariante von lfp(F ) ist, folgt t ∈ T . o (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 ∈ C eine aus Konstruktoren und bereits definierten Funktionen zusammengesetzte Funktion gc : A|Ic| × lfp(F )n → A gibt derart, dass für {i1, . . . , ik } = Ic und alle (t1, . . . , tn) ∈ dom(c) f (c(t1, . . . , tn)) = gc(f (ti1 ), . . . , f (tik ), t1, . . . , tn) gilt. 72 4 (Co)Induktiv Definieren und Beweisen 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: Für alle a ∈ A und w ∈ A∗, length() = 0, length(cons(a, w)) = length(w)+1, conc() = λw.w, conc(cons(a, w)) = λw0.cons(a,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 (post(p, a)) = λb.diff (p)(b) ∗ b + p(b). o 73 4 (Co)Induktiv Definieren und Beweisen Im Fall F = Fnat und C = {0, (+1)} nennt man eine induktiv definierte Funktion auch primitiv-rekursiv. Satz 4.22 Sei C eine Konstruktormenge und F die Schrittfunktion, die auf C basiert. Die Gleichungsmenge E = {f (c(t1, . . . , tn)) = gc(f (ti1 ), . . . , f (tik ), t1, . . . , tn) | c ∈ C, (t1, . . . , tn) ∈ dom(c)}. 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 Induktion über F : 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 (ti1 ), . . . , f (tik ), t1, . . . , tn) gilt, wobei c und (t1, . . . , tn) die nach Lemma 4.14 eindeutigen Elemente von C bzw. dom(c) mit t = c(t1, . . . , tn) sind. Nach Satz 4.5 (iii) ist zu zeigen, dass T F -abgeschlossen ist. Sei also t ∈ F (T ), d.h. es gibt c ∈ C und (t1, . . . , tn) ∈ dom(c) mit ti ∈ T für alle i ∈ Ic = {i1, . . . , ik } und t = c(t1, . . . , tn). 74 4 (Co)Induktiv Definieren und Beweisen Folglich hat f an den Stellen ti1 , . . . , tik eindeutige Werte. Deshalb können wir f an der Stelle t = c(t1, . . . , tn) durch gc(f (ti1 ), . . . , f (tik ), t1, . . . , tn) definieren. Folglich gehört t zu T . Beweis der Eindeutigkeit von f durch Induktion über F : 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.5 (iii) ist zu zeigen, dass T F -abgeschlossen ist. Sei also t ∈ F (T ). Dann gibt es c ∈ C und (t1, . . . , tn) ∈ dom(c) mit ti ∈ T für alle i ∈ Ic = {i1, . . . , ik } und t = c(t1, . . . , tn). Demnach gilt f (ti) = f 0(ti) für alle i ∈ Ic. Daraus folgt f (t) = f (c(t1, . . . , tn)) = gc(f (ti1 ), . . . , f (tik ), t1, . . . , tn) = gc(f 0(ti1 ), . . . , f 0(tik ), t1, . . . , tn) = f 0(c(t1, . . . , tn)) = f 0(t), also t ∈ T . o Beispiel 4.23 (Beweis durch Induktion über Flist; siehe Beispiele 4.16 und 4.18) Sei Tϕ = {v ∈ A∗ | ∀ w ∈ A∗: length(conc(v)(w)) = length(v) + length(w)}. Nach Definition von length und conc gelten folgende Gleichungen für alle v, w ∈ A∗: 75 4 (Co)Induktiv Definieren und Beweisen length(conc()(v)) = length(v) = 0 + length(v) = length() + length(v), (1) length(conc(cons(a, v))(w)) = length(cons(a, conc(v)(w))) = length(conc(v)(w)) + 1 length(cons(a, v)) + length(w) = length(v) + length(w) + 1 (2) (3) Tϕ ist Flist-abgeschlossen: Flist(Tϕ) = 1 ∪ {(cons(a, v) | a ∈ A, v ∈ Tϕ} = 1 ∪ {cons(a, v) | a ∈ A, ∀ w ∈ A∗ : length(conc(v)(w)) = length(v) + length(w)} = 1 ∪ {cons(a, v) | a ∈ A, ∀ w ∈ A∗ : length(conc(v)(w)) + 1 = length(v) + length(w) + 1 (2),(3) = 1 ∪ {cons(a, v) | a ∈ A, ∀ w ∈ A∗ : length(conc(cons(a, v))(w)) = length(cons(a, v)) + length(w)} (1) = {v ∈ A∗ | ∀ w ∈ A∗ : length(conc(v)(w)) = length(v) + length(w)} = Tϕ. o 76 4 (Co)Induktiv Definieren und Beweisen Wie mehrere Mengen, so können manchmal auch m > 1 Funktionen nur wechselseitig induktiv definiert werden: Ein Funktionstupel (f1 : lfp(F ) → A1, . . . , fm : lfp(F ) → Am) heißt wechselseitig induktiv definiert, wenn es für alle 1 ≤ i ≤ m und c ∈ C eine Funktion gi,c : Am∗|Ic| × lfp(F )n → Ai gibt derart, dass für {i1, . . . , ik } = Ic und alle (t1, . . . , tn) ∈ dom(c) folgende Gleichung gilt: fi(c(t1, . . . , tn)) = gi,c(f1(ti1 ), . . . , f1(tik ), . . . , fm(ti1 ), . . . , fm(tik ), t1, . . . , tn). Beispiel 4.24 (Hilbertkurven) Sei D = {east, west, north, south}. Das folgende Funktionsquadrupel (go1 : N → D∗, . . . , go4 : N → D∗) 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. 77 4 (Co)Induktiv Definieren und Beweisen Im Fall i = 1 und n = 5 entsteht z.B. folgende Kurve: 78 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. 79 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, die z.B. auch mehrstellige Funktionen f : lfp(F )n → A abdecken, so dass z.B. die Listenkonkatenation von Beispiel 4.18 als unkaskadiert definiert werden kann. 80 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 Beispiel 4.11) 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 coinduktiv definieren: 81 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. Eine Relation R ⊆ (RN)2 heißt D-Kongruenz, wenn für alle s, s0 ∈ RN Folgendes gilt: (s, s0) ∈ R ⇒ head(s) = head(s0) und (tail(s), tail(s0)) ∈ R. (5) 82 4 (Co)Induktiv Definieren und Beweisen Aufgabe Zeigen Sie, dass die Diagonale von (RN)2 eine D-Kongruenz ist und dass RN das algebraische Coinduktionsprinzip erfüllt, d.h. dass jede D-Kongruenz mit ∆RN übereinstimmt. 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. 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 83 4 (Co)Induktiv Definieren und Beweisen Highlights T ⊆ S induktiv definiert: Es gibt F : P(S) → P(S) mit T = F ∞ =def S T ⊆ S coinduktiv definiert: Es gibt F : P(S) → P(S) mit T = F∞ =def n∈N F T n (∅). n∈N F n (S). 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 ). Sei F : P(S) → P(S) monoton. T Satz 4.5 (i): lfp(F ) =def {T ⊆ S | F (T ) ⊆ T } ist die kleinste F -abgeschlossene Teilmenge von S und der kleinste Fixpunkt von F . S Satz 4.5 (ii): gfp(F ) =def {T ⊆ S | T ⊆ F (T )} ist die größte F -dichte Teilmenge von S und der größte Fixpunkt von F . Induktion über F (Satz 4.5 (iii)): Jede F -abgeschlossene Teilmenge von S enthält lfp(F ). Coinduktion über F (Satz 4.5 (iv)): gfp(F ) enthält jede F -dichte Teilmenge von S. 84 4 (Co)Induktiv Definieren und Beweisen Sei Tϕ die die Menge der Elemente von S, die ϕ erfüllen. Satz 4.5 (iii) ⇒ Jedes Element von lfp(F ) erfüllt ϕ, wenn Tϕ F -abgeschlossen ist. Satz 4.5 (iv) ⇒ Jedes Element von S, das ϕ erfüllt, gehört zu gfp(F ), wenn Tϕ F -dicht ist. Schrittfunktion für N: Fnat : P(N) → P(N) T 7→ {0} ∪ {a + 1 | a ∈ T } Induktion über n ∈ N = Induktion über Fnat. Schrittfunktion für `K : FK : P(S) → P(S) T 7→ {(Φ, ϕ) | Φ1 `ϕ1 ,...,Φk `ϕk Φ`ϕ ∈ K, (Φ1, ϕ1), . . . , (Φk ϕk ) ∈ T } Satz 4.9 (i): F (F ∞) ⊆ F ∞ ⇒ lfp(F ) = F ∞. Satz 4.9 (ii): F∞ ⊆ F (F∞) ⇒ gfp(F ) = F∞. 85 4 (Co)Induktiv Definieren und Beweisen Schrittfunktion einer Menge A mit wohlfundierter Relation R: FR : P(A) → P(A) T 7→ {a ∈ A | ∀ b ∈ A : (b, a) ∈ R ⇒ b ∈ T } Noethersche Induktion bzgl. R = FR -Induktion. Schrittfunktion für AN: Fstream : P(AN) → P(AN) T 7→ {s ∈ AN | λi.s(i + 1) ∈ T } Konstruktormenge C für A: Für alle a ∈ A gibt es genau ein c ∈ C und genau ein b ∈ dom(c) mit a = c(b). Für alle c : A1 × · · · × An → A ∈ C sei Ic die Menge der Indizes 1 ≤ i ≤ n mit Ai = A. F : P(S) → P(S) basiert auf C: Für alle T ⊆ S, F (T ) = {c(t) | c ∈ C, t ∈ dom(c), ∀ i ∈ Ic : i ∈ Ic}. 86 4 (Co)Induktiv Definieren und Beweisen Strukturelle Induktion über lfp(F ): Jede C-Invariante von lfp(F ) enthält lfp(F ). Bzgl. C induktiv definierte Funktion f : lfp(F ) → A: Für alle c ∈ C gibt es gc : A|Ic| × lfp(F )n → A derart, dass für {i1, . . . , ik } = Ic und alle (t1, . . . , tn) ∈ dom(c) folgende Gleichung gilt: f (c(t1, . . . , tn)) = gc(f (ti1 ), . . . , f (tik ), t1, . . . , tn). Q Destruktormenge D für A: Für alle b ∈ d∈D ran(d) gibt es genau ein a ∈ A mit d(a) = πd(b) für alle d ∈ D. Für alle d : A → A1 + · · · + An ∈ D sei Id die Menge der Indizes 1 ≤ i ≤ n mit Ai = A. F : P(S) → P(S) basiert auf D: Für alle T ⊆ S, F (T ) = {t ∈ S | ∀ d ∈ D, i ∈ Id : d(t) = (u, i) ⇒ u ∈ T }. Bzgl. D coinduktiv definierte Funktion g : A → gfp(F ): Für alle c ∈ C 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) 87 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). 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} 88 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 hier 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. 89 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 meistens mit f () 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 90 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. 91 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. 92 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. 93 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 94 5 Gleichungslogik 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): 95 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 Zeigen Sie durch strukturelle Induktion über TΣ(X), dass g ∗ der einzige ΣHomomorphismus von TΣ(X) nach A mit g ∗ ◦ incX = g ist. o 96 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. 97 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. 98 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 99 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)) 100 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 ], σ1 . . . σn anstelle von σn∗ ◦ · · · ◦ σ2∗ ◦ σ1. σ1 . . . σn bezeichnet man auch als Kleisli-Komposition der Belegungen σ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] immer 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. 101 5 Gleichungslogik 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). 102 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) mit A |= t ≡ t0. 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 103 5 Gleichungslogik 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. 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. 104 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. Aufgabe Zeigen Sie, dass es für jede Σ-Algebra A, die E erfüllt, mehrere Terme t ∈ NF gibt mit (x + y) ∗ (z + z 0) ≡A t. Unten werden zwei Verfahren zur Berechnung äquivalenter Normalformen beschrieben und in Beispiel 5.7 bzw. 5.9 auf NF und E angewendet. 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. 105 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. Ä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) 106 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. 107 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 108 5 Gleichungslogik 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) 109 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.5 (iii) und Satz 4.7 (i) 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 Beispiel 4.4). Sei (E, t ≡ t0) ∈ FGK (P ). 110 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 111 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 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). 112 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 113 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: 114 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 115 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 eine bedingte Gleichungen enthalten. Satz 5.9 Sei incX : X → NF die Inklusion von X in NF (siehe Kapitel 3) und 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. (4) Beweis. Für alle t ∈ TΣ(X) gelte t ≡E inc∗X (t). (5) Aus (5) und (2) folgt t ≡A inc∗X (t). 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. 116 5 Gleichungslogik 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 Beispiel 5.10 Seien Σ, NF und E wie in Beispiel 5.5. NF 2 kann wie folgt induktiv definiert werden: • t, t0 ∈ T{∗}(X) ⇒ (t, t0) ∈ NF , • u, v, t0 ∈ NF ⇒ (u + v, t0) ∈ NF 2, • t ∈ T{∗}(X) ∧ u, v ∈ NF ⇒ (t, u + v) ∈ NF 2. + und ∗ werden in NF als induktiv definierte Funktionen interpretiert: Für alle t, t0 ∈ NF , 117 5 Gleichungslogik t +NF t0 = t + t0, 0 t ∗ t (u ∗NF t0) + (v ∗NF t0) t ∗NF t0 = NF NF (t ∗ u) + (t ∗ 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. Beweis von (5) 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 . 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 +. 118 5 Gleichungslogik 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 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 , 119 5 Gleichungslogik >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: ¬(¬x ∧ ¬y) ≡ x ∨ y, x∧x ≡ x, ¬> ≡ ⊥, ¬¬x ≡ x, ¬t ∨ u ≡ t ⇒ u. Aufgabe Zeigen Sie (5) 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 120 5 Gleichungslogik 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. 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 tiσ ≡ t0iσ aus E. 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). 121 5 Gleichungslogik 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 ∗ 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)) für alle σ : X → TΣ(X), also insbesondere t = id(t) = inc∗X (t) ≡E inc∗X (t0) = id(t0) = t0. o 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. 122 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 die Semantik einer modal- oder prädikatenlogischen Formel eine Funktion des Typs State → 2, wobei State eine Zustandsmenge ist, die in der Modallogik zu einer Kripke-Struktur K : State → P(State) × P(At) gehört, die jedem Zustand s seine (direkten) Folgezustände sowie alle atomaren Formeln zuordnet, die im Zustand s gelten. In der Prädikatenlogik besteht State aus allen Belegungen von X in einer Σ-StrukturA, d.i. eine Σ-Algebra, die die Prädikate von Σ als Relationen auf A interpretiert. 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 ) 123 5 Gleichungslogik modal- bzw. prädikatenlogischen Formeln ihre jeweilige Bedeutung zuordnet. Die Auswertung aussagen-, modal- bzw. prädikatenlogischer Formeln zu Wahrheitswerten erfolgt demnach stets durch Anwendung der Extension g ∗ einer Belegung g von Atomen im jeweiligen semantischen Bereich (2, P(State) bzw. P(AX )): = incAt At g∗ = gK TML(At) gK∗ P(State) 2 incAtΣ(X) AtΣ(X) = gA TPL(AtΣ(X)) gA∗ ≺ ≺ g TAL(At) ≺ incAt At P(AX ) 124 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Σ(X): Eine Eigenschaft ϕ gilt genau dann für alle ΣTerme über X, wenn für alle f : n → 1 ∈ Σ aus der Gültigkeit von ϕ für Terme t1, . . . , tn (Induktionshypothese) die Gültigkeit von ϕ für f (t1, . . . , tn) folgt. 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. 125 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 Σ-Homomorphismen h : A → B gilt (h ◦ g)∗ = h ◦ g ∗ und damit insbesondere (g ∗ ◦ σ)∗ = g ∗ ◦ σ ∗ für alle Substitutionen σ : X → TΣ(X). Sei t1, . . . , tn, t01, . . . , t0n, t, t0 ∈ TΣ(X). Dann nennen wir die Formel ϕ = (t1 ≡ t01 ∧ · · · ∧ tn ≡ t0n ⇒ t ≡ t0) eine (bedingte) Σ-Gleichung. 126 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. 127 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 ¬. 128 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 erfüllt ϕ oder ist ein Modell von ϕ, geschrieben: g |= ϕ, wenn g ∗(ϕ) = 1 gilt. ϕ ist erfüllbar, wenn es ein Modell von ϕ gibt, wenn also ϕ ≡2 ⊥ nicht gilt. Andernfalls ist ϕ unerfüllbar oder widersprüchlich. Φ ist (un)erfüllbar, wenn es (kein) g mit g |= ϕ für alle ϕ ∈ Φ gibt. ϕ ist allgemeingültig oder tautologisch, wenn alle g : At → 2 Modelle von ϕ sind, wenn also ϕ ≡2 > gilt. 129 6 Aussagenlogik ψ folgt aus ϕ oder Φ, geschrieben: ϕ |= ψ bzw. Φ |= ψ, wenn jedes Modell von ϕ bzw. aller Elemente von Φ auch ψ erfüllt. Ist Φ leer, dann schreiben wir auch |= ψ anstelle von Φ |= ψ. 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) o Aus (2) und (3) folgt sofort der Unerfüllbarkeitssatz: Sei ϕ, ψ ∈ TAL(At). ψ folgt genau dann aus ϕ, wenn ϕ ∧ ¬ψ unerfüllbar ist. (5) 130 6 Aussagenlogik ϕ und ψ sind äquivalent, wenn die Bitalgebra (siehe Beispiel 5.1) die AL-Gleichung ϕ ≡ ψ erfüllt, m.a.W.: wenn für alle g : At → 2 g ∗(ϕ) = g ∗(ψ) gilt, kurz: ϕ ≡2 ψ (siehe Kapitel 5). 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 ϕ. 131 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. 132 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.1 A (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. 133 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 Normalformen Eine aussagenlogische Formel heißt Negationsnormalform (NNF), wenn ⇒ in ihr nicht vorkommt und ¬ nur direkt vor Atomen. 134 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 paarweise verschiedener Konjunktionen paarweise verschiedener Literale heißt disjunktive Normalform (DNF). Eine Konjunktion paarweise verschiedener 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, 135 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 136 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 verschiedener Atome, • ψ = ⊥ oder ψ ist eine Disjunktion paarweise verschiedener Atome, • kein Atom kommt sowohl in ϕ als auch in ψ vor. Eine Konjunktion von Gentzenformeln nennen wir implikative Normalform (INF). 137 6 Aussagenlogik 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. 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 BE -äquivalent. (8) 138 6 Aussagenlogik • ψ ist zu einer DNF BE -äquivalent. (9) • ψ ist zu einer KNF BE -äquivalent. (10) • ϑ ist zu einer INF BE -ä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. 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 (⊥) = >, 139 6 Aussagenlogik ¬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: • 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. 140 6 Aussagenlogik 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}, >⇒⊥ falls neg(d) = ∅ = pos(d), falls neg(d) 6= ∅, pos(d) = ∅, x1 ∧ · · · ∧ xm ⇒ ⊥ gen(d) = > ⇒ y1 ∨ · · · ∨ yn falls neg(d) = ∅, pos(d) 6= ∅, x1 ∧ · · · ∧ xm ⇒ y1 ∨ · · · ∨ yn falls neg(d) 6= ∅ = 6 pos(d), pos(d)kneg(d), > sonst. Kurz gesagt, die positiven Literale von d bilden, konjunktiv verknüpft, die Prämisse der Gentzenformel gen(d), während die Atome der negativen Literale von d, disjunktiv verknüpft, die Konklusion von gen(d) bilden. Aufgabe Zeigen Sie ϑ ≡BE inf (ϑ) =def ^ {gen(d) | d ist Faktor von ϑ, gen(d) 6= >}. o 141 6 Aussagenlogik Zusammengefasst erhält man eine zu einer aussagenlogischen Formel ϕ BE -äquivalente • NNF durch Anwendung von nnf auf ϕ; • DNF und KNF durch Anwendung von aus BE ableitbaren Gleichungen auf nnf (ϕ); • INF durch Anwendung von inf auf die KNF. Sei die Menge At der Atome endlich. Dann können wir ihre Elemente anordnen: At = {x1, . . . , xn}. Dann gibt es für jede aussagenlogische Formel ϕ über At sogar 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. M.a.W.: Eine DNF ist eine MDNF, wenn jeder ihrer Summanden n Faktoren hat und für alle 1 ≤ j ≤ n der j-te Faktor das Atom xj enthält. 142 6 Aussagenlogik 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.1 A 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) 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. 143 6 Aussagenlogik 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 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. 144 6 Aussagenlogik |At| Aufgabe Zeigen Sie, dass es genau 3|At| Gentzenformeln und 23 INFs mit denselben Gentzenformeln nur einfach gezählt werden. INFs gibt, wobei alle o Schnittkalkül Der aussagenlogische Schnittkalkül ASK besteht aus zwei Regeln: Einführungsregel Φ`ψ ψ∈Φ Aussagenlogische Schnittregel Φ ` ϕ ⇒ ψ ∨ x, Φ ` x ∧ ϕ0 ⇒ ψ 0 Φ ` ϕ ∧ ϕ0 ⇒ ψ ∨ ψ 0 ϕ, ϕ0, ψ, ψ 0 ∈ TAL(At), x ∈ At Jede zur Gentzenformel des Sukzedenten der Schnittregel BE -ä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. 145 6 Aussagenlogik Eine ASK -Widerlegung einer Menge Φ von Gentzenformeln ist eine ASK -Ableitung von > ⇒ ⊥ aus Φ. Beispiel Schnittwiderlegung der Gentzenformelmenge Φ = {ϕ1, ϕ2, ϕ3, ϕ4} mit ϕ1 ϕ2 ϕ3 ϕ4 Φ Φ Φ Φ Φ Φ Φ ` ` ` ` ` ` ` ϕ1 ϕ2 >⇒y∨z ϕ3 >⇒y ϕ4 >⇒⊥ = = = = > ⇒ x ∨ y ∨ z, x ⇒ y ∨ z, z ⇒ y, y ⇒ ⊥. Resolvente von ϕ1 und ϕ2 Resolvente von > ⇒ y ∨ z und ϕ3 Resolvente von > ⇒ y und ϕ4 o 146 6 Aussagenlogik Für eine Gentzenformel der Form > ⇒ ϕ oder ψ ⇒ ⊥ schreiben wir fortan auch ϕ bzw. ψ. Satz 6.2 (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). Es genügt zu zeigen, dass aus der Konjunktion der Antezedenten ϕ ⇒ ψ ∨ x und x ∧ ϕ0 ⇒ ψ 0 der Schnittregel der Sukzedent ϕ ∧ ϕ0 ⇒ ψ ∨ ψ 0 folgt. Daraus erhält man (i) durch Induktion über die Anzahl der Resolventen einer Schnittableitung von ψ aus Φ. Sei also g : At → 2 ein Modell der Antezedenten. Dann gilt g ∗(ϕ ⇒ ψ ∨ x) = 1 = g ∗(x ∧ ϕ0 ⇒ ψ 0). Sei g ein Modell der Prämisse des Sukzedenten, d.h. g ∗(ϕ ∧ ϕ0) = 1. Daraus folgt g ∗(ϕ) = 1 = g ∗(ϕ0). (14) 147 6 Aussagenlogik Zu zeigen bleibt, dass g auch die Konklusion des Sukzedenten erfüllt, d.h. g ∗(ψ ∨ ψ 0) = 1. (15) Fall 1: g(x) = 0. Wegen (14) gilt g ∗(ϕ) = 1. Wegen g ∗(ϕ ⇒ ψ ∨ x) = 1 folgt daraus g ∗(ψ ∨ x) = 1 , also auch (15): 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 (14) gilt g ∗(x ∧ ϕ0) = g(x) ∧2 g ∗(ϕ0) = 1 ∧2 g ∗(ϕ0) = g ∗(ϕ0) = 1. Wegen g ∗(x ∧ ϕ0 ⇒ ψ 0) = 1 folgt daraus g ∗(ψ 0) = 1, also auch (15): g ∗(ψ ∨ ψ 0) = g ∗(ψ) ∨2 g ∗(ψ 0) = g ∗(ψ) ∨2 1 = 1. 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: 148 6 Aussagenlogik Satz 6.3 (Vollständigkeit von ASK -Widerlegungen) Sei Φ eine unerfüllbar 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 Φ = {⊥}. Seien n > 0 und x ein in ϕ vorkommendes Atom. Seien px(Φ) und nx(Φ) die Mengen aller Gentzenformeln von Φ, die x enthalten bzw. nicht enthalten, Φ⊥ = {ϑ ⇒ ϑ0 | ϑ ⇒ ϑ0 ∨ x ∈ px(Φ)} ∪ nx(Φ), Φ> = {ϑ ⇒ ϑ0 | x ∧ ϑ ⇒ ϑ0 ∈ px(Φ)} ∪ nx(Φ). Für alle ϕ ∈ Φ⊥ und ψ ∈ Φ> gilt ϕ ≡2 {⊥/x}∗(ϕ) bzw. ψ ≡2 {>/x}∗(ψ). (16) Da Φ unerfüllbar ist, sind wegen (4) auch {⊥/x}∗(ϕ) und {>/x}∗(ψ), also wegen (16) auch Φ⊥ und Φ> unerfüllbar. 149 6 Aussagenlogik Da Φ⊥ und Φ> ein Atom weniger enthalten als Φ, folgt Φ⊥ `ASK ⊥ und Φ> `ASK ⊥ nach Induktionsvoraussetzung. Lemma 6.4 (s.u.) impliziert Φ `ASK ⊥. o Aufgabe Sei Φ⊥ `ASK ψ = (ϑ ⇒ ϑ0). Zeigen Sie durch Induktion über die Anzahl der Schnittregelanwendungen einer kürzesten Ableitung von ψ aus Φ⊥, dass Φ `ASK ψ oder Φ `ASK ϑ ⇒ ϑ0 ∨ x gilt. Sei Φ> `ASK ψ = (ϑ ⇒ ϑ0). Zeigen Sie durch Induktion über die Anzahl der Schnittregelanwendungen einer kürzesten Ableitung von ψ aus Φ>, dass Φ `ASK ψ oder Φ `ASK x ∧ ϑ ⇒ ϑ0 gilt. o Lemma 6.4 (Verallgemeinerung von [9], Lemma 1.50) Seien Φ eine Menge von Gentzenformeln, x ∈ At, Φ⊥ und Φ> wie im Beweis von Satz 6.3, Φ⊥ `ASK ⊥ und Φ> `ASK ⊥. Dann gilt Φ `ASK ⊥. Beweis. Laut obiger Aufgabe gilt Φ `ASK ⊥ oder sowohl Φ `ASK x als auch Φ `ASK x. Da ⊥ die Resolvente von x und x ⇒ ⊥ ist, gilt auch im zweiten Fall Φ `ASK ⊥ gilt. o 150 6 Aussagenlogik Die inverse Relation von `ASK ist nicht wohlfundiert, m.a.W.: es gibt unendliche Schnittableitungen. Wegen der endlichen Anzahl aussagenlogischer Resolventen, die man aus einer endlichen Menge Φ von Gentzenformeln bilden kann, muss aber in jeder unendlichen Schnittableitung aus Φ mindestens eine Gentzenformel mehrfach vorkommen. Wir können also auf die weitere Verwendung jeder abgeleiteten Formel verzichten, die schon früher abgeleitet wurde oder ein Element von Φ ist. Damit wird nicht nur jede einzelne Schnittableitung aus Φ, sondern auch die Menge aller dieser Ableitungen endlich, so dass die Frage “Ist Φ erfüllbar?” entschieden, d.h. stets mit ja oder nein beantwortet werden kann. Aus den Sätzen 6.2 (ii) und 6.3 folgt nämlich, dass Φ genau dann erfüllbar ist, wenn mindestens eine dieser Ableitungen mit ⊥ endet. 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. 151 6 Aussagenlogik Bei der mathematischen Darstellung eines Baumes und seiner Knoten muss unterschieden werden zwischen den Knoten selbst und deren jeweiliger Markierung, die für mehrere Knoten dieselbe sein kann. Sei L eine Menge von Markierungen (labels). Eine Funktion t : N∗>0 → 1 + L heißt Lmarkierter Baum, wenn t() ∈ L und für alle w ∈ N∗ und i > 0 folgende Implikationen gelten: w(i + 1) ∈ L ⇒ wi ∈ L, (17) wi ∈ L ⇒ w ∈ L. (18) w ∈ N∗>0 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∗>0 | t(w) ∈ L} ist die Domäne von t. t ist endlich, wenn dom(t) endlich ist. Jedes Element von dom(t) identifiziert eindeutig einen Knoten von t. (17) drückt aus, dass jeder Knoten außer der Wurzel einen Vorgänger in t hat. (18) erlaubt die eindeutige Identifizierung von Geschwisterknoten. 152 6 Aussagenlogik Eine Baumdomäne Tree(L) bezeichnet die Menge aller L-markierten Bäume. Sei t ∈ Tree(L) und w ∈ N∗>0 mit t(w) ∈ L. Der Baum t0 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. 153 6 Aussagenlogik Die wie folgt definierte Präfixrelation ≤ ist eine partielle Ordnung auf N∗>0 (siehe Kapitel 5): Für alle v, w ∈ N∗>0, v ≤ w ⇔def es gibt u ∈ N∗>0 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. w heißt Blatt von t, wenn für alle n > 0 t(wn) = ist. leaves(t, w) bezeichnet die Menge aller von w aus erreichbaren Blätter von t. path(v, w) =def {u ∈ N∗>0 | v ≤ u ≤ w} heißt Pfad oder Weg von v nach w. Die Präfixrelation ≤ überträgt sich auf Bäume: Für alle L-markierten Bäume t und t0, t ≤ t0 ⇔def für alle w ∈ f −1(L), t(w) = t0(w). Diese partielle Ordnung auf N∗ → 1 + L heißt Subsumptionsrelation. 154 6 Aussagenlogik 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. 155 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∗>0, > falls u = w, ϕ falls u = v1 und v ∈ leaves(t, w), 0 t (u) =def ψ falls u = v2 und v ∈ leaves(t, w), t(u) sonst. • ∧-Regel Sei t(w) = ϕ ∧ ψ. Für alle u ∈ N∗>0, > falls u = w, ϕ falls u = v1 und v ∈ leaves(t, w), 0 t (u) =def ψ falls u = v11 und v ∈ leaves(t, w), t(u) sonst. 156 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) 157 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 158 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: 159 6 Aussagenlogik • Atomregel Sei t(w) = ϕ ∈ At. Für alle u ∈ N∗>0, ⊥ 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∗>0, ⊥ 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. 160 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. 161 6 Aussagenlogik Highlights g : At → 2 erfüllt ϕ ∈ TAL(X) oder ist ein Modell von ϕ, geschrieben: g |= ϕ, wenn g ∗(ϕ) = 1 gilt. ϕ ist erfüllbar, wenn ϕ ein Modell hat. Φ ⊆ TAL(At) ist erfüllbar, wenn es g mit g |= ϕ für alle ϕ ∈ Φ gibt. ϕ ist allgemeingültig, wenn alle g : At → 2 Modelle von ϕ sind. ψ folgt aus ϕ, geschrieben: ϕ |= ψ, wenn jedes Modell von ϕ auch ψ erfüllt. Unerfüllbarkeitssatz: ψ folgt genau dann aus ϕ, wenn ϕ ∧ ¬ψ unerfüllbar ist. AL-Algebren, die die folgenden AL-Gleichungen über {x, y, z} erfüllen, heißen Boolesche Algebren: 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) 162 6 Aussagenlogik Atome heißen auch positive Literale, Formeln ¬ϕ mit ϕ ∈ At negative Literale. Eine Disjunktion paarweise verschiedener Konjunktionen paarweise verschiedener Literale heißt disjunktive Normalform (DNF). Eine Konjunktion paarweise verschiedener Disjunktionen paarweise verschiedener Literale heißt konjunktive Normalform (KNF). Satz 6.1 (9) und (10): Jede aussagenlogische Formel hat BE -ä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): Kein Atom kommt sowohl in ϕ als auch in ψ vor, • ϕ = > oder ϕ ist eine Konjunktion paarweise verschiedener Atome, • ψ = ⊥ oder ψ ist eine Disjunktion paarweise verschiedener Atome. 163 6 Aussagenlogik Eine Konjunktion von Gentzenformeln nennen wir implikative Normalform (INF). Satz 6.1 (11): Jede aussagenlogische Formel hat eine BE -äquivalente INF. Der aussagenlogische Schnittkalkül ASK besteht aus den o.g. zwei Regeln. Die Gentzenformel des Sukzedenten der Schnittregel heißt Resolvente. Eine ASK -Widerlegung einer Menge Φ von Gentzenformeln ist eine ASK -Ableitung von > ⇒ ⊥ aus Φ. Korrektheit und Vollständigkeit von ASK -Ableitungen bzw. -Widerlegungen (Sätze 6.2 und 6.3): Sei Φ endlich. Aus Φ `ASK ψ folgt Φ |= ψ. Φ `ASK ⊥ gilt genau dann, wenn Φ unerfüllbar ist. 164 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. 165 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. 166 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: 167 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)}. 168 7 Modallogik incAt = gK TML(At) gK∗ ≺ At P(State) Sei ϕ ∈ TML(At) und s ∈ State. Das Paar (ϕ, s) heißt Zustandsformel. K erfüllt ϕ in s oder (K, s) ist ein Modell von ϕ, geschrieben: K |=s ϕ, wenn s zu gK∗ (ϕ) gehört, in Worten: wenn ϕ im Zustand s gilt. ϕ ist erfüllbar, wenn es ein Modell von ϕ gibt. Andernfalls ist ϕ unerfüllbar oder widersprüchlich. ϕ ist allgemeingültig oder eine Tautologie, wenn alle Paare, die aus einer KripkeStruktur K und einem Zustand von K bestehen, ϕ erfüllen. ψ folgt aus ϕ, geschrieben: ϕ |= ψ, wenn jedes Modell von ϕ auch ψ erfüllt. 169 7 Modallogik Aufgabe Zeigen Sie (1)-(3) aus Kapitel 6 für modallogische Formeln. Zwei modallogische Formeln ϕ und ψ sind äquivalent in K, geschrieben: ϕ ⇔K ψ, wenn gK∗ (ϕ) mit gK∗ (ψ) übereinstimmt. K heißt endlich verzweigt (finitely branching), wenn für alle s ∈ State die Menge δ(s) endlich ist. Übersetzung von Modal- in Aussagenlogik 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: 170 7 Modallogik Für alle x ∈ At, ⊗ ∈ {∨, ∧, ⇒}, ϕ, ψ ∈ TML(At) und s ∈ State, ml2al (x, s) = (x, s), ml2al (⊥, s) = ⊥, ml2al (>, s) = >, 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 171 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). 172 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, 173 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 174 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 Belegung hK : At × State → 2 lautet hier wie folgt: 175 7 Modallogik Für alle 1 ≤ i ≤ 3 und (a1, a2, a3) ∈ State, f (xi, (a1, a2, a3)) = ai. Also gilt: 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) = 1 ∧2 1 ∨2 1 ∧2 0 ∨2 0 ∧2 0 = 1. Wir schließen aus Satz 7.1, dass (K, 001) ein Modell von 332x3 ist. o Beispiel 7.2 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. 176 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 (δ) folgende ML-Gleichungen erfüllt: ¬3x ≡ 2¬x 3(x ∨ y) ≡ 3x ∨ 3y 2(x ∧ y) ≡ 2x ∧ 2y ¬2x ≡ 3¬x (negM ) (distDia) (distBox ) 177 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. 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). 178 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. 179 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. 180 7 Modallogik Für alle s ∈ State und w ∈ N∗>0 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∗>0, > falls u = w, (ϕ, s) falls u = v1 und v ∈ leaves(t, w), 0 t (u) =def (ψ, s) falls u = v2 und v ∈ leaves(t, w), t(u) sonst. 181 7 Modallogik • ∧-Regel Sei t(w) = (ϕ ∧ ψ, s). Für alle u ∈ N∗>0, > falls u = w, (ϕ, s) falls u = v1 und v ∈ leaves(t, w), 0 t (u) =def (ψ, s) falls u = v11 und v ∈ leaves(t, w), t(u) sonst. • 3-Regel Sei t(w) = (3ϕ, s) und s0 ∈ State komme in t nicht vor. Für alle u ∈ N∗>0, > falls u = w, 0 (s, s ) falls u = v1 und v ∈ leaves(t, w), (ϕ, s0) falls u = v11 und v ∈ leaves(t, w), 0 t (u) =def 0 i (ϕ , s ) falls u = v111 , v ∈ leaves(t, w), i {ϕ1, . . . , ϕn} = boxes(s, t, v) und 1 ≤ i ≤ n, t(u) sonst. 182 7 Modallogik • 2-Regel Sei t(w) = (2ϕ, s). Für alle u ∈ N∗>0, box(ϕ, s) falls u = w, (ϕ, s ) falls u = v1i, 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. 183 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)). 184 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: t ≤ t0 ⇔def für alle w ∈ N∗>0, t0(w) = t(w) falls t(w) Zustandsliteral ist, ∈ {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. 185 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) 186 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∗>0, (ϕ, s) falls u = 1, tv (u) =def (ψ, s) falls u = 11, ti(u) sonst. 187 7 Modallogik Aus K |= ti(w) = (ϕ ∧ ψ, s) folgt K |= (ϕ, s) = tv (0) und K |= (ψ, s) = tv (11). 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∗>0, falls u = 1, falls u = 11, falls 1 ≤ i ≤ n und u = 111i, sonst. Aus K |= ti(w) = (3ϕ, s) folgt, dass es s0 ∈ δ(s) mit K |= (ϕ, s0) gibt. Demnach gilt K |= (s, s0) = tv (1) und K |= (ϕ, s0) = tv (11). 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 (111i). Demnach gilt (1) für v 0 = 111n. 188 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∗>0, ( (ϕ, si) falls 1 ≤ i ≤ n und u = 1i, 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 = 1n. (ii): Da t0 geschlossen ist, folgt aus Lemma 7.3, dass t0 unerfüllbar ist. Also ist wegen (i) auch t unerfüllbar. o 189 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∗>0, ( (ϕ, 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. 190 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). 191 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 192 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∗>0 \ {} 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: 193 7 Modallogik • Atomregel Sei t(w) = (ϕ, s) ein Zustandsatom. Für alle u ∈ N∗>0, ⊥ 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∗>0, ⊥ 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. 194 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) 195 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. 196 7 Modallogik Zustandsäquivalenz 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). ∼K ist definiert als größte Relation ∼ ⊆ State 2 mit folgender Eigenschaft: 0 (1) β(s) = β(s ), s ∼ s0 ⇒ ∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : t ∼ t0, (2) ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ∼ t0. (3) s, s0 ∈ State heißen K-verhaltensäquivalent, wenn (s, s0) zu ∼K gehört. 197 7 Modallogik Demnach ist die Schrittfunktion F : P(State 2) → P(State 2) von ∼K wie folgt definiert: Für alle ∼ ⊆ State 2, F (∼) = {(s, s0) ∈ State 2 | β(s) = β(s0), ∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : t ∼ t0, ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ∼ t0}. Eine K-Bisimulation ist eine F -dichte Teilmenge von State 2. Demnach ist ∼K ist die größte F -dichte Teilmenge von State 2. 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. ∼K is definiert als größte K-Bisimulation. Folglich ist ∼eq K in ∼K eq enthalten, falls auch ∼eq K eine K-Bisimulation ist. Andererseits ist ∼K in ∼K enthalten. Beide Relationen würden also miteinander übereinstimmen. Damit wäre nicht nur ∼eq K, sondern auch ∼K eine Äquivalenzrelation. 198 7 Modallogik 2 0 Zu zeigen bleibt also, dass ∼eq K eine K-Bisimulation ist, dass also für alle (s, s ) ∈ State folgende Implikation gilt: 0 (1) β(s) = β(s ), 0 s ∼eq ⇒ ∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : t ∼eq t0, (2) K s K ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ∼eq t0. (3) K Beweis. Die Schrittfunktion G : P(State 2) → P(State 2) von ∼eq K ist wie folgt definiert: 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 (1)-(3) genau dann, wenn R =def {(s, s0) ∈ State 2 | (s, s0) erfüllt (1)-(3)} eq ∼eq enthält. Nach Satz 4.2 (iii) ist lfp(G) = ∼ K K in jeder G-abgeschlossenen Teilmenge 2 von State enthalten. Also gelten (1)-(3), 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. 199 7 Modallogik Fall 2: s = s0. Daraus folgt (s, s0) ∈ R, weil die Diagonale von State 2 eine K-Bisimulation und in ∼eq K enthalten ist. 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 Manchmal werden Bisimulationen zwischen zwei Kripke-Strukturen K = hδ, βi : State → (P(State) × P(At)) und K0 = hδ 0, β 0i : State 0 → (P(State 0) × P(At)) mit möglicherweise verschiedenen Zustandsmengen betrachtet: 200 7 Modallogik ∼ ⊆ State × State 0 heißt Bisimulation zwischen K und K0, wenn für alle s ∈ State und s0 ∈ State 0 die folgende Implikation gilt: 0 0 (1) β(s) = β (s ), s ∼ s0 ⇒ ∀ t ∈ δ(s) ∃ t0 ∈ δ 0(s0) : t ∼ t0, (2) ∀ t0 ∈ δ 0(s0) ∃ t ∈ δ(s) : t ∼ t0. (3) 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. 201 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 Kapitel 2) eine Bisimulation zwischen K und K0 ist. o s, s0 ∈ State heißen elementar K-äquivalent, wenn K im Zustand s dieselben modallogischen Formeln erfüllt wie im Zustand s0. Die Menge aller elementaren K-äquivalenten Zustände bezeichnen wir mit ≈K . Satz 7.6 Hennessy-Milner-Theorem Sei K = hδ, βi eine endlich verzweigte Kripke-Struktur. Dann gilt ∼K = ≈K . Beweis. Wir zeigen zunächst: ∼K ⊆ ≈K . (1) 202 7 Modallogik (1) folgt aus der Definition elementarer K-Äquivalenz und folgender Eigenschaft: Für alle ϕ ∈ TML(At) gilt: ∀ s, s0 ∈ State : (s ∼K s0 ⇒ (s ∈ gK∗ (ϕ) ⇔ s0 ∈ gK∗ (ϕ))). (2) Beweis von (2) durch strukturelle Induktion über TML(At): Sei s ∼K s0. Dann gilt für alle x ∈ At, s∈ gK∗ (x) s∼K s0 = gK (x) ⇔ x ∈ β(s) = β(s0) ⇔ x ∈ β(s0) ⇔ s0 ∈ gK (x) = gK∗ (x). Für alle ϕ, ψ ∈ TML(At), s ∈ gK∗ (¬ϕ) = State \ gK∗ (ϕ) ind. hyp. ⇔ s0 ∈ State \ gK∗ (ϕ) = gK∗ (ϕ)(s0), s ∈ gK∗ (ϕ ∧ ψ) = gK∗ (ψ) ∩ gK∗ (ϑ) ind. hyp. ⇔ s0 ∈ gK∗ (ϕ) ∩ gK∗ (ψ) = gK∗ (ϕ ∧ ψ), s ∈ gK∗ (ϕ ∨ ψ) = gK∗ (ψ) ∪ gK∗ (ϑ) ind. hyp. s0 ∈ gK∗ (ϕ) ∪ gK∗ (ψ) = gK∗ (ϕ ∨ ψ). ⇔ Wegen s ∼K s0 gilt ∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : t ∼K t0 und ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ∼K t0. (3) 203 7 Modallogik Daraus folgt s ∈ gK∗ (2ϕ) ⇔ δ(s) ⊆ gK∗ (ϕ) (3), ind. hyp. δ(s0) ⊆ gK∗ (ϕ) ⇔ s0 ∈ gK∗ (2ϕ), s ∈ gK∗ (3ϕ) ⇔ δ(s) ∩ gK∗ (ϕ) 6= ∅ (3), ind. hyp. δ(s) ∩ gK∗ (ϕ) 6= ∅ ⇔ s0 ∈ gK∗ (3ϕ). ⇔ ⇔ Zu zeigen bleibt die Umkehrung von (1): ≈K ⊆ ∼K . Da ∼K die größte K-Bisimulation ist, genügt es zu zeigen, dass ≈K eine solche ist, dass also folgende Implikation gilt: 0 (4) β(s) = β(s ), s ≈K s0 ⇒ ∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : t ≈K t0, (5) ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ≈K t0. (6) Sei s ≈K s0. Dann gilt für alle x ∈ At, x ∈ β(s) ⇔ s ∈ gK (x) = gK∗ (x) ⇔ s0 ∈ gK∗ (x) = gK (x) ⇔ x ∈ β(s0), also (4). Ab hier folgen wir dem Beweis von [6], Satz 3.17, und zeigen (5). 204 7 Modallogik Sei t ∈ δ(s) und St = {u ∈ δ(s0) | t 6≈K u}. Dann gibt es für alle u ∈ St eine Formel 6 gK∗ (ϕu). ϕu ∈ TML(At) mit t ∈ gK∗ (ϕu) und u ∈ Da K endlich verzweigt ist, ist δ(s0), also auch St endlich und damit (K, t) ein Modell von ^ ϕ = {ϕu | u ∈ St}. Aus t ∈ δ(s) folgt s ∈ gK∗ (3ϕ), also wegen s ≈K s0 auch s0 ∈ gK∗ (3ϕ). Demnach gibt es t0 ∈ δ(s0) ∩ gK∗ (ϕ). Wäre t0 in St, dann wäre t0 6∈ gK∗ (ϕt0 ), also ^ \ 0 ∗ ∗ t 6∈ {gK (ϕu) | u ∈ St} = gK ( {ϕu | u ∈ St}) = gK∗ (ϕ). t0 gehört also nicht zu St, d.h. t und t0 sind elementar K-äquivalent. Analog erhält man (6). o Das Hennessy-Milner-Theorem begründet einmal mehr 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. 205 7 Modallogik Sei F die Schrittfunktion für ∼K (s.o.). Nach Satz 4.5 (ii) stimmt ∼K mit gfp(F ) überein. T Ist F∞ = n∈N F n(State 2) F -dicht ist, dann gilt gfp(F ) = F∞ nach Satz 4.3 (ii). Um zu zeigen, das F∞ F -dicht ist, 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 ) }. Lemma 7.7 Für alle n ∈ N, ∼n = F n(ker(β)). Beweis durch Induktion über n. ∼0 = ker(β) = F 0(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) ∈ F n(ker(β)) ⊆ ker(β). Nach Definition von F gehört daher (s, s0) zu F n+1(ker(β)). Sei (s, s0) ∈ F n+1(ker(β)). Nach Definition von F gilt F n+1(ker(β)) = F n(F (ker(β))) ⊆ F n(ker(β)), 206 7 Modallogik also s ∼n s0 nach Induktionsvoraussetzung. Sei t ∈ δ(s) und t0 ∈ δ(s0). Nach Definition von F gibt es u0 ∈ δ(s0) und u ∈ δ(s) mit (t, u0), (u, t0) ∈ F n(ker(β)). Nach Induktionsvoraussetzung folgt t ∼n u0 und u ∼n t0. Nach Definition von ∼n+1 gilt daher s ∼n+1 s0.o 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 F∞ = n∈N F n(State 2) = n∈N F n+2(State 2) T = n∈N F n+1(F (ker(β) ∩ {(s, s0) ∈ State 2 | δ(s) = ∅ ⇔ δ(s0) = ∅})) T T T = n∈N F n+1(F (ker(β))) = n∈N F n+2(ker(β)) = n∈N ∼n+2 = ∼ω . Wegen ∼K = gfp(F ) bleibt nach Satz 4.3 (ii) zu zeigen, dass ∼ω F -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. 207 7 Modallogik 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) ∈ F (∼ω ) aus der Definition von F . Wir haben gezeigt, dass ∼ω F -dicht ist. o Sei K = hδ, βi : State → (P(State) × P(At)) eine Kripke-Struktur. Der Quotient State/∼K von State nach der K-Verhaltensäquivalenz (siehe Kapitel 5) ist die Zustandsmenge der Kripke-Struktur Kmin mit minimaler Zustandsmenge: Kmin = hδmin, βmini : State/∼K → Pfin (State/∼K ) × P(At) [s] 7→ ({[s0] | s0 ∈ δ(s)}, β(s)) Hier ist 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) 208 7 Modallogik 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 Aufgabe Zeigen Sie, dass die natürliche Abbildung nat∼K : State → State/∼K (siehe Kapitel 5) ein Kripke-Morphismus ist. Demnach ist der Graph von nat∼K eine Bisimulation zwischen K und Kmin (siehe Aufgabe vor Satz 7.6), kurz gesagt: Kmin hat das gleiche Verhalten wie K. Dass die Zustandsmenge von Kmin bzgl. dieses Verhaltens minimal ist, zeigt folgender Satz: Satz 7.9 Sei K endlich verzweigt. Kmin-verhaltensäquivalente Zustände sind gleich. 209 7 Modallogik T Beweis. Nach Satz 7.8 gilt ∼K = ∼ω = F∞ = n∈N F n(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) ∈ F n(State 2). (3) Wir beweisen (3) durch Induktion über n. Wegen F 0(State 2) = State 2 gilt (3) im Fall n = 0. Es gelte (3) (Induktionshypothese). Induktionsschritt: 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) ∈ F n(State 2) bzw. (u, t0) ∈ F n(State 2) nach Definition von δmin und Induktionsvoraussetzung. Nach Definition von F folgt (s, s0) ∈ F (F n(State 2)) = F n+1(State 2). Demnach gilt (3) für alle n ∈ N. o 210 7 Modallogik 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. Mn lässt sich als Dreiecksmatrix darstellen (siehe Beispiel unten und [29], Abschnitt 2.3, wo mit dem gleichen Verfahren deterministische Automaten minimiert werden). 211 7 Modallogik 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 = Mk+1. Also gilt nach Satz 7.8: ∼K = ∼ω = ∆State ∪ Rk ∪ Rk−1. 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! Beispiel 7.10 (+ http://www.cs.indiana.edu/cmcs/bisimulation.pdf) b3 a3 a2 b2 1 c3 d3 c2 212 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. 213 7 Modallogik Die entsprechenden “Dreiecksmatrizen” M0 bzw. M1 lauten wie folgt: Die Matrizen und ihre graphische Darstellung wurden mit + Expander2 erstellt (mit den Befehlen load Expander2/Examples/kripke1, build Kripke model und simplify bisimI stepwise in Painter). 214 7 Modallogik 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. 215 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. 216 7 Modallogik Die Morphismen von coAlgFAt sind offenbar Kripke-Morphismen (siehe Abschnitt Zustandsäquivalenz). Die Menge M =def Tree(P(At)) aller P(At)-markierten Bäume t : N∗>0 → 1 + P(At) (siehe Abschnitt Knotenmarkierte Bäume in Kapitel 6) bildet die Zustandsmenge der Kripke-Struktur T (At) =def hδ : M → Pfin (M ), β : M → P(At)i. δ und β sind hier wie folgt definiert: Für alle t ∈ M , δ(t) = {λw.t(iw) | i ∈ dom(t)} und β(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 217 7 Modallogik Zwei Bäume t, t0 ∈ M sind genau dann T (At)-verhaltensäquivalent, wenn es Unterbäume t1, . . . , tn von t gibt, so dass man für alle 1 ≤ i ≤ n durch Vertauschungen oder Entfernungen maximaler Unterbäume von ti von t zu t0 gelangt. Den Quotienten Beh(At) =def T (At)min (s.o.) 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 Ä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). 218 7 Modallogik 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 Pfin (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 eine Faltung für jede Signatur in gleicher Weise definiert ist, so ist eine Entfaltung nicht nur für den Kripke-Funktor FAt, sondern in ähnlicher Weise für viele weitere Funktoren definiert (s.u.). Konsequenzen der Eindeutigkeit von Entfaltungen wie das folgende Lemma gelten daher auch für andere Funktoren. Satz 7.11 Lambeks Lemma (für Kripke-Strukturen) Sei State = Tree(P(At))/∼T (At) und F = FAt. Beh(At) : State → F (State) ist bijektiv. Beweis. Zunächst stellen wir fest, dass die Aussage nur gelten kann, weil im Wertebereich von Beh(At) Pfin (State) und nicht P(State) steht. Andernfalls könnte Beh(At) wegen S∼ 6= P(S) für alle Mengen S (siehe Isomorphien) gar nicht bijektiv sein. 219 7 Modallogik Das folgende kommutative Diagramm zeigt, dass Beh(At) selbst ein Kripke-Morphismus von Beh(At) in die Kripke-Struktur F (Beh(At)) ist: State Beh(At) g F (State) Beh(At) (1) F (State) F (Beh(At)) g F (F (State)) F (Beh(At)) In umgekehrter Richtung gibt es einen weiteren Kripke-Morphismus: F (State) unfold F (Beh(At)) g State F (Beh(At)) (2) Beh(At) F (F (State)) F (unfold F (Beh(At))) g F (State) 220 7 Modallogik Aus der Kommutativität von (1) und (2) und der Funktoreigenschaft von F folgt, dass auch die Komposition unfold ◦ Beh(At) ein Kripke-Morphismus ist: Beh(At) unfold State F (State) State Beh(At) (1) F (Beh(At)) (2) Beh(At) g F (State) g g F (F (State)) F (State) F (Beh(At)) F (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) Damit ist Beh(At) bijektiv, wenn auch die Umkehrung gilt: Beh(At) ◦ unfold = idF (State). (4) Beweis von (4). (2) (3) Beh(At) ◦ unfold = F (unfold ) ◦ F (Beh(At)) = F (unfold ◦ Beh(At)) = F (idState ) = idF (State). o 221 7 Modallogik 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). 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. 222 7 Modallogik 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. 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. 223 7 Modallogik 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). 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. 224 7 Modallogik 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. 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). ∗ Wieder liefert gM (ϕ) die Menge der Zustände, die ϕ erfüllen. 225 7 Modallogik 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. 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. 226 7 Modallogik ∗ 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. 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: 227 7 Modallogik 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. 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. 228 7 Modallogik Highlights 229 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. 230 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. 231 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Σ(Χ) 232 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, . . . , b A Folgendes gilt: a1 ∼ b1 ∧ · · · ∧ an ∼ bn ⇒ (a1, . . . , an) ∈ pA ⇔ (b1, . . . , bn) ∈ pB . 233 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 Σ-Algebra A dargestellt. Folglich tritt die Stelle der ML-Algebra Pow (δ) mit Trägermenge P(State) die wie folgt definierte PL-Algebra Pow (A) mit Trägermenge P(AX ): Für alle Σ-Algebren 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, 234 (∀x)Pow (A)(S) = {h ∈ AX | {h[a/x] | a ∈ A} ⊆ S} = {h ∈ AX | ∀ a ∈ A : h[a/x] ∈ S}, (∃x)Pow (A)(S) = {h ∈ AX | {h[a/x] | a ∈ A} ∩ S 6= ∅} = {h ∈ AX | ∃ a ∈ A : h[a/x] ∈ S}. 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) und h : X → A, gA(p(t1, . . . , tn)) =def {h ∈ AX | (h∗(t1), . . . , h∗(tn)) ∈ pA}. incAtΣ(X) = gA TPL(AtΣ(X)) gA∗ ≺ AtΣ(X) (1) P(AX ) 235 8 Prädikatenlogik Sei ϕ ∈ TPL(AtΣ(X)) und h : X → A. (A, h) erfüllt ϕ, 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. Eine Herbrand-Struktur, die ϕ erfüllt, heißt Herbrand-Modell von ϕ. ϕ ist erfüllbar, wenn es ein Modell von ϕ gibt. Andernfalls ist ϕ unerfüllbar oder widersprüchlich. ϕ ist allgemeingültig oder eine Tautologie, wenn alle Σ-Strukturen ϕ erfüllen. ψ folgt aus ϕ, geschrieben: ϕ |= ψ, wenn jedes Modell von ϕ auch ψ erfüllt. Zwei prädikatenlogische Formeln ϕ und ψ sind äquivalent in (A, h), geschrieben: ϕ ⇔A h ∗ ∗ ψ, wenn h genau dann zu gA(ϕ) gehört, wenn h zu gA(ψ) gehört. ϕ und ψ sind äquivalent in A, geschrieben: ϕ ⇔A ψ, wenn gA∗ (ϕ) mit gA∗ (ψ) übereinstimmt. 236 8 Prädikatenlogik 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 ϕ. Offenbar hängt der Wahrheitswert einer Formel nur von der Belegung ihrer freien Variablen ab. Deshalb fallen die Einschränkungen der Relationen |=h und ⇔A h auf geschlossenen Formeln mit |= bzw. ⇔A zusammen. 237 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) 238 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∗ (ϕ ∨ ψ)}. 239 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! 240 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 ∈ AL und ϕ1, . . . , ϕn ∈ TPL(AtΣ(X)), σ ∗(f (ϕ1, . . . , ϕn)) = f (σ ∗(ϕ1), . . . , σ ∗(ϕn)). • Für alle p(t1, . . . , tn) ∈ AtΣ(X), σ ∗(p(t1, . . . , tn) = p(σ ∗(t1), . . . , σ ∗(tn)). • 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. 241 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! 242 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 ∅ 243 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) 244 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σ)) 245 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∗ (ϕ) 246 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 247 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 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. 248 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) 249 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 250 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)). 251 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 (INF) ist (siehe Kapitel 6). 252 8 Prädikatenlogik Satz 8.7 Jede Σ-Formel ψ über X 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 -, removeQund 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)). 253 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 Eine Menge von Formeln heißt erfüllbar, wenn mindestens eine ihrer Formeln erfüllbar ist. Andernfalls ist sie unerfüllbar. 254 8 Prädikatenlogik Satz 8.8 Eine INF ϕ 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 gilt H |=σ ϕ(σ). Da ϕ eine INF ist, gibt es für alle Gentzenformeln ϑ ⇒ ϑ0 von ϕ ein Atom atϑ,ϑ0 in ϑ oder ϑ0 mit σ 6∈ gH (atϑ,ϑ0 ) bzw. σ ∈ gH (atϑ,ϑ0 ). 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 ) = 0 bzw. g(atϑ,ϑ0 ) = 1 für alle Gentzenformeln ϑ ⇒ ϑ0 von ϕ. Daraus folgt g(ϕ) = 1. Da σ beliebig gewählt wurde, ist g ist ein aussagenlogisches Modell von HE (ϕ). 255 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 ist g ∗(ϕσ) = 1. Also gibt es für alle Gentzenformeln ϑ ⇒ ϑ0 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 (ϑ ⇒ ϑ0). 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 (ϑ ⇒ ϑ0). 256 8 Prädikatenlogik Also gilt H |=σ ϑ ⇒ ϑ0 für alle Gentzenformeln ϑ ⇒ ϑ0 von ϕ. Da σ beliebig gewählt wurde, ist H ein Modell von ϕ. o Das folgende Theorem überträgt Satz 6.3 auf beliebige Mengen von Gentzenformeln. Es wird später auf Herbrand-Expansionen angewendet. Satz 8.9 (Vollständigkeit aussagenlogischer Schnittwiderlegungen von Gentzenformelmengen) Sei At abzählbar und Φ eine unerfüllbare Menge von Gentzenformeln über At. Dann gilt Φ `ASK ⊥. 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 Elemente von At. Der konsistente Abschluss von Φ ist die folgendermaßen definierte Menge: 257 8 Prädikatenlogik closure(Φ) = S n∈N Φn , Φ0 = Φ, ( Φn+1 = Φn ∪ {xn ⇒ ⊥} falls Φn ∪ {xn} `ASK ⊥, Φn ∪ {xn} falls Φn ∪ {xn} 6`ASK ⊥. 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. 258 8 Prädikatenlogik 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 der angenommenen Ableitung von ⊥ vorkommenden Formeln von closure(Φ) zu Φn gehören. Also würde Φn `ASK ⊥ gelten. Folglich ist ⊥ nicht aus closure(Φ) ableitbar. 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 259 8 Prädikatenlogik Schnittkalkül Zurück zur Prädikatenlogik mit einer Signatur Σ von Funktions- und Relationssymbolen und einer Menge X von Individuenvariablen. Wir setzen ab jetzt voraus, dass Σ und X abzählbar sind, so dass auch die Menge der Σ-Atome über X abzählbar ist und wir später Satz 8.9 auf AtΣ(X) anwenden können. 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. 260 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, 261 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}. 262 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 263 8 Prädikatenlogik Sei Φ eine Menge von Gentzenformeln über AtΣ(X). Eine Folge (ϕ1, . . . , ϕn) von Gentzenformeln heißt prädikatenlogische Schnittableitung von ϕn aus Φ, wenn für alle 1 ≤ i ≤ n ϕi in Φ enthalten ist oder j < i bzw. j, k < i existieren derart, dass ϕi das Ergebnis der Anwendung einer der folgenden Regeln auf ϕj und ϕk ist. Ist ϕn = ⊥, dann heißt (ϕ1, . . . , ϕn) Schnittwiderlegung von Φ. ϑ und ϑ0 bezeichnen einzelne Atome und ϕ, ϕ0, ψ, ψ 0 – möglicherweise leere – Konjunktionen oder Disjunktionen von Atomen. Summand- bzw. Faktorregel ϕ ⇒ ψ ∨ ϑ ∨ ϑ0 ϕσ ⇒ ψσ ∨ ϑσ ϑ ∧ ϑ0 ∧ ϕ ⇒ ψ ϑσ ∧ ϕσ ⇒ ψσ σ = unify(ϑ, ϑ0) Prädikatenlogische Schnittregel (binäre Resolution) 0 0 ϕ ⇒ ψ∨ϑ ϑ ∧ϕ ⇒ ψ ϕτ σ ∧ ϕ0σ ⇒ ψτ σ ∨ ψ 0σ 0 σ = unify(ϑτ, ϑ0), τ ist eine Variablenumbenennung mit var(ϕτ ∨ ψτ ∨ ϑτ ) k var(ϑ0 ∨ ϕ0 ∨ ψ 0) 264 8 Prädikatenlogik Wir schreiben Φ `ASK ψ, wenn es eine Schnittableitung von ψ aus Φ gibt. Ist der Antezedent der Summand- bzw. Faktorregel variablenfrei, dann ist ϑ = ϑ0, so dass er mit dem Sukzedenten zusammenfällt, während die prädikatenlogische Schnittregel mit der aussagenlogischen (siehe Kapitel 6) übereinstimmt. Summand- und Faktorregelanwendungen können also aus prädikatenlogischen Schnittableitungen variablenfreier Formeln entfernt werden, weshalb solche Ableitungen nichts anderes sind als aussagenlogische Schnittableitungen. Die Bemerkungen zur Anwendbarkeit der aussagenlogischen Schnittregel und zur Transformation der Resolvente in eine Gentzenformel (siehe Kapitel 6) gelten hier entsprechend. Beispiele Schnittwiderlegung der Gentzenformelmenge Φ = {p(x), p(y) ∧ p(f (a)) ⇒ q(x), p(g(b, y)) ∧ q(b) ⇒ ⊥} 265 8 Prädikatenlogik ϕ1 = p(y) ∧ p(f (a)) ⇒ q(x) Element von Φ ϕ2 = p(f (a)) ⇒ q(x) Faktorregelanwendung auf ϕ1 wegen unify(p(y), p(f (a))) = {f (a)/y} ϕ3 = p(x) Element von Φ ϕ4 = q(x) Resolvente von ϕ3 und ϕ2 wegen unify(p(x), p(f (a))) = {f (a)/x} ϕ5 = p(g(b, y)) ∧ q(b) ⇒ ⊥ Element von Φ ϕ6 = p(g(b, y)) ⇒ ⊥ Resolvente von ϕ4 und ϕ5 wegen unify(q(x), q(b)) = {b/x} ϕ7 = p(x) Element von Φ ϕ8 = ⊥ Resolvente von ϕ7 und ϕ6 wegen unify(p(x), p(g(b, y))) = {g(b, y)/x} 266 8 Prädikatenlogik Schnittwiderlegung der Gentzenformelmenge Φ = {p(x) ⇒ ⊥, p(f (y)) ∨ q(y), q(x) ∧ q(f (b)) ⇒ ⊥} ϕ1 = p(f (y)) ∨ q(y) Element von Φ ϕ2 = p(x) ⇒ ⊥ Element von Φ ϕ3 = q(y) Resolvente von ϕ1 und ϕ2 wegen unify(p(f (y)), p(x)) = {f (y)/x} ϕ4 = q(x) ∧ q(f (b)) ⇒ ⊥ Element von Φ ϕ5 = q(f (b)) ⇒ ⊥ Faktorregelanwendung auf ϕ4 wegen unify(q(x), q(f (b)) = {f (b)/x} ϕ6 = ⊥ Resolvente von ϕ3 und ϕ5 wegen unify(q(y), q(f (b))) = {f (b)/y} 267 8 Prädikatenlogik Schnittwiderlegung der Gentzenformelmenge Φ = {p(f (c), x) ⇒ ⊥, p(f (x), y) ∨ p(y, f (x))} ϕ1 = p(f (x), y) ∨ p(y, f (x)) Element von Φ ϕ2 = 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} ϕ2 τ = p(f (z), f (z)) Variablenumbenennung τ = {z/x} ϕ3 = p(f (c), x) ⇒ ⊥ Element von Φ ϕ4 = ⊥ Resolvente von ϕ2τ und ϕ3 wegen 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 268 8 Prädikatenlogik 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.10 (Korrektheit prädikatenlogischer Schnittableitungen) Sei Φ eine endliche Menge von Gentzenformeln über AtΣ(X) und ψ eine Gentzenformel. V (i) Aus Φ `ASK ψ folgt Φ |= ψ. V (ii) Aus Φ `ASK ⊥ folgt, dass Φ unerfüllbar ist. Beweis von (i). Es genügt zu zeigen, dass für die drei o.g. Regeln aus den jeweiligen Antezendenten der jeweilige Sukzedent folgt. Daraus erhält man (i) durch Induktion über die Anzahl der Summand- bzw. Faktorregelanwendungen und Resolventen einer Schnittableitung von ψ aus Φ. 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. 269 8 Prädikatenlogik 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σ 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. 270 8 Prädikatenlogik 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 Φ `ASK ⊥. Aus (i) folgt Φ |= ⊥, also ist Φ unerfüllbar. o Lemma 8.11 (Lifting-Lemma) Seien ϕ1, ϕ2 Gentzenformeln über AtΣ(X), ψ1 ∈ HE (ϕ1), σ : X → TΣ, und ψ3 eine aussagenlogische Resolvente von ψ1 und ϕ2σ. Dann gibt es eine prädikatenlogische Schnittableitung einer Gentzenformel ϕ3 aus {ϕ1, ϕ2} und ρ0 : X → TΣ mit ϕ3ρ0 = ψm und σ = γ 0ρ0, wobei γ 0 die Komposition der im Laufe der Ableitung gebildeten mgus ist. Die aus der aussagenlogischen Resolvente gebildete prädikatenlogische Ableitung besteht aus möglicherweise leeren Folgen von Anwendungen der Summand -bzw. Faktorregel auf ϕ1 bzw. ϕ2 und einer anschließenden Anwendung der Schnittregel: 271 8 Prädikatenlogik ψ1 = ϕ1τ σ ϕ2 σ aussagenlogischer Schnitt ≺ ψ3 = ϕ3ρ0 ϕ1 .. .. .. Summandregel .. .. .. anwendungen .. .. . g ϕ1τ γ1 ϕ2 .. .. Faktorregel - .... .. anwendungen .... .. . g ϕ2 γ 2 prädikatenlogischer Schnitt ≺ ϕ3 Beweis. Wegen ψ1 ∈ HE (ϕ1) gibt es eine Variablenumbenennung τ mit var(ϕ1τ )kvar(ϕ2) und ψ1 = ϕ1τ σ. 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. 272 8 Prädikatenlogik 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]. 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. 273 8 Prädikatenlogik Also gibt es eine prädikatenlogische Schnittableitung einer Gentzenformel ϕ3 aus {ϕ1, ϕ2}. Aus σ = γρ = γξρ0 folgt ψ3 = ϕτ σ ∧ ϕ0σ ⇒ ψτ σ ∨ ψ 0σ = ϕτ γξρ0 ∧ ϕ0γξρ0 ⇒ ψτ γξρ0 ∨ ψ 0γξρ0 = ϕ3ρ0. Demnach gilt die Behauptung des Lemmas für γ 0 = γξ. o Satz 8.12 (Vollständigkeit prädikatenlogischer Schnittwiderlegungen) Sei Φ eine endliche Menge von Gentzenformeln über AtΣ(X). V (i) Sei (ψ1, . . . , ψm) eine aussagenlogische Schnittableitung aus HE ( Φ). Dann gibt es eine prädikatenlogische Schnittableitung (ϕ1, . . . , ϕn) aus Φ mit ψm ∈ HE (ϕn). V (ii) Ist Φ unerfüllbar, dann gilt Φ `ASK ⊥. Beweis von (i) durch Induktion über die Anzahl der Resolventen unter ψ1, . . . , ψm. Fall 1: Es gibt ϑ ∈ Φ mit ψm ∈ HE (ϑ). Dann ist (ϑ) eine Schnittableitung, die (i) erfüllt. Fall 2: ψm ist die aussagenlogische Resolvente zweier Gentzenformeln ψr und ψs mit r, s < m. Nach Induktionsvoraussetzung gibt es Gentzenformeln ϕ1, ϕ2 mit Φ `ASK ϕ1, ψr ∈ HE (ϕ1), Φ `ASK ϕ2 und ψs ∈ HE (ϕ2). 274 8 Prädikatenlogik Also liefert Lemma 8.11 eine Gentzenformel ϕ3 mit {ϕ1, ϕ2} `ASK ϕ3 und ψm ∈ HE (ϕ3). Fügt man die drei Ableitungen aneinander, so erhält man eine prädikatenlogische Schnittableitung, die (i) erfüllt. V Beweis von (ii). Nach Voraussetzung und Satz 8.8 ist die Herbrand-Expansion von Φ im aussagenlogischen Sinne unerfüllbar. Da sie eine Menge variablenfreier GentzenforV meln über der abzählbaren Menge AtΣ(X) ist, folgt HE ( Φ) `ASK ⊥ aus Satz 8.9 und damit Φ `ASK ⊥ aus (i). o 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 ≡ bzw. 6≡ durch die charakteristische Funktion von ∆A bzw. A2 \ ∆A interpretiert wird. Ein Modell A einer prädikatenlogischen Formel heißt Gleichheitsmodell, wenn A eine Gleichheitsstruktur ist. 275 8 Prädikatenlogik 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. 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) 276 8 Prädikatenlogik 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 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 277 8 Prädikatenlogik 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. 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Σ. (1) 278 8 Prädikatenlogik (ii) Sei ϕ eine INF über AtΣ(X). ϕ hat kein Gleichheitsmodell ⇔ ϕ ∧ V ϕ hat kein Gleichheitsmodell ⇔ ϕ ∧ V congΣ ist unerfüllbar, disgΣ ist unerfüllbar. (2) 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/∼ 279 8 Prädikatenlogik ⇔ (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/∼ |=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ϕ. 280 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 Satz 8.10 (ii) und Satz 8.12 (ii) folgt: V Φ ist unerfüllbar ⇔ Φ `ASK ⊥. (4) 281 8 Prädikatenlogik Mit Hilfe von Satz 8.13 (ii) lässt sich (4) auf Gleichheitsmodelle übertragen: V 8.13 (ii) ⇔ (4) ⇔ Φ hat kein Gleichheitsmodell V V Φ ∧ congΣ ist unerfüllbar (5) Φ ∪ congΣ `ASK ⊥. V 8.13 (ii) ⇔ (4) ⇔ Φ hat kein Gleichheitsmodell V V Φ ∧ disgΣ ist unerfüllbar (6) Φ ∪ disgΣ `ASK ⊥. 282 8 Prädikatenlogik Übersetzung von Modal- in Prädikatenlogik 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. 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)), 283 8 Prädikatenlogik 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 Im Gegensatz zum Compiler ml2al 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. 284 8 Prädikatenlogik 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) 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 (>)). 285 8 Prädikatenlogik 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)), 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)). 286 8 Prädikatenlogik Für alle ϕ ∈ TML(At) und i ∈ N, h(xi) ∈ gK∗ (2ϕ) = {s ∈ State | δ(s) ⊆ gK∗ (ϕ)} ⇔ δ(h(xi)) ⊆ gK∗ (ϕ) ⇔ für alle s ∈ State, s 6∈ δ(h(xi)) oder h[s/xi+1](xi+1) = s ∈ gK∗ (ϕ) ind. hyp. ⇔ für alle s ∈ State, s 6∈ δ(h(xi)) oder h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1)) ⇔ für alle s ∈ State, (h[s/xi+1](xi), h[s/xi+1](xi+1)) = (h(xi), s) 6∈ transAK oder h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1)) ⇔ für alle s ∈ State, h[s/xi+1] 6∈ gA∗ K (trans(xi, xi+1)) oder h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1)) ⇔ für alle 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= ∅ ⇔ es gibt s ∈ δ(h(xi)) mit h[s/xi+1](xi+1) = s ∈ gK∗ (ϕ) ind. hyp. ⇔ es gibt s ∈ δ(h(xi)) mit h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1)) 287 8 Prädikatenlogik ⇔ es gibt s ∈ State mit (h[s/xi+1](xi), h[s/xi+1](xi+1)) = (h(xi), s) ∈ transAK und h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1)) ⇔ es gibt s ∈ State mit h[s/xi+1] ∈ gA∗ K (trans(xi, xi+1)) und h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1)) ⇔ es gibt s ∈ State mit 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 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 288 Highlights 289 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. 290 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) 291 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: 292 9 Logische Programmierung Für alle a, b, v, w ∈ A, zeroA = 0, ( A suc (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, 293 (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. Aufgabe Zeigen Sie A |= V 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: 294 9 Logische Programmierung B C D B C D 295 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. 296 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 297 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. 298 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) 299 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, 300 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 . 301 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 302 9 Logische Programmierung Vom Schnitt- zum SLD-Kalkül Für ein Goal ϕ ⇒ ⊥ schreiben wir fortan auch ϕ, während ϕ (wie schon in früheren Kapiteln) für das co-Goal > ⇒ ϕ steht. Berechnungen eines (co-)logischen Programms LP sind Schnittwiderlegungen von LP ∪ {ϕ}, wobei ϕ ein (co-)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 LP ∪ {ϕ} verlorengeht. Dazu betrachten wir zunächst Schnittableitungen eines (co-)Goals aus einer Menge Φ variablenfreier (co-)Hornformeln und einem (co-)Goal. Jede Schnittableitung s eines Goals ψ aus Φ lässt sich in eine Ableitung von ψ aus Φ transformieren, die keine Resolvente zweier Hornformeln ϕ ⇒ pt und pt ∧ ϕ0 ⇒ qu enthält. Wird eine solche Resolvente nicht irgendwann mit einem Goal von s (das die Form qu ∧ ϑ haben müsste) geschnitten, dann bleibt s eine Ableitung von ψ aus Φ, wenn man die Resolvente aus s entfernt. 303 9 Logische Programmierung Aber selbst dann, wenn sie mit qu ∧ ϑ geschnitten wird, 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 qu ∧ ϑ: ϕ ⇒ 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. 304 9 Logische Programmierung Analog kann man alle Resolventen zweier co-Hornformeln aus Schnittableitungen von co-Goals entfernen, 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. Aus dieser Beobachtung über variablenfreie Schnittwiderlegung ergibt sich der SLDKalkül zur Widerlegung einer Menge — nicht nur variablenfreier — (co-)Hornformeln und einem (co-)Goal: Sei LP ein (co-)logisches Σ-Programm. Eine Folge (ϕ1, . . . , ϕn) von Σ-(co-)Goals heißt SLD-Ableitung von ϕn aus LP ∪ {ϕ1}, wenn für alle 1 < i ≤ n ϕi das Ergebnis der Anwendung einer der folgenden Regeln auf ϕi−1 ist. Ist ϕn = ⊥, dann heißt (ϕ1, . . . , ϕn) SLD-Widerlegung von LP ∪ {ϕ1}. Wieder bezeichnen ϑ und ϑ0 einzelne Atome und ϕ, ψ – möglicherweise leere – Konjunktionen oder Disjunktionen von Atomen. LP 0 bezeichne die Menge aller (co-)Hornformeln ϕ0, für die es ϕ ∈ LP und eine Variablenumbenennung τ mit ϕτ = ϕ0 gibt. 305 9 Logische Programmierung Faktor- bzw. Summandregel ϑ ∧ ϑ0 ∧ ϕ ⇒ ⊥ ϑσ ∧ ϕσ ⇒ ⊥ > ⇒ ϕ ∨ ϑ ∨ ϑ0 > ⇒ ϕσ ∨ ϑσ σ = unify(ϑ, ϑ0) Resolution über LP ϑ0 ∧ ψ ⇒ ⊥ ϕσ ∧ ψσ ⇒ ⊥ ϕ ⇒ ϑ ∈ LP 0, σ = unify(ϑ, ϑ0), var(ϕ ∨ ϑ) k var(ϑ0 ∨ ψ) co-Resolution über LP > ⇒ ψ ∨ ϑ0 > ⇒ ψσ ∨ ϕσ ϑ ⇒ ϕ ∈ LP 0, σ = unify(ϑ, ϑ0), var(ϑ ∨ ϕ) k var(ψ ∨ ϑ0) Wir schreiben LP ∪ {ϕ} `SLD ψ, falls es eine SLD-Ableitung von ψ aus LP ∪ {ϕ} gibt. 306 9 Logische Programmierung SLD-Resolution bedeutet 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 Φ und genau einem ihrer Vorgänger ergibt, dass sie also niemals die Resolvente zweier Resolventen enthält. Der Begriff Klausel umfasst Hornformeln sowie Goals. Dann entsprechen unsere Hornformeln sog. definiten Klauseln. Eine SLD-Ableitung heißt aussagenlogisch, wenn sie aus variablenfreien Formeln besteht. Aufgrund der obigen Bemerkungen über (co-)Hornformel-Resolventen gilt Satz 8.9 auch für aussagenlogische SLD-Widerlegungen: Satz 9.4 (Vollständigkeit aussagenlogischer SLD-Widerlegungen) Sei Φ eine unerfüllbare Menge variablenfreier Gentzenformeln über AtΣ(X), die aus (co-) Hornformeln und einem (co-)Goal besteht. Dann gibt es eine aussagenlogische SLDWiderlegung von Φ. o 307 9 Logische Programmierung Satz 9.5 (Vollständigkeit von SLD-Widerlegungen) Sei LP ein (co-)logisches Σ-Programm und ϕ ein Σ-(co-)Goal. (i) Seien ϕ eine Gentzenformel, σ : X → TΣ und (ψ1, . . . , ψm) eine aussagenlogische SLDAbleitung aus LP ∪ {ϕσ}. Dann gibt es eine SLD-Ableitung (ϕ1, . . . , ϕn) aus LP ∪ {ϕ} und ρ : X → TΣ mit ϕnρ = ψm und σ = γρ, wobei γ die Komposition der im Laufe der Ableitung gebildeten mgus ist. Zusammengefasst: LP ∪ {ϕσ} `SLD ϕnρ (ii) Ist V ⇒ LP ∪ {ϕ} `SLD ϕn. LP ∧ ϕ unerfüllbar, dann gibt es eine SLD-Widerlegung von LP ∪ {ϕ} . Beweis von (i) durch Induktion über m − 1. Im Fall m = 1 ist ψm = ϕσ. Also ist (ϕ) eine SLD-Ableitung, die (i) erfüllt: Setze ρ = σ und γ = idX . Sei m > 1. Dann ist ψ2 eine Resolvente von ψ1 = ϕσ und einer (co-)Hornformel ϕ0 von LP und damit eine aussagenlogische Resolvente von ϕσ und einer (co-)Hornformel der Herbrand-Expansion von LP . 308 9 Logische Programmierung Nach Lemma 8.11 gibt es eine prädikatenlogische Schnittableitung einer Gentzenformel ϕ2 aus {ϕ, ϕ0} sowie ρ0 : X → TΣ mit ϕ2ρ0 = ψ2 und σ = γ 0ρ0, wobei γ 0 die Komposition der im Laufe der Ableitung gebildeten mgus ist. Diese Ableitung entspricht einer SLDAbleitung (ϕ01, . . . , ϕ0k ) von ϕ2 aus LP ∪ {ϕ}, weil ϕ ein (co-)Goal und ϕ0 eine (co-) Hornformel ist. Nach Induktionsvoraussetzung gibt es eine SLD-Ableitung (ϕ2, . . . , ϕn) aus LP ∪ {ϕ2} und ρ : X → TΣ mit ϕnρ = ψm und ρ0 = γρ, wobei γ die Komposition der im Laufe der Ableitung gebildeten mgus ist. Folglich ist (ϕ01, . . . , ϕ0k , ϕ3, . . . , ϕn) eine SLD-Ableitung von ϕn aus LP ∪{ϕ} mit σ = γ 0ρ0 = γ 0γρ. Wegen ϕnρ = ψm und da γ 0γ die Komposition der im Laufe dieser Ableitung gebildeten mgus ist, gilt (i). Beweis von (ii). Sei σ : X → TΣ und (ψ1, . . . , ψm). Nach Voraussetzung und Satz 8.8 ist die HerbrandV Expansion von LP ∧ ϕ im aussagenlogischen Sinne unerfüllbar. V Da HE ( LP ∧ ϕ) eine Menge variablenfreier Gentzenformeln über der abzählbaren Menge AtΣ(X) ist, gibt es nach Satz 9.4 eine aussagenlogische SLD-Widerlegung von V V HE ( LP ∧ ϕ), also auch von HE ( LP ∧ ϕσ). 309 9 Logische Programmierung V Da jede aussagenlogische SLD-Widerlegung von HE ( LP ∧ ϕσ) eine aussagenlogische SLD-Widerlegung von LP ∪ {ϕσ} ist, gibt es wegen (i) eine (prädikaten)logische SLDWiderlegung s von LP ∪ {ϕ}. o Demnach beweisen SLD-Widerlegungen die Existenz von Lösungen (= erfüllenden Belegungen; siehe Kapitel 8) von Konjunktionen ϕ bzw. negierten Disjunktionen ψ von Atomen in Modellen eines logischen bzw. co-logischen Programms LP bzw. cLP : 310 9 Logische Programmierung V LP |= any(ϕ) ⇔ V LP ∧ ¬any(ϕ) ist unerfüllbar ⇔ V LP ∧ all(¬ϕ) ist unerfüllbar ⇔ V LP ∧ ϕ ist unerfüllbar 8.10 (ii), 9.5 (ii) ⇔ LP ∪ {ϕ} `SLD ⊥. V cLP |= any(¬ψ) ⇔ V cLP ∧ ¬any(¬ψ) ist unerfüllbar ⇔ V cLP ∧ all(ψ) ist unerfüllbar ⇔ V cLP ∧ ψ ist unerfüllbar 8.10 (ii), 9.5 (ii) ⇔ (1) (2) cLP ∪ {ψ} `SLD ⊥. Da Kongruenzaxiome Hornformeln und Diskongruenzaxiome co-Hornformeln sind, gelten (1) und (2) entsprechend modifiziert auch in der Prädikatenlogik mit Gleichheit: 311 9 Logische Programmierung V LP |=EQ any(ϕ) ⇔ V LP ∧ ¬any(ϕ) hat kein Gleichheitsmodell ⇔ V LP ∧ all(¬ϕ) hat kein Gleichheitsmodell ⇔ V 8.13 (ii) ⇔ 8.10 (ii), 9.5 (ii) ⇔ LP ∧ ϕ hat kein Gleichheitsmodell V V LP ∧ congΣ ∧ ϕ ist unerfüllbar LP ∪ congΣ ∪ {ϕ} `SLD ⊥. V cLP |=EQ any(¬ψ) ⇔ V cLP ∧ ¬any(¬ψ) hat kein Gleichheitsmodell ⇔ V cLP ∧ all(ψ) hat kein Gleichheitsmodell ⇔ V 8.13 (ii) ⇔ 8.10 (ii), 9.5 (ii) ⇔ (3) cLP ∧ ψ hat kein Gleichheitsmodell V V cLP ∧ disgΣ ∧ ψ ist unerfüllbar (4) cLP ∪ disgΣ ∪ {ψ} `SLD ⊥. 312 9 Logische Programmierung Kleinste und größte Herbrand-Modelle Aufgabe Sei LP ein (co-)logisches Σ-Programm. Zeigen Sie unter Verwendung von Satz V 8.12 (ii), dass LP erfüllbar ist. o Folglich gibt es nach Lemma 8.1 ein Herbrand-Modell von V LP . Ordnet man die Menge der Herbrand-Σ-Strukturen nach der Mächtigkeit ihrer jeweiligen Interpretationen der Prädikate von Σ, dann hat – wie wir im Folgenden zeigen werden – die Menge der Herbrand-Modelle von LP ein kleinstes bzw. größtes Element, je nachdem, ob LP ein logisches oder ein co-logisches Programm ist. Für alle Herbrand-Σ-Strukturen A, B, A ≤ B ⇔def pA ⊆ pB für alle Prädikate p von Σ. 313 9 Logische Programmierung 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 Prädikat p von Σ wie folgt interpretiert: pM (LP ) = {t ∈ TΣ∗ | LP ∪ {pt} 6`SLD ⊥}. 314 9 Logische Programmierung M (LP ) ist das bzgl. ≤ größte Herbrand-Modell von V 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σ}: 315 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. 316 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.10 (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σ}: 317 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. 318 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.10 (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.10 (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 319 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. 320 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 321 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. 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. 322 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(σ)} ⇒ ⊥ Resolution über LP ϑ0 ∧ ϕ ⇒ ⊥ V ψσ ∧ ϕσ ∧ {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥ σ = unify(ϑ, ϑ0) ψ ⇒ ϑ ∈ LP,0 σ = unify(ϑ, ϑ0), var(ψ ⇒ ϑ) k var(ϑ0 ∧ ϕ) 323 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.10 (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: 324 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. 325 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(σ)}. 326 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) 327 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. 328 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∗ (> ⇒ ϕσ ∨ ϑσ) ϑσ=ϑ0 σ = gA∗ (> ⇒ ϕσ ∨ ϑσ ∨ ϑ0σ) 8.3 ⇔ h∗ ◦ σ ∈ gA∗ (> ⇒ ϕ ∨ ϑ ∨ ϑ0) (∗), 8.4 (ii) ⇔ h ∈ gA∗ (> ⇒ ϕ ∨ ϑ ∨ ϑ0) = gA∗ (ϕ1) und A |=h ϕ1 folgt A |=h > ⇒ ϕσ ∨ ϑσ (1) im Fall (*). Im Fall (**) gilt A |=h > ⇒ _ {x 6≡ xσ | x ∈ supp(σ)}, (2) 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(σ)}. 329 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. W Dann gilt ϕ1 = (> ⇒ ϕ ∧ ϑ0) und ϕ2 = (> ⇒ ϕσ ∨ ψσ ∨ {x 6≡ xσ | x ∈ supp(σ)}) für ϑ ⇒ ψ ∈ LP sowie Formeln bzw. Substitutionen ϑ0, ϕ, , σ, die die Anwendbarkeitsbedingungen der co-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: 330 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. 331 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 ψ = >. 332 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. 333 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) 334 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. 335 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. 336 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) 337 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. 338 Highlights 339 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 340 [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 341 [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 342 [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 343 Index (Σ, E)-Algebra, 110 E-Reduktionsrelation, 112 E-Äquivalenz, 112 E-irreduzibel, 113 F basiert auf C, 67 F basiert auf D, 70 F -Coinduktion, 46 F -Induktion, 46 F -abgeschlossen, 45 F -dicht, 45 HΣ-Algebra, 223 K-Ableitung, 59 LP -Berechnung, 323 C-Invariante, 66 D-Kongruenz, 69 Σ-Algebra, 89 Σ-Atom, 232 Σ-Disgruenzaxiome, 276 Σ-Formel, 233 Σ-Gleichung, 102 Σ-Homomorphismus, 90, 233 Σ-Isomorphismus, 91 Σ-Kongruenz, 108, 233 Σ-Kongruenzaxiome, 276 Σ-Struktur, 233 Σ-Term, 88 χ, 35 distAll , 249 distEx , 249 λ-Notation, 27 distBox , 177 distDia, 177 negAL, 132 negM , 177 negQ, 249 removeQ, 249 344 rename, 249 mkfun, 37 mkrel , 37 curry, 36 n-Tupel, 20 uncurry, 36 Äquivalenzabschluss, 198 Äquivalenzlemma, 103, 247 Äquivalenzrelation, 107 äquivalent, 10, 131, 170, 236 überabzählbar, 41 Abbildung, 24 Ableitungsrelation, 59 Absorption, 132 abzählbar, 41 Adjazenzliste, 37 Adjazenzmatrix, 35 algebraisches Coinduktionsprinzip, 83 Allabschluss, 237 allgemeingültig, 129, 169, 236 allgemeinster Unifikator, 260 Anfrage, 290 Annihilation, 132 Antezedent, 12 antisymmetrisch, 107 Argument, 24 Assoziativität, 131 Atom, 128 aufzählbar, 41 Auslöschung, 132 aussagenlogische Formel, 128 aussagenlogische Operation, 128 aussagenlogische SLD-Ableitung, 307 Axiom, 12 Baum, 152 Belegung, 95 besuchte Box-Formel, 179 bijektiv, 32 Bild, 25 binär, 232 345 binäre Relation, 23 Bisimulation, 198 Bisimulation zwischen K und K0, 201 bisimulationsinvariant, 288 Bitalgebra, 93 Blatt eines Baums, 154 Boolesche Algebra, 132 Boolesche Matrix, 35 Boolescher Ausdruck, 94 charakteristische Funktion, 35 co-Goal, 290 co-Hornformel, 290 co-logisches Σ-Programm, 290 co-Resolution, 306, 324 Coalgebra, 216 coinduktiv definierte Menge, 48 curryfiziert, 36 definite Klausel, 307 Definitionsbereich, 24 Destruktormenge, 69 deterministischer Automat, 225 Diagonalargument, 41 Diagonale, 25 Differenz, 20 disjunkt, 21 Disjunktion, 128 disjunktive Normalform, 135, 163 Distributivität, 132 DNF, 135, 163 Domäne eines Baums, 152 Durchschnitt, 20 Einführungsregel, 145 elementar K-äquivalent, 202 elementar äquivalent, 33 endlich verzweigt, 170 endliche Funktion, 25 endlicher Baum, 152 entscheidbar, 15 erfüllbar, 129, 169, 236, 254 erfüllbarkeitsäquivalent, 250 346 erkennender Automat, 227 erreichbarer Knoten, 154 Existenzabschluss, 237 Extension einer Funktion, 95 Faktor, 128 Faktorisierung, 107 Faktorregel, 264, 306, 323 final, 218 Fixpunkt, 25 Folgerung, 10, 130, 169, 236 Folgerungssatz, 130 Fortsetzung einer Funktion, 95 freie Variable, 237 Funktion, 24 Funktor, 215 gültig, 102, 103 gebundenes Vorkommen, 237 gelöste Σ-Formel, 331 Gentzenformel, 137, 163 gesättigtes Tableau, 155, 180 geschlossene Formel, 135, 237 geschlossenes Tableau, 180 Gewichtsfunktion, 114 Gleichheitsmodell, 275 Gleichheitsprädikat, 275 Gleichheitsstruktur, 275 Goal, 290 Graph, 25 Grundsubstitution, 98 Grundterm, 89 Halbordnung, 107 Hennessy-Milner-Theorem, 202 Herbrand-Expansion, 255 Herbrand-Modell, 236 Herbrand-Struktur, 233 Hornformel, 290 Idempotenz, 131 Identität, 29 Implikation, 128 Implikationspfeil, 11 347 implikative Normalform, 137, 164 impliziert, 11 Indexmenge, 23 Individuenvariable, 230 induktiv definierte Menge, 48 INF, 137, 164 Inferenzsystem, 12 initiale Σ-Algebra, 97 Injektion, 30 injektiv, 25 Inklusion, 29 Instanz, 98 Interpretation einer Operation, 89 inverse Funktion, 29 inverse Relation, 23 isomorph, 33 Kalkül, 12 kanonische SLD-Ableitung, 333 Kardinalität, 40 kaskadiert, 36 Kern, 25 Kette, 56 Klasse, 18 Kleene-Abschluss, 56 Kleisli-Komposition, 101 KNF, 135, 163 Knoten, 152 Knoten eines Baums, 152 Kommutativität, 131 komplementäre Literale, 135 Komplementarität, 132 Komponente eines Tupels, 20 Komposition, 28 Komprehension, 19 Kongruenzregel, 109 Konjunktion, 128 konjunktive Normalform, 135, 163 Konkatenation, 73 Konklusion, 11 konsistente Theorie, 15 konsistenter Abschluss, 257 348 Konstante, 25 Konstruktormenge, 66 Kontraposition, 104, 134, 320 korrekter Kalkül, 15 Kripke-Funktor, 216 Kripke-isomorph, 202 Kripke-Morphismus, 201 Kripke-Rahmen, 167 Kripke-Struktur, 166 Lösung einer Formel, 10 Lösung in einer Struktur, 236 Lambeks Lemma, 219 leaves, 154 leeres Wort, 18 lexikographische Erweiterung, 114 Lifting einer Algebra, 94 Lifting-Lemma, 271 Liste, 21 Literal, 135, 163 logisches Programm, 290 Mächtigkeit, 40 maximale DNF, 142 Menge, 18 Mengenoperator, 19 mgu, 260 modale Operation, 166 modallogische Formel, 166 Modell, 129, 169, 236 Modell einer Formel, 10 Modus ponens, 110 monotone Funktion, 45 Moore-Automat, 224 Multimenge, 39 Multimengen-Erweiterung, 114 Nachfolger eines Knotens, 154 natürliche Abbildung, 107 Negation, 128 Negationsnormalform, 134, 178, 250 Neutralität, 132 nichtdeterministische Funktion von A nach 349 B, 37 NNF, 134, 178, 250 Normalform bzgl. einer Σ-Algebra, 104 Obermenge, 19 occur check, 261 offene Formel, 135 offenes Tableau, 180 Operation, 88 partielle Ordnung, 107 partieller Automat, 227 Partition, 23 Pfad eines Baumes, 154 Potenzmenge, 21 Prädikat, 232 prädikatenlogische Formel, 233 prädikatenlogische Operation, 231 Präfixrelation, 154 Prämisse, 11 Präordnung, 107 primitiv-rekursive Funktion, 74 Produkt, 20 Produkt von Funktionen, 31 Produktextension, 30 Projektion, 29 Quantor, 230 Quasiordnung, 107 Quotient, 107 Record, 23 Redex, 14 Redukt, 14 Redukt einer Struktur, 250 reflexiv, 106 Reflexivitätsregel, 109 Relation, 23 Relation auf, 23 Resolution, 306, 323 Resolvente, 145 Schnittableitung, 264 Schnittregel, 145, 164, 264 Schnittwiderlegung, 146, 164, 264 350 Schrittfunktion, 48 schwach final, 217 Semantik, 10 semantischer Bereich, 10 semi-entscheidbar, 15 Signatur, 88 Skolemfunktion, 251 Skolemnormalform, 252 SLD-Ableitung, 305 SLD-Widerlegung, 305 Sprache, 227 Stelle, 24 Stelligkeit, 24 Strom, 39 Struktur, 230 Strukturelle Induktion über lfp(F ), 71 Substitution, 98 Substitutionslemma, 99, 244 subsumieren, 260 Subsumptionsrelation, 154 Suchraum, 105 Sukzedent, 12 Summand, 128 Summandregel, 264, 306, 324 Summe, 20 Summe von Funktionen, 31 Summenextension, 30 Support, 262 surjektiv, 25 Symmetrieregel, 109 symmetrisch, 107 Syntax, 10 Tableau, 155, 179 Tableau-Ableitung, 155, 180 Tableau-Widerlegung, 156, 180 Tautologie, 169, 236 tautologisch, 129 Teilmenge, 19 Teilterm, 101 Termersetzungstheorie, 104 Termfaltung, 97 351 ternär, 232 totale Ordnung, 107 Trägermenge, 89 Transitionsfunktion, 167 transitiv, 106 Transitivitätsregel, 109 Typ, 24 unär, 232 unäre Relation, 19 unerfüllbar, 129, 169, 236, 254 Unerfüllbarkeitssatz, 130 Ungleichheitsprädikat, 275 Unifikator, 260 Update einer Funktion, 27 Urbild, 24 Vereinigung, 20 verhaltensäquivalent, 197 Verhaltensäquivalenz, 197 Verhaltensmodell, 218 vollständige Theorie, 15 vollständiger Kalkül, 15 Vorgänger eines Knotens, 154 wechselseitig induktiv definierte Funktion bzgl. C, 77 Weg eines Baums, 154 Wert eines Terms, 96 Wert eines Terms unter einer Belegung, 95 Wertebereich, 24 widersprüchlich, 129, 169, 236 Widerspruchsbeweis, 134 wohlfundierte Relation, 53 Wohlordnung, 107 Wort, 21 Wurzel eines Baums, 152 Zerlegung, 23 Zusicherung, 16, 227 Zustandsatom, 178 Zustandsformel, 169 Zustandsliteral, 178 352