lecture 22
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 PresentationTRANSCRIPT
1
Lecture 22
• Closure Properties for LFSA using NFA’s– union (second proof)– concatenation– Kleene closure
2
LFSA closed under set union(again)
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
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
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
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
7
General CaseNFA M1
NFA M2
NFA M3A
M1
M2
M3
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
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
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
11
LFSA closed under set concatenation
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
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
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
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
16
General CaseNFA M1
NFA M2
NFA M3A
M1
M2
M3
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
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
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
20
LFSA closed under Kleene Closure
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
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
23
Algorithm Specification
• Input– NFA M1
• Output– NFA M2 such that L(M2) = L(M1)*
NFA M1 NFA M2A
24
Use -transition NFA M1 NFA M2A
a
M1a
M2
25
General Case NFA M1 NFA M2A
M1
M3
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
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
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