cd5560 faber formal languages, automata and models of computation lecture 10
DESCRIPTION
CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 10 Mälardalen University 2007. Content The Pumping Lemma for CFL Applications of the Pumping Lemma for CFL Midterm Exam 2: Context-Free Languages. Pumping Lemma for CFL’s. - PowerPoint PPT PresentationTRANSCRIPT
1
CD5560
FABER
Formal Languages, Automata and Models of Computation
Lecture 10
Mälardalen University
2007
2
Content
The Pumping Lemma for CFLApplications of the Pumping Lemma for CFL
Midterm Exam 2: Context-Free Languages
5
What’s Difference between CFL’s and Regular Languages?
In regular languages, a single substring “pumps”
...... ......q
6
What’s Difference between CFL’s and Regular Languages?
In CFL’s, multiple substrings can be “pumped”– Consider the language {anbn | 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
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 x in L of length at
least m– there exist strings u, v, w such
that• x = uvw and• |uv| ≤ m and• |v| ≥ 1 and• For all i ≥ 0, uviw is in L
A language L satisfies the CFL pumping condition if: – there exists an integer m > 0
such that– for all strings x in L of length at
least n– there exist strings u, v, w, y, z
such that• x = uvwyz and• |vwy| ≤ m and• |vy| ≥ 1 and• For all i ≥ 0, uviwyiz is in L
8
Pumping Lemma
All CFL’s satisfy the CFL pumping condition
All languages over {a,b}
“Pumping Languages”
CFL’s
9
Implications
• We can use the pumping lemma to prove a language L is not a CFL– Show 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
11
Pumping Condition
• A language L satisfies the CFL pumping condition if: – there exists an integer m > 0 such that– for all strings x in L of length at least m– there exist strings u, v, w, y, z such that
• x = uvwyz and
• |vwy| ≤ m and
• |vy| ≥ 1 and
• For all i ≥ 0, uviwyiz is in L
12
v and y can be pumped
• Let x = abcdefg be in L• Then there exist substrings v and y in x such that v and y can be
repeated (pumped) and the resulting string is still in L– uviwyiz is in L for all i ≥ 0
• For example x = abcdefg
v = cd and y = f• uv0wy0z = uwz = abeg is in L• uv1wy1z = uvwyz = abcdefg is in L• uv2wy2z = uvvwyyz = abcdcdeffg is in L• uv3wy3z = uvvvwyyyz = abcdcdcdefffg is in L • …
1) x in L2) x = uvwyz3) For all i ≥ 0, uviwyiz is in L
13
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 x in L of length at least m
• x must be in L and have sufficient length
– there exist strings u, v, w, y, z such that• x = uvwyz and• |vwy| ≤ m and
– v and y are contained within m characters of x– Note: these are NOT necessarily the first m characters of x
• |vy| ≥ 1 and– v and y cannot both be – One of them might be , but not both
• For all i ≥ 0, uviwyiz is in L
15
How we use the Pumping Lemma
• We choose a specific language L
For example {ajbjcj | j > 0}
• We show that L does not satisfy the pumping condition
• We conclude that L is not context-free
16
Showing L “does not pump”
• A language L satisfies the CFL pumping condition if: – there exists an integer n >
0 such that– for all strings x in L of
length at least m– there exist strings u, v, w,
y, z such that• x = uvwyz and• |vwy| ≤ m and• |vy| ≥ 1 and• For all i ≥ 0, uviwyiz is
in L
• A language L does not satisfy the CFL pumping condition if: – for all integers n of sufficient
size– there exists a string x in L of
length at least n such that– for all strings u, v, w, y, z
such that• x = uvwyz and• |vwy| ≤ m and• |vy| ≥ 1
– There exists a i ≥ 0 such that uviwyiz is not in L
17
Example Languages
• TWOCOPIES = {ww | w is in {a,b}* }– abbabb is in TWOCOPIES but abaabb is not
• EQUAL3 = {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}
• {aibjck | i < j < k}
19
Two Rules of Thumb
• Try to use blocks of at least m characters in xFor TWOCOPIES, choose x = ambmambm rather than
ambamb• Guarantees v and y cannot be in more than 2 blocks of x
• Try i=0 or i=2i=0
• This reduces number of occurrences of v and y
i=2• This increases number of occurrences of v and y
20
Summary
• We use the Pumping Lemma to prove that language is not a CFL– Note, it does not work for all non CFL languages– Can be strengthened to Ogden’s Lemma
• Choosing a good string x is first key step• Choosing a good i is second key step• Typically have several cases for v, w, y
22
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
23
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
24
Regular Languages
}{ nnba }{ RwwContext-Free Languages
Non-regular languages
Unrestricted grammar languages
}0:{ ncba nnn
**ba
25
Theorem The language
}*},{:{ bawwwL
is not context free
Proof Use the Pumping Lemma
for context-free languages
26
Assume the contrary - that
is context-free
Since is context-free and infinite
we can apply the pumping lemma
L
L
}*},{:{ bawwwL
27
Pumping Lemma gives a number
such that:
m
we pick: Lbaba mmmm
}*},{:{ bawwwL
Pick any string of
with length at least mL
28
We can write:
}*},{:{ bawwwL
uvxyzbaba mmmm
Pumping Lemma says:
Lzxyuv ii for all 0i
with lengths mvxy || 1|| vyand
29
We examine all the possible locations
of string in vxy
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
mmmm baba
30
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
31
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
32
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
Case 1: vxy is within the firstma
121 kk
Lzxyuvbaba mmmkkm 2221
33
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
Case 1: vxy is within the firstma
Contradiction!
Lzxyuvbaba mmmkkm 2221
Lzxyuv 22However, from Pumping Lemma:
34
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
35
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
36
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
is in the first
is in the firstCase 2: mamb
vy
121 kk
Lzxyuvbaba mmkmkm 2221
37
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:
38
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
39
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
40
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
is in the first
overlaps the firstCase 3: mmbamb
vy
Lzxyuvbabbaa mmkmkkm 22321
1, 21 kk
41
mvxy || 1|| vyuvxyzbaba mmmm
}*},{:{ bawwwL
is in the first
overlaps the firstCase 3: mmbamb
vy
Lzxyuvbabbaa mmkkkm 22321
Contradiction!
Lzxyuv 22However, from Pumping Lemma:
42
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
43
Other cases: vxy is within
mmmm babaor
or
mmmm baba
mmmm baba
Analysis is similar to case 1: mmmm baba
45
Since , it is impossible for
to overlap:
There are no other cases to consider
mvxy ||vxy
mmmm baba
nor normmmm baba mmmm baba
neither
46
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
47
Regular Languages
}{ nnba }{ RwwContext-Free Languages
Non-regular languages
Unrestricted grammar languages
}0:{ ncba nnn
**ba
}{ww
48
Theorem The language
is not context free
Proof Use the Pumping Lemma
for context-free languages
}0:{ ! naL n
49
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
50
Pumping Lemma gives a magic number
such that:
m
we pick: Lam !
Pick any string of with length at least mL
}0:{ ! naL n
51
We can write: uvxyzam !
Pumping Lemma says:
Lzxyuv ii for all 0i
}0:{ ! naL n
with lengths mvxy || 1|| vy and
52
We examine all the possible locations
of string in vxy !ma
mvxy || 1|| vyuvxyzam !
There is only one case to consider
}0:{ ! naL n
54
2v
21! kkm
u zx 2y
1kav 2kay
aa ...........................
mvxy || 1|| vyuvxyzam !
}0:{ ! naL n
mkk 211
55
2v
km !
u zx 2y
1kav 2kay
aa ...........................
mvxy || 1|| vyuvxyzam !
}0:{ ! naL n
mk 1
21 kkk
59
mvxy || 1|| vyuvxyzam !
}0:{ ! naL n
Lzxyuva km 22!
Lzxyuv 22
Contradiction!
However, from Pumping Lemma:
60
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
61
Regular Languages
**ba
Context-free languages
Unrestricted grammar languages}0:{ ncba nnn
}0:{ nba nn
}},{:{ bawww
}*},{:{ bawwwR
}0:{ ! nan}0:{
2nba nn
62
Theorem The language
is not context free
Proof Use the Pumping Lemma
for context-free languages
}0:{2
nbaL nn
63
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
64
Pumping Lemma gives a number
such that:
m
we pick: Lba mm 2
Pick any string of with length at least mL
}0:{2
nbaL nn
65
We can write:
with lengths andmvxy || 1|| vy
uvxyzba mm 2
Pumping Lemma says:
Lzxyuv ii for all 0i
}0:{2
nbaL nn
66
We examine all the possible locations
of string in vxy
mvxy || 1|| vyuvxyzba mm 2
mm ba2
}0:{2
nbaL nn
67
Most complicated case:
bbaa ...........................v
2m m
u zx y
is in
is inmamb
vy
}0:{2
nbaL nn
mvxy || 1|| vyuvxyzba mm 2
68
bbaa ...........................v
2m m
u zx y
1kav 2kby
}0:{2
nbaL nn
mkk 211
mvxy || 1|| vyuvxyzba mm 2
69
bbaa ...........................v
2m m
u zx y
1kav 2kby
Most complicated sub-case: 01 k 02 k
}0:{2
nbaL nn
mkk 211
and
mvxy || 1|| vyuvxyzba mm 2
700v
12 km 2km
u zx 0y
bbaa ..................
}0:{2
nbaL nn
1kav 2kby
Most complicated sub-case: 01 k 02 k
mkk 211
and
mvxy || 1|| vyuvxyzba mm 2
71
}0:{2
nbaL nn
1kav 2kby
Most complicated sub-case: 01 k 02 k
mkk 211
and
zxyuvba kmkm 00212
mvxy || 1|| vyuvxyzba mm 2
74
}0:{2
nbaL nn
Lzxyuvba kmkm 00212
However, from Pumping Lemma: Lzxyuv 00
Contradiction!
mvxy || 1|| vyuvxyzba mm 2
76
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
77
Midterm Exam 2Context-Free Languages
Time: on Thursday 2007-05-10, 13:15-15:00
It is OPEN BOOK.
(This means you are allowed to bring in one book or lecture notes.)
83
Let G be the grammar with productions:
Claim: L(G) = L
||
bBcB
BaScS
}:{ mnkcbaL kmn Find a CFG for the following language
Example
84
Proof:Consider the following derivation:
S * anScn anBcn * anbmBcmcn anbmc(n + m)
(where the first * applies S aSc n times, the second B bBc m times)
Since all words in L(G) must follow this pattern in their derivations, it is clear that L(G) L
}:{ mnkcbaL kmn
Find a CFG for the following language
||
bBcB
BaScS
85
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
86
}:{ 32 NnbaL nn Find a PDA and CFG for the following language
Example
Is the automaton deterministic? Yes. It acts in a unique way in each state.
fqiq
/, 23 ab22 /, aa
/, 23 ab
88
}2:},{{ ba nnbaxL Find a PDA and CFG for the following language
Example
bb
aa
/,
/,
/,
/,
/,
/,
aab
aba
aab
baa
PDA
90
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 = {anbn: n 0}
}5:{ ofmultiplenotisnbaL nn
Prove that the language L is context-free
Example
91
L1 ={w : w is made from a’s and b’s and the length of w is a multiple of ten}
L2 = {anbn: n 0}
Let L1 denote the complement of L1. We have that L = L1 L2.
L1 is a regular language, since we can easily build a finite automaton with 10 states that accepts any string in this language.
L1 is regular too, since regular languages are closed under complement.
92
The language L2 is context-free.
The grammar is: S aSb |
Therefore, the language L = L1 L2 is also context-free,
since context-free languages are closed under regular intersection (Regular Closure).
END O PROOF
93
}||,},{,:{ nxbaxNnaxL n Find a PDA and CFG for the following language
Example
CFG
babAaAA
AASaS
|||
||
ababaaabaAaaabAaa
AAaaAASaaASaS
Production ex.
95
}different are symbols finishing theand starting the
,:},{{ ba nnbaxL
Find a PDA and CFG for the following language
Example
PDA /,a
/,
/,
/,
/,
ba
bb
ab
aa
bb /,
/, ab /,a
/, a
/,
/,
/,
/,
ba
bb
ab
aa
96
}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)