Self-correction of Reed–Muller codes by interpolation and majority trees #
A received word w that differs from a Reed–Muller codeword p of degree d on few points can
be corrected everywhere, with few queries and fixed randomness. The basic step reads w at
d + 1 points x + ν i • v of a line through x, for fixed distinct nonzero nodes ν i, and
interpolates: p x = ∑ i, λ i * p (x + ν i • v) for the Lagrange weights λ i of the nodes at
0 (Cslib.Code.lagrangeDecode_eq_of_mem_reedMuller). Each queried point is uniformly distributed
over the directions v, so at every point x at most (d + 1) * Δ(w, p) directions make the
step err (Cslib.Code.card_lagrangeDecode_ne_le) Arora and Barak, Chapter 19.
A majority tree (Cslib.Code.majTree) of depth L combines 3 ^ L independent runs by
repeated majorities of three, maj3 a b c = if a = b then a else c, which is right whenever two
of its arguments are. If a run errs with probability at most ρ, the tree errs with probability
at most (3 * ρ) ^ (2 ^ L) / 3 (Cslib.Code.card_majTree_ne_le). For 3 * ρ ≤ 1 / 2 this is
below 2 ^ (-2 ^ L), so by a union bound one fixed choice of the 3 ^ L directions corrects
every point of a set of at most 2 ^ (2 ^ L) points
(Cslib.Code.exists_forall_majTree_eq). Majority trees replace a Chernoff bound by a counting
argument and need only equality tests to evaluate.
Main definitions #
Cslib.Code.lagrangeWeight,Cslib.Code.lagrangeDecode: interpolation along a line.Cslib.Code.maj3,Cslib.Code.majTree: majorities of three and majority trees.Cslib.Code.tripleEquiv: the splitting of3 ^ (L + 1)indices into three blocks of3 ^ L.
Main results #
Cslib.Code.lagrangeDecode_eq_of_mem_reedMuller: interpolation is exact on codewords.Cslib.Code.card_lagrangeDecode_ne_le: few directions err.Cslib.Code.card_majTree_ne_le: amplification by majority trees.Cslib.Code.exists_forall_majTree_eq: one choice of directions corrects a whole set.
References #
Interpolation along a line #
A polynomial of degree at most d is determined at 0 by its values at d + 1 nodes.
Few directions err. At every point x, at most (d + 1) * Δ(w, p) directions v make
interpolation along the line through x in the direction v err, when the nodes are nonzero.
Majority trees #
The majority of three, right whenever two of its arguments are: a if a = b, else c.
Instances For
A majority tree of depth L over 3 ^ L values: the majority of three of the trees over
the three blocks.
Instances For
Amplification by majority trees. If at most a ρ fraction of the outcomes ω have
val ω ≠ y, then at most a (3 * ρ) ^ (2 ^ L) / 3 fraction of the tuples of 3 ^ L outcomes
make the majority tree miss y.
One choice of randomness corrects a whole set. Let a randomized procedure val x, for
each x in a set S of at most 2 ^ (2 ^ L) inputs, miss target x on at most a ρ fraction of
its outcomes, with 3 * ρ ≤ 1 / 2. Then some tuple of 3 ^ L outcomes makes the majority tree
right at every x ∈ S.