From 3ba150440ce014c4fe6978827b93149d77d379c8 Mon Sep 17 00:00:00 2001 From: mark Date: Tue, 29 Jul 2025 11:22:30 +0200 Subject: [PATCH] primitiv rekursiv (dont) --- 00.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/00.md b/00.md index bfb8ad0..66dc450 100644 --- a/00.md +++ b/00.md @@ -70,15 +70,21 @@ Konventionen: Definition: -- Nullfunktion $null(n) = 0$ +- Nullfunktion $null = null(x) = null(x, y) = \dots = 0$ - Nachfolgerfunktion $succ(n) = n + 1$ -- Projektionen $id(n) = n, id_2(n,m) = m, \dots$ +- Projektionen $id(n) = n, id_1(n,m) = n, id_2(n,m) = m, \dots$ - Kompositionen $f(a, g(b))$ (ohne rekursion) + PR-Aufgebaute Funktionen $f(a, b, c) = g(i(a), j(b))$ -- **Rekursive Aufrufe** sind möglich, aber **nur**: $f(a, b, c) = f(a-1, b, c)$ (für $a > 0$) - + Dabei gibt es Basisfall $g(b, c)$ für $a = 0$ und Rekursionsfall $h(f(a-1, b, c), a-1, b, c)$ +- **Rekursive Aufrufe** sind möglich, z.B.: $r(a, b, c) = r(a-1, b, c)$ (für $a > 0$) + + Dabei gibt es **einen** Basisfall $r(0, b, c) = g(b, c)$ für $a = 0$ + + und **einen** Rekursionsfall $r(a+1,b,c) = h(r(a, b, c), a, b, c)$, + + wobei man nur $g$ und $h$ selbst wählen kann, nicht deren Argumente (die sind gegeben wie oben, man kriegt *nur* den + rekursiven Wert für $r(a-1,b,c$)$ in $h$ und sonst keinen! Aber Eingaben dürfen weggelassen werden) + + wobei $g$ und $h$ Primitiv Rekursiv sein müssen + + *Wir* schreiben beim Rekursionsfall (damit man es nicht so leicht falsch machen kann) $r(a+1, b, c)$, wobei nur *ein* $+1$, und auch *nur* $+1$, erlaubt ist + + Beispiel: $add(0, x) = x, \quad add(y+1, x) = succ(add(y,x))$ ist als PR: $g(x) \; : \; g = id, \quad h(add(y,x), y, x) \; : \; h = succ \circ id_1$ -ES IST SO SKUFFED DEFINIERT, MACH IMMER! EIN LOOP PROGRAMM +ES IST SO SKUFFED, MACH IMMER! EIN LOOP PROGRAMM ## µ-Rekursiv