Eine Sprache ist nicht regulär – Beweis mit dem Pumping-Lemma

Reguläre Sprachen können von endlichen Automaten erkannt werden. Das bedeutet, dass eine endliche Anzahl an Zuständen ausreicht, um ein Wort der Sprache zu akzeptieren. Wenn also eine Sprache \(L = \{a^i b^{2i} | i \in \mathbb{N}\}\) beschrieben wird, müsste gezählt werden, wie oft a vorkommt. a kann aber beliebig oft vorkommen. Das ist ein Indiz dafür, dass es sich nicht um eine reguläre Sprache handelt.

Das Pumping-Lemma ist ein notwendiges, aber kein hinreichendes Kriterium für reguläre Sprachen. Daraus folgt, dass eine nicht-reguläre Sprache eventuell durch das Lemma entlarvt werden kann. Allerdings muss nicht jede Sprache, die das Pumping-Lemma erfüllt, regulär sein.

Dies kann man durch einen Widerspruchsbeweis zeigen. Dabei nimmt man an, dass die Behauptung falsch ist. Dann zeigt man, dass man durch die Annahme zu einem Widerspruch kommt.

Beispiel

Voraussetzung:

\(L_2 = \{a^i b^j c^k | i \lt j \lt k\}\).

Behauptung: \(L_2\) ist nicht regulär.

Beweis: (durch Widerspruch)

Annahme: \(L_2\) sei regulär.

Aus dem Pumping-Lemma folgt:
\(\exists n \in \mathbb{N}: \forall w \in \{w \in L_2 | |w| \geq n\}: \)
\(\exists \text{ Darstellung } uvx = w \text{ mit } v \neq \varepsilon \land |uv| \leq n\) für die gilt:

\(uv^i x \in L_2 \forall i \in \mathbb{N}_0\)

In Worten: Wenn man ein Wort in L hat, dass mindestens so lang ist wie ein bestimmtes n, dann kann man dieses Wort in Teilworte u, v und x zerlegen. Bei dieser Zerlegung ist v niemals leer. Wenn man nun den Teil des Wortes, der in v steckt wiederholt, muss das Wort immer noch in \(L_2\) sein.

Sei \(n \in \mathbb{N}\) die Konstante aus dem Pumping-Lemma.

Betrachte nun \(w = a^n b^{n+1} c^{n+2}\). Offensichtlich gilt \(w \in L_2\). Da \(|uv| \leq n\) muss in v mindestens ein a sein.

\(\Rightarrow uv^2 x = a^{n+2 \cdot i} b^{n+1} c^{n+2}, i \geq 1 \)
\(\Rightarrow uv^2x \notin L_2 \)
\(\Rightarrow \text{Widerspruch} \)
\(\Rightarrow \text{Die Annahme war falsch.} \)
\(\Rightarrow L_2\) ist nicht regulär.

Bemerkung: Eigentlich ist es ein Beweis durch Kontraposition. Man weiß, es gilt:
\(L \in {\cal L_3} \Rightarrow \) L erfüllt das Pumping-Lemma.
Daraus folgt:
L erfüllt nicht das Pumping-Lemma \(\Rightarrow L \notin {\cal L_3}\).
Um zu beweisen, dass L das Pumping-Lemma nicht erfüllt, benutzt man meist einen Widerspruchsbeweis wie oben.

Material

Ich habe mal ein paar Beispiele für Ogdens Lemma und das Pumping-Lemma gesammelt.

You can leave a response, or trackback from your own site.

3 Responses to “Eine Sprache ist nicht regulär – Beweis mit dem Pumping-Lemma”

  1. [...] (Leftrightarrow) Es existiert ein regulärer Ausdruck für L. L ist regulär (Rightarrow) Das Pumping-Lemma ist [...]

  2. Sören says:

    Hallo Martin,

    was ist denn der grundlegende Unterschied zwischen Ogdens und Pumping Lemma? Mir ist bewusst, dass das Ogdens Lemma (OL) eine verallgemeinerte Form des Pumping Lemmas (PL) ist, aber gibt es nicht kontextfreie Grammatiken, die ich mit dem OL, aber nicht mit dem PL zeigen kann?

    Grüße
    Sören

  3. Martin Thoma says:

    Hallo Sören,

    ja, ich glaube es gibt Sprachen bei denen man mit Ogdens Lemma zeigen kann, dass sie nicht kontextfrei sind, jedoch nicht mit dem Pumping-Lemma. Allerdings habe ich noch kein Beispiel gefunden. Wenn ich eins habe, stelle ich es hier ein und schreibe noch einen kurzen Kommentar.

    Bitte hinterlasst doch einen Kommentar, falls jemand eine nicht-kontextfreie Sprache kennt, die Ogdens Lemma nicht erfüllt!

    Viele Grüße,
    Martin

Leave a Reply