R S SA IS S UN E R SIT A IV A VIE N 1. Übungsblatt zu Einführung in die Computationale Logik, SS 2003 Prof. Dr. Gert Smolka, Marco Kuhlmann, MSc http://www.ps.uni-sb.de/courses/cl-ss03/ Stoff dieser Woche: Skript, Abschnitte 4.1 und 4.4 (Aufgabe 1.13 bezieht sich bereits auf Abschnitt 4.5) Allgemeine Hinweise: Jede Woche gibt es ein Übungsblatt mit Aufgaben zum aktuellen Stoff. Die Übungsblätter dienen Ihrer persönlichen Vorbereitung auf die Klausuren; sie müssen nicht abgegeben werden und werden insbesondere auch nicht bewertet. Zu den Übungsblättern werden aber Musterlösungen erstellt, die Sie mit Ihren eigenen Lösungsvorschlägen vergleichen können. Diese Musterlösungen erscheinen eine Woche nach dem Ausgabetermin des jeweiligen Übungsblattes auf der Webseite zur Vorlesung. Eventuelle Unklarheiten und Probleme können Sie in den Übungsgruppen und während der „Office Hours“ ihres Tutors ansprechen. Aufgabe 1.1: Eine Boolesche Algebra Geben Sie eine Boolesche Algebra (B, 0, 1, ∧, ∨, ¬) und zwei Elemente x, y ∈ B an, sodass x ∧ y = 0, x 6 = 0 und y 6 = 0. Aufgabe 1.2: Die Beatles-Algebra Geben Sie eine Boolesche Algebra mit 64 Elementen an. Aufgabe 1.3: Zum Satz von Stone In Abschnitt 4.1 des Skriptes wird ein Ergebnis von S TONE erwähnt, aus dem folgt, dass es keine Boolesche Algebra mit 7 Elementen gibt. Erklären Sie diese Folgerung. Aufgabe 1.4: Wahrheitstafeln Beweisen Sie die folgende Boolesche Gleichung durch Erstellen einer Wahrheitstafel für die beiden Teilausdrücke: (x + y)(x + y) = x y + x y. Aufgabe 1.5: Axiome der Booleschen Algebra Boolesche Algebren aus dem Stegreif? Kennen Sie die im Skript angegebenen Axiome für Aufgabe 1.6: Herleitung von Gleichungen (?) Von den im Skript angegebenen Axiomen für Boolesche Algebren sind einige überflüssig, da sie aus anderen Axiomen folgern. Verwenden Sie im Folgenden nur die die Axiome für Kommutativität, Distributivität, Identitäten und Komplemente und beweisen Sie die Gültigkeit der folgenden Gleichungen: (a) x x = x (b) x0 = 0 (c) x(x + y) = x Für (c) können Sie (b) benutzen. (Hinweis: Benutzen Sie für den ersten Schritt jedes Beweises das Identitätsaxiom.) Wie lange benötigen Sie für den Beweis der folgenden Gleichungen: (a) x + x = x (b) x + 1 = 1 (c) x + x y = x Aufgabe 1.7: Herleitung von Gleichungen mit Resolution chungen in jeder Booleschen Algebra gelten: Beweisen Sie, dass die folgenden Glei- (a) (x + z)(x + y) = x y + x z (b) x y + x z = x y + x z (c) (x y + x z)y z = y z Verwenden Sie in jedem Beweis die Resolutionsregel. Aufgabe 1.8: XOR Sei die folgende Notation für Boolesche Ausdrücke gegeben: x⊗y def = (x − y) + (y − x) Zeigen Sie, dass die folgenden Gleichungen in allen Booleschen Algebren gültig sind: (a) x ⊗ y = x ⊗ y (b) x ⇔ y = x ⊗ y (c) x ⊗ y = x ⇔ y Aufgabe 1.9: Binäre Boolesche Funktionen Diese Aufgabe soll Ihnen helfen, sich einen Überblick über die Funktionen in B2 → B zu verschaffen. (a) Realisieren Sie mit Hilfe zweier SML-Prozeduren to : (bool * bool -> bool) -> bool * bool * bool * bool from : bool * bool * bool * bool -> (bool * bool -> bool) eine Bijektion (B2 → B) → B4 . Hinweis: Die Menge B2 hat 4 Elemente x 1 , x 2 , x 3 , x 4 . Eine Funktion B2 → B kann durch das Tupel ( f x 1 , . . . , f x 4 ) dargestellt werden. (b) Wieviele Funktionen B2 → B gibt es? (c) Stellen Sie jede Funktion f ∈ B2 → B durch jeweils einen möglichst kurzen Booleschen Ausdruck a wie folgt dar: (i) f = λ (x, y) ∈ B2 . a. (ii) a ist mit x, y, 0, 1, ¬, ∧, ∨, ⇒, ⇔ und ⊗ gebildet. Aufgabe 1.10: Normierung und äquivalente Gleichungen Geben Sie zu den folgenden Gleichungen jeweils eine möglichst kurze äquivalente normale Gleichung der Form a = 1 an, wobei Sie neben Variablen nur die Konstanten 0 und 1 und die Operationen Konjunktion, Disjunktion und Komplement verwenden sollen. (Äquivalenz zweier Gleichungen ` 1 und `2 bedeutet, dass für jede Boolesche Algebra A gilt: `1 ist in A gültig genau dann, wenn `2 in A gültig ist.) (a) x = y (b) x y = z (c) x y = x + y (d) x y = x + y Aufgabe 1.11: Boolesche Mengen für Boolesche Ausdrücke Sei Var = {x, y, z} gegeben. Boolesche Mengen über Var können durch Boolesche Ausdrücke oder alternativ durch Tabellen beschrieben werden. Beispielsweise beschreibt der Ausdruck x y dieselbe Menge wie die Tabelle x y z 1 1 1 1 0 1 Beschreiben Sie in diesem Sinne die durch die folgenden Ausdrücke gegebenen Booleschen Mengen durch Tabellen: (a) x ⇔ y (b) x y + x z + z y (c) (x ⇒ y)(x + z) (d) x ⇔ y Aufgabe 1.12: Boolesche Ausdrücke für Boolesche Mengen Sei Var = {x, y, z} gegeben. Geben Sie Boolesche Ausdrücke an, die die folgenden Booleschen Mengen beschreiben: (a) { σ ∈ 6 | σ x + σ y + σ z = 1 } (b) { σ ∈ 6 | σ x + σ y = 2 } (c) { σ ∈ 6 | 1 ≤ 2σ x + σ y ≤ 2 } ACHTUNG : Die folgende Aufgabe bezieht sich bereits auf Abschnitt 4.5 des Skriptes. Sie ist als Knobelaufgabe für das lange Wochenende gedacht. Aufgabe 1.13: Modellierung (?) Ein mit Ihnen befreundeter Logiker hat vor kurzem eine Stelle an der Universität von Knusiland angetreten und berichtet: „In Knusiland gibt es zwei Stämme, die Abianer und die Bebianer. Die Abianer sagen immer die Wahrheit, die Bebianer sagen immer die Unwahrheit. Gestern hatte ich das Vergnügen, in einer Kneipe sieben sehr nette Knusiländer kennenzulernen, die mir schnell zu guten Freunden wurden: Omno, Dino, Imto, Ondo, Efro, Amso und Osno. Ich hätte sehr gerne gewusst, welchem Stamm sie jeweils angehörten, traute mich aber nicht, sie direkt zu fragen. Zum Glück war der Wirt der Kneipe, ein Abianer, bereit, mir die folgenden Hinweise zu geben: (i) Wenn Amso nicht lügt, dann lügt Efro. (ii) Wenn nicht Dino, wohl aber Efro lügt, dann lügt Ondo. (iii) Wenn es zutrifft, dass, wenn Dino nicht lügt, zwar Omno nicht lügt, aber Ondo, dann lügt Amso. (iv) Wenn Dino lügt, dann lügt Imto nicht. (v) Wenn Omno lügt, dann lügt Efro nicht. (vi) Wenn Amso lügt, dann lügt Ondo nicht, wohl aber Efro. (vii) Wenn Ondo nicht lügt, dann lügt Osno auf keinen Fall. Mit diesen Informationen war es mir möglich, die Stammeszugehörigkeit meiner neuen Freunde zu folgern.“ Die Stammeszugehörigkeit der sieben Knusiländer kann durch ein Tupel (Omno, Dino, Imto, Ondo, Efro, Amso, Osno) ∈ B 7 modelliert werden; eine Komponente dieses Tupels ist 1 genau dann, wenn die entsprechende Person lügt (also Bebianer ist). (a) Beschreiben Sie jede der Auskünfte des Wirtes durch einen Booleschen Ausdruck, der sich möglichst eng an die jeweilige Formulierung anlehnt. Verwenden Sie dabei nur die Variablen Omno, Dino, Imto, Ondo, Efro, Amso, Osno, die beschreiben, ob die entsprechende Person lügt. (b) Geben Sie die Stammeszugehörigkeit der sieben Knusiländer an.