Main

Lecture 6: Complexity II

Randomness in the verifier: BPP low in the polynomial hierarchy (Sipser–Gács); a prover + coin-flipping verifier captures PSPACE (IP=PSPACE via arithmetization, SumCheck); and, made local, PCP.

Last updated 27 June 2026

Lecture 6 — Complexity Theory II: Interactive Proofs, IP=PSPACE, and PCP

Course 2-INF-135/15 Pravdepodobnostné algoritmy, LS 2025/26. Source slides: RA_zlozitostII_tlac.pdf (34 pages) and RA_slidy_IPaPSPACEPCPstart_tlac.pdf (38 pages). Štátnicové syllabus topics covered here: the polynomial hierarchy; BPP inside the hierarchy (Sipser–Gács BPPΣ2pΠ2p\mathrm{BPP}\subseteq\Sigma_2^p\cap\Pi_2^p); interactive proofs IP, public vs. private coins, Arthur–Merlin classes AM/MA; graph non-isomorphism GNIAM[2]\mathrm{GNI}\in\mathrm{AM}[2] and the set–lower-bound protocol; IP=PSPACE\mathrm{IP}=\mathrm{PSPACE} via arithmetization and SumCheck; the PCP theorem NP=PCP[logn,O(1)]\mathrm{NP}=\mathrm{PCP}[\log n,O(1)], linearity testing, self-correction, and inapproximability.


The one-paragraph map of the whole lecture

So far “randomness” lived inside the algorithm. This lecture puts randomness inside a verifier and asks what a coin-flipping checker can be convinced of. Three movements, each a famous theorem.

  1. Where does BPP sit? A randomized decider with two-sided error is not obviously anywhere in the classical hierarchy. Sipser–Gács pins it down: $\mathrm{BPP} \subseteq \Sigma_2^p \cap \Pi_2^p$ — only two quantifier alternations above P. The whole proof is one clever idea: a large set of random witnesses can be shifted a few times to cover the entire cube, a small one never can.

  2. What can a prover convince a randomized verifier of? If the prover is all-powerful and the verifier flips coins and interacts, the answer is astonishingly large: IP=PSPACE\mathrm{IP}=\mathrm{PSPACE} (Shamir). The engine is arithmetization — turn a Boolean formula into a polynomial — plus the SumCheck protocol, where the verifier pins down a giant exponential sum by asking for one low-degree polynomial per variable and spot-checking it at a random point. The same idea handles graph non-isomorphism cheaply ($\mathrm{GNI}\in \mathrm{AM}$), which is evidence that graph isomorphism is not NP-complete.

  3. How short and how local can a proof be? Shockingly local. The PCP theorem says NP=PCP[O(logn),O(1)]\mathrm{NP}=\mathrm{PCP}[O(\log n),O(1)]: every NP statement has a proof you can verify by flipping O(logn)O(\log n) coins and reading only a constant number of bits. Its alter ego is the hardness of approximation: getting a good approximation for Max-3-SAT (or Max-Clique / Independent Set) is as hard as solving it exactly. We build the bottom layer by hand: linearity testing, self-correction, and arithmetization give $\mathrm{NP}\subseteq \mathrm{PCP}[O(n^3),O(1)]$.

The unifying thread: arithmetization + a random spot-check. Convert “is this formula satisfied / how many ways” into “does this polynomial equal that value,” then exploit the one magic fact about low-degree polynomials — two different degree-dd polynomials agree on at most dd points, so a random point exposes any lie.


Part I — The polynomial hierarchy and BPP

1. The polynomial hierarchy (PH)

NP is “\exists a short witness, checkable in poly time.” coNP is “\forall short witnesses…”. The polynomial hierarchy is what you get by stacking quantifier alternations. Fix a poly-time machine MM and a polynomial qq.

Σ2p:xL    y{0,1}q(x) z{0,1}q(x) M(x,y,z)=1,\Sigma_2^p:\quad x\in L \iff \exists y\in\{0,1\}^{q(|x|)}\ \forall z\in\{0,1\}^{q(|x|)}\ M(x,y,z)=1,
Π2p:xL    y{0,1}q(x) z{0,1}q(x) M(x,y,z)=1.\Pi_2^p:\quad x\in L \iff \forall y\in\{0,1\}^{q(|x|)}\ \exists z\in\{0,1\}^{q(|x|)}\ M(x,y,z)=1.

In general LΣipL\in\Sigma_i^p if there is a poly-time MM and polynomial qq with

xL    u1u2u3Qiui  M(x,u1,,ui)=1,x\in L \iff \exists u_1\,\forall u_2\,\exists u_3\cdots Q_i u_i\ \ M(x,u_1,\dots,u_i)=1,

with ii alternating quantifiers (the uj{0,1}q(x)u_j\in\{0,1\}^{q(|x|)}), starting with \exists. The class Πip=coΣip\Pi_i^p = \mathrm{co}\Sigma_i^p starts with \forall. Then

Σ1p=NP,Π1p=coNP,PH=i1Σip.\Sigma_1^p=\mathrm{NP},\quad \Pi_1^p=\mathrm{coNP},\qquad \mathrm{PH}=\bigcup_{i\ge1}\Sigma_i^p.

Intuition. Think of a two-player game with a bounded number of moves. “yz\exists y\,\forall z” is “I (the prover) make a move yy; you (the refuter) reply zz; I win iff MM accepts.” Σi\Sigma_i = the existential player moves first and the game lasts ii rounds. PH measures how many rounds of this debate you need.

A concrete Σ2p\Sigma_2^p statement worth keeping: kk is the size of the maximum independent set.”\exists an IS of size kk” is plain NP. “kk is the maximum” needs a second quantifier: \exists an IS of size kk such that \forall vertex sets of size k+1k+1, that set is not independent — an \exists\forall, i.e. Σ2p\Sigma_2^p statement.

Punchline — the collapse principle. The hierarchy is believed to be strict (infinitely many genuinely harder levels), but it is fragile from below:

Σip=Πip  PH=Σip(collapse to level i),P=NP  PH=P.\Sigma_i^p=\Pi_i^p \ \Rightarrow\ \mathrm{PH}=\Sigma_i^p \quad(\text{collapse to level }i), \qquad \mathrm{P}=\mathrm{NP}\ \Rightarrow\ \mathrm{PH}=\mathrm{P}.
One coincidence anywhere makes everything above it cave in. “PH collapses” is therefore the standard way to say “this would be a shocking coincidence” — and it is exactly the currency we will pay in §6 (if GI were NP-complete, PH collapses).

2. Adleman & the target: where is BPP?

Two facts frame the question. First, the easy non-uniform bound (proved earlier in the course):

Theorem (Adleman). BPPP/poly\mathrm{BPP}\subseteq\mathrm{P/poly}.

i.e. with polynomial advice (a good random string hard-wired per input length), randomness is free. But P/poly contains undecidable languages — it is too coarse to say BPP is “almost P.” We want a uniform bound. The headline:

Theorem (Sipser–Gács–Lautemann).  BPPΣ2pΠ2p.\ \mathrm{BPP}\subseteq\Sigma_2^p\cap\Pi_2^p.

