31
Kontextfreie Sprachen Pumping-Lemma Beispiel Betrachte die kontextsensitive Grammatik G mit den Produktionen S aSBC | aBC CB HB HB HC HC BC aB ab bB bb bC bc cC cc . Sie erzeugt z.B. das Wort aabbcc : S aS BC aaBCB C aaBHB C aaBHC C aaB BCC aabB CC aabbC C aabbcC aabbcc Die erzeugte Sprache ist L 1 = {a m b m c m | m 1}. Diese kontextsensitive Sprache ist nicht kontextfrei. Also gilt L 2 L 1 . WS 11/12 224

Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Pumping-Lemma

Beispiel

Betrachte die kontextsensitive Grammatik G mit den Produktionen

S → aSBC | aBC CB → HB HB → HC

HC → BC aB → ab bB → bb

bC → bc cC → cc .

Sie erzeugt z.B. das Wort aabbcc :

S ⇒ aSBC ⇒ aaBCBC ⇒ aaBHBC

⇒ aaBHCC ⇒ aaBBCC ⇒ aabBCC

⇒ aabbCC ⇒ aabbcC ⇒ aabbcc

Die erzeugte Sprache ist L1 = {ambmcm | m ≥ 1}.

Diese kontextsensitive Sprache ist nicht kontextfrei. Also gilt L2 � L1.

WS 11/12 224

Page 2: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Aber wie kann man das beweisen?

großeres Ziel: Ein”schones“ Verfahren, mit dem man

”einfach“ zeigen

kann, daß eine Sprache L nicht kontextfrei ist.

Idee: Man versucht auszunutzen, daß eine kontextfreie Sprache von einer

Grammatik mit endlich vielen Variablen erzeugt werden muß. Das bedeutet

auch: wenn ein Ableitungsbaum ausreichend tief ist, so gibt es einen Pfad,

der eine Variable mehrfach enthalt. Die durch diese zwei Vorkommen

bestimmten Teilbaume werden wir”pumpen“.

WS 11/12 225

Page 3: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Pumping Lemma (Bar-Hillel, Perles, Shamir ’61)

Wenn L eine kontextfreie Sprache ist,

dann gibt es n ≥ 1 derart,

daß fur alle z ∈ L mit |z | ≥ n gilt:

es gibt Worter u, v ,w , x , y ∈ Σ∗ mit

(i) z = uvwxy ,

(ii) |vwx | ≤ n,

(iii) |vx | ≥ 1 und

(iv) uviwx

iy ∈ L fur alle i ≥ 0.

Dieses Lemma spricht nicht uber kontextfreie Grammatiken, sondern nur

uber die Eigenschaften der Sprache. Daher ist es dazu geeignet, Aussagen

uber Nicht-Kontextfreiheit zu machen. Wir zeigen zunachst an einem

Beispiel, wie dies funktioniert:

WS 11/12 226

Page 4: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Beispiel

Die Sprache L1 = {ambmcm | m ≥ 1} ist nicht kontextfrei.

Beweis: indirekt

Angenommen, L1 ware kontextfrei.

Nach dem Pumping-Lemma gibt es ein n ≥ 1, so daß die folgende Aussage

gilt:

Fur jedes z ∈ L1, |z | ≥ n, gibt es u, v ,w , x , y ∈ Σ∗ mit

(i), (ii), (iii) und (iv).(*)

Wir wahlen nun z = anbncn.

Dann ist z ∈ L1 und |z | = 3n > n.

Nach der Aussage (*) gibt es also u, v ,w , x , y ∈ Σ∗ mit

(i) z = uvwxy ,

(iii) |vx | ≥ 1 und

(ii) |vwx | ≤ n,

(iv) uviwx

iy ∈ L1 fur alle i ≥ 0.

WS 11/12 227

Page 5: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

uvwxy(i)= z = aaaaa · · · aaaa� �� �

n−mal

bbbbb · · · bbbb� �� �n−mal

ccccc · · · cccc� �� �n−mal

Wegen |vwx | ≤ n nach (ii) gilt vwx ∈ L(a∗b∗) ∪ L(b∗c∗) und damit

