Einführung in die Logik Jiřı́ Adámek Sommersemester 2011 5. Juli 2011 Institut für Theoretische Informatik Inhaltsverzeichnis 1 Einleitung: Logische Systeme 4 I 6 Aussagenlogik 2 Aussagenlogik 2.i 7 Syntax der Aussagenlogik . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.ii Semantik der Aussagenlogik . . . . . . . . . . . . . . . . . . . . . . . . 8 2.iii Abgeleitete Symbole . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.iv Bindungskonventionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.v Wahrheitstafel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3 Eigenschaften von Formeln 3.i 12 Äquivalenz von Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.ii Eigenschaften von Konjunktion und Disjunktion . . . . . . . . . . . . . 13 3.iii Adäquate Junktoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.iv Tautologien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.v Erfüllbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4 Normalformen 4.i 18 Negation-Normalform (NNF) . . . . . . . . . . . . . . . . . . . . . . . . 18 4.ii Baum - Notation von Formeln . . . . . . . . . . . . . . . . . . . . . . . 20 4.iii Konjunktive Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1 4.iv Disjunktive Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5 Resolutionsmethode der Aussagenlogik 27 6 Folgerungen 33 7 Natürliche Deduktion 37 7.i Regeln für die Konjunktion . . . . . . . . . . . . . . . . . . . . . . . . 37 7.ii Regeln der Implikation . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 7.iii Formale Beweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7.iv Regeln der Disjunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 7.v Regeln der Negation und Absurdität . . . . . . . . . . . . . . . . . . . 44 7.vi Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.vii Hilberts Axiomatisierung . . . . . . . . . . . . . . . . . . . . . . . . . . 49 8 Hornlogik 8.i II 51 Hornformeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 8.ii SDL-Resolutionsmethode . . . . . . . . . . . . . . . . . . . . . . . . . . 53 8.iii Markierungsalgorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Prädikatenlogik 57 9 Syntax der Prädikatenlogik 9.i 58 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 9.ii Alphabet der Prädikatenlogik . . . . . . . . . . . . . . . . . . . . . . . 61 9.iii Syntax der Aussagenlogik . . . . . . . . . . . . . . . . . . . . . . . . . 62 10 Semantik der Prädikatenlogik 66 11 Logische Äquivalenz 71 2 12 Normalformen 76 13 Herbrandsche Modelle und abstrakte Datentypen 80 14 Resolutionsmethode der Prädikatenlogik 84 3 1. Einleitung: Logische Systeme Formale Logik kann man als den Versuch auffassen, das Denken zu technisieren. Als Wahr gilt nicht, was aufgrund einer sprachlichen Beschreibung plausibel gemacht wird, sondern das, was mittels einer systematischen Arbeitstechnik nachgewiesen wird. Ein logisches System überprüft dabei nicht den Wahrheitsgehalt einzelner Aussagen, sondern es ermöglicht festzustellen, was zusätzlich wahr ist, wenn eine Menge von Aussagen als wahr bekannt ist. Dieses Weiterdenken des bereits vorhandenen Wissens ist das Forschungsgebiet der Logik. Es gibt viele unterschiedliche Arten formaler logischer Systeme, die zum Teil unterschiedliche Fragestellungen adressieren. In diesem Skript werden einige von vielen existierenden logischen Systemen eingeführt: Aussagenlogik, Gleichungslogik und Prädikatenlogik. Die große Auswahl an logischen Systemen entspricht ähnlich der Vielfalt an Programmiersprachen den unterschiedlichen Typen von Anwendungen, die Logik in der Informatik und auch in anderen Gebieten hat. Die hier vorgestellten Logiken arbeiten mit streng formulierten Sätzen – Formeln –, die aus einem klar definierten Vorrat an Zeichen – Symbolen – zusammengesetzt werden. Allerdings gilt nicht alles was formulierbar ist, als wahr. Deshalb gehört zu jeder Logik immer auch ein Teil, der prüft, welche der korrekt formulierten Sätze auch tatsächlich im System gültig, das meint wahr, sind. Jedes der behandelten logischen Systeme besitzt die folgenden Grundbausteine: (a) Sprache: Dies ist die Liste aller Symbole, die die Logik nutzt, um korrekte Formeln aufzubauen. Dazu zählt etwa die Sprache aller atomaren Aussagen (oder Variablen) A “, A “, A “, . . . ; die aller Junktoren ∧ (und), ∨ (oder) und ¬ (nicht) ” 1 ” 2 ” 3 sowie die von Hilfssymbolen wie (“ und )“ und ,“ . ” ” ” (b) Syntax: Dies sind die Regeln, die bestimmen, wie man eine korrekte Formel schreibt und sie aus den Elementen der Sprache zusammensetzt. Oft werden diese Regeln in der folgenden Weise in zwei Schritten angegeben. 4 (a) Zuerst sagt man, was die atomaren, von Anfang an gegebenen Formeln sind. (b) Dann wird bestimmt, wie aus diesen atomaren Formeln zusammengesetzte Formeln korrekt aufgebaut werden. In der später besprochenen Aussagenlogik sind die Formeln etwa aus den atomaren Aussagen durch Verknüpfung mit den Junktoren aufgebaut. Dabei ist A1 ∨ A2 “ korrekt und A1 ∨ A2 ∧“ ist nicht korrekt. ” ” (c) Semantik: Diese erklärt, was die Formeln bedeuten. Bedeutung“ kann ” dabei verschiedene Formen annehmen. In der Aussagenlogik entspricht das der Frage, welche Formeln wahr sind, und welche falsch. Diese Werte sind binär und werden daher oft mit 1 für wahr“ und 0 für falsch“ dargestellt. ” ” (d) Logische Kalküle: Diese sind Regeln, um festzustellen, was wahr ist und was nicht, indem Formeln umgeformt werden. Damit stellen Sie eine Alternative zu Semantiken dar, die ebenfalls prüfen, was gilt und was nicht. Zur Erinnerung: Syntax gibt an, wie Formeln aus der Sprache entstehen. Logische Kalküle wirken dagegen auf die Formeln und bestimmen mit ihren Regeln, welche davon wahr sind. Semantiken wiederum bewerten gegebene Formeln und bestimmen derart, welche gültig sind. 5 Teil I Aussagenlogik 6 2. Aussagenlogik Einige sprachliche Gebilde haben einen Wahrheitswert wahr“ oder falsch“. Z.B. Prag ” ” ” liegt in Europa“ ist wahr. Jede Zahl ist größer als 3“ ist falsch. Solche Gebilde heißen ” Aussagen. Ziel der Aussagenlogik ist, die Aussagen aus atomaren Aussagen (deren Wahrheitswert wird von außen gegeben) zu untersuchen. Z.B. wenn x = 2 gilt y = 3 ist eine Aussage, die die Form einer Implikation hat: wir wissen nicht, ob die Aussagen A: x=2 B: y=3 und wahr oder falsch sind. Aber trotzdem können wir z.B. behaupten, dass die obere Implikation A⇒B in allen Situationen wahr ist, wo x 6= 2. 2.i Syntax der Aussagenlogik Definition 2.1. Die Sprache der Aussagenlogik besteht aus (a) einer abzählbaren Menge von atomaren Aussagen A1 , A2 , A3 , . . . (b) Junktoren ∧ Konjunktion, und“ ” ∨ Disjunktion, oder“ ” ¬ Negation, nicht“ ” (c) und Hilfssymbolen () Klammern , Komma 7 Dabei schreiben wir oft A, B, C, . . . statt A1 , A2 , A3 , . . . um atomare Aussagen zu bezeichnen. Definition 2.2. Syntax der Aussagenlogik Wir definieren die Formeln der Aussagenlogik (auch Aussagen genannt) als die kleinste Menge, so dass (a) jede atomare Aussage eine Formel ist (b) falls F und G Formeln sind, dann sind es auch • (F ∧ G) • (F ∨ G) • (¬F ) Beispiel 2.3. Für atomare Aussagen A und B sind etwa ((A ∨ B) ∧ (¬B))) und (¬(¬(A ∨ B))) Formeln. 2.ii Semantik der Aussagenlogik Die Semantik der Aussagenlogik arbeitet mit Belegungen der atomaren Aussagen und berechnet daraus den Wahrheitswert aller Formeln. Statt wahr“ schreibt man 1, statt ” falsch“ 0. Gegeben sei eine Formel, deren atomare Aussagen in einer Menge M (un” termenge von {A1 , A2 , A3 . . .}) liegen. Falls α eine Belegung dieser Aussagen ist, d.h., eine Funktion von M in {0, 1}, können wir den Wahrheitswert der ganzen Formel bestimmen. Definition 2.4. Eine Belegung ist eine Abbildung α von einer Menge M von atomaren Aussagen in die Menge {0, 1}. Kurz: α : M −→ {0, 1} für M ⊆ {A1 , A2 , A3 , . . .} Beispiel 2.5. Falls M = {A, B} mit der Belegung α(A) = 1 und α(B) = 0, ist intuitiv klar, dass (A ∨ B) wahr ist und (¬(A ∨ B)) falsch. Definition 2.6. Für jede Formel F , die mit Hilfe der atomaren Aussagen aus M gebildet werden kann, und jede Belegung α : M −→ {0, 1} definieren wir den Wert der Formel α b(F ) bei Belegung α α b(F ) := 0 oder 1 durch Strukturinduktion, d.h., Induktion über die Länge n der Formel F : 8 n = 1 Hier ist F eine atomare Formel aus M und wir setzten α b(F ) := α(F ) n > 1 Für kürzere Formeln ist α b durch die Induktion bereits definiert, daher bestimmen wir nun den Wert von Zusammensetzungen aus anderen Formeln. Eine Formel F mit Länge n > 1 hat die Form (G ∧ H) oder (G ∨ H) oder (¬G). Wir definieren α b(F ) entsprechend bei: 1 falls α b(G) = 1 = α b(H) α b(G ∧ H) := 0 sonst 1 falls α b(G) = 1 oder α b(H) = 1 α b(G ∨ H) := 0 sonst 1 falls α b(G) = 0 α b(¬G) := 0 sonst In der Mathematik und in der theoretischen Informatik meint oder“ die nicht-exklusive ” Form. Dh. der Wert von α b(F ∨ G) ist auch dann 1, wenn α b(G) = 1 = α b(H). Beispiel 2.7. Die Semantik der Formel A ∨ (B ∧ ¬C) ist bei jeder Belegung α der Atome A, B, C definiert. Die Formel ist wahr, falls A wahr ist oder B wahr ist, sowie C falsch ist. Definition 2.8. Eine Belegung α : M −→ {0, 1} ist passend für eine Formel F falls alle atomaren Aussagen von F in M liegen. (Jede Formel hat bei jeder passenden Belegung Wert 0 oder 1.) 2.iii Abgeleitete Symbole Andere Literatur zählt ⇒ (Implikation) und ⇔ (Äquivalenz) zu den Junktoren der Aussagenlogik. Diese zwei verwenden wir als abgeleitete Symbole und definieren sie per Notation als Abkürzung einer längeren Formel. Wenn wir überlegen, merken wir, dass F ⇒ G dieselbe Bedeutung wie (G ∨ ¬F ) hat. Zu sagen: aus F folgt G“, bedeutet ” dasselbe wie zu sagen: G ist wahr oder F ist falsch“. Aus diesem Grund können wir ” definieren: Definition 2.9. Für zwei Formeln F und G ist (a) (F ⇒ G) eine Notation für die Formel (G ∨ ¬F ) (b) (F ⇔ G) eine Notation für die Formel ((F ⇒ G) ∧ (G ⇒ F )) 9 Die Semantik der Junktoren ⇒ und ⇔ folgt aus der Definition 2.6. Hier noch einmal explizit: 1 falls α b(G) = 0 oder α b(H) = 1 0 sonst 1 falls α b(G) = α b(H) 0 sonst α b(G ⇒ H) := α b(G ⇔ H) := In Worten sprechen wir G ⇒ H als wenn F , dann G“ und F ⇔ G als F genau dann, ” ” wenn G“. Definition 2.10. Wir bezeichnen durch ⊥ (“Absurdität“) die Aussage A ∧ ¬A, wobei A ein Atom ist (konkret wählen wir das erste Atom). Die Absurdität hat immer Wert 0. Und > bezeichnet A ∨ ¬A, die Aussage mit Wert 1. 2.iv Bindungskonventionen Um unnötige Klammern zu vermeiden, bestimmen wir die folgende Notationelle Konvention 2.11. (a) ¬ bindet stärker als alle zweistelligen Junktoren (∧, ∨, ⇒, ⇔). (b) ∧ und ∨, die alten“ Junktoren, binden stärker als die abgeleiteten Junk” toren ⇒ und ⇔. (Die Junktoren ∨ und ∧ binden gleich stark.) Beispiel 2.12. ¬A ⇒ B ∨¬C wird dadurch eine korrekte Formel. Es ist die Abkürzung für die offizielle“ Fassung (¬A) ⇒ (B ∨ (¬C)) . ” 2.v Wahrheitstafel Die Semantik jeder Formel F , die atomare Aussagen aus M := {A1 , A2 , . . . , An } benutzt, kann man als Wahrheitstafel darstellen: jede Zeile entspricht einer der 2n Belegungen α : M −→ {0, 1}: A1 A2 0 0 0 0 .. .. . . 1 1 . . . An ... 0 ... 1 . . . .. . ... 1 F α b(F ) für α(Ai ) = 0 für alle i α b(F ) für α(An ) = 1, sonstige α(Ai ) = 0 .. . α b(F ) für α(Ai ) = 1 für alle i Wahrheitstafeln stellen alle möglichen Kombinationen der Belegung der atomaren Aussagen dar. Dazu können wir der Reihenfolge von binären Darstellungen der Zahlen 10 0, 1, 2, . . . 2n−1 folgen. Dabei stehen in der ersten Zeile nur lauter 0-Werte, in der letzten lauter 1-Werte. In der Spalte rechts von den binären Zahlen steht der Wert der Formel F bei der entsprechenden Belegung von M . Beispiel 2.13. Man betrachte die Wahrheitstafel von F := A ∨ ¬B A 0 0 1 1 B 0 1 0 1 F 1 0 1 1 Beispiel 2.14. Wahrheitstafeln ermöglichen eine Analyse der jeweils dargestellten Formel, etwa von F := C ⇒ A ∨ (B ∧ A): A 0 0 0 0 1 1 1 1 B C F 0 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 1 1 An der Tafel ist zu sehen: die Formel ist fast immer wahr, außer in zwei Fällen: • α(A) = 0, α(B) = 0 und α(C) = 1 • α(A) = 0, α(B) = 1 und α(C) = 1 Daraus ist zu erkennen, dass der Wert von F unabhängig von dem Wert von B, also von α(B), ist. Damit ist α b(F ) = 1, außer wenn α(A) = 0 und α(C) = 1. Dieselbe Semantik lässt sich kürzer ausdrücken: A ∨ ¬C Die kurze Formel ist ebenfalls immer wahr, außer wenn α(A) = 0 und α(C) = 1. 11 3. Eigenschaften von Formeln 3.i Äquivalenz von Formeln Definition 3.1. Zwei Formeln F und G der Aussagenlogik heißen äquivalent, falls sie dieselbe Semantik haben. Dh. für jede Belegung α : M −→ {0, 1} die zu F und G passend ist, gilt α b(F ) = α b(G) Wir schreiben dies auch in der folgenden Notation: F ≡ G Beispiel 3.2. C ⇒ A ∨ (B ∧ C) ist äquivalent zu (A ∨ ¬C). Dies haben wir im letzten Abschnitt in Beispiel 2.14 durch Analyse der Wahrheitstafel festgestellt. Satz 3.3. Für jede Formel F gilt: ¬¬F ≡ F . Beweis. Falls α b(F ) = 1 gilt, α b(¬F ) = 0, weshalb α b(¬¬F ) = 1 = α b(F ). Analog für α b(F ) = 0. Satz 3.4. De Morgansche Regeln: ¬(F ∧ G) ≡ ¬F ∨ ¬G ¬(F ∨ G) ≡ ¬F ∧ ¬G Beweis. Die erste Regel folgt daraus, dass gegeben eine für F und G passende Belegung α dann α b(¬(F ∧ G)) Wert 1 hat, genau wenn α b(F ∧ G) den Wert 0 hat und dies gilt genau dann wenn α b(F ) = 0 oder α b(G) = 0. Und für die rechte Seite haben wir Wert von α b(¬F ∨ ¬G) gleich 1 genau wenn α b(¬F ) = 1 oder α b(¬G)0 =, d.h. in derselben Situation wie oben. Dies beweist α b(¬(F ∨ G)) = α b(¬F ∨ ¬G). Analog wird die zweite Regel bewiesen. Bemerkung 3.5. Äquivalente Formeln haben dieselbe Wahrheitstabelle. Deswegen haben wir genau 4 Formeln, die nur ein Atom A benutzen: A, ¬A, A ∨ ¬A und A ∧ ¬A 12 Alle anderen Formeln mit Atom A (z.B. A ∨ A, A ∨ A ∨ A usw) sind zu einer dieser vier Äquivalent. Denn die vier Wahrheitstabellen A A 0 0 1 1 A A ∨ ¬A 0 1 1 1 A A¬ 0 1 1 0 A A ∧ ¬A 0 0 1 0 erschöpfen alle Möglichkeiten, die wir haben. Analog für 2 Atome A, B: da es 16 mögliche Wahrheitstabellen gibt, gibt es bis auf Äquivalenz höchstens 16 Formeln mit Atomen A und B. n Allgemein: mit n Atomen können wir höchstens 22 paarweise nicht-äquivalente Formeln aufbauen. 3.ii Eigenschaften von Konjunktion und Disjunktion Satz 3.6. Konjunktion ist kommutativ:F ∧ G ≡ G ∧ F assoziativ:(F ∧ G) ∧ H ≡ F ∧ (G ∧ H) idempotent:F ∧ F ≡ F Beweis: F ∧ G ist wahr genau wenn F und G wahr sind. Dasselbe gilt für G ∧ F . Deswegen sind F ∧ G und G ∧ F äquivalent. Auf dieselbe Art kann man die anderen Formeln beweisen. Satz 3.7. Disjunktion ist kommutativ, assoziativ und idempotent. Der Beweis erfolgt analog zu Satz 3.6. Notationelle Konvention 3.8. 1. Die Assoziativität erlaubt es Formeln wie A ∧ B ∧ C ohne Klammern zu schreiben. Dies gilt für beliebig viele Teilklauseln der Konjunktion, also ebenso für A∧B ∧C ∧D usw. Entsprechend werden auch Disjunktionen der Form A ∨ B ∨ C, usw., notiert. W V 2. Wir schreiben auch ni=1 Ai statt A1 ∨ . . . W ∨ An und ni=1 Ai statt A1 ∧ . . . ∧ An . Genauer: wir definieren das Symbol ni=1 Ai per Induktion: Für n = 1 ist n _ Ai = A1 i=1 Für n + 1 ist n+1 _ i=1 Analog mit Vn i=1 Ai 13 Ai = ( n _ i=1 Ai ) ∨ An+1 W W 3. Falls wir in 2. auch n = 0 erlauben, ist ni=1 Ai immer falsch (denn Ai ist nur dann wahr, wenn es ein i gibt mit Ai wahr). D.h.: 0 _ = 1Ai =⊥ . i Analog ist Vn i=1 Ai für n = 0 immer wahr: 0 ^ Ai = > i=1 Bemerkung 3.9. Die De Morganschen Regeln kann man wie folgt verallgemeinern: ¬ sowie ¬ n ^ Fi ≡ n _ i=1 i=1 n _ n ^ Fi ≡ i=1 ¬Fi ¬Fi i=1 Der Beweis ist analog zu 3.4. Satz 3.10. (Distributivgesetz) Konjunktion und Disjunktion distribuieren wie folgt: F∧ sowie F∨ n _ Gi ≡ n _ i=1 i=1 n ^ n ^ i=1 Gi ≡ (F ∧ Gi ) (F ∨ Gi ). i=1 Bemerkung 3.11. Oft werden die Distributivgesetze nur für n = 2 formuliert: F ∧ (G1 ∨ G2 ) = (F ∧ G1 ) ∨ (F ∧ G2 ) und F ∨ (G1 ∧ G2 ) = (F ∨ G1 ) ∧ (F ∨ G2 ) W Beweis: Der Wert von F ∧ ni=1 Gi für eine passende Belegung α ist 1, genau dann wenn α b(F ) = 1 und α b(Gi ) = 1 für einen Index i = 1,W. . . , n. Dies ist der Fall genau wenn α b(F ∧ Gi ) = 1 für ein i. Und dies besagt, dass ni=1 (F ∧ Gi ) Wert 1 hat. Der Beweis des zweiten Distributivgesetzes ist analog. 14 3.iii Adäquate Junktoren Formeln haben wir mit Hilfe der drei Junktoren ∧, ∨ und ¬ definiert. Aber die De Morganschen Regeln zeigen, dass ∨ weggelassen werden könnte: aus ¬(F ∨ G) = ¬F ∧ ¬G) folgt durch Negation beider Seiten Folgerung 3.12. F ∨ G ≡ ¬(¬F ∧ ¬G) Definition 3.13. Eine Menge von Junktoren heißt adäquat, falls jede Formel zu einer Formel, die nur Junktoren aus dieser Menge benutzt, äquivalent ist. Beispiel 3.14. (a) Wie wir gesehen haben, formen ∧ und ¬ eine adäquate Menge. Analog sind auch ∨ und ¬ adäquat. (b) Die Junktoren ⇒ und ¬ sind adäquat. In der Tat: Disjuktion können wir wie folgt ersetzen: F ∨ G ≡ F ∨ ¬(¬G) = ¬G ⇒ F und dann benutzen wir die Tatsache, dass ∨ und ¬ adäquat sind. (c) Das Symbol ⊥ für Absurdität kann als ein (nullstelliger) Junktor betrachtet werden. Die Juktoren ⇒ und ⊥ sind adäquat: dies folgt aus b, weil für die Negation gilt Satz 3.15. A ⇒⊥ ist zu ¬A äquivalent. Beweis. Da A ⇒⊥ gleich ⊥ ∨¬A und der Wer von ⊥ in jedem Modell 0 ist, sehen wir, dass ¬A und ⊥ ∨¬A immer denselben Wert haben. Beispiel 3.16. Die Junktoren ∧ und ⊥ sind nicht adäquat. In der Tat, für eine atomare Aussage A ist die Formel ¬A zu keiner Formel F , die nur ∧ und ⊥ als Junktoren benutzt, äquivalent. Falls nämlich F das Symbol ⊥ nicht enthält, hat sie die Form F = B1 ∧ . . . ∧ Bn , Bi atomar. Dann nehmen wir die Funktion α, die jeder atomaren Aussage 1 zuordnet: es gilt α b(¬A) = 0 und α b(F ) = 1. Und falls F das Symbol ⊥ enthält, gilt α b(F ) = 0 für jede Belegung α. Hier wählen wir die Belegung, die konstant den Wert 0 hat, dann α b(¬A) = 1 und α b(F ) = 0. Beispiel 3.17. Der NAND-Junktor (auch als Sheffer-Symbol bekannt) ist der Junktor “nicht beide“, der durch A ↑ B = ¬(A ∧ B) definiert wird. Die Aussagenlogik kann durch den NAND Junktor allein aufgebaut werden: die Menge {↑} ist adäquat. In der Tat: ¬A ≡ A ↑ A deswegen A ∧ B ≡ ¬(A ↑ B) ≡ (A ↑ B) ↑ (A ↑ B) und endlich benutzen wir die De Morgansche Regel die A ↑ B = ¬A ∨ ¬B ergibt für A ∨ B = (¬A) ↑ (¬B) = (A ↑ A) ↑ (B ↑ B). 15 3.iv Tautologien Manche Formeln sind unabhängig von der Belegung der atomaren Aussagen immer wahr – sie heißen Tautologien. Definition 3.18. Eine Formel heißt Tautologie, falls sie für jede passende Belegung wahr ist. Beispiel 3.19. Die Formel F ∨ ¬F ist eine Tautologie. Auch (¬F ⇒ ¬G) ⇒ (G ⇒ F ) ist eine Tautologie. Sie bildet die Grundlage für das Beweisen durch Widerspruch. Satz 3.20. Zwei Formeln F und G sind äquivalent, genau wenn F ⇔ G eine Tautologie ist. Beweis. Vergleichen wir die Wahrheitstafeln: Immer wenn F und G den gleichen Wert haben, steht in der Spalte von F ⇔ G eine 1 für wahr. Falls F und G äquivalent sind, steht in der ganzen Spalte von F ⇔ G eine 1 und damit ist F ⇔ G eine Tautologie. Umgekehrt gilt, falls F ⇔ G eine Tautologie ist, stehen immer bei F und G die gleichen Werte und sie sind daher äquivalent. Beispiel 3.21. Eine überraschende Tautologie ist die Folgende: (F ⇒ G) ∨ (G ⇒ F ) In der Tat, bei jeder passenden Belegung α ist entweder α b(F ) = 1: dann ist die Formel wahr, weil G ⇒ F wahr ist. Oder α b(F ) = 0, wo die auch wahr ist, weil F ⇒ G wahr ist. Die Tautologie scheint zu sagen, dass jede Tatsache aus einer beliebigen anderen folgt oder umgekehrt. Dennoch gilt sie. Die Erklärung ist, dass wenn wir A ⇒ B schreiben, bedeutet dies nicht, dass aus A immer B folgt (denn die Formel A ⇒ B kann auch falsch sein). 3.v Erfüllbarkeit Definition 3.22. Eine Formel F heißt erfüllbar, falls sie bei wenigstens einer Belegung wahr ist. Beispiel 3.23. Die Formel A ⇒ B ist erfüllbar, da sie etwa dann wahr wird, wenn man B mit 1 belegt. Dagegen ist die Formel A ∧ B ∧ A ⇒ ¬B nicht erfüllbar. Satz 3.24. Eine Formel F ist genau dann erfüllbar, wenn ¬F keine Tautologie ist. 16 Beweis. Wenn F erfüllbar ist, gibt es eine passende Belegung α mit α b(F ) = 1, dh. mit α b(¬F ) = 0. Daraus folgt, dass ¬F keine Tautologie ist. Umgekehrt bedeutet zu sagen, dass ¬F keine Tautologie ist, dass es eine Belegung α mit α b(¬F ) = 0 gibt. Bei dieser Belegung ist α b(F ) = 1 und F erfüllbar. In der Industrie, etwa zur Steuerung von Weichenanlagen, werden Formeln mit bis zu 300 Tausend atomaren Aussagen formuliert und deren Erfüllbarkeit getestet. Dieses Problem wird in der Theoretischen Informatik intensiv erforscht und heißt dort SAT (von englisch satisfiable“). Im nächsten Kapitel entwickeln wir einen Algorithmus ” dafür. 17 4. Normalformen Es ist oft wichtig mit Formeln einer gewissen schönen“ Gestalt arbeiten zu dürfen. ” Die wichtigste solcher Formen heißt konjunktive Normalform und wir zeigen hier, wie sie berechnet wird. Zwei andere Normalformen werden ebenfalls eingeführt. Erst brauchen wir eine einfache aber nützliche Aussage: die Relation der Äquivalenz ≡ zwischen Formeln ist eine “Kongruenz“ aller Junktoren: Satz 4.1. Gegeben seien die Formeln F ≡ F 0 und G ≡ G0 , dann gilt: F ∨ G ≡ F 0 ∨ G0 und F ∧ G ≡ F 0 ∧ G0 sowie ¬F ≡ ¬F 0 . Beweis. Wir sollen zeigen, dass der Wert von F ∨ G in jedem Modell aller Aussagen F, G, F 0 , G0 gleich zum Wert von F 0 ∨ G0 ist. Der Wert von F ∨ G ist 1, genau wenn entweder F oder G Wert 1 haben. Dies ist, aufgrund von F 0 ≡ F und G0 ≡ G, genau der Fall, wenn F 0 oder G0 Wert 1 hat, d.h., genau wenn F 0 ∨ G0 Wert 1 hat. Analog mit F ∧ G und ¬F . Folgerung 4.2. Aus F ≡ F 0 und G ≡ G0 folgt F ⇒ G ≡ F 0 ⇒ G0 Folgerung 4.3. Aus F1 ≡ F10 , . . . , Fn ≡ Fn0 folgt n ^ i=1 4.i Fi ≡ n ^ Fi0 und i=1 n _ i=1 Fi ≡ n _ Fi0 i=1 Negation-Normalform (NNF) Bemerkung 4.4. Die De Morganschen Regeln und die Äquivalenz von ¬¬F und F ermöglichen es, Formeln so zu gestalten, dass die Negation nur vor atomaren Aussagen vorkommt. Beispiel 4.5. (A ∨ B) ⇒ (B ∧ ¬(A ∨ ¬C)) ≡(B ∧ ¬(A ∨ ¬C)) ∨ ¬(A ∨ B) ≡(B ∧ ¬A ∧ ¬¬C) ∨ (¬A ∧ ¬B) ≡(B ∧ ¬A ∧ C) ∨ (¬A ∧ ¬B) 18 Definition 4.6. Eine Formel G heißt Negation-Normalform (NNF) falls die Negation in G nur direkt vor den atomaren Aussagen steht. Wir können für jede Formel G ihre NNF berechnen indem wir die De Morganschen Regeln rekursiv benutzen: falls G = ¬(H ∨ K) gilt: G ≡ ¬H ∧ ¬K und wir müssen nur die NNF für ¬H sowie ¬K berechnen. Analog für G = ¬(H ∨ K). Und falls G = ¬¬H dann gilt G ≡ H. Dies wird durch den folgenden rekursiven Algorithmus formalisiert werden: Algorithmus 4.7 (NNF). Eingabe: Eine Formel A mit Junktoren ∨, ∧ und ¬. (Die Junktoren ⇒ und ⇔ müssen erst ersetzt werden.) Ausgabe: Eine NNF äquivalent zu A, bezeichnet als NNF(A) Da dieser Algorithmus rekursiv ist, benutzen wir die Strukturinduktion: wir stellen NNF(A) für atomare Aussagen fest. Und für die zusammengesetzten Formeln A berechnen wir NNF(A) aus der vorher berechneten Formeln NNF(Bi ), wobei Bi kürzere Formeln sind als A. 1. A atomar: wir setzen NNF(A) := A 2. A = B1 ∧ B2 : wir setzen NNF(B1 ∧ B2 ) := NNF(B1 ) ∧ NNF(B2 ) 3. A = B1 ∨ B2 : wir setzen NNF(B1 ∨ B2 ) := NNF(B1 ) ∨ NNF(B2 ) 4. A = ¬B: Hier müssen wir eine neue Rekursion anfangen: wir benutzen Strukturinduktion in B. Falls B nicht atomar ist, nehmen wir an, dass NNF(¬Ci ) berechnet wurden für Formeln Ci , die kürzer als B sind. 4.1 B atomar: wir setzen NNF(¬B) := ¬B 4.2 B = C1 ∧ C2 : wir setzen NNF(¬(C1 ∧ C2 )) := NNF(¬C1 ) ∨ NNF(¬C2 ) 4.3 B = C1 ∨ C2 : wir setzen NNF(¬(C1 ∨ C2 )) := NNF(¬C1 ) ∧ NNF(¬C2 ) 19 4.4 B = ¬C: wir setzen NNF(¬¬C) := NNF(C) Satz 4.8. Der Algorithmus NNF ist korrekt: für jede Formel A wird NNF(A) in endlich vielen Schritten berechnet, ist zu A äquivalent und ist NNF. Beweis. Die endlich vielen Schritte folgen aus der Tatsache, dass für eine Formel A der Länge n in einem rekursiven Durchgang der Algorithmus NNF ein oder zweimal verwendet wird, jedes Mal an Formeln der Länge höchstens n−1. Da für die Formeln der Länge 1 nur ein Schritt notwendig ist, haben wir insgesamt höchstens n Durchgänge. Die Äquivalenz A ≡ NNF(A) und die Tatsache, dass NNF(A) eine NNF ist, müssen wieder per Strukturinduktion bewiesen werden. Falls A atomar ist, gilt A = NNF(A), dies ist eine NNF. Falls A = B1 ∧ B2 und für B1 und B2 die Aussage gilt, berechnen wir NNF(A) ≡ NNF(B1 ) ∧ NNF(B2 ) und benutzen Satz 4.1: aus B1 ≡ NNF(Bi ) für i = 1, 2 folgt NNF(A) ≡ B1 ∧ B2 = A Da NNF(Bi ) eine NNF ist, folgt unmittelbar, dass NNF(A) eine NNF ist. Die Schritte A = B1 ∨ B2 und A = ¬B sind analog. Beispiel 4.9. Wir wollen die NNF der Formel (A ⇒ ¬A ∨ B) ∨ (A ∧ C ⇒ ¬B ∨ C) berechnen. Bevor der rekursive Algorithmus angefangen wird, müssen wir ⇒ ersetzen. Wir arbeiten mit der Formel G = ((¬A ∨ B) ∨ ¬A) ∨ ((¬B ∨ C) ∨ ¬(A ∧ C)) Die rekursive Berechnung wird extra mit der linken und der rechten Seite entwickelt: NNF(G) = NNF((¬A ∨ B) ∨ ¬A) ∨ NNF((¬B ∨ C) ∨ ¬(A ∧ C)) = NNF(¬A ∨ B) ∨ NNF(¬A) ∨ NNF(¬B ∨ C) ∨ NNF(¬(A ∧ C)) = NNF(¬A) ∨ NNF(B) ∨ NNF(¬B) ∨ NNF(¬A ∨ ¬C) = ¬A ∨ B ∨ ¬B ∨ ¬A ∨ ¬C 4.ii Baum - Notation von Formeln Es ist oft vorteilhaft sich die Struktur einer Formel F (wie sie durch ihre Unterformen aufgebaut ist) als einen Baum vorzustellen, dessen Blätter mit den atomaren Aussagen von F markiert werden und andere Knoten werden, falls sie 2 Kinder haben, mit einem 2-stelligen Junktor markiert und für 1 Kind mit ¬ markiert. Für Formeln F = G ∨ H steht ∨ in der Wurzel (analog mit ∧, ⇒ oder ⇔). Für F = ¬G steht ¬ in der Wurzel. 20 Beispiel 4.10. ((A ⇒ B) ∨ C) ⇔ ¬(A ⇒ B) ist eine Formel dessen Hauptjunktor ⇔ ist, der entsprechende Baum hat die Form ⇔ t s wobei t der Baum für (A ⇒ B) ∨ C und s der für ¬(A ⇒ B) ist. Wir sehen schnell, dass t und s die Form ∨ ¬ und ⇒ ⇒ C A A B B haben, deswegen wird F durch den Baum ⇔ ∨ ¬ ⇒ A C B ⇒ A B dargestellt. Bemerkung 4.11. Der Algorithmus NNF schiebt die ¬-Knoten nach unten bis sie nur vor den Blättern stehen. Dies illustrieren wir auf dem oberen Beispiel: erst müssen wir X ⇒ Y ersetzen ∧ ∨ ¬ ∨ B C ¬ B A ∨ ¬ A 21 Jetzt wird im rechten Unterbaum ¬∨ durch die De Morgansche Regel Umgewandelt: ∧ ∨ ∨ ∧ C ¬ B ¬ ¬ B ¬ A A endlich wird ¬¬ entfernt: ∨ ∨ ∨ B ∧ ¬ c ¬ A B A 4.iii Konjunktive Normalform Definition 4.12. Ein Literal ist eine atomare Aussage oder ihre Negation. Wir sprechen auch von positiven Literalen A oder negativen Literalen ¬A (A atomar). Definition 4.13. Eine Disjunktion von Literalen heißt Klausel. Beispiel 4.14. (a) Die Formel A∨A∨¬B ∨C ist eine Klausel. Sie ist äquivalent zur kürzeren Formel A ∨ ¬B ∨ C, die auch eine Klausel ist. W (2) Für n atomare Aussagen X1 , . . . , Xn ist ni=1 Xi eine Klausel. Ihr Wert ist 1 in genau den Modellen wo es einen Index i = 1, . . . , n mit Xi wahr gibt. (3) Der Fall n = 0 in (2) ergibt die leere Klausel“. Ihr Wert ist nie 1 weil ” es keinen Index i mit Xi wahr gibt – dann sehen wir, dass die Absurdität ⊥ diese leere Klausel ist. Es wird also ⊥ auch als eine Klausel genommen werden. 22 Bemerkung 4.15. Die Formeln, die die Form F1 ∧ . . . ∧ Fn von Konjunktion von Klauseln haben, sind übersichtlicher“ als die allgemeinen Formeln: der Wert in einem ” Modell ist wahr genau wenn alle Klauseln Fi wahr sind. Und dies bedeutet dass für jedes i = 1, . . . , n ein positives Literal A in Fi steht, wobei α(A) = 1, oder ein negatives, ¬A, wbei α(A) = 0. Beispiel 4.16. Die Formel (B ∧ ¬A ∧ C) ∨ (¬A ∧ ¬B) wollen wir als Konjunktion von Klauseln darstellen. Dazu benutzten wir die Distributivgesetze: (B ∧ ¬A ∧ C) ∨ (¬A ∧ ¬B) ≡((B ∧ ¬A ∧ C) ∨ ¬A) ∧ ((B ∧ ¬A ∧ C) ∨ ¬B) ≡(B ∨ ¬A) ∧ (¬A ∨ ¬A) ∧ (C ∨ ¬A) ∧ (B ∨ ¬B) ∧ (A ∨ ¬B) ∧ (C ∨ ¬B) ≡(B ∨ ¬A) ∧ ¬A ∧ (C ∨ ¬A) ∧ (A ∨ ¬B) ∧ (C ∨ ¬B) Definition 4.17. Eine Konjunktive Normalform ( KNF) ist eine Konjunktion von Klauseln. Die letzte Zeile des obigen Beispiels ist also bereits eine KNF. Wir zeigen jetzt einen Algorithmus, der die KNF berechnet. Der Kern liegt in der Benutzung des Distributivgesetzes. Wir formulieren erst diesen Kern und dann wenden wir es in unserem Algorithmus an: Satz 4.18. Falls F eine KNF mit Klauseln F1 , . . . , Fn ist und G eine KNF mit Klauseln G1 , . . . , Gk , ist F ∨ G äquivalent zur KNF mit Klauseln Fi ∨ Gj für i = 1, . . . , n und j = 1, . . . , k. Beweis. Es gilt, aufgrund des Distributivgesetzes: F ∨G=( n ^ Fi ) ∨ G ≡ i=1 n ^ (Fi ∨ G) i=1 Für jedes i berechnen wir analog Fi ∨ G ≡ Fi ∨ ( k ^ Gj ) ≡ j=1 n ^ (Fi ∨ G) j=1 Daraus folgt: F ∨G≡ n ^ (Fi ∨ G) ≡ i=1 n ^ k ^ (Fi ∨ Gj ) i=1 j=1 Die letzte Formel ist eine KNF und weil die Formeln Fi und Gj Klauseln sind ist auch Fi ∨ Gj eine Klausel. Algorithmus 4.19 (KNF). Eingabe: Eine Formel A in NNF Ausgabe: Eine KNF, äquivalent zu A, bezeichnet als KNF(A) Wieder ein rekursiver Algorithmus, der per Strukturinduktion beschrieben wird: 23 1. A atomar: wir setzen KNF(A) := A 2. A = B1 ∧ B2 wir setzen KNF(A) := KNF(B1 ) ∧ KNF(B2 ) 3. A = B1 ∨ B2 wobei wir schon zwei Ergebnisse unseres Algorithmus berechnet haben: KNF(B1 ) = C1 ∧ . . . Cn und KNF(B2 ) = D1 ∧ . . . ∧ Dk Dann setzen wir KNF(B1 ∨ B2 := n ^ k ^ (Ci ∨ Dj ) i=1 j=1 4. A = ¬B. Hier muss B atomar sein, da A eine NNF ist, und wir setzen KNF(¬B) := ¬B. Satz 4.20. Der Algorithmus KNF ist korrekt: für jede Formel A berechnen wir in endlich vielen Schritte eine KNF, die zu A äquivalent ist. Der Beweis hat dieselbe Struktur wie der von Satz 4.8. Der einzige nichttriviale Schritt ist zu beweisen, dass für A = B1 ∨ B2 die Äquivalenz KNF(A) ≡ A gilt. Dies folgt aus Satz 4.17. Beispiel 4.21. Die KNF der Formel A ⇔ (B ⇒ ¬C ∧ A) berechnen wir in 3 Schritten: a) ⇔ und ⇒ ersetzt werden: (A ∧ ((¬(C ∧ A) ∨ ¬B)) ∨ (¬A ∧ ¬((C ∧ A) ∨ ¬B)) b) Algorithmus NNF ergibt F ≡ (A ∧ ((¬C ∨ ¬A) ∨ ¬B)) ∨ (¬A ∧ ((C ∨ ¬A) ∧ B)) c) Algorithmus KNF wird angewendet: hier haben wir eine Disjunktion zweier KNF: F ≡ (A ∧ (¬C ∨ ¬A ∨ ¬B)) ∨ (¬A ∧ C ∧ ¬A ∧ B) und wir brauchen nur Satz 4.17 anzuwenden: KNF(F ) = (A ∨ ¬A) ∧ (A ∨ C) ∧ (A ∨ ¬A) ∧ (A ∨ B) ∧ (¬C ∨ ¬A ∨ ¬B ∨ ¬A) ∧ (¬C ∨ ¬A ∨ ¬B ∨ C) ∧ (¬C ∨ ¬A ∨ ¬B ∨ ¬A) ∧ (¬C ∨ ¬A ∨ ¬B ∨ B) 24 Beispiel 4.22. Für G2 = (A1 ∧ B1 ) ∨ (A2 ∧ B2 ) ist KNF(G2 ) durch Satz 6.6 berechnet (d.h. nur das Distributivgesetz wird benutzt): KNF(G2 ) = (A1 ∨ A2 ) ∧ (A1 ∨ B2 ) ∧ (B1 ∨ A2 ) ∧ (B1 ∨ B2 ) Analog: für die Formel Gn = (A1 ∧ B1 ) ∨ (A2 ∧ B2 ) ∨ . . . ∨ (An ∧ Bn ) berechnen wir KNF(G): als Ergebnis bekommen wir die Konjunktion aller Klauseln des Typs A1 ∨ A2 ∨ . . . An B1 ∨ A2 ∨ . . . An .. . B1 ∨ B2 ∨ . . . Bn wobei wir immer n Atome mit Indexen 1, . . . , n und Namen A oder B haben. Bemerkung 4.23. Die Formel Gn hat Länge 6n − 1 = O(n). Aber KNF(Gn ) hat 2n Klauseln, da für jeden Index 1, . . . , n die Wahl zwischen A oder B vorkommt. Deswegen liegt die Länge von KNF(Gn ) in O(2n ). Dies bedeutet, dass der Algorithmus KNF nicht effizient ist: für Formeln der Länge 200 gibt es keine Chance die KNF immer zu berechnen. In der Tat: die Lichtgeschwindigkeit ist 3 · 108 /m sec und der Durchschnitt eines −15 Protons ist 10 m dann hätte ein Rechner, der jede Operation in der Zeit erledigt, die das Licht braucht um ein Proton umzuwandeln, 3 · 1023 Operationen pro Sekunde. Da 10 < 24 , ist 3 · 1023 < 2100 . Deswegen, falls in einem Algorithmus 2200 Schritte braucht, müsste auch ein so schneller Rechner wenigstens 2100 Sekunden rechnen - dies ist aber mehr, als die Zeit (3 · 1017 Sekunden) seit dem Urknall. 4.iv Disjunktive Normalform Definition 4.24. Eine disjunktive Normalform (DNF) ist eine Disjunktion von Formeln der Form X1 ∧ X2 ∧ . . . ∧ Xn wobei Xi Literale sind. Beispiel 4.25. Die Formel C ∧ A ⇒ (B ∧ ¬C) bringen wir in disjunktive Normalform: C ∧ A ⇒ (B ∧ ¬C) =(B ∧ ¬C) ∨ ¬(C ∧ A) = (B ∧ ¬C) ∨ ¬C ∨ ¬A Algorithmus 4.26. der Jede Formel G in eine Disjunktive Normalform bringt, ist einfach: 1. Wir berechnen KNF für ¬G 25 2. Für jede Klausel Ai von KNF(¬G) ist ¬Ai äquivalent zur Konjunktion von Literalen: die Literale von Ai werden negiert. 3. Es gilt: G ≡ ¬KNF(¬G) ≡ ¬(A1 ∧ . . . ∧ An ) ≡ ¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An Die letzte Formel ist schon eine disjunktive Normalform. Bemerkung 4.27. Für Klauseln X1 ∨ . . . ∨ Xn benutzt man oft die mengentheoretische Notation {X1 , . . . , Xn } (in der die wiederholten Literale nicht mehr wiederholt werden dies ändert nicht den Wahrheitswert). Dann ist jede KNF eine Liste endlicher Mengen. Z.B. die KNF für G2 in Beispiel 6.11 ist die Liste {A1 , A2 }, {A1 , B2 }, {B1 , A2 }, {B1 , B2 } Die leere Klausel ⊥ wird dann mit ∅ bezeichnet. 26 5. Resolutionsmethode der Aussagenlogik Dieses Kapitel stellt einen Algorithmus vor, der für jede Formel ihre Erfüllbarkeit berechnet: die Resolutionsmethode. Die Idee basiert auf den folgenden Beobachtungen: Bemerkung 5.1. Gegeben ist eine KNF, F . (a) Falls F die 1-Literal-Klauseln X und auch ¬X enthält, ist F unerfüllbar. (b) Falls F die Klauseln A ∨ X und B ∨ ¬X enthält, dürfen wir die Klausel A ∨ B hinzufügen – ohne dass sich die Erfüllbarkeit ändert. Dies wird später als Resolutionslemma“ bewiesen. ” Eine Wiederholung von (a) und (b) ergibt die Entscheidung, ob F erfüllbar ist. Dies ermöglicht einen Algorithmus, der im Folgenden im Detail vorgestellt und überprüft wird. Notationelle Konvention 5.2. 1. Die Negation eines Literals ist immer ein Literal: hier wird ¬¬A mit A identifiziert. Wir nehmen an, dass Literale in einer Klausel nicht wiederholt werdenm denn X ∨ X ∨ A ist zu X ∨ A äquivalent. 2. Falls die Klausel K das Literal X enthält, bezeichnet K\X jene Klausel, die durch Entfernung von X entsteht. Beispiel 5.3. Für K = {A, ¬B} gilt K\A = {¬B} und K\¬B = {A}. Für K = {A, ¬B, C} ist beispielsweise K\¬B gleich {A, C}; aber K\¬A gibt es nicht. Endlich für K = {A} gilt K\A =⊥ 27 Definition 5.4. Eine Resolvente zweier Klauseln K und K 0 ist eine Klausel der Form (K\X) ∪ (K 0 \¬X) wobei X in K liegt und ¬X in K 0 . Mehr detailliert: Falls zwei Klauseln gegeben werden K := {K1 , . . . , Kn } und K 0 := 0 {K10 , . . . , Km } die ein Literal so enthalten, dass Ki = X und Kj0 = ¬X, dann ist die Klausel 0 0 0 } , . . . , Km , Kj+1 {K1 , . . . , Ki−1 , Ki+1 , . . . , Kn , K10 , . . . , Kj−1 eine Resolvente. Notationelle Konvention 5.5. Wir benutzen für Resolventen die folgende BaumNotation K K0 L falls L eine Resolution von K und K 0 ist. Beispiel 5.6. (a) {A} und {¬A} haben die Resolvente {A} {¬A} ∅ (b) {A, B} und {C, ¬B} haben die Resolvente {A, C}. {A, B} {C, ¬B} {A, C} (c) {A, B, ¬C} und {A, ¬B, C} haben zwei Resolventen {A, B, ¬B} und {A, ¬C, C}. Aufpassen! Zur Bildung der Resolventen wird immer nur ein Literal benutzt. Daher ist A keine Resolvente von (c). Satz 5.7. Resolutionslemma Eine Formel F in KNF ist äquivalent zu F ∧ L für jede Resolvente L zweier Klauseln von F . 28 Beweis. Wir müssen zeigen, dass für jede passende Belegung α gilt α b(F ) = α b(F ∧ L) Seien K mit Literal X und K 0 mit Literal ¬X Klauseln für die L = (K\X) ∪ (K 0 \¬X). Dann ergeben sich zwei Fälle: α b(F ) = 1 Dann gilt α b(K) = 1 und α b(K 0 ) = 1. Wir müssen zeigen, dass α b(L) = 1. Falls α(X) = 0, dann folgt aus α b(K) = 1, dass α b(K\X) = 1, denn K muss ein wahres Literal enthalten und dies ist nicht X. Falls α(X) = 1 gilt α b(K 0 \¬X) = 1, denn ¬X kann nicht das wahre Literal von K 0 sein. In beiden Fällen gilt: α b(L) = α b(K\X) ∨ α b(K 0 \¬X) = 1 α b(F ) = 0 Dann α b(F ∧ L) = α b(F ) ∧ α b(L) = 0. Algorithmus 5.8. Die Resolutionsmethode testet Erfüllbarkeit einer Formel F in KNF. Wir berechnen die Resolventen und die Resolventen von Resolventen usw. bis entweder die leere Klausel als Resolvente vorkommt: Die Ausgabe ist F ist un” erfüllbar“ oder keine leere Resolvente vorkommen und keine weiteren Resolventen mehr existieren: Die Ausgabe ist F ist erfüllbar.“ ” Beispiel 5.9. (P ∨ R) ∧ (Q ∨ ¬R) ∧ ¬Q ∧ (¬P ∨ T ) ∧ ¬S ∧ (S ∨ ¬T ) Wir benutzen die Baumnotation 5.5: {P, R} {Q, ¬R} {P, Q} {¬P, T } {¬Q} {S, ¬T } {¬P, S} {P } {¬S} {¬P } ∅ 29 Am binären Graphen kann die Entwicklung der Resolutionsmethode verfolgt werden: die Blätter sind die Klauseln der gegebenen Formel, die Ebene darunter gibt Resolventen von jeweils zwei Blättern an, usw. Im ganzen Baum gilt, dass jeder innere Knoten die Resolvente seiner zwei Kinder darstellt. Beispiel 5.10. F := (A ∨ B ∨ ¬C) ∧ (¬A ∨ B ∨ ¬C) ∧ (A ∨ ¬B ∨ ¬D) Die Resolutionsmethode ergibt folgende Resolventen: im 1. Schritt: B ∨ ¬C, B ∨ ¬C ∨ ¬B ∨ ¬D, A ∨ ¬C ∨ ¬D, ¬A ∨ ¬C ∨ A ∨ ¬D im 2. Schritt: keine weiteren Resolventen Damit wurde F auf erfüllbar getestet. Ist die Formel es wirklich? Satz 5.11. Die Resolutionsmethode ist korrekt: Eine Formel ist genau dann erfüllbar wenn nach endlich vielen Schritten der Algorithmus endet und die Ausgabe erfüllbar“ ” erfolgt. Beweis. (a) Wenn die Ausgabe unerfüllbar“ ist, zeigen wir, dass F nicht erfüllbar ist. ” Nach dem Resolutionslemma 5.7 ist F äquivalent zu der Konjunktion F := F ∧ L von F mit allen Resolventen und Resolventen von Resolventen. Falls dabei F die Klauseln X und ¬X besitzt, ist F unerfüllbar und deswegen ist es dann auch F . (b) Wenn die Ausgabe erfüllbar“ ist, beweisen wir, die Erfüllbarkeit von F per Induk” tion über die Anzahl k = 1, 2, 3, . . . von Literalen, die F enthält: Induktionsanfang k = 1 Dann ist F = X, F = ¬X oder F = X ∨ ¬X. Die letzte Variante ist nicht möglich, weil sonst die Ausgabe unerfüllbar“ gelautet hätte. Die anderen beiden sind eindeutig ” erfüllbar, indem α(X) je nach Fehlen oder Vorkommen der Negation auf 1 oder 0 gesetzt wird. Induktionsschritt k > 1 Wir nehmen als Induktionsvorraussetzung an, dass alle Formeln mit 1 bis k−1 Literalen die gewünschte Eigenschaft erfüllbar zu sein, wenn sie darauf getestet wurden, haben. Wir wählen ein Literal X in F und sortieren die KNF folgendermaßen: F = FX ∧ F¬X ∧ FO wobei FX die Konjunktion aller Klauseln ist, die X enthalten F¬X die Konjunktion aller Klauseln ist, die ¬X enthalten und FO die Konjunktion aller Klauseln ist, die weder X noch ¬X enthalten 30 Wir bezeichnen mit FeX die Formel, die aus FX entsteht, indem in allen Klauseln das Literal X gestrichen wird. Wir beweisen, dass entweder F erfüllbar ist, oder die Resolutionsmethode die Resolvente X ergibt. (i) Nehmen wir an die Formel F̃X ∧ FO ist erfüllbar. Dann ist auch F erfüllbar. In der Tat, für jede Belegung α die ein Modell der Formel F̃X ∧ FO die den Wert 1 ergibt, können wir den Wert von X beliebig wählen: Auch so, dass α(X) = 0. Der Wert von F̃X ∧ FO bleibt davon unberührt α̃(F̃X ∧ FO ) = 1, weil X darin nicht vorkommt. Es gilt dann aber α b(¬X) = 1 weshalb α b(F¬X ) = 1, denn jede Klausel in F¬X enthält ¬X und hat damit den Wert 1. Es gilt dann auch α b(FX ) = 1, denn alle Klauseln in FX enthalten wegen α b(FeX ∧ FO ) = 1 ein Literal Y mit α b(Y ) = 1, das von X unterschieden ist. Darum hat F = FX ∧ F¬X ∧ F0 den Wert 1. (ii) Nehmen wir dagegen an, dass FeX ∧ FO unerfüllbar ist. Wir beweisen, dass die Resolutionsmethode die Resolvente X liefert. Da FeX ∧ FO nur k − 1 Literale besitzt, folgt aus der Induktionsvoraussetzung, dass die Anwendung der Resolutionsmethode auf FeX ∧ FO Resolventen Y und ¬Y liefert, wobei Y ein Literal ist, das offensichtlich von X und ¬X unterschieden ist. Wir wenden nun die Resolutionsmethode auf F an und benutzen dabei dieselbe Reihenfolge der Klauseln wie vorher für FeX ∧ FO . Die Klauseln sind nun immer - entweder dieselben wie vorher - oder enthalten zusätzlich das Literal X Daher erhalten wir, weil FeX ∧ FO ja die Resolventen Y oder ¬Y ergeben hatte, am Ende Resolventen Y oder Y ∨ X sowie ¬Y oder ¬Y ∨ X Der Fall der Resolvente Y sowie ¬Y ist nicht möglich, da F das Ergebnis erfüllbar“ ” brachte. Die anderen Fälle X ∨ Y und ¬Y oder X ∨ Y und X ∨ ¬Y oder Y und X ∨ ¬Y ergeben im nächsten Schritt die Resolvente X. Daher ist entweder FeX ∧ FO erfüllbar – und damit auch F – oder X ist eine der Resolventen, die die Resolutionsmethode für F ergibt. Nun verwenden wir analog die Formel F¬X anstelle von FX . Wir bekommen nach dem Entfernen von X die Formel Fe¬X . Entweder ist nun Fe¬X ∧ FO erfüllbar und damit auch F . Oder das Literal ¬X ist aus demselben Grund wie oben eine Resolvente von F . 31 Da aber X und ¬X nicht zugleich Resolventen sein können, ist F tatsächlich erfüllbar. Zusammenfassung Die Resolutionsmethode ist ein Algorithmus, der entscheidet, ob eine Formel erfüllbar ist. (Er löst das SAT Problem.) Dabei wird die Formel in KNF umgeformt und anschließend rekursiv um Resolventen vervollständigt, bis sie um alle möglichen Resolventen ergänzt wurde. Dann ist dieser Test vollständig: Enthält die Formel am Ende nicht die leere Klausel, ist sie erfüllbar. Die Resolutionsmethode ist allerdings nicht effizient. Bei Formeln der Länge O(n) kann bereits die Erzeugung der KNF Zeit von O(2n ) dauern. Aber selbst bei Formeln, die bereits als KNF vorliegen, hat die Resolutionsmethode exponentielle Zeitkomplexität. In Kapitel 8 zeigen wir, dass die Resoltionsmethode für Hornformeln effizient ist. 32 6. Folgerungen Definition 6.1. (1) Eine Formel F folgt aus der Formel G, in Symbolen G |= F, wenn jede zu F und G passende Belegung, die G wahr macht, macht auf F wahr. (2) Allgemein, gegeben eine Menge Γ von Formeln, ist F eine Folgerung aus Γ, Γ |= F wenn F unter jeder passenden Belegung wahr ist, unter der alle Formeln aus Γ wahr sind. Beispiel 6.2. (1) A ∧ B |= A. (2) Wenn die Menge Γ leer ist, ist F eine Folgerung genau wenn sie eine Tautologie ist. Deswegen benutzt man für Tautologien die Notation |= F Notation 6.3. Für endliche Mengen Γ = {G1 , . . . , Gn } lässt man die Mengenklammern weg und schreibt G1 , . . . , Gn |= F. Die Ausdrücke Γ |= F heißen Sequenzen. Beispiel 6.4. (a) A, B |= A ∧ B. (b) A ⇒ B, A |= B (c) Wenn es regnet, gehe ich ins Kino. Die können wir als Implikation R ⇒ K darstellen. Gilt auch R ⇐ K? Nein: Jemand, der den Satz behauptet hat, kann trotzdem bei Regen zu Hause bleiben – er hat einfach gelogen. Der nächste Satz bedeutet, dass zwischen den Symbolen ⇒ und |= ist eine ähnliche Beziehung wie zwischen ⇔ und ≡: Satz 6.5. Es gilt A |= F gdw A ⇒ F eine Tautologie ist. 33 Beweis: Die Implikation A ⇒ F ist eine Tautologie wenn für jede passende Belegung α für A und F ist α b(F ) = 1 oder α b(A) = 0. Dies sagt genau, dass jede passende Belegung α mit α b(A) = 1 erfüllt α b(F ) = 1. Satz 6.6. Die folgenden drei Aussagen sind äquivalent. (a) A, B |= F (b) A ∧ B |= F und (c) A |= B ⇒ F Beweis: (b) besagt, dass jede für A, B, F passende Belegung α mit α b(A ∧ B) = 1 erfüllt α b(F ). \ ∧ B) = 1) bedeutet, dass A und B wahr sind. Dies ist äquivalent zu (b), denn alpha(A (c) besagt, dass jede für A, B, F passende Belegung α mit α b(A) = 1 erfüllt, wenn α b(B) = 1, dann α b(F ) = 1. Dies ist auch zu (a) äquivalent. V Satz 6.7. Es gilt C1 , . . . , Cn |= F gdw ni=1 Ci |= F . Beweis: V Durch Induktion in n. Falls n = 0 ist ni=1 Ci = > und es gilt: F ist eine Tautologie gdw > |= F . Induktionsschritt: wir setzen A= n ^ Ci und B = Cn+1 i=1 Aus Satz 6.6 wissen wir, dass n+1 ^ i=1 Ci |= F gdw n ^ Ci |= Cn+1 ⇒ F i=1 Nach Induktionsvoraussetzung ist dies äquivalent zu C1 , . . . , Cn |= Cn+1 ⇒ F Dies besagt, dass für jede zu Ci und F passende Belegung α mit C1 , . . . , Cn wahr gilt: ist Cn+1 wahr, so ist auch F wahr. Und das ist genau C1 , . . . , Cn+1 |= F . Beispiel 6.8. Formen wir die Menge Γ aller Aussagen, die nur ∨ oder ∧ als Junktoren enthalten. Ist die Sequenz Γ |= F ⇒ G (F, G Atome) gültig? Ja, denn jede Belegung, die G wahr macht, macht F ⇒ G wahr. Und falls eine Belegung aller Formeln aus Γ wahr macht, macht sie auch G wahr. 34 Für die Menge Γ aller Literale ist die Sequenz Γ |=⊥ gültig? Ja, weil keine Belegung alle Formeln aus Γ wahr macht: für jedes Atom A enthält Γ die Formeln A sowie ¬A! Im vorigen Beispiel ist Γ eine unendliche Menge. Wir wollen jetzt beweisen, dass die Gültigkeit einer Sequenz Γ |= F mit endlichen Untermengen von Γ immer überprüft werden kann. Bemerkung 6.9. Für jede Formel G in Γ ist es klar, dass wenn G |= F gültig ist, auch Γ |= F gültig ist. Denn eine Belegung, die alle Formeln aus Γ wahr macht, macht G wahr und somit auch F wahr. Allgemeiner, gegeben G1 , . . . , Gn in Γ dann wenn G1 , . . . , Gn |= F gültig ist, ist Γ |= F gültig. Hier ist eine Umkehrung: Kompaktheitssatz 6.10. Wenn Γ |= F gibt es eine endliche Menge G1 , . . . , Gn von Formeln aus Γ so dass G1 , . . . , Gn |= F . Beweis. (a) Nehmen wir erst an, dass alle Formeln aus Γ ∪ {F } nur k Atome k enthalten. Nach Bemerkung 3.5 gibt es dann eine Menge von n ≤ 22 Formeln Gi in Γ zu denen alle anderen äquivalent sind. Dann ist aber G1 , . . . , Gn |= F gültig: jede Belegung, die G1 , . . . , Gn wahr macht, macht auch alle Formeln in Γ wahr und dann ist F wahr. (b) Sei A1 , A2 A3 . . . eine unendliche Menge aller Atome in Formeln aus Γ ∪ {F }. Wir benutzen Beweis durch Widerspruch: angenommen, dass für jede endliche Menge Γ0 ⊆ Γ die Sequenz Γ0 |= F ungültig ist, beweisen wir, dass Γ |= F auch ungültig ist. Bezeichnen wir durch Γk die Menge alle Formeln aus Γ, die nur Atome aus {A1 , . . . , Ak } benutzen. Aus Fall (a) wissen wir, dass die Sequenz Γk |= F nicht gültig ist. Dies bedeutet, dass es eine Belegung αk der Atome A1 , . . . , Ak gibt mit α bk (F ) = 0 und α b(G) = 1 für alle G ∈ Γk Wir definieren eine Belegung α aller Variablen A1 , A2 , A3 . . . die beweist, dass Γ |= F ungültig ist. Wir haben die obere Liste von Belegungen α1 , α2 , α3 . . .. Wir setzen erst 1 falls αk (A1 ) = 1 für unendlich viele Indexe k α(A1 ) := 0 sonst Jetzt entfernen wir alle Belegungen αk mit α(A1 ) 6= αk (A1 ) aus unserer Liste von Belegungen. Es bleiben unendlich viele Belegungen αk und wir setzen 1 falls αk (A2 ) = 1 für unendlich viele Indexe k α(A2 ) := 0 sonst 35 usw. Die Belegung α hat die folgende Eigenschaft: für jede Zahl n sind die Werte α(A1 ), . . . , α(An ) gleich denen von αk (A1 ), . . . , αk (An ), für unendlich viele Indexe k. Die Formel F enthält nur endlich viele Atome. Es gibt deswegen n so dass alle diese Atome in {A1 , . . . , An } liegen. Wir nehmen ein k ≥ n mit α(Ai ) = αk (Ai ) für i = 1, . . . , n. Dann gilt α b(F ) = α bk (F ). Aus der Wahl der Belegung αk wissen wir dann, dass dann α b(F ) = 0. Und für jede Formel G in Γ gilt α b(G) = 1 denn auch G enthält nur endlich viele Atome und es gibt deswegen einen Index l mit α b(G) = α bl (G) = 1. Die Belegung α b macht alle Formeln in Γ wahr und F falsch. Dies ist der erwünschte Widerspruch zur Gültigkeit von Γ |= F . 36 7. Natürliche Deduktion Die Natürliche Deduktion ist eine Methode zu testen, ob eine Formel eine Tautologie ist. Und im allgemeinen, ob eine gegebene Sequenz Γ |= F gültig ist. In der Natürliche Deduktion benutzt man die Junktoren ∧, ∨, ¬, ⇒ und ⊥. Nur ⇔ wird durch (A ⇒ B) ∧ (B ⇒ A) ersetzt, bevor wir mit der Prüfung beginnen. Die Regeln der natürlichen Deduktion haben die Form P 1 P2 P 1 P2 P3 P1 oder oder Q Q Q wobei Pi die Prämissen der Regel sind und Q die Folgerung. Die Regel P1 Q bedeutet, dass gegeben eine Sequenz Γ |= F , falls P1 in Γ liegt, Γ |= Q gültig ist. Analog mit den anderen Formen der Regel: falls alle Prämissen in Γ liegen, ist Γ |= Q gültig. 7.i Regeln für die Konjunktion Für die Konjunktion können wir feststellen, dass wenn G und H in Γ liegen, dann ist die Sequenz Γ |= G ∧ H gültig. Dies schreiben wir als die Regel: G H G∧H Oberhalb der Linie steht das, was vor der Anwendung der Regel als Formeln bewiesen sein muss, also die Regel-Prämissen. Unterhalb der Linie steht die RegelFolgerung, also das, was wir nach Anwendung der Regel als bewiesen annehmen dürfen. Diese Regel, nennen wir Introduktion der Konjunktion oder kürzer ∧i. 37 Wir benötigen jedoch auch eine Regel, um ∧ streichen zu können. Wir nennen sie die Elimination der Konjunktion bzw. ∧e und sie sieht so aus: G∧H G Die behauptet, dass falls G ∧ H in Γ liegt, die Sequenz Γ |= G gültig ist. Da ∧ aussagt, dass beide Seiten wahr sind, benötigen wir noch die folgende Variante der Regel: G∧H H Wir bezeichnen beide Varianten mit ∧e. Definition 7.1. Die Regeln der Konjunktion lauten ∧i G H G∧H und ∧e G∧H G ∧e G∧H H und Mit diesen ersten Regeln der Natürlichen Deduktion lässt sich bereits etwas beweisen. Beispiel 7.2. Wir demonstrieren das Verfahren an der Assoziativität der Konjunktion. Wir wollen beweisen, dass die Sequenz F ∧ (G ∧ H) |= (F ∧ G) ∧ H gültig ist. Der Beweis sieht so aus: F ∧ (G ∧ H) Prämisse der Sequenz F ∧e, Zeile 1 G∧H ∧e, Zeile 1 G ∧e, Zeile 3 H ∧e, Zeile 3 F ∧G ∧i, Zeilen 2 und 4 (F ∧ G) ∧ H ∧i, Zeilen 6 und 5 Wie in diesem Beispiel, werden zu jeder Regel immer auch die Zeilen angegeben, in denen man die Regel-Prämissen findet. Im Folgenden lassen wir das Wort Zeile“ jedoch ” weg. Beispiel 7.3. Als weiteres Beispiel soll die Kommutativität von ∧ bewiesen werden: H ∧ G |= G ∧ H 38 Beweis. H ∧G Prämisse H ∧e, 1 G ∧e, 1 G∧H ∧i, 3, 2 7.ii Regeln der Implikation Auch für die Implikation haben wir zwei Regeln: die Elimination, die uns erlaubt aus Γ und G ⇒ H etwas abzuleiten, und die Introduktion, die umgekehrt aus Γ die Formel G ⇒ H ableitet. Die erste Regel ist ziemlich klar: G⇒H H G Diese Regel heißt Elimination der Implikaton, oder modus ponens. Sie besagt, dass falls in einer Menge Γ von Formeln G ⇒ H sowie G liegen, dann ist die Sequenz Γ |= H gültig. Die Introduktion der Implikation wollen wir erst auf einem Beispiel illustrieren: Wir haben einen Beweis dass aus H ∧ G die Formel G ∧ H folgt in Beispiel 7.3 präsentiert. Dies erlaubt uns zu behaupten, dass die Implikation H ∧G⇒G∧H eine (bewiesene) Tautologie ist. Hier ist die allgemeine Form der Introduktion: G .. . H ⇒i G⇒H Diese Regel sagt: falls ein Beweis, dass aus der Formel G die Formel H folgt vorliegt, ist dadurch die Implikation G ⇒ H bewiesen. Der Kasten über der horizontalen Linie steht immer für einen formalen Beweis, wobei die erste Zeile, die sogenannte Kasten-Prämisse, keine Begründung braucht. Aber G darf nicht außerhalb des Kastens benutzt werden. Definition 7.4. Die Regeln der Implikation lauten: ⇒e G⇒H G H 39 und G .. . ⇒i H G⇒H Beispiel 7.5. Wir beweisen die Gültigkeit der Sequenz F ⇒ G, F ⇒ H |= F ⇒ G ∧ H Beweis: F ⇒G Prämisse F ⇒H Prämisse F Kasten-Prämisse G ⇒e, 1, 3 H ⇒e, 2, 3 G∧H ∧i, 4, 5 F ⇒ G∧H ⇒i, 3 − 6 Beachten sie, dass in der letzten Zeile neben ⇒i alle Zeilen angegeben werden, über die sich der Kasten erstreckt. Hinweis: • Keine Zeile, die in einem Kasten liegt, darf ausserhalb des Kastens (als begründung) benutzt werden. • Kästen dürfen hierarchisch verschachtelt werden. Innerhalb eines Kastens darf ein anderer eröffnet werden, dieser muss allerdings vor dem äußeren wieder geschlossen werden. D.h. die Linien der Kästen dürfen sich nicht kreuzen. Beispiel 7.6. F ∧ G ⇒ H |= F ⇒ (G ⇒ H) 40 Beweis. F ∧G⇒H Prämisse F Kasten-Prämisse G Kasten-Prämisse F ∧G ∧i, 2, 3 H ⇒e, 1, 4 G⇒H ⇒i, 3 − 5 F ⇒ (G ⇒ H) ⇒i, 2 − 6 Beispiel 7.7. Wir wollen die Gültigkeit der Sequenz F ⇒ G ∧ H |= (H ⇒ G) ⇒ F beweisen: F ⇒G∧H Prämisse H⇒G Kasten-Prämisse ??? F Wie kann man von H ⇒ G zu F gelangen? Das scheint nicht zu funktionieren. In der Tat ist die Sequenz nicht gültig. Dies zeigt die Belegung α(F ) = 0, α(G) = 1 = α(H), für die gilt, dass α b(F ⇒ G ∧ H) = 1 aber α b(H ⇒ G) = 0. Daher immer zuerst aufpassen, ob man nicht versucht, eine ungültige Sequenz zu beweisen. 7.iii Formale Beweise Achtung: Wir haben zwei Typen von Beweisen angetroffen: (a) Die üblichen mathematischen Beweise, wie für Satz ??, die den Leser überzeugen sollen, dass etwas gilt. (b) Formale Beweise der Natürlichen Deduktion, die die Gültigkeit einer Sequenz nachweisen. Dies passiert dabei so streng, dass ein Rechner dies nachvollziehen kann. Ein formaler Beweis der Sequenz Γ |= F ist eine durchnummerierte Liste von Formeln, wobei F in der letzten Zeile steht. Die Liste ist in hierarchische organisierten Kästen dargestellt, so dass die letze Zeile in keinem Kasten steht. In jeder Zeile des Beweises steht eine Formel, die 41 • in Γ liegt (Prämissen), oder • die erste Zeile eines Kastens formt (Kasten-Prämissen), oder • eine Begründung trägt, wie diese Zeile aus den davorliegenden durch Anwendung der Regeln folgt. Bezieht sich die Begründung einer Zeile i auf eine Zeile, die in einem Kasten liegt, dann muss auch die Zeile i in diesem Kasten liegen. 7.iv Regeln der Disjunktion Umgekehrt als im Fall der Implikation ist die Introduktion der Disjunktion klar, aber die Elimination etwas schwieriger. Wir wissen, dass Γ |= G ∨ H gültig ist wenn G oder Hin Γ liegen. Die ergibt die Introduktionsregel H G oder G∨H G∨H In der Elimination nehmen wir an, dass Γ die Formel G∨H enthält. Für welche Formeln K können wir behaupten, dass die Sequenz Γ |= K gültig ist? Dazu reicht es, einen Beweis von K aufgrund von G zu besitzen, sowie ein aufgrund von H. Symbolisch: ∨e G∨H G .. . H .. . K K K Definition 7.8. Die Regeln der Disjunktion sind: ∨i G G∨H ∨i H G∨H und und ∨e G∨H G .. . H .. . K K K Beispiel 7.9. Die Implikation G∧H ⇒G∨H 42 ist eine Tautologie. In der Tat, hier ist ein Beweis (ohne Prämissen): G∧H Kasten-Prämisse G ∨e, 1 G∨H ∨i, 2 G ∧ H ⇒ G ∨ H :=⇒ i1 − 3 Beispiel 7.10. Wir beweisen, dass ∨ kommutativ ist: G ∨ H |= H ∨ G G∨H H Kasten-Prämisse H ∨G ∨i, 2 G Kasten-Prämisse H ∨G ∨i, 4 H ∨G ∨e, 1, 4 − 5, 2 − 3 Beispiel 7.11. Wir beweisen eines der Distributivgesetze: F ∨ (G ∧ H) |= (F ∨ G) ∧ (F ∨ H) F ∨ (G ∧ H) Prämisse F Kasten-Prämisse F ∨G ∨i, 2 G∧H Kasten-Prämisse G ∧e, 4 F ∨G ∨i, 5 F ∨G ∨e, 1, 2 − 3, 4 − 6 F Kasten-Prämisse F ∨H ∨i, 8 G∧H Kasten-Prämisse H ∧e, 10 F ∨H ∨i, 11 F ∨H ∨e, 1, 8 − 9, 10 − 12 (F ∨ G) ∧ (F ∨ H) ∧i, 7, 13 43 7.v Regeln der Negation und Absurdität Die Introduktion der Negation ¬G ist simpel: wir nehmen an, dass es uns gelungen ist, aus G Absurdität (⊥) herzuleiten, dann ist Γ |= ¬G für jede Menge Γ in der G liegt gültig. Die Introduktionsregel lautet G .. . ⊥ ¬G Wird die Netagion eliminiert? Falls G sowie ¬G in Γ liegen, ist Γ unerfüllt und deswegen ist die Sequenz Γ |=⊥ gültig. Dies ergibt die Eliminationsregel G ¬G ⊥ Leider genügt dies nicht, um die doppelte Negation los zu werden: wir brauchen noch ¬¬G G Jetzt braucht ⊥ als Junktor auch Introduktion und Elimination. Um aber ⊥ herzuleiten, brauchen wir G und ¬G um eine Formel zu beweisen - mit anderen Worten ist die obere Eliminationsregel für ¬ gleichzeitig die Introduktionsregel für ⊥. (Wir bezeichnen diese Regel ¬e, aber die Bezeichnung ⊥ i wäre ebenso möglich.) Die Eliminationsregel für ⊥ besagt: falls ⊥ in Γ liegt, sind alle Sequenzen Γ |= K gültig. Kurz: ⊥ K Definition 7.12. Die Regeln für Negation und Absurdität lauten G .. . ⊥ ¬G ¬i ¬e ¬¬e und ⊥e ¬G G ⊥ ¬¬G G ⊥ G Die unterste Regel ⊥e sagt: aus Absurdität folgt beliebiges – was der Tautologie ⊥ ⇒ G entspricht. 44 Beispiel 7.13. Wir beweisen die Gültigkeit der Sequenz F ⇒ G |= ¬G ⇒ ¬F Beweis: F ⇒G Prämisse ¬G Kasten-Prämisse F Kasten-Prämisse G ⇒e, 1, 3 ⊥ ¬e, 4, 2 ¬F ¬i, 3 − 5 ¬G ⇒ ¬F ⇒i, 2 − 6 Der äußere Kasten dient der Regel ⇒i, der innere der Regel ¬i. Beispiel 7.14. Obwohl ¬¬e eine separate Regel ist, brauchen wir für ¬¬i keine eigene Regel, denn die Sequenz G |= ¬¬G können wir beweisen: G Prämisse ¬G Kasten-Prämisse ⊥ ¬e, 1, 2 ¬¬G ¬i, 2 − 3 Beispiel 7.15. Wir beweisen die Gültigkeit von ¬(G ∨ H) |= ¬G ∧ ¬H ¬(G ∨ H) Prämisse G Kasten-Prämisse G∨H ∨i, 2 ⊥ ¬e, 3, 1 ¬G ¬i2 − 4 H Kasten-Prämisse G∨H ∨i, 6 ⊥ ¬e, 7, 1 ¬H ¬e, 6 − 8 ¬G ∧ ¬H ∧i, 5, 9 45 Beispiel 7.16. Die de-Morgan-Regel |= ¬(G ∨ H) ⇔ ¬G ∧ ¬H kann in der Natürlichen Deduktion dadruch bewiesen werden, dass wir, neben Beispiel 7.15, auch die Gültigkeit von ¬G ∧ ¬H |= ¬(G ∨ H) beweisen: ¬G ∧ ¬H Prämisse G∨H Kasten-Prämisse G Kasten-Prämisse ¬G ∧e, 1 ⊥ ¬e, 3, 4 H Kasten-Prämisse ¬H ∧e, 1 ⊥ ¬e, 6, 7 ⊥ ∨e, 2, 3 − 5, 6 − 8 ¬(G ∨ H) Beispiel 7.17. Die Gültigkeit von ¬(F ∧ G) |= ¬F ∨ ¬G wird wie folgt bewiesen: ¬(F ∧ G) ¬(¬F ∨ ¬G) Prämisse .. . (Die 10 Zeilen aus Beispiel 7.15) ¬¬F ∧ ¬¬G ¬¬F ∧e, 12 F ¬¬e, 13 ¬¬G ∧e, 12 G ¬¬e, 15 F ∧G ∧i, 14, 16 ⊥ ¬e, 17, 1 ¬¬(¬F ∨ ¬G) ¬i, 2 − 18 ¬F ∨ ¬G ¬¬e, 19 46 Beispiel 7.18. Wir beweisen (F ∨ G) ∧ (F ∨ H) |= F ∨ (G ∧ H) (F ∨ G) ∧ (F ∨ H) Prämisse F ∨G ∧e, 1 F ∨H ∧e, 2 ¬(F ∨ (G ∧ H)) Kasten-Prämisse .. . (Die 10 Zeilen aus Beispiel 7.15) ¬F ∧ ¬(G ∧ H) ¬F ∧e, 14 ¬(G ∧ H) ∧e, 14 .. . (Die 20 Zeilen aus Beispiel 7.17) ¬G ∨ ¬H ¬G Kasten-Prämisse F Kasten-Prämisse G Kasten-Prämisse ⊥ ¬e, 39, 37 F ⊥e, 40 F ∨e, 2, 38, 39 − 41 ¬H Kasten-Prämisse F Kasten-Prämisse H Kasten-Prämisse ⊥ ¬e, 45, 43 F ⊥, 46 F ∨e, 3, 44, 45 − 47 F ∨e, 36, 37 − 41, 43 − 48 ⊥ ¬e, 49, 15 ¬¬(F ∨ (G ∧ H)) ¬i, 4 − 50 F ∨ (G ∧ H) ¬¬e, 51 7.vi Zusammenfassung Zusammenfassung der Regeln der Natürlichen Deduktion 47 Konjunktion Introduktion G H G∧H Elimination G∧H G und G∧H H G .. . H G⇒H G⇒H H Disjunktion G H und G∨H G∨H G .. . G∨H K K Negation G .. . ⊥ ¬G G ¬G ¬¬G ⊥ und und G G ⊥ Implikation G H .. . K Die Natürliche Deduktion ermöglicht einen Test für Tautologien: Eine Formel F ist eine Tautologie, falls ein formaler Beweis für |= F vorliegt. Beispiel 7.19. Die Formel (A1 ) := G ⇒ (H ⇒ G) ist eine Tautologie. Hier ist der Beweis für |= (A1 ): G Kasten-Prämisse H Kasten-Prämisse G∧G ∧i, 1, 1 G ∧e, 3 H⇒G ⇒i, 2 − 4 G ⇒ (H ⇒ G) ⇒i, 1 − 5 Beispiel 7.20. Die Formel (A2 ) := (F ⇒ (G ⇒ H)) ⇒ ((F ⇒ G) ⇒ (F ⇒ H)) 48 ist ebenfalls eine Tautologie: F ⇒ (G ⇒ H) Kasten-Prämisse F ⇒G Kasten-Prämisse F Kasten-Prämisse G ⇒e, 2, 3 G⇒H ⇒e, 1, 3 H ⇒e, 5, 4 F ⇒H ⇒i, 3 − 6 (F ⇒ G) ⇒ (F ⇒ H) ⇒i, 2 − 7 (F ⇒ (G ⇒ H)) ⇒ ((F ⇒ G) ⇒ (F ⇒ H)) ⇒i, 1 − 8 Beispiel 7.21. Die Tautologie ” Beweis durch Widerspruch“: (A3 ) := (¬G ⇒ ¬H) ⇒ (H ⇒ G) Ihr Beweis ist analog zum Beweis in Beispiel 7.11. Satz 7.22. Die natürliche Deduktion ist (a) korrekt, dh. falls ein formaler Beweis für Γ |= F vorliegt, ist die Sequenz Γ |= F gültig, (b) vollständig, dh. für jede gültige Sequenz Γ |= F gibt es einen formalen Beweis. Die Korrektheit ist offensichtlich: man muss alle Regeln überprüfen, ob sie korrekt sind. Die Vollständigkeit ist schwieriger zu beweisen, siehe z.B. Huth, Ryan: Logic in ” Computer Science“ (Cambridge University Press 2009), Satz 1.4.4. 7.vii Hilberts Axiomatisierung Wir haben gesehen, dass die Natürliche Deduktion zwölf Ableitungsregeln benutzt. Sie wurde erst in den 1950ern von G. Gentzen eingeführt. Bereits in den 1920ern hat D. Hilbert einen anderen Stil für die Aussagenlogik entwickelt: Er benutzt nur eine Regel, den Modus Ponens ⇒e. Allerdings benutzt Hilbert sogenannte Axiome, das sind vorgegebene Formel die intuitiv als gültig gelten. Aus diesen können alle anderen Tautologien mit der einzigen Regel ⇒e abgeleitet werden. 49 Sein System benutzt nur die Junktoren ⇒ und ¬. Diese sind adäquat (siehe Definition 3.13). Konjunktion und Disjunktion lassen sich wie folgt darstellen: F ∨ G ≡ ¬F ⇒ G F ∧ G ≡ ¬(F ⇒ ¬G) Hilbert nutzt drei Axiome. Es sind die Tautologien (A1 ), (A2 ), (A3 ) aus den vorangegangenen Beispielen 7.19–7.21. Satz 7.23. Hilberts Kalkül ist vollständig: Jede Tautologie F hat einen Beweis der Sequenz (A1 ), (A2 ), (A3 ) |= F der nur Modus Ponens benutzt. 50 8. Hornlogik 8.i Hornformeln Die Hornlogik beschränkt sich auf eine Untermenge der Formeln der Aussagenlogik, die effizient berechnet werden können. Diese Formeln sind für die Logik-Programmierung wichtig und werden etwa von der Programmiersprache PROLOG genutzt. Erinnern wir uns, dass ein Literal entweder positiv ist, d.h., eine atomare Aussage, oder negativ, d.h., Negation einer atomaren Aussage. Definition 8.1. Eine Hornformel ist eine KNF, die in jeder Klausel höchstens ein positives Literal enthält. Die einzelnen Klauseln haben also immer eine der dabei folgenden Formen: (a) A, eine atomare Aussage. Solche Klauseln heißen Tatsachen (b) B ∨ ¬A1 ∨ ¬A2 ∨ · · · ∨ ¬An . Das ist äquivalent zu der Implikation A1 ∧ A2 ∧ . . . ∧ An ⇒ B und heißt Regel. (c) ¬A1 ∨ ¬A2 ∨ · · · ∨ ¬An . Das ist äquivalent zu ¬(A1 ∧ A2 ∧ . . . ∧ An ) und heißt Frageklausel. Beispiel 8.2. Die Formel Q ∧ (Q ∧ S ⇒ P ) ∧ (Q ∧ R ⇒ P ) ∧ (¬R ∨ ¬S) ist keine Hornformel, aber sie ist zu der Hornformel Q∧(¬Q∨¬S∨P )∧(¬Q∨¬R∨P )∧(¬R∨¬S) äquivalent. Die können wir als eine Frage R ∧ S?“ verstehen, vorausgesetzt dass Q ” als Tatsache gilt und die Regeln Q ∧ S ⇒ P und Q ∧ R ⇒ P gelten. Diese Formel ist erfüllbar: für α(P ) = α(Q) = 1, α(S) = α(R) = 0 hat sie Wert 1. Deswegen ist die Antwort auf die Frage R ∧ S?“ negativ. ” Beispiel 8.3. An einen Wintertag wurde festgestellt, dass es stark regnet. Jedesmal, wenn der Damm voll ist und es stark regnet, kommt eine Katastrophe. Und im Winter ist der Damm immer voll. Wir wissen auch, dass der Dammwächter nur im Winter im Urlaub ist. Folgt daraus, dass es zu einer Katastrophe gekommen ist? Wir bezeichnen 51 R . . . es regnet stark D . . . Damm voll K . . . Katastrophe W . . . Winter U . . . Urlaub Die Tatsachen sind: W und R. Die Regeln: D∧R⇒K W ⇒D U ⇒W Die Frage ist: K? Die Antwort ist: ja“ genau wenn die Horn-Formel ” W ∧ R ∧ (D ∧ R ⇒ K) ∧ (W ⇒ D) ∧ (U ⇒ W ) ∧ ¬K unerfüllbar ist. Aus W folgt D und aus D ∧ R folgt K. Dies bedeutet, dass die Formel unerfüllbar ist und die Antwort lautet: ja, K folgt. Bemerkung 8.4. Die Bearbeitung von Horn-Klauseln heißt Logik-Programmierung und benutzt die Programmiersprache PROLOG. In der wird Tatsache A mit A. bezeichnet. Für Regeln A1 ∧ A2 ∧ . . . ∧ An ⇒ B benutzt man B:- A1 , A2 , · · · , An . Die Notation : − soll ⇐ andeuten. Und Fragen“ ¬A1 ∨ ¬A2 ∨ · · · ∨ ¬An schreibt man ” so: ?- A1 , A2 , · · · , An . Beispiel 8.5. Das PROLOG-Programm 52 A:A:B:C. D:? - B, C. D. A, D. E. D. entspricht der folgenden Hornformel: (A ∨ ¬B ∨ ¬C) ∧ (A ∨ ¬D) ∧ (B ∨ ¬A ∨ ¬D) ∧ C ∧ (D ∨ ¬E) ∧ ¬D Beobachtung 8.6. Jede Hornformel ohne Fragen ist erfüllbar: Wir können einfach alle positiven Literale mit 1 belegen. 8.ii SDL-Resolutionsmethode Algorithmus 8.7. Die SLD-Resolution ist eine Einschränkung der Resolutionsmethode, die für Hornformeln gut funktioniert. SLD ist die Abkürzung für linear resolu” tion with unrestricted selection for definite clauses“. Die Tatsachen und Regeln heißen die positiven Klauseln (weil sie ein positives Literal enthalten). Wir fangen mit einer positiven Klausel P0 und einer Frage F0 an und formen einen Resolventen F1 (falls möglich) – es ist klar das F1 eine Frage ist. F0 P0 P1 F1 F2 Pn−1 Fn ∅ Dann nehmen wir einen Resolventen von F1 und einer positiven Klausel P1 der ursprünglichen Hornformel, usw. Falls am Ende eine Resolvente ∅ vorkommt, ist die Hornformel unerfüllbar. Beispiel 8.8. Die Formel F := P ∧ (¬P ∨ Q) ∧ (¬Q ∧ ¬R) ∧ (¬P ∨ R) 53 hat folgende SLD-Resolution: ¬P ∨ Q ¬P ∨ ¬R P ¬P ∨ R ¬Q ∨ ¬R ¬R ¬P P ∅ Deswegen ist sie unerfüllbar. Beispiel 8.9. Für das vorige PROLOG-Beispielprogramm 8.5 mit der Hornformel (A ∨ ¬B ∨ ¬C) ∧ (A ∨ ¬D) ∧ (B ∨ ¬A ∨ ¬D) ∧ C ∧ (D ∨ ¬E) ∧ ¬D gibt es nur die folgende SLD-Resolution: D ∨ ¬E ¬D ¬E Deswegen ist die Formel erfüllbar. Satz 8.10. Für Hornformeln ist die SLD-Resolution ist korrekt und vollständig: Eine Hornformel ist erfüllbar genau wenn keine SLD-Resolvente leer ist. Den Beweis findet man z.B. in Kreuzer, Kühling Logik für Informatiker“ (Pearson ” Studium 2006), Satz 3.17. 8.iii Markierungsalgorithmus Algorithmus 8.11. Der Markierungsalgorithmus ist eine alternative Methode, die entscheidet, ob eine Hornformel F erfüllbar ist. Sie arbeitet mit der Markierung der atomaren Aussagen: Schritt 1 Markiere jedes Vorkommen von A für jede Tatsache A. 54 Schritt 2 (Rekursiv) Für jede Regel B∨¬A1 ∨¬A2 ∨· · ·∨¬An , für die alle A1 , A2 . . . An markiert sind, markiere jedes Vorkommen von B. Falls keine neuen Atome markiert werden können, gehe zu Schritt 3. Schritt 3 Falls eine Frage nur aus markierten Literalen besteht, erfolgt die Ausgabe F unerfüllbar“, sonst wird F erfüllbar“ ausgegeben. ” ” Beispiel 8.12. Das Beispiel 8.8 mit der Formel F := P ∧ (¬P ∨ Q) ∧ (¬Q ∧ ¬R) ∧ (¬P ∨ R) wird so bearbeitet: Im ersten Schritt markiert man dem Atom P , während Schritt 2 die Literale Qund R markiert. Deswegen lautet im dritten Schritt die Ausgabe F ” unerfüllbar“. Satz 8.13. Der Markierungsalgorithmus ist korrekt und braucht Zeit in O(n2 ) für Hornformeln mit n atomaren Aussagen. Beweis. (a) Der Markierungsalgorithmus ist korrekt: Wir zeigen erst, dass jede Belegung α, die Hornformel wahr macht, macht alle markierten atomaren Aussagen wahr. Für Schritt 1 ist das trivial, denn falls A eine Tatsache ist, muss α(A) = 1 gelten. Bei dem rekursiven Schritt 2 erinnern wir die Form A1 ∧ A2 ∧ . . . ∧ An ⇒ B aller Regeln: Wenn alle Ai wahr sind, muss auch B wahr sein, weil die Implikation wahr ist. In Schritt 3 ist die Ausgabe unerfüllbar“ richtig: jede Frage K mit mar” kierten Atomen erfüllt α b(K) = 0. Falls die Ausgabe erfüllbar“ kommt, setzen wir ” 1 falls A markiert α(A) := 0 sonst Damit bekommen alle positiven Klauseln den Wert 1. Und jede Frage enthält wegen der Ausgabe erfüllbar“ ein nicht markiertes Literal ¬A, ” dann haben wir α b(¬A) = 1 – dh. sie ist also auch wahr. Deswegen hat die ganze Hornformel den Wert 1 und ist damit erfüllbar. (b) Beweis der Zeitkomplexität: Bei n atomaren Aussagen brauchen wir für Schritt 1 Zeit O(n) und Schritt 2 hat höchstens n Durchläufe, die jeweils eine atomare Aussage abarbeiten. Ein Durchgang in Schritt 2 läuft in O(n) Schritten über die Formel, weshalb Schritt 2 als ganzes in der Zeitklasse O(n2 ) liegt. Schritt 3 benötigt O(n) Zeit. Insgesamt ergibt sich eine Zeitkomplexität von O(n + n2 + n) = O(n2 ). Zusammenfassung In der Aussagenlogik stellen wir Fragen des Typs: • Ist eine Formel erfüllbar? 55 • Ist eine Formel eine Tautologie? • Folgt eine Formel aus gegebenen Formeln? Diese drei Probleme sind äquivalent: siehe dazu Satz 3.24 und Bemerkung ??. Wir haben verschiedenen Algorithmen vorgelegt, die diese Fragen beantworten: die Berechnung der Wahrheitstabelle, die Resolutionsmethode und die Natürliche Deduktion. Keiner dieser Algorithmen ist effizient: alle brauchen Zeit exponentiell in der Länge der Formel. Und es wird nicht erwartet, dass ein polynomialzeit Algorithmus je gefunden wird, da die Erfüllbarkeit ein NP-vollständiges Problem ist. Eine andere Situation betrifft die Hornformel, für die wie einen Markierungsalgorithmus mit Zeitkomplexität O(n2 ) sowie eine effiziente Variante der Resolutionsmethode dargestellt haben. 56 Teil II Prädikatenlogik 57 9. Syntax der Prädikatenlogik 9.i Einleitung Die Prädikatenlogik (auch als Logik der ersten Stufe bekannt) ist viel stärker als die Aussagelogik, denn sie macht es möglich, über Eigenschaften von Objekten, Relationen zwischen Objekten und Funktionen die mit Objekten durchgeführt werden zu reden. Falls eine Menge X von Objekten gegeben wird, kann eine Eigenschaft, oder Prädikat, formal als eine Untermenge P ⊆ X (aller Objekte, die die Eigenschaft haben) verstanden werden. Eine Relation zwischen Paaren von Objekten wird analog als eine Untermenge P ⊆ X × X (aller Paare von Objekten die in der Relation stehen) formalisiert; wir sprechen über 2-stellige Prädikate. Falls zwei Objekte x, y ∈ X in der Relation P stehen, schreiben wir P (x, y) oder xP y. Beispiel: die Relation größer als“wird ” durch ”>”bezeichnet und statt > (x, y) schrieben wir x > y. Dreistellige Prädikate sind Untermengen P ⊆ X × X × X und formalisieren Relationen zwischen Tripeln von Objekten (z.B. P (x, y, z) kann bedeuten: x liegt zwischen y und z). Definition 9.1. Ein n-stelliges Prädikat (n = 1, 2, 3, . . .) in einer Menge A ist eine Untermenge von An = A × . . . × A. Beispiel 9.2. Sagt ein Mann, der ein Porträt beobachtet: Geschwister habe ich keine. ” Und der Vater dieses Mannes ist meines Vaters Sohn“. Wer ist da abgebildet? Wir brauchen zwei Konstanten für die zwei Männer im Beispiel: a = der abgebildete Mann und 58 b = der Beobachter. Die erste Aussage arbeitet mit dem zweistelligen Prädikat Geschwister“ ” G(x, y), x und y sind Geschwister. Der Beobachter behauptet hier: G(b, y) ist immer falsch, das schreiben wir in der Form ∀y : ¬G(b, y). (9.1) Für die zweite Aussage brauchen wir das zweistellige Prädikat Sohn“ ” S(x, y), x ist Sohn von y. Wir könnten auch Vater“ als Prädikat nehmen, aber wir haben etwas besseres: eine ” Funktion f (x) so dass y = f (x) bedeutet dass y der Vater von x ist. Die zweite Aussage des Beobachters ist S(f (a), f (b)) (9.2) Was im Beispiel nicht explizit steht, aber zur Aufgabe implizit gehört, ist, dass wenn jemand (Variable z) keine Geschwister hat, dann ist z der einzige Sohn seines Vaters: ∀y : ¬G(z, y) ⇒ ∀u : (S(u, f (z)) ⇒ u = z) (9.3) Diese Aussage benutzt noch ein Prädikat: gleich zu sein (=). Was folgt aus der Konjunktion von (9.1), (9.2) und (9.3)? Wir können für die Variable z in (9.3) die Konstante b substituieren und bekommen ∀y : ¬G(b, y) ⇒ ∀u : (S(u, f (b)) ⇒ u = b) Dies, zusammen mit (9.1), ergibt (wegen modus ponens) ∀u : (S(u, f (u)) ⇒ (u = b)) Substituieren wir f (a) für u: es gilt S(f (a), f (b)) ⇒ f (a) = b. Aufgrund von (9.2) bekommen wir f (a) = b. D.h., der Mann a ist der Sohn des Beobachters. Bemerkung 9.3. Im vorigen Beispiel haben wir mit zweistelligen Relationen S (Sohn), G (Geschwister) und = (gleich sein) gearbeitet. Wir haben ferner eine Funktion f , Vater, die einstellig ist benutzt. Und dazu zwei Namen, auch Konstanten benannt, a und b. Wichtig ist, dass jeder Name ein eindeutig bestimmtes Objekt beschreibt. Diese Eingaben heißen eine Signatur. Allgemeiner: Definition 9.4. Eine Signatur Σ besteht aus • einer Liste von Konstanten (mit kleinen Buchstaben bezeichnet), 59 • einer Liste von Prädikatensymbolen (mit großen Buchstaben bezeichnet) mit gegebenen Stelligkeiten 1, 2, 3, . . .. und • einer Liste von Funktionssymbolen (mit kleinen Buchstaben bezeichnet) mit gegebenen Stelligkeiten 0, 1, 2, 3, . . .; die 0-stelligen Funktionen heißen Konstanten. Diese Listen können auch leer sein. Beispiel 9.5. Im Beispiel 9.2 haben wir die Signatur Σ = {G, S, f, a, b} benutzt. Die Prädikate G und S sind zweistellig, f ist eine einstellige Funktion und a, b sind konstant. Beispiel 9.6. Gibt es eine Frau, so dass falls sie unfruchtbar ist die Menschheit aussterben muss? Hier verwenden wir die Signatur Σ = {F } wobei F das einstellige Prädikat fruchtbare Frau“ ist. Wir fragen uns, ob es eine Frau x gibt, so dass die ” Implikation ¬F (x) ⇒ ∀y : ¬F (y) gilt? Oder kürzer: ist die Aussage ∃x : (¬F (x) ⇒ ∀y : ¬F (y)) wahr? Die Antwort ist (überraschenderweise) positiv. Falls wir nämlich eine Frau x0 die fruchtbar ist finden können, substituieren wir x0 für x und bekommen die Implikation ¬F (x0 ) ⇒ ∀y : ¬F (y). Die ist wahr, denn ¬F (x0 ) ist falsch. Falls keine fruchtbare Frau x0 existiert, ist die Aussage ∀y : ¬F (y) wahr, deswegen auch die Implikation ¬F (x) ⇒ ∀y : ¬F (y) wahr ist. Beispiel 9.7. In der Arithmetik benutzen wir Funktionen + und · (zweistellig) das Prädikatensymbol < (zweistellig) und die Konstanten 0 und 1. Kurz Σ = {<, =, +, ·, 0, 1}. Ist die Aussage ∀x : x · x > 0 wahr? Ja, falls x eine natürliche Zahl darstellt. Nein wenn x auch eine komplexe Zahl sein darf. Die Wahrhaftigkeit einer Formel hängt von der Umgebung ab, dies werden wir im nächsten Kapitel formalisieren. Beispiel 9.8. Die Theorie der Graphen arbeitet mit einem zweistelligen Prädikatensymbol R. Die Liste der Funktionssymbole ist leer. Alle Graphen ohne 2-Zyklen beschreibt die Formel ∀x : ∀y : (R(x, y) ∧ R(y, x) ⇒ (x = y)) 60 9.ii Alphabet der Prädikatenlogik In der Prädikatenlogik formen wir Ausdrücke wie ∀x : F x die sagen, dass für jeden Wert der Variable x die Aussage F gilt. Dies werden wir in den nächsten Kapiteln präzisieren, wo die Semantik der Prädikatenlogik erläutert wird. Hier wollen wir zunächst den Allgemeinquantor ∀ einfach als formales Symbol einführen. Analog gilt das für den Ausdruck ∃x : F , wo wir uns damit begnügen das Symbol ∃ als Existenzquantor einzuführen. Beispiel 9.9. Die Aussage ” Funktion f (x) ist stetig in Punkt 2“ kann man mit Quantoren wie folgt formulieren: ∀ > 0 ∃δ > 0 ∀x : (|x − 2| < δ ⇒ (|f (x) − f (2)| < ) Hier sind f (x) und der Betrag a(x) = |x| jeweils 1-stellige Operationssymbole und die Funktion m(x, y) = x − y ist zweistellig. Wir benutzen ferner zwei Konstanten 0 und 2. Wir können dazu ein zweistelliges Prädikat > einführen: In der Signatur Σ = {>, m, a, f, 0, 2} bekommt die obige Formel die Form ∀ > 0∃δ > 0∀x : (δ > a(m(x, 2)) ⇒ > a(m(f (x), f (2))) Definition 9.10. Das Alphabet der Prädikatenlogik besteht aus Var, einer Menge aus Variablen x1 , x2 , x3 , . . . , einer Signatur Σ, den Quantoren ∀ und ∃ und den Hilfssymbolen Klammern )“, (“, Komma ,“ und Doppelpunkt ”:” ” ” ” Bemerkung 9.11. Für die Variablen schreiben wir oft x, y, z, wir nutzen aber manchmal auch andere Symbole wie oder δ. Für zweistellige Relationssymbole R verwendet man oft die bereits erwähnte In-FixNotation x1 Rx2 . Auch für zweistellige Funktionen, z.B. +, verwendet man neben +(x, y) die In-Fix-Notation x + y. Definition 9.12. Die Menge aller Σ-Terme ist die kleinste Menge so dass • jede Variable x1 , x2 , x3 . . . ist ein Term • jede Konstante aus Σ ist ein Term 61 und • gegeben ein n-stelliges Funktionssymbol f und n Terme t1 , . . . , tn , ist auch f (t1 , . . . , tn ) ein Term. Die Menge aller Σ-Terme deren Variablen in M ⊆ Var liegen bezeichnet man mit TΣ (M). Bemerkung 9.13. TΣ (∅) ist die menge aller Terme ohne Variablen. Z.B. in der Signatur in 9.9 gehören m(0, 2), f (a(0)), f (f (f (2))) zu TΣ (∅). Beispiel 9.14. • Falls Σ = {s} mit s eine 1-stellige Funktion, sind Terme genau die Variablen xi und s(xi ), s(s(xi )), . . . • Für Σ = {+, 0}, + 2-stellig und 0 konstant haben wir Terme x, 0, x + y, x + 0, (x + 0) + (0 + 0), . . . 9.iii Syntax der Aussagenlogik Definition 9.15. der Syntax. (a) Die atomaren Formeln der Prädikatenlogik sind alle Ausdrücke t1 = t2 oder R(t1 , . . . , t2 ) wobei ti Terme der Signatur Σ sind und R ein n-stelliges Prädikat in Σ (b) Die Formeln der Prädikatenlogik bilden die kleinste Menge so, dass (a) jede atomare Formel eine Formel ist, (b) falls F und G Formeln sind, sind es auch (F ∧ G), (F ∨ G) und (¬F ) und (c) falls F eine Formel ist, so sind auch (∀x : F ) und (∃x : F ) für jede Variable x Formeln. Bemerkung 9.16. (a) Wie in der Aussagenlogik benutzen wir F ⇒ G für G ∨ ¬F und F ⇔ G für (F ∧ G) ∨ (¬F ∧ ¬G) 62 (b) Wie schreibt man Aussagen wie Für alle größer 0 gilt XXX“? Einfach ” ∀ > 0 XXX“ zu schreiben, geht nicht, denn dies ist keine Formel! Daher ” folgendermaßen: ∀ : ( > 0 ⇒ XXX) Dabei ist > 0 eine atomare Aussage, aus der XXX folgt. (c) Analog dazu schreibt man statt Es gibt ein δ größer 0, so dass YYY“ ” folgendes: ∃δ : (δ > 0) ∧ YYY Damit bekommt die Stetigkeitsformel aus 9.9 die folgende Form: ∀ : ( > 0 ⇒ ∃δ : (δ > am(x, 2) ⇒ > am(f (x), f (2)))) Beispiel 9.17. Im Land Warling gibt es drei Stämme: Xur, Yzy und Poli. Jemand vom Stamm Xur vermählt sich nur mit jemand vom Stamm Xur oder vom Stamm Yzy. Polis vermählen sich nie, weil sie auf die entscheidende Frage immer mit Nein“ ” antworten. Um dies formal aufzuschreiben benötigen wir keine Operationen, sondern nur die folgenden Relationen: 1-stellig: X, Y und P für die drei Stämme 2-stellig: V J für vermählt sein mit“ ” beide Partner beantworten die entscheidende Frage mit “Ja“ Die erste Aussage ist F1 := (∀x : (X(x) ⇒ (∀y : (V (x, y) ⇒ (X(y) ∨ Y (y)))))) Die zweite ist aus zwei Teilen zusammengesetzt: F2 := (∀x : (P (x) ⇒ (∀y : (¬J(x, y))))) und F3 := (∀x : ∀y : (¬J(x, y) ⇒ ¬V (x, y))) Die komplette Aussage über Warling ist F1 ∧ F2 ∧ F3 . Notationelle Konvention 9.18. Wir erweitern die Bindungskonventionen der Aussagenlogik: nicht nur ¬ sondern auch ∀x und ∃x binden stärker als alle 2-stelligen Junktoren. Es bleibt dabei, dass ∧ und ∨ stärker binden als ⇒ und ⇔. Dann dürfen wir schreiben: ∀x : F ∨ ∃y : G ⇒ ¬H 63 was dann folgendes bedeutet: (∀x : F ) ∨ (∃y : (G ⇒ ¬H)) Diese Formel darf nicht mit der folgenden verwechselt werden: ∀x : (F ∨ (∃y : G ⇒ ¬H)) – Diese besagt etwas ganz anderes! Beispiel 9.19. Die Studenten, die die volle Punktezahl erreichten, waren von zwei ” Sorten: einige wussten alle Lösungen der Aufgaben und die anderen hatten das Glück, dass ihr bester Freund zur ersten Sorte gehört.“ Dies wollen wir durch eine Formel ausdrücken. Sei W (x) das einstellige Prädikat x ” weiß alle Lösungen“ und B(x, y) das zweistellige Prädikat y ist der beste Freund von ” x“ – es kann natürlich mehrere y je x geben oder auch keinen. Die Formel für die volle Punktezahl ist dann: W (x) ∨ ∃y : (B(x, y) ∧ W (y)) Bemerkung 9.20. Im letzten Beispiel ist die Variable x in der Formel frei, d.h. ohne einen Quantor der sich auf die Variable bezieht: sie bezeichnet damit einfach abstrakt einen Studenten“. Dagegen ist y durch das ∃y : gebunden. ” Diese Unterscheidung zwischen freien und gebundenen Variablen definieren wir nun: Definition 9.21. Die Menge F rei(F ) aller freien Variablen einer Formel F ist wie folgt definiert: Formel F Menge F rei(F ) t1 = t2 R(t1 , . . . , tn ) F1 ∨ F2 F1 ∧ F2 ¬F ∀x : F ∃x : F alle Variablen, die in t1 oder t2 vorkommen alle Variablen, die in t1 , . . . , tn vorkommen F rei(F1 ) ∪ F rei(F2 ) F rei(F1 ) ∪ F rei(F2 ) F rei(F ) d.h. es sind die selben Variablen frei wie in F F rei(F ) − {x} alle freien Variablen von F außer x F rei(F ) − {x} alle freien Variablen von F außer x Beispiel 9.22. In der Formel F := W (x) ∨ ∃y : (B(x, y) ∧ W (y) ist x eine freie und y eine gebundene Variable. Es gilt: F rei(F ) = {x} Definition 9.23. Eine Formel heißt ein Satz, falls sie keine freien Variablen besitzt. 64 Zum Beispiel ist die Stetigkeitsformel in 9.9 ein Satz: die Variablen , δ und x sind alle gebunden. Wir können dann einfach sagen, ob die Formel wahr oder falsch ist. Je nachdem, ob die gegebene Operation f (x) stetig in 2 ist oder nicht. Im Kontrast dazu hängt der Wahrheitswert der Formel W (x) ∨ ∃y : (B(x, y) ∧ W (y)) von der Interpretation der freien Variablen x ab. Dies wird im nächsten Kapitel erläutert. 65 10. Semantik der Prädikatenlogik Ist die Formel ∀x : (x + 1 > 0) wahr? Die Antwort hängt von der Umgebung wo x interpretiert wird ab: es gilt, falls x als natürliche Zahl genommen wird, es gilt nicht falls x eine ganze Zahl darstellt. Wir müssen erst spezifizieren (a) welche Elemente x darstellen (die Menge aller möglichen Elemente heißt Träger) und (b) was + und > und 0 bedeutet. Solche Spezifikationen heißen Struktur: Definition 10.1. Für eine Signatur Σ besteht eine Σ-Struktur A aus einer Menge A (dem Träger von A), die nicht leer ist, ein Element des Trägers cA ∈ A für jede Konstante e ∈ Σ, einer n-stelligen Operation f A : An −→ A für jedes n-stellige Funktionssymbol f in Σ und einer n-stelligen Relation R A ⊆ An für jedes n-stellige Prädikatensymbol R in Σ Beispiel 10.2. Falls Σ = {R} mit dem Prädikat R 2-stellig, ist eine Σ-Struktur A genau ein nichtleerer gerichteter Graph. Wobei A die Menge der Knoten von A ist und RA ⊆ A × A die Menge der Kanten von A. Beispiel 10.3. Für Σ mit der Funktion s, 1-stellig der Konstante 0, konstant, und mit dem zweistelligen Prädikatssymbol R haben wir die Σ-Struktur N der natürlichen Zahlen: Träger N = {0, 1, 2, 3, . . . } sN ist die Nachfolgerfunktion 0N ist die Konstante 0 66 RN (x, y) bedeutet x < y Eine andere Struktur Z hat als Träger die ganzen Zahlen, mit sZ , 0Z und RZ analog zu N derselbe Typ wie N oben. Eine dritte Struktur A hat Träger {0, 1}, wobei sA die zwei Werte umtauscht, 0A = 0 und RA = ∅ ist das leere Prädikat. Definition 10.4. (Belegungen von Variablen im Träger A einer Σ-Struktur) (1) Gegeben eine Struktur mit Träger A, eine Belegung α ist eine Funktion, die jeder Variablen x aus einer Menge M ⊆ Var ein Element aus dem Träger A zuordnet: α : M −→ A (2) Für jede Variable x und jeden Wert a ∈ A im Träger bezeichnen wir den Update“ der Variablen in einer Belegung α durch ” a α x und meinen damit die Belegung α xa : M ∪ {x} −→ A, die alle Variablen y 6= x in M genau wie α belegt und der Variable x aber den Wert a zuordnet: a α(y) falls y 6= x α (y) := a falls y = x x Notationelle Konvention 10.5. Jede Belegung α : M −→ A wird auf alle Terme in Variablen aus M erweitert. Wir definieren die Funktion α : TΣ (M) −→ A wie erwartet: α(x) = α(x) für alle Variablen x ∈ M und α(t) = f A (α(t1 ), . . . , α(tn )) für alle Terme t1 , . . . , tn in TΣ (M), für die α(ti ) schon definiert wurde. Beispiel 10.6. In der Signatur Σ = {s, 0, R} des vorigen Beispiels 10.3 besteht TΣ ({x}) aus allen Termen x, s(x), s(s(x)), . . . , sowie 0, s(0), s(s(0)), . . . Gegeben eine Belegung α : {x} −→ Z α(x) = 7 haben wir α(x) = 7 α(s(x)) = 8 α(s(s(x))) = 9 .. . α(0) = 0 α(s(0)) = 1 α(s(s(0))) = 2 .. . 67 Bemerkung 10.7. Wir wollen jetzt die Semantik der Formel F in einer Struktur A definieren. Der Wahrheitswert von F hängt von einer Belegung α : M −→ A ab. Eine Belegung α : M −→ A heißt passend zu einer Formel F falls alle freien variablen von F in der Menge M liegen. Der Wahrheitswert von F bezeichnen wir als α b(F ) und er ist entweder 0 (falsch) oder 1 (wahr). Definition 10.8. der Semantik der Prädikatenlogik Gegeben: Eine Formel F , eine Σ-Struktur A mit dem Träger A und eine zu F passende Belegung α : M −→ A Wir definieren den Wahrheitswert α b(F ) jeder Formel F wie folgt: • atomare Formeln: α b(t1 = t2 ) = 1 g.d.w. ᾱ(t1 ) = ᾱ(t2 ) α b(R(t1 , . . . , tn )) = 1 g.d.w. RA (α(t1 ), . . . , α(tn )) • zusammengesetzte Formeln α b(G ∧ H) = 1 α b(G ∨ H) = 1 α b(¬G) = 1 α b(∀x : G) = 1 α b(∃x : G) = 1 g.d.w. g.d.w. g.d.w. g.d.w. g.d.w. α b(G) = 1 und α b(H) = 1 α b(G) = 1 oder α b(H) = 1 α b(G) = 0 ca (G) = 1 für alle a ∈ A gilt α x ca (G) = 1 es gibt ein a ∈ A mit α x Bemerkung 10.9. (a) Für 1-stellige Prädikate R ist die Formel R(t) genau dann wahr, wenn die Interpretation α(t) des Terms die Eigenschaft R hat – d.h. wenn RA (α(t)) gilt. Die Semantik einer Relation, die durch ein 2-stelliges Prädikatensymbol R dargestellt wird, ist: R(t1 , t2 ) ist genau dann wahr, wenn die Elemente α(t1 ) und α(t2 ) in der Relation RA stehen. (b) Die Interpretation von ∀x : G ist: bei allen Updates“ α xa von α hat die ” Formel G Wert 1. Und analog ist die Interpretation von ∃y : G derart, dass ein Element a im Träger existiert so dass bei dem Update“ α xa von ” α hat die Formel G Wer 1. Beispiel 10.10. In Graphen A als Σ-Strukturen (vgl. 10.2) bedeutet die Formel ∀x : ∀y : (R(x, y) ⇒ R(y, x)) dass der Graph A symetrisch ist. Dieselbe Formel ohne Quantoren, also R(x, y) ⇒ R(y, x) hat keinen festen Wahrheitswert: Wir müssen die freien Variablen x und y zuerst als Knoten a, b interpretieren, dh. α(x) := a und α(y) := b. Dann sagt die Formel: Wenn b ein Nachbar von a ist, gibt es Kanten in beide Richtungen. Der Wahrheitswert hängt hier von der gewählten Interpretation ab. 68 Beispiel 10.11. (a) In der Σ-Struktur N der natürlichen Zahlen aus Beispiel 10.3 ist die Formel ∀x : ∃y : x < y wahr und die Formel ∃y : ∀x : x < y falsch. (b) Die Formel ∀x : (0 < x ∨ 0 = x) ist wahr in N aber nicht in Z. Satz 10.12. Gegeben: Eine Formel F und eine Σ-Struktur mit Träger A. Der Wahrheitswert α b(F ) einer Formel F hängt nur von den Wahrheitswerten der freien Variablen in F ab: Für alle zu F passenden Belegungen β gilt b )=α aus β(x) = α(x) für alle x ∈ Frei(F) folgt β(F b(F ). Beweis. per Strukturinduktion über F für alle Belegungen α und β. Aus der Vorraussetzung über β folgt offensichtlich β(t) = α(t) für alle Terme in TΣ (M ) wobei M = Frei(F). Fallunterscheidung: b ) es ist, (a) Falls F die Form R(t1 , . . . , tn ) hat, α b(F ) wahr ist, genau wenn β(F denn es gilt α(ti ) = β(ti ) für i = 1, . . . , n. (b) Falls F die Form G ∧ H hat und der Satz für G und H gilt, dann ist α b(F ) b wahr, genau wenn α b(G) und α b(H) es sind. Dies gilt genau, wenn β(G) b b ) wahr. und β(H) wahr sind. Dann ist β(F Analog gilt das für F = G ∨ H und F = ¬H. (c) Falls F die Form ∀x : G hat und der Satz für G gilt, dann ist α b(F ) wahr, a c genau wenn für jede a ∈ A der Wert α x (G) wahr ist. Da die Interpretaca in allen freien Variablen von G (dh. in tionen mit Updates“ βcxa und α x ” denen von F plus x) übereinstimmen, gilt die Induktionsvorraussetzung: ca ca α (G) ist wahr, genau wenn β (G) wahr ist. x x b Daraus folgt, dass α b(∀x : G) genau dann wahr ist, wenn β(∀x : G) wahr ist. (d) Falls F die Form ∃x : G hat, dann ist α b(F ) wahr, genau wenn es ein a ∈ A a c ca und βca für alle freien gibt, sodass α x (G) wahr ist. Für dieses a sind α x x Variablen von G (die von F plus x) gleich. Nach Induktionsvorraussetzung ca (G) ist wahr, genau wenn βca (G) wahr ist. Dies beweist, dass α gilt: α b(∃x : x x G) genau dann wahr ist, wenn α b(∃x : G) wahr ist. 69 Notationelle Konvention 10.13. Der Wahrheitswert einer geschlossen Formel F in einer Σ-Struktur A ist unabhängig von Belegungen. Wir sagen, dass F gilt in A, wenn der Wahrheitswert 1 ist. Beispiel 10.14. Die Formel ∀x : ∀y : R(x, y) = R(y, x) aus 10.10 gilt genau in allen symetrischen Graphen. 70 11. Logische Äquivalenz Definition 11.1. Zwei Formeln F und G der Prädikatenlogik heißen äquivalent, in Symbolen F ≡G falls für jede Σ-Struktur A und jede zu F und G passende Belegung α : M −→ A gilt: α b(F ) ist genau dann wahr, wenn α b(G) wahr ist. Kurz: α b(F ) = α b(G). Bemerkung 11.2. Jede logische Äquivalenz der Aussagenlogik ist auch in der Prädikatenlogik gültig. Z.B., die de Morgansche Regel: ¬(F ∧ G) = ¬F ∨ ¬G. In der Tat, falls α eine zu F und G passende Belegung ist, gilt: α b(¬(F ∧ G)) = 1 g.d.w. g.d.w. g.d.w. g.d.w. α b(F ∧ G) = 0 α b(F ) = 0 oder α b(G) = 0 α b(¬F ) = 1 oder α b(¬G) = 1 α b(¬F ∨ ¬G) = 1. Beispiel 11.3. Zu sagen Nicht alle Vögel können fliegen. ist eine komplizierte Variante der Aussage Es gibt einen Vogel, der nicht fliegen kann. Allgemeiner: die Negation eines Allquantors ist der Existenzquantor der Negation. In Symbolen: Satz 11.4. ¬∀x : F ≡ ∃x : ¬F Beweis. Für jede passende Belegung α hat ¬∀x : F den Wert 1 genau dann, wenn ∀x : F den Wert 0 hat. Dies bedeutet: Es ist nicht wahr, dass für alle a ∈ A gilt ca (F ) = 1. Damit heißt das kurz: α x ca Es gibt ein a ∈ A mit α (F ) = 0 x 71 Dies können wir übersetzten in: ca es gibt ein a ∈ A mit α (¬F ) = 1 x Dies sagt aber genau, dass der Wert von ∃x : ¬F unter der Belegung α wahr ist. Satz 11.5. ¬∃x : F ≡ ∀x : ¬F Beweis. Satz 11.4 ergibt ¬∀x : ¬F ≡ ∃x : F . Folgerung 11.6. Für die Prädikatenlogik sind die Junktoren ∧ und ¬ zusammen mit dem Allquantor ∀ adäquat (siehe Definition 3.13): Alle Formeln der Prädikatenlogik lassen sich mit ∧, ¬ and ∀ ausdrücken. Beispiel 11.7. Einige wichtige logische Äquivalenzen sind: (a) ∀x : (F ∧ G) ≡ (∀x : F ) ∧ (∀x : G) Beweis: Die Linke Seite hat bei einer passenden Belegung α den Wert 1 genau dann, wenn für alle a ∈ A gilt ca α (F ∧ G) = 1 x Äquvivalent dazu: ca ca α (F ) = 1 und α (G) = 1 x x Dies aber bedeutet α b(∀x : F ) = 1 und α b(∀x : G) = 1. Der Beweis in Gegenrichtung erfolgt analog dazu. (b) ∃x : (F ∨ G) ≡ (∃x : F ) ∨ (∃x : G) Dies ist analog zu 11.6. Aber wir können es auch aus ??, 11.7 (a) und der de Morganschen Regel (der Aussagenlogik) ableiten: ∃x : (F ∨ G) ≡ ≡ ≡ ≡ ≡ ≡ ¬∀x : ¬(F ∨ G) ¬∀x : (¬F ∧ ¬G) ¬((∀x : ¬F ) ∧ (∀x : ¬G)) (¬(∀x : ¬F )) ∨ (¬(∀x : ¬G)) (¬(¬∃x : F )) ∨ (¬(¬∃x : G)) (∃x : F ) ∨ (∃x : G) ?? de Morgan 11.7 (a) de Morgan ?? ¬¬e (c) ∀x : (F ∨ G) 6≡ (∀x : F ) ∨ (∀x : G) Aufpassen! Dieses Beispiel sieht den beiden vorigen ähnlich, doch sind die beiden Seiten nicht äquivalent. Die linke Seite sagt, dass für jedes x eine der beiden Aussagen zutrifft. Die rechte Seite sagt dagegen, dass eine 72 der Aussagen für jedes x gleichermaßen zutrifft. Wenn nur auf einen Teil der Elemente der Grundmenge F zutrifft und auf den Rest G, dann ist die linke Seite trotzdem wahr; – die rechte aber nicht. Dies passiert bei der Signatur N aus Beispiel 10.3 bei den folgenden Formeln: ∀x : (3 < x ∨ x < 4) gilt, aber (∀x : 3 < x) ∨ (∀x : x < 4) gilt nicht. Fakt 11.8. Umbennung gebundener Variablen Die Formel ∀x : F ist äquivalent zu ∀y : F [y/x] für jede Variable y, die in F nicht vorkommt. Dabei ist F [y/x] jene Formel, die entsteht, wenn in F jedes Vorkommen der freien Variablen von x durch y ersetzt wird. Analog gilt ∃x : F ≡ ∃y : F [y/x] für jede Variable y, die in F nicht vorkommt. Bemerkung 11.9. In der Formel ∀x : x < 3 ⇒ R(x) ist die Variable x links gebunden und rechts frei. Dies ist verwirrend. Aufgrund von 11.8 können wir aber die gebundene Variable umbenennen und bekommen wie die nicht mehr verwirrende Formel ∀y : y < 3 ⇒ R(x). Notationelle Konvention 11.10. Wenn eine Variable in einer Formel sowohl gebunden wie frei vorkommt, benennen wir die gebundene Variable um. Beispiel 11.11. In der Formel W (y) ∨ ∃y : (B(x, y) ∧ W (y)) von Beispiel 9.19 ist die Variable y sowohl gebunden als frei. Wir können die gebundene Variable umbenennen: W (y) ∨ ∃t : (B(x, t) ∧ W (t)) Für jede neue Variable t (verschieden von x,y) ist diese neue Formel logisch äquivalent zu der vorigen. Definition 11.12. Eine Formel hat die bereinigte Form, wenn (a) keine ihrer Variablen frei und gebunden zugleich vorkommt und (a) alle Quantoren immer unterschiedliche Variablen binden. 73 Beispiel 11.13. Die Formel ∀x : ∀y : (x < y ∨ ∀x : x = 0) ∨ ∃y : y < u lässt sich durch die bereinigte Form ∀x : ∀y : (x < y ∨ ∀z : z = 0) ∨ ∃t : t < u ersetzten. Folgerung 11.14. Jede prädikatenlogische Formel ist zu einer in bereinigter Form äquivalent. Diese ergibt sich durch ggf. mehrmalige Anwendung von 11.8. Bemerkung 11.15. (a) Die Reihenfolge von Quantoren desselben Typs spielt keine Rolle: ∀x : ∀y : F ≡ ∀y : ∀x : F sowie ∃x : ∃y : F ≡ ∃y : ∃y : F Dies ergibt sich eindeutig aus der Definition der Semantik. (b) Aber aufpassen! Im Allgemeinen dürfen wir ∀ und ∃ nicht umtauschen. Beispiel 11.16. ∀x : ∃y : F 6≡ ∃y : ∀x : F In der Signatur aus 10.3 erfüllt N die Formel ∀x : ∃y : x < y aber nicht die Formel ∃y : ∀x : x < y Definition 11.17. Eine Formel F heißt (a) allgemeingültig falls sie in jeder Σ-Struktur unter jeder passenden Belegung wahr ist; (b) erfüllbar falls es eine Σ-Struktur und eine passende Belegung gibt, sodass F wahr ist. Beispiel 11.18. (a) Jede Tautologie der Aussagenlogik ist allgemeingültig, z.B. F ⇔ ¬¬F (b) Die Formel ∀x : F ⇒ ∃x : F ist allgemeingültig. Falls A eine Struktur und α eine Belegung mit α e(∀x : a c F ) = 1 ist, wählen wir ein Element a ∈ A aus. Dann α x (F ) = 1 und dies bedeutet α b(∃x : F ) = 1 74 (c) Wir wissen, dass ∀x : ¬F ⇔ ¬∃x : F allgemeingültig ist: siehe Satz 11.4. (d) Die Äquivalenz ∃x : R(x) ⇔ ∀x : R(x) ist nicht allgemeingültig: falls A die Struktur mit Träger {0, 1} ist und RA = {0}, dann gilt ∃x : R(x) in A aber ∀x : R(x) gilt nicht. Die Äquivalenz ist aber erfüllbar: Sei A eine Struktur mit nur einem Element im Träger, dann erfüllt A die Formel. (e) Die Formel ∃x : W (x) ∧ ∀x : ¬W (x) ist nicht erfüllbar. 75 12. Normalformen Definition 12.1. Eine Formel, deren Quantoren vollständig am Anfang stehen, heißt in pränexer Normalform. Pränexe Normalformen sind also die Formeln der Form Q1 x : Q2 y : . . . Qn z : F wobei Qi entweder für ∀ oder ∃ steht und F keine Quantoren enthält. Beispiel 12.2. F ∨ ∀x : G ist nicht in pränexer Normalform. Falls diese Formel bereinigt ist, finden wir eine äquivalente pränexe Normalform: F ∨ ∀x : G ≡ ∀x : (F ∨ G) Beweis: F ∨ ∀x : G hat unter der Belegung α den Wert 1 genau dann, wenn α b(F ) = 1 a c oder α x (G) = 1 für alle Elemente a des Trägers. Da x keine freie Variable von F ist, ca (F ) = α gilt α b(F ). Damit ist F ∨ ∀x : G genau dann wahr, wenn für alle a die Formel x F ∨ G unter der Belegung α xa wahr ist. Beispiel 12.3. Analog dazu gelten für alle bereinigten Formeln F und G die folgenden Äquivalenzen: F ∨ ∃x : G ≡ ∃x : (F ∨ G) F ∧ ∀x : G ≡ ∀x : (F ∧ G) F ∧ ∃x : G ≡ ∃x : (F ∧ G) Algorithmus 12.4. für die pränexe Normalform PF von F . Gegeben eine Formel F , berechnen wir die Formel PF = Q1 x1 : . . . Qn xn : F ∗ F ∗ ohne Quantoren Schritt 1: Bringe F in eine bereinigte Form ohne ⇒ und ⇔ Schritt 2: Verwende rekursiv die folgende Berechnung: (i) F atomar. Wir setzen PF := F. 76 (ii) F zusammengesetzt. Wir nehmen an, dass für alle Unterformeln G von F die jeweilige pränexe Normalformen PG bereits berechnet wurden. Es gibt die folgenden Fälle: (a) F := ¬G wobei PG = Q1 x1 : . . . Qn xn : G∗ Dann setze PF := Q̄1 x1 : . . . Q̄n xn : ¬G∗ Dabei meint Q̄ jeweils das Gegenstück zu Q: aus ∀ wird ∃ und umgekehrt. (b) F := G ∧ H wobei PG = Q1 x1 : . . . Qn xn : G∗ und PH = Q01 y1 : . . . Q0m ym : H ∗ Dann setze PF := Q1 x1 : . . . Qn xn : Q01 y1 : . . . Q0m ym : (G∗ ∧ H ∗ ) (c) F := G ∨ H analog zu (b), nur mit (G∗ ∨ H ∗ ) am Ende. (d) F := ∀x : G wobei PG = Q1 x1 : . . . Qn xn : G∗ Dann setze PF := ∀x : Q1 x1 : . . . Qn xn : G∗ (e) F := ∃x : G ist analog zu (d), nun mit ∃x am Anfang von PF . Satz 12.5. Der Algorithmus ist korrekt: die konstruierte pränexe Normalform PF ist äquivalent zur Ausgangsformel F . Beweis. Fall (a) folgt aus den Sätzen 11.4 und 11.5. Die Fälle (b) und (c) folgen aus Beispiel 12.3. Fall (d) ist klar: Denn wenn G ≡ H gilt, dann gilt auch ∀x : G ≡ ∀x : H. In der tat, für eine Belegung α gilt α b(G) = α b(H) deswegen, erfüllen alle Belegungen a a a c c der Form α x auch α x (G) = α x (H). Analog für Fall (e): Wenn G ≡ H gilt, dann gilt auch ∃x : G ≡ ∃x : H. Beispiel 12.6. F = ∀x : ∃y : x < y ∧ ¬∀z : x + z = z Schritt 1: Bereinigte Form: Die Variable x ist im hinteren Teil der Formel frei, deshalb wird am Anfang statt x die Variable t verwendet. F ≡ ∀t : ∃y : t < y ∧ ¬∀z : x + z = z Schritt 2: Die Anwendung von Fall (e) ergibt: F ≡ ∀t : ∃y : t < y ∧ ∃z : ¬(x + z = z) Jetzt verwenden wir (b) und bekommen: F ≡ ∀t : ∃y : ∃z : (t < y ∧ ¬(x + z = z)) 77 Bemerkung 12.7. Wir beweisen demnächst, dass man für die Entscheidungen der Erfüllbarkeit von Formeln ohne den Existenzquantor arbeiten kann. Erst ein Beispiel: Beispiel 12.8. Die Stetigkeitsformel aus 9.16 (c) kann man ohne ∃ schreiben indem man sagt: für jedes > 0 wählen wir ein δ mit der gewünschten Eigenschaft. Falls die Wahl mit δ = h() bezeichnet wird, bedeutet dies, dass wir ein 1-stelliges Funktionssymbol h benötigen und die Signatur jetzt auf Σ = {>, m, a, f, 0, 2, h} erweitern. Dann können wir formulieren: ∀ : ( > 0 ⇒ (h() > 0 ∧ ∀x : (h() > am(x, 2x) ⇒ > am(f (x), f (2x))))) Im Weiteren werden wir sehen, wie man diese Idee anwenden kann, um einen Quantor ∃ loszuwerden. Definition 12.9. Eine pränexe Normalform ohne Existenzquantor heißt Skolemsche Normalform. Beispiel 12.10. Die pränexe Normalform ∃x : ∀y : ∃z : x < z < y kann in eine Skolemsche Normalform gebracht werden, indem wir unsere Signatur Σ = {<} erweitern: Statt dem ∃x benutzen wir eine neue Konstante c: ∀y : ∃z : c < z < y Da nun ein z zu jedem y existiert, können wir eine neue 1-stellige Funktion f einführen und z durch f (y) ersetzen: ∀y : c < f (y) < y Dabei benutzen wie die neue Signatur {<, c, f } Bemerkung 12.11. Die Formeln F := ∃x : ∀y : ∃z : x < z < y und SF := ∀y : c < f (y) < y sind nicht äquivalent, aber sie haben die Eigenschaft, dass F erfüllbar g.d.w. SF erfüllbar In der Tat, falls F in einer Struktur A erfüllbar ist, haben wir noch die Freiheit a und f in A zu bestimmen. Wir wählen für a eine Interpretation c der Variable x, für die restliche Formel ∀y : ∃z : x < z < y wahr ist. Und f A definieren wir so, dass für alle y die Formel c < f A (y) < y gilt. Umgekehrt: Falls SF erfüllbar ist, ist es auch F . Denn für das x in F existiert das Element der Konstante in SF und für z existiert das Element, das f (y) geliefert hatte. 78 Algorithmus 12.12. der jeder pränexen Normalform F := Q1 x1 : . . . Qn xn : F ∗ eine Skolemsche Normalform SF zuordnet, die genau dann erfüllbar ist, wenn auch F erfüllbar ist. Wir setzen SF := F wenn alle Quantoren in F Allquantoren sind. Sonst: (a) Falls Q1 = ∃, d.h. F := ∃x1 : G und wir zu G bereits die Skolemsche Normalform SG berechnet haben, dann erweitern wir Σ um eine Konstante c und schreiben SF := SG [c/x1 ] D.h. in der Skolemsche Normalform SG ersetzen wir überall x1 durch c. (b) Falls Q1 = ∀ und Q2 = ∃, d.h. F := ∀x1 : ∃x2 : G erweitern wir Σ um ein einstelliges Funktionssymbol h und schreiben SF := ∀x1 : SG [h(x1 )/x2 ] (c) Entsprechend geht es weiter: Falls F := ∀x1 : ∀x2 : ∃x3 : G erweitern wir Σ um ein neues zweistelliges Funktionssymbol h und schreiben SF := ∀x1 : ∀x2 : SG [h(x1 ,x2 )/x3 ] usw. Satz 12.13. Der Algorithmus ist korrekt: für jede pränexe Normalform F ist SF eine Skolemsche Normalform, die genau dann erfüllbar ist, wenn F es ist. Der Beweis findet der Leser z.B. in Kreuzer, Kühling Logik für Informatiker“ (Pearson ” Studium 2006), Satz 4.22. 79 13. Herbrandsche Modelle und abstrakte Datentypen Wir haben mit TΣ (M) die Menge aller Terme mit Variablen aus M bezeichnet. Ein Spezialfall ist die Menge TΣ (∅) aller Terme ohne Variablen. Die haben eine Bewertung in jeder Σ-Struktur. Beispiel 13.1. Falls Σ aus einer Konstante, 0, und einem einstelligen Operationssymbol, s, besteht, ist TΣ (∅) die Menge {0, s(0), s(s(0)), . . .}. In jeder Σ-Struktur (A, 0A , sA ) ist die Bewertung des Termes sn (0) gleich dem Element (sA )n (0A ) von A. Für die Signatur Σ0 = {0, s, <} die Σ um ein zweistelliges Prädikatensymbol < erweitert, haben wir dieselben Terme ohne Variablen: TΣ0 (∅) = TΣ (∅) Beispiel 13.2. Für Σ = {+, 0, 1} mit einer zweistelligen Operation + und Konstanten 0 und 1 besteht TΣ (∅) aus Termen wie 0, 1, 0 + 1, 0 + 0, 0 + (0 + 1), (1 + 1) + (0 + 1), . . .. In jeder Σ-Struktur haben wir eine klare Bewertung von allen diesen Termen. Beispiel 13.3. Für jede Signatur Σ ohne Konstanten gilt TΣ (∅) = ∅ Definition 13.4. Eine Herbrandsche Σ-Struktur ist eine Σ-Struktur A dessen Träger die Menge TΣ (∅) von Termen ohne Variablen und dessen Funktionen f A , für jedes n-stelligen Funktionssymbol f , sind durch Zusammensetzung von Termen definiert: f A (t1 , . . . , tn ) = f (t1 , . . . , tn ) für alle t1 , . . . , tn ∈ TΣ (∅) Beispiel 13.5. (a) Für Σ = {s, 0} in 13.1 gibt es nur eine Herbrandsche Struktur: die mit ELementen sn (0) der Konstante 0 und der Operation, die jeden Term sn (0) den Term sn+1 (0) zuordnet. (b) Für die Signatur Σ0 = {s, 0, <} gibt es viele Herbrandsche Strukturen. Z.B. A mit Elementen und Funktionen wie in (a) und mit <A definiert durch sn (0) <A sm (0) genau dann wenn n < m. Oder die Struktur B mit denselben Elementen und Funktonen aber mit <B leer: sn (0) <B sm (0) gilt nie. 80 Bemerkung 13.6. (a) Wenn wir die Erfüllbarkeit von Formeln, die keine Existenzquantoren enthalten feststellen wollen, z.B. ∀x : ∀y : x + y > a können wir uns auf Herbrandsche Strukturen einschränken: falls ein Modell dieser Formel gefunden werden kann, können wir , aufgrund von Satz 13.8, annehmen, dass seine Elemente a, a + a, a + (a + a), (a + a) + a, . . . sind und seine Funktion die Zusammensetzung t + s. (b) Ist die Formel ∀x : (x > a ∨ a > x) ∧ ∀x : (x > b ⇒ x > a) ∧ a > b erfüllbar? Versuchen wir eine Herbrandsche Struktur: da die einzigen Funktionssymbole die Konstanten a und b sind, gilt TΣ (∅) = {a, b}. Gibt es eine Relation >A auf der Menge {a, b}, die die Formel dann erfüllt? Die letzte Klausel, a >A b, ergibt durch Substitution a/x in der zweiten, dass a >A a und dies widerspricht der ersten Klausel. Daraus folgt, wie wir jetzt beweisen, dass die Formel unerfüllbar ist. Notation 13.7. Gegeben eine Formel F . Wir bezeichnen durch ΣF die Signatur aller Funktionssymbole und Prädikatensymbole, die in F vorkommen; falls in F keine Konstante vorkommt, wird zu ΣF noch ein konstantes Funktionssymbol hinzugefügt. Satz 13.8. Für jede Skolemsche Normalform F gilt: falls F erfüllbar ist, gilt sie in einer Herbrandschen Struktur des Signatur ΣF . Den Beweis kann der Leser in Logik für Informatiker“ von U. Schöning finden. ” Bemerkung 13.9. Für Signaturen Σ ohne Prädikatensymbole ist TΣ (∅) eine ΣStruktur. Die kann man als ein Modell von abstrakten Datentypen betrachten: in einem Datentyp nehmen wir an, dass es eine Liste von Operationen gibt, die mit den Daten durchgeführt werden sollen. Diese Formen dann eine Signatur ohne Prädikatensymbole. Der abstrakte Datentyp ist dann das Modell, das aus nichts entsteht durch Anwendung der Operationen - und für das auch keine Gleichungen gelten. Hier ein Paar Beispiele: Beispiel 13.10. abstrakter Datentypen. (a) Natürliche Zahlen. Wir gehen von einer Konstante 0 und einer einstelligen Operation s aus. Für Σ = {s, 0} haben wir schon gesehen, dass TΣ (∅) die Menge aller Terme 0, s(0), s(s(0)), . . . ist, die die natürlichen Zahlen 0, 1, 2, . . . kodieren 81 (b) Listen. Um die Menge A∗ aller Listen in Alphabet A zu formen, brauchen wir eine Konstante nil und für jedes Symbol a ∈ A die einstellige Operation, die zu jeder Liste a am Ende hinzufügt. Formen wir die Signatur Σ = A ∪ {nil} in der jedes Symbol a ∈ A ein einstelliges Funktionssymbol ist. Hier besteht TΣ (∅) aus den Termen nil, a1 (nil), a2 (a1 (nil)), . . . (ai ∈ A) die die Listen nil, a1 , a2 a1 , . . . kodieren. (c) Binäre Bäume. Die Signatur Σ = {∗} ∪ N mit einem zweistelligen Operationssymbol ∗ und jeder natürlichen Zahl n als Konstante hat Terme n, ∗(n1 , n2 ), ∗n1 (∗(n2 , n3 )), . . . die die binären Bäume, die Listen in N markiert haben, kodieren: ∗ n n1 ∗ n2 n1 ∗ n2 n3 Beispiel 13.11. Die natürlichen Zahlen wollen wir jetzt nicht nur mit der Operation s (Nachfolger) und der Konstante 0 versehen, sondern auch mit der Addition + und der konstante 1. Die ensprechende Signatur Σ = {+, s, 0, 1} hat als abstrakten Datentyp nicht natürliche Zahlen, sondern Bäume des Types s + s n1 n2 + n1 + n2 n3 Deswegen müssen wir hier geeignete Gleichungsaxiome hinzufügen: betrachten wir die Formeln, die sagen dass + kommutativ und assoziativ ist, 0 die Einheit ist und s die Addition von 1 ∀x : ∀y : x + y = y + x ∀x : ∀y : ∀z : (x + y) + z = (x + y + z) ∀x : s(x) = x + 1 ∀x : x = x + 0 82 Hier betrachten wir den abstrakten Datentyp als eine Struktur, die (wieder) aus nichts entsteht und für die nur die Gleichung, die aus den 4 Formeln ableitbar sind, gelten. In unserem Beispiel wird dies weder eine Kodierung von N ergeben. 83 14. Resolutionsmethode der Prädikatenlogik Wir wollen entscheiden, ob eine Formel F der Prädikatenlogik erfüllbar ist. Wir dürfen uns aufgrund von Algorithmus 12.12 auf Formeln in der Skolemsche Normalform beschränken: F = ∀x1 : . . . ∀xn : F ∗ F ∗ ohne Quantoren Darüber hinaus dürfen wir annehmen, dass F ∗ in KNF vorliegt. KNF ist dabei exakt wie in der Aussagenlogik definiert: Definition 14.1. Ein Literal ist eine atomare Formel oder ihre Negation, z.B. ¬R(x, y). Eine Klausel ist eine Disjunktion von Literalen, z.B. ¬R(x, y). Eine KNFist eine Konjunktion von Klauseln. Satz 14.2. Für jede Formel F der Aussagenlogik gibt es eine Skolemsche Normalform SF , die genau dann erfüllbar ist, wenn F es ist, und die hat die Form SF := ∀x1 : . . . ∀xn : G G ohne Quantoren in KNF In der Tat haben wir einen Algorithmus, der jeder Formel F eine derartige Skolemsche Normalform SF zuordnet. Zuerst benutzten wir den Algorithmus aus 12.12 und erhalten die Skolemsche Normalform SF0 := ∀x1 : . . . ∀xn : G0 Anschließend wenden wir den KNF-Algorithmus 4.19 der Prädikatenlogik auf G0 an. Beispiel 14.3. Ist die folgende Formel erfüllbar? F := ¬P (c) ∧ ∀x : (P (f (x)) ∧ ¬P (x)) Wir bringen sie erst in Skolemsche Normalform: SF := ∀x : (¬P (c) ∧ P (f (x)) ∧ ¬P (x)) Jetzt merken wir, dass in den Interpretationen von SF der Wert von x beliebig werden kann. Daher dürfen wir es mit c ersetzen: Falls F (und SF ) erfüllbar ist, dann ist es auch ¬P (c) ∧ P (f (c)) ∧ ¬P (c) 84 Wir dürfen aber x auch mit f (c) ersetzen: Ist F erfüllbar, ist es auch die Formel: ¬P (c) ∧ P (f (f (c))) ∧ ¬P (f (c)) Beides zusammen bedeutet, falls F erfüllbar ist, dann ist es auch ¬P (c) ∧ P (f (c)) ∧ ¬P (c) ∧ ¬P (c) ∧ P (f (f (c))) ∧ ¬P (f (c)) Hier ist die Antwort aber klar: Diese letzte Formel ist unerfüllbar aufgrund der Resolution ¬P (f (c)) P (f (c)) ∅ Bemerkung 14.4. Das vorige Beispiel ist typisch. Wir haben in der Formel F eine Konstante c benutzt und die durch ∀ quantifizierte Variable x haben wir mit c oder f (c) ersetzt. Dies dürfen wir, weil der Allquantor auch jene Elemente des Trägers erfasst, die für die Konstante oder für f (c) stehen. Dadurch haben sich mehr und mehr komplizierte Formeln ohne freie Variablen ergeben. Auf diese können wir die Resolutionsmethode anwenden. Falls eine Formel keine Konstante enthält, müssen wir eine extra in der Signatur einführen: Definition 14.5. Für eine Formel F , die wenigstens eine Konstante enthält, bezeichnet ΣF die Signatur aller Funktionssymbole, die in F vorkommen. Falls F keine Konstanten enthält, bezeichnet ΣF die Signatur, die aus einer Konstante c und allen Operationssymbolen, die in F vorkommen, besteht. Bemerkung 14.6. Für eine Skolemsche Normalform G := ∀x1 : . . . ∀xn : F F ohne Quantoren in KNF können wir neue Klauseln ohne Variablen formen, indem wir in den Klauseln von F jede Variable xi durch einen Term der Signatur ΣF ohne Variablen (dh. einem Element aus TΣF (∅), siehe 9.13) ersetzen. Wenn G erfüllbar ist, ist jede KNF mit diesen Klauseln auch erfüllbar. Der folgende Resolutionssatz sagt das Umgekehrte: Wenn jede solche KNF erfüllbar ist, dann ist G erfüllbar. Beispiel 14.7. Ist die Formel ∀x : ∃y : R(x, y) erfüllbar? Wir nehmen eine 1-stellige Operation f und bekommen die Skolemsche Normalform G := ∀x : R(x, f (x)) 85 Diese hat keine Konstanten, also nehmen wir eine neue Konstante c hinzu: ΣG = {R, f, c} Dadurch formen wir die entsprechende Menge aller Terme TΣG (∅) = {c, f (c), f (f (c)), . . . } Nun können wir Elemente aus TΣG (∅) in die Formel G einsetzen und erhalten: R(c, f (c)) R(c, f (c)) ∧ R(f (c), f (f (c))) R(c, f (c)) ∧ R(f (c), f (f (c))) ∧ R(f (f (c)), f (f (f (c)))) .. . Diese Formeln sind alle erfüllbar, weil sie keine Resolventen haben. Daraus folgt, dass F erfüllbar ist: Satz 14.8. Resolutionssatz der Prädikatenlogik Gegeben sei eine Skolemsche Normalform G := ∀x1 : . . . ∀xn : (F1 ∧ . . . ∧ Fn ) wobei Fi Klauseln sind. Die Formel G ist genau dann erfüllbar, wenn jede aussagenlogische Formel, deren Klauseln die Form Fi [t1/x1 , . . . , tn/xn ] mit t1 , . . . , tn in TΣG (∅) haben, erfüllbar ist. (In der Klausel Fi wird die k-te Variable durch einem Term tk ohne Variablen ersetzt.) Algorithmus 14.9. Die Resolutionsmethode der Prädikatenlogik ist eine Methode zur Entscheidung, ob eine geschlossene Formel erfüllbar ist. Schritt 1: Berechne eine Skolemsche Normalform G := ∀x1 : . . . ∀xn : F F ohne Quantoren und in KNF die genau dann erfüllbar ist, wenn es H ist. Schritt 2: Berechne TΣF (∅) = {t1 , t2 , t3 , . . . } Schritt 3: Setze n = 1. Ersetze alle Variablen in F durch den Term t1 . Wende die Resolutionsmethode der Aussagenlogik auf die entstandene Formel (ohne Variablen) an. Ist das Ergebnis, dass diese Formel unerfüllbar ist, gib aus: G unerfüllbar 86 und halte. Sonst: Setze n = 2. Ersetze alle Variablen in F durch t1 oder t2 und forme mit all diesen Klauseln eine KNF. Wende die Resolutionsmethode der Aussagenlogik auf die dadurch entstandene Formel an. Ist das Ergebnis, dass diese Formel unerfüllbar ist, gib aus: G unerfüllbar und halte. Sonst: Setze n = 3. Ersetze alle Variablen in F entweder durch t1 , t2 oder t3 und forme mit all diesen Klauseln eine KNF; usw. Beispiel 14.10. Ist die Formel G := (∀x : R(x) ⇒ ∃y : S(y)) ⇒ ∃x : (R(x) ⇒ S(x)) allgemeingültig? Wie auch bei der Aussagenlogik ist das genau dann der Fall, wenn die Negation nicht erfüllbar ist: ¬G := ¬((∀x : R(x) ⇒ ∃y : S(y)) ⇒ ∃x : (R(x) ⇒ S(x))) ≡ ¬(¬(∀x : R(x) ⇒ ∃y : S(y)) ∨ ∃x : (R(x) ⇒ S(x))) ≡ (∀x : R(x) ⇒ ∃y : S(y)) ∧ ¬∃x : (R(x) ⇒ S(x)) ≡ (∀x : R(x) ⇒ ∃y : S(y)) ∧ ∀x : ¬(R(x) ⇒ S(x)) ≡ (¬∀x : R(x) ∨ ∃y : S(y)) ∧ ∀x : (R(x) ∧ ¬S(x)) ≡ (∃y : S(y) ∨ ∃x : ¬R(x)) ∧ ∀z : (R(z) ∧ ¬S(z)) Dies ist bereits bereinigt, deswegen ¬G ≡ ∃y : ∃x : ∀z : ((S(y) ∨ ¬R(x))) ∧ R(z) ∧ ¬S(z) Die Skolemsche Normalform benutzt zwei neue Konstanten c und d, die ∃y und ∃x entsprechen: S¬G = ∀z : (S(c) ∨ ¬R(d)) ∧ R(z) ∧ ¬S(z) Wir haben keine Funktionssymbole außer c und d, daher Σ¬G = {c, d} . Die einzigen Terme ohne Variablen sind c und d. Die Resolutionsmethode ergibt die Klauseln S(c) ∨ ¬R(d), R(c), ¬S(c), R(d), ¬R(d) Dies führt zur Resolution S(c) ∨ ¬R(d) ¬S(c) R(d) S(c) ∅ Wir sehen, dass ¬G nicht erfüllbar ist. Daher ist G allgemeingültig. 87 Bemerkung 14.11. In der Aussagenlogik ist die Resolutionsmethode ein entscheidbarer Algorithmus: Nach endlich vielen Schritten wissen wir, ob die gegebene Formel erfüllbar ist. Der Algorithmus der Prädikatenlogik terminiert jedoch nicht immer: Für erfüllbare Formeln bekommen wir nie in endlich vielen Schritten die Antwort. Dies ist kein Zufall, wie der nächste Satz belegt. Satz 14.12. Churchsche-Satz Die Prädikatenlogik ist nicht entscheidbar: Es gibt keinen Algorithmus, der für jede Formel F in endlich vielen Schritten entscheidet, ob F erfüllbar ist. Die Unentscheidbarkeit wird intuitiv klar, wenn wir zeigen, dass es Formeln gibt, die • erfüllbar sind, • aber in keiner endlichen Struktur erfüllt werden. Denn dann benötigen wir eine unendliche Struktur, um die Erfüllbarkeit zu demonstrieren. Beispiel 14.13. Wir arbeiten mit einer zweistelligen Relation <. Diese ist transitiv x < y ∧ y < z ⇒ x < z und antireflexiv ¬(x < x). Zusätzlich verwenden wir die 1-stellige Funktion f , die die Formel x < f (x) erfüllt: F := ∀x : ∀y : ∀z : ((x < y ∧ y < z ⇒ x < z) ∧ ¬(x < x) ∧ x < f (x)) Diese Formel ist sicher erfüllbar: in der Struktur N mit dem Träger N = {0, 1, 2, . . . }, wobei <N die übliche Ordnung der natürlichen Zahlen und f N die Nachfolgerfunktion ist. Aber F gilt in keiner endlichen Struktur A. Betrachten wir eine Struktur, in der F gilt. Wir wählen ein beliebiges Element a0 des Trägers und setzen ∧n+1 = f A (an ). Für jedes x gilt x < f (x), deswegen a0 < a1 < a2 . . .. Dies beweist, dass die Elemente an paarweise verschieden sind: aus ai = aj folgt i = j denn jedes x erfüllt ¬(x < x) (und die Transitivität ergibt ai < aj oder aj < ai falls i 6= j). 88