List Decoding #
This file defines list-decodable codes and proves the list-decoding capacity theorem:
for any ρ with 0 < ρ ≤ 1 − 1/q and list size L ≥ 1, there exist codes of rate
r = 1 − H_q(ρ) − 1/L
that are list-decodable with radius ρ and list size L.
Main Definitions #
list_decodable ρ hρ₁ hρ₂ n L hL C:Cis(ρ, L)-list-decodable if every Hamming ball of radius⌊ρn⌋contains at mostLcodewords ofC.
Main Results #
exists_listDecodable_code: a counting/probabilistic argument showing existence of list-decodable codes meeting a given size bound.binom_ratio_bound: the ratioC(N−k, M−k) / C(N,M) ≤ (M/N)ᵏ.listDecoding_counting_ineq: the counting inequality used in the capacity proof.list_decoding_capacity: codes of rate1 − H_q(ρ) − 1/Lare(ρ, L)-list-decodable.
References #
- V. Guruswami, A. Rudra, M. Sudan, "Essential Coding Theory", Chapter on List Decoding.
A code C is (ρ, L)-list-decodable if every Hamming ball of radius ⌊ρn⌋ contains
at most L codewords of C.
Equations
- CodingTheory.Codeword.list_decodable ρ hρ₁ hρ₂ n L hL C = ∀ (y : CodingTheory.Codeword n α), (CodingTheory.Codeword.hamming_ball ⌊ρ * ↑n⌋₊ y ∩ C).card ≤ L
Instances For
Existence of list-decodable codes: if the ball volume V and code size M satisfy
the given counting inequality, then there exists a code C of size M that is
(p, L)-list-decodable.
Counting inequality for list decoding: for the given choice of rate r and ball-size
bound V, the number of "bad" M-subsets exceeds the number of good ones only if M is
small (i.e., rate > capacity).
List-decoding capacity theorem: for any 0 < ρ ≤ 1 − 1/q and L ≥ 1, there exist
codes of rate r = 1 − H_q(ρ) − 1/L that are (ρ, L)-list-decodable.
In other words, one can list-decode at any rate below the list-decoding capacity
1 − H_q(ρ) using list size L.