Theorem The class of recognizable languages is closed under Boolean operations.
The construction of the proof of Lemma 3 gives us a DFA that keeps track of whether or not a given string is in either or both of any pair of recognizable languages. We can modify the construction for other Boolean operations simply by selecting the appropriate set of accepting states:
• Union: Let F′
= {(q, p) | q ∈ F_{1} or p ∈ F_{2}}. Then L(A′ ) = L_{1 }∪ L_{2}.
• Relative complement: Let F′ = F1 × (Q_{2} - F_{2}). Then L(A′ ) = L_{1} -L_{2}.
• Complement: Let L1 = Σ* and use the construction for relative complement.