Documentation

Complexitylib.Classes.PCP.Internal.GapTheorem

Dinur's gap theorem for 3-SAT #

The mathematical conclusion of the development. Every 3CNF formula is turned into a constraint graph over a fixed constant-size alphabet, of size polynomial in the formula, which is satisfiable when the formula is and whose unsatisfiability value is at least a universal constant when it is not.

Three ingredients meet: the reduction of ThreeSATCSP carried across alphabets by GapReduction, the expander family of ExpanderExists, and the amplifier of Dinur, whose dichotomy supplies the gap after logarithmically many rounds.

What this does not supply is computability. gapGraph is defined through Classical.choose — the expander family is obtained by counting, not constructed — so it is a reduction in the mathematical sense only. Turning it into a PCPVerifier, which additionally demands an FP query function and a P verdict, needs an explicit expander family and a polynomial-time implementation of every round.

Main definitions #

Main results #

Dinur's amplifier, with the expander family supplied.

Equations
Instances For

    How many rounds of amplification a formula needs: enough that the doubling of the unsatisfiability value reaches the threshold, which is the bit length of the edge count.

    Equations
    Instances For

      The gap graph of a formula: logarithmically many rounds of amplification applied to its constraint graph.

      Equations
      Instances For

        Completeness.

        Soundness, with a gap that does not depend on the formula.

        The gap is a positive constant.

        The gap is at most one, as any unsatisfiability value is.

        theorem Complexity.two_pow_log_succ_le (n : ) :
        2 ^ (Nat.log 2 n + 1) 2 * n + 2

        A bit length costs at most a doubling.

        The size bound: a constant factor per round, and logarithmically many rounds, so polynomially many edges.