Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz/Softwaretechnologie Fachbereich Biologie und Informatik / Institut für Informatik Johann Wolfgang Goethe-Universität Frankfurt am Main Praktische Informatik I Wintersemester 2001/2002 Aufgabenblatt Nr. 13 Abgabe: Freitag 01. Februar 2002 vor! der Vorlesung Aufgabe 1 (12 Punkte) a) Spezifizieren Sie einen abstrakten Datentyp für eine Menge mittels einer axiomatischen Semantik. Unterstützt werden sollen die Operationen union für Vereinigung, intersect für Schnitt, setminus für Differenz sowie element für den Test auf Enthaltensein und singleton für das Erzeugen einer einelementigen Menge. (6 Punkte) b) Geben Sie in Haskell eine Implementierung der Spezifikation aus Aufgabenteil a) für endliche Mengen an. Beweisen Sie dann mit Hilfe der Prinzipien Einsetzung und Instanziierung unter Zuhilfenahme von Reduktion die Korrektheit Ihrer Implementierung für element auf endlichen Mengen. (3 Punkte) c) Erklären Sie, wo Probleme Ihrer Implementierung beim Umgang mit abzählbar unendlichen Mengen liegen könnten und welche Axiome u.U. verletzt würden. Zeigen Sie mögliche Erweiterungen bzw. Modifikationen Ihrer Implementierung auf, so daß die Spezifikation auch für abzählbar unendliche Mengen erfüllt würde. (3 Punkte) Aufgabe 2 (3 Punkte) a) Zeigen Sie, daß > null = 0::Int > succ x = x + (1::Int) > pred x = x - (1::Int) > neg x = - (x::Int) keine korrekte Haskell-Implementierung des abstrakten Datentyps GZ, wie er in der Vorlesung vorgestellt wurde, ist. (3 Punkte) b) Wie müßte die axiomatische Semantik von GZ verändert werden, damit die Implementierung aus Aufgabenteil a) korrekt ist? (0 Punkte) 1 Aufgabe 3 Es sei V = {A, B, C, f, x, y} eine Menge von Variablen. Welche der folgenden Ausdrücke sind somit nach der Definition im Skript Aussageformen und welche nicht? 1. x =⇒ y =⇒ x 6. x ∧ y =⇒ x ∨ y 2. x =⇒ (y =⇒ x) 7. (x ∧ y) =⇒ z 3. f (x) =⇒ y 8. ¬(x ∨ y ⇐⇒ x ∧ y) 4. x ∧ ¬x 9. (A ⇐⇒ B) ⇐⇒ A¬ ∨ B 5. (A =⇒ (B =⇒ C)) =⇒ ((A =⇒ B) =⇒ (A =⇒ C)) Aufgabe 4 (5 Punkte) a) Seien A, B, C aussagenlogische Variablen. Berechnen Sie die Wahrheitstafel der Aussageform (A ∨ B) =⇒ (((¬A ∧ B) =⇒ C) ⇐⇒ (B =⇒ C)) (2 Punkte) b) Simplifizieren Sie unter der Annahme, daß A ∨ B und A =⇒ B wahr sind, die Aussage A ∧ B. Berechnen Sie also eine einfache Aussage D, so daß A ∨ B, A =⇒ B |= A ∧ B ⇐⇒ D (3 Punkte) 2