Documentation

HexGF2.Multiply.Coeff

def Hex.GF2Poly.clmulCoeffAt (idx : Nat) (x y : UInt64) (n : Nat) :
Equations
  • One or more equations did not get rendered due to their size.
Instances For

    XOR-fold a list of bits: xorBoolList bits is the parity of bits, folding != from false, so it is true exactly when an odd number of entries are true. The carryless-multiplication proofs reduce each output coefficient to such an XOR fold over a list of partial-product bits.

    Equations
    Instances For

      XOR a list of machine words as the word-level analogue of xorBoolList.

      Equations
      Instances For
        def Hex.GF2Poly.clmulWordAt (idx : Nat) (x y : UInt64) (slot : Nat) :

        The raw word contribution of a single clmul x y placed at word offset idx, projected to result word slot slot.

        Equations
        Instances For

          Source-word contribution list for one coefficient of the left-associated raw product (xs * ys) * zs. The outer product contributes a word slot and a zs source word; each such intermediate word is expanded back to the xs/ys source pair contributions that created it.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Source-word contribution list for one coefficient of the right-associated raw product xs * (ys * zs). The outer product contributes an xs source word and an intermediate word slot; each intermediate word is expanded back to the ys/zs source pair contributions that created it.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Hex.GF2Poly.leftAssocFixedTripleContribs (i j k : Nat) (x y z : UInt64) (n slotBound : Nat) :

              Contributions from one fixed source triple (i,j,k) to the left-associated word product, varying only the intermediate (xs * ys) result slot.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def Hex.GF2Poly.rightAssocFixedTripleContribs (i j k : Nat) (x y z : UInt64) (n slotBound : Nat) :

                Contributions from one fixed source triple (i,j,k) to the right-associated word product, varying only the intermediate (ys * zs) result slot.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def Hex.GF2Poly.wordBitAt (word : UInt64) (bit : Nat) :

                  The selected bit of one machine word, using the same projection shape as the existing coefficient lemmas.

                  Equations
                  Instances For

                    The one-hot contribution of a selected source bit of a word.

                    Equations
                    Instances For