Correct : d
A Turing machine that decides a language is called a decider. The key difference between a decider and a recognizer is that a decider must always halt — it cannot loop forever on any input. It must give a definitive yes or no answer for every string it receives.
Option A — M halts on all inputs in {0,1}*
Halting on every input is a property of a decider, but halting alone is not enough. A machine could halt on every input and still give wrong answers — accepting strings it should reject or rejecting strings it should accept. So A is a necessary condition but not sufficient to define deciding. A is wrong.
Option B — M accepts all strings in L
This describes a Turing machine recognizer, also called a semi-decider. A recognizer accepts every string in L but may loop forever on strings not in L. It never has to reject — it can just run infinitely. This is weaker than deciding. B is wrong.
Option C — M rejects all strings in {0,1}* − L
This is the mirror image of B. It only covers what happens to strings outside L and says nothing about what happens to strings inside L. A machine could reject everything including valid strings in L and still satisfy C. C is wrong.
Option D — M accepts all strings in L and rejects all strings in {0,1}* − L
This is the complete and exact formal definition of a decider. For every string in the universe {0,1}*, M must halt and give the correct answer. Strings in L get accepted, strings outside L get rejected. No looping is allowed anywhere. This perfectly captures what it means to decide a language.
The word "decides" in formal language theory always means the machine is a total function over all inputs — correct acceptance for members, correct rejection for non-members, and guaranteed termination in both cases.
Correct answer: D ✓
Similar Questions
Total Unique Visitors