Theorem: the NFA-decidable languages are closed under union:
If \(L_1 = L(N_1)\) and \(L_2 = L(N_2)\), then we can construct \(N\) such that \(L(N) = L_1 \cup L_2\).
Proof:
Alternatively: the set of transitions \(\Delta\) for \(N\) is the union \(\Delta_1 \cup \Delta_2 = \{s \stackrel{\emptystring}{\rightarrow} s_1, s \stackrel{\emptystring}{\rightarrow} s_2 \}\).
Theorem: the NFA-decidable languages are closed under union:
If \(L_1 = L(N_1)\) and \(L_2 = L(N_2)\), then we can construct \(N\) such that \(L(N) = L_1 \cup L_2\).
Proof:
Theorem: the NFA-decidable languages are closed under concatenation:
If \(L_1 = L(N_1)\) and \(L_2 = L(N_2)\), then we can construct \(N\) such that \(L(N) = L_1 \circ L_2\).
Proof:
Alternatively: the set of transitions \(\Delta\) for \(N\) is the union \(\Delta_1 \cup \Delta_2 \cup \setbuild{q \stackrel{\emptystring}{\rightarrow} s_2}{q \in F_1}\).
Theorem: the NFA-decidable languages are closed under concatenation:
If \(L_1 = L(N_1)\) and \(L_2 = L(N_2)\), then we can construct \(N\) such that \(L(N) = L_1 \circ L_2\).
Proof:
Theorem: the NFA-decidable languages are closed under concatenation:
If \(L_1 = L(N_1)\) and \(L_2 = L(N_2)\), then we can construct \(N\) such that \(L(N) = L_1 \circ L_2\).
Proof:
Theorem: the NFA-decidable languages are closed under Kleene star:
If \(L_1 = L(N_1)\), then we can construct \(N\) such that \(L(N) = L_1^*\).
Proof:
Let \(N_1 = (Q_1, \Sigma, \Delta_1, s_1, F_1)\) and construct
\(N = (Q, \Sigma, \Delta, s, F)\):
Alternatively: the set of transitions for \(N\) is all the transitions of \(\Delta_1\) in addition to \(s \stackrel{\emptystring}{\rightarrow} s_1\) and \(\setbuild{q \stackrel{\emptystring}{\rightarrow} s_1}{q \in F_1}\).
Theorem: the NFA-decidable languages are closed under Kleene star:
If \(L_1 = L(N_1)\), then we can construct \(N\) such that \(L(N) = L_1^*\).
Proof: