# Μ-Rekursion

Die Klasse Pr der μ-rekursiven Funktionen oder partiell-rekursiven Funktionen spielt in der Rekursionstheorie, einem Teilgebiet der theoretischen Informatik, eine wichtige Rolle (µ für griechisch μικρότατος ‚das kleinste‘). Nach der Church-Turing-These beschreibt sie die Menge aller Funktionen, die im intuitiven Sinn berechenbar sind. Eine wichtige echte Teilmenge der μ-rekursiven Funktionen sind die primitiv-rekursiven Funktionen.
Die Klasse der μ-rekursiven Funktionen stimmt überein mit der Klasse der Turing-berechenbaren Funktionen sowie weiteren gleich mächtigen Berechenbarkeitsmodellen, wie dem Lambda-Kalkül, Registermaschinen und WHILE-Programmen.
Die primitiv-rekursiven Funktionen sind aus einfachen Grundfunktionen (konstante 0-Funktion, Projektionen auf ein Argument und Nachfolgerfunktion) durch Komposition und primitive Rekursion aufgebaut. Dadurch erhält man immer totale Funktionen, also Funktionen im eigentlichen Sinn. Die μ-rekursiven Funktionen sind demgegenüber partielle Funktionen, die aus denselben Konstrukten und zusätzlich durch die Anwendung des μ-Operators gebildet werden können. Durch die Anwendung des μ-Operators wird Partialität eingeführt. Jedoch ist nicht jede μ-rekursive Funktion nicht-total. Beispielsweise sind alle primitiv-rekursiven Funktionen auch μ-rekursiv. Ein Beispiel für eine nicht primitiv-rekursive, totale, μ-rekursive Funktion ist die Ackermannfunktion.

## Definition des μ-Operators

Für eine partielle Funktion $f\colon \mathbb {N} ^{k+1}\to \mathbb {N}$ und natürliche Zahlen $x_{1};\dots ;x_{k}\in \mathbb {N}$ sei die Menge
    $M(f,x_{1},\dots ,x_{k})=\{n\in \mathbb {N} \mid f(x_{1},\dots ,x_{k},n)=0\ \land \ \forall 0\leq m\leq n\colon f(x_{1},\dots ,x_{k},m)\downarrow \}$
festgehalten, also die Gesamtheit aller $n$ derart, dass $f$ an der Stelle $(x_{1},\dots ,x_{k},n)$ identisch 0 verschwindet und zusätzlich für alle Punkte $(x_{1},\dots ,x_{k},m)$ mit $m\leq n$ definiert ist.
Zu beachten ist dabei, dass $M(f,x_{1},\dots ,x_{k})$ als Menge natürlicher Zahlen genau dann ein Minimum besitzt, wenn sie nicht leer ist. (vgl. Wohlordnung)
Durch Anwendung des $\mu$-Operators auf $f$ entstehe nun die partielle Funktion $\mu f\colon \mathbb {N} ^{k}\to \mathbb {N}$ definiert durch:
    $\mu f(x_{1},\dots ,x_{k})={\begin{cases}\min M(f,x_{1},\dots ,x_{k})&{\mbox{falls }}M(f,x_{1},\dots ,x_{k})\not =\emptyset \\{\mbox{undefiniert}}&{\mbox{sonst}}\\\end{cases}}$
Insbesondere bildet der Operator $\mu$ also eine $(k+1)$-stellige partielle Funktion auf eine $k$-stellige partielle Funktion ab.
Für berechenbares $f$ kann das Programm zur Berechnung von $\mu f$ verstanden werden als eine While-Schleife, die nach oben zählt, und die deswegen nicht terminieren muss:
Parameter: $x_{1},...,x_{k}$. Setze $n$ auf $0$; Solange $f(x_{1},\dots ,x_{k},n)\not =0$ erhöhe $n$ um $1$; Ergebnis: $n$.

## Definition der μ-rekursiven Funktionen

