Non-regular languages The Chinese University of Hong Kong Fall 2011 CSCI 3130: Automata theory and formal languages Non-regular languages Andrej Bogdanov http://www.cse.cuhk.edu.hk/~andrejb/csc3130
A non-regular language An example We reason by contradiction: Suppose we have managed to construct a DFA M for L We argue something must be wrong with this DFA In particular, M must accept some strings outside L L = {0n1n: n ≥ 0} is not regular.
A non-regular language imaginary DFA for L with n states M x What happens when we run M on input x = 0n+11n+1? M better accept, because x L
A non-regular language M x 0r1n+1 What happens when we run M on input x = 0n+11n+1? M better accept, because x L But since M has n states, it must revisit at least one of its states while reading 0n+1
Pigeonhole principle Suppose you are tossing n + 1 balls into n bins. Then two balls end up in the same bin. Here, balls are 0s, bins are states: If you have a DFA with n states and it reads n + 1 consecutive 0s, then it must end up in the same state twice.
A non-regular language M x 0r1n+1 What happens when we run M on input x = 0n+11n+1? M better accept, because x L2 But since M has n states, it must revisit at least one of its states while reading 0n+1 But then the DFA must contain a loop with 0s
A non-regular language M 0r1n+1 The DFA will then also accept strings that go around the loop multiple times But such strings have more 0s than 1s, so they are not in L2!
General method for showing non-regularity Every regular language L has a property: For every sufficiently long input z in L, there is a “middle part” in z that, even if repeated any number of times, keeps the input inside L an z a1 ak ak+1 an-1 … … an+1…am
Pumping lemma for regular languages Pumping lemma: For every regular language L There exists a number n such that for every string z in L, we can write z = u v w where |uv| ≤ n |v| ≥ 1 For every i ≥ 0, the string u vi w is in L. v z … … u w
Arguing non-regularity If L is regular, then: So to prove L is not regular, it is enough to show: There exists n such that for every z in L, we can write z = u v w where |uv| ≤ n, |v| ≥ 1 and For every i ≥ 0, the string u vi w is in L. For every n there exists z in L, such that for every way of writing z = u v w where |uv| ≤ n and |v| ≥ 1, the string u vi w is not in L for some i ≥ 0.
Proving non regularity For every n there exists z in L, such that for every way of writing z = u v w where |uv| ≤ n and |v| ≥ 1, the string u vi w is not in L for some i ≥ 0. This is a game between you and an imagined adversary (say Donald) Donald choose n write z = uvw (|uv| ≤ n,|v| ≥ 1) you choose z L choose i you win if uviw L 1 2
Arguing non-regularity You need to give a strategy that, regardless of what the adversary does, always wins you the game Donald choose n write z = uvw (|uv| ≤ n,|v| ≥ 1) you choose z L choose i you win if uviw L 1 2
Example L = {0n1n: n ≥ 0} Donald choose n write z = uvw (|uv| ≤ n,|v| ≥ 1) you choose z L choose i you win if uviw L 1 2 L = {0n1n: n ≥ 0} Donald you 1 choose n z = 0n1n 2 write z = uvw i = 2 uv2w = 0n+k1n L 000000000000000111111111111111 u v w 0000000000000000000111111111111111 u v w
Example LDUP = {0n10n1: n ≥ 0} Donald you choose n z = 0n10n1 2 write z = uvw i = 2 uv2w = 0n+k10n1 L 000000000000001000000000000001 u v w 0000000000000000001000000000000001 u v w
Which of these are regular? L1 = {x: x has same number of 0s and 1s} L2 = {x: x = 0n1m, n > m ≥ 0} L3 = {x: x has same number of patterns 01 and 10} L4 = {x: x has same number of patterns 01 and 10} L5 = {x: x has different number of 0s and 1s} S = {0, 1}
Example L1 = {x: x has same number of 0s and 1s} Donald you choose n z = 0n1n 2 write z = uvw i = 2 uv2w = 0n+k1n L3 000000000000000111111111111111 u v w 0000000000000000000111111111111111 u v w
Example L2 = {x: x = 0m1n, m > n ≥ 0} Donald you choose n z = 0n+11n 2 write z = uvw i = 0 uv0w = 0j+l1n+1 L2 000000000000000111111111111111 u v w 00000000000111111111111111 u w
Example L3 = {x: x has same number of 01s and 11s} Donald you 1 choose n z = (01)n(11)n n = 1 z = 0111 L4 has too many 11s What we have in mind: n = 1 z = 011 n = 2 z = 010111 n = 3 z = 010101111 z = (01)n1n has n 01s and n 11s
Example L3 = {x: x has same number of 01s and 11s} Donald you win! choose n z = (01)n1n 2 write z = uvw i = 0 Taking out v will kill at least one 01, but it does not kill any 11s 010101010101010111111111 u v w 010101010101010111111111 u v w or so uv0w L3
Example L4 = {x: x has same number of 01s and 01s} Donald you choose n z = (01)n(10)n n = 1 z = 0110 n = 2 z = 01011010 n = 3 z = 010101101010
Example is regular! L4 = {x: x has same number of 01s and 10s} Donald you 1 choose n z = (01)n(10)n 2 write z = uvw i = 2 i = 0 010101101010 u v w 5 01 patterns 5 10 patterns 01010101101010 u v w 6 01 patterns 6 10 patterns 0101101010 u w 4 01 patterns 4 10 patterns
Example L4 = {x: x has same number of 01s and 10s} one more 10 r0 r1 1 1 q0 one more 01 1 1 s0 s1 L4 = {x: x has same number of 01s and 10s}
there is an easier way! Example L4 = {x: x has different number of 0s than 1s} Donald you 1 choose n z = ? there is an easier way! L1 = {x: x has same number of 0s and 1s} = L4 If L4 is regular, then L1 = L4 is also regular But L1 is not regular, so L4 cannot be regular
Extra example L5 = {1p: p is prime} Donald you choose n z = 1p: p > n is prime 2 write z = uvw = 1a1b1c i = ? = a + c uviw = 1a1ib1c = 1(a+c)+ib 111111111111111111111111111111 = 1(a+c)+(a+c)b u = 1a v = 1b w = 1c = 1(a+c)(b+1) = 1composite L5