Documentation

UniversalHashing.AlmostUniversal

ε-Almost Universal Hashing #

This file proves things about

These are relaxations of HashFamily.universal2 and HashFamily.stronglyUniversal2 where equality/bounds are replaced by ε. The definitions are in UniversalHashing.Basic.

Main results #

References #

theorem HashFamily.almostUniversal2_mono {Seed : Type u_1} {Input : Type u_2} {Output : Type u_3} [Fintype Seed] [DecidableEq Output] {ε₁ ε₂ : } ( : ε₁ ε₂) (H : HashFamily Seed Input Output) (h : almostUniversal2 ε₁ H) :
theorem HashFamily.almostStronglyUniversal2_mono {Seed : Type u_1} {Input : Type u_2} {Output : Type u_3} [Fintype Seed] [Fintype Output] [DecidableEq Output] {ε₁ ε₂ : } ( : ε₁ ε₂) (H : HashFamily Seed Input Output) (h : almostStronglyUniversal2 ε₁ H) :
theorem HashFamily.almostUniversal2_of_almostStronglyUniversal2 {Seed : Type u_1} {Input : Type u_2} {Output : Type u_3} [Fintype Seed] [Fintype Output] [DecidableEq Output] [Nonempty Seed] {ε : } (H : HashFamily Seed Input Output) (h : almostStronglyUniversal2 ε H) :
theorem HashFamily.almostStronglyUniversal2_of_stronglyUniversal2 {Seed : Type u_1} {Input : Type u_2} {Output : Type u_3} [Fintype Seed] [Fintype Output] [DecidableEq Output] [Nonempty Seed] (H : HashFamily Seed Input Output) (hsu : H.stronglyUniversal2) :
theorem HashFamily.stronglyUniversal2_iff_almostStronglyUniversal2 {Seed : Type u_1} {Input : Type u_2} {Output : Type u_3} [Fintype Seed] [Fintype Output] [DecidableEq Output] [Nonempty Seed] (H : HashFamily Seed Input Output) :

stronglyUniversal2 is equivalent to almostStronglyUniversal2 (1 / |Output|). Since 1 / |Output| is the minimum possible ε for any ε-ASU₂ family (see almostStronglyUniversal2_eps_lower_bound), this characterizes strongly universal families as exactly those achieving the tightest possible near-independence bound.

theorem HashFamily.uniform_of_stronglyUniversal2 {Seed : Type u_1} {Input : Type u_2} {Output : Type u_3} [Fintype Seed] [Fintype Output] [DecidableEq Output] [Nonempty Seed] [Nontrivial Input] (H : HashFamily Seed Input Output) (hsu : H.stronglyUniversal2) :
theorem HashFamily.almostStronglyUniversal2_eps_lower_bound {Seed : Type u_1} {Input : Type u_2} {Output : Type u_3} [Fintype Seed] [Fintype Output] [DecidableEq Output] [Nonempty Seed] [Nontrivial Input] {ε : } (H : HashFamily Seed Input Output) (h : almostStronglyUniversal2 ε H) :
1 / (Fintype.card Output) ε