Equivalence of FA

2 min read Updated Fri Apr 24 2026 07:36:29 GMT+0000 (Coordinated Universal Time)

If 2 automata models (regardless of their types: DFA, NFA, NFA-Λ) are equivalent iff they recognize the same language.

Any language can be recognized by a DFA, or an NFA, or an NFA-Λ\Lambda.

NFA to DFA

Based on the subset construction method.

Suppose M=(Q,Σ,q,A,δ)M=(Q, \Sigma, q, A, \delta) is a NFA accepting LΣL \subseteq \Sigma^*. There is a DFA M=(Q1,Σ,q1,A1,δ1)M'=(Q_1, \Sigma, q_1, A_1, \delta_1) where:

  • Q1=2QQ_1 = 2^Q
  • q1={q}q_1 = \{q\}
  • δ1(S,a)=rSδ(r,a)\delta_1(S, a) = \bigcup_{r \in S} \delta(r, a) for SQS \subseteq Q and aΣa \in \Sigma
  • A1={SQSA}A_1 = \{S \subseteq Q | S \cap A \neq \varnothing\}

The equivalency can be proven using induction on the length of the input string.

A set of states in an NFA corresponds to a single state in the DFA, which means the DFA tracks all possible states the NFA could be in after reading an input.

NFA-Lambda to NFA

Suppose M=(Q,Σ,q0,A,δ)M=(Q, \Sigma, q_0, A, \delta) is an NFA-Λ\Lambda accepts a language LΣL \subset \Sigma^*. There exists a NFA M1=(Q,Σ,q0,A1,δ1)M_1=(Q, \Sigma, q_0, A_1, \delta_1) that accepts the same language. Here:

δ1(q,a)=Λ(δ(Λ(q),a))δ_1(q,a) = \Lambda( \delta( \Lambda(q), a ) )

and

A1={A{q0}if Λ({q0})A in MAotherwiseA_1 = \begin{cases} A \cup \set{q_0} & \text{if } \Lambda(\set{ q_0 }) \cap A \neq \emptyset \text{ in } M \\ A & \text{otherwise} \end{cases}

If Λ(q0)\Lambda(q_0) contains an accepting state, q0q_0 must be included in the accepting states of the NFA.

Steps:

  1. Find Λ\Lambda-closure of every state
  2. Build new transitions using the closure
    For all states qq and input symbols aa, take the Λ\Lambda-closure. Follow aa-transitions. Take the Λ\Lambda-closure again. Build new transitions from qq to the final set of states.
  3. Remove all Λ\Lambda transitions
  4. If Λ(q0)\Lambda(q_0) includes an accepting state, make q0q_0 an accepting state in the new NFA.