Die Klasse $Pr$ der μ-rekursiven Funktionen (von $\mathbb {N} ^{k}\to \mathbb {N}$) umfasst die folgenden Grundfunktionen:
* konstante 0-Funktion: $f^{k}\left(n_{1},\dots ,n_{k}\right):=0$
* Projektion auf ein Argument: $\pi _{i}^{k}\left(n_{1},\dots ,n_{k}\right):=n_{i}$, $1\leq i\leq k$
* Nachfolgefunktion: $\nu \left(n\right):=n+1$
Die μ-rekursiven Funktionen erhält man als Abschluss der Grundfunktionen bezüglich der drei folgenden Operationen:
* Die Komposition: $f\left(n_{1},\dots ,n_{k}\right):=g\left(h_{1}\left(n_{1},\dots ,n_{k}\right),\dots ,h_{m}\left(n_{1},\dots ,n_{k}\right)\right)$, falls $g,h_{1},\dots ,h_{m}\in Pr$
* Die Primitive Rekursion: $f\left(0,n_{2},\dots ,n_{k}\right):=g\left(n_{2},\dots ,n_{k}\right)$ und $f\left(n_{1}+1,n_{2},\dots ,n_{k}\right):=h\left(f\left(n_{1},\dots ,n_{k}\right),n_{1},\dots ,n_{k}\right)$, falls $h,g\in Pr$
* Der μ-Operator.

## Äquivalenz der μ-rekursiven Funktionen mit der Turingmaschine

Es lässt sich beweisen, dass eine Turingmaschine (TM) durch μ-rekursive Funktionen simuliert werden kann. Es lässt sich auch beweisen, dass die Menge der μ-rekursiven Funktionen genau der Menge der Turing-berechenbaren Funktionen entspricht.
Beweis-Skizze für die Simulation der TM mit μ-rekursiven Funktionen
Man kann zeigen, dass sich die Konfiguration einer TM durch drei Zahlen $a$, $b$, $c$ darstellen lässt. Genau so kann eine Funktion $h(a,b,c)=y$ (eine bijektive Abbildung $\mathbb {N} ^{3}\to \mathbb {N}$) definiert werden, die eine geeignete Kodierung der TM ist.
Nehmen wir also eine primitiv-rekursive Funktion
    $f(n,x)=y$,
die eine geeignete Kodierung der TM liefert für die Eingabe $x$ nach $n$ Berechnungsschritten,
und eine zweite primitiv-rekursive Funktion
    $g(y)=0\lor g(y)=1$,
die für eine Kodierung $y$ als Ergebnis 0 liefert, falls $y$ einen Endzustand der TM repräsentiert, und ansonsten 1.
Dann ergibt
    $\mathrm {Anzahl} (x)=\mu (g(f(n,x)))$
die Anzahl der Schritte, die eine TM zur Berechnung bis zum Ende benötigt. Also bekommen wir mit
    $\mathrm {Berechnung} (x)=f(\mathrm {Anzahl} (x),x)$
die Berechnung der TM in einem Endzustand bei der Eingabe $x$.

## Bemerkung

* Die Berechenbarkeit einer μ-rekursiven Funktion bezieht sich auf Werte aus ihrem Definitionsbereich. Es existiert kein allgemeines Verfahren, das alle Werte liefert, die nicht zum Definitionsbereich einer μ-rekursiven Funktion gehören.
* Der μ-Operator realisiert einen Suchprozess, der genau dann abbricht, wenn der gesuchte Wert existiert.

## Beispiele

* Alle primitiv-rekursiven Funktionen sind μ-rekursiv.
* Die Ackermannfunktion und die Sudanfunktion sind totale μ-rekursive Funktionen, die nicht primitiv-rekursiv sind.
* Die Funktion Fleißiger Biber (busy beaver) ist nicht μ-rekursiv.
* Die Folge der Ziffern der Halte-Wahrscheinlichkeit (Chaitinsche Konstante $\Omega$) ist nicht μ-rekursiv. Die Halte-Wahrscheinlichkeit ist definiert durch
       $\Omega :=\sum _{p}2^{-\left|p\right|}$,
    wobei $p$ ein haltendes Programm ist und $\left|p\right|$ die Länge des Programms in Bit bezeichnet.