You are on page 1of 94

The Pumping Lemma

for
Context-Free Languages

1
CREATED BY K. VICTOR
The Pumping Lemma:
For infinite context-free language L
there exists an integer m such that

for any string w  L, | w | m


we can write w  uvxyz
with lengths | vxy | m and | vy | 1
and it must be:
i i
CREATED BY K. VICTOR
uv xy z  L, for all i  0 2
Applications
of
The Pumping Lemma

3
CREATED BY K. VICTOR
Non-context free languages
n n n
{a b c : n  0}

Context-free languages

n n
{a b : n  0}

4
CREATED BY K. VICTOR
Theorem: The language
n n n
L  {a b c : n  0}
is not context free

Proof: Use the Pumping Lemma


for context-free languages

5
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}

Assume for contradiction that L


is context-free

Since L is context-free and infinite


we can apply the pumping lemma

6
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}

Pumping Lemma gives a magic number m


such that:

Pick any string w L with length | w | m

m m m
We pick: wa b c

7
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}

m m m
wa b c

We can write: w  uvxyz

with lengths | vxy | m and | vy | 1


8
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa b c
w  uvxyz | vxy | m | vy | 1

Pumping Lemma says:

i i
uv xy z  L for all i0
9
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa b c
w  uvxyz | vxy | m | vy | 1

We examine all the possible locations


of string vxy in w

10
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa 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 11
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa b c
w  uvxyz | vxy | m | vy | 1

Case 1: v and y consist from only a

m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z 12
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa b c
w  uvxyz | vxy | m | vy | 1

Case 1: Repeating v and y


k 1
mk m m
aaaaaa...aaaaaa bbb...bbb ccc...ccc
u 2 2 z
CREATED BY K. VICTOR
v xy 13
n n n
L  {a b c : n  0}
m m m
wa b c
w  uvxyz | vxy | m | vy | 1

2 2
Case 1: From Pumping Lemma: uv xy z  L
k 1
mk m m
aaaaaa...aaaaaa bbb...bbb ccc...ccc
u 2 2 z
CREATED BY K. VICTOR
v xy 14
n n n
L  {a b c : n  0}
m m m
wa 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!!!
15
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa 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 16
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa b c
w  uvxyz | vxy | m | vy | 1

Case 2: Similar analysis with case 1

m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z 17
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa 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 18
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa b c
w  uvxyz | vxy | m | vy | 1

Case 3: Similar analysis with case 1

m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z 19
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa 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 20
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa b c
w  uvxyz | vxy | m | vy | 1

Case 4: Possibility 1: v contains only a


y contains only b
m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z 21
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa b c
w  uvxyz | vxy | m | vy | 1

Case 4: Possibility 1: v contains only a


k1  k 2  1 y contains only b
m  k1 m  k2 m
aaa...aaaaaaa bbbbbbb...bbb ccc...ccc
u 2 2 z
CREATED BY K. VICTOR
v xy 22
n n n
L  {a b c : n  0}
m m m
wa 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
CREATED BY K. VICTOR
v xy 23
n n n
L  {a b c : n  0}
m m m
wa 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!!! 24
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa b c
w  uvxyz | vxy | m | vy | 1

Case 4: Possibility 2: v contains a and b


y contains only b
m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z 25
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa b c
w  uvxyz | vxy | m | vy | 1

Case 4: Possibility 2: v contains a and b


k1  k 2  k  1 y contains only b
m k1 k 2 mk m
aaa...aaaaabbaabb bbbbbbb...bbb ccc...ccc
u 2
v xy 2 z 26
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa 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 mk m
aaa...aaaaabbaabb bbbbbbb...bbb ccc...ccc
u 2
v xy 2 z 27
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa 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!!! 28
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa b c
w  uvxyz | vxy | m | vy | 1

Case 4: Possibility 3: v contains only a


y contains a and b
m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z 29
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa b c
w  uvxyz | vxy | m | vy | 1

Case 4: Possibility 3: v contains only a


y contains a and b

Similar analysis with Possibility 2

30
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa 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 31
CREATED BY K. VICTOR
n n n
L  {a b c : n  0}
m m m
wa b c
w  uvxyz | vxy | m | vy | 1

Case 5: Similar analysis with case 4

m m m
aaa...aaa bbb...bbb ccc...ccc
u vxy z 32
CREATED BY K. VICTOR
There are no other cases to consider

(since | vxy | m , string vxy cannot


m m m
overlap a , b and c at the same time)

33
CREATED BY K. VICTOR
In all cases we obtained a contradiction

