Theoretische Informatik: Berechenbarkeit und Formale Sprachen SS 2015 Blatt 4 Diese Aufgaben werden in den Übungen in der Woche vom 11.-15.05.2015 besprochen. AUFGABE 1. In der Vorlesung haben Sie die Paarkodierungsfunktion c : N2 → N und deren Verallgemeinerung h, . . . , i : Nk → N kennengelernt. Damit lassen sich nun also beliebig große Tupel von natürlichen Zahlen eindeutig als eine einzige natürliche Zahl kodieren. a) Nutzen Sie diese Funktionen, um die folgenden Tupel zu kodieren: (3,5), (2,1,8) und (2,2,0,2). b) Was bedeutet hierbei “eindeutig kodieren“ ? Erklären Sie kurz! AUFGABE 2. Im Beweis von Lemma 1.12 (auf Folie 56) werden die folgenden Aussagen benötigt: (∗) Für alle m, n ∈ N gelten : c(m, n) ≥ m und c(m, n) ≥ n. Beweisen Sie diese Aussagen! AUFGABE 3. Gegeben ist das folgende LOOP-Programm L, welches eine einstellige Funktion F : N → N berechnet: L : x2 := 15; x1 := x2 − 3; LOOP x1 DO x0 := x0 + 8 END In der Vorlesung wurde bewiesen, dass jede LOOP-berechenbare Funktion auch primitiv rekursiv ist und umgekehrt (Satz 1.15). Im ersten Teil des Beweises wird gezeigt, dass es für jedes beliebige LOOP-Programm P eine primitiv rekursive Funktion gP gibt, welche das Verhalten von P simuliert. Dazu wurde sogar eine Konstruktionsvorschrift für gP angegeben, welche den induktiven Aufbau von P benutzt. Wenden Sie nun diese Konstruktionsvorschrift auf das obige Programm L an und konstruieren Sie die Funktion gL . Vereinfachen Sie dabei L nicht und geben Sie auch keine “optimierte” Funktion gL an. Geben Sie außerdem die Funktion F an, welche von P berechnet wird. Hinweis: Wiederholen Sie die Beweisdetails und versuchen Sie diese vollständig nachzuvollziehen. Beginnen Sie nun mit der Konstruktion von gL , indem Sie zunächst für jede elementare Programmanweisung die entsprechende primitiv rekursive Funktion definieren. Benennen Sie die elementaren Anweisungen ruhig mit P1 , P2 usw. Die entsprechenden primitiv rekursiven Funktionen sind dann also gP 1 , gP 2 usw. Kombinieren Sie dann diese Funktionen zu neuen Funktionen gemäss der gegebenen Vorschrift, um für die Hintereinanderausführung und die LOOP-Schleife primitiv rekursive Funktionen zu erhalten.