Pumping-Lemma
Das Pumping-Lemma (englisch to pump = aufpumpen), auch uvw-Theorem, Schleifenlemma, Iterationslemma, Lemma von Bar-Hillel, ist ein Hilfsmittel, um von einer Sprache nachzuweisen, dass sie nicht regulär bzw. nicht kontextfrei ist.
| Inhaltsverzeichnis |
Idee
Das Pumping-Lemma liefert lediglich eine notwendige Bedingung dafür, dass eine Sprache regulär ist. Eine notwendige und hinreichende Bedingung liefert der Satz von Myhill-Nerode.
Man unterscheidet zwei Varianten des Pumping-Lemmas. Eine Variante bezieht sich auf reguläre Sprachen, eine andere auf kontextfreie Sprachen.
Reguläre Sprachen
Definition
Sei L eine reguläre Sprache, also
. Dann gibt es eine Zahl
, so dass sich alle Wörter
mit
in x = uvw zerlegen lassen, so dass gilt:
Beispiel
Ist die Sprache
regulär?
Angenommen, L sei eine reguläre Sprache. Dann gibt es gemäß Pumping-Lemma eine Zahl n, so dass sich alle Wörter
mit
wie beschrieben zerlegen lassen.
Man betrachte nun speziell das Wort x = uvw = anbn.
Gemäß Bedingung 1 ist v nicht leer, gemäß Bedingung 2 besteht v ausschießlich aus as. Mit Bedingung 3 müsste das Wort
in L liegen. Das ist aber offensichtlich falsch, denn dieses Wort hat mehr as als bs. Damit gilt: L ist nicht regulär.
Kontextfreie Sprachen
Definition
Sei L eine kontextfreie Sprache, also
. Dann gibt es eine Zahl
, so dass sich alle Wörter
mit
in z = uvwxy zerlegen lassen, so dass gilt:
Beispiel
Ist die Sprache
kontextfrei?
Wir nehmen an, L sei kontextfrei. Sei dann n die zugehörige Konstante aus dem Pumping-Lemma.
Wir betrachten das Wort z = anbncn. Es muss dann eine Zerlegung z = uvwxy geben, so dass
,
,
für alle
ist. Da
, enthält das Wort vwx höchstens zwei verschiedene Buchstaben. Da
, kann uv2wx2y nicht von allen drei Buchstaben gleich viele enthalten. Also ist L nicht kontextfrei.
Beim Beweis am Besten folgende Fälle betrachten:
1. v oder x enthalten verschiedene Buchstabensorten.
2. v und x enthalten die gleiche Buchstabensorte.
3. v und x enthalten die gleiche Buchstabensorte und eins von beiden ist leer.
Kategorie:Theoretische Informatik
Kategorie:Compilerbau
