The decidability of a decision problem or language refers to whether there exists a Turing machine that can accept the language or solution to the problem and halts every time. Informally, it means a decidable problem is one that can be answered by a yes/no.
Definition
Decidable (Language) ^def-language
Let be a language. Then:
- is a Turing machine
- That is, accepts every string and rejects every string , and more importantly, always halts (definition of a decider)
Decidable (Decision Problem) ^def-problem
Let be a decision problem (of arity ) over an input set
- is a Turing Machine
- This implies that a problem can be verifiable. Given a potential solution to the problem, can check if the solution is correct or not.
- This also means undecidable problems cannot be verified.
Side note: Connection to logic
The problem of satisfiability actually relates to Turing machines. Propositional satisfiability is decidable, meaning for any given formula, there is always a Turing machine that accepts a proposition iff it is satisfiable, and this machine always halts. Predicate satisfiability, unfortunately, is recognisable but not decidable, meaning there is a machine that recognises satisfiable predicates, but it may run forever for unsatisfiable predicates.
Closure Properties
Just like some operations are closed for regular languages, we also have some closure properties for decidable language.
The following operations on languages preserve decidability:
- Complement
- Union
- Intersection
- Concatenation
- Kleene Star
- Set Difference (can be constructed from complement and intersections)
Theorem
T1: The complement of a decidable language is decidable ^t1
Proof for , construct a new decider , that accepts if rejects and rejects if accepts (so it does the opposite of ). Then, decides
Relatively simple. Given a decider
T2: The union of two decidable languages is decidable ^t2
Proof be the deciders for respectively. Then we can create a new decider, that simulates both deciders (since they always halt). accepts if either or accepts, and rejects otherwise. is then a decider that decides
Again, very straightforward. Let
T3: The intersection of two decidable languages is decidable ^t3
Proof be the deciders for respectively. Then we can create a new decider, that simulates both deciders (since they always halt). accepts if both and accept, and rejects otherwise. is then a decider that decides
Super similar to the closure of the union. Let
T4: The concatenation of two decidable languages is decidable
Proof and . We use the fact that a non-deterministic Turing Machines are equivalent to deterministic TMs and multi-tape Turing machines are equivalent to single-tape Turing Machines. Construct a non-deterministic, two-tape Turing machine that, on input :
Assume we have deciders
- Scans the input tape until it encounters a blank symbol.
- For each character read along the way, non-deterministically choose to overwrite one of the characters with a ‘marked’ version, call it
- This also applies to the first blank symbol read, it can be marked as well.
- Copy every character to the left of onto the work tape.
- Then, run on the work tape. If it accepts, continue to the next step. Else, rejects.
- Clear out the work tape (replace every non-blank character with a blank)
- Copy the remaining characters from the input tape ( and everything to the right of it) onto the work tape
- Run on the work tape. If it accepts, accepts
Essentially, this Turing machine tries to make a partition for every location in the word, and sees if that mark is a valid concatenation.
T5: The Kleene star of a decidable language is decidable
Proof . We use the fact that a non-deterministic Turing Machines are equivalent to deterministic TMs and multi-tape Turing machines are equivalent to single-tape Turing Machines. Construct a non-deterministic, two-tape Turing machine that, on input :
This proof is very similar to the one for concatenation. Assume we have a decider
- Scans the input tape until it encounters a blank symbol.
- For each character read along the way, non-deterministically choose to overwrite one of the characters with a ‘marked’ version, call it
- This also applies to the first blank symbol read, it can be marked as well.
- Copy every character to the left of onto the work tape.
- Then, run on the work tape. If it accepts, continue to the next step. Else, rejects.
- Clear out the work tape (replace every non-blank character with a blank)
- Now scan the input tape from to the blank symbol, and again non-deterministically choose a new character to be marked as
- Repeat the process until there are only blank symbols left to scan.
- accepts.