My friend does not like the conversion process from an NFA t
My friend does not like the conversion process from an NFA to DFA, as it takes too long. He wants to, given two NFAs N_1 = (Q_1, Sigma, delta_1, q_0, 1, F_1) and N_2 = (Q_2, sigma, delta_2, q_0, 2, F_2), to produce an NFA for L(N_1) L(N_2), since he is in a hurry, he only wants to make an NFA for their intersect on with |Q_1| times |Q_2| states. His method to produce an NFA N = (Q, Sigma, delta, q_0, F) is as follows (very similar to the product construction for DFAs): Q = Q_1 times Q_2 q_0 = (q_0, 1, q_0, 2) F = F_1 times F_2 delta((q_1, q_2), a) = [(a_1\', q_2\'): q_1\' subset delta_1(q_1, a), q_2\' subset delta_2(q_2, a) for all q_1 subset Q_1, q_2 subset Q_2, a subset Sigma. delta((q_1, q_2), epsilon) = {(q_1\', q_2\'): q_1\' subset delta_1(q_1, epsilon) (q_1), q_2\' subset delta_2(q_2, epsilon) (q_2)} for all q_1 subset Q_1, q_2 subset Q_2. Is my friend correct in saying that L(N) = L(N_1) L(N_2)? It is true because the result satisfies the formal definition of an NFA, and therefore its language is regular. It is true because one can observe computations in the original two machines and see that if one existed for them, then one exists for the new machine (and vice versa). It is not true because the transition function corresponds to the union of the machines, not the intersection. It is not true because the transition function only needs to be defined for at least one character a instead of all then, and we cannot know that in advance because the machine is inherently non deterministic. It may be true for some NFAs, and not for other.
Solution
(B) It is true because one can observe the computation in the orignal two machines and see if one existed for then, then one exists in the new machine.
As we can see in the transition function.
<q1,q2 a > = <qa qc>
Which means
<q1,a > = <qa >
<q2 a > = <qc>
The below two transition existed and hence they will exist in the intersection too and hence the answer.