vx ∈ L(a∗b∗) ∪ L(b∗c∗).

Mit anderen Worten: es ist nicht moglich, daß sowohl ein a als auch ein c

in vx vorkommen.

Wir unterscheiden zwei Falle:

• c kommt in vx nicht vor: dann enthalt uv0wx0y (immer noch)

n Vorkommen von c , aber

|uv0wx0y |a + |uv0wx0y |b = 2n − |vx | < 2n

wegen (iii) und damit uv0wx0y /∈ L1, im Widerspruch zu (iv).

• a kommt in vx nicht vor: man erhalt analog einen Widerspruch

zu (iv).

Also ist L1 tatsachlich nicht kontextfrei.

WS 11/12 228

Page 6: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage.

Lemma

Sei B ein Binarbaum (d.h., jeder Knoten in B hat entweder null oder zwei

Kinder) mit mindestens 2k Blattern.

Dann hat B einen von der Wurzel ausgehenden Pfad, der aus mindestens

k Kanten und k + 1 Knoten besteht.

Beweis: Induktion uber k .

IA: k = 0.

Sei B ein Binarbaum mit mindestens 20 = 1 Blattern.

Dann hat B einen Pfad, der aus mindestens einem Knoten besteht.

WS 11/12 229

Page 7: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

IS: k ≥ 0.

Sei B ein Binarbaum mit mindestens 2k+1 = 2k + 2k Blattern.

Seien v1 und v2 die beiden Kinder der Wurzel und seien B1 und B2 die

Binarbaume mit Wurzel v1 bzw. v2.

Dann hat Bi fur ein i ∈ {1, 2} mindestens 2k Blatter.

I.V. �in Bi gibt es einen Pfad mit mindestens k Kanten und k+1 Knoten.

� in B gibt es einen Pfad, mit mindestens k + 1 Kanten und k + 2

Knoten.

WS 11/12 230

Page 8: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Beweis des Pumping-Lemmas

Sei nun G = (V ,Σ,P , S) eine kontextfreie Grammatik mit L = L(G ) in

Chomsky-Normalform. Setze k := |V | und n := 2k .

Sei weiter z ∈ L(G ) mit |z | ≥ n = 2k .

Wegen z ∈ L(G ) existiert ein Ableitungsbaum T mit α(T ) = z .

WS 11/12 231

Page 9: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Der Ableitungsbaum T mit α(T ) = z und |z | ≥ n = 2k .

S

Binarbaum

Wort z

Ebene der Blatter

WS 11/12 232

Page 10: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Nach dem vorherigen Lemma hat ein Pfad in T mindestens k + 1 innere

Knoten.

S

Wort z

WS 11/12 232

Page 11: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Also gibt es eine Variable (etwa A), die auf einem Pfad zweimal auftaucht.

Wir konnen annehmen, daß auf jedem Pfad, der vom oberen A ausgeht,

hochstens das A zweimal (und nicht dreimal) vorkommt.

A

A

S

Wort z

WS 11/12 232

Page 12: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Das Wort z wird nun in funf Teilworter u, v , w , x , y aufgespalten (womit

(i) gezeigt ist):

• w wird aus dem unteren A abgeleitet: A ⇒∗w

• vwx wird aus dem oberen A abgeleitet: A ⇒∗vAx ⇒∗

vwx

u v w x y

S

A

A

WS 11/12 232

Page 13: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Damit erhalt man drei ineinander enthaltene Teil-Ableitungsbaume, die man

neu zusammenstecken kann.

u v w x y

S

A

A

WS 11/12 232

Page 14: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Durch Weglassen des mittleren Teilbaums erhalt man einen Ableitungsbaum

fur uwy . Damit gilt: uwy ∈ L(G ).

u y

w

S

A

WS 11/12 232

Page 15: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Durch Verdoppeln des mittleren Teilbaums erhalt man einen Ableitungs-

baum fur uv2wx2y . Damit gilt: uv2wx2y ∈ L(G ).

u y

v w x

v x

S

A

A

A

WS 11/12 232

