\[ \newcommand{\undefined}{} \newcommand{\hfill}{} \newcommand{\qedhere}{\square} \newcommand{\qed}{\square} \newcommand{\bbA}{\mathbb A} \newcommand{\bbB}{\mathbb B} \newcommand{\bbC}{\mathbb C} \newcommand{\bbD}{\mathbb D} \newcommand{\bbE}{\mathbb E} \newcommand{\bbF}{\mathbb F} \newcommand{\bbG}{\mathbb G} \newcommand{\bbH}{\mathbb H} \newcommand{\bbI}{\mathbb I} \newcommand{\bbJ}{\mathbb J} \newcommand{\bbK}{\mathbb K} \newcommand{\bbL}{\mathbb L} \newcommand{\bbM}{\mathbb M} \newcommand{\bbN}{\mathbb N} \newcommand{\bbO}{\mathbb O} \newcommand{\bbP}{\mathbb P} \newcommand{\bbQ}{\mathbb Q} \newcommand{\bbR}{\mathbb R} \newcommand{\bbS}{\mathbb S} \newcommand{\bbT}{\mathbb T} \newcommand{\bbU}{\mathbb U} \newcommand{\bbV}{\mathbb V} \newcommand{\bbW}{\mathbb W} \newcommand{\bbX}{\mathbb X} \newcommand{\bbY}{\mathbb Y} \newcommand{\bbZ}{\mathbb Z} \newcommand{\sA}{\mathscr A} \newcommand{\sB}{\mathscr B} \newcommand{\sC}{\mathscr C} \newcommand{\sD}{\mathscr D} \newcommand{\sE}{\mathscr E} \newcommand{\sF}{\mathscr F} \newcommand{\sG}{\mathscr G} \newcommand{\sH}{\mathscr H} \newcommand{\sI}{\mathscr I} \newcommand{\sJ}{\mathscr J} \newcommand{\sK}{\mathscr K} \newcommand{\sL}{\mathscr L} \newcommand{\sM}{\mathscr M} \newcommand{\sN}{\mathscr N} \newcommand{\sO}{\mathscr O} \newcommand{\sP}{\mathscr P} \newcommand{\sQ}{\mathscr Q} \newcommand{\sR}{\mathscr R} \newcommand{\sS}{\mathscr S} \newcommand{\sT}{\mathscr T} \newcommand{\sU}{\mathscr U} \newcommand{\sV}{\mathscr V} \newcommand{\sW}{\mathscr W} \newcommand{\sX}{\mathscr X} \newcommand{\sY}{\mathscr Y} \newcommand{\sZ}{\mathscr Z} \newcommand{\sfA}{\mathsf A} \newcommand{\sfB}{\mathsf B} \newcommand{\sfC}{\mathsf C} \newcommand{\sfD}{\mathsf D} \newcommand{\sfE}{\mathsf E} \newcommand{\sfF}{\mathsf F} \newcommand{\sfG}{\mathsf G} \newcommand{\sfH}{\mathsf H} \newcommand{\sfI}{\mathsf I} \newcommand{\sfJ}{\mathsf J} \newcommand{\sfK}{\mathsf K} \newcommand{\sfL}{\mathsf L} \newcommand{\sfM}{\mathsf M} \newcommand{\sfN}{\mathsf N} \newcommand{\sfO}{\mathsf O} \newcommand{\sfP}{\mathsf P} \newcommand{\sfQ}{\mathsf Q} \newcommand{\sfR}{\mathsf R} \newcommand{\sfS}{\mathsf S} \newcommand{\sfT}{\mathsf T} \newcommand{\sfU}{\mathsf U} \newcommand{\sfV}{\mathsf V} \newcommand{\sfW}{\mathsf W} \newcommand{\sfX}{\mathsf X} \newcommand{\sfY}{\mathsf Y} \newcommand{\sfZ}{\mathsf Z} \newcommand{\cA}{\mathcal A} \newcommand{\cB}{\mathcal B} \newcommand{\cC}{\mathcal C} \newcommand{\cD}{\mathcal D} \newcommand{\cE}{\mathcal E} \newcommand{\cF}{\mathcal F} \newcommand{\cG}{\mathcal G} \newcommand{\cH}{\mathcal H} \newcommand{\cI}{\mathcal I} \newcommand{\cJ}{\mathcal J} \newcommand{\cK}{\mathcal K} \newcommand{\cL}{\mathcal L} \newcommand{\cM}{\mathcal M} \newcommand{\cN}{\mathcal N} \newcommand{\cO}{\mathcal O} \newcommand{\cP}{\mathcal P} \newcommand{\cQ}{\mathcal Q} \newcommand{\cR}{\mathcal R} \newcommand{\cS}{\mathcal S} \newcommand{\cT}{\mathcal T} \newcommand{\cU}{\mathcal U} \newcommand{\cV}{\mathcal V} \newcommand{\cW}{\mathcal W} \newcommand{\cX}{\mathcal X} \newcommand{\cY}{\mathcal Y} \newcommand{\cZ}{\mathcal Z} \newcommand{\bfA}{\mathbf A} \newcommand{\bfB}{\mathbf B} \newcommand{\bfC}{\mathbf C} \newcommand{\bfD}{\mathbf D} \newcommand{\bfE}{\mathbf E} \newcommand{\bfF}{\mathbf F} \newcommand{\bfG}{\mathbf G} \newcommand{\bfH}{\mathbf H} \newcommand{\bfI}{\mathbf I} \newcommand{\bfJ}{\mathbf J} \newcommand{\bfK}{\mathbf K} \newcommand{\bfL}{\mathbf L} \newcommand{\bfM}{\mathbf M} \newcommand{\bfN}{\mathbf N} \newcommand{\bfO}{\mathbf O} \newcommand{\bfP}{\mathbf P} \newcommand{\bfQ}{\mathbf Q} \newcommand{\bfR}{\mathbf R} \newcommand{\bfS}{\mathbf S} \newcommand{\bfT}{\mathbf T} \newcommand{\bfU}{\mathbf U} \newcommand{\bfV}{\mathbf V} \newcommand{\bfW}{\mathbf W} \newcommand{\bfX}{\mathbf X} \newcommand{\bfY}{\mathbf Y} \newcommand{\bfZ}{\mathbf Z} \newcommand{\rmA}{\mathrm A} \newcommand{\rmB}{\mathrm B} \newcommand{\rmC}{\mathrm C} \newcommand{\rmD}{\mathrm D} \newcommand{\rmE}{\mathrm E} \newcommand{\rmF}{\mathrm F} \newcommand{\rmG}{\mathrm G} \newcommand{\rmH}{\mathrm H} \newcommand{\rmI}{\mathrm I} \newcommand{\rmJ}{\mathrm J} \newcommand{\rmK}{\mathrm K} \newcommand{\rmL}{\mathrm L} \newcommand{\rmM}{\mathrm M} \newcommand{\rmN}{\mathrm N} \newcommand{\rmO}{\mathrm O} \newcommand{\rmP}{\mathrm P} \newcommand{\rmQ}{\mathrm Q} \newcommand{\rmR}{\mathrm R} \newcommand{\rmS}{\mathrm S} \newcommand{\rmT}{\mathrm T} \newcommand{\rmU}{\mathrm U} \newcommand{\rmV}{\mathrm V} \newcommand{\rmW}{\mathrm W} \newcommand{\rmX}{\mathrm X} \newcommand{\rmY}{\mathrm Y} \newcommand{\rmZ}{\mathrm Z} \newcommand{\paren}[1]{( #1 )} \newcommand{\Paren}[1]{\left( #1 \right)} \newcommand{\bigparen}[1]{\bigl( #1 \bigr)} \newcommand{\Bigparen}[1]{\Bigl( #1 \Bigr)} \newcommand{\biggparen}[1]{\biggl( #1 \biggr)} \newcommand{\Biggparen}[1]{\Biggl( #1 \Biggr)} \newcommand{\abs}[1]{\lvert #1 \rvert} \newcommand{\Abs}[1]{\left\lvert #1 \right\rvert} \newcommand{\bigabs}[1]{\bigl\lvert #1 \bigr\rvert} \newcommand{\Bigabs}[1]{\Bigl\lvert #1 \Bigr\rvert} \newcommand{\biggabs}[1]{\biggl\lvert #1 \biggr\rvert} \newcommand{\Biggabs}[1]{\Biggl\lvert #1 \Biggr\rvert} \newcommand{\card}[1]{\lvert #1 \rvert} \newcommand{\Card}[1]{\left\lvert #1 \right\rvert} \newcommand{\bigcard}[1]{\bigl\lvert #1 \bigr\rvert} \newcommand{\Bigcard}[1]{\Bigl\lvert #1 \Bigr\rvert} \newcommand{\biggcard}[1]{\biggl\lvert #1 \biggr\rvert} \newcommand{\Biggcard}[1]{\Biggl\lvert #1 \Biggr\rvert} \newcommand{\norm}[1]{\lVert #1 \rVert} \newcommand{\Norm}[1]{\left\lVert #1 \right\rVert} \newcommand{\bignorm}[1]{\bigl\lVert #1 \bigr\rVert} \newcommand{\Bignorm}[1]{\Bigl\lVert #1 \Bigr\rVert} \newcommand{\biggnorm}[1]{\biggl\lVert #1 \biggr\rVert} \newcommand{\Biggnorm}[1]{\Biggl\lVert #1 \Biggr\rVert} \newcommand{\iprod}[1]{\langle #1 \rangle} \newcommand{\Iprod}[1]{\left\langle #1 \right\rangle} \newcommand{\bigiprod}[1]{\bigl\langle #1 \bigr\rangle} \newcommand{\Bigiprod}[1]{\Bigl\langle #1 \Bigr\rangle} \newcommand{\biggiprod}[1]{\biggl\langle #1 \biggr\rangle} \newcommand{\Biggiprod}[1]{\Biggl\langle #1 \Biggr\rangle} \newcommand{\set}[1]{\lbrace #1 \rbrace} \newcommand{\Set}[1]{\left\lbrace #1 \right\rbrace} \newcommand{\bigset}[1]{\bigl\lbrace #1 \bigr\rbrace} \newcommand{\Bigset}[1]{\Bigl\lbrace #1 \Bigr\rbrace} \newcommand{\biggset}[1]{\biggl\lbrace #1 \biggr\rbrace} \newcommand{\Biggset}[1]{\Biggl\lbrace #1 \Biggr\rbrace} \newcommand{\bracket}[1]{\lbrack #1 \rbrack} \newcommand{\Bracket}[1]{\left\lbrack #1 \right\rbrack} \newcommand{\bigbracket}[1]{\bigl\lbrack #1 \bigr\rbrack} \newcommand{\Bigbracket}[1]{\Bigl\lbrack #1 \Bigr\rbrack} \newcommand{\biggbracket}[1]{\biggl\lbrack #1 \biggr\rbrack} \newcommand{\Biggbracket}[1]{\Biggl\lbrack #1 \Biggr\rbrack} \newcommand{\ucorner}[1]{\ulcorner #1 \urcorner} \newcommand{\Ucorner}[1]{\left\ulcorner #1 \right\urcorner} \newcommand{\bigucorner}[1]{\bigl\ulcorner #1 \bigr\urcorner} \newcommand{\Bigucorner}[1]{\Bigl\ulcorner #1 \Bigr\urcorner} \newcommand{\biggucorner}[1]{\biggl\ulcorner #1 \biggr\urcorner} \newcommand{\Biggucorner}[1]{\Biggl\ulcorner #1 \Biggr\urcorner} \newcommand{\ceil}[1]{\lceil #1 \rceil} \newcommand{\Ceil}[1]{\left\lceil #1 \right\rceil} \newcommand{\bigceil}[1]{\bigl\lceil #1 \bigr\rceil} \newcommand{\Bigceil}[1]{\Bigl\lceil #1 \Bigr\rceil} \newcommand{\biggceil}[1]{\biggl\lceil #1 \biggr\rceil} \newcommand{\Biggceil}[1]{\Biggl\lceil #1 \Biggr\rceil} \newcommand{\floor}[1]{\lfloor #1 \rfloor} \newcommand{\Floor}[1]{\left\lfloor #1 \right\rfloor} \newcommand{\bigfloor}[1]{\bigl\lfloor #1 \bigr\rfloor} \newcommand{\Bigfloor}[1]{\Bigl\lfloor #1 \Bigr\rfloor} \newcommand{\biggfloor}[1]{\biggl\lfloor #1 \biggr\rfloor} \newcommand{\Biggfloor}[1]{\Biggl\lfloor #1 \Biggr\rfloor} \newcommand{\lcorner}[1]{\llcorner #1 \lrcorner} \newcommand{\Lcorner}[1]{\left\llcorner #1 \right\lrcorner} \newcommand{\biglcorner}[1]{\bigl\llcorner #1 \bigr\lrcorner} \newcommand{\Biglcorner}[1]{\Bigl\llcorner #1 \Bigr\lrcorner} \newcommand{\bigglcorner}[1]{\biggl\llcorner #1 \biggr\lrcorner} \newcommand{\Bigglcorner}[1]{\Biggl\llcorner #1 \Biggr\lrcorner} \newcommand{\e}{\varepsilon} \newcommand{\eps}{\varepsilon} \newcommand{\from}{\colon} \newcommand{\super}[2]{#1^{(#2)}} \newcommand{\varsuper}[2]{#1^{\scriptscriptstyle (#2)}} \newcommand{\tensor}{\otimes} \newcommand{\eset}{\emptyset} \newcommand{\sse}{\subseteq} \newcommand{\sst}{\substack} \newcommand{\ot}{\otimes} \newcommand{\Esst}[1]{\bbE_{\substack{#1}}} \newcommand{\vbig}{\vphantum{\bigoplus}} \newcommand{\seteq}{\mathrel{\mathop:}=} \newcommand{\defeq}{\stackrel{\mathrm{def}}=} \newcommand{\bits}{\{0,1\}} \newcommand{\sbits}{\{\pm 1\}} \newcommand{\Mid}{\mathrel{}\middle|\mathrel{}} \newcommand{\Ind}{\mathbf 1} \newcommand{\R}{\mathbb R} \newcommand{\Rnn}{\R_{\ge 0}} \newcommand{\N}{\mathbb N} \newcommand{\Z}{\mathbb Z} \newcommand{\Q}{\mathbb Q} \newcommand{\mper}{\,.} \newcommand{\mcom}{\,,} \DeclareMathOperator{\Id}{Id} \DeclareMathOperator{\cone}{cone} \DeclareMathOperator{\vol}{vol} \DeclareMathOperator{\val}{val} \DeclareMathOperator{\opt}{opt} \DeclareMathOperator{\Opt}{Opt} \DeclareMathOperator{\Val}{Val} \DeclareMathOperator{\LP}{LP} \DeclareMathOperator{\SDP}{SDP} \DeclareMathOperator{\Tr}{Tr} \DeclareMathOperator{\Inf}{Inf} \DeclareMathOperator{\poly}{poly} \DeclareMathOperator{\polylog}{polylog} \DeclareMathOperator{\argmax}{arg\,max} \DeclareMathOperator{\argmin}{arg\,min} \DeclareMathOperator{\qpoly}{qpoly} \DeclareMathOperator{\qqpoly}{qqpoly} \DeclareMathOperator{\conv}{conv} \DeclareMathOperator{\Conv}{Conv} \DeclareMathOperator{\supp}{supp} \DeclareMathOperator{\sign}{sign} \DeclareMathOperator{\mspan}{span} \DeclareMathOperator{\mrank}{rank} \DeclareMathOperator{\E}{\mathbb E} \DeclareMathOperator{\pE}{\tilde{\mathbb E}} \DeclareMathOperator{\Pr}{\mathbb P} \DeclareMathOperator{\Span}{Span} \DeclareMathOperator{\Cone}{Cone} \DeclareMathOperator{\junta}{junta} \DeclareMathOperator{\NSS}{NSS} \DeclareMathOperator{\SA}{SA} \DeclareMathOperator{\SOS}{SOS} \hyperbaseurl{http://toc15.dsteurer.org/} \notag \]

PCP theorem: exponential-size proofs (pdf version)

Introduction

Let \(\bbF_2\) be the field with two elements (the set \(\{0,1\}\) with addition and multiplication modulo 2). For \(n\in \N\), let \(\bbF_2^n\) be the vector space of \(n\)-dimensional tuples over this field.

Recall the following NP-complete problem:

Problem (QuadEq). Given a matrix \(A\in \bbF_2^{m\times n^2}\) and a vector \(b\in\bbF_2^m\), find an assignment \(w\in \bbF_2^n\) such that \[ \label{eq:quadeq} A (w\otimes w) = b\,. \]

We can state the PCP theorem in terms of randomized query-efficient verifiers for this problem. Here, \(V^\pi(x)\) denotes the output of a randomized algorithm \(V\) on input \(x\) with query access to a string \(\pi\). (At any point during the computation of \(V\), it can access an element of the string \(\pi\). The elements of \(\pi\) are addressed by natural numbers encoded in binary.)

PCP theorem (verifier view). There exists a randomized poly-time algorithm \(V\) such that

  • YES: if \(x \in {\mathrm{QuadEq}}\), then \[\exists \pi .~\Pr \biggl\{ V^\pi(x)=1 \biggr\} = 1\]
  • NO: if \(x \not \in {\mathrm{QuadEq}}\), then \[\forall \pi . ~\Pr\biggl\{ V^\pi(x)=1 \biggr\} < 0.99\]
  • Queries: The computation \(V^\pi(x)\) queries only \(O(1)\) positions in \(\pi\) (independent of the length of \(x\)).
  • Randomness: The computation \(V^\pi(x)\) uses at most \(O(\log \lvert x\rvert)\) random bits.

In these notes, we prove a relaxed version of this theorem, where the verifier is allowed to use \(O(\lvert x \rvert)\) random bits. This amount of randomness allows the verifier to access a range of positions in \(\pi\) that is exponential in the length of the input instance \(\lvert x \rvert\). We will refer to this relaxed version of the verifier as an “exponential-size PCP system”. The exponential blowup in the length of the proofs \(\pi\) prevents these verifier from being directly useful for hardness of approximation reductions. However, it turns out that they play a key role as “local gadgets” in the construction for the final PCP theorem (with a logarithmic number of random bits).

PCP systems and error-correcting codes

Error-correcting codes turn out to play a key role for our exponential-size PCP system. In this section, we explain why they are useful here.

Let \((A,b)\) with \(A\in \bbF_2^{m\times n^2}\) and \(b\in \bbF_2^m\) be an instance of QuadEq. We are to decide if there exists an assignment \(w\in \bbF_2^n\) such that \[ A (w\otimes w) = b \, . \] In our exponential-size PCP system, every assignment \(w\in \bbF_2^n\) corresponds to some proof \(\pi=\pi(w)\). (This property is common for NP-hardness reductions.) We would like the verifier \(V\) to have the following properties:

  • YES: if \(w\in \bbF_2^n\) satisfies the system \(x=(A,b)\), then \(\Pr \{ V^{\pi}(x)=1\}=1\) for \(\pi=\pi(w)\).
  • NO: if \(w'\in \bbF_2^n\) does not satisfies the system \(x=(A,b)\), then \(\Pr \{ V^{\pi'}(x)=1\}<0.99\) for \(\pi'=\pi(w')\).

