Documentation

TauCeti.InformationTheory.Coding.Binary.TypeII

Type II binary codes #

A Type II binary code is a doubly-even Euclidean self-dual code. Its length is divisible by eight. The two weight-enumerator symmetries underlying this restriction are the MacWilliams substitution and invariance under multiplying the second variable by I. The latter symmetry is stated for any fourth root of unity in a commutative ring, so it applies both to evaluation at complex numbers and to polynomials with complex coefficients.

A direct sum of binary codes is Type II exactly when both summands are, and the Type II property is invariant under coordinate permutations, monomial equivalences, and semilinear equivalences. Over the binary field the latter two are coordinate permutations.

The argument follows the classical weight-enumerator proof of the length restriction; see Huffman and Pless, Fundamentals of Error-Correcting Codes, Chapter 9.

def TauCeti.BinaryCode.IsTypeII {ι : Type u_1} [Fintype ι] (C : LinearCode (ZMod 2) ι) :

A Type II binary code is doubly even and Euclidean self-dual.

Instances For

    A doubly-even Euclidean self-dual binary code is Type II.

    Every Type II code is doubly even.

    Every Type II code is Euclidean self-dual.

    Over ℤ/2 = ℤ/2^1, the Type II condition for codes over ℤ/2^r is the binary Type II condition: binary Euclidean weights are Hamming weights.

    Direct sums and equivalences #

    @[simp]

    A direct sum of binary codes is Type II exactly when both summands are Type II.

    theorem TauCeti.BinaryCode.IsTypeII.directSum {ι : Type u_1} [Fintype ι] {C : LinearCode (ZMod 2) ι} {κ : Type u_2} [Fintype κ] {D : LinearCode (ZMod 2) κ} (hC : IsTypeII C) (hD : IsTypeII D) :

    The direct sum of two Type II binary codes is Type II.

    The Type II property of binary codes is invariant under permutation equivalence.

    theorem TauCeti.BinaryCode.IsTypeII.of_isPermutationEquivalent {ι : Type u_1} [Fintype ι] {C : LinearCode (ZMod 2) ι} {κ : Type u_2} [Fintype κ] {D : LinearCode (ZMod 2) κ} (hC : IsTypeII C) (h : IsPermutationEquivalent C D) :

    Permutation equivalence preserves the Type II property of binary codes.

    The Type II property of binary codes is invariant under monomial equivalence.

    theorem TauCeti.BinaryCode.IsTypeII.of_isMonomialEquivalent {ι : Type u_1} [Fintype ι] {C : LinearCode (ZMod 2) ι} {κ : Type u_2} [Fintype κ] {D : LinearCode (ZMod 2) κ} (hC : IsTypeII C) (h : IsMonomialEquivalent C D) :

    Monomial equivalence preserves the Type II property of binary codes.

    The Type II property of binary codes is invariant under semilinear equivalence.

    theorem TauCeti.BinaryCode.IsTypeII.of_isSemilinearEquivalent {ι : Type u_1} [Fintype ι] {C : LinearCode (ZMod 2) ι} {κ : Type u_2} [Fintype κ] {D : LinearCode (ZMod 2) κ} (hC : IsTypeII C) (h : IsSemilinearEquivalent C D) :

    Semilinear equivalence preserves the Type II property of binary codes.

    A Type II binary code has length divisible by eight.