Therefore: The original assumption that


n n n
L  {a b c : n  0}
is context-free must be wrong

Conclusion: L is not context-free


34
CREATED BY K. VICTOR
More Applications
of
The Pumping Lemma

35
CREATED BY K. VICTOR
The Pumping Lemma:
For infinite context-free language L
there exists an integer m such that

for any string w  L, | w | m


we can write w  uvxyz
with lengths | vxy | m and | vy | 1
and it must be:
i i
CREATED BY K. VICTOR
uv xy z  L, for all i  0 36
Non-context free languages
n n n
{a b c : n  0} {vv : v {a, b}}

Context-free languages

n n R
{a b : n  0} {ww : w  {a, b}*}

37
CREATED BY K. VICTOR
Theorem: The language
L  {vv : v {a, b}*}
is not context free

Proof: Use the Pumping Lemma


for context-free languages

38
CREATED BY K. VICTOR
L  {vv : v {a, b}*}
Assume for contradiction that L
is context-free

Since L is context-free and infinite


we can apply the pumping lemma

39
CREATED BY K. VICTOR
L  {vv : v {a, b}*}
Pumping Lemma gives a magic number m
such that:

Pick any string of L with length at least m

m m m m
we pick: a b a b L

40
CREATED BY K. VICTOR
L  {vv : v {a, b}*}

m m m m
We can write: a b a b  uvxyz

with lengths | vxy | m and | vy | 1

Pumping Lemma says:

i i
uv xy z  L for all i0
41
CREATED BY K. VICTOR
L  {vv : v {a, b}*}
m m m m
a b a b  uvxyz | vxy | m | vy | 1

We examine all the possible locations


m m m m
of string vxy in a b a b

42
CREATED BY K. VICTOR
L  {vv : v {a, b}*}
m m m m
a b a b  uvxyz | vxy | m | vy | 1
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
43
CREATED BY K. VICTOR
L  {vv : v {a, b}*}
m m m m
a b a b  uvxyz | vxy | m | vy | 1
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 y2 z
44
CREATED BY K. VICTOR
L  {vv : v {a, b}*}
m m m m
a b a b  uvxyz | vxy | m | vy | 1
m
Case 1: vxy is within the first a

m  k1  k 2 m m m 2 2
a b a b  uv xy z  L

k1  k 2  1

45
CREATED BY K. VICTOR
L  {vv : v {a, b}*}
m m m m
a b a b  uvxyz | vxy | m | vy | 1
m
Case 1: vxy is within the first a

m  k1  k 2 m m m 2 2
a b a b  uv xy z  L

2 2
However, from Pumping Lemma: uv xy z  L

CREATED BY K. VICTOR
Contradiction!!! 46
L  {vv : v {a, b}*}
m m m m
a b a b  uvxyz | vxy | m | vy | 1
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
CREATED BY K. VICTOR
u v x y z 47
L  {vv : v {a, b}*}
m m m m
a b a b  uvxyz | vxy | m | vy | 1
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
CREATED BY K. VICTOR
y 2 z 48
L  {vv : v {a, b}*}
m m m m
a b a b  uvxyz | vxy | m | vy | 1
m
Case 2: v is in the first a
m
y is in the first b

m  k1 m  k 2 m m 2 2
a b a b  uv xy z  L

k1  k 2  1

49
CREATED BY K. VICTOR
L  {vv : v {a, b}*}
m m m m
a b a b  uvxyz | vxy | m | vy | 1
m
Case 2: v is in the first a
m
y is in the first b

m  k1 m  k 2 m m 2 2
a b a b  uv xy z  L
2 2
However, from Pumping Lemma: uv xy z  L

CREATED BY K. VICTOR
Contradiction!!! 50
L  {vv : v {a, b}*}
m m m m
a b a b  uvxyz | vxy | m | vy | 1
m m
Case 3: v overlaps the first a b
m
y is in the first b
k1 k 2 k3
v a b yb k1, k 2  1

m m m m
a ...... a b ...... b a ...... a b ...... b
CREATED BY K. VICTOR
u v xy z 51
L  {vv : v {a, b}*}
m m m m
a b a b  uvxyz | vxy | m | vy | 1
m m
Case 3: v overlaps the first a b
m
y is in the first b
k1 k 2 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 52
CREATED BY K. VICTOR
L  {vv : v {a, b}*}
m m m m
a b a b  uvxyz | vxy | m | vy | 1
m m
Case 3: v overlaps the first a b
m
y is in the first b
m k 2 k1 m  k3 m m 2 2
a b a b a b  uv xy z  L

k1, k 2  1

53
CREATED BY K. VICTOR
L  {vv : v {a, b}*}
m m m m
a b a b  uvxyz | vxy | m | vy | 1
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

CREATED BY K. VICTOR
Contradiction!!! 54
L  {vv : v {a, b}*}
m m m m
a b a b  uvxyz | vxy | m | vy | 1
m
Case 4: v in the first a
m m
y Overlaps the first a b

Analysis is similar to case 3

m m m m
a ...... a b ...... b a ...... a b ...... b
CREATED BY K. VICTOR
uv x y z 55
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

Analysis is similar to case 1:


m m m m
a b a b 56
CREATED BY K. VICTOR
More cases: m m m m
vxy overlaps a b a b
or
m m m m
a b a b

Analysis is similar to cases 2,3,4:

m m m m
a b a b
57
CREATED BY K. VICTOR
There are no other cases to consider

Since | vxy | m, it is impossible


vxy to overlap: m m m m
a b a b
nor
m m m m
a b a b
nor
m m m m
a b a b 58
CREATED BY K. VICTOR
In all cases we obtained a contradiction

Therefore: The original assumption that

L  {vv : v {a, b}*}


is context-free must be wrong

Conclusion: L is not context-free


59
CREATED BY K. VICTOR
Non-context free languages
n n n
{a b c : n  0} {ww : w  {a, b}}
n!
{a : n  0}

Context-free languages

n n R
{a b : n  0} {ww : w  {a, b}*}

60
CREATED BY K. VICTOR
Theorem: The language
n!
L  {a : n  0}
is not context free

Proof: Use the Pumping Lemma


for context-free languages

61
CREATED BY K. VICTOR
n!
L  {a : n  0}

Assume for contradiction that L


is context-free

Since L is context-free and infinite


we can apply the pumping lemma

62
CREATED BY K. VICTOR
n!
L  {a : n  0}

Pumping Lemma gives a magic number m


such that:

Pick any string of L with length at least m

m!
we pick: a L

63
CREATED BY K. VICTOR
n!
L  {a : n  0}

m!
We can write: a  uvxyz

with lengths | vxy | m and | vy | 1

Pumping Lemma says:

i i
uv xy z  L for all i0
64
CREATED BY K. VICTOR
n!
L  {a : n  0}
m!
a  uvxyz | vxy | m | vy | 1

We examine all the possible locations


m!
of string vxy in a

There is only one case to consider


65
CREATED BY K. VICTOR
n!
L  {a : n  0}
m!
a  uvxyz | vxy | m | vy | 1

m!
a ............... a
u v x y z

k1 k2 1  k1  k 2  m
va ya
66
CREATED BY K. VICTOR
n!
L  {a : n  0}
m!
a  uvxyz | vxy | m | vy | 1

m! k1  k 2
a ........................... a
u v2 x y2 z

k1 k2 1  k1  k 2  m
va ya
67
CREATED BY K. VICTOR
n!
L  {a : n  0}
m!
a  uvxyz | vxy | m | vy | 1

m! k k  k1  k 2
a ........................... a
u v2 x y2 z

k1 k2 1 k  m
va ya
68
CREATED BY K. VICTOR
n!
L  {a : n  0}
m!
a  uvxyz | vxy | m | vy | 1

m! k 2 2
a  uv xy z

1 k  m

69
CREATED BY K. VICTOR
Since 1  k  m , for m  2 we have:
m! k  m! m
 m! m!m
 m!(1  m)
 (m  1)!

m! m! k  (m  1)!


70
CREATED BY K. VICTOR
n!
L  {a : n  0}
m!
a  uvxyz | vxy | m | vy | 1

m! m! k  (m  1)!

m! k 2 2
a  uv xy z  L

71
CREATED BY K. VICTOR
n!
L  {a : n  0}
m!
a  uvxyz | vxy | m | vy | 1

2 2
However, from Pumping Lemma: uv xy z  L

m! k 2 2
a  uv xy z  L

Contradiction!!! 72
CREATED BY K. VICTOR
We obtained a contradiction

Therefore: The original assumption that


n!
L  {a : n  0}
is context-free must be wrong

Conclusion: L is not context-free


73
CREATED BY K. VICTOR
Non-context free languages
n n n
{a b c : n  0} {ww : w  {a, b}}
n2 n n!
{a b : n  0} {a : n  0}

Context-free languages

n n R
{a b : n  0} {ww : w  {a, b}*}

