Undecidability of emptiness for promised recursive deciders #
Recursive-language membership is uniformly decidable when a raw program code is
promised to halt on every word. Emptiness is not. The reduction below maps an
arbitrary source program c to an always-halting decider which, on a word of
length k, accepts exactly when c halts on input 0 within bounded-evaluation
budget k.
Every generated target code satisfies RecursiveDeciderCode.Valid, independently
of whether the source computation halts. Over a nonempty alphabet there are words
of every length, so its language is empty exactly when the source does not halt.
This would turn a promise algorithm for emptiness into a decider for the halting
problem.
The nonempty-alphabet assumption is necessary: over an empty alphabet the only
word is [], and emptiness of a valid decider is a single membership query.
The total bounded-halting test used in the emptiness reduction. The word length supplies the finite evaluation budget.
Equations
Instances For
The bounded-halting test is computable jointly in the source code and word.
Effectively compile the bounded-halting test into a raw recursive-language decider code.
Equations
Instances For
The reduction from source codes to bounded-halting deciders is computable.
Every code produced by the reduction is valid, whether or not the source program halts.
Membership in the reduced language is precisely bounded halting.
Over a nonempty alphabet, the reduced valid language is empty exactly when the source program does not halt on input zero.
A valid raw code denoting the empty language exists over every computably encoded alphabet.
Emptiness is not computable even under the semantic promise that the raw program code is an always-halting word decider.
There is no computable emptiness test for the promised raw-code presentation of the class of recursive languages.