Math and science::Theory of Computation
Examples of decidable and undecidable languages
Consider the decidability and recognizability of some specific languages. All the below languages represent answers to certain questions. If one of the languages is decidable, then the corresponding question can be answered definitively in finite time by a Turing machine.
The acronyms used below are:
- DFA
- Deteministic finite automaton
- NFA
- Non-deterministic finite automaton
- CFG
- Context free grammar
- TM
- Turning machine
- Linear bounded machine
- Linear bounded machine (TM with finite memory).
Given a DFA, \( B \), and a string, \( w \), does \( B \) accept \( w \)? | \( A_{\text{DFA}} = \{ \langle B, w \rangle | \text{$B$ is a DFA that accepts input string $w$} \} \) | Decidable |
Given a NFA, \( B \), and a string, \( w \), does \( B \) accept \( w \)? | \( A_{\text{NFA}} = \{ \langle B, w \rangle | \text{$B$ is a NFA that accepts input string $w$} \} \) | Decidable |
Given a CFG, \( G \), and a string, \( w \), does \( G \) generate \( w \)? | \( A_{\text{CFG}} = \{ \langle G, w \rangle | \text{$G$ is a CFG that generates input string $w$} \} \) | Decidable |
Given a TM, \( M \), and a string, \( w \), does \( M \) accept \( w \)? | \( A_{\text{TM}} = \{ \langle M, w \rangle | \text{$M$ is a TM that accepts input string $w$} \} \) | Undecidable, but recognizable |
Given a LBA, \( M \), and a string, \( w \), does \( M \) accept \( w \)? | \( A_{\text{LBA}} = \{ \langle M, w \rangle | \text{$M$ is a LBA that accepts input string $w$} \} \) | Decidable! |
Given a DFA, \( B \), is the language of \( B \) empty? | \( E_{\text{DFA}} = \{ \langle B \rangle | \text{$B$ is a DFA and $\operatorname{L}(B) = \emptyset$} \} \) | Decidable |
Given a CFG, \( G \), is the language of \( G \) empty? | \( E_{\text{DFA}} = \{ \langle G \rangle | \text{$G$ is a CFG and $\operatorname{L}(G) = \emptyset$} \} \) | Decidable |
Given a TM, \( M \), is the language of \( M \) empty? | \( E_{\text{TM}} = \{ \langle M \rangle | \text{$M$ is a TM and $\operatorname{L}(M) = \emptyset$} \} \) | [...] |
Given a LBA, \( M \), is the language of \( M \) empty? | \( E_{\text{LBA}} = \{ \langle M \rangle | \text{$M$ is a LBA and $\operatorname{L}(M) = \emptyset$} \} \) | [...] |
Given two DFAs, \( A \) and \( B \), do they recognize the same language? | \( EQ_{\text{DFA}} = \{ \langle A, B \rangle | \text{$A$ and $B$ are DFAs and $\operatorname{L}(A) = \operatorname{L}(B)$} \} \) | [...] |
Given two CFGs, \( A \) and \( B \), do they recognize the same language? | \( EQ_{\text{CFG}} = \{ \langle A, B \rangle | \text{$A$ and $B$ are CFGs and $\operatorname{L}(A) = \operatorname{L}(B)$} \} \) | [...] |
Given two TMs \( M_1 \) and \( M_2 \), do they recognize the same language? | \( EQ_{\text{CFG}} = \{ \langle M_1, M_2 \rangle | \text{$M_1$ and $M_2$ are TMs and $\operatorname{L}(M_1) = \operatorname{L}(M_2)$} \} \) | [...] |
Given a Turing machine, \( M \), does it halt on a given input? | \( HALT_{\text{TM}} = \{ \langle M, w \rangle | \text{$M$ is a TM and accepts or rejects $w$} \} \) | [...] |
Given a Turning machine \( M \), does it recognize the same language as a DFA? | \( REGULAR_{\text{TM}} = \{ \langle M \rangle | \text{$M$ is a TM and $\operatorname{L}(M)$ is a regular language.} \} \) | [...] |