DEPENDABLE SYSTEMS AND SOFTWARE Fachrichtung 6.2 — Informatik Universität des Saarlandes Christian Eisentraut, M.Sc. Julia Krämer Mathematik-Vorkurs für Informatiker (Wintersemester 2012/13) Übungsblatt 2 (Aussagenlogik) 1 Diskussionsbedarf Aufgabe 2.1 (Logik(?!) in der Welt) Überlegen Sie sich typische logische Fehlschlüsse, die Menschen oft und gerne ziehen. Welche davon haben Sie schon bei sich selbst beobachtet, oder gar in den Massenmedien verbreitet gesehen. Welche Bedeutung hat/hätte ein korrektes Verständnis von Logik damit für die Gesellschaft? Diskutieren Sie! Aufgabe 2.2 (Logik in der realen Welt) Versuchen Sie Zusammenhänge der realen Welt durch logische Aussagen (hauptsächlich wohl mit Implikationen und Äquivalenzen) zu beschreiben, ähnlich zu dem Beispiel mit dem Streichholz und der Streichholzschachtel. 2 Sprachliches, Symbolisches, das Ding an sich Aufgabe 2.3 (Variablen) Erklären Sie den Unterschied zwischen Metavariablen und Aussagenvariablen. Beantworten Sie dabei auch folgende Fragen: Weshalb brauchen wir Aussagenvariablen in unserer Aussagenlogik? Benötigen wir eigentlich auch Metavariablen unbedingt um Aussagenlogik zu betreiben? Aufgabe 2.4 (Syntax, Semantik ) Reisen Sie eine Woche in die Vergangenheit zurück, bevor Sie im Vorkurs waren und erklären Sie sich dort selbst den Unterschied zwischen ⊥ und f bzw. > und w. Aufgabe 2.5 (Backus-Naur-Form (1)) Geben Sie die Backus-Naur-Form zur induktiv definierten Sprache Listen über den Wörtern o und ∗ an. Zur Erinnerung: Die Sprache enthält Wörter, die nach folgendem Schema aufgebaut sind: o, ∗o. ∗ ∗ o, ... . Aufgabe 2.6 (Backus-Naur-Form (2)) Geben Sie die Backus-Naur-Form an, die die folgenden Wörter (und ihre Forsetzung) beschreibt: ∅, {∅}, {{∅}}, ... . 1 Aufgabe 2.7 (Backus-Naur-Form – umgekehrt) Welche Sprache beschreibt die folgende Backus-Naur-Form? ϕ ::= ab | aϕb Aufgabe 2.8 (Symbole) Ist es prinzipell möglich, mit anderen Menschen über ein beliebiges mathematisches “Ding an sich”, z.B. Zahlen, zu sprechen, ohne sich auf Symbole zurückzuziehen? Die obige Frage macht für Sie keinen Sinn? Dann sind Sie bestimmt nicht alleine damit, und Sie sollten das unbedingt in Ihrer Übungsgruppe diskutieren! 3 Was sind Aussagen? Aufgabe 2.9 (Aussagen) Entscheiden Sie, ob die folgenden Sätze Aussagen sind. Geben Sie jeweils auch an, warum es sich Ihrer Meinung nach um (keine) Aussage handelt. Beispiel: In Saabrücken regnet es. — Ein Blick aus dem Hörsaal liefert die Antwort: Entweder regnet es oder es regnet nicht, man kann also eindeutig mit “Ja” oder “Nein” antworten. Damit handelt es sich bei diesem Satz um eine Aussage. (a) (b) (c) (d) (e) (f) (g) (h) (i) (j) (k) (l) (m) Alle Rosen sind rot. Wie geht es dir? Guten Tag! Morgen ist Mittwoch. 4+3=7 Sei x = 3 + 5. Autos haben vier Räder und Computer brauchen Strom. Mir geht es gut und wie geht es dir? 4 + 3 = 8 und 4 − 1 = 2 Heute ist das Wetter schön oder nicht? Ein Monat hat 30 Tage oder eine Woche hat 8 Tage. Wenn du da bist, ruf mich bitte an! Wenn 9 + 3 = 12, dann ist heute Dienstag. Aufgabe 2.10 (Wahre und falsche Aussagen) Geben Sie an, ob die folgenden Aussagen wahr oder falsch sind. Achten Sie vor allem bei zusammengesetzten Aussagen auf Ihre Begründung. Beispiel: 2 ist gerade oder 3 ist gerade. – Diese Aussage ist wahr, da 2 eine gerade Zahl ist und Aussagen, die mit “oder” verbundenen Aussagen genau dann wahr werden, wenn mindestens eine Teilaussage wahr ist. (a) (b) (c) (d) (e) (f) (g) (h) (i) (j) (k) (l) 2<1 1<2 2 4 3 < 5 2 ist gerade oder 4 ist gerade. 2 ist eine natürliche Quadratzahl oder 3 ist eine natürliche Quadratzahl. 3 + 2 = 4 oder 1 + 2 = 3. 2 ist gerade und 4 ist gerade. 3 + 2 = 4 und 1 + 2 = 3. 3 · 7 = 21 und 7 · 3 = 21 Wenn 7 · 3 = 21, dann ist 4 + 11 = 2. Wenn 7 = 2, dann ist Angela Merkel die Königin von England. Genau dann wenn Angela Merkel die Präsidentin der U.S.A. ist, ist 4 · 2 = 1 2 Aufgabe 2.11 Überlegen Sie sich fünf typische Fehlschlüsse, die Menschen gerne ziehen und erklären Sie, warum sie diese eigentlich nicht ziehen dürfen. Beispiel: Wenn die Straße nass ist, dann hat es geregnet. – Die Straße ist nicht nur dann nass, wenn es geregnet hat. Ein anderer Grund könnte zum Beispiel ein Wasserrohrbruch sein. 4 Aussagenlogik - Syntax und Semantik Aufgabe 2.12 (Sinn einer Grammatik ) Beantworten Sie die folgende Frage: Wozu ist eine Grammatik gedacht und wie verwendet man Sie? Aufgabe 2.13 (Syntax - Anwendung der Grammatik ) Sind die folgende Ausdrücke bezüglich der Grammatik für aussagenlogische Ausdrücke korrekt? Nehmen Sie an, dass ϕ und ψ Metavariablen sind. Beispiel: p ∨ p p – Mit der Grammtik ist es nicht möglich zwei aufeinander folgende Variablen abzuleiten, damit ist der Ausdruck nicht gültig. (a) (b) (c) (d) (e) (f) >∨ ϕ∨ψ p qp p ∧ ∨q p∨q Aufgabe 2.14 (Syntax - mehr Struktur (1)) Geben Sie Strukturbäume zu folgenden Aussagen an: (a) > ∧ ⊥ ∨ > ∨ p → q ↔ r ∧ > (b) p → q → r ∧ s ∨ q (c) r ↔ s ∧ q Aufgabe 2.15 (Vorgehen (1)) Beschreiben Sie ein effektives, möglich allgemeines Schema zum Erstellen von Syntaxbäumen. Aufgabe 2.16 (Was ist die Baumdarstellung genau? ) Warum gibt es keinen Sinn w bzw. f in der Baumdarstellung zu schreiben? Aufgabe 2.17 (Syntax - mehr Struktur (2)) Nun die umgekehrte Richtung: Geben Sie Ausdrücke zu folgenden Strukturbäumen an: ∧ ∧ ↔ ∨ p → q r ¬ s ∨ p > → ∧ > > ⊥ r ⊥ Aufgabe 2.18 (Vorgehen (2)) Beschreiben Sie nun ein effektives, möglich allgemeines Schema zum Umwandeln von Syntaxbäumen in aussagenlogische Ausdrücke. 3 Aufgabe 2.19 (Syntaxbäume) Überlegen Sie sich drei Ausdrücke und drei Syntaxbäume, tauschen Sie nun Ihre aussagenlogischen Ausdrücke mit mindestens einem Ihrer Kommilitonen aus und verfahren Sie bei den neuen Ausdrücken wie in Aufgabe 2.14 bzw. 2.17. Aufgabe 2.20 (Wahrheitstafeln - Grundlegendes) Füllen Sie die folgenden Wahrheitstafeln aus. Sammeln Sie alle Gesetzmäßigkeiten, die Ihnen auffallen. Hinweis: Verwenden Sie die Semantik J·K zum Bestimmen der Werte der aussagenlogischen Ausdrücke. Notieren Sie dabei jeden Zwischenschritt. Beispiel: p q f f f w w f w w (p ∧ q) ∨ (p → q) w w f w Der Wert in der ersten Zeile der Tabelle wird nun mit Hilfe der Semantik bestimmt: JpK = f , JqK = f . Nach Definition der Semantik gilt: Jp ∧ qK = f und Jp → qK = w. Sei ϕ := p ∧ q und ψ := p → q, dann Jϕ ∨ ψK = w nach der semantischen Abbildung, da JϕK = f und JψK = w. (Hier ist nur ein Beispiel gegeben, man muss mit allen weiteren Zeilen genauso verfahren.) Die Aussage ist logisch äquivalent zur Implikation. Um die Wahrheitswerte einer “oder”-Verknüpfung zu bestimmen, muss man nur solange einen Teilausdruck auswerten bis einer der beiden wahr wird. Die erste Tabelle dient zur Wiederholung der Operatoren: p q > ⊥ ¬p p ∨ q p ∧ q p → q p ↔ q p ⊕ q f f f w w f w w ¬(p ∨ q) p f f w w q f w f w p f w ¬(¬p) p f f w w q f w f w ¬p ∧ ¬q p∧> p→⊥ p∨> ¬(p ∧ q) p⊕> ¬(¬p ∧ ¬q) ¬p ∨ ¬q p∨⊥ ¬(¬p ∨ ¬q) p∧⊥ p∧p p∨p p⊕⊥ (p ∨ q) ∧ ¬(p ∧ q) 4 ¬p ∨ q Aufgabe 2.21 (Wahrheitstafeln - nun in Schwer ) Die folgenden Tabellen enthalten schwere Ausdrücke. Ihre Aufgabe ist es nun, die Tabellen auszufüllen. Verwenden Sie dazu die Gesetzmäßigkeiten und Tricks, die Sie in Aufgabe 2.20 gefunden haben. Sie müssen die Zwischenschritte, die in der aussagenlogischen Semantik zum Auswerten von Ausdrücken notwendig sind, nicht explizit aufschreiben. p f f w w q f w f w p∧q ↔p→q ↔p p→p→q p f f w w q f w f w p∧q∨p⊕q ↔p→q p↔p↔p p → q ∨ p ∧ ¬q ∧ p p∨q∨p∨q →p ¬q ∧ ¬p ∨ q ¬p ∨ q → ¬q → ¬p Aufgabe 2.22 (Logische Äquivalenzen) Überlegen Sie sich, wieso man logische Äquivalenzen mit Hilfe von Wahrheitstafeln beweisen kann. Aufgabe 2.23 (Verkomplizieren) Suche Sie sich zwei relativ kurze aussagenlogische Ausdrücke. Wenden Sie nun die Gesetzmäßigkeiten der Aussagenlogik (aus der Vorlesung bzw. aus 2.20) an, um mit mindestens fünf Umformungen einen möglichst komplizierten Ausdruck zu erhalten. Tauschen Sie nun mit mindestens einem Ihrer Kommilitonen Ihre komplizierten Ausdrücke aus, und versuchen Sie aus den komplizierten Ausdrücken mit Hilfe der aussagenlogischen Gesetze die Ursprungsausdrücke wieder herauszufinden. 5 Logik natürlichsprachlich Aufgabe 2.24 Formulieren Sie die folgenden Aussagen in aussagenlogische Ausdrücke um, indem sie zunächst für jede Teilaussage eine Aussagenvariable definieren und dann die Teilaussagen mit den bekannten aussagenlogischen Operatoren verbinden. (a) Einen Führerschein zu haben ist notwendig dafür, dass man Autofahren darf. (b) Wenn die Blumen nicht gegossen worden sind, dann ist es hinreichend dafür, dass es geregnet hat, dass man die Blumen nicht zu gießen brauch. (c) 4 + x = 8 ist notwendig und hinreichend dafür, dass x = 4. (d) In einem Raum, in dem es nur ein Fenster und keine Tür oder sonstige Öffnungen gibt, ist die Tatsache, dass das Fenster offen ist, notwendig dafür, dass frische Luft hineinkommt. (e) Das jemand Kuchen gebacken hat, ist notwendig dafür, dass man Kuchen essen kann. (f) Keine Bewölkung am Himmel ist notwendig aber nicht hinreichend dafür, dass die Sonne scheint. (g) Dass die Bäume Blätter haben ist hinreichend dafür, dass es nicht Winter ist. (h) Verkehrsregeln sind notwendig, aber nicht hinreichend um Unfälle zu vermeiden. (i) In der Mensa zu essen, ist hinreichend dafür zu wissen, wo sie ist. 5 Aufgabe 2.25 (Gruppenübung - die andere Richtung) Finden Sie sich zunächst in kleinen Gruppen zusammen.Verfahren Sie dann wie folgt (insgesamt am besten zwei bis drei Mal): Jeder überlegt sich zwei bis vier natürlichsprachliche Aussagen und wie er diese mit Operatoren der Aussagenlogik verbinden möchte. Jeder Aussage wird eine Aussagenvariable zugewiesen und die Verknüpfung nur stellvertretend mit den Aussagenvariablen zusammen mit den Aussagen auf einem Zettel aufgeschrieben. Beispiel: Auf einem Zettel steht dann z.B. p = “Es ist Vollmond”, q=“Wölfe heulen” und p∧q →p Die Zettel werden nun in der Gruppe ausgetauscht. Nach und nach muss nun jeder versuchen, die Verknüpfung der Aussage möglichst schnell und natürlichsprachlich vorzulesen. Die anderen in der Gruppe achten dabei darauf, ob die Formulierung korrekt ist oder ob es noch einfacher geht. Beispiel: Lesen Sie also nicht: “Es ist Vollmond impliziert Wölfe heulen”, sondern lesen Sie: Bei Vollmond heulen Wölfe. Hinweis: Schreiben Sie nur solche Verbindungen von Aussagen auf, die sie auch selbst vorlesen können. Achten Sie beim Vorlesen darauf nicht zu paraphrasieren, d.h. nicht nur die Operatoren in Deutsch zu übersetzen. 6 Tautologien und Kontradiktionen Aufgabe 2.26 (Tautologien finden) Schreiben Sie die ersten fünf Tautologien auf, die Ihnen einfallen. Bauen Sie nun diese Ausdrücke in größere aussagenlogische Ausdrücke ein. Hilft Ihnen das Wissen um diese Tautologien nun dabei, die Wahrheitstabellen für die neuen Ausdrücke zu erstellen? Aufgabe 2.27 Verfahren Sie nun wie in Aufgabe 2.26 für Kontradiktionen. Aufgabe 2.28 Entscheiden Sie, ob die folgenden Aussagen Kontradiktionen, erfüllbar oder Tautologien sind. Hinweis: Verwenden Sie Ihr bisheriges Wissen über Gesetze der Aussagenlogik, Kontradiktionen und Tautologien. Wahrheitstabellen für die Ausdrücke auszufüllen ist sehr aufwendig. (a) p → p → q → p ↔ ⊥ (b) p ↔ q ∨ ¬q (c) p ∨ q ∨ s ∨ r → ¬s (d) p ∨ q ∨ s ∨ r → s (e) > ∧ s ↔ s ∨ ⊥ (f) s ⊕ p ⊕ r ↔ q ∧ s ∨ p ∧ q ↔ r → s 6 7 Weck den Forschergeist Aufgabe 2.29 (Aussagenlogische Operatoren (1)) Was ist die kleinste Menge von aussagenlogischen Operatoren, die vollständig ist in dem Sinne, dass Sie mit ihr alle anderen Operatoren darstellen können? Finden Sie eine noch kleinere Menge, wenn Sie sich neue Operatoren überlegen, die Sie in der Vorlesung nicht kennengelernt haben? Aufgabe 2.30 (Aussagenlogische Operatoren (2)) Wieviele verschiede aussagenlogische Operatoren mit n Operanden sind denkbar? Hinweis: Betrachten Sie alle Möglichkeiten n Wahrheitswerte miteinander zu verknüpfen. Aufgabe 2.31 (Logik verallgemeinert) Können Sie sich eine sinnvolle Logik vorstellen, die mehr Wahrheitswerte kennt als w und f ? Diskutieren Sie! 7