Since \(V\) makes only a constant number of queries to the purported proof, its acceptance probability stays approximately the same if the proof is perturbed at a small fraction of the positions.1 Therefore, we would like that satisfying assignments get mapped to proofs that far in Hamming distance from proofs that non-satsifying assignments get mapped to. In fact, our PCP system satisfies the following stronger property:

For our exponential-size PCP system, the map \(w\mapsto \pi(w)\) is an error correcting code in the sense that any two different assignemnts \(w\neq w'\) get mapped to proofs \(\pi(w)\) and \(\pi(w')\) that differ in a constant fraction of positions.

In fact, our PCP system is based on the Walsh-Hadamard code and it exploits several remarkable properties of this error-correcting code (see the sections on local testing and correcting below).

Walsh-Hadamard code

The Walsh-Hadmard encoding of \(x\in \bbF_2^n\) is a bit string \({\mathrm{WH}}[x]\in \bbF_2^{\bbF_2^n}\) of length \(2^n\) such that for all \(r\in\bbF_2^n\) \[ {\mathrm{WH}}[x](r) = r^T x\,. \] In words, \({\mathrm{WH}}[u]\) consists of all parity checks of \(x\).

We define the Hamming distance between bit strings.

Definition: The (relative) Hamming distance of two strings \(f,g\in \bbF_2^{\bbF_2^n}\) is \[ {\mathrm{dist}}(f,g) \defeq \Pr_{r\in \bbF_2^n} \biggl\{ f(r)\neq g(r) \biggr\}\,. \]

