The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of...

13
The Pumping Lemma For Regular Languages Proof that Computer Scientists should not be allowed to come up with names for anything. Ever.

Transcript of The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of...

Page 1: The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of the Pumping Lemma (RL) C = {w | w has an equal number of 0s and 1s} Is this Language

The Pumping LemmaFor Regular LanguagesProof that Computer Scientists should not be

allowed to come up with names for anything. Ever.

Page 2: The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of the Pumping Lemma (RL) C = {w | w has an equal number of 0s and 1s} Is this Language

A Quick Perspective

How do we

prove that a

Language is

Regular?

How do we

prove that a

Language is

NOT Regular?

Page 3: The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of the Pumping Lemma (RL) C = {w | w has an equal number of 0s and 1s} Is this Language

Examples of Nonregular Languages● B = {0n1n

| n ≥ 0}

● C = {w|w has an equal

number of 0s and 1s}

● D = {w|w has an equal

number of occurrences of 01

and 10 as substrings.}

OOPS!

D is Regular!!!!

Intuition may be wrong.

Page 4: The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of the Pumping Lemma (RL) C = {w | w has an equal number of 0s and 1s} Is this Language

The Pumping LemmaWe need a tool to prove that a

language is NOT Regular.

Intuition: There is a property

that ALL Regular Languages

have. If a Language can be

shown to NOT have this

property, then that Language is

NOT Regular.

Question: What is the longest string that can be

generated by this FSM?

Question: What is the longest string that can be

generated by this FSM (stopping when a loop is

formed in the δ transitions)?

Answer: 3 characters

(3 transitions: q

1

➝q

2

➝q

3

➝q

2

)

Page 5: The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of the Pumping Lemma (RL) C = {w | w has an equal number of 0s and 1s} Is this Language

Important Ideas/DefinitionsPumping

Repeating a section of the string an

arbitrary number of times (≥0), with

the resulting string remaining in the

language.

Pumping Length

“All string in the language can be

pumped if they are at least as long as

a certain special value, called the

pumping length.”

Intuitive Examples:

101⇒ 1(01)*

000001⇒ (0)*00001

110100⇒ 1(1)*0100

Page 6: The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of the Pumping Lemma (RL) C = {w | w has an equal number of 0s and 1s} Is this Language

Pumping Lemma (for Regular Languages)If A is a Regular Language, then there is a number p (the

pumping length) where if s is any string in A of length at least p,

then s may be divided into 3 pieces, s = xyz, satisfying the

following conditions:

a. For each i ≥ 0, xy

i

z ∈ A,

b. |y| > 0, and

c. |xy| ≤ p.

Page 7: The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of the Pumping Lemma (RL) C = {w | w has an equal number of 0s and 1s} Is this Language

Pumping Lemma (RL) ProofLet M = (Q, Σ, δ, q

1

, F) be a DFA recognizing A and

p be the number of states of M.

Let s = s

1

s

2

...s

n

be a string in A with length n, where

n ≥ p.

Let r

1

,...,r

n + 1

be the sequence of states M enters

when processing s. r

i + 1

= δ(r

i

, s

i

) for 1 ≤ i ≤ n. The

sequence has length n+1, which is at least p + 1.

Among the first p + 1 elements in the sequence,

two must be the same state, via the pigeonhole

principle. The first is called r

j

, and the second is r

l

.

Because r

l

occurs among the first p + 1 places in a

sequence starting at r

1

, we have l ≤ p + 1.

Now let x = s

1

...s

j-1

, y = s

j

...s

l-1

, and z = s

l

...s

n

.

As x takes M from r

1

to r

j

, y takes M from r

j

to r

l

,

and z takes M from r

l

to r

n+1

, which is an accept

state, M must accept xy

i

z for i ≥ 0.

We know j ≠ l, so |y| > 0; and l ≤ p + 1, so |xy| ≤ p.

Thus, we have satisfied all conditions of the

pumping lemma.

Page 8: The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of the Pumping Lemma (RL) C = {w | w has an equal number of 0s and 1s} Is this Language

Example applications of the Pumping Lemma (RL)B = {0n1n

| n ≥ 0}

Is this Language a Regular Language?

● If Regular, build a FSM

● If Nonregular, prove with Pumping

Lemma

Proof by Contradiction:

Assume B is Regular, then Pumping Lemma

must hold.

p is the pumping length given by the PL.

Choose s to be 0p1p

.

Because s ∈ B and |s| ≥ p, PL guarantees s can be

split into 3 pieces, s = xyz, where for any i ≥ 0,

xy

i

