Transcript

1

CDT314

FABER

Formal Languages, Automata and Models of Computation

Lecture 10

Mälardalen University

2011

2

Content

The Pumping Lemma for CFLApplications of the Pumping Lemma for CFL

Midterm Exam 2: Context-Free Languages

3

The Pumping Lemma for CFL’s

4

Comparison with the Pumping Lemma for Regular Languages

5

What is the difference between Context Free Languages and Regular Languages?

In regular languages, a single substring “pumps”

...... ......q

6

What is the difference between Context Free Languages and Regular Languages?

In CFL’s, multiple substrings can be “pumped”– Consider the language {an bn | n > 0}

– No single substring can be pumped and allow us to stay in the language

– However, there do exist pairs of substrings which can be pumped resulting in strings which stay in the language

Thus, a modified pumping lemma applies.

7

aBbbbB

S

A B

bBa

b

bS

A B

ba bB

bS

A B

bBa b bbabbaaBbbbb

abbaBbbbS

b bB bbabbaabbbbbbbabbaaBbbbbS

8

S

A

A

x

Last repeated variable

u z

v y

uvxyzw String

repeated

:,,,, zyxvu strings of terminals

9

Pumping Conditions for RL and CFL

A language L satisfies the RL pumping condition if: – there exists an integer m > 0

such that– for all strings w in L of length

at least m– there exist strings x, y, z such

that• w = xyz and• |xy| ≤ m and• |y| ≥ 1 and• For all i ≥ 0, uviz is in L

A language L satisfies the CFL pumping condition if: – there exists an integer m > 0

such that– for all strings w in L of length at

least m– there exist strings u, v, x, y, z

such that• w = uvxyz and• |vxy| ≤ m and• |vy| ≥ 1 and• For all i ≥ 0, uvixyiz is in L

10

Pumping Lemma

All CFL’s satisfy the CFL pumping condition

All languages over {a,b}

“Pumping Languages”

CFL’s

11

Implications

• We can use the pumping lemma to prove a language L is not a CFL– Show that L does not satisfy the CFL

pumping condition• We cannot use the pumping lemma to prove

a language is CFL– Showing L satisfies the pumping condition

does not guarantee that L is context-free

All languages over {a,b}

“Pumping Languages”

CFL’s

12

Pumping Lemma

What does it mean?

13

Pumping Condition

• A language L satisfies the CFL pumping condition if: – there exists an integer m > 0 such that– for all strings w in L of length at least m– there exist strings u, v, x, y, z such that

• w = uvxyz and• |vxy| ≤ m and• |vy| ≥ 1 and

Then for all i ≥ 0, uviwyiz is in L

14

v and y can be pumped

• Let w = abcdefg be in L• Then there exist substrings v and y in w such

that v and y can be repeated (pumped) and the resulting string is still in L– uvixyiz is in L for all i ≥ 0

1) w in L2) w = uvxyz3) For all i ≥ 0, uvixyiz is in L

15

For example w = abcdefg

v = cd and y = f

uv0xy0z = uxz = abeg is in L

uv1xy1z = uvxyz = abcdefg is in L

uv2xy2z = uvvxyyz = abcdcdeffg is in L

uv3xy3z = uvvvxyyyz = abcdcdcdefffg is in L

16

What the other parts mean

A language L satisfies the CFL pumping condition if: – there exists an integer m > 0 such that– for all strings w in L of length at least m

• w must be in L and have sufficient length

17

What the other parts mean

– There exist strings u, v, x, y, z such that• w = uvxyz and• |vxy| ≤ m and

–v and y are contained within m characters of w–Note: these are NOT necessarily the first m

characters of w• |vy| ≥ 1 and

–v and y cannot both be 1,–One of them might be 1, but not both

• For all i ≥ 0, uvixyiz is in L

18

Pumping Lemma

Applying CFL pumping lemma to prove that a specific language L is

not context-free

19

How we use the Pumping Lemma

• We choose a specific language L

For example {aj bj cj | j > 0}

• We show that L does not satisfy the pumping condition

• We conclude that L is not context-free

20

Showing that L “does not pump”

A language L satisfies the CFL pumping condition if: – there exists an integer m >

0 such that– for all strings w in L of

length at least m– there exist strings u, v, x,

y, z such that• w = uvxyz and• |vxy| ≤ m and• |vy| ≥ 1 and• For all i ≥ 0, uvixyiz is

in L

A language L does not satisfy the CFL pumping condition if: – for all integers m of sufficient

