Skip to content

Pumping Lemma

Welcome to Week 4!

This week we will discover that Finite Automata cannot count!

Learning Objectives for this week

  • Use proof by contradiction to prove a property does not hold.
  • Define pumping length and minimum pumping length for RLs.
  • Specify the conditions of the Pumping Lemma (PL).
  • Interpret the meaning of the PL for RLs.
  • Use the PL to show that some languages are not regular. (PL Game)
  • Recognise the limitation of using a fixed finite amount of memory.

Ask & Answer Questions

Don't forget that you can use the Aula's Common Room to raise questions for me and the rest of the class.

Add your questions to the Community Common Room and take a look at others' questions. If you see a question which you'd like to answer then just go ahead and participate in the discussion!

Pre-class Activity

We will be using a proof technique called proof by contradiction, which is a common technique we use often in our daily lives.

For example, someone claims it is raining outside. You quickly open the window and stick your hand outside and you find out that your hand is not wet. What do you conclude?

We call that a contradiction: If it were really raining then your hand should have become wet from the rain. Since it did not then the claim that it was raining must be false.

Look back at exercises 6 and 7 from the brainteaser from Lab 1b. How was this technique used there?

Visit Brainteaser from Lab 1b

Lecture videos

The PDF slides are available for download.

Download Slides

You are encouraged to download these. You can follow the videos without downloading them though.

Proof by contradiction

Proving that something is true usually only requires you to show "how you get there". However, when somethings is false then we usually need to use other methods. One such method is called proof by contradiction. Let us see a nice example.

A property of regular languages

We will now investigate RL's to discover a property that is shared by all of them. We will see that any RL is either:

  • a finite language
  • or infinite but has a regularly repeating pattern.

This latter property is the reason behind the name of this class of languages.

This property that we have just discovered for RLs means that given yes-instance that is "long enough" then a portion of it must be pumpable (repeatable) and still a yes-instance of the same language.

The crucial bit is that this pumpable part must come from its "first part". To make this precise, we use the "pumping length" \(p\), and say \(|xy|\leq p\).

The PL Game

We want to use this property (implied by the Pumping Lemma) to show that a language is not regular using proof by contradiction.

To give the proof an easy structure to follow, I have reformulated it as an interactive "game" where two players play in turn to try and win the game.

Constant-space computation

We now reflect on our first model, and highlight that it is a good model for computations that do not require increasing memory (storage space) as the input strings get longer.

RLs fail to count symbols (and remember the count) because, eventually, the number of states is not enough to represent the numbers with longer bit-representation.

Next week we enrich the NFAs with a structure that allows them to count. Let us see if that resolves all the shortcomings!

Ready for some lab exercises?

Now you can attempt the last part of the lab exercises.

Attempt Lab 4 exercises

Ready for the lab exercises?

Attempt Lab 4 exercises