The minimum distance of the Walsh-Hadmard code is \(1/2\).

Theorem: Every pair \(x\neq y\) of bit strings satisfies \[{\mathrm{dist}}\biggl({\mathrm{WH}}[x],{\mathrm{WH}}[y]\biggr)=1/2\,.\]

Exponential-size PCP system I

We define a correct satisfiability proof for a QuadEq instance \(x=(A,b)\) to be a string \(\pi\) of the form \[ \pi = {\mathrm{WH}}[w]{\mathrm{WH}}[u] \text{ such that } u=w\otimes w \text{ and } A u =b\,. \label{eq:correct-satisfiability-proof} \]

Theorem: There exists a polynomial-time verifier \(V_0\) that uses \(4\) queries and \(O(N)\) random bits of inputs of length \(N\) such that for every QuadEq instance \(x=(A,b)\) with \(n\) variables, and every string \(\pi = {\mathrm{WH}}[w] {\mathrm{WH}}[u]\) for some \(w\in \bbF_2^n\) and \(u\in \bbF_2^{n^2}\), either

  • YES: \(\pi = {\mathrm{WH}}[w] {\mathrm{WH}}[u]\) is a correct satisfiability proof for \(x\) and \[\Pr \{ V_0^\pi(x) = 1\} =1\,.\]
  • NO: \(\pi = {\mathrm{WH}}[w] {\mathrm{WH}}[u]\) is not a correct satisfiability proof for \(x\) and \[\Pr \{ V_0^\pi(x) = 1\} \le 3/4\,.\]