size– there exists a string w in L of

length at least m such that– for all strings u, v, x, y, z

where• w = uvxyz and• |vxy| ≤ m and• |vy| ≥ 1

– There exists a i ≥ 0 such that uvixyiz is not in L

21

Example Languages

• L = {the set of strings over {a, b, c} such that the number of a’s equals the number of b’s equals the number of c’s}

• L ={ai bj ck | i < j < k}

22

More Pumping Lemma Applications

23

The Pumping Lemma for CFL

there exists an integer such that m

for any string mwLw || ,

we can write

For infinite context-free language L

uvxyzw

with lengths 1||and || vymvxy

and 0 allfor , iLzxyuv ii

24

The Pumping Lemma for CFL

There exists an integer such that m

mwGLw || ),(

can be written

Let be a context free grammar. G

uvxyzw

with lengths 1||and || vymvxy

and 0 allfor , iLzxyuv ii

25

Regular Languages

}{ nnba }{ RwwContext-Free Languages

Non-regular languages

Unrestricted grammar languages

}0:{ ncba nnn

**ba

26

Theorem The language

}*},{:{ bawwwL

is not context free

Proof Use the Pumping Lemma

for context-free languages

27

Assume the contrary - that

is context-free

Since is context-free and infinite

we can apply the pumping lemma

L

L

}*},{:{ bawwwL

28

Pumping Lemma gives a number

such that:

m

we pick: Lbaba mmmm

}*},{:{ bawwwL

Pick any string of

with length at least mL

29

We can write:

}*},{:{ bawwwL

uvxyzbaba mmmm

Pumping Lemma says:

Lzxyuv ii for all 0i

with lengths mvxy || 1|| vyand

30

We examine all the possible locations

of string in vxy

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

mmmm baba

31

Case 1: vxy is within the firstma

bbaabbaa ........................v

m m m

u z

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

x y

m

1kav 2kay 121 kk

32

bbaabbaa ..................................2v

21 kkm m m

u z

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

x 2y

m

Case 1: vxy is within the firstma

1kav 2kay 121 kk

33

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

Case 1: vxy is within the firstma

121 kk

Lzxyuvbaba mmmkkm 2221

34

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

Case 1: vxy is within the first ma

Contradiction!

Lzxyuvbaba mmmkkm 2221

Lzxyuv 22However, from Pumping Lemma:

35

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

bbaabbaa ........................v

m m m

u zx y

m

is in the first

is in the firstCase 2: mamb

vy

1kav 2kby 121 kk

36

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

bbaabbaa ....................................2v

1km 2km m

u zx 2y

m

is in the first

is in the firstCase 2: mamb

vy

1kav 2kby 121 kk

37

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

is in the first

is in the firstCase 2: mamb

vy

121 kk

Lzxyuvbaba mmkmkm 2221

38

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

is in the first

is in the firstCase 2: mamb

vy

Lzxyuvbaba mmkmkm 2221

Contradiction!

Lzxyuv 22However, from Pumping Lemma:

39

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

bbaabbaa ........................v

m m m

u zx y

m

is in the first

overlaps the firstCase 3: mmbamb

vy

21 kk bav 3kby 1, 21 kk

40

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

is in the first

overlaps the firstCase 3: mmbamb

vy

21 kk bav 3kby 1, 21 kk

2v zx 2y

bbaabbbbaaaa .................................m 2k 3km

u

m1k m

41

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

is in the first

overlaps the firstCase 3: mmbamb

vy

Lzxyuvbabbaa mmkmkkm 22321

1, 21 kk

42

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

is in the first

overlaps the firstCase 3: mmbamb

vy

Lzxyuvbabbaa mmkkkm 22321

Contradiction!

Lzxyuv 22However, from Pumping Lemma:

43

Overlaps the first

in the firstCase 4:

bbaabbaa ........................v

m m m

u z

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

x y

m

mammba

vy

Analysis is similar to case 3

44

Other cases: vxy is within

mmmm babaor

or

mmmm baba

mmmm baba

Analysis is similar to case 1: mmmm baba

45

More cases: vxy overlaps

mmmm baba ormmmm baba

Analysis is similar to cases 2,3,4:

mmmm baba

46

Since , it is impossible for

to overlap:

There are no other cases to consider.

mvxy ||vxy

mmmm baba

nor normmmm baba mmmm baba

neither

47

In all cases we obtained a contradiction.

Therefore: The original assumption that

is context-free must be wrong

Conclusion: is not context-freeL

}*},{:{ bawwwL

END OF PROOF

48

Regular Languages

}{ nnba }{ RwwContext-Free Languages

Non-regular languages

Unrestricted grammar languages

}0:{ ncba nnn

**ba

}{ww

49

Theorem The language

is not context free

Proof Use the Pumping Lemma

for context-free languages

}0:{ ! naL n

50

Since is context-free and infinite

we can apply the pumping lemma

L

Assume to the contrary that

is context-free

L

}0:{ ! naL n

51

Pumping Lemma gives a number

such that we can:

m

so we pick: Lam !

pick any string of with length at least mL

}0:{ ! naL n

52

We can write: uvxyzam !

Pumping Lemma says:

Lzxyuv ii for all 0i

}0:{ ! naL n

with lengths mvxy || 1|| vy and

53

We examine all the possible locations

of the string in vxy !ma

mvxy || 1|| vyuvxyzam !

There is only one case to consider

}0:{ ! naL n

54

v

!m

u zx y

1kav 2kay mkk 211

aa ...............

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

55

2v

21! kkm

u zx 2y

1kav 2kay

aa ...........................

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

mkk 211

56

2v

km !

u zx 2y

1kav 2kay

aa ...........................

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

mk 1

21 kkk

57

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

mk 1

zxyuva km 22!

58

)!1(

)1(!

!!

!!

m

mm

mmm

mmkm

)!1(!! mkmm

mk 1Since

2m we have:for

59

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

Lzxyuva km 22!

)!1(!! mkmm

60

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

Lzxyuva km 22!

Lzxyuv 22

Contradiction!

However, from Pumping Lemma:

61

We obtained a contradiction

Therefore: The original assumption that

is context-free must be wrong

Conclusion: is not context-freeL

}0:{ ! naL n

END OF PROOF

62

Regular Languages

**ba

Context-free languages

Unrestricted grammar languages}0:{ ncba nnn

}0:{ nba nn

}},{:{ bawww

}*},{:{ bawwwR

}0:{ ! nan}0:{

2nba nn

63

Theorem The language

is not context free

Proof Use the Pumping Lemma

for Context-free languages

}0:{2

nbaL nn

64

Since is context-free and infinite

we can apply the pumping lemma

L

Assume to the contrary that

is context-free

L

}0:{2

nbaL nn

65

Pumping Lemma gives a number

such that we can:

m

so we choose: Lba mm 2

pick any string of with length at least mL

}0:{2

nbaL nn

66

We can write:

with lengths andmvxy || 1|| vy

uvxyzba mm 2

Pumping Lemma says:

Lzxyuv ii for all 0i

}0:{2

nbaL nn

67

We examine all the possible locations

of string in vxy

mvxy || 1|| vyuvxyzba mm 2

mm ba2

}0:{2

nbaL nn

68

The most complicated case:

bbaa ...........................v

2m m

u zx y

is in

is inmamb

vy

}0:{2

nbaL nn

mvxy || 1|| vyuvxyzba mm 2

69

bbaa ...........................v

2m m

u zx y

1kav 2kby

}0:{2

nbaL nn

mkk 211

mvxy || 1|| vyuvxyzba mm 2

70

bbaa ...........................v

2m m

u zx y

1kav 2kby

The most complicated sub-case: 01 k 02 k

}0:{2

nbaL nn

mkk 211

and

mvxy || 1|| vyuvxyzba mm 2

710v

12 km 2km

u zx 0y

bbaa ..................

}0:{2

nbaL nn

1kav 2kby

The most complicated sub-case: 01 k 02 k

mkk 211

and

mvxy || 1|| vyuvxyzba mm 2

72

}0:{2

nbaL nn

1kav 2kby

01 k 02 k

mkk 211

and

zxyuvba kmkm 00212

mvxy || 1|| vyuvxyzba mm 2

The most complicated sub-case:

73

12

2

222

12

)1()(

km

mm

mkm

01 k 02 k mkk 211and

221

2 )( kmkm

74

}0:{2

nbaL nn

221

2 )( kmkm

Lzxyuvba kmkm 00212

mvxy || 1|| vyuvxyzba mm 2

75

}0:{2

nbaL nn

Lzxyuvba kmkm 00212

However, from Pumping Lemma:

Lzxyuv 00

Contradiction!

mvxy || 1|| vyuvxyzba mm 2

76

When we examine the rest of the cases

we also obtain a contradiction.

77

In all cases we obtained a contradiction.

Therefore: The original assumption that

is context-free must be wrong

Conclusion: is not context-freeL

}0:{2

nbaL nn

END OF PROOF

78

Check your knowledge before the Midterm 2!

Selected Examplesof

Context Free Language Problems

79

Let G be the grammar with productions:

Claim: L(G) = L

||

bBcB

BaScS

}:{ mnkcbaL kmn Find a CFG for the following language

Example 1

80

Proof:Consider the following derivation:

(the first * applies S aSc n times, the second * to B bBc m times)

Since all words in L(G) must follow this pattern in their derivations, it is clear that L(G) L

Find a CFG for the following language

||

bBcB

BaScS

}:{ mnkcbaL kmn

)(

**

mncmbna

ncmcBmbnancBnancSnaS

81

Consider w L, w = anbmc(n + m) for some n, m 0

The derivation

S * anScn anBcn * anbmBcmcn anbmc(n + m) clearly produces w for any n, m.

L L(G) L L(G)

G is a CFG for L

Find a CFG for the following language

}:{ mnkcbaL kmn

END OF PROOF

||

bBcB

BaScS

82

}:{ 32 NnbaL nn Find a PDA and CFG for the following language

Example 2

Is the automaton deterministic? Yes. It acts in a unique way in each state, no -transitions.

fqiq

/, 23 ab22 /, aa

/, 23 ab

83

CFG : 32| SbaS

}:{ 32 NnbaL nn

fqiq

/, 23 ab22 /, aa

/, 23 ab

84

}2:},{{ ba nnbaxL Find a PDA and CFG for the following language

Example 3

bb

aa

/,

/,

/,

/,

/,

/,

aab

aba

aab

baa

PDA

85

CFG :

SSbSaSaaSaSbaSbSaS ||||

}2:},{{ ba nnbaxL bb

aa

/,

/,

/,

/,

/,

/,

aab

aba

aab

baa

86

Consider the following two languages:

L1 ={w : w is made from a’s and b’s

and the length of w is a multiple of 10}

L2 = {an bn: n 0}

}:{ tenofmultipleNOTisnnbnaL

Prove that the language L is context-free

Example 4

87

L1 ={w : w is made from a’s and b’s and the length of w is a multiple of ten}

L2 = {an bn: n 0}

Let L1c denote the complement of L1.

We have that: L = L1c L2.

L1 is a regular language, since we can easily build a

finite automaton with 10 states that accepts any string in this language.

L1c is regular too, since regular languages are closed

under complement.

88

The language L2 is context-free.

The grammar is: S aSb |

Therefore, the language L = L1c L2. is also

context-free,

since context-free languages are closed under regular intersection (Regular Closure).

END O PROOF

89

}||,},{,:{ nxbaxNnaxL n Find a PDA and CFG for the following language

Example 5

CFG

babAaAA

AASaS

|||

||

ababaaabaAaaabAaa

AAaaAASaaASaS

Production ex.

90

Grammar NPDA

/,

/,

/,

/,

T

TaT

bS

aSTbS

T

TaT

bS

aSTbS

/,

/,

bb

aa

q0 q1 2qS/, $/$,

Remember converting grammar to NPDA, example:

91

}||,},{,:{ nxbaxNnaxL n

PDA

fqiq

babAaAA

AASaS

|||/,

||/,

/,

/,

bb

aa

S/,

babAaAA

AASaS

|||

||

92

}

,:},{{

different are symbols finishing theand starting the

ba nnbaxL

Find a PDA and CFG for the following language

Example 6

PDA /,a

/,

/,

/,

/,

ba

bb

ab

aa

bb /,

/, ab /,a

/, a

/,

/,

/,

/,

ba

bb

ab

aa

93

}

,:},{{

different are symbols finishing theand starting the

ba nnbaxL

/,a

/,

/,

/,

/,

ba

bb

ab

aa

bb /,

/, ab /,a

/, a

/,

/,

/,

/,

ba

bb

ab

aa

CFG, direct construction

Strings start and finish with different symbols

Strings contain at least one more a than b

bAaaAbS |

bAAAbAAAbaAaA ||||(we must have AA here as only one A just balances b)

94

http://www.liacs.nl/~hoogeboo/praatjes/tarragona/schoolpda-VIII.pdf

Famous Pushdown Automata Examples

http://www.nature.com/nature/journal/v417/n6889/full/nature00771.html

Computational and evolutionary aspects of language

Further Reading


Top Related