Pumping-Lemma
Das Pumping-Lemma ist eine Methode der Theoretischen Informatik, mit der überprüft werden kann, ob sog. formale Sprachen bestimmte Ausprägungen haben. Sie weist ggf. nach, dass eine formale Sprache nicht regulär bzw. nicht kontextfrei (uvwxy-Theorem) ist.
Die Methode wird alternativ als auch uvw-Theorem, Schleifenlemma, Iterationslemma oder Lemma von Bar-Hillel bezeichnet. Ihren Namen hat sie vom englischen Begriff to pump, zu deutsch aufpumpen.
In der Literatur sind Pumping-Lemmata auch für Erweiterungen der kontextfreien Sprachen anzutreffen. Für kontextsensitive und sogar wachsend kontextsensitive Sprachen ist bekannt, dass hier kein Pumping-Lemma möglich ist.
Von Ogden ist das Pumping-Lemma verschärft worden, siehe Ogdens Lemma.
Idee
Das Pumping-Lemma ist eine Methode, um nachzuweisen, ob eine formale Sprache nicht regulär (Variante 1) bzw. nicht kontextfrei (Variante 2) ist. Es liefert für diesen Beweis eine notwendige Bedingung. So wird der Beweis dann als Widerspruchsbeweis geführt. Es wird angenommen, dass eine Sprache regulär oder kontextfrei sei. Diese Aussage wird mit Hilfe eines Pumping-Lemmas zum Widerspruch geführt.
Eine notwendige und hinreichende Bedingung liefert der Satz von Myhill-Nerode.
Variante 1: Prüfung auf Regularität von Sprachen
Annahmen
Sei eine Grammatik des Chomsky-Hierarchie-Typ 3. Diese bezeichnet die regulären Sprachen.
Aussage des Pumping-Lemmas für reguläre Sprachen
Sei eine reguläre Sprache, also . Dann gibt es eine Zahl , sodass sich alle Wörter mit in zerlegen lassen, sodass gilt:
Beispiel
Ist die Sprache regulär?
Angenommen, sei eine reguläre Sprache. Dann gibt es gemäß Pumping-Lemma eine Zahl , sodass sich alle Wörter mit wie beschrieben zerlegen lassen.
Man betrachte nun speziell das Wort .
Gemäß Bedingung 1 ist nicht leer, gemäß Bedingung 2 besteht und somit auch ausschließlich aus s (da und ). Mit Bedingung 3 müsste das Wort in liegen. Das ist aber offensichtlich falsch, denn dieses Wort hat mehr s als s. Damit gilt: ist nicht regulär.
Variante 2: Prüfung auf Kontextfreiheit von Sprachen
Annahmen
Sei eine Chomsky-Hierarchie-Typ-2-Grammatik. Diese bezeichnet die kontextfreien Sprachen.
Aussage des Pumping-Lemmas für kontextfreie Sprachen
Sei eine kontextfreie Sprache, also . Dann gibt es eine Zahl , sodass sich alle Wörter mit in zerlegen lassen, sodass gilt:
Beispiel
Ist die Sprache kontextfrei?
Wir nehmen an, sei kontextfrei. Sei dann die zugehörige Konstante aus dem Pumping-Lemma.
Wir betrachten das Wort . Es muss dann eine Zerlegung geben, sodass , , für alle ist. Da , enthält das Wort höchstens zwei verschiedene Buchstaben. Da , kann nicht von allen drei Buchstaben gleich viele enthalten. Also ist nicht kontextfrei.
Beim Beweis sollte man am Besten folgende Fälle betrachten:
- oder enthalten verschiedene Buchstabensorten.
- und enthalten die gleiche Buchstabensorte.
- und enthalten die gleiche Buchstabensorte und eins von beiden ist leer.