Skip to main content
added 2 characters in body
Source Link
Denis
  • 1.4k
  • 6
  • 9

The trick to see if a language is decidableundecidable is to ask yourself the question "can I code a computation of Turing machine using this language" ? Or more generally, "does it get as complicated as what happens in a computation ?". Of course sometimes this coding is hard, and it helps to know a list of undecidable problems to reduce to (like Post correspondance problem). If you don't find such a reduction, try thinking of algorithms to decide your language. For instance the language of lists of numberintegers in increasing orders is not finite, but it is easy to design an algorithm testing whether a list is sorted in increasing order, so this language is decidable. And for a lot of languages, we don't know about their decidability, so this is a hard question.

The trick to see if a language is decidable is to ask yourself the question "can I code a computation of Turing machine using this language" ? Or more generally, "does it get as complicated as what happens in a computation ?". Of course sometimes this coding is hard, and it helps to know a list of undecidable problems to reduce to (like Post correspondance problem). If you don't find such a reduction, try thinking of algorithms to decide your language. For instance the language of lists of number in increasing orders is not finite, but it is easy to design an algorithm testing whether a list is sorted in increasing order, so this language is decidable. And for a lot of languages, we don't know about their decidability, so this is a hard question.

The trick to see if a language is undecidable is to ask yourself the question "can I code a computation of Turing machine using this language" ? Or more generally, "does it get as complicated as what happens in a computation ?". Of course sometimes this coding is hard, and it helps to know a list of undecidable problems to reduce to (like Post correspondance problem). If you don't find such a reduction, try thinking of algorithms to decide your language. For instance the language of lists of integers in increasing orders is not finite, but it is easy to design an algorithm testing whether a list is sorted in increasing order, so this language is decidable. And for a lot of languages, we don't know about their decidability, so this is a hard question.

Source Link
Denis
  • 1.4k
  • 6
  • 9

The trick to see if a language is decidable is to ask yourself the question "can I code a computation of Turing machine using this language" ? Or more generally, "does it get as complicated as what happens in a computation ?". Of course sometimes this coding is hard, and it helps to know a list of undecidable problems to reduce to (like Post correspondance problem). If you don't find such a reduction, try thinking of algorithms to decide your language. For instance the language of lists of number in increasing orders is not finite, but it is easy to design an algorithm testing whether a list is sorted in increasing order, so this language is decidable. And for a lot of languages, we don't know about their decidability, so this is a hard question.