Problem Specification(s)

Machine Models

Given a machine and a string , does accept ?

Generative Models

Given a CFG

Decidability

The decidability of the problem requires a restructuring. Let be a language given by the TM encodings of and

Then, we need to check if is T-decidable.

DFA Acceptance Problem is decidable ^theorem-dfa

That is,

NFA Acceptance Problem is decidable ^theorem-nfa

That is,

TM Acceptance Problem is undecidable ^theorem-tm

That is:

This proof requires the assumption that some languages are unrecognisable. Let be the unrecognisable language constructed previously. Assume that is decidable. Then there exists a Turing machine, that is a decider for it. For any , we have:

Now construct a new Turing machine that simulates , called :

  • only takes in one argument, that being a machine code, .
  • then simulates on , that is, it uses to check if accepts .
  • If accepts, rejects, and vice versa (this makes ) a decider as well.
  • So we have:

Then the language of is precisely the same as :

Which is proven to be unrecognisable. Thus, if we tried to feed in to , because is unrecognisable, cannot decide it and thus cannot be a decider for the TM acceptance problem.

Reductions

R1: The TM acceptance problem reduces to the Halting Problem

R2: The TM acceptance problem reduces to the TM Emptiness Problem

Applications

  • If the TM acceptance problem, was decidable, it would imply that satisfiability in predicate logic would be decidable (since the decider could be converted into an algorithm)
  • The TM acceptance problem, is useful in static code analysis, as it can determine if a given program satisfies its specifications (accepts some input strings) without actually running the program. It also helps identify security vulnerabilities and runtime errors.
    • This has critical applications in defence and medicine
  • Since the DFA acceptance problem, is decidable, any program that can be modelled as an equivalent DFA can be ‘checked’ by a Turing machine.