CSCE 222 Lecture 31

From Notes
Jump to navigation Jump to search

« previous | Wednesday, April 20, 2011 | next »


Undecidability

Limits of computing

Church-Turing Thesis: Anything we reasonably think of as an algorithm can be computed by a Turing Machine (specific formal model)

Short Review of Set Theory

Set of all functions from A to B denoted by BA

P(A) denotes the power set: a set of all subsets of A (2|A|)

Two sets have the same cardinality (|A|=|B| iff there exists a bijective function (one-to-one) from A onto B

|A| ≤ |B| iff there exists an injective function from A to B.

|A| < |B| iff there exists an injective function from A to B.

How to Count

  • 0 = {}
  • 1 = {0} = {{}}
  • 2 = {0,1} = { {}, {{}} }

Include all previous sets in the next set


Cantor's Theorem

Let S be any set, then |S|<|P(S)|

Countable Sets

Let N be the set of Natural Numbers

A set is called countable if there exists a surjective function from N to X

Uncountable Sets

The set NN = {f | f:N→N} is not countable.

Proof: We have |N|<|P(N)| by Cantor's theorem. Since |P(N)|=|2N| and 2N is a subset of NN, we can conclude that


Uncomputable functions exist

Consider all programs (e.g. in the Turing Machine model) that compute functions in NN

The set NN is uncountable*, and cannot be enumerated. However, the set of all programs can be enumerated (i.e. is countable)

Thus there must exist some functions in NN that cannot be computed by a program.

* Every program is of finite length (i.e. |N|), which is countable.