lecture 22

28
1 Lecture 22 • Closure Properties for LFSA using NFA’s – union (second proof) – concatenation – Kleene closure

Upload: ilar

Post on 12-Jan-2016

30 views

Category:

Documents


0 download

DESCRIPTION

Lecture 22. Closure Properties for LFSA using NFA’s union (second proof) concatenation Kleene closure. LFSA closed under set union (again). LFSA closed under set union. Let L 1 and L 2 be arbitrary languages in LFSA Let M 1 and M 2 be NFA ’s s.t. L(M 1 ) = L 1 , L(M 2 ) = L 2 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lecture 22

1

Lecture 22

• Closure Properties for LFSA using NFA’s– union (second proof)– concatenation– Kleene closure

Page 2: Lecture 22

2

LFSA closed under set union(again)

Page 3: Lecture 22

3

LFSA closed under set union

• Let L1 and L2 be arbitrary languages in LFSA

• Let M1 and M2 be NFA’s s.t. L(M1) = L1, L(M2) = L2

– M1 and M2 exist by definition of L1 and L2 in LFSA and the fact that every FSA is an NFA

• Construct NFA M3 from NFA’s M1 and M2

• Argue L(M3) = L1 union L2

• There exists NFA M3 s.t. L(M3) = L1 union L2

• L1 union L2 is in LFSA

Page 4: Lecture 22

4

Visualization

L1 union L2

L1

L2

LFSA

M3

M1

M2

NFA’s

•Let L1 and L2 be arbitrary languages in LFSA•Let M1 and M2 be NFA’s s.t. L(M1) = L1, L(M2) = L2

•M1 and M2 exist by definition of L1 and L2 in LFSA and the fact that every FSA is an NFA

•Construct NFA M3 from NFA’s M1 and M2

•Argue L(M3) = L1 union L2

•There exists NFA M3 s.t. L(M3) = L1 union L2

•L1 union L2 is in LFSA

Page 5: Lecture 22

5

Algorithm Specification

• Input– Two NFA’s M1 and M2

• Output– NFA M3 such that L(M3) = L(M1) union L(M2)

NFA M1

NFA M2

NFA M3A

Page 6: Lecture 22

6

Use -transitionNFA M1

NFA M2

NFA M3A

a

M1

a,b a,b

a,b

M2

a

a,b a,b

a,b

M3

Page 7: Lecture 22

7

General CaseNFA M1

NFA M2

NFA M3A

M1

M2

M3

Page 8: Lecture 22

8

Construction

• Input – NFA M1 = (Q1, , q1, , A1)

– NFA M2 = (Q2, , q2, , A2)

• Output– NFA M3 = (Q3, , q3, , A3)

– What is Q3?

• Q3 = Q1 union Q2 union {p} where p is not in Q1 union Q2

– Also, we need to rename states in Q2 if any share the same name with states in Q1

– What is 3?

• 3 = 1 = 2

– What is q3?

• q3 = p, the new state not in Q1 or Q2

NFA M1

NFA M2

NFA M3A

Page 9: Lecture 22

9

Construction

• Input – NFA M1 = (Q1, , q1, , A1)

– NFA M2 = (Q2, , q2, , A2)

• Output– NFA M3 = (Q3, , q3, , A3)

– What is A3?

• A3 = A1 union A2

– What is 3?

• 3 = 1 union 2 union {(p,,q1) ,(p,,q2)}

– That is, all the old transitions plus 3(p,) = {q1, q2}

NFA M1

NFA M2

NFA M3A

Page 10: Lecture 22

10

Comments

• You should be able to execute this algorithm

• You should understand the idea behind this algorithm

• You should understand how this algorithm can be used to simplify design

• You should be able to design new algorithms for new closure properties

• You should understand how this helps prove result that regular languages and LFSA are identical– In particular, you should understand how this is used to construct an

NFA M from a regular expression r s.t. L(M) = L(r)

– To be seen later

Page 11: Lecture 22

11

LFSA closed under set concatenation

Page 12: Lecture 22

12

LFSA closed under set concatenation

• Let L1 and L2 be arbitrary languages in LFSA

• Let M1 and M2 be NFA’s s.t. L(M1) = L1, L(M2) = L2

– M1 and M2 exist by definition of L1 and L2 in LFSA and the fact that every FSA is an NFA

• Construct NFA M3 from NFA’s M1 and M2

• Argue L(M3) = L1 concatenate L2

• There exists NFA M3 s.t. L(M3) = L1 concatenate L2

• L1 concatenate L2 is in LFSA

Page 13: Lecture 22

13

Visualization

L1 concatenate L2

L1

L2

LFSA

M3

M1

M2

NFA’s

• Let L1 and L2 be arbitrary languages in LFSA

• Let M1 and M2 be NFA’s s.t. L(M1) = L1, L(M2) = L2

