Documentation

TauCeti.InformationTheory.Coding.Reindex

Relabelling the coordinates of a linear code #

Relabelling the coordinate set of a linear code along an equivalence is the most basic operation on codes, and every further construction is expected to commute with it. This file defines TauCeti.reindex as the image of the code under coordinate transport, and records membership, functoriality, the order and lattice laws, and invariance of the dimension and minimum distance.

The field is never assumed finite, and the coordinate types are finite only where minimum distance is involved.

Main declarations #

References #

noncomputable def TauCeti.reindex {F : Type u_1} [Field F] {ι : Type u_2} {κ : Type u_3} (C : LinearCode F ι) (e : κ ≃ ι) :

Reindex a linear code along a coordinate equivalence. The equivalence points from the new coordinate type to the old one, so the transported word has value x (e j) at j.

Instances For
    theorem TauCeti.reindex_def {F : Type u_1} [Field F] {ι : Type u_2} {κ : Type u_3} (C : LinearCode F ι) (e : κ ≃ ι) :

    Reindexing is the image under coordinate transport.

    @[simp]
    theorem TauCeti.mem_reindex {F : Type u_1} [Field F] {ι : Type u_2} {κ : Type u_3} {C : LinearCode F ι} {e : κ ≃ ι} {y : κ → F} :
    y ∈ reindex C e ↔ ∃ x ∈ C, ∀ (j : κ), x (e j) = y j

    Membership in a reindexed code, with the direction of the coordinate equivalence explicit.

    @[simp]
    theorem TauCeti.reindex_refl {F : Type u_1} [Field F] {ι : Type u_2} (C : LinearCode F ι) :

    Reindexing along the identity equivalence leaves a code unchanged.

    @[simp]
    theorem TauCeti.reindex_reindex {F : Type u_1} [Field F] {ι : Type u_2} {κ : Type u_3} {κ' : Type u_4} (C : LinearCode F ι) (e : κ ≃ ι) (f : κ' ≃ κ) :
    reindex (reindex C e) f = reindex C (f.trans e)

    Successive changes of coordinates compose in their contravariant order.

    theorem TauCeti.reindex_mono {F : Type u_1} [Field F] {ι : Type u_2} {κ : Type u_3} {C D : LinearCode F ι} (h : C ≤ D) (e : κ ≃ ι) :

    Reindexing is monotone in the code.

    @[simp]
    theorem TauCeti.reindex_bot {F : Type u_1} [Field F] {ι : Type u_2} {κ : Type u_3} (e : κ ≃ ι) :

    Reindexing sends the zero code to the zero code.

    @[simp]
    theorem TauCeti.reindex_top {F : Type u_1} [Field F] {ι : Type u_2} {κ : Type u_3} (e : κ ≃ ι) :

    Reindexing sends the whole word space to the whole word space.

    @[simp]
    theorem TauCeti.reindex_sup {F : Type u_1} [Field F] {ι : Type u_2} {κ : Type u_3} (C D : LinearCode F ι) (e : κ ≃ ι) :
    reindex (C ⊔ D) e = reindex C e ⊔ reindex D e

    Reindexing commutes with sums of codes.

    @[simp]
    theorem TauCeti.reindex_inf {F : Type u_1} [Field F] {ι : Type u_2} {κ : Type u_3} (C D : LinearCode F ι) (e : κ ≃ ι) :
    reindex (C ⊓ D) e = reindex C e ⊓ reindex D e

    Reindexing commutes with intersections of codes.

    theorem TauCeti.isPermutationEquivalent_reindex {F : Type u_1} [Field F] {ι : Type u_2} {κ : Type u_3} (C : LinearCode F ι) (e : κ ≃ ι) :

    Reindexing along a coordinate equivalence is exactly a permutation equivalence of codes.

    @[simp]
    theorem TauCeti.finrank_reindex {F : Type u_1} [Field F] {ι : Type u_2} {κ : Type u_3} (C : LinearCode F ι) (e : κ ≃ ι) :

    A coordinate equivalence preserves the dimension of a code.

    @[simp]
    theorem TauCeti.hammingMinDist_reindex {F : Type u_1} [Field F] {ι : Type u_2} {κ : Type u_3} [Fintype ι] [Fintype κ] [DecidableEq F] (C : LinearCode F ι) (e : κ ≃ ι) :

    A coordinate equivalence preserves the minimum distance of a code, even for the zero code.