Problem of Language Unions
Given two regular languages, L and L’ are regular, then L ∪ L’ is also regular.
M = (Q, Σ, δ, q0, F)
M’ = (Q’, Σ, δ’, q0’, F’)
Make a DFA M’’ which accepts L1 ∪ L2.
- Q’’ = Q × Q’
- q0’’ = q0 × q0’
- δ’’ ((qi, qj’), a) -> (δ(qi, a), δ(qj’, a))
- F’’ = {F×Q’ ∪ Q×F’}
Proof that this works -
let s = w1w2w3…wn which is accepted.
Then ∃ r0’’, r1’’, … rn’’ st rn’’ ∈ F’’ and δ(ri’’, wi’’) = ri+1
But by definition, rn’’ is (rj, rk’) where either rj accepts s or rk’ accepts s.
Non-Deterministic Finite State Automaton
Instead of moving to one state only, it goes to a set of states.
N = (Q, Σ, δ, q0, F)
δ: (Q × (Σ, ϵ)) -> ⋃ Qi where i ∈ 𝐍