Documentation

MIPRE.TM.CookLevin.PcpBridge

The raw verifier and its fixed typed clause polynomial #

theorem MIPRE.TM.CookLevin.Pad.fixedCircuit_inputs (D : Cost.Prog) (n T Q σ : ℕ) (x y : Cost.BitStr) :
(fixedCircuit D n T Q σ x y).inputs = 5 * (pcpParams n T Q σ).m + 5
theorem MIPRE.TM.CookLevin.Pad.fixedCircuit_variables (D : Cost.Prog) (n T Q σ : ℕ) (x y : Cost.BitStr) (hV : SAT.Valid D n T Q σ x y) :
(fixedCircuit D n T Q σ x y).inputs + (fixedCircuit D n T Q σ x y).size = (pcpParams n T Q σ).m'
theorem MIPRE.TM.CookLevin.Pad.fixedCircuit_describes (D : Decider) (n T Q σ : ℕ) (x y : Cost.BitStr) (hV : SAT.Valid D.prog n T Q σ x y) :
(fixedCircuit D.prog n T Q σ x y).DescribesDecider (pcpParams n T Q σ).m (pcpParams n T Q σ).m D n x y T
noncomputable def MIPRE.TM.CookLevin.Pad.clausePolynomial {F : Type u_1} [Field F] (D : Cost.Prog) (n T Q σ : ℕ) (x y : Cost.BitStr) (hV : SAT.Valid D n T Q σ x y) :
MvPolynomial (Fin (pcpParams n T Q σ).m') F
Equations
Instances For
    theorem MIPRE.TM.CookLevin.Pad.viewFormat_typed (P : SAT.PcpParams) (E : SAT.BinField P.k) (z : Fin P.m' → E.carrier) (α : Fin 5 → E.carrier) (β : Fin (P.m' + 1) → E.carrier) :
    theorem MIPRE.TM.CookLevin.Pad.verifierCircuitValue_typed (D : Cost.Prog) (n T Q σ : ℕ) (x y : Cost.BitStr) (hV : SAT.Valid D n T Q σ x y) (E : SAT.BinField (pcpParams n T Q σ).k) [CharP E.carrier 2] (root : E.carrier) (hroot : root ^ List.length (pcpModulus n T Q σ) = LowDegree.BinaryPolynomial.evalBits root (pcpModulus n T Q σ)) (hencode : ∀ (a : E.carrier), LowDegree.BinaryPolynomial.evalBits root (E.toBits a) = a) (z : Fin (pcpParams n T Q σ).m' → E.carrier) (α : Fin 5 → E.carrier) (β : Fin ((pcpParams n T Q σ).m' + 1) → E.carrier) :

    The raw circuit value decodes to the fixed typed clause polynomial.

    theorem MIPRE.TM.CookLevin.Pad.verifierTests_typed_iff (D : Cost.Prog) (n T Q σ : ℕ) (x y : Cost.BitStr) (hV : SAT.Valid D n T Q σ x y) (E : SAT.BinField (pcpParams n T Q σ).k) [CharP E.carrier 2] (root : E.carrier) (hroot : root ^ List.length (pcpModulus n T Q σ) = LowDegree.BinaryPolynomial.evalBits root (pcpModulus n T Q σ)) (hencode : ∀ (a : E.carrier), LowDegree.BinaryPolynomial.evalBits root (E.toBits a) = a) (faithful : ∀ (a b : Cost.BitStr), List.length a = (pcpParams n T Q σ).k → List.length b = (pcpParams n T Q σ).k → (LowDegree.BinaryPolynomial.evalBits root a = LowDegree.BinaryPolynomial.evalBits root b ↔ a = b)) (z : Fin (pcpParams n T Q σ).m' → E.carrier) (α : Fin 5 → E.carrier) (β : Fin ((pcpParams n T Q σ).m' + 1) → E.carrier) :
    verifierTests.toFun (SAT.pcpInput D n T Q σ x y (E.vecBits z) (E.vecBits α ++ E.vecBits β)) = true ↔ SAT.PcpAlgebra.TypedAccepts (clausePolynomial D n T Q σ x y hV) z (α, β)

    With faithful coefficient decoding, the executable field tests on a typed view are the algebraic PCP tests for its fixed clause polynomial.