# Conflicting definitions of language accepted by Turing Machine?

I am reading Papadimitriou, Computational Complexity, page 24, where it is says

We say that $M$ accepts $L$ whenever for any string $x \in (\Sigma - \{\sqcup\})^*$, if $x \in L$, then $M(x) =$ yes''; however, if $x\notin L$, then $M(x) = \nearrow$.

The key issue is what happens for $x \notin L$. This definition insists that $M$ must not halt for $x \notin L$. Other sources I read, e.g., this says that if $x\notin L$ then either $M$ does not halt, or $M$ halts at no''.

Prima facie this seems to me to be a significant difference. Could someone clarify to me if these definitions are equivalent and if there is no loss of generality in talking of acceptance in the sense of Papadimitriou? Or is only one of these definitions the correct one?

• Thanks. I think your answer is right. But before I accept the answer, I just wanted to get one clarification: am I right in saying that in your equivalent machine, the no''-equivalent state is not a halting state any more? And it is just some dummy state? – Ankur Nov 30 '12 at 0:06