1
CDT314
FABER
Formal Languages, Automata and Models of Computation
Lecture 10
Mälardalen University
2011
2
Content
The Pumping Lemma for CFLApplications of the Pumping Lemma for CFL
Midterm Exam 2: Context-Free Languages
5
What is the difference between Context Free Languages and Regular Languages?
In regular languages, a single substring “pumps”
...... ......q
6
What is the difference between Context Free Languages and Regular Languages?
In CFL’s, multiple substrings can be “pumped”– Consider the language {an bn | n > 0}
– No single substring can be pumped and allow us to stay in the language
– However, there do exist pairs of substrings which can be pumped resulting in strings which stay in the language
Thus, a modified pumping lemma applies.
7
aBbbbB
S
A B
bBa
b
bS
A B
ba bB
bS
A B
bBa b bbabbaaBbbbb
abbaBbbbS
b bB bbabbaabbbbbbbabbaaBbbbbS
9
Pumping Conditions for RL and CFL
A language L satisfies the RL pumping condition if: – there exists an integer m > 0
such that– for all strings w in L of length
at least m– there exist strings x, y, z such
that• w = xyz and• |xy| ≤ m and• |y| ≥ 1 and• For all i ≥ 0, uviz is in L
A language L satisfies the CFL pumping condition if: – there exists an integer m > 0
such that– for all strings w in L of length at
least m– there exist strings u, v, x, y, z
such that• w = uvxyz and• |vxy| ≤ m and• |vy| ≥ 1 and• For all i ≥ 0, uvixyiz is in L
10
Pumping Lemma
All CFL’s satisfy the CFL pumping condition
All languages over {a,b}
“Pumping Languages”
CFL’s
11
Implications
• We can use the pumping lemma to prove a language L is not a CFL– Show that L does not satisfy the CFL
pumping condition• We cannot use the pumping lemma to prove
a language is CFL– Showing L satisfies the pumping condition
does not guarantee that L is context-free
All languages over {a,b}
“Pumping Languages”
CFL’s
13
Pumping Condition
• A language L satisfies the CFL pumping condition if: – there exists an integer m > 0 such that– for all strings w in L of length at least m– there exist strings u, v, x, y, z such that
• w = uvxyz and• |vxy| ≤ m and• |vy| ≥ 1 and
Then for all i ≥ 0, uviwyiz is in L
14
v and y can be pumped
• Let w = abcdefg be in L• Then there exist substrings v and y in w such
that v and y can be repeated (pumped) and the resulting string is still in L– uvixyiz is in L for all i ≥ 0
1) w in L2) w = uvxyz3) For all i ≥ 0, uvixyiz is in L
15
For example w = abcdefg
v = cd and y = f
uv0xy0z = uxz = abeg is in L
uv1xy1z = uvxyz = abcdefg is in L
uv2xy2z = uvvxyyz = abcdcdeffg is in L
uv3xy3z = uvvvxyyyz = abcdcdcdefffg is in L
…
16
What the other parts mean
A language L satisfies the CFL pumping condition if: – there exists an integer m > 0 such that– for all strings w in L of length at least m
• w must be in L and have sufficient length
17
What the other parts mean
– There exist strings u, v, x, y, z such that• w = uvxyz and• |vxy| ≤ m and
–v and y are contained within m characters of w–Note: these are NOT necessarily the first m
characters of w• |vy| ≥ 1 and
–v and y cannot both be 1,–One of them might be 1, but not both
• For all i ≥ 0, uvixyiz is in L
19
How we use the Pumping Lemma
• We choose a specific language L
For example {aj bj cj | j > 0}
• We show that L does not satisfy the pumping condition
• We conclude that L is not context-free
20
Showing that L “does not pump”
A language L satisfies the CFL pumping condition if: – there exists an integer m >
0 such that– for all strings w in L of
length at least m– there exist strings u, v, x,
y, z such that• w = uvxyz and• |vxy| ≤ m and• |vy| ≥ 1 and• For all i ≥ 0, uvixyiz is
in L
A language L does not satisfy the CFL pumping condition if: – for all integers m of sufficient
size– there exists a string w in L of
length at least m such that– for all strings u, v, x, y, z
where• w = uvxyz and• |vxy| ≤ m and• |vy| ≥ 1
– There exists a i ≥ 0 such that uvixyiz is not in L
21
Example Languages
• L = {the set of strings over {a, b, c} such that the number of a’s equals the number of b’s equals the number of c’s}
• L ={ai bj ck | i < j < k}
23
The Pumping Lemma for CFL
there exists an integer such that m
for any string mwLw || ,
we can write
For infinite context-free language L
uvxyzw
with lengths 1||and || vymvxy
and 0 allfor , iLzxyuv ii
24
The Pumping Lemma for CFL
There exists an integer such that m
mwGLw || ),(
can be written
Let be a context free grammar. G
uvxyzw
with lengths 1||and || vymvxy
and 0 allfor , iLzxyuv ii
25
Regular Languages
}{ nnba }{ RwwContext-Free Languages
Non-regular languages
Unrestricted grammar languages
}0:{ ncba nnn
**ba
26
Theorem The language
}*},{:{ bawwwL
is not context free
Proof Use the Pumping Lemma
for context-free languages
27
Assume the contrary - that
is context-free
Since is context-free and infinite
we can apply the pumping lemma
L
L
}*},{:{ bawwwL
28
Pumping Lemma gives a number
such that:
m
we pick: Lbaba mmmm
}*},{:{ bawwwL
Pick any string of
with length at least mL
29
We can write:
}*},{:{ bawwwL
uvxyzbaba mmmm
Pumping Lemma says:
Lzxyuv ii for all 0i
with lengths mvxy || 1|| vyand
30
We examine all the possible locations
of string in vxy
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
mmmm baba
31
Case 1: vxy is within the firstma
bbaabbaa ........................v
m m m
u z
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
x y
m
1kav 2kay 121 kk
32
bbaabbaa ..................................2v
21 kkm m m
u z
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
x 2y
m
Case 1: vxy is within the firstma
1kav 2kay 121 kk
33
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
Case 1: vxy is within the firstma
121 kk
Lzxyuvbaba mmmkkm 2221
34
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
Case 1: vxy is within the first ma
Contradiction!
Lzxyuvbaba mmmkkm 2221
Lzxyuv 22However, from Pumping Lemma:
35
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
bbaabbaa ........................v
m m m
u zx y
m
is in the first
is in the firstCase 2: mamb
vy
1kav 2kby 121 kk
36
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
bbaabbaa ....................................2v
1km 2km m
u zx 2y
m
is in the first
is in the firstCase 2: mamb
vy
1kav 2kby 121 kk
37
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
is in the first
is in the firstCase 2: mamb
vy
121 kk
Lzxyuvbaba mmkmkm 2221
38
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
is in the first
is in the firstCase 2: mamb
vy
Lzxyuvbaba mmkmkm 2221
Contradiction!
Lzxyuv 22However, from Pumping Lemma:
39
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
bbaabbaa ........................v
m m m
u zx y
m
is in the first
overlaps the firstCase 3: mmbamb
vy
21 kk bav 3kby 1, 21 kk
40
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
is in the first
overlaps the firstCase 3: mmbamb
vy
21 kk bav 3kby 1, 21 kk
2v zx 2y
bbaabbbbaaaa .................................m 2k 3km
u
m1k m
41
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
is in the first
overlaps the firstCase 3: mmbamb
vy
Lzxyuvbabbaa mmkmkkm 22321
1, 21 kk
42
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
is in the first
overlaps the firstCase 3: mmbamb
vy
Lzxyuvbabbaa mmkkkm 22321
Contradiction!
Lzxyuv 22However, from Pumping Lemma:
43
Overlaps the first
in the firstCase 4:
bbaabbaa ........................v
m m m
u z
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
x y
m
mammba
vy
Analysis is similar to case 3
44
Other cases: vxy is within
mmmm babaor
or
mmmm baba
mmmm baba
Analysis is similar to case 1: mmmm baba
46
Since , it is impossible for
to overlap:
There are no other cases to consider.
mvxy ||vxy
mmmm baba
nor normmmm baba mmmm baba
neither
47
In all cases we obtained a contradiction.
Therefore: The original assumption that
is context-free must be wrong
Conclusion: is not context-freeL
}*},{:{ bawwwL
END OF PROOF
48
Regular Languages
}{ nnba }{ RwwContext-Free Languages
Non-regular languages
Unrestricted grammar languages
}0:{ ncba nnn
**ba
}{ww
49
Theorem The language
is not context free
Proof Use the Pumping Lemma
for context-free languages
}0:{ ! naL n
50
Since is context-free and infinite
we can apply the pumping lemma
L
Assume to the contrary that
is context-free
L
}0:{ ! naL n
51
Pumping Lemma gives a number
such that we can:
m
so we pick: Lam !
pick any string of with length at least mL
}0:{ ! naL n
52
We can write: uvxyzam !
Pumping Lemma says:
Lzxyuv ii for all 0i
}0:{ ! naL n
with lengths mvxy || 1|| vy and
53
We examine all the possible locations
of the string in vxy !ma
mvxy || 1|| vyuvxyzam !
There is only one case to consider
}0:{ ! naL n
55
2v
21! kkm
u zx 2y
1kav 2kay
aa ...........................
mvxy || 1|| vyuvxyzam !
}0:{ ! naL n
mkk 211
56
2v
km !
u zx 2y
1kav 2kay
aa ...........................
mvxy || 1|| vyuvxyzam !
}0:{ ! naL n
mk 1
21 kkk
60
mvxy || 1|| vyuvxyzam !
}0:{ ! naL n
Lzxyuva km 22!
Lzxyuv 22
Contradiction!
However, from Pumping Lemma:
61
We obtained a contradiction
Therefore: The original assumption that
is context-free must be wrong
Conclusion: is not context-freeL
}0:{ ! naL n
END OF PROOF
62
Regular Languages
**ba
Context-free languages
Unrestricted grammar languages}0:{ ncba nnn
}0:{ nba nn
}},{:{ bawww
}*},{:{ bawwwR
}0:{ ! nan}0:{
2nba nn
63
Theorem The language
is not context free
Proof Use the Pumping Lemma
for Context-free languages
}0:{2
nbaL nn
64
Since is context-free and infinite
we can apply the pumping lemma
L
Assume to the contrary that
is context-free
L
}0:{2
nbaL nn
65
Pumping Lemma gives a number
such that we can:
m
so we choose: Lba mm 2
pick any string of with length at least mL
}0:{2
nbaL nn
66
We can write:
with lengths andmvxy || 1|| vy
uvxyzba mm 2
Pumping Lemma says:
Lzxyuv ii for all 0i
}0:{2
nbaL nn
67
We examine all the possible locations
of string in vxy
mvxy || 1|| vyuvxyzba mm 2
mm ba2
}0:{2
nbaL nn
68
The most complicated case:
bbaa ...........................v
2m m
u zx y
is in
is inmamb
vy
}0:{2
nbaL nn
mvxy || 1|| vyuvxyzba mm 2
69
bbaa ...........................v
2m m
u zx y
1kav 2kby
}0:{2
nbaL nn
mkk 211
mvxy || 1|| vyuvxyzba mm 2
70
bbaa ...........................v
2m m
u zx y
1kav 2kby
The most complicated sub-case: 01 k 02 k
}0:{2
nbaL nn
mkk 211
and
mvxy || 1|| vyuvxyzba mm 2
710v
12 km 2km
u zx 0y
bbaa ..................
}0:{2
nbaL nn
1kav 2kby
The most complicated sub-case: 01 k 02 k
mkk 211
and
mvxy || 1|| vyuvxyzba mm 2
72
}0:{2
nbaL nn
1kav 2kby
01 k 02 k
mkk 211
and
zxyuvba kmkm 00212
mvxy || 1|| vyuvxyzba mm 2
The most complicated sub-case:
75
}0:{2
nbaL nn
Lzxyuvba kmkm 00212
However, from Pumping Lemma:
Lzxyuv 00
Contradiction!
mvxy || 1|| vyuvxyzba mm 2
77
In all cases we obtained a contradiction.
Therefore: The original assumption that
is context-free must be wrong
Conclusion: is not context-freeL
}0:{2
nbaL nn
END OF PROOF
79
Let G be the grammar with productions:
Claim: L(G) = L
||
bBcB
BaScS
}:{ mnkcbaL kmn Find a CFG for the following language
Example 1
80
Proof:Consider the following derivation:
(the first * applies S aSc n times, the second * to B bBc m times)
Since all words in L(G) must follow this pattern in their derivations, it is clear that L(G) L
Find a CFG for the following language
||
bBcB
BaScS
}:{ mnkcbaL kmn
)(
**
mncmbna
ncmcBmbnancBnancSnaS
81
Consider w L, w = anbmc(n + m) for some n, m 0
The derivation
S * anScn anBcn * anbmBcmcn anbmc(n + m) clearly produces w for any n, m.
L L(G) L L(G)
G is a CFG for L
Find a CFG for the following language
}:{ mnkcbaL kmn
END OF PROOF
||
bBcB
BaScS
82
}:{ 32 NnbaL nn Find a PDA and CFG for the following language
Example 2
Is the automaton deterministic? Yes. It acts in a unique way in each state, no -transitions.
fqiq
/, 23 ab22 /, aa
/, 23 ab
84
}2:},{{ ba nnbaxL Find a PDA and CFG for the following language
Example 3
bb
aa
/,
/,
/,
/,
/,
/,
aab
aba
aab
baa
PDA
86
Consider the following two languages:
L1 ={w : w is made from a’s and b’s
and the length of w is a multiple of 10}
L2 = {an bn: n 0}
}:{ tenofmultipleNOTisnnbnaL
Prove that the language L is context-free
Example 4
87
L1 ={w : w is made from a’s and b’s and the length of w is a multiple of ten}
L2 = {an bn: n 0}
Let L1c denote the complement of L1.
We have that: L = L1c L2.
L1 is a regular language, since we can easily build a
finite automaton with 10 states that accepts any string in this language.
L1c is regular too, since regular languages are closed
under complement.
88
The language L2 is context-free.
The grammar is: S aSb |
Therefore, the language L = L1c L2. is also
context-free,
since context-free languages are closed under regular intersection (Regular Closure).
END O PROOF
89
}||,},{,:{ nxbaxNnaxL n Find a PDA and CFG for the following language
Example 5
CFG
babAaAA
AASaS
|||
||
ababaaabaAaaabAaa
AAaaAASaaASaS
Production ex.
90
Grammar NPDA
/,
/,
/,
/,
T
TaT
bS
aSTbS
T
TaT
bS
aSTbS
/,
/,
bb
aa
q0 q1 2qS/, $/$,
Remember converting grammar to NPDA, example:
92
}
,:},{{
different are symbols finishing theand starting the
ba nnbaxL
Find a PDA and CFG for the following language
Example 6
PDA /,a
/,
/,
/,
/,
ba
bb
ab
aa
bb /,
/, ab /,a
/, a
/,
/,
/,
/,
ba
bb
ab
aa
93
}
,:},{{
different are symbols finishing theand starting the
ba nnbaxL
/,a
/,
/,
/,
/,
ba
bb
ab
aa
bb /,
/, ab /,a
/, a
/,
/,
/,
/,
ba
bb
ab
aa
CFG, direct construction
Strings start and finish with different symbols
Strings contain at least one more a than b
bAaaAbS |
bAAAbAAAbaAaA ||||(we must have AA here as only one A just balances b)