The verifier \(V_0\) consists of two parts: The first part is to check that \(Au = b\) and the second part is to check that \(u=w\otimes w\). For the first part, we use the observation that \(Au \neq b\) implies that \(r^T A u \neq r^T b\) for half of the choices \(r\in \bbF_2^n\). Since \({\mathrm{WH}}[u](A^T r)=r^T A u\), the verifier can check that condition by querying one bit in the proof if it has the form \(\pi = {\mathrm{WH}}[w]{\mathrm{WH}}[u]\). For the second part, we use a similar observation.

Verifier \(V_0\)

input: QuadEq instance \(x=(A,b)\) with \(A\in \bbF_2^{m\times n^2}\) and \(b\in\bbF_2^m\)
proof: \(\pi = f g \in \bbF_2^{2^n + 2^{n^2}}\) with \(f \in \bbF_2^n \to \bbF_2\) and \(g \in \bbF_2^{n^2}\to\bbF_2\)
operation:

  • pick \(r\in \bbF_2^m\) at random
  • check \(g(A^T r) = r^T b\)

  • pick \(r,s\in \bbF_2^n\) at random
  • check \(g(r \otimes s) = f(r) g(s)\)

Proof. Let \(u\in\bbF_2^{n^2}\) and \(w\in \bbF_2^{n}\) be such that \(f={\mathrm{WH}}[w]\) and \(g={\mathrm{WH}}[u]\). Suppose \(A (w\otimes w)\neq b\). Then, either \(u \neq w \otimes w\) or \(A u\neq b\). We are to show that in either case the verifier accepts with probability at most \(3/4\).

