We are here to prove a theorem. The number of satisfying assignments is a problem solvable in IP(k). Consider some 3SAT formula:
where \phi\left(x\right) has exactly k satisfying assignments. This expression has n variables and m clauses. Notice that: x_1 \vee x_3 \vee \neg x_{9} if and only if x_1 = 0, x_3 = 0, x_{9} = 1. This has the following properties: \left(1 - x_1\right) \left(1 - x_3\right) x_{9} = 1 if x_1 \vee x_3 \vee \neg x_{9} false 1-\left(1 - x_1\right) \left(1 - x_3\right) x_{9} = 1 if x_1 \vee x_3 \vee \neg x_{9} true This is a polynomialization of \phi We can now say the following things; for \phi , we have: For a polynomialization q\left(x\right) of \phi, we have
the degree of q is at most 3m for m clauses …so any poly-time machine can build q itself But! Using q is actually hard for a poly-time machine; to compute the number of satisfying assignments for n variables, we can try everything:
but this is exptime. Now, consider the computation above, with prime p with at least 2n many digits: q_{\#SAT} is true IFF q is true mod p because Now, consider the following BIG BRAIN move: consider the univariate polynomial:
q_{\# \text{SAT}} \ \text{mod}\ p is true IFF r\left(0\right) + r\left(1\right) = k \ \text{mod}\ p Can we evaluate this, then? As is, no, but notice that r is a urinary polynomial of degree \leq 3m, and hence has an expression of the form:
by just expanding q, we get a univariate expression one to expand to n. The beneficent is that we don’t have to factor the whole thing out, we just have to plug in values. So suppose our prover generates an r’ of this shape, send \ \text{mod}\ p of it back (since otherwise coefficients may get too large), our prover must show that r’ behaves just like r. That is, “if you claim that r’ is r, then you must be claiming that”: r\left(a\right) = r’\left(a\right). clearly there is an accepting strategy, but if the original q_{\# \text{SAT}} is false,