Skriptes - Uni Bremen - Universität Bremen
Skriptes - Uni Bremen - Universität Bremen
Skriptes - Uni Bremen - Universität Bremen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Primitiv rekursive Funktionen und µ-rekursive Funktionen<br />
14. Primitiv rekursive Funktionen und µ-rekursive<br />
Funktionen<br />
Sowohl die LOOP-berechenbaren Funktionen als auch die WHILE-berechenbaren Funktionen<br />
lassen sich auch auf gänzlich andere Weise definieren, wobei nicht der Mechanismus<br />
der Berechnung, sondern die Funktion selbst in den Mittelpunkt gestellt wird.<br />
Genauer gesagt betrachten wir die Klasse der sogenannten primitiv rekursiven Funktionen,<br />
die sich als identisch zu den LOOP-berechenbaren Funktionen herausstellen, und die<br />
Klasse der µ-rekursiven Funktionen, die sich als identisch zu den WHILE-berechenbaren<br />
Funktionen herausstellen. Beide Klassen waren historisch unter den ersten betrachteten<br />
Berechnungsmodellen und spielen in der Theorie der Berechenbarkeit und der Komplexitätstheorie<br />
noch heute eine wichtige Rolle. Insbesondere kann man sie als mathematisches<br />
Modell von funktionalen Programmiersprachen auffassen. Auch in diesem Kapitel<br />
betrachten wir ausschliesslich k-stellige Funktionen f : Æ k → Æ.<br />
Primitiv Rekursive Funktionen<br />
Die Klasse der primitiv rekursiven Funktionen besteht aus den Funktionen, die man aus<br />
den folgenden Grundfunktionen durch Anwenden der folgenden Operationen erhält.<br />
Grundfunktionen:<br />
1. Konstante Nullfunktionennull k beliebiger Stelligkeitk ≥ 0, also z.B. die dreistellige<br />
Funktion null 3 mit null 3 (x 1 ,x 2 ,x 3 ) = 0 für alle x 1 ,x 2 ,x 3 .<br />
2. Projektionsfunktionen proj k→i beliebiger Stelligkeit k auf das i-te Argument, 1 ≤<br />
i ≤ k, z.B. die dreistellige Funktion proj 3→1 für die Projektion auf das erste Argument,<br />
also proj 3→1 (x 1 ,x 2 ,x 3 ) = x 1 für alle x 1 ,x 2 ,x 3 .<br />
3. Die einstellige Nachfolgerfunktion succ.<br />
Operationen:<br />
1. Komposition (Einsetzung) von Funktionen.<br />
Genauer gesagt entsteht eine k-stellige Funktion f aus k-stelligen Funktionen<br />
h 1 ,...,h n unter Anwendung eine n-stelligen Funktion g wenn<br />
2. Primitive Rekursion.<br />
f(x 1 ,...,x k ) = g(h 1 (x 1 ,...,x k ),...,h n (x 1 ,...,x k ))<br />
Primitive Rekursion bedeutet hier einen rekursiven Abstieg über das erste Funktionsargument,<br />
also darf f(n + 1,...) definiert werden unter Verwendung von<br />
f(n,...). Um das etwas präziser zu machen sei g eine k-stellige Funktion und<br />
115