
7.3. Long Code, Basic Tests, and Fourier Transform 181
7.3 Long Code, Basic Tests, and Fourier Transform
The verifiers to be constructed in the proofs of Theorems 7.1 and 7.2 will as-
sume that a proof presented to them consists, roughly speaking, of a satisfying
assignment for the input formula, encoded in what is called the long code. This
encoding scheme will be explained first in this section. When checking whether a
proof is in fact the encoding of a satisfying assignment the verifiers will make use
of different tests all of which are very similar. The coarse structure of these tests
is explained second in this section. The main technical tool used to show good
soundness properties of the verifiers are Fourier transforms. A short review of
Fourier transforms and some of their properties is the third issue in this section.
In the following, B denotes the set (-1, 1}. We will use the term bit string for
strings over B. This has technical reasons: when working with Fourier trans-
forms, strings over B come in more handy than strings over F2 or strings
over (TRUE, FALSE}. When passing from F2 to B, 0 is mapped to 1, 1 is
mapped to -1, and addition becomes multiplication. Similarly, when passing
from (TRUE, FALSE} to B, FALSE is mapped to 1, TRUE is mapped to -1,
conjunction becomes maximum, and disjunction becomes minimum.
7.3.1 Long
Code
Let M be a finite set of cardinality m. The long code of a mapping x: M -~ B
spells out the value that each function with domain B M and range B takes at
x, which is formalized in the following.
The long code of a mapping x: M -+ B is the function A: B BM -~ B defined
by
A(f) = f(x).
Observe that by choosing an order on B BM, each function
B BM
-~ B can be identified with a bit string of length
2 2"~ ,
Let fl,-.., .f~ be arbitrary functions B M -~ B and b an arbitrary function
B 8 -~ B. If A is the long code of x: M ~ B, then, by associativity,
A(b(.fl (x),...,.fs(x))) = b(A(fl (x)),..., A(h(x)))
(7.1)
for all x E B M.
Using this identity, one can actually check (probabilistically) whether a given
bit string of length 22'~ is in fact the long code of some function x: M -+ B,
see Chapter 9 and, in particular, Lemma 9.7. In the present chapter, (7.1) is
used in a much more restricted way. Here, we need to be able to view a test
as a linear equation in three variables over ~'2 (for MAXLINEQ3-2) or as a
disjunction of three variables (for MAXE3SAT). In the first case, we will therefore
use only
(Xl,X2,X3) b-~ X 1 9 X 2 9 X 3
for b (recall that we are working over B
instead of F2, thus 9 corresponds to +), and in the second case, we will use only