1. Zeigen Sie, daß die folgenden Funktionen primitiv-rekursiv sind: • λx.λy.xy • λx.b x2 c Lösung: • Wie wir aus der Vorlesung wissen ist die Multiplikation f· primitivrekursiv. Da die Exponentiation fexp die folgenden Rekursionsgleichungen erfüllt fexp (0, x) = 1 = S(N (y)) fexp (y + 1, x) = xy+1 = xy · x = f· (fexp (y, x), x) ist fexp primitiv rekursiv (da S ◦ N und f· es sind). • Aus der Vorlesung wissen wir, daß λx.2x primitiv rekursiv ist (Als Komposition der Multiplikation und S(S(N ))). Ausserdem ist damit die Funktion g(x, y) = sg(x − 2y). Diese Funktion ist 1, solange y nicht größer als x2 ist. Wie man leicht einsieht ist x X x g(x, i) − 1 . λx.b c = 2 i=0 Die Summe auf der rechten Seite erfüllt aber die Rekursionsgleichung 0 X g(x, i) = g(x, 0) i=0 y+1 X i=0 g(x, i) = y X g(x, i) + g(x, y + 1) i=0 Py ist also als Funktion λx, y. i=0 g(x, i) primitiv rekursiv. Also ist auch λx.b x2 c primitiv rekursiv. 2. Zeigen Sie, daß die Paarungs-Funktion π aus der Vorlesung bijektiv ist. Folgern Sie ausserdem mit Hilfe von vollständiger Induktion, daß für alle k k die Funktionen h·i : Nk → N bijektiv sind. Lösung: • Sei π(n, 0) = Tn wie man leicht sieht ist Tn < Tn+1 . • Des Weiteren gilt π(x, y) = π(x + y, 0) + y . Sei jetzt z ∈ N beliebig. Es gibt eindeutige Zahlen n, m, so daß z = Tn + m mit 0 6 m < n: Sei hierzu n die eindeutig bestimmte natürliche Zahl, so daß Tn 6 z < Tn+1 und m = z − Tn (Man beachte, daß Tn+1 − Tn = n + 1, und damit 0 6 m < n). D.h.; aber, daß π(n, m) = π(n + m, 0) + m = 1 Tn + z − Tn = z, und auch, daß m, n die einzigen Zahlen mit dieser Eigenschaft sind. Sei nun π(x, y) = π(x0 , y 0 ). Wieder wie oben, bzw. bei der Herleitung der Formel in den Folien, ist π(x, y) = π(x + y, 0) + y = π(x0 + y 0 , 0) + y 0 . Da es, wie oben Der Rest folgt jetzt mit Induktion über k. Der Induktionsanfang k = 2 ist nur die Bijektivität von π wie oben gezeigt. Sei jetzt z ∈ N beliebig. Da π bijektiv ist gibt es x1 , y ∈ N, so daß π(x1 , y) = z. Des Weiteren, k da nach Induktionsannahme h·i surjektiv ist gibt es x2 , . . . , xk+1 , so daß k hx2 , . . . , xk+1 i = y. Zusammen haben wir k+1 hx1 , x2 , . . . , xk+1 i k = π(x1 , hx2 , . . . , xk+1 i ) = π(x1 , y) = z . Also haben wir die Surjektivität gezeigt. Sei jetzt k+1 hx1 , x2 , . . . , xk+1 i Also k+1 = x01 , x02 , . . . , x0k+1 k k π(x1 , hx2 , . . . , xk+1 i ) = π(x1 , , x02 , . . . , x0k+1 ) . Da π injektiv ist ist also x1 = x01 und k k hx2 , . . . , xk+1 i = x02 , . . . , x0k+1 Nach Induktionsvoraussetzung ist jetzt auch noch x2 = x02 , . . . , xk+1 = x0k+1 . ∗ 3 3. (a) Bestimmen Sie h3, 1, 4i und h3, 1, 4i . ∗ (b) Geben Sie ein Beispiel, daß zeigt, daß hi nicht surjektiv ist. (c) Bestimmen Sie (666)32 Lösung: 3 2 (a) h3, 1, 4i = π(3, h1, 4i ) = π(3, π(1, 4)) = 272 und D E3 ∗ ∗ 3 ∗ 3 h3, 1, 4i = 3, 3, h1, 4i = 3, 3, 2, 1, h4i = D E3 3 D E 3 3 ∗ 3 3 3, 3, 2, 1, 1, 4, hi = 3, 3, 2, 1, h1, 4, 0i = 3 3 h3, 3, 1078i = h3, 3, 1078i = 171641455652 . ∗ (b) Wie man leicht sieht ist h0, ni für kein n ∈ N im Bild der Abbildung ∗ (hx1 , . . . , xk i = π(m, z) mit m > 1 für alle k und damit 6= π(0, z). ∗ Der Fall hi = 0 ist ebenfalls ausgeschlossen). 3 (c) (666)32 = π1 (π2 (666)) = π1 (0) = 0. Wie man leicht sieht ist h36, 0, 0i = π(36, π(0, 0)) = 666. 2 4. Die Folge von Fibonacci Zahlen (Fn ) ist bekanntermaßen 1, 1, 2, 3, 5, 8, 13, 21, . . . ; d.h. die ersten beiden Fibonacci Zahlen sind 1 und jede weitere Zahl ist die Summe ihrer zwei Vorgänger. Zeigen Sie, daß die Funktion, die jedem n die n-te Fibonacci Zahl zuordnet primitiv rekursiv ist. Tipp: Verwenden Sie Tupelkodierungen indem sie zuerst zeigen, daß die Funktion g : N → N mit der Eigenschaft g(π(Fn , Fn+1 )) = π(Fn+1 , Fn+2 ) primitiv rekursiv ist. Lösung: Die Lösung ist ja schon fast im Tipp gegeben. 5. Sei f : N → N eine totale µ-rekursive Funktion. Zeigen Sie, daß auch die folgenden beiden Funktionen total und µ-rekursiv sind: • Die Funktion g : N → N, die jedem n ∈ N das Maximum der Zahlen f (0), . . . , f (n) zuordnet. • Die Funktion h : N → N, die jedem n ∈ N eine Zahl m zuordnet, so dass f (m) das Maximum der Zahlen f (0), . . . , f (n) ist. Lösung: • g erfüllt die primitive Rekursion g(0) = f (0) g(n + 1) = max g(n), f (n + 1) Da λm, n. max m, f (n + 1) µ-rekursiv ist, ist somit auch g µ-rekusiv. • Die Funktion h erhält man ebenfalls durch primitive Rekursion aus h(0) = 0 h(n + 1) = h(n) + ((n + 1) − h(n))sg (f (n + 1) − f (h(n))) Zur Erklärung: ist f (n + 1) größer als f (h(n)), also das Maximum der Werte f (0), . . . , f (n), so ist die Signums-Funktion 1 und damit ist h(n + 1) = n + 1. Ansonsten ist die Funktion h(n), da f (h(n)) ja dann auch Maximum der Werte f (0), . . . , f (n + 1) ist. 6. Zeigen Sie, daß für die Ackermann-Funktion gilt: B(n, x) > x für alle n. Tipp: Zwei geschachtelte Induktionen über n und x. Lösung: Wir führen Zunächst eine Induktion über n: • n = 0: Klar, nach Definition von B. • n → n + 1: Wiederum mit Induktion über x: Induktionsanfang ist wieder klar, da B(n + 1, 0) = 1 > 0. Für den Induktionsschritt x → x + 1 können wir die Rekursiongleichung B(n + 1, x + 1) = 3 B(n, B(n + 1, x)) verwenden. Da wir die Aussage schon für n gezeigt haben ist dann B(n + 1, x + 1) = B(n, B(n + 1, x)) > B(n + 1, x) . Letzteres ist echt größer, nach IV von x als x. Insgesamt haben wir also B(n + 1, x + 1) > B(n + 1, x) > x und damit muss B(n + 1, x + 1) > x + 1 sein. 4