Turingmaschinen sind sehr allgemeine Konstrukte. Glaubenssatz:
Church’sche These: Die Klasse der “intuitiv” berechenbaren Funktionen stimmt mit der der Turing-berechenbaren Funktionen überein oder: Turing-Maschinen können alles, was Computer können (die Umkehrung ist sofort offensichtlich, wenn wir ein Programm zur Simulation einer Turing-Maschine schreiben können, und das geht schon für recht simple Systeme, z.B. TEX).
Dabei heißt eine (partielle) Funktion f:Σ*→Σ*Turing-berechenbar, wenn es eine (deterministische) Turing-Maschine M gibt, so dass f(x) = y genau dann, wenn Sx * →#Zy# mit Z Endzustand von M.
Wir verwenden das Symbol * → hier etwas schlampig – es soll hier natürlich heißen “es gibt eine Zustandsfolge, die die linke in die rechte Seite überführt”. Wichtig ist, dass keine Aussage über das Verhalten der Maschine an den Stellen gemacht wird, an denen f nicht definiert ist.
Die charakteristische Funktion χM einer Menge M⊆N ist
Beispiel: Sei L eine Chomsky-0-Sprache. Für jedes w∈L stoppt eine Turingmaschine mit L= L(M). Also sind die charakteristischen Funktionen
Eine Sprache L heißt entscheidbar, wenn ihre charakteristische Funktion berechenbar ist, semi-entscheidbar, wenn ihre halbe charakteristische Funktion berechenbar ist.
Eine Sprache L heißt rekursiv aufzählbar, wenn L= ∅ oder eine (totale) berechenbare Funktion f:ℕ →Σ* existiert, so dass L= {f(1),f(2),…}.
Satz: L rekursiv aufzählbar ⇔L semi-entscheidbar.
Beweisidee: “⇒”: Der Algorithmus prüft einfach alle f(i) durch.
“⇐”: Wir definieren zunächst w:ℕ →Σ* (das geht, weil Sternbildung sehr simpel und Σ endlich ist). Sei χ‘L durch den Algorithmus M realisiert. Wir nehmen ein Wort a∈L als “default” und definieren eine Funktion
Anmerkung: Der Unterschied zwischen rekursiver Aufzählbarkeit und Abzählbarkeit ist, dass bei der Abzählbarkeit nicht die Berechenbarkeit der Bijektion gefordert ist (wichtig bei Teilmengenbildung!).