cdt314 faber formal languages, automata and models of computation lecture 10
DESCRIPTION
CDT314 FABER Formal Languages, Automata and Models of Computation Lecture 10 Mälardalen University 2011. Content The Pumping Lemma for CFL Applications of the Pumping Lemma for CFL Midterm Exam 2: Context-Free Languages. The Pumping Lemma for CFL’s. - PowerPoint PPT PresentationTRANSCRIPT
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)