Top | recent changes | Preferences

Probabilistically checkable proofs (PCP's) are proofs that can be verified with high probability by looking at the proof in only a few randomly chosen places. Here we describe a relatively simple self-contained proof that any satisfiable Boolean formula has a PCP of its satisfiability that can be checked by querying a constant number of bits. Formally, we show

THEOREM: SAT ∈ PCP(nO(1), 1)

That is, SAT has a randomized polynomial-time verifier V with the following properties:

  1. V takes input (A,P) where A is a Boolean formula of size n, and P is a PCP.
  2. If A is satisfiable, then there exists a PCP P such that V(A,P) accepts with probability 1.
  3. If A is not satisfiable, then for any string P, V(A,P) rejects with probability at least 1/2.
  4. V(A,P) looks at O(1) bits of P and uses nO(1) random bits.

The PCP system we describe uses exponentially large proofs.

In fact, the stronger result holds, but we don't describe a proof:

THEOREM: SAT ∈ PCP(log(n), 1)

In his book "Approximation Algorithms", Vazirani mentions the following intuition for PCP's. Given a Boolean formula in 3-SAT form with $m$ clauses, suppose the verifier was given a satisfying assignment (as the proof of satisfiability) and then checked a single clause at random of the formula to see if the assignment satisfied that one clause. If the clause was satisfied, then the verifier would accept.

With this simple PCP system, if the formula is satisfiable, there is a proof to give the verifier so that the verifier will accept with probability 1. Conversely, if the formula is not satisfiable, no matter what ``proof'' one gives the verifier, the verifier will reject with probability at least 1/m.

The challenge is to amplify this rejection probability to at least 1/2, while still having the verifier check only a constant number of bits in the proof.

Building block #1 --- Encoding F as a collection of quadratic functions over Z2n.

The verifier wants to verify that the Boolean formula F is satisfiable. To begin, the verifier converts F into a set S of equivalent quadratic equations and variables over Z2n (the integers {0,1} with arithmetic mod 2). The equations will have a solution if and only if F is satisfiable.

Example: Suppose F = (v1 or v2) and (v1 or v2) .

Then the equations are:

Equation Meaning
B3 = B1 + B2 - B1 B2 B3 = (v1 or v2)
B4 = 1 - B1 B2 B4 =(v1 or v2)
B5 = B3 B4 B5 = B3 and B4
B5 = 1 B5 = true

Building block #2 --- Freivald's trick

Next, the verifier selects a random subset of the set of equations above and adds them together to get a single equation, say, ij xij Bi Bj = 1 for some particular (known) x. We will write this equation also as FB(x) = 1. Note that the verifier knows x but not B, even though we use notation suggesting that FB(x) is a function of x.

LEMMA: The random function FB(x) has the following property: for any particular assignment B=b, if b satisfies all the equations, then Fb(x)=1. Otherwise, Pr[Fb(x) = 1] ≤ 1/2.

This is because, if there are any incorrect equations (for a particular b), the final equation will be incorrect exactly when the number of incorrect equations chosen in the set is odd. This is FreivaldsTrick.?

Building block #3 --- SelfTestingCorrecting

Finally, the verifier examines the proof P, using the SELF-CHECK-DIAG and SELF-CORRECT algorithms from SelfTestingCorrecting.?

The verifier expects the proof P to encode a satisfying assignment B=b for the equations as follows. For each of the 2n× n n× n matrices X ∈ Z2n× n, the proof should tell the value (0 or 1) of

Fb(X) = ij Xij bi bj.
Thus, the proof P has 2n× n bits, one for each possible matrix X. Let P(X) denote the bit in the proof P giving the value of Fb(X).

The key observation at this point is that if P has the correct format, then P(X) is a diagonal linear function of X. In particular, P(X) = Fb(X) = ij Xij bi bj for some particular b.

Now we can state the verifier completely. On input (A, P), where A is a SAT formula and P is an alleged proof that B is satisfiable, the verifier V does the following:

  1. Use SELF-CHECK-DIAG(P) to check that P(X) is an approximate diagonal linear function of X. If the test fails, reject.
  2. Assume that P is an approximate diagonal linear function encoding a diagonal linear function Q(X) = ij Xij bi bj for some b.
  3. As described above, construct a set of quadratic equations over Z2n that has a solution iff A is satisfiable.
  4. Repeat the remaining steps twice:
  5. As described above, let quadratic equation "F(B)=1" be obtained by summing a random subset of the equations. Compute x such that F(B) = ij xij Bi Bj.
  6. Use SELF-CORRECT(P,x) to evaluate Q(x). If SELF-CORRECT discovers a non-linearity, reject. If the equation "Q(x)=1" fails, reject.
  7. Accept.

LEMMA: If A is satisfiable, there exists a proof P such that V(A, P) accepts.
PROOF: As described, let B=b be a satisfying assignment of the quadratic equations. For each X, let P(X) = ij Xij bi bj . Then P(X) is a diagonal linear function of X, so the SELF-CHECK-DIAG(P) test passes, and SELF-CORRECT(P,x) returns P(x), which equals Q(x), which equals F(b). Since all equations in the set of quadratic equations are satisfied, so is the equation F(b)=1, so Q(x)=1 holds too. Thus, the verifier accepts.

LEMMA: If A is not satisfiable, then for any alleged proof P, Pr[V(A,P) rejects] ≥ 1/2.
PROOF: Suppose A is not satisfiable. If P does not encode an approximate diagonal linear function, then SELF-CHECK-DIAG(P) fails with probability at least 1/2.

So assume that P does. Let Q(X) = ij Xij bi bj be the approximate diagonal linear function that P encodes. One of the following things has to happen for the remaing steps to not reject:

and fails to discover a non-linearity. By a lemma in SelfTestingCorrecting, this happens with probability at most 1/10. Thus, the probability that the remaining steps don't lead to rejection is at most 1/2+1/10 = 6/10. Since the steps are repeated twice, and each time the probability of rejection is at least 4/10, the probability of passing both is at most (6/10)2 < 1/2.



Top | recent changes | Preferences
This page is read-only | View other revisions
Last edited February 10, 2004 8:28 pm by NealYoung (diff)