Page 16: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Durch Ver-i-fachen des mittleren Teilbaums erhalt man einen Ableitungs-

baum fur uv iwx iy . Damit gilt: uv iwx iy ∈ L(G ), d.h. wir haben (iv) gezeigt.

u y

v w x

v x

S

A

A

A

WS 11/12 232

Page 17: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Wir zeigen als nachstes (ii), d.h. |vwx | ≤ n:

Sei T1 der Teilbaum von T , der am oberen A beginnt (d.h. es gilt

α(T1) = vwx).

Da wir das obere A so gewahlt haben, daß davon ausgehende Pfade

hochstens das A zweimal (und nicht dreimal) enthalten, kann kein Pfad in

T1 > |V |+ 1 Knoten enthalten.

Das vorhergehende Lemma sichert |vwx | = Blattanzahl in T1 ≤ 2|V | = n.

WS 11/12 233

Page 18: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Es bleibt noch (iii) zu zeigen, also |vx | ≥ 1:

Sei T2 der Teilbaum von T , der am unteren A beginnt (d.h. es gilt

α(T1) = w).

Da T nur binare Verzweigungen enthalt, ist T2 echter Teilbaum von T1,

d.h. T1 hat wenigstens ein Blatt, das nicht zu T2 gehort. Da es keine

ε-Produktionen gibt, ist dieses Blatt mit a ∈ Σ beschriftet. Also gilt

vx �= ε.

WS 11/12 234

Page 19: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Beispiel

Die Sprache L2 = {0m2 | m ∈ N} ist nicht kontextfrei.

Beweis: indirekt

Angenommen, L2 ware kontextfrei.

Nach dem Pumping-Lemma gibt es ein n ≥ 1, so daß die folgende Aussage

gilt:

Fur jedes z ∈ L2, |z | ≥ n, gibt es u, v ,w , x , y ∈ Σ∗ mit

(i), (ii), (iii) und (iv).(*)

Wir wahlen nun z = 0n2.

Dann ist z ∈ L2 und |z | = n2 ≥ n.

Nach der Aussage (*) gibt es also u, v ,w , x , y ∈ Σ∗ mit

(i) z = uvwxy ,

(iii) |vx | ≥ 1 und

(ii) |vwx | ≤ n,

(iv) uviwx

iy ∈ L1 fur alle i ≥ 0.

WS 11/12 235

Page 20: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Nach (ii) und (iii) gilt 1 ≤ |vx | ≤ |vwx | ≤ n.

Aus |uv2wx2y | (i)= |z |+ |vx | = n2 + |vx | folgt somit

n2 < |uv2wx2y | ≤ n

2 + n < (n + 1)2

und damit uv2wx2y /∈ L2, im Widerspruch zu (iv).

Also ist L2 tatsachlich nicht kontextfrei.

Wir hatten bereits gesehen, daß die Sprache L2 nicht regular ist.

Allgemeiner kann man fur”unare Sprachen“ zeigen (ohne Beweis):

Satz

Eine Sprache L ⊆ {0}∗ ist genau dann kontextfrei, wenn sie regular ist.

Achtung: Dies gilt nicht fur Sprachen L ⊆ {0, 1}∗!

WS 11/12 236

Page 21: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Unsere Beweise, daß L1 und L2 nicht kontextfrei sind, folgten dem

folgenden Schema:

Behauptung: Die Sprache L ist nicht kontextfrei.

[0] (wortlich) Beweis: indirekt. Angenommen, L ware kontextfrei. Nach

dem Pumping-Lemma gibt es ein n ≥ 1, so daß die folgende

Aussage (*) gilt:

Fur jedes z ∈ L, |z | ≥ n, gibt es u, v ,w , x , y ∈ Σ∗

mit (i), (ii), (iii) und (iv).(*)

[1] (problemspezifisch) Wir wahlen ein geeignetes z ∈ L mit |z | ≥ n, so

daß Schritt [3] ausfuhrbar ist.

[2] (wortlich) Nach der Aussage (*) gibt es u, v ,w , x , y ∈ Σ∗ mit (i)-(iv).

[3] (problemspezifisch) Wir wahlen zu u, v ,w , x , y ein passendes i ≥ 0

