Coordinates for arbitrary monic binary polynomial quotients #
The basis and coefficient representation require only monicity. In particular, the modulus need not be irreducible or squarefree. The abstract coordinate maps are used in proofs; the executable addition and multiplication are the existing uniform coefficient-list programs.
Equations
Instances For
The monic quotient's specified power-basis coordinate equivalence.
Equations
Instances For
Canonical bits of a quotient element in the monic power basis.
Equations
- MIPRE.LowDegree.BinaryQuotient.toBits f hf x = List.ofFn fun (i : Fin f.natDegree) => MIPRE.LowDegree.BinaryQuotient.coeffBit (((AdjoinRoot.powerBasisAux' hf).repr x) i)
Instances For
Decode the first natDegree f coefficients; omitted coefficients are zero.
Equations
- MIPRE.LowDegree.BinaryQuotient.ofBits f hf l = ∑ i : Fin f.natDegree, MIPRE.LowDegree.ofBool (List.getD l (↑i) false) • (AdjoinRoot.powerBasisAux' hf) i
Instances For
The canonical encoding has precisely the quotient dimension.
Decoding a quotient element's canonical bits recovers the element.
Every correctly sized list is already the canonical quotient encoding.
Correct-width decoding equals evaluation at the quotient's canonical root.
Canonical coefficient bits evaluate to the quotient element they encode.
Equality in any monic quotient is faithful on fixed-width coefficient lists.
The quotient root satisfies the lower-coefficient reduction equation.
The fixed XOR program implements addition for any monic quotient.
Uniform modular multiplication works before irreducibility is known.