Documentation

Complexitylib.Metacomplexity.Hamming.Code.Repetition.Internal

Boolean repetition codes -- proof internals #

theorem Complexity.BooleanCode.repetitionEncode_apply_internal {messageLength copies : } (message : BooleanHamming.Word messageLength) (coordinate : Fin (messageLength * copies)) :
repetitionEncode messageLength copies message coordinate = message (finProdFinEquiv.symm coordinate).1
theorem Complexity.BooleanCode.repetitionEncode_injective_internal {messageLength copies : } (hcopies : 0 < copies) :
Function.Injective (repetitionEncode messageLength copies)
theorem Complexity.BooleanCode.distance_repetitionEncode_internal {messageLength copies : } (left right : BooleanHamming.Word messageLength) :
BooleanHamming.distance (repetitionEncode messageLength copies left) (repetitionEncode messageLength copies right) = BooleanHamming.distance left right * copies
theorem Complexity.BooleanCode.repetitionEncode_isLinear_internal {messageLength copies : } :
repetitionEncode messageLength copies (zeroWord messageLength) = zeroWord (messageLength * copies) ∀ (left right : BooleanHamming.Word messageLength), repetitionEncode messageLength copies (xorWords left right) = xorWords (repetitionEncode messageLength copies left) (repetitionEncode messageLength copies right)