und zeigen, daß uviwx

iy nicht in L sein kann.

[5] (wortlich) Widerspruch zu (iv).

WS 11/12 237

Page 22: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Dieses Beweisschema ist die Umsetzung der folgenden Formulierung des

Pumping-Lemmas mit logischen Operatoren:

L kontextfrei

→ ∃n ∀z ∈ L mit |z | ≥ n ∃u, v ,w , x , y mit (i–iii) ∀i : uv iwx iy ∈ L

Das Pumping-Lemma ist also logisch aquivalent zu:

∀n ∃z ∈ L mit |z | ≥ n ∀u, v ,w , y , z mit (i-iii) ∃i : uv iwx iy �∈ L

→ L ist nicht kontextfrei

WS 11/12 238

Page 23: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Diese Umformulierung konnen wir auch in dem folgenden Spielschema

fassen:

Wir (die Beweiser oder Braven) wollen zeigen, daß die Sprache L nicht

kontextfrei ist. Dazu mussen wir das folgende Spiel (gegen den Gegner

oder den Gemeinen) gewinnen:

Runde 1 G wahlt eine Zahl n ≥ 1.

Runde 2 B wahlt ein z ∈ L mit |z | ≥ n

Runde 3 G wahlt u, v , w , x und y mit

(i) z = uvwxy , (ii) |vwx | ≤ n und (iii) |vx | ≥ 1.

Runde 4 B wahlt ein i und zeigt, daß uviwx

iy /∈ L.

Die Sprache L ist nicht kontextfrei, falls B unabhangig von den Wahlen

von G in Runden 1 und 3 immer so wahlen kann (in Runden 2 und 4), daß

schließlich uviwx

iy /∈ L gilt.

WS 11/12 239

Page 24: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Beispiel

L3 = {w2w | w ∈ {0, 1}∗} ist nicht kontextfrei.

Beweis: wir zeigen, daß B im Spielschema immer so wahlen kann, daß

uviwx

iy /∈ L3 gilt:

Runde 1 G wahlt eine Zahl n ≥ 1.

Runde 2 B wahlt z = 0n1n20n1n (naturlich gelten z ∈ L3 und |z | ≥ n)

Runde 3 G wahlt u, v , w , x und y mit

(i) z = uvwxy , (ii) |vwx | ≤ n und (iii) |vx | ≥ 1.

Runde 4 B wahlt i = 0 und zeigt, daß uviwx

iy /∈ L3:

WS 11/12 240

Page 25: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

• 1. Fall: v oder x enthalt die 2.

Dann enthalt uv0wx0y keine 2, gehort also nicht zu L3.

• 2. Fall: u enthalt 2.

Dann stehen in uv0wx

0y links von der 2 mehr

Buchstaben als rechts, also uv0wx

0y /∈ L3.

• 3. Fall: y enthalt 2.

analog

• 4. Fall: w enthalt 2.

Wegen (ii) ist vwx Faktor von 1n20n, der 2 enthalt. Also

gilt v ∈ L(1∗) und x ∈ L(0∗) und damit

uv0wx

0y = 0n1n−|v |20n−|x |1n /∈ L3, da |v | > 0 oder

|x | > 0 nach (iii).

Also kann B so wahlen, daß uviwx

iy /∈ L3, d.h., L3 ist tatsachlich nicht

kontextfrei.

WS 11/12 241

Page 26: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Beispiel

L4 = {u13 . . . ur−13ur2v13 . . . vs−13vs | u1, . . . , ur , v1, . . . , vs ∈ {0, 1}∗∀j ≤ s∃i ≤ r : vj = ui}

ist nicht kontextfrei.

Beweisidee: Ware L4 kontextfrei, so auch L4 ∩ L(0∗1∗20∗1∗) = L3 (denn

der Schnitt von kontextfreien und regularen Sprachen ist kontextfrei, siehe

spater). Das ist aber nicht der Fall.

Hintergrund: Viele Programmiersprachen haben die”Kontextbedingung“,

daß eine Variable vor der Benutzung deklariert werden muß.

