1

How am I supposed to read the P=?NP relativization proof? I am reading the classical paper Relativization of the P=?NP problem by Baker, Gill and Solovay, in particular the proof that there exist an oracle $B$ such that $\mathsf{P}^B \neq \mathsf{NP}^B$ on page 436. I have some questions and your help will be appreciated.

  • The procedure does not seem to be an oracle but a deterministic algorithm.

  • Is this construction a counterexample to P = NP?

  • What does this mean "Run query machine $P_i$ with oracle $B_i$ on input $x_i = 0^n$?" Does it mean that $P_i$ asks

    1. if $B_i$ accepts $0^n$
    2. if $B_i$ accepts any string of length $n$
    3. ONE BY ONE if $B_i$ accepts a string of length $n$ from the canonical enumeration?
  • I assume that the set $B$ or $B_i$ is initially empty. Does it mean that the FIRST string of length $n$ from the canonical enumeration will always be added?

Yuval Filmus
  • 276,994
  • 27
  • 311
  • 503
Newberry
  • 21
  • 2

1 Answers1

2

Let me answer your concrete questions:

  • An oracle is a language. One way to describe a language is to give a procedure for constructing it.
  • The construction is not a counterexample to P=NP. It shows that there exists an oracle relative to which P and NP are different. It also gives another oracle relative to which they are the same. Later, it was shown that P is different from NP relative to a random oracle (almost surely); recently this was extended to the entire polynomial hierarchy. The modern interpretation of such results is that diagonalizing techniques (techniques that would also work relative to an arbitrary oracle) cannot be used to settle the P vs NP question.
  • "Run query machine $P_i$ with oracle $B_i$ on input $x_i = 0^n$" has the following meaning. The machine $P_i$ is an oracle machine — it is a Turing machine that has a special mechanism allowing it to access the oracle. We run $P_i$ on the input $0^n$, i.e., the string of length $n$ consisting entirely of zeroes. Whenever $P_i$ makes an oracle access, we answer according to $B_i$.
  • Your final question is a bit specific. I suggest trying to read the proof again, and if you fail, check a more modern account. Note that the result can be proved in several ways, so a proof appearing in a different source might be different.
Yuval Filmus
  • 276,994
  • 27
  • 311
  • 503
  • There is a sentence in the proof: "P_i^B(i) can ask at most p_i(n) questions." It implies that P_i^B(i) calls B(i) multiple times? Each time with a different string of length n from the canonical enumeration of strings? [There are more strings of length n than p_i(n).] – Newberry Sep 11 '19 at 16:01
  • https://en.wikipedia.org/wiki/Oracle_machine – Yuval Filmus Sep 11 '19 at 16:28
  • I think we are talking at cross-purposes. – Newberry Sep 12 '19 at 16:11
  • $P_i$ is an oracle machine. Make sure you understand how these operate. Also, I don't really see where the canonical enumeration of strings comes from. – Yuval Filmus Sep 12 '19 at 16:25
  • "Otherwise, if P_i^B(i) rejects 0^n, then add to B the lest string (that is the earliest occurring string IN THE CANONICAL ENUMERATION of binary strings) of length n not queried during computation of P_i^B(i) on input 0^n. [Quote from the original paper, emphasis added.] – Newberry Sep 13 '19 at 00:10
  • You can in fact add an arbitrary unqueried string. No canonical enumeration is needed here. – Yuval Filmus Sep 13 '19 at 06:02
  • OK, so does P_i^B(i) call B(i) multiple times per a given i? Each time with a different string of length n? – Newberry Sep 13 '19 at 17:36
  • 1
    $P_i$ is an oracle machine. Without understanding oracle machines, you don’t even understand the theorems being proven, let alone the proofs. Once you understand how oracle machines operate, you will be able to answer such questions on your own. – Yuval Filmus Sep 13 '19 at 19:20
  • I am not interested in your unsolicited conjectures about what I do or do not understand. – Newberry Sep 14 '19 at 03:47