Equivalence of NFAs and DFAs What does it mean for two machines to be equivalent? Do the machines need to have the same states and transitions? What does it mean to say that NFAs and DFAs are equivalent? Why is it surprising that NFAs and DFAs are equivalent? Why is it useful that NFAs and DFAs are equivalent? How do you prove that every DFA has an equivalent NFA? How do you prove that every NFA has an equivalent DFA? What type of proof is this? Construct a DFA that is equivalent to the NFA. (graph2.pdf) N = ( {a,b,c}, {0,1}, d, a, {c} ) 0 1 a ab a b c c c - - The NFA has states {a,b,c}. What are the states of the DFA? The NFA has start state a. What's the start state of the DFA? The NFA has accept states {c}. What are the accept states of the DFA? What are the transitions for the DFA? Epsilon Transitions Construct a DFA that is equivalent to the NFA. (graph3.pdf) N = ( {a,b,c}, {0,1}, d, a, {a} ) 0 1 e a ab - c b - c - c a b - What's the start state of the DFA? How is the start state affected by epsilon transitions? What's the transition function of the DFA? How is the transition function affected by epsilon transitions? Classwork (You may work with a partner.) Construct a DFA that is equivalent to the NFA. (graph4.pdf) N = ( {a,b,c,d}, {0,1}, d, a, {b,d} ) 0 1 e a - b c b b b - c c cd - d - - - Corollary Regular Languages are defined by DFAs. NFAs and DFAs are equivalent. What can you conclude about NFAs and Regular Languages?