Packing a Boolean function into line-parity codes #
Split the inputs of f : BooleanFunction (p + w) into a prefix a of p bits and a suffix z
of w bits. An injection place assigns every prefix a code copy c, an information point u
and a bit position r. For each copy and suffix, the information symbol at u is the field
element whose bit r is f (Fin.append a z) for the prefix a placed at (c, u, r), and false
at unplaced bits (packedBit). The line-parity code extends these symbols to a codeword
(codeword), and every bit of every codeword value is a Boolean function of the suffix alone
(resource).
Summing the resources of a request along any punctured line through its information point
recovers the requested value (sum_resource): the codeword value at the point is the sum along
the line, bits is additive, and the code is systematic on its information set. A request is
therefore answered from s = Fintype.card K - 1 resource values (succ_eq_card), where
Fintype.card K = 2 ^ b (card_eq_two_pow).
Main definitions #
Cslib.Circuits.Boolean.MassProduction.Pipeline.packedBit: the packed information bits.Cslib.Circuits.Boolean.MassProduction.Pipeline.codeword: the codeword of a copy and suffix.Cslib.Circuits.Boolean.MassProduction.Pipeline.resource: a codeword bit as a function of the suffix.
Main results #
Cslib.Circuits.Boolean.MassProduction.Pipeline.sum_resource: recovery along a line.Cslib.Circuits.Boolean.MassProduction.Pipeline.succ_eq_two_pow:s + 1 = 2 ^ bwhen the nonzero scalars are numbered byFin sand the field elements are bit strings of lengthb.
References #
- Adapted from MassProduction/HighRate/BooleanRecovery.lean in S. Schlesinger, Boolean circuit mass production formalization.
Bit r of the information symbol at u in copy c for the suffix z: the value of f at
the prefix placed at (c, u, r), and false if no prefix is placed there.
Instances For
The codeword of copy c for the suffix z, extending the packed information symbols.
Instances For
The resource of copy c, point y and bit r: bit r of the codeword value at y, as a
function of the suffix.
Instances For
The packed bit at a placed prefix is the value of f there.
Numbering the nonzero scalars by scalar sums over the punctured line.
Recovery along a line. The resources of the request (a, z), at the points
u + scalar j • v of a punctured line through its information point u, sum to
f (Fin.append a z).