Das Pumping-Lemma Typ-3-Sprachen Um zu zeigen, daß eine Sprache L regulär ist, kannman einen NFA M angeben mit L(M) = L, oder eine rechtslineare Grammatik G angeben mit L(G) =L, oder einen regulären Ausdruck γ angeben mit L(γ) = L, oder zeigen, daß L = L 1 L 2 ist und daß L 1 und L 2 regulär sind, oder zeigen, daß L = L 1 L 2 ist und daß L 1 und L 2 regulär sind, oder... WS 11/12 119
Aber wie kann man zeigen, daß eine Sprache nicht regulär ist? Beispiel Betrachte die kontextfreie Grammatik G mit den Produktionen S 0 S 1 S S ε Sie erzeugt z.b. die Wörter ε, 01, 0011, 0101, 001011. Die Sprache L(G) =Kl ist die Sprache der korrekten Klammerausdrücke (verstehe 0 als öffnende und 1 als schließende Klammer). Diese kontextfreie Sprache ist nicht regulär. Also gilt L 3 L 2. Aber wie kann man das zeigen? WS 11/12 120
Natürlich könnte man zeigen, daß L(M) = Kl für jeden NFA M gilt, oder zeigen, daß L(G) = Kl für jede rechtslineare Grammatik G gilt, oder zeigen, daß L(γ) = Kl für jeden regulären Ausdruck γ gilt, oder eine reguläre Sprache L angeben und zeigen (bzw. schon wissen), daß Kl L nicht regulär ist (denn der Schnitt zweier regulärer Sprachen ist wieder regulär, siehe Folie 98), oder... Z.B. ist a b ein regulärer Ausdruck. Wir werden sehen, daß der Schnitt Kl L(0 1 )={0 m 1 m m N} nicht regulär ist (Folie 126). Daraus folgt dann, daß die Sprache der korrekten Klammerausdrücke Kl nicht regulär ist und damit L 3 L 2. WS 11/12 121
größeres Ziel: Ein schönes Verfahren, mit dem man einfach zeigen kann, daß eine Sprache L nicht regulär ist. Idee: Man versucht auszunutzen, daß eine reguläre Sprache von einem Automat mit endlich vielen Zuständen akzeptiert werden muß. Das bedeutet auch: wenn ein Wort x L ausreichend lang ist, so besucht man damit beim Durchlauf durch den Automaten mindestens einen Zustand z zweimal. z WS 11/12 122
v u z w Die dadurch entstehende Schleife kann nun mehrfach (oder gar nicht) durchlaufen werden. Dadurch wird das Wort x = uvw aufgepumpt und man stellt fest, daß uw, uv 2 w, uv 3 w,...auchinl liegen müssen. Bemerkung: Es gilt v i = v...v. i-mal WS 11/12 123
v u z w Außerdem kann man für u, v, w folgende Eigenschaften verlangen: 1 v 1: Die Schleife ist auf jeden Fall nicht trivial, d.h., sie enthält mindestens einen Übergang. 2 uv n =AnzahlderZustände des NFA: Spätestens nach n Alphabetsymbolen wird der Zustand z das zweite Mal erreicht. WS 11/12 124
Pumping Lemma (M. Rabin, D. Scott 1964) Wenn L eine reguläre Sprache ist, dann gibt es n 1derart, daß für alle x L mit x n gilt: es gibt Wörter u, v, w Σ mit (i) x = uvw, (ii) uv n, (iii) v 1 und (iv) uv i w L für alle i 0. Dieses Lemma spricht nicht über Automaten, sondern nur über die Eigenschaften der Sprache. Daher ist es dazu geeignet, Aussagen über Nicht-Regularität zu machen. Wir zeigen zunächst an einem Beispiel, wie dies funktioniert: WS 11/12 125
Beispiel L 1 = {0 m 1 m m N} ist nicht regulär. Beweis: indirekt Angenommen, L 1 wäre regulär. Nach dem Pumping-Lemma gibt es ein n 1, so daß die folgende Aussage gilt: Für jedes x L 1, x n, gibt es u, v, w Σ mit (i), (ii), (iii) und (iv). Wir wählen nun x =0 n 1 n. Dann ist x L 1 und x =2n > n. Nach der Aussage (*) gibt es also u, v, w Σ mit (*) (i) x = uvw, (iii) v 1und (ii) uv n, (iv) uv i w L 1 für alle i 0. WS 11/12 126
uvw (i) = x = 00000000 0000 11111111 1111 n mal n mal Wegen uv n nach (ii) besteht uv nur aus Nullen. Insbesondere besteht v {0} nur aus Nullen. Also gilt uv 0 w = uw =0 n v 1 n. Aus v 1 nach (iii) folgt n v < n und damit uv 0 w =0 n v 1 n / L 1. Widerspruch zu (iv)! Also ist L 1 nicht regulär. WS 11/12 127
Beweis des Pumping-Lemmas: Sei L eine reguläre Sprache. Sei M =(Z, Σ, S,δ,E) einnfamitl = L(M), sein = Z. Sei nun x ein beliebiges Wort mit x L und x n, d.h.x = a 1 a 2 a m mit m n und a 1, a 2,...,a m Σ. Da x L(M), existieren Zustände z 0, z 1,...,z m Z mit z 0 S, z j δ(z j 1, a j )für 1 j m, z m E. Wegen Z = n m existieren nach dem Schubfachprinzip 0 j < k n mit z j = z k. Setze u = a 1 a j, v = a j+1 a k und w = a k+1 a m. WS 11/12 128
Dann gilt: (i) x = a 1 a j a j+1 a k a k+1 a m = uvw (ii) uv = a 1 a k = k n (iii) v = k (j + 1) + 1 = k j > 0(daj < k) (iv) Sei i 0 beliebig. Es gelten z j ˆδ(z 0, u), z j = z k ˆδ(z j, v) und z m ˆδ(z k, w) E. Also gilt z j ˆδ(z j, v i )für alle i N. Damit erhält man aber z m ˆδ(z 0, uv i w) E, d.h.,uv i w L(M) =L. WS 11/12 129
Beispiel L 2 = {0 m2 m N} ist nicht regulär. Beweis: indirekt Angenommen, L 2 wäre regulär. Nach dem Pumping-Lemma gibt es ein n 1, so daß die folgende Aussage gilt: Für jedes x L 2, x n, gibt es u, v, w Σ mit (i), (ii), (*) (iii) und (iv). Wir wählen nun x =0 n2. Dann ist x L 2 und x = n 2 n. Nach der Aussage (*) gibt es also u, v, w Σ mit (i) x = uvw, (iii) v 1und (ii) uv n, (iv) uv i w L 2 für alle i 0. WS 11/12 130
uvw (i) = x = 00000000 0000 n 2 mal Wegen 1 v nach (iii) und uv n nach (ii) gilt 1 v n. Es gilt uv 2 w =0 u 0 v 0 v 0 w =0 x + v =0 n2 + v. Aus n 2 < n 2 + v n 2 + n < (n + 1) 2 folgt, daß n 2 + v keine Quadratzahl ist, also daß uv 2 w / L 2 gilt. Widerspruch zu (iv)! Also ist L 2 nicht regulär. WS 11/12 131
Unsere Beweise, daß L 1 und L 2 nicht regulär sind, folgten dem folgenden Schema: Behauptung: Die Sprache L ist nicht regulär. [0] (wörtlich) Beweis: indirekt. Angenommen, L wäre regulär. Nach dem Pumping-Lemma gibt es ein n 1, so daß die folgende Aussage (*) gilt: Für jedes x L, x n, gibt es u, v, w Σ mit (i)-(iv). [1] (problemspezifisch) Wirwählen ein geeignetes x L mit x n, so daß Schritt [3] ausführbar ist. [2] (wörtlich) Nach der Aussage (*) gibt es u, v, w Σ mit (i) (iv). [3] (problemspezifisch) Wirwählen zu u, v, w ein passendes i 0 und zeigen, daß uv i w nicht in L sein kann. [5] (wörtlich) Widerspruchzu(iv). WS 11/12 132
Dieses Beweisschema ist die Umsetzung der folgenden Formulierung des Pumping-Lemmas mit logischen Operatoren: L regulär n x L mit x n u, v, w mit (i iii) i : uv i w L Erinnerung Logische Strukturen : A B B A und xf x F und xf x F. Das Pumping-Lemma ist also logisch äquivalent zu: n x L mit x n u, v, w mit (i-iii) i : uv i w L L ist nicht regulär WS 11/12 133
Diese Umformulierung können wir auch in dem folgenden Spielschema fassen: Wir (die Beweiser oder Braven) wollen zeigen, daß die Sprache L nicht regulär ist. Dazu müssen wir das folgende Spiel (gegen den Gegner oder den Gemeinen) gewinnen: Runde 1 G wählt eine Zahl n 1. Runde 2 B wählt ein x L mit x n Runde 3 G wählt u, v, w mit (i) x = uvw, (ii) uv n und (iii) v 1. Runde 4 B wählt ein i und zeigt, daß uv i w / L. Die Sprache L ist nicht regulär, falls B unabhängig von den Wahlen von G in Runden 1 und 3 immer so wählen kann (in Runden 2 und 4), daß schließlich uv i w / L gilt. WS 11/12 134
Beispiel L 3 = {0 m 10 10 m+ m, N} ist nicht regulär. Beweis: wir zeigen, daß B im Spielschema immer so wählen kann, daß uv i w / L 3 gilt: Runde 1 G wählt eine Zahl n 1. Runde 2 B wählt x =0 n 110 n (natürlich gelten x L 3 und x n) Runde 3 G wählt u, v, w mit (i) x = uvw, (ii) uv n und (iii) v 1. Runde 4 B wählt i = 0 und zeigt, daß uv i w / L 3 : x beginnt mit genau n uv Nullen. Also besteht v nur aus Nullen. Damit ergibt sich uv i w =0 n v 110 n / L 3,denn v 1impliziertn v = n. Also kann B so wählen, daß uv i w / L 3,d.h.,L 3 ist tatsächlich nicht regulär. WS 11/12 135
Beispiel Typ-3-Sprachen L 4 = {0 p p ist eine Primzahl} ist nicht regulär. Beweis: wir zeigen, daß B im Spielschema immer so wählen kann, daß uv i w / L 4 gilt: Runde 1 G wählt eine Zahl n 1. Runde 2 B wählt x =0 p für eine Primzahl p n +2(natürlich gelten x L 4 und x n) Runde 3 G wählt u, v, w mit (i) x = uvw, (ii) uv n und (iii) v 1. Runde 4 B wählt i = uw und zeigt, daß uv i w / L 4 : Damit erhalten wir uv i w = uw + i v = uw + uw v = uw (1 + v ). Es gelten uw w 2nach(ii)und 1 + v 2nach(iii). Also ist uv i w keine Primzahl, d.h. uv i w / L 4. Also kann B so wählen, daß uv i w / L 4,d.h.,L 4 ist tatsächlich nicht regulär. WS 11/12 136
Vorsicht! Das Pumping-Lemma hat die Form Wenn L regulär ist, so gilt..., es handelt sich also nur um eine Implikation. Wir zeigen, daß die umgekehrte Implikation nicht gilt: Beispiel Sei L = {a k b c k 1, N} {b k c k, N}. Dann ist L nicht regulär, es gibt aber n 1, so daß sich jedes x L mit x n in uvw faktorisieren läßt mit (i)-(iv). Beweis: Zunächst zeigen wir indirekt, daß L nicht regulär ist: Angenommen, L wäre regulär. Da L(ab c ) regulär ist, wäre dann auch L L(ab c )={ab c N} regulär (Folie 98). Man zeigt analog zum Beweis auf Folie 126, daß dies nicht der Fall ist. WS 11/12 137
Sei n = 1. Sei nun x L beliebig mit x n = 1. Wir faktorisieren x, indemwirsetzen:u = ε, v = erster Buchstabe von x, w = Rest von x. Sei i N beliebig. Wir zeigen uv i w L durch Fallunterscheidung: 1. Fall: v = a. Dann existieren k, N mit x = aa k b c. Es folgt uv i w = a i a k b c L 2. Fall v = b. Dann existieren k, N mit x = bb k c. Es folgt uv i w = b i b k c L 3. Fall v = c. Dann existiert N mit x = cc. Es folgt uv i w = c i c L WS 11/12 138
Zusammenfassung Pumping-Lemma Das Pumping-Lemma kann genutzt werden, um zu zeigen, daß eine Sprache nicht regulär ist (z.b. mit Hilfe des Spielschemas). Es gibt aber nichtreguläre Sprachen, deren Nichtregularität andere Argumente verlangt. Insbesondere kann das Pumping-Lemma nicht genutzt werden, um die Regularität einer Sprache L zu zeigen. Hinweis: Jaffe (1978) bzw. Stanat und Weiss (1982) haben die regulären Sprachen im Stile des Pumping-Lemmas charakterisiert (die entsprechenden Arbeiten finden Sie auf der Vorlesungsseite im Netz). WS 11/12 139