The low-degree code #
The paper's sec:ld-encoding: the multilinear indicator polynomials of the Boolean subcube,
the low-degree encoding g_a of a vector indexed by the subcube, and the decoding map
Coded_H. This is the code the PCP of thm:pcp-decider commits to, and the a = Coded(g₁)
of its soundness conclusion.
ind y = ∏_{i : yᵢ = 1} Xᵢ · ∏_{i : yᵢ = 0} (1 - Xᵢ)— on the subcube,1atyand0elsewhere (eval_ind);pt yis the subcube point ofy : Fin m → Bool, identifying{0,1}with{0, 1} ⊆ F;ldEnc a = ∑_y a y · ind y— the multilinear polynomial withg_a(y) = a y(eval_ldEnc), of individual degree at most1(degreeOf_ldEnc_le);codedOn H greadsgback off the subcube, replacing a value outsideHby0. It is a left inverse ofldEnconH-valued vectors (codedOn_ldEnc), andcoded = codedOn {0,1}is the Boolean decoding map, which always returns a{0,1}-valued vector (coded_eq).
Nothing here is about the cost model: these are polynomials, and the verifier's arithmetic on
their bit representations is a separate matter (the admissible field of lem:self-dual-basis).
The subcube #
The point of F^m corresponding to y ∈ {0,1}^m, under {0,1} ⊆ F.
Equations
- MIPRE.LowDegree.pt y i = MIPRE.LowDegree.ofBool (y i)
Instances For
The indicator polynomials #
ind y, the multilinear polynomial that is 1 at the subcube point y and 0 at every
other subcube point.
Equations
- MIPRE.LowDegree.ind y = ∏ i : Fin m, if y i = true then MvPolynomial.X i else 1 - MvPolynomial.X i
Instances For
The encoding #
The low-degree encoding of a : {0,1}^m → F: the multilinear polynomial with
g_a(y) = a y on the subcube.
Equations
- MIPRE.LowDegree.ldEnc a = ∑ y : Fin m → Bool, MvPolynomial.C (a y) * MIPRE.LowDegree.ind y
Instances For
The encoding is multilinear, hence of total degree at most m. This is the bound that
makes the restriction of g_a to a line a polynomial of degree at most m.
The decoding map #
Coded_H g: read g off the subcube, replacing any value outside H by 0.
Equations
- MIPRE.LowDegree.codedOn H g y = if (MvPolynomial.eval (MIPRE.LowDegree.pt y)) g ∈ H then (MvPolynomial.eval (MIPRE.LowDegree.pt y)) g else 0
Instances For
The Boolean decoding map Coded = Coded_{0,1}.
Equations
Instances For
Coded g is always {0,1}-valued.
Decoding preserves a polynomial evaluation that already equals a Boolean value.