Lecture24 Notes on Theory of Computation
However, we show
#���∈IP.
We’ll set up a little notation. Fix�. Let
�(�1, . . . , ��) =
⎧
⎨
⎩
0,unsatisfying
1,satisfying
Let
�() =
∑︁
��∈{0,1}
�(�1, . . . , ��).
Note�() = #�is the number of satisfying assignments. Add 1 every time satisfying, 0 if
not satisfying assignments.
Define
�(�1, . . . , ��) =
∑︁
��∈{0,1}, �>�
�(�1, . . . , ��).
We are preseting some of the values of the formula, and counting the number of satisfying
assignments subject to those presets. Thus
�(�1, . . . , ��) = #��1,...,��
where�0=�with�1= 0,�01=�with�1= 0,�2= 1, and so forth. In particular, since
we assign values to all of the��values,�(�1, . . . , ��) is 0 or 1.
We have the following relations.
�() = #�
�(�1, . . . , ��) =�(�1, . . . , ��)
�(�1, . . . , ��) =�(�1. . . ��0) +�(�1. . . ��1).
To see the last equation, note the number of satisfying assignments with�1, . . . , ��is the sum
of the number of satisfying assignments additionally satisfying��+1= 1 and the number of
satisfying assignments additionally satisfying��+1= 0, because one of these has to be true.
We set up the #SAT protocol. (Our first version will have a little problem, as we will
see.) Suppose the input is⟨�, �⟩. The prover is supposed to make the verifier accept with
high probability.
0. �(),�checks�=�(). (Reject if things don’t check out.)
1. �(0) and�(1).�checks that�() =�(0) +�(1).
2. �(00), �(01), �(10), �(11).�checks�(0) =�(00) +�(01) and�(1) =
�(10) +�(11). (This is exponential, which is a problem. But humor me.)
.
.
.
159