18.09.2013 Aufrufe

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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).

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!