[Math] Using halting problem to prove undecidable problems

logic

Let $\alpha_1$; $\alpha_2$ be any two different finite binary strings. Let $E_{\alpha_1\alpha_2}$ be the set of all codes of programs M such that M does not distinguish
between the input $\alpha_1$ and the input $\alpha_2$. That is, if M halts on one of
these inputs, it halts on the other as well, and in that case, M($\alpha_1$) =
M($\alpha_2$). Prove that the decision problem defined by $E_{\alpha_1\alpha_2}$ is not decidable.

I think I can prove that it's undecidable using the halting problem but I am not sure how to use it. What is a general method to solve these types?

Best Answer

Reduction. That is almost always the method that we use. Details of the reduction process differ, depending on the problem. But we almost always show that if there were an algorithm for our specific kind of problem, then we could use that algorithm as a subroutine to produce an algorithm that solves the Halting Problem.

Define machine $M_n$ as follows. Given input $0$, $M_n$ produces output $111$ and halts. Given any other input, such as $1$, $M_n$ produces the number $n$, then imitates the behaviour of a universal Turing machine on input $(n,n)$, except that if it halts, it produces output $111$. The index of $M_n$ is a recursive function of $n$.

If we had a general algorithm for determining whether a machine has the same halting behaviour on inputs $0$ and $1$, we could apply it to the machines $M_n$, and have an algorithm for determining whether a universal Turing machine halts on input $(n,n)$. However, the usual diagonalization argument shows that there is no such algorithm.

Related Question