more applications of the pumping lemmaryan/cse4083/busch/class07.pdf5 l {ww r: w 6 *} assume for...

46
1 More Applications of the Pumping Lemma

Upload: others

Post on 04-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

1

More Applications

of

the Pumping Lemma

Page 2: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

2

The Pumping Lemma:

• Given a infinite regular language L

• there exists an integer m

• for any string with length Lw mw ||

• we can write zyxw

• with andmyx || 1|| y

• such that: Lzyx i ...,2,1,0i

Page 3: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

3

Regular languages

Non-regular languages *}:{ wwwL R

Page 4: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

4

Theorem: The language

is not regular

Proof: Use the Pumping Lemma

*}:{ wwwL R },{ ba

Page 5: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

5

*}:{ wwwL R

Assume for contradiction

that is a regular languageL

Since is infinite

we can apply the Pumping Lemma

L

Page 6: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

6

mmmm abbaw We pick

Let be the integer in the Pumping Lemma

Pick a string such that: w Lw

mw ||length

m

*}:{ wwwL R

and

Page 7: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

7

Write zyxabba mmmm

it must be that length

From the Pumping Lemma

ababbabaaaaxyz ..................

x y z

m m m m

1||,|| ymyx

1, kay kThus:

Page 8: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

8

From the Pumping Lemma: Lzyx i

...,2,1,0i

Thus: Lzyx 2

1, kay kmmmm abbazyx

Page 9: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

9

From the Pumping Lemma:

Lababbabaaaaaazxy ∈.....................=2

x y z

km + m m m

1, kay k

y

Lzyx 2

Thus:

mmmm abbazyx

Labba mmmkm

Page 10: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

10

Labba mmmkm

Labba mmmkm

*}:{ wwwL RBUT:

CONTRADICTION!!!

1k

Page 11: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

11

Our assumption that

is a regular language is not true

L

Conclusion: L is not a regular language

Therefore:

Page 12: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

12

Regular languages

Non-regular languages

}0,:{ lncbaL lnln

Page 13: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

13

Theorem: The language

is not regular

Proof: Use the Pumping Lemma

}0,:{ lncbaL lnln

Page 14: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

14

Assume for contradiction

that is a regular languageL

Since is infinite

we can apply the Pumping Lemma

L

}0,:{ lncbaL lnln

Page 15: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

15

mmm cbaw 2We pick

Let be the integer in the Pumping Lemma

Pick a string such that: w Lw

mw ||length

m

}0,:{ lncbaL lnln

and

Page 16: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

16

Write zyxcba mmm 2

it must be that length

From the Pumping Lemma

cccbcabaaaaaxyz ..................

x y z

m m m2

1||,|| ymyx

1, kay kThus:

Page 17: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

17

From the Pumping Lemma: Lzyx i

...,2,1,0i

Thus:

mmm cbazyx 2

Lxzzyx ∈=0

1, kay k

Page 18: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

18

From the Pumping Lemma:

Lcccbcabaaaxz ...............

x z

km m m2

mmm cbazyx 2 1, kay k

Lxz

Thus: Lcba mmkm 2

Page 19: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

19

Lcba mmkm 2

Lcba mmkm 2

BUT:

CONTRADICTION!!!

}0,:{ lncbaL lnln

1k

Page 20: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

20

Our assumption that

is a regular language is not true

L

Conclusion: L is not a regular language

Therefore:

Page 21: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

21

Regular languages

Non-regular languages }0:{ ! naL n

Page 22: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

22

Theorem: The language

is not regular

Proof: Use the Pumping Lemma

}0:{ ! naL n

nnn )1(21!

Page 23: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

23

Assume for contradiction

that is a regular languageL

Since is infinite

we can apply the Pumping Lemma

L

}0:{ ! naL n

Page 24: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

24

!maw We pick

Let be the integer in the Pumping Lemma

Pick a string such that: w Lw

mw ||length

m

}0:{ ! naL n

Page 25: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

25

Write zyxam !

it must be that length

From the Pumping Lemma

aaaaaaaaaaaxyz m ...............!

x y z

m mm !

1||,|| ymyx

mkay k 1,Thus:

Page 26: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

26

From the Pumping Lemma: Lzyx i

...,2,1,0i

Thus:

!mazyx

Lzyx 2

mkay k 1,

Page 27: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

27

From the Pumping Lemma:

Laaaaaaaaaaaazxy ..................2

x y z

km mm !

Thus:

!mazyx mkay k 1,

Lzyx 2

y

La km !

Page 28: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

28

La km !

!! pkm

}0:{ ! naL nSince:

mk 1

There must exist such that: p

Page 29: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

29

However:

)!1(

)1(!

!!

!!

!

m

mm

mmm

mm

mmkm ! for 1m

)!1(! mkm

!! pkm for any p

Page 30: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

30

La km !

La km !

BUT:

CONTRADICTION!!!

}0:{ ! naL n

mk 1

Page 31: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

31

Our assumption that

is a regular language is not true

L

Conclusion: L is not a regular language

Therefore:

Page 32: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

32

Lex

Page 33: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

33

Lex: a lexical analyzer

• A Lex program recognizes strings

• For each kind of string found

the lex program takes an action

Page 34: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

34

Var = 12 + 9;

if (test > 20)

temp = 0;

else

while (a < 20)

temp++;

Lexprogram

Identifier: Var

Operand: =

Integer: 12

Operand: +

Integer: 9

Semicolumn: ;

Keyword: if

Parenthesis: (

Identifier: test

....

Input

Output

Page 35: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

35

In Lex strings are described

with regular expressions

“if”

“then”

“+”

“-”

“=“

/* operators */

/* keywords */

Lex programRegular expressions

Page 36: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

36

(0|1|2|3|4|5|6|7|8|9)+ /* integers */

/* identifiers */

Regular expressions

(a|b|..|z|A|B|...|Z)+

Lex program

Page 37: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

37

integers

[0-9]+(0|1|2|3|4|5|6|7|8|9)+

Page 38: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

38

(a|b|..|z|A|B|...|Z)+ [a-zA-Z]+

identifiers

Page 39: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

39

Each regular expression

has an associated action (in C code)

Examples:

\n

Regular expression Action

linenum++;

[a-zA-Z]+ printf(“identifier”);

[0-9]+ prinf(“integer”);

Page 40: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

40

Default action: ECHO;

Prints the string identified

to the output

Page 41: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

41

A small program

%%

[a-zA-Z]+ printf(“Identifier\n”);

[0-9]+ printf(“Integer\n”);

[ \t\n] ; /*skip spaces*/

Page 42: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

42

1234 test

var 566 78

9800

Input Output

Integer

Identifier

Identifier

Integer

Integer

Integer

Page 43: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

43

%%

[a-zA-Z]+ printf(“Identifier\n”);

[0-9]+ prinf(“Integer\n”);

[ \t] ; /*skip spaces*/

. printf(“Error in line: %d\n”,

linenum);

Another program%{

int linenum = 1;

%}

\n linenum++;

Page 44: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

44

1234 test

var 566 78

9800 +

temp

Input Output

Integer

Identifier

Identifier

Integer

Integer

Integer

Error in line: 3

Identifier

Page 45: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

45

Lex matches the longest input string

“if”

“ifend”

Regular Expressions

Input: ifend if ifn

Matches: “ifend” “if” nomatch

Example:

Page 46: More Applications of the Pumping Lemmaryan/cse4083/busch/class07.pdf5 L {ww R: w 6 *} Assume for contradiction that is a regular language L Since is infinite we can apply the Pumping

46

Internal Structure of Lex

Lex

Regular

expressionsNFA DFA

Minimal

DFA

The final states of the DFA are

associated with actions