In case \(Au\neq b\), the first test fails with probability \(1/2\): Since \(g(A^T r)=(A^T r)^T u=r^T A u\), \[ \Pr_{r}\{ g(A^T r) \neq r^T b\} = {\mathrm{dist}}({\mathrm{WH}}[Au], {\mathrm{WH}}[b]) = 1/2\,. \]

In case \(u\neq w\otimes w\), the second test fails with probability \(\ge 1/4\): Let \(Q\) be the vector \(u-w\otimes w\) arranged as an \(n\times n\) matrix, so that \(Q_{i,j} = u_{ij} - w_i w_j\). Since \(f(r)f(s)-g(r\otimes s) = (r\otimes s)^T (u-w\otimes w)=r^T Q s\), \[ \begin{aligned} \Pr_{r,s\in \bbF_2^n}\biggl\{g(r \otimes s) = f(r) g(s)\biggr\} & = \Pr_{r,s\in \bbF_2^n}\{ r^T Q s\neq 0 \}\\ & = \Pr_{s\in \bbF_2^n}\{ Q s\neq 0 \} \cdot \Pr_{r\in \bbF_2^n}\{ r^T Q s\neq 0 \mid Qs \neq 0\} \\ & = 1/2\cdot \Pr_{s\in \bbF_2^n}\{ Q s\neq 0 \}\\ & \ge 1/2\,. \end{aligned} \] The last step uses that every \(Q\neq 0\) satisfies \(\Pr_{s\in \bbF_2^n}\{ Q s\neq 0 \} \ge 1/2\). x

