More Uncomputability




CS254

Chris Pollett

Feb 13, 2017

Outline

Techniques for Proving Uncomputability

  1. Diagonalization: Given a string `\alpha` let `L_{\alpha}` be some language determined by it. For example, if we view `alpha` as encoding a TM, we could let `L_{\alpha}` be the language decided by `M_{\alpha}`. Let `P_n` be a sequence of sets of ordered pairs of strings with the properties:
    (a) `\forall \langle alpha, x \rangle \exists N \forall n \geq N \langle alpha, x \rangle in P_n iff \langle alpha, x \rangle in P_N`.
    (b) `\forall \alpha \exists N \exists x \forall n > N x \in L_{\alpha} iff x !in P_n`.
    Property (a) ensures `P := lim_{n-> infty}P_n` is well-defined. Property (b) shows that there is no `\alpha` such that `P = L_{alpha}`.
    Diagonalization was used in the proof that UC was not computable, but we didn't frame it exactly like the above. To we see could have though, define `UC_0 = O/`. For `n> 0`, define `UC_n = UC_{n-1}` if `n` viewed as a boolean string does not code an ordered pair `\langle alpha, alpha \rangle`. Otherwise, if `n = \langle \alpha, \alpha \rangle` for some `alpha` then if `M_{\alpha}(\alpha) != 1` define `UC_n = UC_{n-1} \cup \{\langle \alpha, \alpha \rangle\}` otherwise define `UC_n = UC_{n-1}`. One can verify `UC_n` satisfy (a) and (b) and that `UC` from before equals `lim_{n-> infty} UC_n`.
  2. Closure Properties: As an example of this technique, first denote, given a language `L`, `bar{L}` for its complement. Notice by changing the final output of a Turing Machine from 0 to 1 and vice-versa, one can show that, if a language is computable, then its complement is computable. Therefore, we know `\bar{UC}` is not computable, because, if it were, its complement `UC` would be as well.
  3. Reduction: Here the idea is that if we know problem `P` is not computable, and if we have a problem `P'` together with a computable function `f` such that `x in P` iff `f(x) in P'`, then we know `P'` is not computable. This is because if `P'` were computable, then we could compute `P` by running `f` followed by the procedure for `P'`.

Recursive Functions

Computability and Recursiveness are the Same

Theorem.
(a) The following notions are equivalent:
  1. A computable function of the natural numbers
  2. A total recursive function of the natural numbers
(b) The following notions are equivalent:
  1. The class of languages computably reducible to the Halting problem.
  2. The class of languages which are domains of Turing Machines. A string x is in the domain of machine M if M on input `x` halts.
  3. The class of languages which are the domains of a partial recursive function.
  4. The class of languages that can be written as `exists y in {0,1}^{\star} R(x, y)` where `R(x, y)` is decidable.
  5. The class of decision problems `D` such that
    `y in D \iff exists vec{x} [p(\vec{x}, y) = q(\vec{x}, y)]`
    where `p` and `q` are polynomials.

Remarks

  1. We call the equivalent classes of (b), the recursively enumerable (r.e.) or computably enumerable (c.e) sets. (b).5 is a cool result proven by Matiyasevich (1970) solving the Hilbert's 10th problem.
  2. I will tend to use the words set and language interchangeably. If `P` is a set of tuples of strings, I will often use the predicate notation, `P(x_1, ..., x_n)`, to mean `(x_1, ..., x_n) \in P`.
  3. The set of strings/language accepted by a TM, M, is defined to be those string on which `M` halt with 1 on the output tape.
  4. Given a language `L` let the complement of the language, `bar{L}` consist of those string not in `L`. We've already argued that the `bar{UC}` is not recursive. It is also not r.e. So the r.e. are not all of the undecidable sets. `bar{UC}` is in a class called co-r.e. One can show any co-r.e. set can be written as `forall y in {0,1}^{\star} R(\vec{x}, y)` where `R(x, y)` is decidable.
  5. Define `\Sigma_0 = \Pi_0 = R` where `R` is the class of decidable/recursive languages. Define `Sigma_n` to contain `Sigma_{n-1} cup Pi_{n-1}` and if `R(x,y)` is `Sigma_n` so is `exists y in {0,1}^{\star} R(\vec{x}, y)`. Define `\Pi_n` to contain `Sigma_{n-1} cup Pi_{n-1}` and if `R(\vec{x},y)` is `Pi_n` so is `forall y in {0,1}^{\star} R(x, y)`. It is known that `\Sigma_n \ne \Pi_n` and `\Sigma_{n+1}` strictly contains `\Sigma_n` and `\Pi_{n+1}` strictly contains `\Pi_n`. The union of all the `\Sigma_n` and `\Pi_n` form the arithmetic hierarchy.

Quiz

Which of the following statements is true?

  1. We showed that by increasing the size of the tape alphabet, if something is computable by a TM in time `T(n)` it is also computable in time `(T(n))^{1/2}`
  2. There are boolean functions computable using the alphabet `{0, 1, 2, square, Delta }` not computable using the alphabet `{0, 1, square, Delta }`.
  3. We used diagonalization to show the language UC is not computable.

Proof of Theorem Part (a)

We briefly indicate how (a) can be shown, but don't give all the details.

Proof of Theorem Part (b)

Again, we are only sketching the ideas without giving full proofs.