0

Recognizable vs Decidable

I think I understand the definition of Turing-recognizable and Turing-decidable, but still there's few subtle details I did not catch so far.

Can you explain in details why all decidable languages are also Turing-acceptable languages? Why in details the he reverse is not true?

EDIT

For a language decidable, if $x \in T^c$, does it have to terminate in a finite number of step? Is that the major difference between a Turing-recognizable and Turing-decidable? In other word, the language is decidable iff there a Turing-Machine which accepts a word of $L$ in finite number of steps and reject a word of $L^c$ in a finite number of steps.

Robert
  • 19
  • 2
    There's lots of details in the linked question and its answers. If you need more, you'll have to specify what it is that confuses you more specifically than just, effectively, "please tell me all of that once again". – Troposphere Apr 12 '21 at 01:20
  • @Troposphere I modified the question. – Robert Apr 12 '21 at 01:29
  • @BrianBorchers It is very kind of you to put this link there, but I have the same in the question. I ask the question here because I did not understand the subtle details of this specific answer. So no, it does not answer my question – Robert Apr 12 '21 at 01:48
  • Concerning your edit: Yes, "terminating" always means "terminating in a finite number of steps." If the computation needs more than finitely many steps, then there is no last step (there can only be finitely many steps before the given one, so there must be some after it, too). But terminating means reaching a step after which there are no others (in some definitions accepting might mean an eternal loop around a final state - these steps should not be counted, if your definition of acceptance includes them; the decision is still reached in finitely many steps). – Peter Leupold Apr 12 '21 at 08:25

1 Answers1

2

Edit: Let me clarify the definition. We say that a Turing machine $T$ decides language $L$ if, and only if, for every $x$, $T$ halts, and $T$ halts with "true" if $x \in L$ and "false" otherwise.

We say that a Turing machine $T$ recognises language $L$ if, and only if, for all $x$, $T$ halts with value "true" iff $x \in L$.

If $T$ decides a language, it halts on every input and tells you whether that input is in $L$. In other words, $T$ is required to "always tell the truth" about whether $x \in L$.

If $T$ recognises a language, it is obligated to halt whenever $x \in L$. It is also obligated "never to lie" - if $T$ halts on $x$, then it must report accurately whether $x \in L$. On the other hand, if $x \notin L$, $T$ has no obligation to halt.

Mark Saving
  • 33,541
  • I modified the question. Can you take that in mind in the answer – Robert Apr 12 '21 at 01:30
  • So the edit I have made in the question is correct. Am I correct? (I have made a correction of my question). I have +1 your answer. – Robert Apr 12 '21 at 01:51
  • I would accept your question if you could answer my question – Robert Apr 12 '21 at 02:11
  • @Robert Yes, the difference is that when $x \in L^c$, $T$ must halt when $T$ decides $L$, but $T$ does not have to halt if $T$ merely recognises $L$. – Mark Saving Apr 12 '21 at 02:13
  • I am Italian, so English is not my first language. Can you rewrite your last sentence in simple words so I can understand it. What do you mean by "T merely recognises L"? Does my definition right or not? – Robert Apr 12 '21 at 02:17