cd5560 faber formal languages, automata and models of computation lecture 10

96
1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 10 Mälardalen University 2007

Upload: arden-daniel

Post on 31-Dec-2015

32 views

Category:

Documents


3 download

DESCRIPTION

CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 10 Mälardalen University 2007. Content The Pumping Lemma for CFL Applications of the Pumping Lemma for CFL Midterm Exam 2: Context-Free Languages. Pumping Lemma for CFL’s. - PowerPoint PPT Presentation

TRANSCRIPT

1

CD5560

FABER

Formal Languages, Automata and Models of Computation

Lecture 10

Mälardalen University

2007

2

Content

The Pumping Lemma for CFLApplications of the Pumping Lemma for CFL

Midterm Exam 2: Context-Free Languages

3

Pumping Lemma for CFL’s

4

Comparison to Regular Language Pumping Lemma/Condition

5

What’s Difference between CFL’s and Regular Languages?

In regular languages, a single substring “pumps”

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

6

What’s Difference between CFL’s and Regular Languages?

In CFL’s, multiple substrings can be “pumped”– Consider the language {anbn | 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

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 x in L of length at

least m– there exist strings u, v, w such

that• x = uvw and• |uv| ≤ m and• |v| ≥ 1 and• For all i ≥ 0, uviw is in L

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

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

least n– there exist strings u, v, w, y, z

such that• x = uvwyz and• |vwy| ≤ m and• |vy| ≥ 1 and• For all i ≥ 0, uviwyiz is in L

8

Pumping Lemma

All CFL’s satisfy the CFL pumping condition

All languages over {a,b}

“Pumping Languages”

CFL’s

9

Implications

• We can use the pumping lemma to prove a language L is not a CFL– Show 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

10

Pumping Lemma

What does it mean?

11

Pumping Condition

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

• x = uvwyz and

• |vwy| ≤ m and

• |vy| ≥ 1 and

• For all i ≥ 0, uviwyiz is in L

12

v and y can be pumped

• Let x = abcdefg be in L• Then there exist substrings v and y in x such that v and y can be

repeated (pumped) and the resulting string is still in L– uviwyiz is in L for all i ≥ 0

• For example x = abcdefg

v = cd and y = f• uv0wy0z = uwz = abeg is in L• uv1wy1z = uvwyz = abcdefg is in L• uv2wy2z = uvvwyyz = abcdcdeffg is in L• uv3wy3z = uvvvwyyyz = abcdcdcdefffg is in L • …

1) x in L2) x = uvwyz3) For all i ≥ 0, uviwyiz is in L

13

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 x in L of length at least m

• x must be in L and have sufficient length

– there exist strings u, v, w, y, z such that• x = uvwyz and• |vwy| ≤ m and

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

• |vy| ≥ 1 and– v and y cannot both be – One of them might be , but not both

• For all i ≥ 0, uviwyiz is in L

14

Pumping Lemma

Applying it to prove a specific language L is not context-free

15

How we use the Pumping Lemma

• We choose a specific language L

For example {ajbjcj | j > 0}

• We show that L does not satisfy the pumping condition

• We conclude that L is not context-free

16

Showing L “does not pump”

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

0 such that– for all strings x in L of

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

y, z such that• x = uvwyz and• |vwy| ≤ m and• |vy| ≥ 1 and• For all i ≥ 0, uviwyiz is

in L

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

size– there exists a string x in L of

length at least n such that– for all strings u, v, w, y, z

such that• x = uvwyz and• |vwy| ≤ m and• |vy| ≥ 1

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

17

Example Languages

• TWOCOPIES = {ww | w is in {a,b}* }– abbabb is in TWOCOPIES but abaabb is not

• EQUAL3 = {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}

• {aibjck | i < j < k}

18

Pumping Lemma

Two rules of thumb

19

Two Rules of Thumb

• Try to use blocks of at least m characters in xFor TWOCOPIES, choose x = ambmambm rather than

ambamb• Guarantees v and y cannot be in more than 2 blocks of x

• Try i=0 or i=2i=0

• This reduces number of occurrences of v and y

i=2• This increases number of occurrences of v and y

20

Summary

• We use the Pumping Lemma to prove that language is not a CFL– Note, it does not work for all non CFL languages– Can be strengthened to Ogden’s Lemma

