Definition 16: Dual Code #
Given a classical [n, k, d]-code L โ ๐ฝโ^n (Def_3), the dual code is
Lโฅ = {w โ ๐ฝโ^n : โจw, cโฉ = 0 for all c โ L}, where โจw, cโฉ = ฮฃแตข wแตขcแตข
is the standard ๐ฝโ-dot product.
Main Results #
dualCodeโ the dual codeLโฅas aClassicalCodemem_dualCode_iffโ membership characterization via dot productmem_dualCode_iff'โ symmetric characterization (commutativity of dot product)dualCodeEquivDualAnnihilatorโLโฅ โโ L.code.dualAnnihilatordimension_dualCodeโdim Lโฅ = n - dim LdualCode_isNKDCodeโLโฅis an[n, n-k, d_{Lโฅ}]-code
Dual Code Definition #
The dual code Lโฅ = {w โ ๐ฝโ^n : โจw, cโฉ = 0 for all c โ L}, where โจw, cโฉ = ฮฃแตข wแตข cแตข
is the standard ๐ฝโ-inner product. This is defined as the pullback of the dual annihilator
L.code.dualAnnihilator โ Dual(๐ฝโ^n) through the canonical isomorphism
dotProductEquiv : ๐ฝโ^n โโ Dual(๐ฝโ^n) given by v โฆ (w โฆ v โฌแตฅ w).
Equations
- ๐.dualCode = { code := Submodule.comap (โ(dotProductEquiv ๐ฝโ (Fin n))) ๐.code.dualAnnihilator }
Instances For
Membership Characterization #
The dual code is symmetric: w โ Lโฅ iff c โฌแตฅ w = 0 for all c โ L.
Over ๐ฝโ, w โฌแตฅ c = c โฌแตฅ w since ๐ฝโ is commutative.
Equivalence with Dual Annihilator #
The linear equivalence between โฅ(dualCode ๐).code and โฅ(๐.code.dualAnnihilator),
obtained from dotProductEquiv. Since dualCode.code = dualAnnihilator.comap (dotProductEquiv),
the restriction of dotProductEquiv gives the equivalence.
Equations
- ๐.dualCodeEquivDualAnnihilator = โฏ.mpr (โฏ.mpr ((dotProductEquiv ๐ฝโ (Fin n)).symm.submoduleMap ๐.code.dualAnnihilator).symm)
Instances For
Dimension Formula #
The dimension of the dual code: dim Lโฅ = n - dim L. This follows from the dual annihilator
dimension formula dim L + dim L.dualAnnihilator = dim ๐ฝโ^n = n and the fact that
dotProductEquiv preserves dimension.
Dual Code is an [n, n-k, d_{Lโฅ}]-code #
The dual code is an [n, n-k, d_{Lโฅ}]-code, where k = dim L and d_{Lโฅ} is the
minimum distance of the dual code.