I am very new to the computational theory, and I was just trying to figure about one question. Is the following statement true? L(M) = L(M1) ∩ L(M2), where M1 and M2 are DFAs.
I was thinking about the case when L(M1) = {} and L(M2) ≠ {}. I got that L(M) = L(M1) ∩ L(M2) = {}. However, I am not sure if L(M) can accept both L(M1) and L(M2). I remember something about that every language contains an empty set.
The intersection of two sets is the set containing exactly those elements which are in both sets. As you correctly note, the intersection of the empty set with a non-empty set is the empty set. That is, if one of the sets (or both) is empty, the intersection must be empty. Why? Because there are no elements at all in the empty set, so there can't be any elements simultaneously in both sets.
The intersection of two sets is always a subset of each of the sets in the intersection. A set is a subset of another set if all elements of the first set belong to the second set. If the first set is empty, it is trivially (or vacuously) true that "all" elements of the first set belong to the second; there are no elements to serve as a counterexample. Therefore, the empty set is a subset of every set, including itself.
A DFA for the intersection of two languages does not accept both languages. If you want a DFA to accept any string in either, rather than both, of the initial languages, the operation you're looking for is the union, not the intersection. The symbol is the same as for intersection, just flipped upside down like a big letter U.