1 Aussagenlogik, Syntax Das Alphabet der Sprache der Aussagenlogik besteht erstens aus den Aussagenvariablen“ p1 , p2 , . . . ” und zweitens aus den Junktoren ∧, ∨, ¬, →, ↔ (bei Bedarf auch noch aus weiteren Junktoren wie zB ←), sowie den Klammern, und den Zeichen > und ⊥. Formeln (in Infixnotation) sind so definiert: Formeln sind gewisse Zeichenfolgen (Strings), die Symbole aus dem Alphabet enthalten, und zwar die folgenden: 1. Aussagenvariable sind Formeln, 2. > und ⊥ sind Formeln. 3. Wann immer A und B Formeln sind, dann sind auch die folgenden Strings Formeln: – (A ∧ B), die Konjunktion von A und B (manchmal auch (A&B) geschrieben). – (A ∨ B), die Disjunktion von A und B – (A → B), die Implikation – (A ↔ B), die Äquivalenz von A und B. – (¬A), die Negation von A 4. Das sind alle Formeln. Anders gesagt: WANN IMMER E( · ) eine Eigenschaft von Zeichenfolgen ist, und erstens E(pi ) für alle pi gilt, sowie auch E(>) und E(⊥), und zweitens gilt: Wenn ” E(A) und E(B), dann auch E(A ∧ B), E(A ∨ B), etc“, DANN gilt E(A) für alle Formeln A. Man kann zeigen, dass Formeln eindeutig lesbar“ sind; das heißt, jede Formel hat genau eine der ” angegebenen Formen (Aussagenvariable, Konjunktion, Disjunktion, etc), und die Bestandteile der Formel sind eindeutig bestimmt (zB kann (A ∧ B) = (A0 ∧ B 0 ) für Formeln A und B nur dann gelten, wenn A = A0 und B = B 0 ist). Varianten In der Postfixschreibweise schreibt man statt (A ∧ B) die Formel AB∧ (analog für die anderen Junktoren), in Prefixschreibweise schreibt man ∧AB. Statt A ∧ (A → C) schreibt man dann AAC→∧ bzw. ∧A→AC. 2 Aussagenlogik, Semantik Eine Wahrheitsfunktion ist eine Funktion w, 1. deren Wertebereich ran(w) in der Menge {0, 1} enthalten ist 2. deren Definitionsbereich dom(w) in der Menge aller Formeln enthalten ist, und unter Unterformeln abgeschlossen ist (d.h., wenn (A ∧ B) ∈ dom(w), dann auch A ∈ dom(w), B ∈ dom(w), 3. und die mit Junktoren richtig“ umgeht: ” • w(A ∧ B) = 1 wenn w(A) = 1 und w(B) = 1 [und w(A ∧ B) = 0 sonst] • w(A ∨ B) = 0 wenn w(A) = 0 und w(B) = 0 [und w(A ∨ B) = 1 sonst] • w(¬A) = 1 wenn w(A) = 1 [und w(¬A) = 0 sonst] • w(A → B) = 0 wenn w(A) = 1 und w(B) = 0 [und w(A → B) = 1 sonst] • w(A ↔ B) = 1 wenn w(A) = w(B) [und w(A ↔ B) = 0 sonst] • w(>) = 1, w(⊥) = 0. Spezielle Wahrheitsfunktionen sind die Belegungen, das sind Wahrheitsfunktionen, die nur auf (manchen) Aussagenvariablen definiert sind. Offensichtlich (?) gilt: Jede Belegung b, die auf allen Variablen definiert ist, läßt sich auf eindeutige Weise zu einer totalen Wahrheitsfunktion b̄ fortsetzten. Der Wert b̄(A) hängt nur von den Werten b(pi ) ab, für jene pi die in A vorkommen. Jede partielle Belegung b läßt sich auf eindeutige Weise zu einer Wahrheitsfunktion fortsetzen, die auf all jenen Formeln definiert ist, die nur Variable aus dom(b) verwenden. Statt b̄(A) = 1 sagen wir auch b macht A wahr“, oder b erfüllt A“. Manchmal schreibt man ” ” auch b |= A“. ” 1 Wir nennen eine Formel A Tautologie“, wenn b̄(A) = 1 für alle Belegungen b ist. (Hier muss man ” offenbar nur jene endlichen vielen Belegungen b untersuchen, die auf den Variablen von A definiert sind.) A heißt Kontradiktion“ oder unerfüllbar“, wenn (¬A) Tautologie ist. A heißt erfüllbar, wenn ” ” ” es eine Belegung b mit b̄(A) = 1 gibt. Die Bedeutung einer Formel A ist eine Funktion, und zwar jene Abbildung σ, die jeder Belegung b (der Variablen in A) den Wert b̄(A) zuordnet. 3 Folgerung und Äquivalenz Wir schreiben A ⇒ B ( B folgt aus A“), wenn für alle Belegungen gilt: wenn b̄(A) = 1, dann b̄(B) = 1. ” Anders ausgedrückt: wenn es keine Belegung b mit b̄(A) = 1 und b̄(B) = 0 gibt. Wieder anders ( algebraisch“) ausgedrückt: Wenn für alle Belegungen b die Ungleichung b̄(A) ≤ b̄(B) ” gilt. Wenn B eine Tautologie ist, dann gilt automatisch A ⇒ B. Auch wenn A eine Kontradiktion ist, gilt automatisch A ⇒ B. Beachten Sie: A ⇒ B ist eine (Meta-)Aussage über die beiden Formeln A und B. A und B sind in der Objektsprache, A ⇒ B“ in der Metasprache. ” Die Formel A → B liegt in der Objektsprache. Man sieht leicht (Übung), dass A → B genau dann eine Tautologie ist, wenn A ⇒ B“ gilt. ” A ⇔ B heißt b̄(A) = b̄(B) für alle b. In diesem Fall heißen A und B äquivalent. Statt ⇔ schreibt man oft auch ≡. A ⇔ B gilt genau dann, wenn sowohl A ⇒ B als auch B ⇒ A gilt. A ⇒ B gilt genau dann, wenn A ⇔ A ∧ B. Statt > ⇒ B schreibt man manchmal auch nur ⇒ B. Statt A ⇒ ⊥ schreibt man manchmal auch nur A ⇒. 4 CNF, DNF Wir schreiben A ∨ B ∨ C als Abkürzung für ((A ∨ B) ∨ C), analog für längere Disjunktionen oder auch Konjunktionen. Jede Aussagenvariable, und jede Formel der Form (¬pi ) heißt Literal“. A heißt Klausel“ wenn ” ” A entweder die Form ⊥ (leere Disjunktion) hat, oder A ein Literal ist (einelementige Disjunktion), oder A von der Form L1 ∨ · · · ∨ Lk ist, wobei L1 , . . . , Lk Literale sind. Eine duale Klausel ist entweder > oder ein Literal oder eine Konjunktion L1 ∧· · ·∧Lk von Literalen. Eine Formel A ist in konjunktiver Form“, wenn A eine Konjunktion von Klauseln ist (wobei auch ” die leere Konjunktion > und die einelementige Konjunktion zugelassen sind. Eine Formel A ist in disjunktiver Form“, wenn A eine Disjunktion von dualen Klauseln ist (wobei ” auch die leere Disjunktion > und die einelementige Disjunktion zugelassen sind. Eine Formel A ist in konjunktiver Normalform“ (CNF oder KNF), wenn es eine natürliche Zahl ” n ≥ 0 gibt, sodass A in konjunktiver Form ist, wobei alle vorkommenden Klauseln C aus n Literalen bestehen: C = L1 ∨ · · · Ln , und in jeder Klausel das i-te Literal (für alle i = 1, . . . , n) entweder pi oder (¬pi ) ist. Beispiel: (p1 ∨ p2 ) ∧ (p1 ∨ (¬p2 )) ist in CNF. Analog ist DNF definiert. Gelegentlich werden die Ausdrücke DNF und CNF auch für die Begriffe verwendet, die wir oben konjunktive Form“ bzw ”disjunktive Form“ genannt haben. ” Zu jeder Formel A erhält man eine äquivalente Formel A0 in DNF in folgender Weise: Sei n so groß, dass alle Variablen von A unter p1 , . . . , pn vorkommen. Zu jeder Belegung b mit b̄(A) = 1 definieren wir eine duale Klausel Cb , die b beschreibt: Cb = (Lb,1 ∧ · · · ∧ Lb,n ), wobei Lb,i = pi wenn b(pi ) = 1, und wobei Lb,i = (¬pi ), wenn b(pi ) = 0. In jedem Fall ist also b̄(Lp,i ) = 1, somit b̄(Cb ) = 1. Außerdem gilt für jede Belegung b0 (der Variablen p1 , . . . , pn ): (∗) b̄0 (Cb ) = 1 genau dann, wenn b = b0 . Sei nun A0 die Disjunktion über alle Cb mit b̄(A) = 1. Mit Hilfe von (∗) zeigt man leicht, dass b̄(A) = b̄(A0 ) für alle b ist. Ähnlich kann man zu jeder Formel A eine äquivalente Formel A∗ in konjunktiver Normalform finden, indem man im obigen Algorithmus 0 mit 1 und ∧ mit ∨ vertauscht. 2