primitiv rekursiv (dont)

This commit is contained in:
mark 2025-07-29 11:22:30 +02:00
parent dcb721c032
commit 3ba150440c

16
00.md
View File

@ -70,15 +70,21 @@ Konventionen:
Definition: Definition:
- Nullfunktion $null(n) = 0$ - Nullfunktion $null = null(x) = null(x, y) = \dots = 0$
- Nachfolgerfunktion $succ(n) = n + 1$ - 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) - Kompositionen $f(a, g(b))$ (ohne rekursion)
+ PR-Aufgebaute Funktionen $f(a, b, c) = g(i(a), j(b))$ + 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$) - **Rekursive Aufrufe** sind möglich, z.B.: $r(a, b, c) = r(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)$ + 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 ## µ-Rekursiv