We conclude that in both cases, the acceptance probability of \(V_0\) is at most \(3/4\). \(\qed\)

It remains to compose \(V_0\) with other verifiers such that resulting verifier accepts with high probability only if \(\pi\) is close in Hamming distance to some correct satisfiability proof. The key component is a way of testing whether testing whether a string is close to a Walsh-Hadamard encoding by querying only three positions of the string.

Local testing for Walsh-Hadamard

The following theorem shows that by querying three positions of a string it is possible to check whether it is close to a Walsh-Hadamard encoding.

Theorem (linearity test): Let \(f\from \bbF_2^n \to \bbF_2\) be a function. Suppose that for \(\e \ge 1/2\), \[ \Pr_{r,s\in \bbF_2^n}\biggl\{f(r + s) = f(r) + f(s) \biggr\} \ge 1-\e\,. \] Then, \({\mathrm{dist}}(f,{\mathrm{WH}}[x])\le \e\) for some \(x\in \bbF_2^n\).

The proof of this theorem uses Fourier analysis.

Interlude: Fourier analysis

The linearity test theorem is about \(\bbF_2\)-valued functions. It turns out that it is useful to consider the corresponding real-valued function.

Let \(f \from \bbF_2^n \to \bbF_2\) be a function. Consider the corresponding real-valued function \(F\from \bbF_2^n \to \R\), defined as \[ F(r) = (-1)^{f(r)}\,. \] Suppose that the linearity test accepts \(f\) with probability \(1-\e\), so that \[ \Pr_{r,s\in \bbF_2^n}\biggl\{f(r + s) = f(r) + f(s) \biggr\}=1-\e\,. \] The acceptance probability of the linearity test corresponds to the value of the following cubic form in \(F\), \[ F \mapsto \E_{r,s\in\bbF_2^n} F(r) F(r+s) F(s) \,. \label{eq:cubic-form} \] Indeed, \[ \E_{r,s\in\bbF_2^n} F(r) F(r+s) F(s) = \E_{r,s\in\bbF_2^n} (-1)^{f(r) + f(s) + f(r+s)} = \Pr\{\text{accept}\} - \Pr\{\text{reject}\} = 1 - 2\epsilon\,. \label{eq:cubic-form-test} \] Next we introduce a particular basis for real-valued functions on \(\bbF_2^n\). This basis turns out to diaognalize the cubic form \(\eqref{eq:cubic-form}\). Let \(\chi_x\from \bbF_2^n\to \bbF_2^n\) be defined as \[ \chi_x(r) = (-1)^{WH[x](r)} = (-1)^{r^T x} \,. \] The set of functions \(\{ \chi_x \mid x \in \bbF_2^n\}\) is called the Fourier basis. The functions \(\{\chi_x\}\) are also called characters.