– M1 and M2 exist by definition of L1 and L2 in LFSA and the fact that every FSA is an NFA

• Construct NFA M3 from NFA’s M1 and M2

• Argue L(M3) = L1 concatenate L2

• There exists NFA M3 s.t. L(M3) = L1 concatenate L2

• L1 concatenate L2 is in LFSA

Page 14: Lecture 22

14

Algorithm Specification

• Input– Two NFA’s M1 and M2

• Output– NFA M3 such that L(M3) = L(M1) concatenate L(M2)

NFA M1

NFA M2

NFA M3A

Page 15: Lecture 22

15

Use -transitionNFA M1

NFA M2

NFA M3A

a

M1

a,b a,b

a,b

M2

a

a,b a,b

a,b

M3

Page 16: Lecture 22

16

General CaseNFA M1

NFA M2

NFA M3A

M1

M2

M3

Page 17: Lecture 22

17

Construction

• Input – NFA M1 = (Q1, , q1, , A1)

– NFA M2 = (Q2, , q2, , A2)

• Output– NFA M3 = (Q3, , q3, , A3)

– What is Q3?

• Q3 = Q1 union Q2

– Also, we need to rename states in Q2 if any share the same name with states in Q1

– What is 3?

• 3 = 1 = 2

– What is q3?

• q3 = q1, the initial state of Q1

NFA M1

NFA M2

NFA M3A

Page 18: Lecture 22

18

Construction

• Input – NFA M1 = (Q1, , q1, , A1)

– NFA M2 = (Q2, , q2, , A2)

• Output– NFA M3 = (Q3, , q3, , A3)

– What is A3?

• A3 = A2

– What is 3?

• 3 = 1 union 2 union {(p,,q2) | p in A1}

– That is, all the old transitions plus 3(p,) = {q2} for all p in A1

NFA M1

NFA M2

NFA M3A

Page 19: Lecture 22

19

Comments

• You should be able to execute this algorithm

• You should understand the idea behind this algorithm

• You should understand how this algorithm can be used to simplify design

• You should be able to design new algorithms for new closure properties

• You should understand how this helps prove result that regular languages and LFSA are identical– In particular, you should understand how this is used to construct an

NFA M from a regular expression r s.t. L(M) = L(r)

– To be seen later

Page 20: Lecture 22

20

LFSA closed under Kleene Closure

Page 21: Lecture 22

21

LFSA closed under Kleene Closure

• Let L be arbitrary language in LFSA

• Let M1 be an NFA s.t. L(M1) = L

– M1 exists by definition of L1 in LFSA and the fact that every FSA is an NFA

• Construct NFA M2 from NFA M1

• Argue L(M2) = L1*

• There exists NFA M2 s.t. L(M2) = L1*

• L1* is in LFSA

Page 22: Lecture 22

22

Visualization

L1*

L1

LFSA

NFA’s

• Let L be arbitrary language in LFSA

• Let M1 be an NFA s.t. L(M1) = L

– M1 exists by definition of L1 in LFSA and the fact that every FSA is an NFA

• Construct NFA M2 from NFA M1

• Argue L(M2) = L1*

• There exists NFA M2 s.t. L(M2) = L1

*

• L1* is in LFSA

M1 M2

Page 23: Lecture 22

23

Algorithm Specification

• Input– NFA M1

• Output– NFA M2 such that L(M2) = L(M1)*

NFA M1 NFA M2A

Page 24: Lecture 22

24

Use -transition NFA M1 NFA M2A

a

M1a

M2

Page 25: Lecture 22

25

General Case NFA M1 NFA M2A

M1

M3

Page 26: Lecture 22

26

Construction

• Input – NFA M1 = (Q1, , q1, , A1)

• Output– NFA M2 = (Q2, , q2, , A2)

– What is Q2?

• Q2 = Q1 union {p} where p is not in Q1

– What is 2?

• 2 = 1

– What is q2?

• q3 = p, the state not in Q1

NFA M1 NFA M2A

Page 27: Lecture 22

27

Construction

• Input – NFA M1 = (Q1, , q1, , A1)

• Output– NFA M2 = (Q2, , q2, , A2)

– What is A2?

• A2 = {p}

– What is 2?

• 2 = 1 union {(p,,q1)} union {(q,,p) | q in A1}

– That is, all the old transitions plus 2(p,) = {q1} and

2(q,) = 1(q,) union {p} for all q in A1

NFA M1 NFA M2A

Page 28: Lecture 22

28

Comments

• You should be able to execute this algorithm • You should understand the idea behind this algorithm

– Why do we need to make an extra state p?

• You should understand how this algorithm can be used to simplify design

• You should be able to design new algorithms for new closure properties

• You should understand how this helps prove result that regular languages and LFSA are identical– In particular, you should understand how this is used to construct an NFA

M from a regular expression r s.t. L(M) = L(r)– To be seen later