So a two-sided-error randomized class sits just two alternations above P — strong evidence BPP is genuinely low (and consistent with the belief BPP = P).

3. The Sipser–Gács proof — covering the cube by shifts

Let MM be a BPP machine for LL using m=p(n)m=p(n) random bits. First amplify the success probability (run many times, majority vote) until the error is below 2n2^{-n}:

xLSx(12n)2m,xLSx<2mn,x\in L \Rightarrow |S_x|\ge (1-2^{-n})\,2^m,\qquad x\notin L \Rightarrow |S_x| < 2^{\,m-n},

where Sx={r{0,1}m:M(x,r)=1}S_x=\{r\in\{0,1\}^m : M(x,r)=1\} is the set of accepting random strings. So “xLx\in L\approxSxS_x is almost everything”; “xLx\notin L\approxSxS_x is a tiny 2n2^{-n} sliver.”

The trick is to detect “big vs. tiny” with two quantifiers using XOR-shifts. For t{0,1}mt\in\{0,1\}^m let Sxt={rt:rSx}S_x\oplus t=\{r\oplus t : r\in S_x\} — the set translated by tt (a bijection of the cube, so Sxt=Sx|S_x\oplus t|=|S_x|). Set k=m/nk=\lceil m/n\rceil.

Claim. xL    t0,,tk{0,1}m r{0,1}m: i=0k[rSxti]x\in L \iff \exists\,t_0,\dots,t_k\in\{0,1\}^m\ \forall r\in\{0,1\}^m:\ \displaystyle\bigvee_{i=0}^{k} \big[\,r\in S_x\oplus t_i\,\big] — i.e. a few shifts of SxS_x cover the entire cube. Equivalently r i: M(x,rti)=1\forall r\ \exists i:\ M(x,\,r\oplus t_i)=1.

This is literally a Σ2p\Sigma_2^p formula (\exists shifts r\forall r). Two directions:

If xLx\notin L (SxS_x tiny), no shifts can cover. A union of k+1k+1 shifts has size at most

i=0k(Sxti)(k+1)Sx(1+mn)2mn<2m\Big|\bigcup_{i=0}^k (S_x\oplus t_i)\Big| \le (k+1)\,|S_x| \le \Big(1+\big\lceil\tfrac mn\big\rceil\Big)2^{\,m-n} < 2^m
for n2n\ge 2 — strictly smaller than the cube. So for every choice of shifts some rr is missed; the r\forall r clause fails. (This is the Π2\Pi_2 half: $x\notin L \Rightarrow \forall t_0\dots t_k\ \exists r\ \forall i\ M(x,r\oplus t_i)=0$.)

If xLx\in L (SxS_x huge), random shifts cover w.h.p. Pick t0,,tkt_0,\dots,t_k uniformly. For a fixed rr,

Pr[rSxti]=Pr[rtiSx]=1Sx2m2n,\Pr[\,r\notin S_x\oplus t_i\,]=\Pr[\,r\oplus t_i\notin S_x\,]=1-\tfrac{|S_x|}{2^m}\le 2^{-n},
and the tit_i are independent, so Pr[r uncovered by all i]2n(k+1)\Pr[\,r\text{ uncovered by all }i\,]\le 2^{-n(k+1)}. Union bound over the 2m2^m values of rr:
Pr[r uncovered]2m2n(k+1)=2mn(k+1)<1,\Pr[\exists r\text{ uncovered}] \le 2^m\cdot 2^{-n(k+1)} = 2^{\,m-n(k+1)} < 1,
since n(k+1)n(mn+1)=m+n>mn(k+1)\ge n(\tfrac mn+1)=m+n>m. Probability of failure <1<1 means some choice of shifts covers everything — the \exists is satisfiable. ∎

Professor-pleaser — the one idea. The whole theorem is a set-size test with quantifiers: a set that fills almost the whole cube can be translated k+1k+1 times to tile the cube; a set that is an exponentially small sliver provably cannot — its k+1k+1 copies don’t have enough total mass. “\exists shifts that cover” is a Σ2\Sigma_2 sentence, and because BPP is closed under complement we also get the Π2\Pi_2 sentence, hence BPPΣ2pΠ2p\mathrm{BPP}\subseteq\Sigma_2^p\cap\Pi_2^p. The probabilistic method (“failure probability <1<1 ⇒ a good object exists”) is doing the existential work — the same move as everywhere else in the course, now used to populate a quantifier.


Part II — Interactive proofs

4. What an interactive proof is

A classical NP-proof is a static string the verifier reads once. An interactive proof is a conversation: a (possibly cheating) prover PP of unbounded computational power tries to convince a probabilistic, polynomial-time verifier VV that xLx\in L. They exchange messages; the verifier has the last word.

The cast. VV = “the examiner”: poly-time, flips private coins. PP = “the student / oracle”: unlimited power, does not see VV’s random bits (in the private-coin model). The verifier must be convincible by a truthful prover and un-foolable by a lying one.

xL  P: Prr[V accepts in (V,P)]23(completeness),x\in L \ \Rightarrow\ \exists P:\ \Pr_r[\,V \text{ accepts in }(V,P)\,]\ge \tfrac23\quad(\textbf{completeness}),
xL  P: Prr[V accepts in (V,P)]<13(soundness).x\notin L \ \Rightarrow\ \forall P:\ \Pr_r[\,V \text{ accepts in }(V,P)\,]< \tfrac13\quad(\textbf{soundness}).

IP\mathrm{IP} = languages with such a protocol (poly many rounds). As always, the 23/13\tfrac23/\tfrac13 gap can be amplified to 12n/2n1-2^{-n}/2^{-n} by repetition.

Why this is more powerful than NP. In NP the prover commits to one fixed proof. Here the verifier asks random, unpredictable questions: the prover would have to have prepared a consistent answer to all of them at once, which a cheating prover cannot. The randomness is the verifier’s leverage. (NP = IP with zero coins and one message.)

5. Public vs. private coins; Arthur–Merlin

The protocol above uses private coins: PP never learns rr. A weaker-looking model uses public coins — the verifier’s messages are its random bits, sent in the clear. This is the Arthur–Merlin model (Arthur = the poor mortal king who can only flip coins; Merlin = the all-knowing wizard/prover).

Public coins look strictly weaker — surely hiding the coins helps the verifier? The surprise:

Theorem (Goldwasser–Sipser).  IP[k]AM[k+2].\ \mathrm{IP}[k]\subseteq\mathrm{AM}[k+2]. Private coins buy almost nothing: any private-coin protocol becomes a public-coin one with two extra rounds.

The mechanism: instead of secretly tossing rr and acting on it, Arthur tosses public coins, Merlin is then asked to certify properties of those coins (e.g. “this random hash hit the set”) without further use of hidden randomness. The set–lower-bound protocol below is exactly this in action.

6. Graph Non-Isomorphism is in AM — the set lower-bound protocol

The poster child: GNI (given G1,G2G_1,G_2, decide G1≇G2G_1\not\cong G_2). GNI is in coNP (a single isomorphism refutes “non-isomorphic”), but no short certificate of non-isomorphism is known — yet it has a 2-message Arthur–Merlin proof.

Theorem.  GNIAM[2].\ \mathrm{GNI}\in\mathrm{AM}[2].

