ε-NFA to NFA: removing ε-transitions
ε-moves make an NFA easy to design and harder to trace. This construction keeps the same states and removes every ε-move, by asking one question per state: where could I be without reading anything?
Three loops joined by ε-moves. Each step lights up the ε-closure of one state and lists the transitions that replace the ε-moves.
Compute the ε-closure of every state
The ε-closure of p is p itself plus everything reachable from it through ε-moves alone.
Rebuild the transitions through the closures
From p, reading a, go to every state the original machine could reach: ε-moves first, then a, then ε-moves again.
Fix the accepting states
p becomes accepting if its ε-closure contains an accepting state — it could have slipped there without reading anything.
Delete the ε-moves and anything left unreachable
A state that could only be entered through an ε-move is no longer reachable and is dropped.
Is the result a DFA?
No. It has no ε-moves, but a state can still have several transitions on the same symbol. Convert to a DFA afterwards if you need determinism.
Do I need this before converting to a DFA?
Not in AutomataVerse — the NFA to DFA converter handles ε-moves directly. It is mostly useful for understanding, and for courses that teach the two steps separately.
Does the number of states change?
It never grows. It shrinks when a state was only reachable through ε-moves.