- Construct $N = $ “On input $x:$
- Run $M$ in parallel on all inputs $yin Sigma^*$.
- If $M$ halts on any $y$ then accept, otherwise loop.“
- Query the oracle to determine whether $langle N rangle in HALT_epsilon$.
- If the oracle answers YES, accept; if NO, reject.
Note: My notation for TM algorithms is based on “Theory of Computation” by Sipser. Step 2 for the definition of $N$ is a bit redundant, but in this type of context, is it okay to say something like “If $M$ halts on any $y$, then halt?” I think all I have shown here is that $L$ is decidable relative to $HALT_epsilon$. I don’t know if this implies that $L$ is recognizable. Can a Turing reduction be used in this manner to show that a language is recognizable? I’m confused as to what it means for a language to be recognizable. The task seems obvious if we go back to the definition: If some TM $R$ accepts strings in $L$, then $R$ recognizes $L$. So what if $R=D^{HALT_epsilon}$, and in the body of $D^{HALT_epsilon}$ we use some crazy reduction like $N$? In general, to show recognizability, can we just come up with a reduction like $N$ that may or may not halt? Is it a problem that $N$ will never halt if $langle M rangle notin L$?
Asked By : baffld
Answered By : Raphael
- Simulate one step of $M$ on $1$.
- Simulate two steps of $M$ on $1$ and $2$ each.
- Simulate three steps on $1$, $2$ and $3$ each.
$quadvdots$
- Terminate and accept once any of the simulated computations terminates and accepts.
If there is a halting input of $M$, this dovetailed simulation certainly finds it after finite time. If there is none, it loops and is correct in doing so. This is, in essence, your $N$ (with an explanation why it’s actually a computable function). You don’t need the rest of the reduction in order to show that $L$ is semi-decidable.
Best Answer from StackOverflow
Question Source : http://cs.stackexchange.com/questions/22929