CISC 462 — Lecture 28

Relativization

The proofs of the hierarchy theorems and other similar results might lead us to wonder whether we can do something similar and use diagonalization to show that $\mathbf P \neq \mathbf{NP}$.

An oracle for a language $A$ is a device that is capable of reporting whether any string $w$ is a member of $A$. An oracle Turing machine $M^A$ is a modified Turing machine that has the additional capability of querying an oracle for $A$. Whenever $M^A$ writes a string on a special oracle tape, it is informed whether that string is a member of $A$ in a single computation step.

Let $\mathbf{P}^A$ be the class of languages decidable with a polynomial time oracle Turing machine that uses oracle $A$. We can define $\mathbf{NP}^A$ similarly.

We have $\mathbf{NP} \subseteq \mathbf P^{\mathrm{SAT}}$. This is fairly obvious. But we also get $\mathbf{coNP} \subseteq \mathbf P^{\mathrm{SAT}}$.

Consider the problem $\text{MIN-FORMULA}$: Given a boolean formula $\varphi$, is $\varphi$ minimal; that is, no shorter boolean formula equivalent to $\varphi$ exists? $\overline{\text{MIN-FORMULA}}$ is not known to be in $\mathbf{NP}$ but is in $\mathbf{NP}^{\mathrm{SAT}}$.

So what is the point of oracle machines? We use oracle machines to show that there are limits to the diagonalization method. Diagonalization relies on the fact that we can simulate a Turing machine with very little increase in cost. However, the same applies to Turing machines with oracles. This means that any result that we can get about Turing machines from diagonalization should work for machines with oracles. These results are called relativizing results.

However, we will show that relativization is not enough to resolve $\mathbf P$ vs. $\mathbf{NP}$. The implication then is that a proof that resolves this question can't assume away the details of simulating a Turing machine. In other words, we can't treat simulating TMs like a black box; we'll have to actually prove something about what's going on inside.

Theorem. (Baker, Gill, Solovay) There exist oracles $A$ and $B$ such that $\mathbf P^A \neq \mathbf{NP}^A$ and $\mathbf P^B = \mathbf{NP}^B$.

Proof. Let $B$ be $\mathrm{TQBF}$. Then, $$\mathbf{NP}^{\mathrm{TQBF}} \subseteq \mathbf{NPSPACE} \subseteq \mathbf{PSPACE} \subseteq \mathbf P^{\mathrm{TQBF}}.$$ Therefore, $\mathbf P^{\mathrm{TQBF}} = \mathbf{NP}^{\mathrm{TQBF}}$.

Now, we construct $A$. For an oracle $A$, let $L_A$ be the set of strings for which a string of equal length appears in $A$, $$L_A = \{w \mid (\exists x \in A) |x| = |w| \}.$$ Then for any $A$, we have $L_A \in \mathbf{NP}^A$, since for any input word $w$, a nondeterministic machine can just nondeterministically guess some string of length $|w|$ to query.

Now we need to show that $L_A \not \in \mathbf P^A$. Let $M_1,M_2,\dots$ be a list of all polynomial time oracle machines. Assume that $M_i$ runs in time $n^i$. We will construct $A$ in stages so that stage $i$ ensures that $M_i^A$ does not decide $L_A$.

At stage $i$, a finite number of strings have been declared to either be in or not in $A$. Then we choose $n$ greater than the length of any of these strings and large enough that $2^n > n^i$, the running time of $M_i$. Then we want to add to $A$ in such a way that $M_i^A$ accepts $1^n$ whenever it is not in $L_A$.

Run $M_i$ on input $1^n$ and respond to its oracle queries. If $M_i$ queries a string $y$ that has been queried before, give the same answer. If $y$ hasn't been queried before, we respond with NO and declare that $y$ is not in $A$. Continue the simulation of $M_i$ until it halts.

Now, if $M_i$ finds a string of length $n$ in $A$, it accepts since $1^n$ is in $L_A$. If $M_i$ determines that all strings of length $n$ aren't in $A$, it rejects, since $1^n$ isn't in $A$. However, it can't ask the oracle about every string of length $n$, since it doesn't have enough time to, so when $M_i$ halts, it can't have enough information to make a correct decision yet.

To ensure that it cannot decide correctly, we extend $A$ in such a way that its decision is wrong. If $M_i$ accepts $1^n$, we declare that all of the remaining strings of length $n$ aren't in $A$, which means that $1^n$ is not in $L_A$. If $M_i$ rejcts $1^n$, we find a string of length $n$ that $M_i$ hasn't queried and declare that it is in $A$ to guarantee that $1^n$ is in $L_A$. This string exists since, $M_i$ runs for only $n^i$ steps which is less than the $2^n$ possible strings. Thus, $M_i^A$ can't decide $L_A$.

Then every other string of length $n$ is declared to not be in $A$, and the construction proceeds to the next stage.

Thus no polynomial time oracle machine will decide $L_A$ with oracle $A$. $$\tag*{$\Box$}$$