You are on page 1of 67

Pumping Lemma

Examples
L> = {a b : i > j}
i j

L> is not regular.


We prove it using the Pumping Lemma.
L> = {a b : i > j}
i j

L> is not regular.


• Fix an arbitrary pumping length n>0.
L> = {a b : i > j}
i j

L> is not regular.


• Fix an arbitrary pumping length n>0.
• Choose a proper string s in L>.
L> = {a b : i > j}
i j

L> is not regular.


• Fix an arbitrary pumping length n>0.
• Choose a proper string s in L>.

|s|≥ n
L> = {a b : i > j}
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> = {a b : i > j}
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> = {a b : i > j}
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> = {a b : i > j}
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> = {a b : i > j}
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.
Y
aaa…aabb…b
n+1 n
L> = {a b : i > j}
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.
Y
aaa…aabb…b
n+1 n
L> = {a b : i > j}
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> = {a b : i > j}
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:
Y
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

a,b a,b a,b a,b


q10 q11 q12 q13 ... q1n

ε
a,b a,b a,b a,b
q2n q2n-1 q2n-2 q2n-3 ... q20
L’ = {w1w2 : w1,w2 ϵ {a,b}*,|w1|=|w2|}

Is it regular?
• A first attempt to design a FA fails!

a,b a,b a,b a,b


...
Works for string
q10 q11 q12 q13 q1n

q2nsizes up to n! ...
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
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
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
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’
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’
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’
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

You might also like