Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
112 KAPITEL 4. CHURCHSCHE THESE<br />
Allgeme<strong>in</strong>er:<br />
Def<strong>in</strong>ition. Wir sagen, dass e<strong>in</strong>e k-stellige Funktion f(n1, . . .,nk) durch primitive<br />
Rekursion mit Hilfe e<strong>in</strong>er (k − 1)-stelligen Funktion g und e<strong>in</strong>er (k + 1)-stelligen<br />
Funktion h def<strong>in</strong>iert ist, falls für alle n1, . . . , nk−1, m ∈ gilt<br />
f(n1, . . . , nk−1, 0) = g(n1, . . .,nk−1) und<br />
f(n1, . . . , nk−1, m + 1) = h(n1, . . . , nk−1, m, f(n1, . . . , nk−1, m)).<br />
Beispiel 4. Addition. Es gilt<br />
n + 0 = n<br />
und<br />
n + (m + 1) = succ(n + m).<br />
Also ist add(n, m) = n + m durch primitive Rekursion mit<br />
g(n) = n = π 1 1(n)<br />
und<br />
h(n, m, i) = succ i = succ(π 3 3(n, m, i))<br />
def<strong>in</strong>iert. In der Tat gilt<br />
add(n, 0) = g(n)<br />
add(n, m + 1) = h(n, m, add(n, m)).<br />
Beispiel 5. Die Multiplikation ist die (primitiv-)rekursive Funktion:<br />
n ∗ 0 = 0<br />
n ∗ (m + 1) = (n ∗ m) + m.<br />
Genauer: für mal(n, m) = n ∗ m def<strong>in</strong>ieren wir<br />
g(n) = K0<br />
und<br />
h(n, m, i) = add(m, i) = add(π3 2 (n, m, i), π3 3 (n, m, i)).<br />
Dann gilt<br />
mal(n, 0) = g(n)<br />
mal(n, m + 1) = h(n, m, mal(n, m)).<br />
Def<strong>in</strong>ition. E<strong>in</strong>e Funktion heißt primitiv-rekursiv, falls sie durch endlich viele<br />
Anwendungen von Verknüpfung und primitiver Rekursion auf die Basisfunktionen<br />
def<strong>in</strong>iert werden kann.<br />
Mit anderen Worten ist die kle<strong>in</strong>ste Klasse von Funktionen, die alle Basisfunktionen<br />
enthält und unter Verknüpfung und primitiver Rekursion abgeschlossen ist, die<br />
Klasse aller primitiv-rekursiver Funktionen.<br />
Beispiele: Kn, f(n) = n + 2, g(n, m) = m + 2, add(n, m) und mal(n, m) s<strong>in</strong>d<br />
primitiv-rekursiv.<br />
Beispiel 6. Die Fakultätsfunktion m! ist primitiv-rekursiv, da sie mit der folgenden<br />
primitiven Rekursion def<strong>in</strong>iert werden kann:<br />
0! = 1<br />
(m + 1)! = mal(m + 1, m!).<br />
Hier ist also g = K1 und h(x, y) = mal(x + 1, y) = mal(succ(π2 1 (x, y), π2 2 (x, y)). Da<br />
g und h beide primitiv-rekursiv s<strong>in</strong>d, ist auch m! primitiv-rekursiv.<br />
Beispiel 7. Die Vorgängerfunktion <strong>in</strong> der Form<br />
0 falls n = 0<br />
f(n) =<br />
n − 1 falls n > 0<br />
ist primitiv-rekursiv:<br />
f(0) = 0 = K0<br />
f(n + 1) = n = π2 1 (n, f(n)).<br />
Also g = K0 und h(n, m) = π2 1(n, m).