The Emptiness problem is a decision problem asks if a given machine model rejects every word. It is decidable for DFAs and NFAs
Problem Specification(s)
General
Given a machine , does reject (not accept) every string ?
Decidability
The decidability of the problem requires a restructuring. Let be a language given by the TM encoding of
Then, we need to check if is T-decidable.
The FSA Emptiness Problem is decidable ^theorem-fsa
That is,
Proof
Surprisingly straightforward (a somewhat causal proof by TM Simulation):
- We can use any exhaustive graph search algorithm (such as BFS or DFS) to check if there is a path from the initial state of to any accept state.
- By the Church-Turing Thesis, this algorithm can be run on a Turing Machine, .
- If such a path exists, reject (because it must accept some given by the path, hence non-empty). Else accept.
- will always halt because will have finite number of states, and consumes one character from the input string at every step. At some point, the entire (finite) input string is consumed, so we can stop.
The TM Emptiness Problem is undecidable ^theorem-tm
Proof
This is a proof by reduction that depends on R1:
- The acceptance problem reduces to the emptiness problem.
- The acceptance problem is undecidable
- Therefore, the emptiness problem is undecidable.
Reductions
R1: TM Emptiness reduces to TM Equivalence
That is,
Proof
Assume is the decider to the TM equivalence problem, it takes in and decides f . We now construct a new TM the decides :
- needs to take in an input and decide if is empty
- First, create a new TM decider called which rejects everything. This can be easily achieved by making a ‘dead state’. Then
- Then, run on . Since is a decider, it will accept if (and then is ‘empty’) and rejects if is not empty.
Thus, we have a decider that determines if for a given . Hence, we have proven the reduction.