Bernhard Beckert
Institut für Informatik
Sommersemester 2007
Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen von
Katrin Erk (gehalten an der Universität Koblenz-Landau) Jürgen Dix (gehalten an der TU Clausthal)
Ihnen beiden gilt mein herzlicher Dank.
– Bernhard Beckert, April 2007
Lemma 5.15 (PDA → cf-Grammatik)
Zu jedem Push-Down-Automaten M gibt es eine kontextfreie Grammatik G mit L ( G ) = L ( M )
Beweis
Sei M ein PDA, der eine Sprache L über leeren Keller akzeptiert.
Wir konstruieren aus dem Regelsatz von M eine kontextfreie Grammatik,
die L erzeugt.
Lemma 5.15 (PDA → cf-Grammatik)
Zu jedem Push-Down-Automaten M gibt es eine kontextfreie Grammatik G mit L ( G ) = L ( M )
Beweis
Sei M ein PDA, der eine Sprache L über leeren Keller akzeptiert.
Wir konstruieren aus dem Regelsatz von M eine kontextfreie Grammatik,
die L erzeugt.
Beweis (Forts.) Idee:
Die Variablen der Grammatik sind 3-Tupel der Form [ q , A , p ]
Bedeutung:
Grammatik kann Wort x aus Variablen [ q , A , p ] ableiten gdw
M kann vom Zustand q in den Zustand p übergehen,
dabei A vom Keller entfernen (sonst den Keller unveränder lassen) und das Wort x lesen:
[ q , A , p ] = ⇒ ∗ x
gdw ( q , x , A γ) ` ∗ ( p ,ε,γ)
Beweis (Forts.) Idee:
Die Variablen der Grammatik sind 3-Tupel der Form [ q , A , p ]
Bedeutung:
Grammatik kann Wort x aus Variablen [ q , A , p ] ableiten gdw
M kann vom Zustand q in den Zustand p übergehen,
dabei A vom Keller entfernen (sonst den Keller unveränder lassen) und das Wort x lesen:
[ q , A , p ] = ⇒ ∗ x
gdw ( q , x , A γ) ` ∗ ( p ,ε,γ)
Beweis (Forts.) Idee:
Die Variablen der Grammatik sind 3-Tupel der Form [ q , A , p ]
Bedeutung:
Grammatik kann Wort x aus Variablen [ q , A , p ] ableiten gdw
M kann vom Zustand q in den Zustand p übergehen,
dabei A vom Keller entfernen (sonst den Keller unveränder lassen) und das Wort x lesen:
[ q , A , p ] = ⇒ ∗ x
gdw ( q , x , A γ) ` ∗ ( p ,ε,γ)
Beweis (Forts.) Formale Konstruktion:
Sei
M = ( K ,Σ,Γ, ∆, s 0 , Z 0 , F ) ein PDA.
Daraus konstruiert man die Grammatik
G = ( V , T , R , S ) mit
V := {[ q , A , p ] | q , p ∈ K , A ∈ Γ} ∪ { S } T := Σ
und . . .
. . . folgenden Regeln in R:
S → [ s
0, Z
0, q ] für alle q ∈ K ,
[ q , A , q
m+ 1 ] → a [ q 1 , B 1 , q 2 ][ q 2 , B 2 , q 3 ] . . . [ q
m, B
m, q
m+ 1 ] für jeden ∆ -Übergang ( q , a , A ) ∆ ( q 1 , B 1 . . . B
m) und für jede beliebige Kombination q 2 , . . . , q
m+ 1 ∈ K , [ q , A , q 1 ] → a
für jeden ∆ -Übergang ( q , a , A ) ∆ ( q 1 ,ε) Dabei ist a ∈ Σ ∪ {ε} .
Siehe Buch für Beweis, dass die Konstruktion das gewünschte Ergebnis liefert:
[ q , A , p ] = ⇒ ∗ x
gdw ( q , x , A ) ` ∗ ( p ,ε,ε)
Beweis (Forts.)
. . . folgenden Regeln in R:
S → [ s 0 , Z 0 , q ] für alle q ∈ K ,
[ q , A , q
m+
1] → a [ q
1, B
1, q
2][ q
2, B
2, q
3] . . . [ q
m, B
m, q
m+
1] für jeden ∆ -Übergang ( q , a , A ) ∆ ( q
1, B
1. . . B
m) und für jede beliebige Kombination q
2, . . . , q
m+
1∈ K , [ q , A , q 1 ] → a
für jeden ∆ -Übergang ( q , a , A ) ∆ ( q 1 ,ε) Dabei ist a ∈ Σ ∪ {ε} .
Siehe Buch für Beweis, dass die Konstruktion das gewünschte Ergebnis liefert:
[ q , A , p ] = ⇒ ∗ x
gdw ( q , x , A ) ` ∗ ( p ,ε,ε)
woraus sofort L ` (M) = L ( G ) folgt.
. . . folgenden Regeln in R:
S → [ s 0 , Z 0 , q ] für alle q ∈ K ,
[ q , A , q
m+ 1 ] → a [ q 1 , B 1 , q 2 ][ q 2 , B 2 , q 3 ] . . . [ q
m, B
m, q
m+ 1 ] für jeden ∆ -Übergang ( q , a , A ) ∆ ( q 1 , B 1 . . . B
m) und für jede beliebige Kombination q 2 , . . . , q
m+ 1 ∈ K , [ q , A , q
1] → a
für jeden ∆ -Übergang ( q , a , A ) ∆ ( q
1,ε) Dabei ist a ∈ Σ ∪ {ε} .
Siehe Buch für Beweis, dass die Konstruktion das gewünschte Ergebnis liefert:
[ q , A , p ] = ⇒ ∗ x
gdw ( q , x , A ) ` ∗ ( p ,ε,ε)
Beweis (Forts.)
. . . folgenden Regeln in R:
S → [ s 0 , Z 0 , q ] für alle q ∈ K ,
[ q , A , q
m+ 1 ] → a [ q 1 , B 1 , q 2 ][ q 2 , B 2 , q 3 ] . . . [ q
m, B
m, q
m+ 1 ] für jeden ∆ -Übergang ( q , a , A ) ∆ ( q 1 , B 1 . . . B
m) und für jede beliebige Kombination q 2 , . . . , q
m+ 1 ∈ K , [ q , A , q 1 ] → a
für jeden ∆ -Übergang ( q , a , A ) ∆ ( q 1 ,ε) Dabei ist a ∈ Σ ∪ {ε} .
Siehe Buch für Beweis, dass die Konstruktion das gewünschte Ergebnis liefert:
[ q , A , p ] = ⇒ ∗ x
gdw ( q , x , A ) ` ∗ ( p ,ε,ε)
woraus sofort L ` (M) = L ( G ) folgt.
. . . folgenden Regeln in R:
S → [ s 0 , Z 0 , q ] für alle q ∈ K ,
[ q , A , q
m+ 1 ] → a [ q 1 , B 1 , q 2 ][ q 2 , B 2 , q 3 ] . . . [ q
m, B
m, q
m+ 1 ] für jeden ∆ -Übergang ( q , a , A ) ∆ ( q 1 , B 1 . . . B
m) und für jede beliebige Kombination q 2 , . . . , q
m+ 1 ∈ K , [ q , A , q 1 ] → a
für jeden ∆ -Übergang ( q , a , A ) ∆ ( q 1 ,ε) Dabei ist a ∈ Σ ∪ {ε} .
Siehe Buch für Beweis, dass die Konstruktion das gewünschte Ergebnis liefert:
[ q , A , p ] = ⇒ ∗ x
gdw ( q , x , A ) ` ∗ ( p ,ε,ε)
Beweis (Forts.)
. . . folgenden Regeln in R:
S → [ s 0 , Z 0 , q ] für alle q ∈ K ,
[ q , A , q
m+ 1 ] → a [ q 1 , B 1 , q 2 ][ q 2 , B 2 , q 3 ] . . . [ q
m, B
m, q
m+ 1 ] für jeden ∆ -Übergang ( q , a , A ) ∆ ( q 1 , B 1 . . . B
m) und für jede beliebige Kombination q 2 , . . . , q
m+ 1 ∈ K , [ q , A , q 1 ] → a
für jeden ∆ -Übergang ( q , a , A ) ∆ ( q 1 ,ε) Dabei ist a ∈ Σ ∪ {ε} .
Siehe Buch für Beweis, dass die Konstruktion das gewünschte Ergebnis liefert:
[ q , A , p ] = ⇒ ∗ x
gdw ( q , x , A ) ` ∗ ( p ,ε,ε)
woraus sofort L ` (M) = L ( G ) folgt.
Beispiel 5.16 Sprache:
L
ab= { a
nb
n| n ∈ N 0 } L
abwird über leeren Keller akzeptiert von dem PDA
M = ({ s 0 , s 1 },{ a , b },{ Z 0 , A }, s 0 , Z 0 , 0) / mit den Regeln
1 . ( s 0 , ε, Z 0 ) ∆ ( s 0 ,ε)
2 . ( s 0 , a , Z 0 ) ∆ ( s 0 , A )
3 . ( s 0 , a , A ) ∆ ( s 0 , AA )
4 . ( s 0 , b , A ) ∆ ( s 1 ,ε)
5 . ( s 1 , b , A ) ∆ ( s 1 ,ε)
Beispiel 5.16 Sprache:
L
ab= { a
nb
n| n ∈ N 0 } L
abwird über leeren Keller akzeptiert von dem PDA
M = ({ s 0 , s 1 },{ a , b },{ Z 0 , A }, s 0 , Z 0 , 0) / mit den Regeln
1 . ( s 0 , ε, Z 0 ) ∆ ( s 0 ,ε)
2 . ( s 0 , a , Z 0 ) ∆ ( s 0 , A )
3 . ( s 0 , a , A ) ∆ ( s 0 , AA )
4 . ( s 0 , b , A ) ∆ ( s 1 ,ε)
5 . ( s 1 , b , A ) ∆ ( s 1 ,ε)
Beispiel 5.16 Sprache:
L
ab= { a
nb
n| n ∈ N 0 } L
abwird über leeren Keller akzeptiert von dem PDA
M = ({ s 0 , s 1 },{ a , b },{ Z 0 , A }, s 0 , Z 0 , 0) / mit den Regeln
1 . ( s 0 , ε, Z 0 ) ∆ ( s 0 ,ε)
2 . ( s 0 , a , Z 0 ) ∆ ( s 0 , A )
3 . ( s 0 , a , A ) ∆ ( s 0 , AA )
4 . ( s 0 , b , A ) ∆ ( s 1 ,ε)
5 . ( s 1 , b , A ) ∆ ( s 1 ,ε)
Beispiel (Forts.)
Die Transformation ergibt folgende Grammatik-Regeln:
S → [ s 0 , Z 0 , s 0 ] | [ s 0 , Z 0 , s 1 ] 1. [ s 0 , Z 0 , s 0 ] → ε
2. [ s 0 , Z 0 , s 0 ] → a [ s 0 , A , s 0 ] [ s 0 , Z 0 , s 1 ] → a [ s 0 , A , s 1 ]
3. [ s 0 , A , s 0 ] → a [ s 0 , A , s 0 ][ s 0 , A , s 0 ] [ s 0 , A , s 0 ] → a [ s 0 , A , s 1 ][ s 1 , A , s 0 ] [ s 0 , A , s 1 ] → a [ s 0 , A , s 0 ][ s 0 , A , s 1 ] [ s 0 , A , s 1 ] → a [ s 0 , A , s 1 ][ s 1 , A , s 1 ] 4. [ s 0 , A , s 1 ] → b
5. [ s 1 , A , s 1 ] → b
Beispiel (Forts.)
Die Transformation ergibt folgende Grammatik-Regeln:
S → [ s 0 , Z 0 , s 0 ] | [ s 0 , Z 0 , s 1 ] 1. [ s 0 , Z 0 , s 0 ] → ε
2. [ s 0 , Z 0 , s 0 ] → a [ s 0 , A , s 0 ] [ s 0 , Z 0 , s 1 ] → a [ s 0 , A , s 1 ]
3. [ s 0 , A , s 0 ] → a [ s 0 , A , s 0 ][ s 0 , A , s 0 ] [ s 0 , A , s 0 ] → a [ s 0 , A , s 1 ][ s 1 , A , s 0 ] [ s 0 , A , s 1 ] → a [ s 0 , A , s 0 ][ s 0 , A , s 1 ] [ s 0 , A , s 1 ] → a [ s 0 , A , s 1 ][ s 1 , A , s 1 ] 4. [ s 0 , A , s 1 ] → b
5. [ s 1 , A , s 1 ] → b
Beispiel (Forts.)
Die Transformation ergibt folgende Grammatik-Regeln:
S → [ s 0 , Z 0 , s 0 ] | [ s 0 , Z 0 , s 1 ] 1. [ s 0 , Z 0 , s 0 ] → ε
2. [ s 0 , Z 0 , s 0 ] → a [ s 0 , A , s 0 ] [ s 0 , Z 0 , s 1 ] → a [ s 0 , A , s 1 ]
3. [ s 0 , A , s 0 ] → a [ s 0 , A , s 0 ][ s 0 , A , s 0 ] [ s 0 , A , s 0 ] → a [ s 0 , A , s 1 ][ s 1 , A , s 0 ] [ s 0 , A , s 1 ] → a [ s 0 , A , s 0 ][ s 0 , A , s 1 ] [ s 0 , A , s 1 ] → a [ s 0 , A , s 1 ][ s 1 , A , s 1 ] 4. [ s 0 , A , s 1 ] → b
5. [ s 1 , A , s 1 ] → b
Beispiel (Forts.)
Die Transformation ergibt folgende Grammatik-Regeln:
S → [ s 0 , Z 0 , s 0 ] | [ s 0 , Z 0 , s 1 ] 1. [ s 0 , Z 0 , s 0 ] → ε
2. [ s 0 , Z 0 , s 0 ] → a [ s 0 , A , s 0 ] [ s 0 , Z 0 , s 1 ] → a [ s 0 , A , s 1 ]
3. [ s 0 , A , s 0 ] → a [ s 0 , A , s 0 ][ s 0 , A , s 0 ] [ s 0 , A , s 0 ] → a [ s 0 , A , s 1 ][ s 1 , A , s 0 ] [ s 0 , A , s 1 ] → a [ s 0 , A , s 0 ][ s 0 , A , s 1 ] [ s 0 , A , s 1 ] → a [ s 0 , A , s 1 ][ s 1 , A , s 1 ] 4. [ s 0 , A , s 1 ] → b
5. [ s 1 , A , s 1 ] → b
Beispiel (Forts.)
Die Transformation ergibt folgende Grammatik-Regeln:
S → [ s 0 , Z 0 , s 0 ] | [ s 0 , Z 0 , s 1 ] 1. [ s 0 , Z 0 , s 0 ] → ε
2. [ s 0 , Z 0 , s 0 ] → a [ s 0 , A , s 0 ] [ s 0 , Z 0 , s 1 ] → a [ s 0 , A , s 1 ]
3. [ s 0 , A , s 0 ] → a [ s 0 , A , s 0 ][ s 0 , A , s 0 ] [ s 0 , A , s 0 ] → a [ s 0 , A , s 1 ][ s 1 , A , s 0 ] [ s 0 , A , s 1 ] → a [ s 0 , A , s 0 ][ s 0 , A , s 1 ] [ s 0 , A , s 1 ] → a [ s 0 , A , s 1 ][ s 1 , A , s 1 ] 4. [ s 0 , A , s 1 ] → b
5. [ s 1 , A , s 1 ] → b
Beispiel (Forts.)
Die Transformation ergibt folgende Grammatik-Regeln:
S → [ s 0 , Z 0 , s 0 ] | [ s 0 , Z 0 , s 1 ] 1. [ s 0 , Z 0 , s 0 ] → ε
2. [ s 0 , Z 0 , s 0 ] → a [ s 0 , A , s 0 ] [ s 0 , Z 0 , s 1 ] → a [ s 0 , A , s 1 ]
3. [ s 0 , A , s 0 ] → a [ s 0 , A , s 0 ][ s 0 , A , s 0 ] [ s 0 , A , s 0 ] → a [ s 0 , A , s 1 ][ s 1 , A , s 0 ] [ s 0 , A , s 1 ] → a [ s 0 , A , s 0 ][ s 0 , A , s 1 ] [ s 0 , A , s 1 ] → a [ s 0 , A , s 1 ][ s 1 , A , s 1 ] 4. [ s 0 , A , s 1 ] → b
5. [ s 1 , A , s 1 ] → b
Beispiel (Forts.)
Die Transformation ergibt folgende Grammatik-Regeln:
S → [ s 0 , Z 0 , s 0 ] | [ s 0 , Z 0 , s 1 ] 1. [ s 0 , Z 0 , s 0 ] → ε
2. [ s 0 , Z 0 , s 0 ] → a [ s 0 , A , s 0 ] [ s 0 , Z 0 , s 1 ] → a [ s 0 , A , s 1 ]
3. [ s 0 , A , s 0 ] → a [ s 0 , A , s 0 ][ s 0 , A , s 0 ] [ s 0 , A , s 0 ] → a [ s 0 , A , s 1 ][ s 1 , A , s 0 ] [ s 0 , A , s 1 ] → a [ s 0 , A , s 0 ][ s 0 , A , s 1 ] [ s 0 , A , s 1 ] → a [ s 0 , A , s 1 ][ s 1 , A , s 1 ] 4. [ s 0 , A , s 1 ] → b
5. [ s 1 , A , s 1 ] → b
Beispiel (Forts.)
Lesbarer haben wir damit folgende Grammatik:
S → A | B A → aC | ε B → aD
C → aCC | aDE D → aCD | aDF | b F → b
Man sieht jetzt:
Variable E ist nutzlos, und damit auch die Variable C.
Die Grammatik enthält Kettenproduktionen und nullbare Variablen.
Beispiel (Forts.)
Lesbarer haben wir damit folgende Grammatik:
S → A | B A → aC | ε B → aD
C → aCC | aDE D → aCD | aDF | b F → b
Man sieht jetzt:
Variable E ist nutzlos, und damit auch die Variable C.
Die Grammatik enthält Kettenproduktionen und nullbare Variablen.
Beispiel (Forts.)
Lesbarer haben wir damit folgende Grammatik:
S → A | B A → aC | ε B → aD
C → aCC | aDE D → aCD | aDF | b F → b
Man sieht jetzt:
Variable E ist nutzlos, und damit auch die Variable C.
Die Grammatik enthält Kettenproduktionen und nullbare Variablen.
Beispiel (Forts.)
Nach Entfernung der überflüssigen Elemente:
S → ε | aD D → aDF | b F → b
Mit dieser Grammatik kann man z.B. folgende Ableitung ausführen:
S = ⇒ aD = ⇒ aaDF = ⇒ aaaDFF = ⇒ aaabFF
= ⇒ aaabbF = ⇒ aaabbb
Beispiel (Forts.)
Nach Entfernung der überflüssigen Elemente:
S → ε | aD D → aDF | b F → b
Mit dieser Grammatik kann man z.B. folgende Ableitung ausführen:
S = ⇒ aD = ⇒ aaDF = ⇒ aaaDFF = ⇒ aaabFF
= ⇒ aaabbF = ⇒ aaabbb
Beispiel (Forts.)
Nach Entfernung der überflüssigen Elemente:
S → ε | aD D → aDF | b F → b
Mit dieser Grammatik kann man z.B. folgende Ableitung ausführen:
S = ⇒ aD = ⇒ aaDF = ⇒ aaaDFF = ⇒ aaabFF
= ⇒ aaabbF = ⇒ aaabbb
1
Ableitungsbäume
2
Umformung von Grammatiken
3
Normalformen
4
Pumping-Lemma für kontextfreie Sprachen
5
Pushdown-Automaten (PDAs)
6
Abschlusseigenschaften
7
Wortprobleme
8
Der CYK-Algorithmus
1
Ableitungsbäume
2
Umformung von Grammatiken
3
Normalformen
4
Pumping-Lemma für kontextfreie Sprachen
5
Pushdown-Automaten (PDAs)
6
Abschlusseigenschaften
7
Wortprobleme
8
Der CYK-Algorithmus
Theorem 6.1 (Abschlusseigenschaften von L
2) L 2 ist abgeschlossen gegen:
Vereinigung ∪ Konkatenation ◦ Kleene-Stern ∗
Beweis Seien
G
i= ( V
i, T
i, R
i, S
i) ( i ∈ { 1 , 2 })
zwei cf-Grammatiken mit V
1∩ V
2= 0 / . Sei
L
i= L ( G
i)
Theorem 6.1 (Abschlusseigenschaften von L
2) L 2 ist abgeschlossen gegen:
Vereinigung ∪ Konkatenation ◦ Kleene-Stern ∗
Beweis Seien
G
i= ( V
i, T
i, R
i, S
i) ( i ∈ { 1 , 2 }) zwei cf-Grammatiken mit V 1 ∩ V 2 = 0 / .
Sei
L
i= L ( G
i)
Theorem 6.1 (Abschlusseigenschaften von L
2) L 2 ist abgeschlossen gegen:
Vereinigung ∪ Konkatenation ◦ Kleene-Stern ∗
Beweis Seien
G
i= ( V
i, T
i, R
i, S
i) ( i ∈ { 1 , 2 }) zwei cf-Grammatiken mit V 1 ∩ V 2 = 0 / .
Sei
L
i= L ( G
i)
Beweis (Forts.) zu ∪ :
( V
1∪ V
2∪ { S
neu}, T
1∪ T
2, R
1∪ R
2∪ { S
neu→ S
1| S
2}, S
neu)
erzeugt gerade L
1∪ L
2zu ◦ :
( V 1 ∪ V 2 ∪ { S
neu}, T 1 ∪ T 2 , R 1 ∪ R 2 ∪ { S
neu→ S 1 S 2 }, S
neu)
erzeugt gerade L 1 ◦ L 2
zu ∗ :
( V 1 ∪ { S
neu}, T 1 , R 1 ∪ { S
neu→ S 1 S
neu| ε}, S
neu)
erzeugt gerade L ∗ 1 .
Beweis (Forts.) zu ∪ :
( V 1 ∪ V 2 ∪ { S
neu}, T 1 ∪ T 2 , R 1 ∪ R 2 ∪ { S
neu→ S 1 | S 2 }, S
neu) erzeugt gerade L 1 ∪ L 2
zu ◦ :
( V
1∪ V
2∪ { S
neu}, T
1∪ T
2, R
1∪ R
2∪ { S
neu→ S
1S
2}, S
neu)
erzeugt gerade L
1◦ L
2zu ∗ :
( V 1 ∪ { S
neu}, T 1 , R 1 ∪ { S
neu→ S 1 S
neu| ε}, S
neu)
erzeugt gerade L ∗ 1 .
Beweis (Forts.) zu ∪ :
( V 1 ∪ V 2 ∪ { S
neu}, T 1 ∪ T 2 , R 1 ∪ R 2 ∪ { S
neu→ S 1 | S 2 }, S
neu) erzeugt gerade L 1 ∪ L 2
zu ◦ :
( V 1 ∪ V 2 ∪ { S
neu}, T 1 ∪ T 2 , R 1 ∪ R 2 ∪ { S
neu→ S 1 S 2 }, S
neu) erzeugt gerade L 1 ◦ L 2
zu ∗ :
( V
1∪ { S
neu}, T
1, R
1∪ { S
neu→ S
1S
neu| ε}, S
neu)
erzeugt gerade L ∗
1.
Theorem 6.2 (Abschlusseigenschaften von L
2) L 2 ist nicht abgeschlossen gegen:
Durchschnitt ∩
Komplement ¬
Beweis Zu „ ∩ “:
L 1 = { a
nb
nc
m| n , m ∈ N } L 2 = { a
mb
nc
n| n , m ∈ N }
wird erzeugt von G
i= ({ S , S 0 , T },{ a , b , c }, R
i, S ) mit
R 1 = { S → S 0 T S 0 → aS 0 b | ab
T → cT | c } R 2 = { S → TS 0
S 0 → bS 0 c | bc T → aT | a }
Sowohl L 1 als auch L 2 sind cf, nicht aber L 1 ∩ L 2 = { a
nb
nc
n| n ∈ N } .
Zu „ ∩ “:
L 1 = { a
nb
nc
m| n , m ∈ N } L 2 = { a
mb
nc
n| n , m ∈ N }
wird erzeugt von G
i= ({ S , S 0 , T },{ a , b , c }, R
i, S ) mit R 1 = { S → S 0 T
S 0 → aS 0 b | ab T → cT | c } R 2 = { S → TS 0
S 0 → bS 0 c | bc T → aT | a }
∩ {
n n n| ∈ }
Beweis Zu „ ∩ “:
L 1 = { a
nb
nc
m| n , m ∈ N } L 2 = { a
mb
nc
n| n , m ∈ N }
wird erzeugt von G
i= ({ S , S 0 , T },{ a , b , c }, R
i, S ) mit R 1 = { S → S 0 T
S 0 → aS 0 b | ab T → cT | c } R 2 = { S → TS 0
S 0 → bS 0 c | bc T → aT | a }
Sowohl L 1 als auch L 2 sind cf, nicht aber L 1 ∩ L 2 = { a
nb
nc
n| n ∈ N } .
Beweis Zu „ ¬ “:
Angenommen, L 2 wäre abgeschlossen gegen ¬ . Wegen
L 1 ∩ L 2 = ¬(¬ L 1 ∪ ¬ L 2 )
wäre L 2 dann auch abgeschlossen gegen ∩ – Widerspruch
Beweis Zu „ ¬ “:
Angenommen, L 2 wäre abgeschlossen gegen ¬ . Wegen
L 1 ∩ L 2 = ¬(¬ L 1 ∪ ¬ L 2 )
wäre L 2 dann auch abgeschlossen gegen ∩ – Widerspruch
Beweis Zu „ ¬ “:
Angenommen, L 2 wäre abgeschlossen gegen ¬ . Wegen
L 1 ∩ L 2 = ¬(¬ L 1 ∪ ¬ L 2 )
wäre L 2 dann auch abgeschlossen gegen ∩ – Widerspruch
1
Ableitungsbäume
2
Umformung von Grammatiken
3
Normalformen
4
Pumping-Lemma für kontextfreie Sprachen
5
Pushdown-Automaten (PDAs)
6
Abschlusseigenschaften
7
Wortprobleme
8
Der CYK-Algorithmus
1
Ableitungsbäume
2
Umformung von Grammatiken
3
Normalformen
4
Pumping-Lemma für kontextfreie Sprachen
5
Pushdown-Automaten (PDAs)
6
Abschlusseigenschaften
7
Wortprobleme
8