Professional Documents
Culture Documents
of
The Pumping Lemma
Linz 6th, Section 8.1
Example 8.2, { w w | w∈Σ*}
Example 8.3, { an! | 0 ≤ n}
Example 8.4, {an*n bn| 0 ≤ n} 1
The Pumping Lemma:
For infinite context-free language L
there exists an integer m such that
w = a m bm am bm
3
Non-context free languages
Context-free languages
n n R
{a b : n 0} {ww : w {a, b}*}
4
Theorem: The language
L = {ww : w {a, b}*}
is not context free
5
L = {ww : w {a, b}*}
6
L = {ww : w {a, b}*}
m m m m
we pick: a b a b L
7
L = {ww : w {a, b}*}
m m m m
We can write: a b a b = uvxyz
i i
uv xy z L for all i0
8
L = {ww : w {a, b}*}
m m m m | vxy | m | vy | 1
a b a b = uvxyz
9
L = {ww : w {a, b}*}
m m m m | vxy | m | vy | 1
a b a b = uvxyz
m
Case 1: vxy is within the first a
k1 k2
v=a y=a k1 + k 2 1
m m m m
a ...... a b ...... b a ...... a b ...... b
u vx y z
10
L = {ww : w {a, b}*}
m m m m | vxy | m | vy | 1
a b a b = uvxyz
m
Case 1: vxy is within the first a
k1 k2
v=a y=a k1 + k 2 1
m + k1 + k 2 m m m
a .......... ...... a b ...... b a ...... a b ...... b
u v2 x y 2 z
11
L = {ww : w {a, b}*}
m m m m | vxy | m | vy | 1
a b a b = uvxyz
m
Case 1: vxy is within the first a
m + k1 + k2 m m m 2 2
a b a b = uv xy z L
k1 + k 2 1
12
L = {ww : w {a, b}*}
m m m m | vxy | m | vy | 1
a b a b = uvxyz
m
Case 1: vxy is within the first a
m + k1 + k2 m m m 2 2
a b a b = uv xy z L
2 2
However, from Pumping Lemma: uv xy z L
Contradiction!!! 13
L = {ww : w {a, b}*}
m m m m | vxy | m | vy | 1
a b a b = uvxyz
m
Case 2: v is in the first a
m
y is in the first b
k1 k2
v=a y=b k1 + k 2 1
m m m m
a ...... a b ...... b a ...... a b ...... b
u v x y z 14
L = {ww : w {a, b}*}
m m m m | vxy | m | vy | 1
a b a b = uvxyz
m
Case 2: v is in the first a
m
y is in the first b
k1 k2
v=a y=b k1 + k 2 1
m + k1 m + k2 m m
a .......... .. a b .......... .. b a ...... a b ...... b
u v 2 x
y 2 z 15
L = {ww : w {a, b}*}
m m m m | vxy | m | vy | 1
a b a b = uvxyz
m
Case 2: v is in the first a
m
y is in the first b
m + k1 m + k2 m m 2 2
a b a b = uv xy z L
k1 + k 2 1
16
L = {ww : w {a, b}*}
m m m m | vxy | m | vy | 1
a b a b = uvxyz
m
Case 2: v is in the first a
m
y is in the first b
m + k1 m + k2 m m 2 2
a b a b = uv xy z L
2 2
However, from Pumping Lemma: uv xy z L
Contradiction!!! 17
L = {ww : w {a, b}*}
m m m m | vxy | m | vy | 1
a b a b = uvxyz
m m
Case 3: v overlaps the first a b
m
y is in the first b
k1 k2 k3
v=a b y=b k1 , k 2 1
m m m m
a ...... a b ...... b a ...... a b ...... b
u v xy z 18
L = {ww : w {a, b}*}
m m m m | vxy | m | vy | 1
a b a b = uvxyz
m m
Case 3: v overlaps the first a b
m
y is in the first b
k1 k2 k3
v=a b y=b k1 , k 2 1
m k2 k1 m + k3 m m
a ...... a b ... b a ... a b ......... b a ...... a b ...... b
u v 2 x y 2 z 19
L = {ww : w {a, b}*}
m m m m | vxy | m | vy | 1
a b a b = uvxyz
m m
Case 3: v overlaps the first a b
m
y is in the first b
m k2 k1 m + k3 m m 2 2
a b a b a b = uv xy z L
k1 , k 2 1
20
L = {ww : w {a, b}*}
m m m m | vxy | m | vy | 1
a b a b = uvxyz
m m
Case 3: v overlaps the first a b
m
y is in the first b
m k 2 k1 k3 m m 2 2
a b a b a b = uv xy z L
2 2
However, from Pumping Lemma: uv xy z L
Contradiction!!! 21
L = {ww : w {a, b}*}
m m m m | vxy | m | vy | 1
a b a b = uvxyz
m
Case 4: v in the first a
m m
y Overlaps the first a b
m m m m
a ...... a b ...... b a ...... a b ...... b
uv x y z 22
Other cases: m m m m
vxy is within a b a b
or
m m m m
a b a b
or
m m m m
a b a b
m m m m
a b a b
24
There are no other cases to consider
27
Non-context free languages
n n n {ww : w {a, b}}
{a b c : n 0}
n!
{a : n 0}
Context-free languages
n n R
{a b : n 0} {ww : w {a, b}*}
28
Theorem: The language
n!
L = {a : n 0}
is not context free
29
n!
L = {a : n 0}
30
n!
L = {a : n 0}
Pumping Lemma gives a magic number m
such that:
m!
we pick: a L
31
n!
L = {a : n 0}
m!
We can write: a = uvxyz
i i
uv xy z L for all i0
32
n!
L = {a : n 0}
m! | vxy | m | vy | 1
a = uvxyz
m!
a .......... ..... a
u v x y z
k1 k2 1 k1 + k 2 m
v=a y=a
34
n!
L = {a : n 0}
m! | vxy | m | vy | 1
a = uvxyz
m!+ k1 + k 2
a .......... .......... ....... a
u v2 x y 2 z
k1 k2 1 k1 + k 2 m
v=a y=a
35
n!
L = {a : n 0}
m! | vxy | m | vy | 1
a = uvxyz
m!+ k k = k1 + k 2
a .......... .......... ....... a
u v2 x y 2 z
k1 k2 1 k m
v=a y=a
36
n!
L = {a : n 0}
m! | vxy | m | vy | 1
a = uvxyz
m!+ k 2 2
a = uv xy z
1 k m
37
Since 1 k m , for m 2 we have:
m!+ k m!+ m
m!+ m!m
= m!(1 + m)
= ( m + 1)!
m!+ k 2 2
a = uv xy z L
39
n!
L = {a : n 0}
m! | vxy | m | vy | 1
a = uvxyz
2 2
However, from Pumping Lemma: uv xy z L
m!+ k 2 2
a = uv xy z L
Contradiction!!! 40
We obtained a contradiction
42
Non-context free languages
n n n {ww : w {a, b}}
{a b c : n 0}
n2 n n!
{a : n 0}
{a b : n 0}
Context-free languages
n n R
{a b : n 0} {ww : w {a, b}*}
43
Theorem: The language
n2 n
L = {a b : n 0}
is not context free
44
2
n n
L = {a b : n 0}
Assume for contradiction that L
is context-free
45
2
n n
L = {a b : n 0}
Pumping Lemma gives a magic number m
such that:
we pick: m2 m
a b L
46
2
n n
L = {a b : n 0}
2
m m
We can write: a b = uvxyz
i i
uv xy z L for all i0
47
2
n n
L = {a b : n 0}
2
m m
a b = uvxyz | vxy | m | vy | 1
vxy m2 m
of string in a b
48
2
n n
L = {a b : n 0}
2
m m
a b = uvxyz | vxy | m | vy | 1
m
Most complicated case: v is in a
m
y is in b
2 m
m
a .......... .......... . a b ...... b
u v x y z
49
2
n n
L = {a b : n 0}
2
m m
a b = uvxyz | vxy | m | vy | 1
k1 k2
v=a y=b 1 k1 + k 2 m
2 m
m
a .......... .......... . a b ...... b
u v x y z
50
2
n n
L = {a b : n 0}
2
m m
a b = uvxyz | vxy | m | vy | 1
m 2 − k1 m − k 2 0 0
a b = uv xy z
53
k1 0 and k 2 0 1 k1 + k 2 m
2 2
( m − k 2 ) ( m − 1)
2
= m − 2m + 1
2
m − k1
2 2
m − k1 (m − k2 )
54
2
n n
L = {a b : n 0}
2
m m
a b = uvxyz | vxy | m | vy | 1
2 2
m − k1 (m − k2 )
2
m − k1 m − k 2 0 0
a b = uv xy z L
55
2
n n
L = {a b : n 0}
2
m m
a b = uvxyz | vxy | m | vy | 1
0 0
However, from Pumping Lemma: uv xy z L
2
m − k1 m − k 2 0 0
a b = uv xy z L
Contradiction!!!
56
When we examine the rest of the cases
we also obtain a contradiction
57
In all cases we obtained a contradiction