Motivation
When combining NFAs, it is useful to have “silent” transitions that consume no input.
Definition
An NFA-ε is an NFA with an additional ε-transition relation τ⊆Q×Q.
We write qεq′ if (q,q′)∈τ.
Full Specification
M=(Q,Σ,Δ,τ,s,F) where:
- Q,Σ,s,F as before
- Δ⊆Q×Σ×Q: labelled transitions
- τ⊆Q×Q: ε-transitions
Extended Transition Relation
Epsilon Closure
The ε-closure of state q, written E(q), is the set of states reachable from q via only ε-transitions:
E(q)={q′:qε∗q′}
where ε∗ is the reflexive-transitive closure of ε.
Extended Transition
Define q⇒wq′ inductively:
q⇒εqq⇒awq′qaq′′q′′⇒wq′q⇒wq′qεq′′q′′⇒wq′
Language
w∈L(M)⟺∃qf∈F.s⇒wqf
Example
NFA-ε for a∗b:

- Q={q0,q1,q2}
- q0aq0 (loop on ‘a’)
- q0εq1 (epsilon transition)
- q1bq2 (accept on ‘b’)
- F={q2}
Accepts: b, ab, aab, aaab, … (strings of a‘s ending in b)
Epsilon Closure Example
For the above NFA:
- E(q0)={q0,q1} (can reach q1 via ε)
- E(q1)={q1}
- E(q2)={q2}
Eliminating Epsilon Transitions
Any NFA-ε can be converted to an equivalent NFA without ε-transitions.
Construction
Given M=(Q,Σ,Δ,τ,s,F), define NFA M′=(Q,Σ,Δ′,s′,F′):
Δ′={(q,a,q′):∃q′′.qε∗q′′∧q′′aq′}
s′=s
F′=F∪{q:E(q)∩F=∅}
Using Epsilon Transitions for Concatenation
To recognise L1⋅L2, connect NFAs:
- Add ε-transitions from accepting states of M1 to start of M2
- Start state is s1
- Accepting states are those of M2

Using Epsilon for Union
To recognise L1∪L2:
- Create new start state snew
- Add ε-transitions to s1 and s2
- Accepting states are F1∪F2

Summary
- NFA-ε allows transitions that consume no input
- E(q) = set of states reachable via ε-transitions only
- ε-transitions simplify construction of combined automata
- Any NFA-ε can be converted to equivalent NFA