“⇐”: ∀DFA M ∃ regulären Ausdruck γ : T (M ) = L(γ). Sei M = (Z, Σ, δ, z1, E) mit Z = {z1, z2, . . . , zn} ein DFA. Definiere (i, j ∈ {1, 2, . . . , n}, k ∈ {0, 1, . . . , n}): k := { x ∈ Σ∗ | δ̂(z , x) = z und für alle y, z ∈ Σ+, Ri,j i j x = yz, gilt δ̂(zi, y) = zs für ein s ≤ k } # # # zi zj1 zj2 # ... x1 "! x2 "! x3 "! j1 ≤ k xm zj "! j2 ≤ k 0 = { a ∈ Σ | δ(z , a) = z } Ri,j i j (i 6= j) 0 = { a ∈ Σ | δ(z , a) = z } ∪ {ε} Ri,i i i 0 sind endliche Sprachen. Also: Ri,j k+1 k ∪ Rk k ∗ k Ri,j = Ri,j i,k+1(Rk+1,k+1 ) Rk+1,j k k k ∗ k αk+1 i,j := ( αi,j | αi,k+1 (αk+1,k+1) αk+1,j ) T (M ) = S zi∈E n , d.h. für E = {z , . . . , z } ist R1,i i1 im n n γ = ( αn 1,i1 | α1,i2 | . . . | α1,im ). 2 57 1.2.4 Das Pumping Lemma Satz (Pumping Lemma, Lemma von Bar-Hillel, uvw-Theorem) Sei L eine reguläre Sprache. Dann gibt es eine positive Zahl n, sodass sich alle Wörter x ∈ L mit |x| ≥ n zerlegen lassen als x = uvw, sodass folgende Eigenschaften gelten: (1.) |v| ≥ 1, (2.) |uv| ≤ n, (3.) für alle i = 0, 1, 2, . . . gilt uv iw ∈ L. Beweis: Sei M ein DFA mit T (M ) = L. Wähle n := |Z|, und sei x ∈ L mit |x| ≥ n. M : ∗ z0 −→ z1 −→ · · · −→ zn−1 −→ zn −→ z 0 ∈ E x1 x2 xn−1 xn x0 58 Dann gibt es r und s mit 0 ≤ r < s ≤ r + n und zr = zs. Dann kann x zerlegt werden als x = uvw mit |u| 1 ≤ |v| δ̂(z0, u) δ̂(zr , v) δ̂(zs, w) = = = = = r, s − r ≤ n, zr , zs = zr , z 0 ∈ E. Also gilt: δ̂(z0, uv iw) = δ̂(zr , v iw) = δ̂(zs, v i−1w) = δ̂(zr , v i−1w) = δ̂(zs, w) = z 0 ∈ E, d.h. uv iw ∈ T (M ) = L. 2 Beachte: Auch gewisse nicht-reguläre Sprachen erfüllen das Pumping Lemma! 59 Beispiel: L = { cmanbn | m, n ≥ 0 } ∪ {a, b}∗. Später: L ist nicht regulär. Aber: L erfüllt das Pumping Lemma. Sei k := 1, und sei x ∈ L mit |x| ≥ k. (i) x ∈ {a, b}∗ : klar. (ii) x = cmanbn mit m ≥ 1: Wähle u := ε, v := c, w := cm−1anbn. Dann: x = uvw, 1 ≤ |v|, |uv| = 1 ≤ k, uv iw = ci+m−1anbn ∈ L f.a. i ≥ 0. Menge aller Sprachen Sprachen, die das Pumping Lemma erfüllen reguläre Sprachen 60 Beispiel 1: L = { ambm | m ≥ 1 }. Behauptung: L ist nicht regulär. Beweis indirekt: Angenommen, L ist regulär. Dann erfüllt L das Pumping Lemma, d.h. ∃n ∈ N+∀x ∈ L : |x| ≥ n ; ∃x = uvw : - |v| ≥ 1, |uv| ≤ n und - uv iw ∈ L für alle i ≥ 0. Betrachte x := anbn : x ∈ L mit |x| = 2n > n. Also: ∃x = uvw mit: |v| ≥ 1, |uv| ≤ n und uv iw ∈ L für alle i ≥ 0. x = anbn = uvw mit |uv| ≤ n ; u = ar , v = as und w = an−s−r bn für gewisse Zahlen r, s mit r ≥ 0, s ≥ 1, r + s ≤ n. Dann: uv 0w = ar an−s−r bn = an−sbn 6∈ L ! 2 Folgerung L3 ( L2. 61 Beispiel 2: L = { 0m | m ist Quadratzahl }. Behauptung: L ist nicht regulär. Beweis indirekt: Angenommen, L ist regulär. Sei n die Konstante für L aus Pumping Lemma. 2 Betrachte x := 0n : x ∈ L mit |x| = n2 > n. Also: ∃x = uvw mit |v| ≥ 1, |uv| ≤ n und uv iw ∈ L für alle i ≥ 0. Betrachte das Wort uv 2w: n2 = |uvw| < |uv 2w| = |uvw| + |v| = n2 + |v| ≤ n2 + n < n2 + 2n + 1 = (n + 1)2, d.h. |uv 2w| ist keine Quadratzahl, d.h. uv 2w 6∈ L ! 2 Beispiel 3: L = { 0p | p ist Primzahl }. Behauptung: L ist nicht regulär. Beweis: siehe Buch. 2 62