Pumping Lemma Examples

Pumping Lemma
Examples
L> = {aibj : i > j}
L> is not regular.
We prove it using the Pumping Lemma.
L> = {aibj : i > j}
L> is not regular.
• Fix an arbitrary pumping length n>0.
L> = {aibj : i > j}
L> is not regular.
• Fix an arbitrary pumping length n>0.
• Choose a proper string s in L>.
L> = {aibj : i > j}
L> is not regular.
• Fix an arbitrary pumping length n>0.
• Choose a proper string s in L>.
|s|≥ n
L> = {aibj : i > j}
L> is not regular.
• Fix an arbitrary pumping length n>0.
• Choose a proper string s in L>.
• s = an+1bn ϵ L>.
aaa…aabb…b
n+1
n
L> = {aibj : i > j}
•
•
•
•
L> is not regular.
Fix an arbitrary pumping length n>0.
Choose a proper string s in L>.
s = an+1bn ϵ L>.
Consider all possible splittings of s in x,y,z with
the desired properties.
aaa…aabb…b
n+1
n
L> = {aibj : i > j}
•
•
•
•
L> is not regular.
Fix an arbitrary pumping length n>0.
Choose a proper string s in L>. |xy|≤ n
s = an+1bn ϵ L>.
|y|≥ 1
Consider all possible splittings of s in x,y,z with
the desired properties.
aaa…aabb…b
n+1
n
L> = {aibj : i > j}
•
•
•
•
L> is not regular.
Fix an arbitrary pumping length n>0.
Choose a proper string s in L>. |xy|≤ n
s = an+1bn ϵ L>.
|y|≥ 1
Consider all possible splittings of s in x,y,z with
the desired properties.
aaa…aabb…b
n+1
n
L> = {aibj : i > j}
•
•
•
•
L> is not regular.
Fix an arbitrary pumping length n>0.
Choose a proper string s in L>. |xy|≤ n
s = an+1bn ϵ L>.
|y|≥ 1
Consider all possible splittings of s in x,y,z with
the desired properties.
aaa…aabb…b
n+1
n
L> = {aibj : i > j}
•
•
•
•
L> is not regular.
Fix an arbitrary pumping length n>0.
Choose a proper string s in L>.
s = an+1bn ϵ L>.
Consider all possible splittings of s in x,y,z with
the desired properties: y = am, 1 ≤ m ≤ n.
aaa…aabb…b
n+1
n
L> = {aibj : i > j}
•
•
•
•
•
L> is not regular.
Fix an arbitrary pumping length n>0.
Choose a proper string s in L>.
s = an+1bn ϵ L>.
Consider all possible splittings of s in x,y,z with
the desired properties: y = am, 1 ≤ m ≤ n.
xz =an+1-mbn ∉ L>.
aaabb…b
n+1-m n
L> = {aibj : i > j}
•
•
•
•
•
•
L> is not regular.
Fix an arbitrary pumping length n>0.
Choose a proper string s in L>.
s = an+1bn ϵ L>.
Consider all possible splittings of s in x,y,z with
the desired properties: y = am, 1 ≤ m ≤ n.
xz =an+1-mbn ∉ L>.
So L> is not regular!
L={ww : w in
*
{a,b}
}
• First, figure out what this language is.
L={ww : w in
*
{a,b}
}
• First, figure out what this language is.
• A string in the language?
L={ww : w in
*
{a,b}
}
• First, figure out what this language is.
• A string in the language? aabaab
L={ww : w in
*
{a,b}
}
• First, figure out what this language is.
• A string in the language? aabaab
• Another string in the language?
L={ww : w in
*
{a,b}
}
• First, figure out what this language is.
• A string in the language? aabaab
• Another string in the language? aaaaaa
L={ww : w in
•
•
•
•
*
{a,b}
}
First, figure out what this language is.
A string in the language? aabaab
Another string in the language? aaaaaa
A string not in the language?
L={ww : w in
•
•
•
•
*
{a,b}
}
First, figure out what this language is.
A string in the language? aabaab
Another string in the language? aaaaaa
A string not in the language? abbb
L={ww : w in
•
•
•
•
•
*
{a,b}
}
First, figure out what this language is.
A string in the language? aabaab
Another string in the language? aaaaaa
A string not in the language? abbb
Is ε in the language?
L={ww : w in
•
•
•
•
•
*
{a,b}
}
First, figure out what this language is.
A string in the language? aabaab
Another string in the language? aaaaaa
A string not in the language? abbb
Is ε in the language? YES! (ε = εε)
L={ww : w in
•
•
•
•
•
•
*
{a,b}
}
First, figure out what this language is.
A string in the language? aabaab
Another string in the language? aaaaaa
A string not in the language? abbb
Is ε in the language? YES! (ε = εε)
Is aa in the language?
L={ww : w in
•
•
•
•
•
•
*
{a,b}
}
First, figure out what this language is.
A string in the language? aabaab
Another string in the language? aaaaaa
A string not in the language? abbb
Is ε in the language? YES! (ε = εε)
Is aa in the language? YES!
L={ww : w in
•
•
•
•
•
•
•
*
{a,b}
}
First, figure out what this language is.
A string in the language? aabaab
Another string in the language? aaaaaa
A string not in the language? abbb
Is ε in the language? YES! (ε = εε)
Is aa in the language? YES!
Is a in the language?
L={ww : w in
•
•
•
•
•
•
•
*
{a,b}
}
First, figure out what this language is.
A string in the language? aabaab
Another string in the language? aaaaaa
A string not in the language? abbb
Is ε in the language? YES! (ε = εε)
Is aa in the language? YES!
Is a in the language? NO!
L={ww : w in
*
{a,b}
}
• First, figure out what this language is.
L = {ε, aa, bb, aaaa, abab, baba, bbbb, aaaaaa …}
abaabba|abaabba
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• First fix an arbitrary number n>0 to be the
pumping length.
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
Choose wisely!!!
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
Example: For s = a2n
aaa…aaa|aaa…aaa
n
n
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
Example: For s = a2n
• For x = ε, y = a2, z = a2n-2
y
z
aaa…aaa|aaa…aaa
n
n
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
Example: For s = a2n
• For x = ε, y = a2, z = a2n-2
y y
z
aaaaa…aa|aaaa…aaa ϵ L
n+1
n+1
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
Example: For s = a2n
• For x = ε, y = a2, z = a2n-2
y y y
z
aaaaaaa…a|aaaaa…aaa ϵ L
n+2
n+2
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
Example: For s = a2n
• For x = ε, y = a2, z = a2n-2
z
a…aaaa|aa…aaa ϵ L
n-1
n-1
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
Example: For s = a2n
• For x = ε, y = a2, z = a2n-2, there is no i: xyiz ∉ L!
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
Example: For s = a2n
• For x = ε, y = a2, z = a2n-2, there is no i: xyiz ∉ L!
• s = a2n doesn’t work!!!
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
Example: For s = (ab)2n
abab…abab|abab…abab
n
n
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
Example: For s = (ab)2n
• For x = ε, y = abab, z = (ab)2n-2
y
z
abab…abab|abab…abab
n
n
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
Example: For s = (ab)2n
• For x = ε, y = abab, z = (ab)2n-2
y
y
z
abababab…ab|ababab…abab ϵ L
n+1
n+1
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
Example: For s = (ab)2n
• For x = ε, y = abab, z = (ab)2n-2
• For any i, xyiz = (ab)2i(ab)2n-2 = (ab)2(i-n-2) ϵ L!
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
Example: For s = (ab)2n
• For x = ε, y = abab, z = (ab)2n-2
• For any i, xyiz = (ab)2i(ab)2n-2 = (ab)2(i-n-2) ϵ L!
• s = (ab)2n doesn’t work!
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
• Use s = anbanb
aaaa…aab|aaaa...aab
n
n
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language.
• Use s = anbanb
• For any splitting of s in x,y,z with the desired
properties:
aaaa…aab|aaaa...aab
n
n
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language
• Use s = anbanb
• For any splitting of s in x,y,z with the desired
properties: y = am with 1 ≤ m ≤ n.
L={ww : w in
*
{a,b}
}
We prove that L is not regular by using the
pumping lemma.
• Pumping length: n
• Choose a proper string in the language
• Use s = anbanb
• For any splitting of s in x,y,z with the desired
properties: y = am with 1 ≤ m ≤ n.
• Observe that xy2z = am+nbanb is not in L
QED
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• A first attempt to design a FA
q10
a,b
q11
a,b
q12
a,b
q13
a,b
...
q1n
ε
q2n
a,b
q2n-1
a,b
q2n-2
a,b
q2n-3
a,b
...
q20
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• A first attempt to design a FA fails!
q10
a,b
q11
a,b
q12
a,b
q13
a,b
...
q1n
ε
q2n
a,b
q2n-1
a,b
q2n-2
a,b
q2n-3
a,b
...
q20
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Looks similar with L (L = {w1w2 : w1 = w2}.
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Looks similar with L (L = {w1w2 : w1 = w2}.
• But the pumping lemma holds!
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Looks similar with L (L = {w1w2 : w1 = w2}.
• But the pumping lemma holds!
– Fix pumping length k=2.
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Looks similar with L (L = {w1w2 : w1 = w2}.
• But the pumping lemma holds!
– Fix pumping length k=2.
– For every proper string s in L’,
2n≥2
abbba…abb|bbaba…aaa
n
n
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Looks similar with L (L = {w1w2 : w1 = w2}.
• But the pumping lemma holds!
– Fix pumping length k=2.
– For every proper string s in L’,
– split s in x, y, z with the desired properties.
y
z
|y|≥1 and |xy|≤ 2
abbba…abb|bbaba…aaa
n
n
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Looks similar with L (L = {w1w2 : w1 = w2}.
• But the pumping lemma holds!
– Fix pumping length k=2.
– For every proper string s in L’,
– split s in x = ε ,y = first two symbols of s, z = rest.
y
z
abbba…abb|bbaba…aaa
n
n
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Looks similar with L (L = {w1w2 : w1 = w2}.
• But the pumping lemma holds!
– Fix pumping length k=2.
– For every proper string s in L’,
– split s in x = ε ,y = first two symbols of s, z = rest.
– xy2z in L’.
y y
z
ababbba…ab|bbbaba…aaaϵ L’
n+1
n+1
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Looks similar with L (L = {w1w2 : w1 = w2}.
• But the pumping lemma holds!
– Fix pumping length k=2.
– For every proper string s in L’,
– split s in x = ε ,y = first two symbols of s, z = rest.
– xy3z in L’.
y y y
z
abababbba…a|bbbbaba…aaa ϵ L’
n+2
n+2
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Looks similar with L (L = {w1w2 : w1 = w2}.
• But the pumping lemma holds!
– Fix pumping length n=2.
– For every proper string s in L’,
– split s in x = ε ,y = first two symbols of s, z = rest.
– xy0z in L’.
z
bba…abbb|baba…aaa ϵ L’
n-1
n-1
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Looks similar with L (L = {w1w2 : w1 = w2}.
• But the pumping lemma holds!
– Fix pumping length n=2.
– For every proper string s in L’,
– split s in x = ε ,y = first two symbols of s, z = rest.
– For every i ≥ 0, xyiz in L’.
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Consider L’’ = {w : w has even length}.
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Consider L’’ = {w : w has even length}.
Every string of even length
abbbaabb….…bbabaaaa
2n
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Consider L’’ = {w : w has even length}.
Every string of even length
can be split into two parts of equal length
abbbaabb…|…bbabaaaa
n
n
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Consider L’’ = {w : w has even length}.
Every string of even length
can be split into two parts of equal length
and vice versa.
abbbaabb….…bbabaaaa
2n
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Consider L’’ = {w : w has even length}.
• L’ = L’’
Every string of even length
can be split into two parts of equal length
and vice versa.
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• Consider L’’ = {w : w has even length}
• L’ = L’’
• A DFA for L’’:
a,b
even
odd
a,b
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}
Is it regular?
• YES!!!
• L’ = L’’
• A DFA for L’:
a,b
even
odd
a,b