Lemma (properties of characters):

  1. every character \(\chi_x\) is a group homomorphism from \((\bbF_2^n,+)\) to \((\R,\cdot)\), \[ \forall r,s \in \bbF_2^n.~\chi_x(r+s) = \chi_x(r)\chi_x(s)\,. \label{eq:1} \]

  2. characters are pairwise orthogonal (w.r.t. to the inner product \(\langle f,g \rangle=\E_{r\in \bbF_2^n} f(r)g(r)\)), \[ \forall x,y \in \bbF_2^n.~ \E_r \chi_x(r)\chi_y(r) = \begin{cases} 1 & x = y\\ 0 & x\neq y \end{cases} \label{eq:2} \]

  3. characters form a basis of the real-valued functions on \(\bbF_2^n\).

Proof. The first property is by definition, \[ \chi_x(r+s) = (-1)^{(r+s)^T x} = (-1)^{r^T x} (-1)^{r^T x} = \chi_x(r)\chi_x(s) \,. \] The second property is equivalent to the fact that different Walsh-Hadamard encodings have distance \(1/2\), \[ \E_{r} \chi_x(r) \chi_y(r) = \E_{r} (-1)^{r^T (x+y)} = \begin{cases} 1 & x = y\\ 0 & x\neq y \end{cases} \] The third property follows because \(\mathrm{span} \{\chi_x\} \subseteq \R^{\bbF_2^n}\) and \(\mathrm{dim\,span} {\chi_x} = \mathrm{dim} \R^{\bbF_2^n}\) imply \(\mathrm{span} \{\chi_x\} = \R^{\bbF_2^n}\). \(\qed\)

Since the characters form a basis for real-valued functions on \(\bbF_2^n\), we can decompose \(F\) as a linear combination of characters, \[ F = \sum_x c_x \chi_x\,. \label{eq:3} \] The numbers \(\{c_x\mid x\in \bbF_2^n\}\) are called the Fourier coefficients of \(F\).

Lemma (properties of \(\{c_x\}\)).

  1. Normalization: \(\sum_{x\in \bbF_2^n} c_x^2=1\,.\)

  2. Linearity test diagonalization: \(\sum_x c_x^3 =\E_{r,s\in \bbF_2^n} F(r)F(r+s)F(s)\,.\)

  3. Hamming distance to Walsh-Hadamard code: \(c_x = 1- 2 \cdot {\mathrm{dist}}(f,WH[x])\,.\)

Proof. The first property holds because \[ 1 = \E_r F(r)^2 = \sum_x,y c_x c_y \E_r \chi_x(r) \chi_y(r) = \sum_x c_x^2\,. \] The second property holds because \[ 1-2\epsilon=\E_{r,s} F(r)F(r+s)F(s) = \sum_{x,y,z} c_x c_y c_z \E_{r,s} \chi_x(r)\chi_y(r+s)\chi_z(s) = \sum_x c_x^3\,. \] The proof of the third property is an exercise. \(\qed\)

Proof of linearity test theorem

Suppose that the linearity test accepts the function \(f\from \bbF_2^n\to \bbF_2\) with probability \(1-\e\). Let \(\{c_x \mid x \in \bbF_2^n\}\) be the Fourier coefficients of the function \((-1)^f\). Since the Fourier basis diagonalizes the cubic form that corresponds to the linearity test, \[ 1-2\e = \sum_{x\in \bbF_2^n} c_x^3 \le \max_{x\in \bbF_2^n} c_x \cdot \sum_{x\in \bbF_2^n} c_x ^2 = \max_{x\in \bbF_2^n} c_x\,. \] The last step uses the normalization property of the Fourier coefficients. By the relationship between Fourier coefficients and Hamming distance to Walsh-Hadmard encodings, it follows that \[ \min_{x \in \bbF_2^n} {\mathrm{dist}}( f, {\mathrm{WH}}[x]) = 1/2 - \max_{x\in \bbF_2^n} c_x/2 \le \e\,. \qed \]

Local correcting for Walsh-Hadamard

The verifier \(V_0\) (see above) assumed that the supplied proof is a Hadamard encoding. The linearity test (see above) allows us to say that without loss of generality the supplied proof is close to a Hadamard encoding. Unfortunately, it’s not clear that \(V_0\) correctly works on proofs that are close to Hadamard encodings because some positions of the supplied proof are much more likely to be queried by \(V_0\) than other positions. (Exercise.)

The last ingredient of the exponential-size PCP system is a randomized procedure that is able to reliably reconstruct any particular position of a Walsh-Hadamard encoding given query-access to a string close to it.

Lemma (local correcting for Walsh-Hadamard).

