Documentation

UniversalHashing.Toeplitz

This module defines a universal-2 hash by vector matrix multiplication with Toeplitz matrices.

Toeplitz matrices are defined in ToeplitzGeneral.lean.

Main result: binToeplitz_mulVec_isUniversal2 shows that matrix-vector multiplication with (binary) Toeplitz matrices is universal-2.

theorem toeplitzModp_mulVec_isUniversal2 (m n p : ) [NeZero m] [NeZero n] [hp : Fact (Nat.Prime p)] :
HashFamily.universal2 fun (M : ToeplitzMatrix m n (ZMod p)) (v : Fin nZMod p) => (↑M).mulVec v

Main result: Multiplication (mod p) by a random Toeplitz matrix is a universal-2 hash family.

def toeplitzHash (m n : ) :
HashFamily (Fin (m + n - 1)ZMod 2) (Fin nZMod 2) (Fin mZMod 2)

Toeplitz hash, expressed using only bit vectors.

Equations
Instances For
    theorem Nat.ne_rat_ge1_of_lt1 (n : ) (q : ) (nne0 : n > 0) (qlt1 : q < 1) :
    n q