74
CREATED BY K. VICTOR
Theorem: The language
n2 n
L  {a b : n  0}
is not context free

Proof: Use the Pumping Lemma


for context-free languages

75
CREATED BY K. VICTOR
2
n n
L  {a b : n  0}
Assume for contradiction that L
is context-free

Since L is context-free and infinite


we can apply the pumping lemma

76
CREATED BY K. VICTOR
2
n n
L  {a b : n  0}
Pumping Lemma gives a magic number m
such that:

Pick any string of L with length at least m

m2 m
we pick: a b L

77
CREATED BY K. VICTOR
2
n n
L  {a b : n  0}
2
m m
We can write: a b  uvxyz

with lengths | vxy | m and | vy | 1

Pumping Lemma says:

i i
uv xy z  L for all i0
78
CREATED BY K. VICTOR
2
n n
L  {a b : n  0}
2
m m
a b  uvxyz | vxy | m | vy | 1

We examine all the possible locations

of string vxy in m2 m
a b

79
CREATED BY K. VICTOR
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
80
CREATED BY K. VICTOR
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
81
CREATED BY K. VICTOR
2
n n
L  {a b : n  0}
2
m m
a b  uvxyz | vxy | m | vy | 1

Most complicated sub-case: k1  0 and k 2  0


k1 k2
va yb 1  k1  k 2  m
2 m
m
a ..................... a b ...... b
u v x y z
82
CREATED BY K. VICTOR
2
n n
L  {a b : n  0}
2
m m
a b  uvxyz | vxy | m | vy | 1

Most complicated sub-case: k1  0 and k 2  0


k1 k2
va yb 1  k1  k 2  m
2
m  k1 m  k 2
a ............... a b ... b
u 0 x 0z
v y 83
CREATED BY K. VICTOR
2
n n
L  {a b : n  0}
2
m m
a b  uvxyz | vxy | m | vy | 1

Most complicated sub-case: k1  0 and k 2  0


k1 k2
va yb 1  k1  k 2  m

m 2  k1 m  k 2 0 0
a b  uv xy z

84
CREATED BY K. VICTOR
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  k 2 )
85
CREATED BY K. VICTOR
2
n n
L  {a b : n  0}
2
m m
a b  uvxyz | vxy | m | vy | 1

2 2
m  k1  (m  k 2 )

2
m  k1 m  k 2 0 0
a b  uv xy z  L

86
CREATED BY K. VICTOR
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!!! 87
CREATED BY K. VICTOR
When we examine the rest of the cases
we also obtain a contradiction

88
CREATED BY K. VICTOR
In all cases we obtained a contradiction

Therefore: The original assumption that


2
n n
L  {a b : n  0}
is context-free must be wrong

Conclusion: L is not context-free


89
CREATED BY K. VICTOR
SELF ASSESSMENT QUESTIONS
Q.1. Which of the following statements is true about
Pushdown Automata (PDA)?
a) PDA can only recognize regular languages.
b) PDA can recognize context-free languages but not context-
sensitive languages.
c) PDA can recognize context-free languages and some
context-sensitive languages.
d) PDA can recognize any recursively enumerable language.
Answer: c) PDA can recognize context-free languages and some
context-sensitive languages.

CREATED BY K. VICTOR
SELF ASSESSMENT QUESTIONS
Q.2 In a PDA, the stack serves the purpose of:
a) Storing the input symbols.
b) Storing the current state of the automaton.
c) Providing additional memory for computation.
d) Determining the next transition of the automaton.
Answer: a c) Providing additional memory for
computation.

CREATED BY K. VICTOR
SELF ASSESSMENT QUESTIONS
Q.3 Which of the following is a limitation of a deterministic PDA
(DPDA) compared to a non-deterministic PDA (NPDA)?
a) DPDA can recognize a larger class of languages.
b) DPDA cannot recognize any context-free languages.
c) DPDA can only recognize regular languages.
d) DPDA cannot recognize languages with nested structures.

Answer: d) DPDA cannot recognize languages with nested


structures.

CREATED BY K. VICTOR
TERMINAL QUESTIONS
Q.1. Explain the concept of pushdown automata (PDA) and its
key components.
Q.2.Describe the process of accepting a string by a pushdown
automaton. How does the PDA handle the interactions
between the input string and the stack?
Q.3.Discuss the difference between deterministic
pushdownautomata (DPDA) and non-deterministic pushdown
automata (NPDA). How do they differ in terms of language
recognition and the behavior of the stack?

CREATED BY K. VICTOR
94
CREATED BY K. VICTOR

You might also like