Let \(f\from \bbF_2^n\to \bbF_2\) and \(x\in \bbF_2^n\). Suppose \({\mathrm{dist}}(f,{\mathrm{WH}}[x])\le \e\). Then for every \(r\in \bbF_2^n\), \[ \Pr_{s\in \bbF_2^n}\biggl\{ {\mathrm{WH}}[x](r) = f(r+s) + f(s) \biggr\} \ge 1-2\e\,. \] In particular, there exists a randomized algorithm \(Q\) that given input \(r\) and query access to \(f\) outputs \({\mathrm{WH}}[x](r)\) with probability \(1-2\e\) by making only \(2\) queries to \(f\), \[ \Pr\biggl\{ Q^f(r) = {\mathrm{WH}}[x](r) \biggr\}\ge 1-2\e\,. \]

Exponential-size PCP system II

We prove now the following theorem which gives an exponential-size PCP system. In fact we will prove a stronger property of the verfier:

Theorem (Exponential-size PCP of proximity). There exists a randomized poly-time algorithm \(V\) such that for every instance \(x\) of QuadEq,

  • YES: If \(\pi\) is a correct satisfiability proof for \(x\) (in the sense of \(\eqref{eq:correct-satisfiability-proof}\)), then \[\Pr \biggl\{ V^\pi(x)=1 \biggr\} = 1\,,\]
  • NO: If \(\pi\) is not \(0.01\)-close to some correct satisfiability proof for \(x\) (in the sense of \(\eqref{eq:correct-satisfiability-proof}\)), then \[\Pr \biggl\{ V^\pi(x)=1 \biggr\} < 0.99\,.\]
  • Queries: The computation \(V^\pi(x)\) queries only \(O(1)\) positions in \(\pi\) (independent of the length of \(x\)).
  • Randomness: The computation \(V^\pi(x)\) uses at most \(O( |x|)\) random bits.

Here is the final construction of the verifier \(V\).

Verifier \(V\)

input: QuadEq instance \(x=(A,b)\) with \(A\in \bbF_2^{m\times n^2}\) and \(b\in\bbF_2^m\)
proof: \(\pi = f g \in \bbF_2^{2^n + 2^{n^2}}\) with \(f \in \bbF_2^n \to \bbF_2\) and \(g \in \bbF_2^{n^2}\to\bbF_2\)
operation:

  1. Run linearity tests on both \(f\) and \(g\) in order to check that both \(f\) and \(g\) are close to Hadmard encodings of strings \(u\) and \(w\) (total of 6 queries).
  2. Run the verifier \(V_0\) in order to check whether \(u\) and \(w\) are satisfying assignments for the instance \(x\). Here, \(V_0\) accesses the supplied proof \(\pi\) indirectly through the local correcting algorithm \(Q\). (Each of the four queries of \(V_0\) gets translated by \(Q\) to two queries in \(\pi\), which makes a total of 8 queries.)

Proof. Suppose \(V\) given \(x\) and \(\pi\) accepts with probability at least \(0.99\). We are to show that \(\pi\) is \(0.01\)-close to a correct satisfiability proof for \(x\).

Let \(\e=0.01\). If \(V\) accepts with probability at least \(1-\e\), then in particular the linearity tests accept with probability at least \(1-\e\). Therefore, both \(f\) and \(g\) are \(\e\)-close to Walsh-Hadamard encodings \({\mathrm{WH}}[w]\) and \({\mathrm{WH}}[u]\) for some \(w\in \bbF_2^n\) and \(u\in \bbF_2^{n^2}\). We can lower bound the acceptance probability of \(V_0\) on the proof \(\pi'={\mathrm{WH}}[w]{\mathrm{WH}}[u]\), \[ \Pr\biggl\{ V_0^{\pi'}(x) \biggr\} \ge \Pr\biggl\{ V_0^{Q^f Q^g}(x) \biggr\} - 4\cdot 2 \e \ge 1-9 \e > 3/4\,. \label{eq:v0-corrected} \] Here, \(V_0^{Q^f Q^g}(x)\) denotes the output of \(V_0\) on input \(x\) when accessing the proof \(\pi=f g\) indirectly through the local correcting algorithm \(Q\). The first step uses that \(Q\) answers all queries of \(V_0\) correctly with probability at least \(1-4\cdot 2\e\) because each of the four queries of \(V_0\) fails with probability at most \(2\e\).

By the NO case property of \(V_0\), the lower bound \(\eqref{eq:v0-corrected}\) on the acceptance probability of \(V_0\) implies that \(\pi'\) is a correct satisfiability proof, which means that \(x\) is satisfiable and that \(\pi\) is \(\e\)-close to a correct satisfiability proof. \(\qed\)


  1. See the second exercise of homework 2 for a formalization of this statement.