z ∈ B. Consider 3 cases:

1. y is only 0s. xyyz has more 0s than 1s, thus a

contradiction via condition 1 of PL.

2. y is only 1s. Also a contradiction.

3. y is both 0s and 1s. xyyz may have same

number of 1s and 0s, but will be out of order,

with some 1s before 0s, also a contradiction.

Contradiction is unavoidable, thus B is not Regular.

(Could simplify with condition 3 of PL).

Page 9: The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of the Pumping Lemma (RL) C = {w | w has an equal number of 0s and 1s} Is this Language

Example applications of the Pumping Lemma (RL)C = {w | w has an equal number of 0s and 1s}

Is this Language a Regular Language?

● If Regular, build a FSM

● If Nonregular, prove with Pumping

Lemma

Proof by Contradiction:

Assume C is Regular, then Pumping Lemma

must hold.

p is the pumping length given by the PL.

Choose s to be 0p1p

.

Because s ∈ C and |s| ≥ p, PL guarantees s can be

split into 3 pieces, s = xyz, where for any i ≥ 0,

xy

i

z ∈ C.

Condition 3 (|xy| ≤ p) keeps us from setting x and z

to ε, because then |y| would be greater than p.

Because |xy| ≤ p, y must be only 0s. xyyz is not in the

language because then the string would contain

more 0s than 1s. This is a contradiction.

Contradiction is unavoidable, thus C is not Regular.

Note: (01)

p

is a bad choice, because it can be pumped.

Page 10: The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of the Pumping Lemma (RL) C = {w | w has an equal number of 0s and 1s} Is this Language

Example applications of the Pumping Lemma (RL)F = {ww | w ∈ {0,1}*}

Is this Language a Regular Language?

● If Regular, build a FSM

● If Nonregular, prove with Pumping

Lemma

Proof by Contradiction:

Assume F is Regular, then Pumping Lemma

must hold.

p is the pumping length given by the PL.

Choose s to be 0p10p1. (Note: 0p0p

is a bad choice.)

Because s ∈ F and |s| ≥ p, PL guarantees s can be

split into 3 pieces, s = xyz, where for any i ≥ 0,

xy

i

z ∈ F.

Because |xy| ≤ p, y must be only 0s. xyyz is not in the

language because the string will no longer be in the

form ww.

Contradiction is unavoidable, thus F is not Regular.

(Notice the importance of Condition 3 of PL, which

keeps x and z from both being ε).

Page 11: The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of the Pumping Lemma (RL) C = {w | w has an equal number of 0s and 1s} Is this Language

Example applications of the Pumping Lemma (RL)E = {0i1j

| i > j }

Is this Language a Regular Language?

● If Regular, build a FSM

● If Nonregular, prove with Pumping

Lemma

Proof by Contradiction:

Assume E is Regular, then Pumping Lemma

must hold.

p is the pumping length given by the PL.

Choose s to be 0p + 11p

.

Because s ∈ E and |s| ≥ p, PL guarantees s can be

split into 3 pieces, s = xyz, where for any i ≥ 0,

xy

i

z ∈ E.

Because |xy| ≤ p, y must be only 0s.

There is only one more 0 than 1s.

We can pump down y to get xy

0

z = xz.

The number of 0s in xz is less than or equal to the

number of 1s, and is therefore not in the language.

Contradiction is unavoidable, thus E is not Regular.

Page 12: The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of the Pumping Lemma (RL) C = {w | w has an equal number of 0s and 1s} Is this Language

General Form of a Proof by Contradiction with the PLAssume that a Language L is Regular, then

Pumping Lemma must hold.

Define p to be the pumping length given by the

Pumping Lemma.

Choose s (often in terms of p).

Because s ∈ L and |s| ≥ p, PL guarantees that s can

be split into 3 pieces, s = xyz, where for any i ≥ 0,

xy

i

z ∈ L.

For all possible values of y (given the conditions of

the Pumping Lemma), show that pumping xy

i

z is

not in the Language.

Contradiction is shown for all cases, proving that L

is not a Regular Language.

Notes:

● Choosing a s that can be pumped proves

nothing.

● Sometimes finding an appropriate s is the

hard part.

Page 13: The Pumping Lemma For Regular Languagescpennycu/2018/assets/fa-ToC-5.pdf · Example applications of the Pumping Lemma (RL) C = {w | w has an equal number of 0s and 1s} Is this Language

Tools to prove that a

Language is Nonregular:

The Pumping Lemma

Tools to prove that a

Language is Regular:

DFA

NFA

GNFA

Regular Expression