4: The limits of computation Flashcards
What is the Church-Turing thesis?
That any algorithmic procedure can be implemented and carried out on a Turing machine.
What does it mean for a programming language to be Turing-complete?
A programming language is Turing-complete if it is able to simulate every Turing machine (or equivalently, the Universal Turing Machine). Automatons and other machines can be said to be Turing-complete as well as programming languages so long as they too can simulate all Turing machines.
How does being Turing-complete affect the power of programming languages?
Languages are more powerful when Turing-complete rather than Turing-incomplete in that they are able to run some number of TMs that they would not be able to run otherwise. Note, however, that despite the Turing machine-based architecture of modern computers, regular languages (that can run on TMs) are a tiny number of languages so there is a large capacity of power for languages outside of Turing-completeness.
Prove that the language { | M is a TM that halts on input w} is not decidable. What does this signify?
??
This is the halting language of the halting problem proves that the halting problem is therefore unsolvable.
Prove that the set of all infinitely-long words from the alphabet {0, 1} is uncountable.
??
What is decidability?
A true/false decision problem is decidable if there exists an effective method, here a TM, for deriving the correct answer.
What is a decision problem?
A decision problem is any well-specified problem whose result is true or false.
True/false: finding whether there exist algorithms to solve decision problems is equivalent to finding whether one can solve these problems using a Turing machine. Why?
True, since by the Church-Turing thesis says there is a TM that exists to implement any algorithm (that will accept when it results in a true solution).
What is a decider?
A TM that always halts (accepts or rejects) and never infinitely loops.
True/false: all regular languages are context-free?
True.
What does it mean for a language to be Turing-recognisable?
A language is Turing-recognisable if and only if there exists a Turing Machine which will halt and accept only the strings in that language and for strings not in the language, the TM either rejects or does not halt at all.
True/False: Not all Turing-decidable languages are Turing-recognisable?
False, all Turing-decidable languages are Turing-recognisable.
Prove that all Turing-decidable languages are Turing-recognisable.
Consider a Turing-decidable language L. By assumption of the Church-Turing thesis, there is a Turing machine M such that L = L(M) and M is a decider. So, in particular, M is a Turing machine that recognises L.
True/false: the union of a finite number of countable sets is countable?
True. Since the product will also be a countable number of numbers from all the sets.
True/false: there are countably many languages that are not Turing recognisable?
False. There are uncountably many languages that are not Turing recognisable.