Pumping for contradictions!

Here is a short description of how to use the pumping lemma to show a language L is not regular.

Think of it as a game where you are trying to win. Here are the steps. Your opponent takes the odd numbered moves, you take the even numbered moves:

  1. They claim L is regular.

  2. You challenge and ask them to prove it by satisfying the pumping lemma.

  3. They must reveal the n that is guaranteed to exist by the pumping lemma.

  4. You must provide them with a string w in L with |w| >= n that they must be able to pump.

  5. They must break w into strings x, y, and z such that w = xyz, |xy| <= n and y != e that is supposed to satisfy the pumping lemma.

  6. You must find an i >= 0 such that xyiz is not in L (no matter how they broke w up in the previous step!).

If you succeed in the last step no matter what n they choose, and no matter how they break your w into pieces (following the rules), then you have won and succeeded in showing that L is not regular!

Of course it is cheating if you illegally perform one of their steps. I.e., you cannot choose n, and once you have chosen w, you don't get to choose x, y, and z. All you know about x, y, and z is the restrictions on their lengths (xy isn't too long and y is non-empty).