Documentation

MIPRE.Foundations.LowDegree.BinaryQuotient

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.

The monic quotient's specified power-basis coordinate equivalence.

Equations
Instances For

    Canonical bits of a quotient element in the monic power basis.

    Equations
    Instances For

      Decode the first natDegree f coefficients; omitted coefficients are zero.

      Equations
      Instances For
        @[simp]

        The canonical encoding has precisely the quotient dimension.

        @[simp]
        theorem MIPRE.LowDegree.BinaryQuotient.ofBits_toBits (f : Polynomial (ZMod 2)) (hf : f.Monic) (x : AdjoinRoot f) :
        ofBits f hf (toBits f hf x) = x

        Decoding a quotient element's canonical bits recovers the element.

        theorem MIPRE.LowDegree.BinaryQuotient.toBits_ofBits (f : Polynomial (ZMod 2)) (hf : f.Monic) (l : Cost.BitStr) (hlen : List.length l = f.natDegree) :
        toBits f hf (ofBits f hf l) = l

        Every correctly sized list is already the canonical quotient encoding.

        Correct-width decoding equals evaluation at the quotient's canonical root.

        @[simp]

        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.