Transcript Module 21
Module 21
• Closure Properties for LFSA using NFA’s
– From now on, when I say NFA, I mean any
NFA including an NFA-l unless I add a specific
restriction
– union (second proof)
– concatenation
– Kleene closure
1
LFSA closed under set union
(again)
2
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
3
Visualization
•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
L1
L1 union L2
L2
LFSA
M1
M3
M2
NFA’s
4
Algorithm Specification
• Input
– Two NFA’s M1 and M2
• Output
– NFA M3 such that L(M3) = ?
NFA M1
NFA M2
A
NFA M3
5
Use l-transition
NFA M1
NFA M2
a
A
NFA M3
a
l
M1
a,b
a,b
a,b
l
a,b
a,b
a,b
M2
M3
6
General Case *
M1
NFA M1
NFA M2
A
NFA M3
l
l
M2
M3
7
Construction *
NFA M1
NFA M2
A
NFA M3
• Input
– NFA M1 = (Q1, S1, q1, d1, A1)
– NFA M2 = (Q2, S2, q2, d2, A2)
• Output
– NFA M3 = (Q3, S3, q3, d3, A3)
– What is Q3?
• Q3 =
– What is S3?
•
S3 = S1 = S 2
– What is q3?
• q3 =
8
Construction
NFA M1
NFA M2
A
NFA M3
• Input
– NFA M1 = (Q1, S1, q1, d1, A1)
– NFA M2 = (Q2, S2, q2, d2, A2)
• Output
– NFA M3 = (Q3, S3, q3, d3, A3)
– What is A3?
• A3 =
– What is d3?
•
d3 =
9
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
10
LFSA closed under set
concatenation
11
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
12
Visualization
• 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
L1
L1 concatenate L2
L2
LFSA
M1
M3
M2
NFA’s
13
Algorithm Specification
• Input
– Two NFA’s M1 and M2
• Output
– NFA M3 such that L(M3) =
NFA M1
NFA M2
A
NFA M3
14
Use l-transition
a
NFA M1
NFA M2
A
NFA M3
a
M1
l
a,b
a,b
a,b
a,b
a,b
a,b
M2
M3
15
General Case
M1
NFA M1
NFA M2
A
NFA M3
l
l
M2
M3
16
Construction
NFA M1
NFA M2
A
NFA M3
• Input
– NFA M1 = (Q1, S1, q1, d1, A1)
– NFA M2 = (Q2, S2, q2, d2, A2)
• Output
– NFA M3 = (Q3, S3, q3, d3, A3)
– What is Q3?
• Q3 =
– What is S3?
•
S3 = S1 = S 2
– What is q3?
• q3 =
17
Construction
NFA M1
NFA M2
A
NFA M3
• Input
– NFA M1 = (Q1, S1, q1, d1, A1)
– NFA M2 = (Q2, S2, q2, d2, A2)
• Output
– NFA M3 = (Q3, S3, q3, d3, A3)
– What is A3?
• A3 =
– What is d3?
•
d3 =
18
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
19
LFSA closed under Kleene
Closure
20
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
21
Visualization
• Let L be arbitrary language
in LFSA
• Let M1 be an NFA s.t. L(M1)
=L
L1
– 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
L1*
LFSA
M1
M2
NFA’s
22
Algorithm Specification
• Input
– NFA M1
• Output
– NFA M2 such that L(M2) =
NFA M1
A
NFA M2
23
Use l-transition
NFA M1
NFA M2
l
a
M1
A
l
a
M2
24
General Case *
NFA M1
A
NFA M2
l
l
M1
l M
2
25
Construction
NFA M1
A
NFA M2
• Input
– NFA M1 = (Q1, S1, q1, d1, A1)
• Output
– NFA M2 = (Q2, S2, q2, d2, A2)
– What is Q2?
• Q2 =
– What is S2?
•
S2 = S1
– What is q2?
• q2 =
26
Construction
NFA M1
A
NFA M2
• Input
– NFA M1 = (Q1, S1, q1, d1, A1)
• Output
– NFA M2 = (Q2, S2, q2, d2, A2)
– What is A2?
• A2 =
– What is d2?
•
d2 =
27
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)
28
– To be seen later