1

I have been working to understand the pumpming lemma better but I am quite stuck at proving these 2 languages is not regular:

 L_1 = {(ab)^n c^m | n>=1,  m>=2n } 
 L_2 = {(ab)^n a^k (ba)^n | k<3}

for the L_2 my approach was:

 Let's say there is a number p.
 Be the word z=(ab)^p a^k (ba)^p => |z| = 2p > p 
 and its decomposition may z=uvw with |uv| <= p & |v|>0.
 It means that v= (ab)^j with 0<j<=p.
 We choose i = 2 for uv^(i)w leads to (ab)^(p+j) a^k (ba)^p. 
 This Strings has more ab then ba, which means it does not belong to the language.
 => L_2 is not regular

I am actually confused with the (ab)^n, we should decomposed it, so it is necessary to consider different cases of v or is this sufficient?

han chu
  • 41
  • 1
  • 1
    I’m voting to close this question because it is not a computer programming question. It is a computer science question. – Raymond Chen Mar 31 '21 at 04:37

1 Answers1

0

For L_1, use the string (ab)^p c^2p and point out that pumping can only change the number of a's and b's, never c's, and pumping up will cause the string not to be of the proper form, or m to be less than 2n.

For L_2, use the string (ab)^p(ba)^p and argue that since pumping can only affect the prefix (ab)^p, if pumping keeps that part in the correct format, the number of b's will increase when pumping up, whereas the number of b's in the second part (which is deterministically found by looking after the only occurrence of bb) remains the same; so, the result can't be of the form (ab)^n a^k (ba)^n due to the mismatch in number of b's.

Patrick87
  • 27,682
  • 3
  • 38
  • 73