The idea: count by hashing. Consider the set of “graphs reachable from the inputs together with a witnessing automorphism”:

S={(H,π) : HG1 or HG2, πaut(H)}.S=\{(H,\pi)\ :\ H\cong G_1 \text{ or } H\cong G_2,\ \pi\in\mathrm{aut}(H)\}.
For each input GiG_i, the number of distinct labelings HGiH\cong G_i is n!/aut(Gi)n!/|\mathrm{aut}(G_i)|, and each such HH contributes aut(H)=aut(Gi)|\mathrm{aut}(H)|=|\mathrm{aut}(G_i)| pairs — so GiG_i alone contributes exactly n!n! pairs. Therefore
G1G2S=n!,G1≇G2S=2n!.G_1\cong G_2 \Rightarrow |S|=n!,\qquad G_1\not\cong G_2 \Rightarrow |S|=2\cdot n!.
Non-isomorphism doubles the set. If Arthur can tell “size n!n!” from “size 2n!2n!” with Merlin’s help, he’s done. That is the generic problem:

Set lower-bound problem. P,VP,V both know a set S{0,1}mS\subseteq\{0,1\}^m (membership in SS is certifiable) and a threshold KK. We want a protocol where

  • if SK|S|\ge K, the prover convinces VV w.h.p.;
  • if SK/2|S|\le K/2, VV rejects w.h.p. (Here K=2n!K=2\cdot n! vs. S=n!=K/2|S|=n!=K/2.)

The protocol uses pairwise-independent (universal) hashing. Pick kk with 2k2<K2k12^{k-2}<K\le 2^{k-1} and a hash family H(m,k)\mathcal H(m,k) of functions h:{0,1}m{0,1}kh:\{0,1\}^m\to\{0,1\}^k that is pairwise independent: for any xxx\ne x', the pair (h(x),h(x))(h(x),h(x')) is uniform on {0,1}k×{0,1}k\{0,1\}^k\times\{0,1\}^k.

Protocol (one round, public coin).

  1. Arthur picks hRH(m,k)h\in_R \mathcal H(m,k) and yR{0,1}ky\in_R\{0,1\}^k, sends (h,y)(h,y).
  2. Merlin sends some xSx\in S with h(x)=yh(x)=y, plus a certificate that xSx\in S.
  3. Arthur accepts iff the certificate checks and h(x)=yh(x)=y.

Arthur is asking: “does the random hash bucket yy contain an element of SS?” A big SS hits a random bucket; a small SS usually misses.

Lemma. Let hH(m,k)h\in\mathcal H(m,k), S{0,1}mS\subseteq\{0,1\}^m with S2k1|S|\le 2^{k-1}, and p=S/2kp=|S|/2^k. Then

p  Prh,y[xS: h(x)=y]  34p.p\ \ge\ \Pr_{h,y}[\exists x\in S:\ h(x)=y]\ \ge\ \tfrac34\,p.
(Even pointwise: for every fixed yy, Prh[xS:h(x)=y]34p\Pr_h[\exists x\in S:h(x)=y]\ge \tfrac34 p.)

