Professional Documents
Culture Documents
for
Context-Free Languages
1
Take an infinite context-free language
Example: S AB
A aBb
B Sb
Bb
2
S AB
A aBb
B Sb
Bb In a derivation of a long string,
variables are repeated
A derivation:
S AB aBbB abbB
abbSb abbABb abbaBbBb
abbabbBb abbabbbb
3
Derivation tree string abbabbbb
S
A B
a B b S b
b A B
a B b b
b
4
Derivation tree string abbabbbb
S
A B
a B b S b
b A B
a B b b
repeated b
5
B Sb ABb B
aBbBb aBbbb S b
A B
a B b b
b
*
B aBbbb Bb
6
Repeated Part B
S b
A B
a B b b
*
B aBbbb
7
B
Another possible
derivation from B S b
* A B
B aBbbb a B b b
S b
A B
a B b b
* *
B aBbbb aaBbbbbbb
8
B
S b
* A B
B aBbbb a B b b
S b
A B
a B b b
* *
2 2
B (a ) B (bbb) (a ) B (bbb)
9
A Derivation from S
S
* A B
S abbBb
a B b
*
B aBbbb b
Bb
*
S abbBb
10
S
* A B
S abbBb
a B b b
*
B aBbbb b
Bb
*
0 0
S abbBb abbbb abb(a) b(bbb)
11
* *
S abbBb B aBbbb Bb
*
0 0
S abb(a ) b(bbb)
0 0
abb(a) b(bbb) L(G )
12
A Derivation from S
S
* A B
S abbBb
a B b
*
B aBbbb b
Bb
*
S abbBb
13
S
*
S abbBb A B
* a B b S b
B aBbbb b A B
Bb a B b b
* *
S abbBb abbaBbbb
14
S
*
S abbBb A B
a b b
* B S
B aBbbb b A B
a B b b
Bb S b
A B
a B b b
* *
2 2
S abb(a ) B (bbb) abb(a ) B (bbb)
15
S
*
S abbBb A B
a B b S b
*
B aBbbb b A B
a B b b
Bb S b
A B
a B b b
* *
2 2 2 2
S abb(a) B(bbb) abb(a) b(bbb)
16
* *
S abbBb B aBbbb Bb
*
2 2
S abb(a ) b(bbb)
2 2
abb(a ) b(bbb) L(G )
17
A Derivation from S S
A B
*
S abbBb
a B b S b
b A B
*
B aBbbb a B b b
S b
Bb A B
a B b b
*
2 2
S abb(a ) B (bbb)
18
S
* A B
S abbBb a B b S b
* b A B
B aBbbb a B b b
Bb S b
A B
a B b b
S b
A B
a B b b
* *
2 2 3 3
S abb(a ) B (bbb) abb( a ) B (bbb)
19
S
* A B
S abbBb a B b S b
* b A B
B aBbbb a B b b
S b
Bb A B
a B b b
S b
A B
a B b b
*
3 3 3 3
S abb(a ) B (bbb) abb(a) b(bbb)
20
* *
S abbBb B aBbbb Bb
*
3 3
S abb(a) b(bbb)
3 3
abb(a) b(bbb) L(G )
21
In General:
* *
S abbBb B aBbbb Bb
*
i i
S abb(a ) b(bbb)
i i
abb(a ) b(bbb) L(G ) i0
22
Consider now an infinite
context-free language L
Let m p 1
Example G : S AB
p 4 3 12
A aBb
B Sb m p 1 13
Bb
24
Take a string w L(G )
with length | w | m
We will show:
in the derivation of w
a variable of G is repeated
25
*
Sw
v1 v2 vk w
S v1
26
v1 v2 vk w
| w | k f
m | w | k f pk f
27
v1 v2 vk w
pk f
p
k Number of productions
f in grammar
28
v1 v2 vk w
k Number of productions
in grammar
30
Derivation tree of string w
S
u z
Last repeated variable A
v y
w uvxyz
repeated A
u , v, x, y , z :
Strings of terminals
x 31
S
Possible
derivations: u z
A
S uAz
v y
A vAy A
A x
x 32
We know:
S uAz A vAy A x
*
S uAz uxz
0 0
uv xy z
33
We know:
S uAz A vAy A x
* *
S uAz uvAyz uvxyz
1 1
The original w uv xy z
34
We know:
S uAz A vAy A x
* * *
S uAz uvAyz uvvAyyz uvvxyyz
2 2
uv xy z
35
We know:
S uAz A vAy A x
i i
uv xy z
37
Therefore, any string of the form
i i
uv xy z i0
38
Therefore,
i i
we also know that uv xy z L(G )
L(G ) L {}
i i
uv xy z L
39
S
u z
A
v y
A
x
Observation: | vxy | m
Since A is the last repeated variable 40
S
u z
A
v y
A
x
Observation: | vy | 1
Since there are no unit or -productions 41
The Pumping Lemma:
For infinite context-free language L
there exists an integer m such that
43
Non-context free languages
n n n
{a b c : n 0}
Context-free languages
n n
{a b : n 0}
44
Theorem: The language
n n n
L {a b c : n 0}
is not context free
45
n n n
L {a b c : n 0}
46
n n n
L {a b c : n 0}
m m m
We pick: wa b c
47
n n n
L {a b c : n 0}
m m m
wa b c
i i
uv xy z L for all i0
49
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
50
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
m
Case 1: vxy is within a
m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z
51
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z
52
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
2 2
Case 1: From Pumping Lemma: uv xy z L
k 1
mk m m
aaaaaa...aaaaaa bbb...bbb ccc...ccc
u 2 2 z
v xy
54
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
2 2
Case 1: From Pumping Lemma: uv xy z L
k 1
2 2 m k m m
However: uv xy z a b c L
Contradiction!!!
55
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
m
Case 2: vxy is within b
m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z
56
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z
57
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
m
Case 3: vxy is within c
m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z
58
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z
59
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
m m
Case 4: vxy overlaps a and b
m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z
60
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
2 2
Case 4: From Pumping Lemma: uv xy z L
k1 k 2 1
m k1 m k2 m
aaa...aaaaaaa bbbbbbb...bbb ccc...ccc
u 2 2 z
v xy
63
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
2 2
Case 4: From Pumping Lemma: uv xy z L
k1 k 2 1
2 2 m k1 m k2 m
However: uv xy z a b c L
Contradiction!!!
64
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
2 2
Case 4: From Pumping Lemma: uv xy z L
k1 k 2 k 1
m k1 k 2 mk m
aaa...aaaaabbaabb bbbbbbb...bbb ccc...ccc
u 2
v xy 2 z
67
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
2 2
Case 4: From Pumping Lemma: uv xy z L
However: k1 k 2 k 1
2 2 m k1 k 2 m k m
uv xy z a b a b c L
Contradiction!!!
68
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
70
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
m m
Case 5: vxy overlaps b and c
m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z
71
n n n
L {a b c : n 0}
m m m
wa b c
w uvxyz | vxy | m | vy | 1
m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z
72
There are no other cases to consider
73
In all cases we obtained a contradiction