Tanner codes on small-bias Cayley graphs #
A Tanner code Tanner, Section II places bits on the edges of a regular graph and
requires the bits around every vertex, ordered by port, to lie in a fixed local code. Here the
graph is the bipartite double cover of a Cayley graph of the cube Fin ℓ → Bool with generators
s₁, …, s_d (Cslib.RotationMap.cubeCayley): left vertex u is joined by its port-j edge to
right vertex u + sⱼ, and edge words are bit strings on (Fin ℓ → Bool) × Fin d. The local code
is the kernel of a matrix A with c rows (Cslib.BitString.Tanner.IsWord).
- Local codes (
Cslib.BitString.exists_forall_weight_le): if fewer than2 ^ cnonzero strings of lengthdhave weight at mosth, somec × dmatrix rejects all of them, so its kernel has minimum distance more thanh. A union bound: a nonzero string lies in the kernel of exactly2 ^ ((d - 1) c)of the2 ^ (d c)matrices (Cslib.BitString.card_kernel), since its inner product with a uniform row is a balanced parity. - Distance (
Cslib.BitString.Tanner.le_weight_of_isWord): if the local code has distance more thanhand the generators areε-biased withε ≥ 0, every nonzero Tanner wordxhas(h + 1) (h + 1 - ε d) 2 ^ ℓ ≤ d · weight x. The verticesU,Vtouched byxon the two sides each see at leasth + 1of its bits, while all its bits are edges betweenUandV, which the mixing estimate (Cslib.RotationMap.card_interedges_cubeCayley_le) bounds. - Shortening (
Cslib.BitString.Tanner.le_weight_of_shortRow): keepingmof the edges, by an embeddingFin m ↪ (Fin ℓ → Bool) × Fin d, gives2 · 2 ^ ℓ · cexplicit rows onFin m(Cslib.BitString.Tanner.shortRow), each with at mostdones (Cslib.BitString.Tanner.weight_shortRow_le), whose nonzero kernel strings obey the same bound, again forε ≥ 0.
These are the local-code, distance and shortening steps in the proof of [OpenAI2026ETH, Lemma 6.1], which builds the initial parity tests from such a code.
Main definitions #
Cslib.BitString.Tanner.IsWord: the Tanner code of a local check matrix.Cslib.BitString.Tanner.shortRow: the rows of the shortened code.
Main results #
Cslib.BitString.exists_forall_weight_le: local codes of given distance by the union bound.Cslib.BitString.Tanner.le_weight_of_isWord: the distance of the Tanner code.Cslib.BitString.Tanner.weight_shortRow_le: the rows of the shortened code are sparse.Cslib.BitString.Tanner.le_weight_of_shortRow: the distance of the shortened code.
References #
The distance of the Tanner code. If every nonzero local word accepted by A has weight
more than h, and the generators are ε-biased with ε ≥ 0, then every nonzero Tanner word x
has (h + 1) (h + 1 - ε d) 2 ^ ℓ ≤ d · weight x.
Shortening #
The row of the shortened Tanner code for the check i at a vertex: on the left vertex u
(side = false) or the right vertex u (side = true), coordinate e reads the port of the
retained edge emb e if that edge is incident to the vertex.
Instances For
The shortened Tanner code. Under the hypotheses of le_weight_of_isWord, including
ε ≥ 0, every nonzero z orthogonal to all the rows shortRow has
(h + 1) (h + 1 - ε d) 2 ^ ℓ ≤ d · weight z.