Documentation

Complexitylib.Classes.Randomized.Hashing.Affine.Defs

Affine pairwise-independent hashing -- definitions #

The seed encodes one affine linear form over the Boolean ring for each output bit. Each row has domainWidth coefficients and one constant coefficient.

Number of random bits in the affine family from domainWidth bits to rangeWidth bits.

Equations
Instances For
    def Complexity.PairwiseIndependentHash.affineSeedEquiv (domainWidth rangeWidth : ) :
    (Fin rangeWidthBitString (domainWidth + 1)) BitString (affineSeedWidth domainWidth rangeWidth)

    Row-major equivalence between affine coefficient rows and the flat seed.

    Equations
    Instances For
      def Complexity.PairwiseIndependentHash.affineRows {domainWidth rangeWidth : } (seed : BitString (affineSeedWidth domainWidth rangeWidth)) :
      Fin rangeWidthBitString (domainWidth + 1)

      Coefficient rows decoded from a flat affine-family seed.

      Equations
      Instances For
        def Complexity.PairwiseIndependentHash.affineSeedOfRows {domainWidth rangeWidth : } (rows : Fin rangeWidthBitString (domainWidth + 1)) :
        BitString (affineSeedWidth domainWidth rangeWidth)

        Flatten coefficient rows into the affine family's row-major seed.

        Equations
        Instances For
          def Complexity.PairwiseIndependentHash.affineAugment {domainWidth : } (input : BitString domainWidth) :
          BitString (domainWidth + 1)

          Append a constant 1 coordinate to an input.

          Equations
          Instances For
            def Complexity.PairwiseIndependentHash.affineEval {domainWidth rangeWidth : } (seed : BitString (affineSeedWidth domainWidth rangeWidth)) (input : BitString domainWidth) :
            BitString rangeWidth

            Evaluate the affine coefficient matrix on an augmented input. Addition in the Boolean ring is XOR and multiplication is AND.

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