Affine pairwise-independent hashing -- proof internals #
@[simp]
theorem
Complexity.PairwiseIndependentHash.affineRows_affineSeedOfRows_internal
{domainWidth rangeWidth : ℕ}
(rows : Fin rangeWidth → BitString (domainWidth + 1))
:
@[simp]
theorem
Complexity.PairwiseIndependentHash.affineAugment_castSucc_internal
{domainWidth : ℕ}
(input : BitString domainWidth)
(column : Fin domainWidth)
:
@[simp]
theorem
Complexity.PairwiseIndependentHash.affineAugment_last_internal
{domainWidth : ℕ}
(input : BitString domainWidth)
:
def
Complexity.PairwiseIndependentHash.affineEvalHom
{domainWidth rangeWidth : ℕ}
(input : BitString domainWidth)
:
Affine evaluation is additive in the seed.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Complexity.PairwiseIndependentHash.affinePairEvalHom
{domainWidth rangeWidth : ℕ}
(first second : BitString domainWidth)
:
The joint outputs on two inputs form an additive map of the seed.
Equations
Instances For
theorem
Complexity.PairwiseIndependentHash.affineEvalHom_surjective_internal
{domainWidth rangeWidth : ℕ}
(input : BitString domainWidth)
:
Function.Surjective ⇑(affineEvalHom input)
theorem
Complexity.PairwiseIndependentHash.affinePairEvalHom_surjective_internal
{domainWidth rangeWidth : ℕ}
{first second : BitString domainWidth}
(hne : first ≠ second)
:
Function.Surjective ⇑(affinePairEvalHom first second)
theorem
Complexity.PairwiseIndependentHash.affine_uniform_internal
{domainWidth rangeWidth : ℕ}
(input : BitString domainWidth)
(output : BitString rangeWidth)
:
eventProb {seed : Fin (affineSeedWidth domainWidth rangeWidth) → Bool | affineEval seed input = output} = 1 / 2 ^ rangeWidth
theorem
Complexity.PairwiseIndependentHash.affine_pairwise_internal
{domainWidth rangeWidth : ℕ}
{first second : BitString domainWidth}
(hne : first ≠ second)
(firstOutput secondOutput : BitString rangeWidth)
:
eventProb
{seed : Fin (affineSeedWidth domainWidth rangeWidth) → Bool |
affineEval seed first = firstOutput ∧ affineEval seed second = secondOutput} = 1 / 2 ^ (2 * rangeWidth)