Proof of the lower bound (inclusion–exclusion / Bonferroni). Let ExE_x be the event h(x)=yh(x)=y. Then Pr[Ex]=2k\Pr[E_x]=2^{-k} and (pairwise independence) Pr[ExEx]=22k\Pr[E_x\cap E_{x'}]=2^{-2k}. By Bonferroni,

Pr[xSEx]  xSPr[Ex]12xxPr[ExEx]=S2k12S222k=p12p2  34p,\Pr\Big[\bigcup_{x\in S}E_x\Big]\ \ge\ \sum_{x\in S}\Pr[E_x]-\tfrac12\sum_{x\ne x'}\Pr[E_x\cap E_{x'}] = \frac{|S|}{2^k}-\frac12\frac{|S|^2}{2^{2k}} = p-\tfrac12 p^2 \ \ge\ \tfrac34 p,
using p12p\le\tfrac12. The upper bound pp is the plain union bound. ∎

So the acceptance probability is 34p\ge\tfrac34 p when SK|S|\ge K and p\le p when SK/2|S|\le K/2 (where the relevant pp halves) — a constant multiplicative gap. With the calibration p=K/2kp^*=K/2^k, Arthur accepts iff the fraction of accepting repetitions is at least 58p\tfrac{5}{8}p^*; Chernoff over a constant number of repetitions pushes the gap to 23\tfrac23 vs. 13\tfrac13. ∎

Professor-pleaser. GNI has no known short classical certificate, yet a verifier who can flip coins decides it in two messages — by reducing “are these graphs non-isomorphic” to “is this set twice as big,” and deciding that by checking whether a random hash bucket is occupied. This is the prototype of “interaction + randomness > static proof.”

7. The structure of AM and MA

A run of small but important structural facts (state them; the proofs reuse the Sipser–Gács shift trick).

Perfect completeness. Both MA and AM can be made to never reject a true statement:

MA: xLy Prz[V(x,y,z)=1]=1;AM: xLPry[z V(x,y,z)=1]=1.\text{MA: } x\in L\Rightarrow \exists y\ \Pr_z[V(x,y,z)=1]=1;\qquad \text{AM: } x\in L\Rightarrow \Pr_y[\exists z\ V(x,y,z)=1]=1.
The proof is exactly the covering-by-shifts argument of §3: amplify so accepting random strings fill almost the cube, then let the prover supply k+1k+1 shifts t0,,tkt_0,\dots,t_k that cover it; Arthur checks he accepts on some rtir\oplus t_i.

Collapse of the hierarchy of rounds. Public-coin interaction with a constant number of rounds gives nothing beyond two:

MAAM,AM[k]=IP[k]=AM[2]=AM(k=O(1)).\mathrm{MA}\subseteq\mathrm{AM},\qquad \mathrm{AM}[k]=\mathrm{IP}[k]=\mathrm{AM}[2]=\mathrm{AM}\quad(k=O(1)).
(“MAM=AM\mathrm{MAM}=\mathrm{AM}, AMM=AM\mathrm{AMM}=\mathrm{AM}” — adjacent same-player moves merge, and a leading Merlin can be swapped past an Arthur.) So for constant rounds there is essentially one Arthur–Merlin class, AM.

Location in PH. Unwinding the quantifiers:

MAΣ2pΠ2p,AMΠ2p.\mathrm{MA}\subseteq\Sigma_2^p\cap\Pi_2^p,\qquad \mathrm{AM}\subseteq\Pi_2^p.
Sketch for MA Π2p\subseteq\Pi_2^p vs. the matching Σ2\Sigma_2 characterization: a perfectly complete MA is “xLmr V(x,m,r)=1x\in L \Rightarrow \exists m\,\forall r\ V(x,m,r)=1” (that’s Σ2\Sigma_2), while “xLmr V(x,m,r)=0x\notin L \Rightarrow \forall m\,\exists r\ V(x,m,r)=0” gives the Π2\Pi_2 side. AM is “xLrmx\in L\Rightarrow \forall r\,\exists m” / “xLrmx\notin L\Rightarrow \exists r\,\forall m” — a Π2\Pi_2 pattern.

Theorem (Boppana–Håstad–Zachos). If  coNPAM\ \mathrm{coNP}\subseteq\mathrm{AM}, then  PH=Σ2p\ \mathrm{PH}=\Sigma_2^p (the hierarchy collapses to the second level).

Idea. Since AMΠ2p\mathrm{AM}\subseteq\Pi_2^p, it suffices to show $\Sigma_2^p\subseteq \mathrm{AM}$ under the hypothesis. Take LΣ2pL\in\Sigma_2^p, so $x\in L\iff\exists y,(x,y)\in L’$ with LΠ1p=coNPL'\in\Pi_1^p=\mathrm{coNP}. Build an MAM protocol: Merlin sends yy, then run the assumed AM protocol for the coNP statement (x,y)L(x,y)\in L'. Thus $L\in \mathrm{MAM}=\mathrm{AM}, so $\Sigma_2^p\subseteq\mathrm{AM}\subseteq\Pi_2^p, forcing the collapse. ∎

Corollary (evidence GI is not NP-complete). If  GINPC\ \mathrm{GI}\in\mathrm{NPC}, then  PH=Σ2p\ \mathrm{PH}=\Sigma_2^p.

Why: if GI were NP-complete, then its complement GNI would be coNP-complete; since GNIAM\mathrm{GNI}\in\mathrm{AM} (§6) and AM is closed appropriately, every coNP language reduces into AM, i.e. coNPAM\mathrm{coNP}\subseteq\mathrm{AM}, and Boppana–Håstad–Zachos collapses PH. Almost nobody believes PH collapses — so almost nobody believes GI is NP-complete. This is the precise sense in which “graph isomorphism is probably not NP-complete,” and AM is the tool that says it.


Part III — IP = PSPACE

The crowning theorem of interactive proofs: an all-powerful prover and a coin-flipping verifier can settle any problem solvable in polynomial space.

Theorem (Shamir 1990).  IP=PSPACE.\ \mathrm{IP}=\mathrm{PSPACE}.

Two inclusions.

8. The easy direction: IP ⊆ PSPACE

Given an IP protocol, we want to decide, in polynomial space, whether the best prover makes VV accept with probability 23\ge\tfrac23. The interaction is a game tree: at each prover move we maximize, at each verifier coin-flip we average. The verifier uses r(n)r(n) private random bits and the prover sends messages of length m(n)m(n); both polynomial. We can evaluate the optimal acceptance probability by recursively walking this tree — r{0,1}r(n)\forall r\in\{0,1\}^{r(n)}, simulating the VVPP communication for each prover response m{0,1}m(n)m\in\{0,1\}^{m(n)} — reusing space across branches. Polynomial space suffices because the tree has polynomial depth and we never store a whole level. ∎

9. The hard direction: PSPACE ⊆ IP — arithmetization

We give an interactive protocol for a PSPACE-complete problem, TQBF (true fully quantified Boolean formulas). Warm up on counting first.

9a. Arithmetization — Boolean formulas become polynomials

Replace logic by arithmetic over the integers (later reduced mod a prime):

¬x(1x),xyxy,xy1(1x)(1y).\neg x \rightsquigarrow (1-x),\qquad x\wedge y \rightsquigarrow x\cdot y,\qquad x\vee y \rightsquigarrow 1-(1-x)(1-y).
A formula φ(x1,,xn)\varphi(x_1,\dots,x_n) with mm clauses becomes a polynomial Pφ(X1,,Xn)=jmpj(X1,,Xn)P_\varphi(X_1,\dots,X_n)=\prod_{j\le m} p_j(X_1,\dots,X_n) that agrees with φ\varphi on {0,1}n\{0,1\}^n:
φ(x1,,xn)=1    Pφ(x1,,xn)=1.\varphi(x_1,\dots,x_n)=1 \iff P_\varphi(x_1,\dots,x_n)=1.
Example: φ=(xyz)(¬xyz)(x¬yz)\varphi=(x\vee y\vee z)\wedge(\neg x\vee y\vee z)\wedge(x\vee\neg y\vee z) arithmetizes to
Pφ=(1(1X)(1Y)(1Z))(1X(1Y)(1Z))(1(1X)Y(1Z)).P_\varphi=\big(1-(1-X)(1-Y)(1-Z)\big)\big(1-X(1-Y)(1-Z)\big)\big(1-(1-X)Y(1-Z)\big).

The number of satisfying assignments of φ\varphi is then an exponential sum:

#φ=b1{0,1}bn{0,1}Pφ(b1,,bn).\#\varphi=\sum_{b_1\in\{0,1\}}\cdots\sum_{b_n\in\{0,1\}} P_\varphi(b_1,\dots,b_n).
So #3SATD={(φ,K):φ\#\mathrm{3SAT}_D=\{(\varphi,K):\varphi has exactly KK satisfying assignments}\} becomes: “bPφ(b)=K\sum_{b} P_\varphi(b)=K.” We will verify such a sum interactively.

9b. The SumCheck protocol — the heart of everything

We must convince a poly-time verifier that

K p b1{0,1}bn{0,1}g(b1,,bn),K\ \equiv_p\ \sum_{b_1\in\{0,1\}}\cdots\sum_{b_n\in\{0,1\}} g(b_1,\dots,b_n),
where gg is a polynomial of degree d\le d in each variable, computed mod a prime pp. The verifier cannot evaluate the 2n2^n-term sum directly. Instead it peels one variable at a time and trusts the prover for a single-variable polynomial, then spot-checks at a random point.

SumCheck (prime pp, per-variable degree dd).

  • If n=1n=1: VV checks g(0)+g(1)=Kg(0)+g(1)=K and accepts/rejects.
  • If n2n\ge 2: VV asks PP for the univariate polynomial
    h(X1)=b2,,bn{0,1}g(X1,b2,,bn).h(X_1)=\sum_{b_2,\dots,b_n\in\{0,1\}} g(X_1,b_2,\dots,b_n).
    PP sends a polynomial s(X1)s(X_1) (claiming s=hs=h), with s(0)+s(1)=Ks(0)+s(1)=K.
  • VV rejects if s(0)+s(1)Ks(0)+s(1)\ne K. Otherwise it picks a random aRGF(p)a\in_R\mathrm{GF}(p) and recurses, verifying
    s(a) p b2,,bn{0,1}g(a,b2,,bn)s(a)\ \equiv_p\ \sum_{b_2,\dots,b_n\in\{0,1\}} g(a,b_2,\dots,b_n)
    — a SumCheck on n1n-1 variables with new target K=s(a)K'=s(a).

Why it is sound (the magic fact). If the prover lied, shs\ne h as polynomials. Two distinct degree-d\le d polynomials agree on at most dd points, so a uniformly random aa has s(a)=h(a)s(a)=h(a) with probability d/p\le d/p. Unless the verifier is unlucky, the lie propagates into the recursive call (now the prover must defend a false K=s(a)h(a)K'=s(a)\ne h(a)). Over nn levels,

Pr[V rejects a false claim]  (1dp)n  1ndp,\Pr[\,V\text{ rejects a false claim}\,]\ \ge\ \Big(1-\tfrac dp\Big)^n\ \ge\ 1-\tfrac{nd}{p},
which is overwhelming for a large enough prime pp. The verifier never computes the big sum; it only forces the prover to be consistent between each claimed polynomial and a random evaluation of the next.

This already gives #3SATDIP\#\mathrm{3SAT}_D\in\mathrm{IP} — and #3SATD\#\mathrm{3SAT}_D is #\#P-hard, so interactive proofs already reach the counting hierarchy.

9c. TQBF ∈ IP — handling quantifiers

A TQBF instance B=x1x2x3xnφ(x1,,xn)B=\forall x_1\exists x_2\forall x_3\cdots\exists x_n\,\varphi(x_1,\dots,x_n) arithmetizes by turning quantifiers into sum and product over {0,1}\{0,1\}:

,,xyxy,xyx+y,¬x(1x).\exists \rightsquigarrow \textstyle\sum,\qquad \forall \rightsquigarrow \prod,\qquad x\wedge y\rightsquigarrow xy,\qquad x\vee y\rightsquigarrow x+y,\qquad \neg x\rightsquigarrow(1-x).
Then
BTQBF    A=b1b2bnPφ(b1,,bn)  0.B\in\mathrm{TQBF}\iff A=\prod_{b_1}\sum_{b_2}\cdots\sum_{b_n} P_\varphi(b_1,\dots,b_n)\ \ne\ 0.
The protocol mirrors SumCheck, but a quantifier value is now defended by a univariate polynomial g(z)g(z) with g(0)Jg(1)=Kg(0)\,J\,g(1)=K, where J=+J=+ for an \exists (\sum) and J=J=\cdot for a \forall (\prod); after checking, the verifier substitutes a random aa and recurses on the inner expression. Two technical obstacles must be handled — they are the real content of the proof.

(i) The numbers are astronomically large. A closed QBF of size nn can have arithmetization value as big as O(22n)O(2^{2^n}) — because each \forall (a product) can square the magnitude. (E.g. z1zn(z1++zn)\prod_{z_1}\cdots\prod_{z_n}(z_1+\cdots+z_n) produces a polynomial of degree 2n12^{n-1}.) Fix: work modulo a prime pp of polynomial bit-length. We need A̸p0    BA\not\equiv_p 0 \iff B true, i.e. a prime that does not divide AA. Since A=O(22n)A=O(2^{2^n}) has at most 2n\sim 2^n prime factors, and there are plenty of poly-length primes, the prover can exhibit a prime pp (with a primality certificate) for which A̸p0A\not\equiv_p 0. (If p1pmp_1\cdots p_m all divided AA then pi=Ω(22nd)\prod p_i = \Omega(2^{2^n d}) would exceed A=O(22n)A=O(2^{2^n}) — impossible.)

(ii) The degree blows up. Products of quantifiers raise the polynomial’s degree exponentially, and SumCheck needs low degree. Fix: make the QBF “simple.”

Simple QBF: between a variable and its own quantifier there is at most one \forall in between. Any QBF can be converted to a simple one with only polynomial size growth, by re-introducing each variable as a fresh copy after each \forall it must “survive”:

xyQxyx1(x1=x)Q,(xi=xj)zizj+(1zi)(1zj).\dots x\,\forall y\,Q \rightsquigarrow \dots x\dots\forall y\,\exists x_1\,(x_1=x)\wedge Q, \qquad (x_i=x_j)\rightsquigarrow z_iz_j+(1-z_i)(1-z_j).
Key consequence: if BB is simple, the degree of the polynomial describing the “functional form” grows only linearly in B|B| — so SumCheck stays efficient.

Correctness. With BB simple, the degree tt of the functional form is linear in B|B|, and the per-round error d/pd/p accumulates over the rounds, giving

B falsePr[V accepts]poly(B)p,B\text{ false} \Rightarrow \Pr[V\text{ accepts}]\le \frac{\text{poly}(|B|)}{p},
negligible for the chosen poly-length prime pp. Combined with $\mathrm{IP}\subseteq \mathrm{PSPACE}$ and the PSPACE-completeness of TQBF:
 IP=PSPACE \boxed{\ \mathrm{IP}=\mathrm{PSPACE}\ }

A worked micro-example (from the slides). For B=x1(¬x1x2x3(x1x2x3))B=\forall x_1(\neg x_1\vee \exists x_2\forall x_3(x_1\wedge x_2\vee x_3)) the arithmetization is

A=z1[(1z1)+z2z3(z1z2+z3)A],KpA, K=2.A=\prod_{z_1}\Big[(1-z_1)+\underbrace{\sum_{z_2}\prod_{z_3}(z_1z_2+z_3)}_{A'}\Big],\qquad K\equiv_p A,\ K=2.
Each round: the prover sends a low-degree g(z)g(z) with g(0)Jg(1)=Kg(0)\,J\,g(1)=K (e.g. g(z1)=z12+1g(z_1)=z_1^2+1 giving g(0)g(1)=12=2=Kg(0)\cdot g(1)=1\cdot2=2=K ✓), the verifier checks it, substitutes a random z1=az_1=a, updates KK\leftarrow (the value forced for that branch), and recurses on the inner sum/product — peeling z2z_2 (an \exists, so use “+”), then z3z_3 (a \forall, so use “·”), until no quantifiers remain.

Professor-pleaser — the whole arithmetization philosophy. A Boolean formula is a brittle yes/no object; its polynomial lift is a rigid algebraic object that cannot lie locally. Replace “does this formula hold” with “does this polynomial sum to KK mod pp,” and the single fact “a nonzero low-degree polynomial has few roots” turns one random evaluation into an avalanche of confidence. SumCheck is this fact deployed nn times. This same lift powers the PCP theorem next.


Part IV — Probabilistically Checkable Proofs (PCP)

10. The PCP model

Now make the verifier local: it does not read the whole proof, only a few bits of it, chosen using a few random bits.

Definition. LPCP[r(n),q(n)]L\in\mathrm{PCP}[r(n),q(n)] if there is a probabilistic poly-time verifier VV with oracle access to a proof string Π\Pi that

  • uses r(x)r(|x|) random bits and reads q(x)q(|x|) bits of Π\Pi (efficiency);
  • xLΠ: Prr[VΠ(x,r)=1]=1x\in L\Rightarrow \exists\Pi:\ \Pr_r[V^\Pi(x,r)=1]=1 (completeness, perfect);
  • xLΠ: Prr[VΠ(x,r)=1]<12x\notin L\Rightarrow \forall\Pi:\ \Pr_r[V^\Pi(x,r)=1]<\tfrac12 (soundness).

A tiny PCP for GNI (to fix the picture). Let the proof be a giant table Π(H){0,1}\Pi(H)\in\{0,1\} indexed by all nn-vertex graphs, intended to say “which input is HH isomorphic to.” VV picks bR{0,1}b\in_R\{0,1\} and a random permutation τ\tau, forms H=τ(Gb)H=\tau(G_b), reads the single bit Π(H)\Pi(H), and checks Π(H)=b\Pi(H)=b. If $G_0\not\cong G_1$, an honest table answers correctly every time. If G0G1G_0\cong G_1, the graph HH could equally have come from either input, so the table is wrong with probability 12\ge\tfrac12. (Reads one bit!)

11. The PCP theorem and its two faces

Theorem (PCP, Arora–Safra–Lund–Motwani–Sudan–Szegedy, 1992).

 NP=PCP[O(logn),O(1)] \boxed{\ \mathrm{NP}=\mathrm{PCP}[O(\log n),\,O(1)]\ }

Every NP language has proofs that a verifier checks by tossing O(logn)O(\log n) coins and reading a constant number of bits — yet a false statement is caught with probability 12\ge\tfrac12. Two readings, both fundamental.

Face 1 — locally checkable proofs. There exist robust proof formats: errors are “spread out” so that inspecting O(1)O(1) random symbols already exposes any flaw. A correct proof passes always; a proof of a false statement fails on a constant fraction of the random checks.

Face 2 — hardness of approximation. This is the exam-relevant face.

Theorem (gap form). There is a constant ρ<1\rho<1 such that for every LNPL\in\mathrm{NP} there is a poly-time ff mapping inputs to 3-CNF formulas with

xLval(f(x))=1,xLval(f(x))<ρ,x\in L\Rightarrow \mathrm{val}(f(x))=1,\qquad x\notin L\Rightarrow \mathrm{val}(f(x))<\rho,
where val\mathrm{val} = max fraction of simultaneously satisfiable clauses.

Corollary. There is ρ<1\rho<1 such that a polynomial-time ρ\rho-approximation for Max-3-SAT implies P=NP\mathrm{P}=\mathrm{NP}. Consequently (unless P = NP):

Max-3-SATPTAS,MaxCliquePTAS,Independent Set is hard to approximate.\mathrm{Max\text{-}3\text{-}SAT}\notin\mathrm{PTAS},\qquad \mathrm{MaxClique}\notin\mathrm{PTAS},\qquad \text{Independent Set is hard to approximate.}

Intuition for “gap = inapproximability.” The reduction creates a promise gap: either all clauses are satisfiable, or no assignment beats ρ\rho. An approximation algorithm that always got within a factor better than ρ\rho could tell these two cases apart — and that decides the original NP problem exactly. No gap-crossing algorithm can exist unless P = NP. This is the standard route to Independent Set is hard to approximate asked on the exams.

12. Basic PCP containments

Read these as “the model is robust and the constants are tunable”:

13. PCP ⇔ gap-amplifying reductions

The bridge between “local proofs” and “inapproximability” is a single equivalence.

Definition (gap-amplifying / cc-zosilňujúca reduction). For c<1c<1, a poly-time ff on 3-CNF formulas such that

φSATf(φ)SAT  (maxSAT(f(φ))=1),\varphi\in\mathrm{SAT}\Rightarrow f(\varphi)\in\mathrm{SAT}\ \ (\mathrm{maxSAT}(f(\varphi))=1),
φSATα: f(φ) satisfies c-fraction of clauses  (maxSAT(f(φ))<c).\varphi\notin\mathrm{SAT}\Rightarrow \forall\alpha:\ f(\varphi)\text{ satisfies }\le c\text{-fraction of clauses}\ \ (\mathrm{maxSAT}(f(\varphi))<c).
It manufactures a gap where there was none.

Lemma.  NPPCP[logn,1]    \ \mathrm{NP}\subseteq\mathrm{PCP}[\log n,1] \iff 3SAT has a gap-amplifying reduction.

(\Leftarrow) gap reduction \Rightarrow local verifier. Given ff, the verifier on input φ\varphi uses the proof Π\Pi = a satisfying assignment of f(φ)f(\varphi). It picks a random clause of f(φ)f(\varphi) (its three variable indices i,j,ki,j,k need O(logn)O(\log n) random bits), reads the 3 bits Π(i),Π(j),Π(k)\Pi(i),\Pi(j),\Pi(k), and checks the clause. If φSAT\varphi\in\mathrm{SAT}, f(φ)f(\varphi) is satisfiable, so an honest Π\Pi passes always. If φSAT\varphi\notin\mathrm{SAT}, every assignment leaves (1c)\ge(1-c) of the clauses unsatisfied, so a random clause rejects with probability 1c\ge 1-c — amplify to 12\tfrac12. (O(logn)O(\log n) coins, 33 queries. ✓)

(\Rightarrow) local verifier \Rightarrow gap reduction. Take VV for SAT using clognc\log n random bits and tt queries. For each random string r{0,1}clognr\in\{0,1\}^{c\log n} (there are only polynomially many), determine the queried positions i1,,iti_1,\dots,i_t and the predicate “VV accepts,” build a CNF φr(xi1,,xit)\varphi'_r(x_{i_1},\dots,x_{i_t}) that is true iff V(φ,r,)V(\varphi,r,\cdot) accepts, convert it to 3-CNF φr\varphi_r with auxiliary variables, and set

f(φ):=r{0,1}clognφr.f(\varphi):=\bigwedge_{r\in\{0,1\}^{c\log n}}\varphi_r.
If φSAT\varphi\in\mathrm{SAT} then (completeness) all φr\varphi_r are satisfiable simultaneously, so f(φ)SATf(\varphi)\in\mathrm{SAT}. If φSAT\varphi\notin\mathrm{SAT} then (soundness) every assignment α\alpha has Prr[φr(α)=0]12\Pr_r[\varphi_r(\alpha)=0]\ge\tfrac12; with t=maxr{#clauses in φr}t'=\max_r\{\#\text{clauses in }\varphi_r\}, at least a d=1/(2t)d=1/(2t') fraction of all clauses of f(φ)f(\varphi) are unsatisfied, so at most (1d)(1-d) are satisfied — a constant gap c>1dc>1-d. ∎

Punchline. “Locally checkable proof” and “gap reduction” are literally the same object viewed two ways: the verifier’s accepting condition on a random check is a clause, and “caught with constant probability” is “constant fraction of clauses violated.” This is why the PCP theorem and inapproximability are one statement.

14. Building the bottom layer by hand: NP ⊆ PCP[O(n³), O(1)]

The full PCP theorem composes three pieces:

  1. Exponentially long proof, O(1)O(1) queries — via arithmetization (this section).
  2. Polynomially long proof, polylog queries — via low-degree polynomial equality tests.
  3. A composition lemma stitching (1) into (2) to reach O(logn)O(\log n) coins, O(1)O(1) queries.

We construct step 1: a constant-query verifier for 3-SAT with an exponential proof. The tools are linear functions and their testability.

14a. δ-close functions, linear functions

For finite D,RD,R and f,g:DRf,g:D\to R, write PrxD{P(x)}={x:P(x)}/D\Pr_{x\in D}\{P(x)\}=|\{x:P(x)\}|/|D|. Then f,gf,g are δ\delta-close if

PrxD[f(x)g(x)]δ.\Pr_{x\in D}[\,f(x)\ne g(x)\,]\le \delta.
A function f:Z2mZ2f:\mathbb Z_2^m\to\mathbb Z_2 is linear if f(x+y)=f(x)+f(y)f(x+y)=f(x)+f(y) for all x,yx,y (equivalently f(x)=iaixif(x)=\sum_i a_ix_i for some coefficient vector aa).

Lemma (Blum–Luby–Rubinfeld). Let δ<13\delta<\tfrac13 and suppose g:Z2mZ2g:\mathbb Z_2^m\to\mathbb Z_2 satisfies Prx,y[g(x+y)g(x)+g(y)]δ/2\Pr_{x,y}[\,g(x+y)\ne g(x)+g(y)\,]\le\delta/2. Then there is a linear ff that is δ\delta-close to gg, namely the “plurality vote”

f(x):=the b for which Pry[g(x+y)g(y)=b]12.f(x):=\text{the }b\text{ for which } \Pr_{y}\big[g(x+y)-g(y)=b\big]\ge\tfrac12.

The proof has three beats: (1) f,gf,g are δ\delta-close (else the linearity defect would exceed δ/2\delta/2, contradiction); (2) the vote is overwhelming, pa:=Prx[f(a)=g(a+x)g(x)]1δp_a:=\Pr_x[f(a)=g(a+x)-g(x)]\ge 1-\delta (bootstrapped from 12\ge\tfrac12 using a pairing/second-moment argument 1δpa2+(1pa)2pa1-\delta\le p_a^2+(1-p_a)^2\le p_a); (3) ff is linear, because for fixed a,ba,b,

Prx[f(a)+f(b)+g(x)=f(a+b)+g(x)]13δ>0,\Pr_x[\,f(a)+f(b)+g(x)=f(a+b)+g(x)\,]\ge 1-3\delta>0,
and that probability does not depend on xx, so it is 00 or 11 — hence 11, i.e. f(a)+f(b)=f(a+b)f(a)+f(b)=f(a+b).

14b. Two programs: Linearity Test and Self-Correction

Linearity Test (LT). Input δ<13\delta<\tfrac13, oracle gg. Repeat k=2/δk=\lceil 2/\delta\rceil times: pick x,yRZ2mx,y\in_R\mathbb Z_2^m; if g(x)+g(y)g(x+y)g(x)+g(y)\ne g(x+y) return NO. If all pass, return YES.

g linearYES;g not δ-close to linearPr[NO]12.g\text{ linear}\Rightarrow \text{YES};\qquad g\text{ not }\delta\text{-close to linear}\Rightarrow \Pr[\text{NO}]\ge\tfrac12.

Self-Correcting (SCF). Input xx; oracle gg that is δ\delta-close to a linear ff. Pick yRZ2my\in_R\mathbb Z_2^m and return g(x+y)g(y)g(x+y)-g(y).

Pr[SCF(x)=f(x)]  12δ.\Pr[\,\mathrm{SCF}(x)=f(x)\,]\ \ge\ 1-2\delta.
Why: both g(x+y)f(x+y)g(x+y)\ne f(x+y) and g(y)f(y)g(y)\ne f(y) have probability δ\le\delta (each of x+yx+y and yy is uniform), and ff linear gives f(x+y)f(y)=f(x)f(x+y)-f(y)=f(x); union bound.

Intuition. A table that is mostly a linear function can be read reliably at any single point by averaging over a random “detour” yy — even at points where the table is corrupted. The corruption is diluted because x+yx+y and yy are each individually uniform. Self-correction is what lets a verifier trust an untrusted, slightly-wrong table by reading just two of its entries.

14c. Arithmetizing 3-SAT over Z2\mathbb Z_2, and the proof format

A different arithmetization, tuned for linearity. For a literal: upu=1xuu\mapsto p_u=1-x_u, ¬upu=xu\neg u\mapsto p_u=x_u (so pliteral=0p_{\text{literal}}=0 exactly when the literal is true). A clause C=l1l2l3PC=pl1pl2pl3C=l_1\vee l_2\vee l_3\mapsto P_C=p_{l_1}p_{l_2}p_{l_3} (degree 3; PC=0P_C=0 iff CC is satisfied). A formula Φ=C1Cm\Phi=C_1\wedge\cdots\wedge C_m is satisfied by aa iff all PCi(a)=0P_{C_i}(a)=0.

To test “all =0=0” with one random check, use:

Fact. For vZ2nv\in\mathbb Z_2^n, v0v\ne 0: Prr[irivi=1]=12.\Pr_r\big[\sum_{i} r_iv_i=1\big]=\tfrac12.

So take a random combination Pr,Φ=iriPCiP_{r,\Phi}=\sum_i r_i P_{C_i}. If aa satisfies Φ\Phi, then Pr,Φ(a)=0P_{r,\Phi}(a)=0 for all rr; if aa fails some clause, $\Pr_r[P_{r,\Phi}(a)=1] =\tfrac12$. (Choosing the random combination is essential — testing a fixed PΦP_\Phi would require checking all 2n2^n assignments.)

Now the punchline that yields O(1)O(1) queries: Pr,Φ(a)P_{r,\Phi}(a) is a polynomial of degree 3\le 3 in aa, so it expands as

p(a1,,an)=α+iI1ai+(i,j)I2aiaj+(i,j,k)I3aiajak,p(a_1,\dots,a_n)=\alpha+\sum_{i\in I_1}a_i+\sum_{(i,j)\in I_2}a_ia_j+\sum_{(i,j,k)\in I_3}a_ia_ja_k,
and each of these three sums is the value of a linear function evaluated at a fixed “characteristic” point:
Aa(x)=iaixi,Ba(y)=i,jaiajyij,Ca(z)=i,j,kaiajakzijk,A_a(x)=\sum_i a_i x_i,\qquad B_a(y)=\sum_{i,j}a_ia_j\,y_{ij},\qquad C_a(z)=\sum_{i,j,k}a_ia_ja_k\,z_{ijk},
linear on Z2n, Z2n2, Z2n3\mathbb Z_2^n,\ \mathbb Z_2^{n^2},\ \mathbb Z_2^{n^3} respectively. Then
p(a)=α+Aa(q1)+Ba(q2)+Ca(q3),p(a)=\alpha+A_a(q_1)+B_a(q_2)+C_a(q_3),
where q1,q2,q3q_1,q_2,q_3 are the characteristic vectors of the index sets I1,I2,I3I_1,I_2,I_3. Evaluating the clause-polynomial = reading three table entries — a constant!

The proof Π\Pi. A purported satisfying assignment aa is encoded as the concatenation of the three full truth-tables

ΠABC,A=2n, B=2n2, C=2n3\Pi\sim A'\,\|\,B'\,\|\,C',\qquad |A'|=2^n,\ |B'|=2^{n^2},\ |C'|=2^{n^3}
exponentially long, but only O(1)O(1) entries are ever read. The verifier must guard against a cheating proof in two ways: the tables might not be linear, and even if each is close to some linear function, those functions might be inconsistent (e.g. BB not encoding the pairwise products of AA’s coefficients).

14d. The verifier: LT + Consistency + Satisfiability

Three sub-tests, each O(1)O(1) queries, run with self-correction (SCF) so every read is reliable:

Linearity (LT). Test that A,B,CA',B',C' are each δ\delta-close to linear; if not, NO with probability 12\ge\tfrac12 (so we may assume genuine linear $\widetilde A,\widetilde B,\widetilde C$ with coefficient vectors $\widetilde a,\widetilde a\circ\widetilde a, \widetilde a\circ\widetilde a\circ\widetilde a$).

Consistency (CT). Check the tables describe the same a~\widetilde a and that B,CB,C really hold the products: pick random x,xx,x', compute a=SCF(x,A)a=\mathrm{SCF}(x,A'), a=SCF(x,A)a'=\mathrm{SCF}(x',A'), b=SCF(xx,B)b=\mathrm{SCF}(x\circ x',B') (where (xx)(i1)n+j=xixj(x\circ x')_{(i-1)n+j}=x_i x'_j); reject if aaba\cdot a'\ne b. Similarly tie A,BA,B to CC. This enforces a~ia~j=b~(i1)n+j\widetilde a_i\widetilde a_j=\widetilde b_{(i-1)n+j} and a~ia~ja~k=c~(i1)n2+(j1)n+k\widetilde a_i\widetilde a_j\widetilde a_k=\widetilde c_{(i-1)n^2+(j-1)n+k}.

Satisfiability (CSAT). Pick random r{0,1}mr\in\{0,1\}^m, compute the coefficients α,I1,I2,I3\alpha,I_1,I_2,I_3 of Pr,ΦP_{r,\Phi} and their characteristic points; read a=SCF(q1,A)a=\mathrm{SCF}(q_1,A'), b=SCF(q2,B)b=\mathrm{SCF}(q_2,B'), c=SCF(q3,C)c=\mathrm{SCF}(q_3,C'); if α+a+b+c=1\alpha+a+b+c=1 return NO (a violated clause was exposed), else YES.

Theorem. For δ<124\delta<\tfrac1{24} there is a constant number kk of calls to LT and CT such that, if no single a~\widetilde a makes A,B,CA',B',C' jointly δ\delta-close to the linear functions with coefficients $\widetilde a,\widetilde a\circ\widetilde a, \widetilde a\circ\widetilde a\circ\widetilde a, then with probability $\ge 1-\delta at least one call returns NO. Hence

3-SATPCP[O(n3),O(1)],soNPPCP[O(n3),O(1)].3\text{-SAT}\in\mathrm{PCP}[O(n^3),O(1)],\qquad\text{so}\qquad \mathrm{NP}\subseteq\mathrm{PCP}[O(n^3),O(1)].

Professor-pleaser — why this is the moral heart of PCP. A would-be proof is an exponential table of numbers. The verifier never trusts it: it (a) tests the table is essentially linear, (b) self-corrects every read so corruption can’t hide, © checks the linear pieces are mutually consistent (a true assignment, not three unrelated functions), and (d) checks a single random algebraic identity that holds iff the assignment satisfies Φ\Phi. All four are O(1)O(1) queries. The exponential O(n3)O(n^3) randomness is then squeezed to O(logn)O(\log n) by the polynomial-proof construction (step 2) and the composition lemma — but the idea, “arithmetize, then spot-check a robust algebraic encoding,” is already fully present here.


The spine — one line per movement

Randomness inside the verifier. BPP is low: Sipser–Gács shows BPPΣ2pΠ2p\mathrm{BPP}\subseteq\Sigma_2^p\cap\Pi_2^p because a near-full set of accepting random strings can be shifted a few times to cover the cube while a tiny one cannot — a two-quantifier size test. Interaction + coins beats static proofs: a coin-flipping verifier decides GNI in two Arthur–Merlin messages by reducing non-isomorphism to “is this set twice as big,” checked by a pairwise-independent hash hitting a random bucket; the same logic (coNPAM\mathrm{coNP}\subseteq\mathrm{AM} would collapse PH) says GI is probably not NP-complete. With an all-powerful prover the reach is all of PSPACE: IP=PSPACE\mathrm{IP}=\mathrm{PSPACE} via arithmetization (formula \to polynomial) and the SumCheck protocol, whose soundness is the single fact a low-degree polynomial has few roots, so a random evaluation exposes any lie (with mod-pp arithmetic and “simple QBF” taming the size and degree). Made local, the same algebra gives the PCP theorem NP=PCP[O(logn),O(1)]\mathrm{NP}=\mathrm{PCP}[O(\log n),O(1)]: proofs checkable by O(1)O(1) random bit-reads, equivalently gap-amplifying reductions, hence Max-3-SAT / Independent Set are hard to approximate unless P = NP. The bottom layer is built by hand from linearity testing, self-correction, and a Z2\mathbb Z_2 arithmetization giving NPPCP[O(n3),O(1)]\mathrm{NP}\subseteq\mathrm{PCP}[O(n^3),O(1)].

Theme The one idea
Polynomial hierarchy stacked quantifier alternations; Σi=Πi\Sigma_i=\Pi_i\Rightarrow PH collapses
Sipser–Gács BPPΣ2pΠ2p\mathrm{BPP}\subseteq\Sigma_2^p\cap\Pi_2^p: shift a big set to tile the cube, a tiny one can’t
Adleman BPPP/poly\mathrm{BPP}\subseteq\mathrm{P/poly} — randomness free with advice (but too coarse)
Interactive proof IP unbounded prover + poly-time coin-flipping verifier; verifier has last word
Public vs private coins Goldwasser–Sipser: IP[k]AM[k+2]\mathrm{IP}[k]\subseteq\mathrm{AM}[k+2] — hiding coins barely helps
GNI ∈ AM[2] non-isomorphism doubles a set; detect size by a random hash bucket
AM/MA structure perfect completeness; AM[k]=AM\mathrm{AM}[k]=\mathrm{AM}; MAΣ2Π2\mathrm{MA}\subseteq\Sigma_2\cap\Pi_2, AMΠ2\mathrm{AM}\subseteq\Pi_2
GI not NP-complete coNPAMPH=Σ2\mathrm{coNP}\subseteq\mathrm{AM}\Rightarrow\mathrm{PH}=\Sigma_2 (Boppana–Håstad–Zachos)
IP = PSPACE arithmetize; SumCheck pins an exponential sum via one poly per variable
SumCheck soundness distinct degree-dd polys agree on d\le d points ⇒ random eval catches lies
TQBF ∈ IP ,\exists\to\sum,\forall\to\prod; mod-pp + “simple QBF” tame value & degree
PCP[r,q] local verifier: rr coins, qq bit-reads; perfect completeness, soundness <12<\tfrac12
PCP theorem NP=PCP[O(logn),O(1)]\mathrm{NP}=\mathrm{PCP}[O(\log n),O(1)]: two faces — local proofs & inapproximability
Gap reduction φ\varphi\inSAT \Rightarrow all clauses; φ\varphi\notinSAT <c\Rightarrow <c-fraction; PCP[log,1]\equiv\mathrm{PCP}[\log,1]
Linearity test / SCF mostly-linear table is testable and self-correctable with O(1)O(1) reads
NP ⊆ PCP[n³,O(1)] encode assignment as 3 linear tables A,B,CA,B,C; LT + consistency + one random identity

Connections / threads to drill

polynomial-hierarchyBPPSipser-Gacsinteractive-proofsArthur-MerlinAMMAgraph-isomorphismIP-PSPACEarithmetizationSumCheckTQBFPCPlinearity-testingself-correctioninapproximability

← Back to Randomized Algorithms