Finite Boolean list decoding -- definitions #
A Boolean list code maps fixed-length messages to Boolean functions on an arbitrary finite coordinate type. Its decoder returns a fixed-size indexed candidate list. Relative distance and agreement are exact rational uniform probabilities, matching the truth-table view used in metacomplexity.
A fixed-length binary code together with a decoder producing listSize
candidate messages.
Encode a message as a Boolean function on the codeword coordinates.
Decode any received word into a fixed-size indexed candidate list.
Instances For
Exact fraction of coordinates on which two Boolean words agree.
Equations
- Complexity.BooleanListCode.agreementProbability left right = Complexity.uniformProbability {input : coordinate | left input = right input}
Instances For
Exact relative Hamming distance between two Boolean words.
Equations
- Complexity.BooleanListCode.relativeDistance left right = Complexity.uniformProbability {input : coordinate | left input ≠ right input}
Instances For
List-decoding guarantee at a relative Hamming radius.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Distinct messages appearing among the decoder's indexed candidates.
Equations
- code.candidates received = Finset.image (code.decode received) Finset.univ
Instances For
Number of bits sufficient to select one of listSize indexed decoder
outputs.
Equations
- Complexity.BooleanListCode.decoderIndexBitWidth listSize = Fin.bitWidth listSize
Instances For
Fixed-width binary encoding of an indexed decoder output.
Equations
- Complexity.BooleanListCode.encodeDecoderIndex index = index.toBits
Instances For
Decode a fixed-width decoder index, rejecting malformed lengths and
values outside Fin listSize.
Equations
- Complexity.BooleanListCode.decodeDecoderIndex? listSize bits = Fin.fromBits? listSize bits
Instances For
Decode a source message using a fixed-width encoded list index.
Equations
- code.decodeAtIndexBits? received bits = match Complexity.BooleanListCode.decodeDecoderIndex? listSize bits with | some index => some (code.decode received index) | none => none