¨Ubungen zu “Grundlagen der Programm

Werbung
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
Herunterladen