Technische Universität Dresden Institut für Theoretische Informatik Dr. rer.nat.habil. M. Posegga Dresden, den 16. 4. 2009 Übungsaufgaben zur Vorlesung Einführung in die Theoretische Informatik Teil I 1. a) Man wiederhole das Peanosche Axiomensystem der Menge der natürlichen Zahlen und das Prinzip der vollständigen Induktion aus dem Schulstoff bzw. der MathematikVorlesung. b) Was versteht man unter einer induktiv definierten Menge (unter einem induktiven (abstrakten) Datentyp)? 2. Die folgenden Mengen definiere man als induktive Datentypen: - Menge der natürlichen Zahlen nat, - Menge der Booleschen Wahrheitswerte bool, - Menge der Listen oder Wörter über einem festen Alphabet elem list, - Menge der binären Bäume (mit inneren Knoten aus einer Menge elem) elem bintree, deren Knoten einen maximalen Verzweigungsgrad 2 besitzen, - Menge der beliebig verzweigten Bäume (mit inneren Knoten aus einer Menge elem) elem tree. 3. Durch Rekursion über dem induktiven Aufbau definiere man folgende Funktionen: +, ∗ : nat, nat −→ nat app : Elem list, Elem list −→ Elem list ∧, ∨, →: bool, bool −→ bool ¬ : bool −→ bool merge : Elem list, Elem list −→ Elem list =: nat, nat −→ bool ≤: nat, nat −→ bool <: nat, nat −→ bool length : Elem list −→ nat blattliste : A B bintree −→ A list wobei app die Aneinanderreihung zweier Listen, length die Länge einer Liste, merge eine alternierende Vermischung zweier Listen, blattliste die Liste der Blätter eines Binärbaumes bedeuten sollen. Man formuliere Eigenschaften dieser Funktionen. 4. Man beweise durch vollständige Induktion: a) Für alle natürlichen Zahlen x, y gilt x + y = y + x. b) Für alle Listen x, y gilt length(merge(x, y)) = length(x) + length(y). c) Für alle natürlichen Zahlen x, y gilt (x < y) = (x ≤ y ∧ ¬(x = y)).