Ladner's Theorem, Baker, Gill, Solovay's Result




CS254

Chris Pollett

Mar 15, 2017

Outline

Intermediate Languages

Ladner's Theorem

Theorem. Suppose `P ne NP`. Then there exists a language `L in NP - P` that is not `NP`-complete.

Proof. For every function `H: NN -> NN`, we define the language `SAT_H` to contain all length-`n` satisfiable formulas that are padded by `n^(H(n))` `1`'s. That is,
`SAT_H = { \psi 01^(n^(H(n))) : psi in SAT mbox( and ) n= |psi| }`.
We now define a particular `H: NN -> NN ` as follows:

`H(n)` is the smallest number `i < log log n` such that for every `x in {0, 1}^star` with `|x| le log n`, `M_i` outputs `SAT_H(x)` within `i|x|^i` steps. If there is no such `i` then `H(n) = log log n`.

`H` is well-defined since `H(n)` determines membership in `SAT_H` of strings whose length is greater than `n`, and the definition of `H(n)` relies upon checking the status of strings of length at most `log n`. In fact, the definition of `H` implies an `O(n^3)`-time algorithm to compute `H(n)` from `n`. (In-Class Exercise in a moment). `H` was defined to ensure the following claim is true:

More Ladner's Theorem

Claim. `SAT_H in P` iff `H(n) = O(1)`. Moreover, if `SAT_H !in P` then `H(n)` tends to infinity with `n`.

Proof. (`SAT_H in P => H(n) = O(1)`): Suppose there is a machine `M` solving `SAT_H` in at most `cn^c` steps. Since `M` is represented by infinitely many string, there is a number `i > c` such that `M = M_i`. The definition of `H(n)` implies that for `n > 2^(2^i)`, `H(n) leq i`. Thus `H(n) = O(1)`.

(`H(n) = O(1) => SAT_H in P`): If `H(n) = O(1)` then `H` can take only one of finitely many values, and hence there exists an `i` such that `H(n) = i` for infinitely many `n`'s. But this implies that TM `M_i` solves `SAT_H` in time `i n^i`: otherwise, if there was an input on which `M_i` fails to output the right answer within this bound, then for every `n > 2^(|x|)`, we would have `H(n) ne i`. Note this holds even if we are only assuming that there's some constant `C` such that `H(n) < C` for infinitely many `n`'s, hence proving the moreover part of the claim.

Finish Ladner's Theorem

Using the claim, we can show that if `P ne NP` then `SAT_H` is neither in `P` nor `NP`-complete:

In-class Exercise

At the start of Ladner's Theorem we asserted that `H(n)` could be computed in `O(n^3)`-time

Write up why this is true and post it to the Mar 15 Class Thread.

Oracles

Oracle Machines

Definition. A Turing Machine `M^?` with oracle is a multi-tape DTM (a similar definition works for NDTMs) with a special read-write query tape. It also has three distinguished states `q_?` (book calls `q_(query)` but harder to type), `q_(yes)`, `q_(no)`. We feed into the "?" slot of `M^?` an oracle language `A subseteq Sigma^star` to get a machine `M^A`. On input `x`, `M^A` computes as normal unless it enters the state `q_?`, in which case if `y` is the contents of the query tape then the next state will be `q_(yes)` if `y` is in `A` and will be `q_(no)` if `y` is not in `A`. The computation keeps going until a halt state is reached.

Here are a couple points to keep in mind about oracle machines:

Examples

Baker-Gill-Solovay

Theorem. There are oracle sets `A`, `B` such that `P^A=NP^A` and `P^B ne NP^B`.

Proof. Consider the following canonical `EXP`-complete language:
`A = {langle M, x, 1^n rangle | M mbox( outputs 1 on x within ) 2^n mbox( steps) }`

Notice `A in EXP`. Recall we showed `P subseteq NP subseteq EXP`. `P^A = EXP` since given a `L(M)` in `EXP` and an input `x` in p-time we could write `langle M, x, 1^n rangle` on the query tape and then using the oracle determine if `x in L(M)`. On the other hand, by the same argument as on the previous slide, since `A in EXP`, we will have `NP^A subseteq EXP^A = EXP`. So we have `P^A = NP^A =EXP`.

The construction for `B` is a little more involved. Let `L` be the following language:
`L_B = { 0^n | mbox( There is an ) x in B mbox( with ) |x|=n}`.
This language is in `NP^B`. We guess an `x` of length `n` and check if it is in `B` using the oracle. We will show that we can choose `B` so that this language is not in `P^B`.

BGS proof cont'd

Yet More proof