Documentation

Complexitylib.Metacomplexity.Hamming.Internal

Finite Boolean Hamming geometry -- proof internals #

theorem Complexity.BooleanHamming.mem_disagreement_internal {length : } (left right : Word length) (coordinate : Fin length) :
coordinate disagreement left right left coordinate right coordinate
theorem Complexity.BooleanHamming.distance_refl_internal {length : } (word : Word length) :
distance word word = 0
theorem Complexity.BooleanHamming.distance_comm_internal {length : } (left right : Word length) :
distance left right = distance right left
theorem Complexity.BooleanHamming.distance_eq_zero_iff_internal {length : } (left right : Word length) :
distance left right = 0 left = right
theorem Complexity.BooleanHamming.distance_triangle_internal {length : } (first second third : Word length) :
distance first third distance first second + distance second third
theorem Complexity.BooleanHamming.distance_le_length_internal {length : } (left right : Word length) :
distance left right length
theorem Complexity.BooleanHamming.distance_eq_popCount_translate_internal {length : } (left right : Word length) :
distance left right = popCount (translate right left)
theorem Complexity.BooleanHamming.translate_translate_internal {length : } (center word : Word length) :
translate center (translate center word) = word
theorem Complexity.BooleanHamming.relativeDistance_eq_distance_div_internal {length : } (left right : Word length) :
BooleanListCode.relativeDistance left right = (distance left right) / length
theorem Complexity.BooleanHamming.mem_sphere_internal {length : } (center word : Word length) (radius : ) :
word sphere center radius distance word center = radius
theorem Complexity.BooleanHamming.mem_ball_internal {length : } (center word : Word length) (radius : ) :
word ball center radius distance word center radius
theorem Complexity.BooleanHamming.ball_mono_internal {length : } (center : Word length) {first second : } (hradius : first second) :
ball center firstball center second
theorem Complexity.BooleanHamming.card_distance_filter_eq_popCount_filter_internal {length : } (center : Word length) (predicate : Prop) [DecidablePred predicate] :
{word : Word length | predicate (distance word center)}.card = {word : Word length | predicate (popCount word)}.card
theorem Complexity.BooleanHamming.card_sphere_internal {length : } (center : Word length) (radius : ) :
(sphere center radius).card = length.choose radius
theorem Complexity.BooleanHamming.card_ball_internal {length : } (center : Word length) (radius : ) :
(ball center radius).card = volume length radius
theorem Complexity.BooleanHamming.volume_le_two_pow_internal (length radius : ) :
volume length radius 2 ^ length
theorem Complexity.BooleanHamming.volume_eq_two_pow_of_length_le_radius_internal {length radius : } (hradius : length radius) :
volume length radius = 2 ^ length
theorem Complexity.BooleanHamming.disjoint_balls_of_two_mul_radius_lt_distance_internal {length radius : } {left right : Word length} (hfar : 2 * radius < distance left right) :
Disjoint (ball left radius) (ball right radius)
theorem Complexity.BooleanHamming.pairwiseDisjoint_balls_of_isSeparated_internal {length minimumDistance radius : } {code : Finset (Word length)} (hcode : IsSeparated code minimumDistance) (hradius : 2 * radius < minimumDistance) :
(↑code).PairwiseDisjoint fun (center : Word length) => ball center radius
theorem Complexity.BooleanHamming.packing_bound_internal {length minimumDistance radius : } {code : Finset (Word length)} (hcode : IsSeparated code minimumDistance) (hradius : 2 * radius < minimumDistance) :
code.card * volume length radius 2 ^ length