Explain how Dinur's proof of the PCP theorem works at a high level, and why gap amplification is the central technique.
Think about your answer, then reveal below.
Model answer: Dinur's proof starts with a standard NP verification as a constraint graph (vertices = variable assignments, edges = constraints). Satisfiable instances have assignments violating 0 constraints; unsatisfiable instances violate at least 1. The goal is to amplify this gap: transform the graph so satisfiable instances still have 0 violations but unsatisfiable instances violate a CONSTANT FRACTION of constraints. Dinur achieves this through O(log n) iterations of: (1) graph powering — replace G with G^t to make it an expander, propagating constraint violations to neighbors, (2) alphabet reduction — compose with a 'gadget' PCP to keep the alphabet size bounded while preserving the gap. Each iteration roughly squares the fraction of violated constraints (from delta to ~delta^(1/2) closer to constant). After O(log n) iterations, the gap reaches a constant, yielding PCP(log n, 1).
The key insight of Dinur's proof is that gap amplification can be achieved combinatorially through graph operations, avoiding the algebraic machinery (low-degree tests, linearity tests) of the original Arora-Lund-Motwani-Sudan-Szegedy / Arora-Safra proof. Each iteration is a polynomial-time reduction that preserves satisfiability while amplifying the unsatisfiability gap.