Diese Eigenschaft kann nicht in einer kontextfreien Grammatik

ausgedruckt werden.

WS 11/12 242

Page 27: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Das Lemma von Ogden

Lemma (William Ogden ’68)

Wenn L eine kontextfreie Sprache ist,

dann gibt es n ≥ 1 derart,

daß fur alle z ∈ L mit |z | ≥ n, in denen n Positionen markiert sind,

gilt:

es gibt Worter u, v ,w , x , y ∈ Σ∗ mit

(i) z = uvwxy ,

(ii) |vwx | ≤ n,

(iii) |vx | ≥ 1 v oder x enthalt wenigstens eine der

Markierungen und

(iv) uviwx

iy ∈ L fur alle i ≥ 0.

Beweis: ahnlich zum Beweis des Pumping-Lemmas.

WS 11/12 243

Page 28: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Beispiel

L5 = {akb�cm | 0 ≤ k ≤ � ≤ m} ist nicht kontextfrei.

Beweis: Nach dem Spielschema, das man aus dem Lemma von Ogden

gewinnen kann. Wir zeigen also, daß B immer so wahlen kann, daß

uviwx

iy /∈ L5 gilt:

Runde 1 G wahlt eine Zahl n ≥ 1.

Runde 2 B wahlt z = anbncn (naturlich gilt z ∈ L5) und markiert die

Vorkommen von a

Runde 3 G wahlt u, v , w , x und y mit

(i) z = uvwxy und (iii) v oder x enthalt eine Markierung.

Runde 4 B wahlt i = 2 und zeigt, daß uviwx

iy /∈ L5:

WS 11/12 244

Page 29: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

• 1. Fall: v oder x enthalt zwei verschiedene Sorten von

Buchstaben. Dann gilt uv2wx2y /∈ L(a∗b∗c∗) und damit

uv2wx

2y /∈ L5.

• 2. Fall: x ∈ L(a∗).Dann gilt |uv2wx2y |a = n + |vx | > n = |uv2wx2y |b,also uv

2wx

2y /∈ L5.

• 3. Fall: x ∈ L(b∗).Dann enthalt x keine Markierungen, aus (iii) folgt also,

daß v wenigstens ein a enthalt. Dann gilt

|uv2wx2y |a ≥ n + 1 > n = |uv2wx2y |c , alsouv

2wx

2y /∈ L5.

• 4. Fall x ∈ L(c∗).Wir konnen v ∈ L(a∗ + b

∗ + c∗) annehmen, woraus

nach (iii) v ∈ L(a+) folgt. Analog zum 3. Fall folgt nun

|uv2wx2y |a ≥ n + 1 > n = |uv2wx2y |b, alsouv

2wx

2y /∈ L5.

Also kann B so wahlen, daß uviwx

iy /∈ L5, d.h., L5 ist tatsachlich nicht

kontextfrei.WS 11/12 245

Page 30: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Beispiele

weitere Sprachen, die nicht kontextfrei sind:

{akbmakbm | k ,m ≥ 0} {akbmak·m | k ,m ≥ 0}{w w | w ∈ {0, 1}∗} {0m 1 0m 1 0m | m ≥ 0}{0m 12m 04m | m ≥ 0} {0p | p Primzahl }

Beweis jeweils mit dem Pumping-Lemma oder dem Lemma von Ogden.

WS 11/12 246

Page 31: Kontextfreie Sprachen Pumping-Lemma€¦ · Kontextfreie Sprachen Im Beweis des Pumping-Lemmas verwenden wir die folgende Aussage. Lemma Sei B ein Bin¨arbaum (d.h., jeder Knoten

Kontextfreie Sprachen

Beispiele

kontextfreie Sprachen:

{akbmambk | k ,m ≥ 0} {akbmak+m | k ,m ≥ 1}{w w

R | w ∈ {0, 1}∗} {0m 1 0k 1 0m+k | m, k ≥ 0}{0m 13m | m ≥ 0} {0i 1j 2k | i + j �= k}

sind kontextfrei.

Beweis jeweils durch Angabe einer kontextfreien Grammatik.

WS 11/12 247