Transcript
Page 1: The Pumping Lemma For Context Free Grammarscpennycu/2018/assets/fa-ToC-8.pdf · Example applications of the Pumping Lemma (CFL) B = {an bn cn | n ≥ 0} Is this Language a Context

The Pumping LemmaFor Context Free Grammars

Because the first Pumping Lemma got lonely.

Page 2: The Pumping Lemma For Context Free Grammarscpennycu/2018/assets/fa-ToC-8.pdf · Example applications of the Pumping Lemma (CFL) B = {an bn cn | n ≥ 0} Is this Language a Context

Building Intuition

What is the Pumping

Lemma for Regular

Languages?

How is the Pumping

Lemma for Regular

Languages used?

What is an example of a non-Context Free Language?

Page 3: The Pumping Lemma For Context Free Grammarscpennycu/2018/assets/fa-ToC-8.pdf · Example applications of the Pumping Lemma (CFL) B = {an bn cn | n ≥ 0} Is this Language a Context

Building Intuition, Part 2: ExamplesContext Free Language

● {a

n

b

n

| n ≥ 1}

● {a

i

b

j

c

k

| i = j or i = k}

● {ww

R

| w ∈ {0,1}*}

Non-Context Free Language

● {a

n

b

n

c

n

| n ≥ 1}

● {a

i

b

j

c

k

| 0 ≤ i ≤ j ≤ k}

● {ww | w ∈ {0,1}*}

Page 4: The Pumping Lemma For Context Free Grammarscpennycu/2018/assets/fa-ToC-8.pdf · Example applications of the Pumping Lemma (CFL) B = {an bn cn | n ≥ 0} Is this Language a Context

Building Intuition, Part 3: PicturesDFA Diagram CFG Parse Tree

Page 5: The Pumping Lemma For Context Free Grammarscpennycu/2018/assets/fa-ToC-8.pdf · Example applications of the Pumping Lemma (CFL) B = {an bn cn | n ≥ 0} Is this Language a Context

Pumping Lemma for Context Free LanguagesIf A is a Context Free 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 5 pieces, s = uvxyz, satisfying the

following conditions:

a. For each i ≥ 0, uv

i

xy

i

z ∈ A,

b. |vy| > 0, and

c. |vxy| ≤ p.

Page 6: The Pumping Lemma For Context Free Grammarscpennycu/2018/assets/fa-ToC-8.pdf · Example applications of the Pumping Lemma (CFL) B = {an bn cn | n ≥ 0} Is this Language a Context

Pumping Lemma (CFL) ProofLet G be a CFG for CFL A. Let b be the maximum

number of symbols in the RHS of a rule (assume at

least 2). In any parse tree, a node can have at most

b children. I.e., at most b

h

nodes are within h steps

to the start variable. (Implies height h limits string

to maximum length of b

h

.)

|V| is number of variables in G. The pumping

length p = b

|V| + 1

. If s ∈ A and |s| ≥ p, parse tree

must be |V| + 1 high, because b

|V| + 1

≥ b

|V|

+ 1.

�휏 is the smallest (least number of nodes) parse tree

of s. �휏 is at least |V| + 1 high, so the longest path

from root is at least |V| + 1.

That path has at least |V| + 2 nodes; one at a

terminal, all others are variables. Hence, that path

has at least |V| + 1 variables. With G having only

|V| variables, some variable R appears more than

once on that path. For convenience, we select R to

be a variable that repeats among the lowest |V| + 1

variables on this path.

Divide s into uvxyz.

Each occurrence of R has a subtree. The upper

occurrence is larger and generates vxy. The lower

is smaller and generates x.

Page 7: The Pumping Lemma For Context Free Grammarscpennycu/2018/assets/fa-ToC-8.pdf · Example applications of the Pumping Lemma (CFL) B = {an bn cn | n ≥ 0} Is this Language a Context

Pumping Lemma (CFL) Proof (cont.)Both subtrees are generated by R, so one may be

substituted for the other and still be a valid parse

tree. Replacing the smaller with the larger yields

uv

i

xy

i

z at each i > 1. Replacing larger by the

smaller yields uxz. This establishes condition 1 of

the lemma.

v and y are not both ε. If they were, the parse tree

obtained by pumping down would have fewer

nodes than �휏, but it would still generate s. This is

