CS250      Lab5 - Regular Pumping Lemma

Objectives:

  1. Recall the definition of the regular pumping lemma:

    Let L be an infinite regular language. Then there exists some positive integer m such that any w that is a member of L with |w| ≥ m can be decomposed as w = xyz, with |xy| ≤ m, and |y| ≥ 1, such that wi = xyiz, is also in L for all i = 0, 1, 2, ....

    In other words, any sufficiently long string in L can be broken down into three parts such that any number of repetitions of the middle part (pumping the middle part) will still yield in a string in L.

    JFLAP treats the regular pumping lemma as a two-player game. One player, player A, is trying to prove that the language is not regular, and the other player, player B, is trying to make it as hard as possible for player A to do so. The game is played like this:

    1. Player B picks an integer for m.
    2. Player A picks a string w such that w is a member of L and |w| ≥ m.
    3. Player B picks the partition of w into xyz such that |xy| ≤ m and |y| ≥ 1.
    4. Player A picks an integer i such that xyiz is not a member of L. If player A can do so player A wins, otherwise, player B wins.

    If player A can pick a strategy such that they will always win regardless of player B's choices, it is equivalent to proof that the language is not regular. JFLAP takes the role of player A, and you take the role of player B, with a few examples that are included.

    Explain in your own words why the existence of a strategy for player A that always wins is equivalent to proof that the language is not regular.

     

  2. Play the game with a number of examples.  Are all the languages non-regular? 

     
    There is at least one regular language there.  Which languages are regular and which are not? For any regular languages, explain how you won the game.  Does winning the game mean that the language IS regular?

     


  3.  
    Write out formal pumping lemma proofs for exercises pp122 4d,f, 5c, 15e,f