Um zu zeigen, dass eine Sprache $L$ zur Sprachklasse $L_i$ gehört, kann man folgende Dinge tun:
-
Eine Grammatik $G$ von Typ $i$ angeben mit $L(G)=L$.
-
Einen entsprechenden Automaten $A$ angeben (Automaten des Typs $i$ sind nämlich äquivalent zu Grammatiken des Typs $i$ in Bezug auf die Sprachmächtigkeit):
-
Endlicher Automat für Typ 3,
-
Kellerautomat für Typ 2,
-
Linear beschränkter Automat (bzw. l. b. Turingmaschine) für Typ 1,
-
allgemeine Turingmaschine für Typ 0
mit $L(A)=L$.
-
Für die Klasse $L_3$ kann man außerdem auch einen regulären Ausdruck angeben.
Dann weiß man allerdings immer noch nicht (außer bei Typ 3), ob die Sprache nicht auch in $L_{i+1}$ liegt, da die Klassen ja ineinander enthalten sind. Um zu zeigen, dass $L$ NICHT in $L_3$ bzw. $L_2$ liegt, kann man bspw. das entsprechende Pumping-Lemma benutzen. Dass eine Sprache, die in $L_0$ liegt, nicht in $L_1$ liegt ist schon schwieriger zu zeigen, und darauf will ich jetzt nicht genauer eingehen.
Für Beweise, dass eine Sprache nicht in $L_0$ liegt, haben wir allerdings wieder Beispiele in der Vorlesung gehabt. Man kann z.B. mit Diagonalisierung zeigen, dass die Sprache $L_{NA}$ von keiner Turingmaschine erkannt werden kann und somit nicht in $L_0$ liegt.
Ein häufiges Missverständnis kommt allerdings beim Halteproblem auf. Dieses liegt nämlich in $L_0$, obwohl man zeigen kann, dass es nicht berechenbar ist. Die Definition von $L_0$ fordert nämlich nicht die Berechenbarkeit eines Problems, sondern nur die Semientscheidbarkeit, und diese ist für das Halteproblem gegeben.
Ein gutes Beispiel für diese Methoden zur Einsortierung einer Sprache in die "richtige" Chomsky-Stufe ist die erste Aufgabe vom dritten Heimübungsblatt.
Viele Grüße
Lukas König