not possible because �휏 is a parse tree for s with the

least number of nodes, and is a contradiction. This

establishes condition 2.

In �휏, the upper R generates vxy. R was chosen to

fall within the bottom |V| + 1 variables on the path,

and we chose the longest path in the parse tree, so

the upper R is at most |V| + 1 high. This height can

generate a string of at most b

|V| + 1

= p. This

establishes condition 3. ∎

Page 8: The Pumping Lemma For Context Free Grammarscpennycu/2018/assets/fa-ToC-8.pdf · Example applications of the Pumping Lemma (CFL) B = {an bn cn | n ≥ 0} Is this Language a Context

Example applications of the Pumping Lemma (CFL)B = {an bn cn

| n ≥ 0}

Is this Language a Context Free Language?

● If Context Free, build a CFG or PDA

● If not Context Free, prove with Pumping

Lemma

Proof by Contradiction:

Assume B is a CFL, then Pumping Lemma

must hold.

p is the pumping length given by the PL.

Choose s to be ap bp cp

.

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

split into 5 pieces, s = uvxyz, where for any i ≥ 0,

uv

i

xy

i

z ∈ B. Consider 2 cases:

1. v and y contain one type of symbol. uv

2

xy

2

z

cannot contain equal numbers of a’s, b’s and

c’s. Thus a contradiction via condition 1 of PL.

2. Either v or y contains more than one type of

symbol. uv

2

xy

2

z may have same number of

a’s, b’s, and c’s, but will be out of order, which

is also a contradiction.

Contradiction is unavoidable, thus B is not Context

Free.

Page 9: The Pumping Lemma For Context Free Grammarscpennycu/2018/assets/fa-ToC-8.pdf · Example applications of the Pumping Lemma (CFL) B = {an bn cn | n ≥ 0} Is this Language a Context

Example applications of the Pumping Lemma (CFL)C = {a

i

b

j

c

k

| 0 ≤ i ≤ j ≤ k}

Is this Language a Context Free Language?

● If Context Free, build a CFG or PDA

● If not Context Free, prove with Pumping

Lemma

Proof by Contradiction:

Assume C is a CFL, then Pumping Lemma

must hold.

p is the pumping length given by the PL.

Choose s to be ap bp cp

.

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

split into 5 pieces, s = uvxyz, where for any i ≥ 0,

uv

i

xy

i

z ∈ C. Consider 2 cases:

1. v and y contain one type of symbol.

a. a’s not in vy. Pump down

b. b’s not in vy. If a’s in vy, pump up. If c’s in vy,

pump down.

c. c’s not in vy. Pump up.

2. Either v or y contains more than one type of

symbol. uv

2

xy

2

z will have a’s, b’s, and c’s, but

will be out of order, which is also a

contradiction.

Contradiction is unavoidable, thus C is not Context

Free.

Page 10: The Pumping Lemma For Context Free Grammarscpennycu/2018/assets/fa-ToC-8.pdf · Example applications of the Pumping Lemma (CFL) B = {an bn cn | n ≥ 0} Is this Language a Context

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

Is this Language a Context Free Language?

● If Context Free, build a CFG or PDA

● If not Context Free, prove with Pumping

Lemma

Proof by Contradiction:

Assume D is a CFL, then Pumping Lemma

must hold.

p is the pumping length given by the PL.

Choose s to be 0p 1p 0p 1p

.

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

split into 5 pieces, s = uvxyz, where for any i ≥ 0,

uv

i

xy

i

z ∈ D. Remember condition 3: |vxy| ≤ p

1. vxy does not straddle midpoint of s. Pumping

renders s not in the form ww.

2. vxy straddles midpoint of s. Pumping renders

s in the form 0p 1i 0j 1p

, which is not in the

form ww.

Contradiction is unavoidable, thus D is not Context

Free.

Note: 0p 1 0p 1 is not a good choice for s!

Page 11: The Pumping Lemma For Context Free Grammarscpennycu/2018/assets/fa-ToC-8.pdf · Example applications of the Pumping Lemma (CFL) B = {an bn cn | n ≥ 0} Is this Language a Context

Tools to prove that a

Language is not

Context Free:

The Pumping Lemma

Tools to prove that a

Language is

Context Free:

Context Free Grammar

Pushdown Automata


Top Related