Documentation

TauCeti.InformationTheory.Coding.Discriminant

Codes over ℤ/m as subgroups of a discriminant module #

Words over ℤ/m are elements of the coordinate power of the standard alphabet TauCeti.FiniteBilinearModule.zmodStandard, whose pairing is xy / m. Summing that pairing over the coordinates gives

b(x, y) = (x ⬝ᵥ y) / m,

so an additive code and the codes orthogonal to it for the ℤ/m dot product are literally a subgroup of a finite bilinear module and its orthogonal complement. In particular a code is self-orthogonal exactly when it is isotropic, and self-dual exactly when it is Lagrangian.

When m is even the coordinate power of the quadratic alphabet adds the value

q(x) = (∑ i, lift (xᵢ)²) / (2m),

independent of the chosen integer lifts because each coordinate value is. At m = 2 each canonical representative is 0 or 1, hence equals its square, so q(x) is a quarter of the Hamming weight and quadratic isotropy of a binary code is exactly double evenness. These are the identifications through which a code becomes an isotropic subgroup of the discriminant module of a lattice.

Main declarations #

References #

The bilinear coordinate power #

The pairing of two words over ℤ/m is their dot product, divided by m.

theorem TauCeti.coordinatePower_zmodStandard_pairing_intCast {ι : Type u_1} [Fintype ι] (m : ℕ) [NeZero m] (a b : ι → ℤ) :
((((FiniteBilinearModule.zmodStandard m).coordinatePower ι).pairing fun (i : ι) => ↑(a i)) fun (i : ι) => ↑(b i)) = ↑((∑ i : ι, ↑(a i) * ↑(b i)) / ↑m)

The pairing of two words over ℤ/m, computed using arbitrary coordinatewise integer lifts.

Two words over ℤ/m are orthogonal for the coordinate pairing exactly when their dot product vanishes.

The orthogonal complement of an additive code over ℤ/m consists of the words with zero dot product against every codeword.

@[simp]

The orthogonal complement of an additive code over ℤ/m is its Euclidean dual.

An additive code over ℤ/m is isotropic exactly when any two of its words are orthogonal.

@[simp]

The Lagrangian condition for a code over ℤ/m is self-duality.

The quadratic coordinate power for an even modulus #

theorem TauCeti.coordinatePower_zmodStandard_quadratic {ι : Type u_1} [Fintype ι] (m : ℕ) [NeZero m] (hm : Even m) (x : ι → ZMod m) :
((FiniteQuadraticModule.zmodStandard m hm).coordinatePower ι).quadratic x = ↑((∑ i : ι, ↑(x i).val ^ 2) / (2 * ↑m))

The quadratic value of a word over an even ℤ/m is the sum of the squares of its coordinate representatives, divided by 2m.

theorem TauCeti.coordinatePower_zmodStandard_quadratic_intCast {ι : Type u_1} [Fintype ι] (m : ℕ) [NeZero m] (hm : Even m) (z : ι → ℤ) :
(((FiniteQuadraticModule.zmodStandard m hm).coordinatePower ι).quadratic fun (i : ι) => ↑(z i)) = ↑((∑ i : ι, ↑(z i) ^ 2) / (2 * ↑m))

The quadratic value of a word over an even ℤ/m is computed by any coordinatewise integer lift: the sum of the squares of the lifts, divided by 2m.

theorem TauCeti.coordinatePower_zmodStandard_quadratic_intCast_eq_zero_iff {ι : Type u_1} [Fintype ι] (m : ℕ) [NeZero m] (hm : Even m) (z : ι → ℤ) :
(((FiniteQuadraticModule.zmodStandard m hm).coordinatePower ι).quadratic fun (i : ι) => ↑(z i)) = 0 ↔ 2 * ↑m ∣ ∑ i : ι, z i ^ 2

The quadratic value of a word over an even ℤ/m vanishes exactly when 2m divides the sum of the squares of a coordinatewise integer lift.

theorem TauCeti.isIsotropic_coordinatePower_zmodStandard_quadratic_intCast_iff {ι : Type u_1} [Fintype ι] (m : ℕ) [NeZero m] (hm : Even m) (C : AdditiveCode (ZMod m) ι) :
((FiniteQuadraticModule.zmodStandard m hm).coordinatePower ι).IsIsotropic C ↔ ∀ (z : ι → ℤ), (fun (i : ι) => ↑(z i)) ∈ C → 2 * ↑m ∣ ∑ i : ι, z i ^ 2

Quadratic isotropy of an additive code over an even ℤ/m means that 2m divides the sum of the squares of every coordinatewise integer lift of a codeword.

theorem TauCeti.isIsotropic_coordinatePower_zmodStandard_quadratic_iff {ι : Type u_1} [Fintype ι] (m : ℕ) [NeZero m] (hm : Even m) (C : AdditiveCode (ZMod m) ι) :
((FiniteQuadraticModule.zmodStandard m hm).coordinatePower ι).IsIsotropic C ↔ ∀ x ∈ C, 2 * m ∣ ∑ i : ι, (x i).val ^ 2

Quadratic isotropy of an additive code over an even ℤ/m means that the sum of the squares of the canonical representatives of every codeword is divisible by 2m.

Quadratic isotropy of an additive code over an even ℤ/m means that every codeword has Euclidean weight divisible by 2m.

The quadratic value of a binary word is a quarter of its Hamming weight.

Quadratic isotropy of a binary code is double evenness of its Hamming weights.

A binary linear code is quadratically isotropic in the standard coordinate discriminant module exactly when it is doubly even.