Take the 2-minute tour ×
Computer Science Stack Exchange is a question and answer site for students, researchers and practitioners of computer science. It's 100% free, no registration required.

Theory of computation tells us that there are some languages that cannot be recognized by a Turing machine. That is, there are well-defined problems for which no Turing machines can provide an algorithm which solves the problem.

Many problems that are undecidable seem to have a reduction to the Halting problem: Matyasevich's proof of the undecidability of Diophantine equations uses the Halting problem, the machine equivalence problem uses the Halting problem as well...

The question is: are all undecidable problems (in the sense of Turing) reducible to the Halting problem?

If so, is there a proof of this? If not, is there a counterexample of such a problem that provably cannot be reduced or mapped to the Halting problem.

share|improve this question

marked as duplicate by David Richerby, Yuval Filmus, Juho, Raphael Jun 15 at 20:10

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

    
Cross-posted on cstheory: cstheory.stackexchange.com/questions/24893/…. –  Yuval Filmus Jun 15 at 9:05
add comment

3 Answers 3

No. As I recall a practical example can be made out of a function inequivalence statement. More abstractly, there is something called Turing-degree in undecidability and infinite levels of "hardness". Each level has it's own Halting Problem strictly harder than those at every level lower. Check out the first section of this Scott Aaronson lecture and what he calls a "Super Halting Problem".

share|improve this answer
    
Indeed and thanks David. I got confused thinking about this and flipped a bit in the problem statement. Edited. –  Tim Jun 15 at 8:54
    
In addition, the Halting problem is recursively enumerable. Even without a Turing degree argument, it is easy to come up with problems that don't reduce to the halting problem. –  tAllan Jun 15 at 20:16
add comment

The proof that the halting problem is undecidable relativizes, that is, it still works if the Turing machine is given access to an oracle. In particular, the halting problem for Turing machines with oracle access to the (usual) halting problem isn't solvable by Turing machines with oracle access to the (usual) halting problem. This implies that this generalized halting problem cannot be many-one reduced to the (usual) halting problem.

More generally, we can construct a scale of problems, each one harder than the previous one, by adding the appropriate oracle. This is the classical "jump" operator of recursion theory. If you're interested in this sort of thing, find a textbook or lecture notes on recursion theory.

share|improve this answer
add comment

The halting problem is recursively enumerable, but not co-recursively enumerable. That is, it is recognizable, but it's compliment is not. You are sure to halt on a string in the language, but not on a string that is not in the language.

Implication of not $r.e.$ and not $co\text{-}r.e$ propagate from left to right over a reduction. Implication of $r.e.$ and $co\text{-}r.e$ propagate from right to left over a reduction.

Because the halting problem is $r.e.$, any problem that reduces to it is $r.e.$ So if all undecidable languages reduced to the halting problem, then all undecidable languages would be $r.e.$, but some undecidable languages are neither $r.e.$ nor $\text{co-r.e.}$, and some are $co\text{-}r.e$ but not $r.e.$

An example of an undecidable language that doesn't reduce to $\text{HALT}$ is $\text{EMPTY} = \{ <M> : \text{M is a Turing machine and } L(M) = \emptyset\}$

$\text{EMPTY}$ is a language which is $co\text{-}r.e$, but not $r.e.$. This is because as soon as you find a string that $M$ accepts, you know that L(M) is not empty, and if a string is in $L(M)$ it is guaranteed to be accepted and therefore halt, in a finite amount of time. But if $M$ doesn't accept any strings, you may never know that as the machine may diverge or go into an infinite loop on a string and never halt.

Another language that doesn't reduce to $\text{HALT}$ is $ FINITE = \{<M> : M \text{ is a Turing machine and L(M) is finite } \}$, which is neither $r.e.$ nor $\text{co-r.e.}$

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.