Hamming spaces #
The Hamming metric counts the number of places two members of a (finite) Pi type differ. The Hamming norm is the same as the Hamming metric over additive groups, and counts the number of places a member of a (finite) Pi type differs from zero.
This is a useful notion in various applications, but in particular it is relevant in coding theory, in which it is fundamental for defining the minimum distance of a code.
Main definitions #
hammingDist x y: the Hamming distance betweenxandy, the number of entries which differ.hammingNorm x: the Hamming norm ofx, the number of non-zero entries.Hamming β: a type synonym forΠ i, β iwithdistandnormprovided by the above.Hamming.toHamming,Hamming.ofHamming: functions for casting betweenHamming βandΠ i, β i.- the Hamming norm forms a normed group on
Hamming β.
The Hamming distance function to the naturals.
Equations
- hammingDist x y = {i : ι | x i ≠ y i}.card
Corresponds to dist_self.
Corresponds to dist_nonneg.
Corresponds to dist_comm.
Corresponds to dist_triangle.
Corresponds to dist_triangle_left.
Corresponds to dist_triangle_right.
Corresponds to swap_dist.
Corresponds to eq_of_dist_eq_zero.
Corresponds to dist_eq_zero.
Corresponds to zero_eq_dist.
Corresponds to dist_ne_zero.
Corresponds to dist_pos.
Corresponds to dist_smul with the discrete norm on α.
The Hamming weight function to the naturals.
Equations
- hammingNorm x = {i : ι | x i ≠ 0}.card
Corresponds to dist_zero_right.
Corresponds to dist_zero_left.
Corresponds to norm_nonneg.
Corresponds to norm_zero.
Corresponds to norm_eq_zero.
Corresponds to norm_ne_zero_iff.
Corresponds to norm_pos_iff.
Corresponds to dist_eq_norm.
Instances inherited from normal Pi types.
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
- Hamming.instModule α β = Pi.module ι β α
API to/from the type synonym.
Hamming.toHamming is the identity function to the Hamming of a type.
Equations
- Hamming.toHamming = Equiv.refl ((i : ι) → β i)
Instances equipping Hamming with hammingNorm and hammingDist.
Equations
- Hamming.instDist = { dist := fun (x y : Hamming β) => ↑(hammingDist (Hamming.ofHamming x) (Hamming.ofHamming y)) }
Equations
- One or more equations did not get rendered due to their size.
Equations
Equations
- Hamming.instNormOfZero = { norm := fun (x : Hamming β) => ↑(hammingNorm (Hamming.ofHamming x)) }
Equations
- Hamming.instNormedAddGroupOfAddGroup = { toNorm := Hamming.instNormOfZero, toAddGroup := Hamming.instAddGroup, toMetricSpace := Hamming.instMetricSpace, dist_eq := ⋯ }
Equations
- Hamming.instNormedAddCommGroupOfAddCommGroup = { toNorm := Hamming.instNormOfZero, toAddCommGroup := Hamming.instAddCommGroup, toMetricSpace := Hamming.instMetricSpace, dist_eq := ⋯ }