• Choosing a good string x is first key step• Choosing a good i is second key step• Typically have several cases for v, w, y

21

More Applicationsof

The Pumping Lemma

22

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

23

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

24

Regular Languages

}{ nnba }{ RwwContext-Free Languages

Non-regular languages

Unrestricted grammar languages

}0:{ ncba nnn

**ba

25

Theorem The language

}*},{:{ bawwwL

is not context free

Proof Use the Pumping Lemma

for context-free languages

26

Assume the contrary - that

is context-free

Since is context-free and infinite

we can apply the pumping lemma

L

L

}*},{:{ bawwwL

27

Pumping Lemma gives a number

such that:

m

we pick: Lbaba mmmm

}*},{:{ bawwwL

Pick any string of

with length at least mL

28

We can write:

}*},{:{ bawwwL

uvxyzbaba mmmm

Pumping Lemma says:

Lzxyuv ii for all 0i

with lengths mvxy || 1|| vyand

29

We examine all the possible locations

of string in vxy

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

mmmm baba

30

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

31

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

32

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

Case 1: vxy is within the firstma

121 kk

Lzxyuvbaba mmmkkm 2221

33

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

Case 1: vxy is within the firstma

Contradiction!

Lzxyuvbaba mmmkkm 2221

Lzxyuv 22However, from Pumping Lemma:

34

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

35

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

36

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

is in the first

is in the firstCase 2: mamb

vy

121 kk

Lzxyuvbaba mmkmkm 2221

37

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:

38

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

39

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

40

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

is in the first

overlaps the firstCase 3: mmbamb

vy

Lzxyuvbabbaa mmkmkkm 22321

1, 21 kk

41

mvxy || 1|| vyuvxyzbaba mmmm

}*},{:{ bawwwL

is in the first

overlaps the firstCase 3: mmbamb

vy

Lzxyuvbabbaa mmkkkm 22321

Contradiction!

Lzxyuv 22However, from Pumping Lemma:

42

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

43

Other cases: vxy is within

mmmm babaor

or

mmmm baba

mmmm baba

Analysis is similar to case 1: mmmm baba

44

More cases: vxy overlaps

mmmm baba ormmmm baba

Analysis is similar to cases 2,3,4:

mmmm baba

45

Since , it is impossible for

to overlap:

There are no other cases to consider

mvxy ||vxy

mmmm baba

nor normmmm baba mmmm baba

neither

46

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

47

Regular Languages

}{ nnba }{ RwwContext-Free Languages

Non-regular languages

Unrestricted grammar languages

}0:{ ncba nnn

**ba

}{ww

48

Theorem The language

is not context free

Proof Use the Pumping Lemma

for context-free languages

}0:{ ! naL n

49

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

50

Pumping Lemma gives a magic number

such that:

m

we pick: Lam !

Pick any string of with length at least mL

}0:{ ! naL n

51

We can write: uvxyzam !

Pumping Lemma says:

Lzxyuv ii for all 0i

}0:{ ! naL n

with lengths mvxy || 1|| vy and

52

We examine all the possible locations

of string in vxy !ma

mvxy || 1|| vyuvxyzam !

There is only one case to consider

}0:{ ! naL n

53

v

!m

u zx y

1kav 2kay mkk 211

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

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

54

2v

21! kkm

u zx 2y

1kav 2kay

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

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

mkk 211

55

2v

km !

u zx 2y

1kav 2kay

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

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

mk 1

21 kkk

56

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

mk 1

zxyuva km 22!

57

)!1(

)1(!

!!

!!

m

mm

mmm

mmkm

)!1(!! mkmm

mk 1Since

2m we have:for

58

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

Lzxyuva km 22!

)!1(!! mkmm

59

mvxy || 1|| vyuvxyzam !

}0:{ ! naL n

Lzxyuva km 22!

Lzxyuv 22

Contradiction!

However, from Pumping Lemma:

60

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

61

Regular Languages

**ba

Context-free languages

Unrestricted grammar languages}0:{ ncba nnn

}0:{ nba nn

}},{:{ bawww

}*},{:{ bawwwR

}0:{ ! nan}0:{

2nba nn

62

Theorem The language

is not context free

Proof Use the Pumping Lemma

for context-free languages

}0:{2

nbaL nn

63

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

64

Pumping Lemma gives a number

such that:

m

we pick: Lba mm 2

Pick any string of with length at least mL

}0:{2

nbaL nn

65

We can write:

with lengths andmvxy || 1|| vy

uvxyzba mm 2

Pumping Lemma says:

Lzxyuv ii for all 0i

}0:{2

nbaL nn

66

We examine all the possible locations

of string in vxy

mvxy || 1|| vyuvxyzba mm 2

mm ba2

}0:{2

nbaL nn

67

Most complicated case:

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

2m m

u zx y

is in

is inmamb

vy

}0:{2

nbaL nn

mvxy || 1|| vyuvxyzba mm 2

68

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

2m m

u zx y

1kav 2kby

}0:{2

nbaL nn

mkk 211

mvxy || 1|| vyuvxyzba mm 2

69

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

2m m

u zx y

1kav 2kby

Most complicated sub-case: 01 k 02 k

}0:{2

nbaL nn

mkk 211

and

mvxy || 1|| vyuvxyzba mm 2

700v

12 km 2km

u zx 0y

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

}0:{2

nbaL nn

1kav 2kby

Most complicated sub-case: 01 k 02 k

mkk 211

and

mvxy || 1|| vyuvxyzba mm 2

71

}0:{2

nbaL nn

1kav 2kby

Most complicated sub-case: 01 k 02 k

mkk 211

and

zxyuvba kmkm 00212

mvxy || 1|| vyuvxyzba mm 2

72

12

2

222

12

)1()(

km

mm

mkm

01 k 02 k mkk 211and

221

2 )( kmkm

73

}0:{2

nbaL nn

221

2 )( kmkm

Lzxyuvba kmkm 00212

mvxy || 1|| vyuvxyzba mm 2

74

}0:{2

nbaL nn

Lzxyuvba kmkm 00212

However, from Pumping Lemma: Lzxyuv 00

Contradiction!

mvxy || 1|| vyuvxyzba mm 2

75

When we examine the rest of the cases

we also obtain a contradiction

76

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

77

Midterm Exam 2Context-Free Languages

Time: on Thursday 2007-05-10, 13:15-15:00

It is OPEN BOOK.

(This means you are allowed to bring in one book or lecture notes.)

78

79

80

81

82

Check your knowledge before midterm exam!

Selected Examplesof

CF Language Problems

83

Let G be the grammar with productions:

Claim: L(G) = L

||

bBcB

BaScS

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

Example

84

Proof:Consider the following derivation:

S * anScn anBcn * anbmBcmcn anbmc(n + m)

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

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

}:{ mnkcbaL kmn

Find a CFG for the following language

||

bBcB

BaScS

85

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

86

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

Example

Is the automaton deterministic? Yes. It acts in a unique way in each state.

fqiq

/, 23 ab22 /, aa

/, 23 ab

87

CFG : 32| SbaS

}:{ 32 NnbaL nn

fqiq

/, 23 ab22 /, aa

/, 23 ab

88

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

Example

bb

aa

/,

/,

/,

/,

/,

/,

aab

aba

aab

baa

PDA

89

CFG :

SSbSaSaaSaSbaSbSaS ||||

}2:},{{ ba nnbaxL bb

aa

/,

/,

/,

/,

/,

/,

aab

aba

aab

baa

90

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 = {anbn: n 0}

}5:{ ofmultiplenotisnbaL nn

Prove that the language L is context-free

Example

91

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

L2 = {anbn: n 0}

Let L1 denote the complement of L1. We have that L = L1 L2.

L1 is a regular language, since we can easily build a finite automaton with 10 states that accepts any string in this language.

L1 is regular too, since regular languages are closed under complement.

92

The language L2 is context-free.

The grammar is: S aSb |

Therefore, the language L = L1 L2 is also context-free,

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

END O PROOF

93

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

Example

CFG

babAaAA

AASaS

|||

||

ababaaabaAaaabAaa

AAaaAASaaASaS

Production ex.

94

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

PDA

fqiq

babAaAA

AASaS

|||/,

||/,

/,

/,

bb

aa

S/,

95

}different are symbols finishing theand starting the

,:},{{ ba nnbaxL

Find a PDA and CFG for the following language

Example

PDA /,a

/,

/,

/,

/,

ba

bb

ab

aa

bb /,

/, ab /,a

/, a

/,

/,

/,

/,

ba

bb

ab

aa

96

}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)