Was ist Logik? Logik (nach dem Altgriechischen „Logos“: „Vernunft“) ist die Lehre des vernünftigen Schlussfolgerns. Die für die Logik zentrale Frage: Wie kann man Aussagen miteinander verknüpfen, und auf welche Weise kann man formal Schlüsse ziehen und Beweise führen? Logik 1 / 79 Logik in der Informatik Logik wird in der Informatik u.a. genutzt für die Beschreibung, Analyse, Optimierung und Verifikation digitaler Schaltungen, für den Nachweis, dass ein Programm gewisse wünschenswerte Eigenschaften hat, für die Wissensrepräsentation, z.B. im Bereich der künstlichen Intelligenz, als Grundlage für Datenbank-Anfragesprachen, für die automatische Erzeugung von Beweisen in so genannten „Theorembeweisern“. Logik 2 / 79 Aussagenlogik Aussagen im Sinne der Aussagenlogik sind sprachliche Gebilde, die entweder wahr oder falsch sind. Aussagen können mit Junktoren wie „nicht“, „und“, „oder“, „wenn . . . dann“ etc. zu komplexeren Aussagen verknüpft werden. Die Aussagenlogik beschäftigt sich mit allgemeinen Prinzipien des korrekten Argumentierens und Schließens mit Aussagen und Kombinationen von Aussagen. Aussagenlogik 3 / 79 Geburtstagsfeier (1/3) Fred möchte mit möglichst vielen seiner Freunde Anne, Bernd, Christine, Dirk und Eva seinen Geburtstag feiern. Er weiß, dass Eva nur dann kommt, wenn Christine und Dirk kommen. Andererseits kommt Christine nur dann, wenn auch Anne kommt; und Dirk wird auf keinen Fall kommen, wenn Bernd und Eva beide zur Feier kommen. Anne wiederum wird nur dann kommen, wenn auch Bernd oder Christine dabei sind. Wenn allerdings Bernd und Anne beide zur Party kommen, dann wird Eva auf keinen Fall dabei sein. Wie viele Freunde, und welche, werden im besten Fall zur Party kommen? Aussagenlogik 4 / 79 Geburtstagsfeier (2/3) Das Wissen, das im obigen Text wiedergegeben ist, lässt sich in „atomare Aussagen“ zerlegen, die mit Junktoren verknüpft werden können. Um welche “atomaren Aussagen“ dreht sich der Text? A B C D E Aussagenlogik = b = b = b = b = b Anne kommt zur Feier Bernd kommt zur Feier Christine kommt zur Feier Dirk kommt zur Feier Eva kommt zur Feier. 5 / 79 Geburtagsfeier (3/3) Das im Text zusammengefasste „Wissen“ lässt sich wie folgt repräsentieren: 1. Eva kommt nur dann, wenn Christine und Dirk kommen. I (Wenn E , dann (C und D)) 2. Christine kommt nur dann, wenn auch Anne kommt, I und (wenn C , dann A) 3. Dirk wird auf keinen Fall kommen, wenn Bernd und Eva beide kommen, I und (wenn (B und E ), dann nicht D)) 4. Anne kommt nur dann, wenn auch Bernd oder Christine dabei sind, I und (wenn A, dann (B oder C )) 5. wenn Bernd und Anne beide kommen, dann wird Eva auf keinen Fall dabei sein. I und (wenn (B und A), dann nicht E ) Die Aussagenlogik liefert einen Formalismus, mit dessen Hilfe man solches „Wissen“ modellieren und Schlüsse daraus ziehen kann. Aussagenlogik 6 / 79 Syntax und Semantik Aussagenlogik 7 / 79 Syntax und Semantik: Formeln und ihre Bedeutung Die Syntax legt fest, welche Zeichenketten Formeln der Aussagenlogik sind. Die Semantik legt fest, welche „Bedeutung“ die einzelnen Formeln haben. Für Programmiersprachen ist die Situation ähnlich: Die Syntax legt fest, welche Zeichenketten korrekte Programme sind, während die Semantik bestimmt, was das Programm tut. Aussagenlogik 8 / 79 Die Syntax der Aussagenlogik Aussagenlogik 9 / 79 Griechische Buchstaben In der Literatur werden Formeln einer Logik traditionell meistens mit griechischen Buchstaben bezeichnet. Buchstabe Aussprache φ phi Buchstabe Aussprache κ kappa σ sigma Buchstabe Aussprache δ delta ω omega Buchstabe Aussprache Σ Sigma Die Syntax der Aussagenlogik ψ psi χ chi Π Pi θ bzw. ϑ theta ρ rho ξ xi ε epsilon λ lambda ζ zeta ι iota µ mü α alpha π pi ν nü β beta ∆ Delta τ tau γ gamma Γ Gamma Φ Phi 10 / 79 Aussagenvariablen (a) Eine Aussagenvariable (kurz: Variable) hat die Form Vi für i ∈ N. Die Menge aller Aussagenvariablen bezeichnen wir mit AVAR. D.h.: AVAR = {Vi : i ∈ N} = {V0 , V1 , V2 , V3 , . . .}. (b) Das Alphabet AAL der Aussagenlogik ist AAL := AVAR ∪ {0, 1, ¬, ∧, ∨, →, ↔, (, )}. Und was sind aussagenlogische Formeln? Die Syntax der Aussagenlogik Aussagenvariablen 11 / 79 Aussagenlogische Formeln Die Menge AL der aussagenlogischen Formeln (kurz: Formeln) ist die folgendermaßen rekursiv definierte Teilmenge von A∗AL : Basisregeln: (B0) 0 ∈ AL. (B1) 1 ∈ AL. (BV) Für jede Variable X ∈ AVAR gilt: X ∈ AL. Rekursive Regeln: (R1) Ist φ ∈ AL, so ist auch ¬φ ∈ AL. (R2) Ist φ ∈ AL und ψ ∈ AL, so ist auch I I I I (φ ∧ ψ) ∈ AL (φ ∨ ψ) ∈ AL (φ → ψ) ∈ AL (φ ↔ ψ) ∈ AL. Eine Formel φ gehört genau dann zu AL, wenn man φ durch (möglicherweise mehrfache) Anwendung der obigen Regeln erzeugen kann. Die Syntax der Aussagenlogik Aussagenlogische Formeln 12 / 79 Beispiele ¬V0 ∨ (V5 → V1 ) ist eine korrekt gebildete Formel. V1 ∨ V2 ∨ V3 ist keine korrekt gebildete Formel, da die Klammern fehlen, I In diesem Fall bleibt die Bedeutung aber klar (warum?). ¬ (V0 ∧ 0) ↔ ¬V3 ist hingegen wieder eine korrekte Formel, (¬V1 ) ist keine korrekte Formel, da sie zu viele Klammern besitzt. I Aber auch in diesem Fall bleibt die Bedeutung klar. Aber was soll V0 ∧ V1 ∨ V2 bedeuten? I I Möglicherweise (V0 ∧ V1 ) ∨ V2 oder V0 ∧ (V1 ∨ V2 )? Übrigens, von welcher Bedeutung reden wir überhaupt? Die Syntax der Aussagenlogik Aussagenlogische Formeln 13 / 79 Bezeichnungen (a) 0 (stets falsch), 1 (stets wahr) und die Variablen (d.h. die Elemente aus AVAR) bezeichnen wir als atomare Formeln bzw. Atome. (b) Die Symbole ¬, ∧, ∨, →, ↔ heißen Junktoren. (c) Sind φ und ψ Formeln (d.h. φ ∈ AL und ψ ∈ AL), so heißt: I I I I I ¬φ (φ ∧ ψ) (φ ∨ ψ) (φ → ψ) (φ ↔ ψ) Negation (bzw. Verneinung) von φ, Konjunktion (bzw. Verundung) von φ und ψ, Disjunktion (bzw. Veroderung) von φ und ψ, Implikation und Biimplikation (oder Äquivalenz). Die Syntax der Aussagenlogik Aussagenlogische Formeln 14 / 79 Das Leben ist schon so hart genug! Statt V0 , V1 , V2 , . . . bezeichnen wir Variablen oft auch mit A, B, C , . . . , X , Y , Z , . . . oder mit Variablen wie X 0 , Y1 , . . . n V φi bzw. φ1 ∧ · · · ∧ φn an Stelle von Wir schreiben i=1 (φ1 ∧ φ2 ) ∧ φ3 ∧ · · · ∧ φn I Analog für „∨“ an Stelle von „∧“. Die äußeren Klammern einer Formel lassen wir manchmal weg und schreiben z.B. (A ∧ B) → C an Stelle des (formal korrekten) (A ∧ B) → C . Wenn Sie eine Formel „vereinfachen“, stellen Sie sicher, dass die Bedeutung eindeutig ist. Die Syntax der Aussagenlogik Aussagenlogische Formeln 15 / 79 Beispiel für die Formulierung von Formeln (1/2) Wir möchten die Zeugenaussage „Das Fluchtauto war rot oder grün und hatte weder vorne noch hinten ein Nummernschild.“ durch eine aussagenlogische Formel repräsentieren. Dazu verwenden wir die folgenden atomaren Aussagen: XR : das Fluchtauto war rot, XG : das Fluchtauto war grün, XV : das Fluchtauto hatte vorne ein Nummernschild, XH : das Fluchtauto hatte hinten ein Nummernschild. Wir repräsentieren die Zeugenaussage durch (XR ∨ XG ) ∧ (¬XV ∧ ¬XH ) . Die Syntax der Aussagenlogik Aussagenlogische Formeln 16 / 79 Beispiel für die Formulierung von Formeln (2/2) Wir greifen das Beispiel der Geburtstagsfeier nochmal auf. Atomare Aussagen: A: Anne kommt zur Feier, B: Bernd kommt zur Feier, C : Christine kommt zur Feier, D: Dirk kommt zur Feier, E : Eva kommt zur Feier. Die vollständige Wissensrepräsentation wird durch folgende Formel gegeben: φ := E → (C ∧ D) ∧ (C → A) ∧ (B ∧ E ) → ¬D ∧ A → (B ∨ C ) ∧ (B ∧ A) → ¬E . Wie viele Personen kommen bestenfalls zur Party? Die Syntax der Aussagenlogik Aussagenlogische Formeln 17 / 79 Die Semantik der Aussagenlogik Die Syntax der Aussagenlogik Aussagenlogische Formeln 18 / 79 Die Variablen einer Formel Die Variablenmenge Var(φ) einer aussagenlogischen Formel φ ist die Menge aller Variablen X ∈ AVAR, die in φ vorkommen. Var ¬V0 ∨ (V5 → V1 ) = {V0 , V1 , V5 }, = {V0 , V3 }, Var ¬ (V0 ∧ 0) ↔ ¬V3 Var (0 ∨ 1) = ∅. Die Semantik der Aussagenlogik 19 / 79 Belegungen (a) Eine partielle Funktion B : AVAR → {0, 1} von AVAR nach {0, 1} heißt eine Belegung, bzw. Wahrheitsbelegung. I 1 steht für den Wert „wahr“ und 0 für den Wert „falsch“. (b) Eine Belegung B ist eine Belegung für die Formel φ (bzw. passend zu φ), wenn B auf allen Variablen von φ definiert ist. Eine Beispiel: Die Funktion B mit B(V0 ) = 1, B(V1 ) = 1 und B(V3 ) = 0 besitzt den Definitionsbereich {V0 , V1 , V3 }. B ist eine Belegung für V0 ∧ (V1 ∨ V3 ) oder (V0 ∧ V3 ), nicht aber für (V0 ∧ V2 ). Die Semantik der Aussagenlogik Belegungen 20 / 79 Die Semantik der Aussagenlogik (1/2) Wir definieren eine Funktion JφKB , die jeder Formel φ ∈ AL und jeder zu φ passenden Belegung B einen Wahrheitswert (kurz: Wert) JφKB ∈ {0, 1} zuordnet. Wir benutzen wieder, wie im Fall der Definition der Syntax, eine rekursive Definition über den Aufbau aussagenlogischer Formeln. 1. Zuerst definieren wir Wahrheitswerte für atomare Formeln 2. und dann für Negationen, Konjunktionen, Disjunktionen, Implikationen und Äquivalenzen. Die Semantik der Aussagenlogik Belegungen 21 / 79 Die Semantik der Aussagenlogik (2/2) Rekursionsanfang: J0KB := 0. J1KB := 1. F.a. X ∈ AVAR gilt: JX KB := B(X ). Rekursionsschritt: ( 1, falls JφKB = 0 Ist φ ∈ AL, so ist J¬φK := 0, falls JφKB = 1. Ist φ ∈ AL und ψ ∈ AL, so ist B B B I I I I J(φ ∧ ψ)KB := B := J(φ ∨ ψ)K 1, 0, falls JφK = 1 und JψK = 1 sonst 0, 1, falls JφKB = 0 und JψKB = 0 sonst 0, 1, falls JφKB = 1 und JψKB = 0 sonst 1, 0, falls JφKB = JψKB sonst. J(φ → ψ)KB := J(φ ↔ ψ)KB := Die Semantik der Aussagenlogik Belegungen 22 / 79 Beispiel Betrachte die Formel φ := ¬V0 ∨ (V5 → V1 ) . Dann ist beispielsweise die Funktion B : {V0 , V1 , V5 } → {0, 1} mit B(V0 ) := 1, B(V1 ) := 1 und B(V5 ) := 0 eine Belegung für φ. Bestimme den Wahrheitswert JφKB von φ unter Belegung B. Die Semantik der Aussagenlogik Belegungen 23 / 79 Wie bestimmt man Wahrheitswerte? Zum Beispiel mit Wahrheitstafeln! Die Semantik der Aussagenlogik Wahrheitstafel 24 / 79 Wahrheitstafel (1/2) Für jede Formel ψ kann man die Wahrheitswerte von ψ unter allen möglichen Belegungen in einer Wahrheitstafel (manchmal auch Funktionstafel genannt) darstellen. (a) Die Wahrheitstafel hat für jede Belegung B : Var(ψ) → {0, 1} eine Zeile. (b) Die Zeile für B enthält mindestens 1. f.a. X ∈ Var(ψ) die Werte B(X ) und 2. den Wert JψKB . Um die Wahrheitstafel für φ auszufüllen, ist es ratsam, auch Spalten für (alle oder einige) „Teilformeln“ von φ einzufügen. Die Semantik der Aussagenlogik Wahrheitstafel 25 / 79 Wahrheitstafel (2/2) (a) Wahrheitstafel für φ := ¬V0 ∨ (V5 → V1 ) : V0 0 0 0 0 1 1 1 1 V1 0 0 1 1 0 0 1 1 (b) Wahrheitstafel für φ := X ∧ X 0 1 Die Semantik der Aussagenlogik 1 1 1 0 0 0 (V5 → V1 ) 1 0 1 1 1 0 1 1 (1 → 0) → 0 : V5 0 1 0 1 0 1 0 1 ¬V0 1 1 1 1 0 0 0 0 (1 → 0) 0 0 Wahrheitstafel ((1 → 0) → 0) 1 1 φ 1 1 1 1 1 0 1 1 φ 0 1 26 / 79 Die intuitive Bedeutung der Semantik (1/3) Atomare Formeln: I I 1 und 0 bedeuten einfach „wahr“ und „falsch“. Die Variablen X ∈ AVAR stehen für irgendwelche Aussagen. Uns interessiert hier nur, ob diese Aussagen „wahr“ oder „falsch“ sind — und dies wird durch eine Belegung B angegeben. Negation: ¬φ bedeutet „nicht φ“. Zugehörige Wahrheitstafel: JφKB 0 1 Die Semantik der Aussagenlogik J¬φKB 1 0 Wahrheitstafel 27 / 79 Die intuitive Bedeutung der Semantik (2/3) Konjunktion: (φ ∧ ψ) bedeutet „φ und ψ“. Zugehörige Wahrheitstafel: JφKB JψKB J(φ ∧ ψ)KB 0 0 0 0 1 0 0 1 0 1 1 1 Disjunktion: (φ ∨ ψ) bedeutet „φ oder ψ“. Zugehörige Wahrheitstafel: JφKB JψKB J(φ ∨ ψ)KB 0 0 0 0 1 1 1 0 1 1 1 1 Die Semantik der Aussagenlogik Wahrheitstafel 28 / 79 Die intuitive Bedeutung der Semantik (3/3) Implikation: (φ → ψ) bedeutet „φ impliziert ψ“, d.h. „wenn φ, dann auch ψ“. Zugehörige Wahrheitstafel: JφKB JψKB J(φ → ψ)KB 0 0 1 1 0 1 1 0 0 1 1 1 Äquivalenzen: (φ ↔ ψ) bedeutet „φ gilt genau dann, wenn ψ gilt“. Zugehörige Wahrheitstafel: JφKB JψKB J(φ ↔ ψ)KB 0 0 1 0 1 0 1 0 0 1 1 1 Die Semantik der Aussagenlogik Wahrheitstafel 29 / 79 „Oder“ versus „Entweder oder“ Der Sprachgebrauch für „oder“ ist unscharf und meint manchmal wie oben ein „inklusives oder“, bzw das „exklusive oder“. (a) Das „inklusive oder“: Die Formel φ ∨ ψ ist nur dann falsch unter einer Belegung B , wenn φ wie auch ψ unter B falsch sind, d.h. wenn JφKB = JψKB = 0. (b) Das „exklusive oder“ (oder „XOR“): Man verwendet den neuen Junktor ⊕ und(definiert seine Bedeutung durch 0, falls JφKB = JψKB Jφ ⊕ ψKB := 1, sonst. Unter welchen Belegungen B ist JV1 ⊕ (V2 ⊕ V3 )KB wahr? Sind Klammern notwendig? Die Semantik der Aussagenlogik Wahrheitstafel 30 / 79 Zurück zum „Geburtstagsproblem“ Sei φ die Formel aus dem Geburtagsproblem. Die Frage „Wie viele (und welche) Freunde werden bestenfalls zur Party kommen?“ können wir lösen, in dem wir 1. die Wahrheitstafel für φ ermitteln, 2. alle Zeilen heraussuchen, in denen in der mit „φ“ beschrifteten Spalte der Wert 1 steht und 3. aus diesen Zeilen all jene heraussuchen, bei denen in den mit A, B, C , D, E beschrifteten Spalten möglichst viele Einsen stehen. Jede dieser Zeilen repräsentiert dann eine größtmögliche Konstellation von gleichzeitig erscheinenden Freunden. Die Semantik der Aussagenlogik Das Geburtstagsproblem 31 / 79 A B C D E 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Die Semantik der Aussagenlogik E → (C ∧ D) 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 C→A 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 (B ∧ E) → ¬D 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 Das Geburtstagsproblem A → (B ∨ C) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 (B ∧ A) → ¬E 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 ϕ 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 32 / 79 Das Geburtstagsproblem: Die Lösung Es gibt keine Zeile mit genau 5 Einsen, aber genau zwei Zeilen mit insgesamt 4 Einsen in den mit A bis E beschrifteten Spalten: Es handelt sich um die beiden Belegungen B1 und B2 mit B1 (A) = B1 (C ) = B1 (D) = B1 (E ) = 1 und B1 (B) = 0 und B2 (A) = B2 (B) = B2 (C ) = B2 (D) = 1 und B2 (E ) = 0. Bestenfalls werden 4 der 5 Freunde kommen, und dafür gibt es zwei Möglichkeiten, nämlich (1) dass alle außer Bernd kommen, und (2) dass alle außer Eva kommen. Die Semantik der Aussagenlogik Das Geburtstagsproblem 33 / 79 Widersprüche und Tautologien Die Semantik der Aussagenlogik Erfüllbarkeit und Tautologien 34 / 79 Erfüllbare, widersprüchliche und allgemeingültige Formeln Sei φ eine aussagenlogische Formel. (a) φ heißt erfüllbar, wenn es mindestens eine erfüllende Belegung B für φ gibt. I Die Belegung B passt zu φ und es gilt JφKB = 1. (b) φ heißt unerfüllbar (oder widersprüchlich), wenn es keine erfüllende Belegung für φ gibt. (c) φ heißt allgemeingültig (oder eine Tautologie), wenn jede zu φ passende Belegung φ erfüllt, I d.h. wenn JφKB = 1 für jede zu φ passende Belegung B gilt. Die Semantik der Aussagenlogik Erfüllbarkeit und Tautologien 35 / 79 Beispiele (a) Die Formel (X ∨ Y ) ∧ (¬X ∨ Y ) ist erfüllbar, I I denn die Belegung B mit B(X ) = 0 und B(Y ) = 1 erfüllt die Formel, aber nicht allgemeingültig, denn die Belegung B0 mit B0 (X ) = 0 und B0 (Y ) = 0 erfüllt die Formel nicht. (b) Die Formel (X ∧ ¬X ) ist unerfüllbar (oder widersprüchlich), da für jede zur Formel passenden Belegung B entweder B(X ) = 1 oder B(X ) = 0 gilt. I I Ist B(X ) = 1, so gilt: J(X ∧ ¬X )KB = 1 ∧ 0 = 0, Ist B(X ) = 0, so gilt: J(X ∧ ¬X )KB = 0 ∧ 1 = 0. (c) Die Formel (X ∨ ¬X ) ist allgemeingültig, da für jede zur Formel passenden Belegung B entweder B(X ) = 1 oder B(X ) = 0 gilt. Die Semantik der Aussagenlogik Erfüllbarkeit und Tautologien 36 / 79 Und nochmals Wahrheitstafeln Für jede aussagenlogische Formel φ gilt: (a) φ ist erfüllbar ⇐⇒ (b) φ ist unerfüllbar ⇐⇒ (c) φ ist allgemeingültig ⇐⇒ (d) φ ist allgemeingültig ⇐⇒ Die Semantik der Aussagenlogik in der Wahrheitstafel für φ steht in der mit „φ“ beschrifteten Spalte mindestens eine 1. in der Wahrheitstafel für φ stehen in der mit „φ“ beschrifteten Spalte nur Nullen. in der Wahrheitstafel für φ stehen in der mit „φ“ beschrifteten Spalte nur Einsen. ¬φ ist unerfüllbar. Erfüllbarkeit und Tautologien 37 / 79 Semantische Folgerung und Äquivalenz Die Semantik der Aussagenlogik Semantische Folgerung und Äquivalenz 38 / 79 (Semantische) Folgerung φ und ψ seien zwei aussagenlogische Formeln. Wir sagen ψ folgt aus φ bzw. φ impliziert ψ und schreiben φ |= ψ, falls Jφ → ψKB = 1 für jede zu φ und ψ passende Belegung B gilt. Oder äquivalent dazu: Für jede Belegung B mit JφKB = 1 gilt stets JψKB = 1, bzw. φ → ψ ist allgemeingültig. Oder äquivalent dazu: In jeder Zeile der Wahrheitstafel, in der eine 1 in der Spalte von φ steht, muss auch eine 1 in der Spalte von ψ stehen. Die Semantik der Aussagenlogik Semantische Folgerung und Äquivalenz 39 / 79 Ein Beispiel Wir betrachten φ := (X ∨ Y ) ∧ (¬X ∨ Y ) und ψ := Y ∨ (¬X ∧ ¬Y ) . Wir stellen die Wahrheitstafel für φ und ψ auf: X Y (X ∨ Y ) (¬X ∨ Y ) φ 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 In jeder Zeile, in der eine 1 in der Spalte von „φ“ steht, steht auch in der Spalte von „ψ“ eine 1. I ψ 1 1 0 1 Somit gilt φ |= ψ. Aber in Zeile 1, also für die Belegung B mit B(X ) = 0 und B(Y ) = 0, steht in der Spalte von “ψ“ eine 1 und in der Spalte von “φ“ eine 0. I I Es gilt also JψKB = 1 und JφKB = 0. Daher gilt ψ 6|= φ. Die Semantik der Aussagenlogik Semantische Folgerung und Äquivalenz 40 / 79 Wie passt das alles zusammen? Seien φ und ψ beliebige aussagenlogische Formeln. Dann gilt: (a) 1 |= φ ⇐⇒ φ ist allgemeingültig, (b) φ |= 0 ⇐⇒ φ ist unerfüllbar, (c) φ |= ψ ⇐⇒ (φ → ψ) ist allgemeingültig und (d) φ |= ψ ⇐⇒ (φ ∧ ¬ψ) ist unerfüllbar. Die Semantik der Aussagenlogik Semantische Folgerung und Äquivalenz 41 / 79 Logische Äquivalenz Zwei aussagenlogische Formeln φ und ψ heißen äquivalent, kurz: φ ≡ ψ, wenn für alle zu φ und ψ passenden Belegungen B gilt: JφKB = JψKB . φ und ψ sind genau dann äquivalent, wenn in ihrer Wahrheitstafel die Spalten von φ und ψ übereinstimmen, denn genau dann gilt JφKB = JψKB für alle zu φ und ψ passenden Belegungen B. Die Semantik der Aussagenlogik Semantische Folgerung und Äquivalenz 42 / 79 Ein Beispiel Sind φ := X ∧ (X ∨ Y ) und ψ := X äquivalent? Wir stellen die Wahrheitstafel auf: X Y (X ∨ Y ) 0 0 0 0 1 1 1 0 1 1 1 1 φ 0 0 1 1 ψ 0 0 1 1 Die Spalte von „φ“ stimmt überein mit der Spalte von „ψ“: Es folgt φ ≡ ψ. Die Semantik der Aussagenlogik Semantische Folgerung und Äquivalenz 43 / 79 Wie passt das alles zusammen? Seien φ und ψ aussagenlogische Formeln. Dann gilt: (a) φ ≡ ψ ⇐⇒ (φ ↔ ψ) ist allgemeingültig ⇐⇒ φ |= ψ und ψ |= φ. (b) φ ist allgemeingültig ⇐⇒ φ ≡ 1. (c) φ ist erfüllbar ⇐⇒ φ 6≡ 0, d.h. „φ ≡ 0“ gilt nicht. Die Semantik der Aussagenlogik Semantische Folgerung und Äquivalenz 44 / 79 Fundamentale Äquivalenzen (1/2) Seien φ, ψ und χ aussagenlogische Formeln. Dann gilt: (a) Idempotenz: I I (φ ∧ φ) ≡ φ (φ ∨ φ) ≡ φ (b) Kommutativität: I I (φ ∧ ψ) ≡ (ψ ∧ φ) (φ ∨ ψ) ≡ (ψ ∨ φ) (c) Assoziativität: I I ((φ ∧ ψ) ∧ χ) ≡ (φ ∧ (ψ ∧ χ)) ((φ ∨ ψ) ∨ χ) ≡ (φ ∨ (ψ ∨ χ)) (d) Absorption: I I (φ ∧ (φ ∨ ψ)) ≡ φ (φ ∨ (φ ∧ ψ)) ≡ φ (e) Distributivität: I I (φ ∧ (ψ ∨ χ)) ≡ ((φ ∧ ψ) ∨ (φ ∧ χ)) (φ ∨ (ψ ∧ χ)) ≡ ((φ ∨ ψ) ∧ (φ ∨ χ)) Die Semantik der Aussagenlogik Semantische Folgerung und Äquivalenz 45 / 79 Fundamentale Äquivalenzen (2/2) (f) Doppelte Negation: I ¬¬φ ≡ φ (g) De Morgansche Regeln: I I ¬(φ ∧ ψ) ≡ (¬φ ∨ ¬ψ) ¬(φ ∨ ψ) ≡ (¬φ ∧ ¬ψ) (h) Tertium non Datur: I I (φ ∧ ¬φ) ≡ 0 (φ ∨ ¬φ) ≡ 1 (i) True/False 1 I I I I (φ ∧ 1) ≡ φ (φ ∧ 0) ≡ 0 (φ ∨ 1) ≡ 1 (φ ∨ 0) ≡ φ (j) True/False 2 I I 1 ≡ ¬0 0 ≡ ¬1 (k) Elimination der Implikation: I (φ → ψ) ≡ (¬φ ∨ ψ) (l) Elimination der Äquivalenz: I (φ ↔ ψ) ≡ ((φ → ψ) ∧ (ψ → φ)) Die Semantik der Aussagenlogik Semantische Folgerung und Äquivalenz 46 / 79 Logisches Schließen Wir können die obigen Folgerungen und Äquivalenzen auch als Schlußregeln auffassen. Durch schrittweises Anwenden der Äquivalenzen kann man eine gegebene aussagenlogische Formel in eine zu ihr äquivalente Formel umformen. Durch schrittweises Anwenden der Folgerungen erhalten wir eine implizierte Formel. Beispiel: Sind φ und ψ aussagenlogische Formeln, so gilt (φ ↔ ψ) Die Semantik der Aussagenlogik ≡ (φ → ψ) ∧ (ψ → φ) ≡ (¬φ ∨ ψ) ∧ (¬ψ ∨ φ) Semantische Folgerung und Äquivalenz 47 / 79 Hoppela Etwas zu den vielen Äquivalenzen Ähnliches haben wir doch schon im Abschnitt „Mengenalgebra“ gesehen! Eine boolesche Algebra (B, ∧, ∨, ¬) besteht aus einer Trägermenge B und den Funktionen ∧, ∨ : B × B → B, bzw. der Funktion ¬ : B → B. Es ist 0, 1 ∈ B und die folgenden Gleichheiten gelten für alle a, b, c ∈ B: Kommutativität: a ∧ b = b ∧ a a∨b =b∨a Distributivität: a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c) a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c) True/False 1: a∧1=a a∨0=a True/False 2: ¬0 = 1 ¬1 = 0. Die Semantik der Aussagenlogik Boolesche Algebra 48 / 79 Boolesche Algebra Wir kennen bereits zwei Beispiele boolescher Algebren, nämlich 1. Die Mengenalgebra (P(U), ∩, ∪, Komplement) für jede Menge U. I I Die Mengenalgebra besteht aus allen Teilmengen von U und besitzt die Operation „Durchschnitt“, „Vereinigung“ sowie die „Komplementbildung“. 2. Die Aussagenlogik ({0, 1}, ∧, ∨, ¬). Man trifft sich im Leben immer zweimal. Die Semantik der Aussagenlogik Boolesche Algebra 49 / 79 Wir bauen eine disjunktive Normalform aus einer Wahrheitstafel Normalformen DNFs 50 / 79 Literale, Konjunktionsterme und disjunktive Normalformen (a) Ein Literal ` ist eine Formel der Form ` = X oder ` = ¬X mit X ∈ AVAR, d.h. X ist eine Aussagenvariable. I I Das Literal X wird auch positives Literal genannt, das Literal ¬X heißt negatives Literal. (b) Eine Konjunktion von (positiven oder negativen) Literalen heißt ein Konjunktionsterm (bzw. eine konjunktive Klausel). (c) Eine Disjunktion φ= mi m ^ _ i=1 von Konjunktionstermen Vmi j=1 `i,j ! `i,j j=1 ist in disjunktiver Normalform (DNF), wenn m, m1 , . . . , mn ∈ N>0 und `i,j für jedes i ∈ {1, . . . , m}, j ∈ {1, . . . , mi } ein Literal ist. Normalformen DNFs 51 / 79 Wahrheitstafel ⇒ DNF (1/2) Die Wahrheitstafel T sei gegeben: Baue eine DNF φ mit T als Wahrheitstafel. 1. Sei z eine Zeile der Wahrheitstafel T I I z heißt eine 1-Zeile, wenn in der Spalte des Wahrheitswerts eine „1“ steht. Steht in der Spalte des Wahrheitswerts aber eine „0“, nennen wir z eine 0-Zeile. 2. Um eine DNF zu bauen, I I baue zuerst für jede 1-Zeile z einen Konjunktionsterm, der von der Belegung von z erfüllt wird, aber von allen anderen Belegungen verworfen wird. Dann veroder e all diese Konjunktionsterme! Ein Konjunktionsterm K ist ein Minterm, wenn jede Variable entweder als positives oder negatives Literal in K vorkommt. Normalformen DNFs 52 / 79 Wahrheitstafel ⇒ DNF (2/2) Die Wahrheitstafel T sei gegeben: Baue eine DNF φ mit T als Wahrheitstafel. 1. Für jede 1-Zeile z mit Belegung Bz : AVAR → {0, 1} konstruiere den Minterm von z, als den Konjunktionsterm der von Bz erfüllt, aber von allen anderen Belegungen verworfen wird. Der Minterm von z hat also die Form ^ ^ Vi ∧ ¬Vj . i:Bz (Vi )=1 j:Bz (Vj )=0 . 2. Die Disjunktion φ= _ K, K ist der Minterm einer 1-Zeile (also die „Veroderung“ aller Minterme zu 1-Zeilen der Wahrheitstafel) heißt kanonische DNF. Normalformen DNFs 53 / 79 DNFs: Ein erstes Beispiel Betrachte die Wahrheitstafel T : X 0 0 0 0 1 1 1 1 Y 0 0 1 1 0 0 1 1 Z 0 1 0 1 0 1 0 1 φ 1 0 0 0 1 1 0 0 Es gibt genau drei 1-Zeilen (für die in der „Spalte von φ“ eine 1 steht), nämlich X 0 1 1 Y 0 0 0 Z 0 0 1 φ 1 1 1 zur Belegung der Zeile gehörender Minterm: ¬X ∧ ¬Y ∧ ¬Z X ∧ ¬Y ∧ ¬Z X ∧ ¬Y ∧ Z Wir erhalten die zur Wahrheitstafel T passende kanonische DNF φ := (¬X ∧ ¬Y ∧ ¬Z ) ∨ (X ∧ ¬Y ∧ ¬Z ) ∨ (X ∧ ¬Y ∧ Z ). Normalformen DNFs 54 / 79 Implikant und Primimplikant Um mit DNFs effizient arbeiten zu können, versuchen wir DNFs mit möglichst wenigen Konjunktionstermen zu erhalten. (a) Ein Konjunktionsterm M heißt ein Implikant der Formel φ, wenn M |= φ gilt. Ein Implikant von φ „impliziert“ also die Formel φ. (b) Ein Implikant M heißt ein Primimplikant, wenn M nicht verkürzbar ist, wenn also M, nach Streichen irgendeines Literals kein Implikant von φ mehr ist. Normalformen Implikanten und Primimplikanten 55 / 79 Satz von Quine Warum haben wir den Begriff eines Primimplikanten eingeführt? Jede DNF mit einer kleinstmöglichen Anzahl von Konjunktionstermen ist eine Disjunktion von Primimplikanten. Beweis: Siehe Tafel. In der Veranstaltung „Hardware Architekturen und Rechensysteme“ lernen Sie das Quine-McCluskey Verfahren kennen, das alle Primplikanten bestimmt und dann versucht eine möglichst kleine DNF zu „bauen“. Normalformen Implikanten und Primimplikanten 56 / 79 Minimierung von DNFs: Beispiele (1/2) Im letzten Beispiel haben wir die kanonische DNF φ := (¬X ∧ ¬Y ∧ ¬Z ) ∨ (X ∧ ¬Y ∧ ¬Z ) ∨ (X ∧ ¬Y ∧ Z ). gefunden. 1. Welche Primimplikanten hat φ? 2. Besitzt φ eine kleinere DNF? Antworten: Siehe Tafel. Normalformen Implikanten und Primimplikanten 57 / 79 Minimierung von DNFs: Beispiele (2/2) X1 , . . . , Xn , Y1 , . . . , Yn seien aussagenlogische Variablen. Betrachte die Formel ψn := n _ (Xi ⊕ Yi ). i=1 1. Wieviele 0-Zeilen hat die Wahrheitstafel für φn ? Aus wievielen Konjunktionstermen besteht die zu ψ äquivalente kanonische KNF für ψ? 2. Wieviele Primimplikanten hat ψ? ψn hat die DNF ψn = n _ (Xi ∧ ¬Yi ) ∨ i=1 n _ (¬Xi ∧ Yi ) i=1 mit 2n Konjunktionstermen, die kanonische DNF für ψn besteht aber aus 2n Konjunktionstermen! Die Minimierung von DNFs ist ein wichtiges Problem. Normalformen Implikanten und Primimplikanten 58 / 79 Achtung, Achtung, Achtung! Gibt es aber immer kleine DNFs? X1 , . . . , Xn , Y1 , . . . , Yn seien aussagenlogische Variablen. Betrachte die Formel φn := n ^ (Xi ↔ Yi ). i=1 Dann hat jede zu φn äquivalente Formel in DNF mindestens 2n Konjunktionsterme. Beweis: Siehe Übungen. Normalformen Implikanten und Primimplikanten 59 / 79 Die konjunktive Normalform Normalformen KNFs 60 / 79 Disjunktionsterme und KNFs Ein Disjunktionsterm (oder eine (disjunktive) Klausel) ist eine Disjunktion von Literalen. Eine Konjunktion φ= mi m ^ _ i=1 ! `i,j j=1 Wmi von Disjunktionstermen j=1 `i,j ist in konjunktiver Normalform (KNF), wenn m, m1 , . . . , mn ∈ N>0 und `i,j für jedes i ∈ {1, . . . , m}, j ∈ {1, . . . , mi } ein Literal ist. Normalformen KNFs 61 / 79 KNFs: Beispiele DNFs für φn = n ^ Xi ↔ Yi i=1 benötigen viele Konjunktionsterme. Aber φn hat doch eine „kleine“ KNF :-))) Wie erhält man eine konjunktive Normalform aus einer Wahrheitstafel? Normalformen KNFs 62 / 79 Wahrheitstafel ⇒ KNF (1/2) Die Wahrheitstafel T sei gegeben: Baue eine KNF φ mit T als Wahrheitstafel. 1. Die Idee: Schließe die Belegungen aller 0-Zeilen mit Disjunktionstermen aus. 2. Wie schließen wir die Belegung einer 0-Zeile z aus? I I baue einen Disjunktionsterm, der von der Belegung von z verworfen wird, aber von allen anderen Belegungen erfüllt wird. Verwende den negierten Minterm von z. 3. Dann verunde all negierten Minterme von 0-Zeilen! Ein Disjunktionsterm D ist ein Maxterm, wenn jede Variable entweder als positives oder negatives Literal in D vorkommt. Normalformen KNFs 63 / 79 Wahrheitstafel ⇒ KNF (2/2) Die Wahrheitstafel T sei gegeben: Baue eine KNF φ mit T als Wahrheitstafel. 1. Für jede 0-Zeile z mit Belegung Bz : AVAR → {0, 1} konstruiere den Maxterm von z, als den Disjunktionsterm der von Bz verworfen, aber von allen anderen Belegungen erfüllt wird. Der Maxterm von z hat also die Form _ _ ¬Vi ∨ Vj . i:Bz (Vi )=1 j:Bz (Vj )=0 . 2. Die Konjunktion φ= ^ K, K ist der Maxterm einer 0-Zeile also die „Verundung“ aller Maxterme zu 0-Zeilen der Wahrheitstafel, heißt kanonische KNF. Normalformen KNFs 64 / 79 KNFs: Beispiele Wir betrachten wieder die Wahrheitstafel T : X 0 0 0 0 1 1 1 1 Y 0 0 1 1 0 0 1 1 Z 0 1 0 1 0 1 0 1 φ 1 0 0 0 1 1 0 0 Um die kanonische KNF zu bestimmen, müssen wir die Maxterme zu allen 0-Zeilen bestimmen und verunden. Wie sieht die kanonische KNF in diesem Beispiel aus? Siehe Tafel Normalformen KNFs 65 / 79 DNFs und KNFs Normalformen spielen in vielen Anwendungsgebieten eine wichtige Rolle. Beispielsweise geht man in der Schaltungstechnik (Hardware-Entwurf) oft von DNF- oder KNF-Formeln aus, während bei der Wissensrepräsentation oftmals nur KNF-Formeln auftreten, da sich eine Sammlung einfach strukturierter Aussagen durch eine Konjunktion von Klauseln ausdrücken lässt. Für jede aussagenlogische Formel φ gibt es eine Formel ψD in DNF und eine Formel ψK in KNF, so dass φ ≡ ψD und φ ≡ ψK . Jede Formel ist äquivalent zu einer Formel in DNF und zu einer Formel in KNF. Normalformen KNFs 66 / 79 Boolesche Funktionen und Formeln Normalformen Boolesche Funktionen 67 / 79 Boolesche Funktionen Eine Funktion f : X → Y heißt eine boolesche Funktion, wenn (a) Y = {0, 1} und (b) wenn es eine natürliche Zahl n ∈ N mit X = {0, 1}n gibt. Beispiele: (a) Die boolesche Funktion Undn : {0, 1}n → {0, 1} nimmt genau dann den Wert 1 für Eingabe x an, wenn x = 1n . (b) Die Paritätsfunktion ⊕n ist die boolesche Funktion ⊕n : {0, 1}n → {0, 1} mit der rekursiven Definition ⊕1 (x1 ) = x1 und 0 ⊕n (x1 , . . . , xn ) = xn+1 ⊕n+1 (x1 , . . . , xn+1 ) = 1 sonst. Das „Paritätsbit“ p = ⊕n (x1 , . . . , xn ) ändert sich, wenn genau ein Bit „geflippt“ wird (warum?) und wird deshalb zur Fehlererkennung eingesetzt. Normalformen Boolesche Funktionen 68 / 79 Boolesche Funktionen und Formeln Boolesche Funktionen und Formeln der Aussagenlogik sind äquivalente Konzepte. (a) Für eine Formel φ mit |VAR(φ)| = n bilde die Wahrheitstafel und definiere die boolesche Funktion fφ : {0, 1}n → {0, 1} für die Formel φ durch fφ (x ) = Wahrheitswert der Zeile von x . (b) Für eine boolesche Funktion f : {0, 1}n → {0, 1} bilde die Wahrheitstafel, die in Zeile x den Wahrheitswert f (x ) besitzt. Dann bestimme die DNF φf zur Wahrheitstafel: φf ist eine Formel für die boolesche Funktion f. Der Entwurf von Schaltungen für boolesche Funktionen ist ein wichtiges Ziel der technischen Informatik. Normalformen Boolesche Funktionen 69 / 79 Haben boolesche Funktionen immer kleine DNFs oder kleine KNFs? Wir erinnern an die Paritätsfunktion ⊕n : {0, 1}n → {0, 1}. Dann hat (a) jede DNF für ⊕n mindestens 2n−1 Konjunktionsterme und (b) jede KNF für ⊕n mindestens 2n−1 Disjunktionsterme. Beweis: Siehe Übungen. Es gibt also boolesche Funktionen, die sich weder durch DNFs noch durch KNFs kurz beschreiben lassen! Normalformen Boolesche Funktionen 70 / 79 Wie groß sind denn Wahrheitstafeln? Normalformen Die Größe von Wahrheitstafeln 71 / 79 Die Größe von Wahrheitstafeln (1/2) Sei φ eine aussagenlogische Formel und sei n := | Var(φ)| die Anzahl der in φ vorkommenden Variablen. Dann gibt es 2n verschiedene zu φ passende Belegungen B. (a) Eine zu φ passende Belegung B ist eine Funktion, die jede Variable in Var(φ) auf einen Wahrheitswert abbildet. (b) Wie viele Funktionen B : Var(φ) → {0, 1} gibt es? I Genau |Abb(Var(φ), {0, 1})| = |{0, 1}|| Var(φ)| = 2n viele. Normalformen Die Größe von Wahrheitstafeln 72 / 79 Die Größe von Wahrheitstafeln (2/2) Die Wahrheitstafel einer Formel mit n Variablen hat genau 2n Zeilen. Ist das gut oder schlecht? n (Anzahl Variablen) 2n 10 20 30 40 50 60 210 220 230 240 250 260 (Anzahl Zeilen der Wahrheitstafel) = 1.024 = 1.048.576 = 1.073.741.824 = 1.099.511.627.776 = 1.125.899.906.842.624 = 1.152.921.504.606.846.976 ≈ ≈ ≈ ≈ ≈ ≈ 103 106 109 1012 1015 1018 Zum Vergleich: Das Alter des Universums wird auf 13, 7 Milliarden Jahre, das sind ungefähr 1018 Sekunden, geschätzt. Normalformen Die Größe von Wahrheitstafeln 73 / 79 Das aussagenlogische Erfüllbarkeitsproblem (KNF-SAT) Eingabe: Eine aussagenlogische Formel φ in KNF. Frage: Ist φ erfüllbar? Normalformen SAT 74 / 79 Wie schwierig ist das Erfüllbarkeitsproblem? (1/3) Natürlich kann man das Erfüllbarkeitsproblem mit einer Wahrheitstafel lösen. I I Teste, ob es in der mit „φ“ beschrifteten Spalte mindestens eine 1 gibt. Aber die Wahrheitstafel hat exponentiell viele Zeilen, nämlich 2n Zeilen, wenn φ von n Variablen abhängt. Ein unter dem Stichwort SAT-Solving bekannter Teilbereich der Informatik versucht, wesentlich effizientere Verfahren zu entwickeln. Solche Verfahren können nicht für alle Formeln schnell sein, denn in der Veranstaltung „Theoretische Informatik 1“ (3. Semester) wird gezeigt: Satz von Cook KNF-SAT ist NP-vollständig. Normalformen SAT 75 / 79 Wie schwierig ist das Erfüllbarkeitsproblem? (2/3) Eine präzise Definition des Begriffs „NP-vollständig“ wird in der Theoretischen Informatik 1 gegeben. I Grob gesagt bedeutet die NP-Vollständigkeit von KNF-SAT, dass es wahrscheinlich kein effizientes Verfahren gibt, das KNF-SAT für alle Eingabeformeln löst. :-(( F F Ein Verfahren wird effizient gennant, wenn das Verfahren „relativ schnell“ Antworten selbst für große Eingaben findet. Genauer: Die Laufzeit muss polynomiell in der Eingabelänge sein! Einige Heuristiken (die so genannten SAT-Solver) lösen KNF-SAT trotzdem für viele Eingabe-Formeln erstaunlich effizient. I I Ich muss hoffen, dass ich für meine Eingabe-Formel ein Verfahren finde, dass meine Formel schnell genug löst. Aber es gibt wahrscheinlich kein „einigermaßen“ schnelles Verfahren für alle Formeln! Wie arbeiten denn diese SAT-Solver? Normalformen SAT 76 / 79 Wie schwierig ist das Erfüllbarkeitsproblem? (3/3) Wenn die Disjunktionsterme ` ∨ E1 und ¬` ∨ E2 wahr sind, dann ist auch E1 ∨ E2 wahr. Man sagt, dass E1 ∨ E2 in einem Resolutionsschritt aus ` ∨ E1 und ¬` ∨ E2 ableitbar ist. Wir sollen feststellen, ob die KNF φ = D1 ∧ D2 ∧ · · · ∧ Dm erfüllbar ist! :-)) Wenn der leere Disjunktionsterm in einer Folge von Resolutionsschritten aus den Disjunktionstermen D1 , . . . , Dm ableitbar ist, dann ist φ unerfüllbar! :-)) Man kann zeigen: Ist φ unerfüllbar, dann gibt es einen Resolutionsbeweis, I I also eine Folge von Resolutionsschritten ausgehend von den Disjunktionstermen D1 , . . . , Dm , so dass am Ende der leere Disjunktionsterm produziert wird. :-(( Leider, leider gibt es aber KNFs, deren Unerfüllbarkeit nur mit exponentiell vielen Resolutionsschritten nachgewiesen werden kann! I I Nicht nur ist das Finden eines „Resolutionsbeweises“ kompliziert, sondern mgl. gibt es nur sehr, sehr lange Beweise. Normalformen SAT 77 / 79 Resolution: Ein Beispiel 1. Die Kunden der Bahn sind nicht zufrieden, wenn I I sich die Preise erhöhen: P → ¬Z , bzw. ¬P ∨ ¬Z , oder sich die Fahrzeiten verlängern: F → ¬Z , bzw. ¬F ∨ ¬Z . 2. Wenn der Frankfurter Kopfbahnhof nicht in einen Durchgangsbahnhof umgebaut wird, verlängern sich die Fahrzeiten: ¬B → F , bzw. B ∨ F . 3. Der Bahnhof kann nur dann umgebaut werden, wenn die Fahrpreise erhöht werden: B → P, bzw. ¬B ∨ P. Die Bahn kann es niemandem recht machen, denn die KNF (¬P ∨ ¬Z ) ∧ (¬F ∨ ¬Z ) ∧ (B ∨ F ) ∧ (¬B ∨ P) ∧ Z . ist unerfüllbar. Wie sieht ein Resolutionsbeweis aus? Normalformen SAT 78 / 79 Model Checking mit SAT-Solvern (a) Wir haben ein System (z.B. eine Schaltung, ein Softwarepaket) entwickelt und haben einige Eigenschaften des Systems durch eine Formel φ ∈ AL modelliert. (b) Wir müssen überprüfen, ob das System die Eigenschaft ψ erfüllt: D.h. gilt φ |= ψ? Wenn φ als KNF und ψ als DNF vorliegt, dann überprüfe, ob die KNF φ ∧ ¬ψ unerfüllbar ist! Und wie? Mit einem SAT-Solver. Normalformen SAT 79 / 79