Technische Universität München Institut für Informatik Prof. Manfred Broy Dr. M. Spichkova V. Bauer, V. Koutsoumpas WS 12/13 23. Nov 2012 Übungsblatt 5 Übungen zu “Grundlagen der Programm- und Systementwicklung” Aufgabe 1 Modelle und Homomorphismen Gegeben sei die folgende Spezifikation NATLIST für Listen über natürlichen Zahlen: SPEC NATLIST = { based on NAT, BOOL, sort NatList, ε : NatList, cons : Nat, NatList → NatList, isempty : NatList → Bool, head : NatList → Nat, tail : NatList → NatList, NatList generated by ε, cons, isempty(ε) = true, isempty(cons(a, l)) = false, head(cons(a, l)) = a, tail(cons(a, l)) = l, } Aufgabe: (a) Geben Sie zwei Σ-Algebren L und S für obige Spezifikation an, die Modelle von NATLIST sind, und für die gilt: i) Σ-Algebra L basiert auf verketteten Listen, bestehend aus einem Wert und einem Nachfolger-Knoten, und ii) Σ-Algebra S basiert auf Sequenzen über N, wie in der Vorlesung verwendet. (b) Geben Sie eine Abbildung ϕ der Σ−Algebra L in die Σ−Algebra S über N an, und zeigen Sie exemplarisch anhand des Funktionssymbols tail, dass es sich um einen Homomorphismus handelt. 1 Aufgabe 2 Komposition von Homomorphismen Angenommen die Signatur von NATLIST wird um einen Konstruktor consR : NatList, Nat → NatList erweitert (und die Axiome angepasst). Eine mögliche Σ-Algebra B für diese Spezifikation sind die in der Vorlesung besprochenen Lisp-Bäume. Gegeben sei ferner ein Homomorphismus ψ, welcher Lisp-Bäume in verkettete Listen abbildet. Aufgabe: Diskutieren Sie (informell) anhand des Beispiels die Bedeutung der Kompositionen von ϕ ◦ ψ, und argumentieren Sie, warum dies keinen Isomorphismus darstellt. Aufgabe 3 Induktionsbeweise: Alg. Spezifikationen Beweisen Sie die folgende Aussage über der Spezifikation N at der natürlichen Zahlen mittels Induktion. Kennzeichnen Sie dabei die jeweiligen Teilschritte des Beweises, so dass das Induktionsschema klar ersichtlich wird. x∗y =y∗x Die Spezifikationen von N at - vgl. Skript. Aufgabe 4 Induktionsbeweise Aus der Vorlesung Diskrete Strukturen sollten Ihnen Induktionsbeweise bekannt sein. Beweisen Sie die folgenden Aussagen mittels Induktion: Pn n(n+1) (a) ∀n ∈ N : i=1 i = 2 (b) Ein vollständiger Binärbaum mit Tiefe h hat 2h − 1 Knoten. (c) (Knobelaufgabe:) In jedem zusammenhängenden, ungerichteten Graphen (auch mit Mehrfachkanten und Schleifen) gilt: Genau dann wenn alle Knoten von geradem Grad sind, existiert in dem Graphen ein Eulerkreis. Hinweise: Ein Binärbaum einer Tiefe h ist vollständig, genau dann wenn er die maximal mögliche Anzahl an Knoten für diese Tiefe aufweist. Der Grad eines Knoten ist die Anzahl der diesen Knoten berührenden (inzidenten) Kanten. Ein Eulerkreis ist ein geschlossener Pfad (gleicher Anfangs- und Endpunkt), der alle Kanten eines Graphen genau einmal besucht. 2