Diagonalization argument

From Complexity
Revision as of 02:14, 28 December 2011 by Vipul (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Definition

A diagonalization argument is a general format of argument that is used to show the existence of a language that lies outside a certain complexity class or cannot be decided by machines of a certain type.

These arguments are adaptations of the Canton diagonalization argument that shows that a set (whether finite or infinite) cannot be put in bijection with its power set.

The rough idea behind the relevance of the diagonalization argument is as follows: The number of available Turing machines is small because any Turing machine can itself be described by a string that is input to a universal Turing machine. On the other hand, the number of languages is large because it involves choosing arbitrary subsets of the set of all permissible strings. Thus, we can mimic the diagonalization argument and try to derive a contradiction from the assumption that all languages can be decided by machines.

Examples