Negligible Functions #
This file defines a simple wrapper around SuperpolynomialDecay for functions ℕ → ℝ≥0∞,
as this is usually the situation for cryptographic reductions.
Main Results #
negligible_zero,negligible_of_zero: The zero function is negligible.negligible_of_le: Monotonicity — bounded by negligible is negligible.negligible_add: Sum of negligible functions is negligible.negligible_sum: Finite sum of negligible functions is negligible.negligible_const_mul: Constant multiple of negligible is negligible.
A function f is negligible if it decays faster than any polynomial function.
Instances For
Negligibility is monotone: if f ≤ g pointwise and g is negligible, then f is.
Sum of two negligible functions is negligible.
Constant multiple of a negligible function is negligible (requires c ≠ ⊤
because multiplication by ⊤ is discontinuous at 0 in ℝ≥0∞).
A finite sum of negligible functions is negligible.
If f is negligible, then fun n => (↑n)^d * f n is negligible for any fixed d.
Absorbs polynomial powers of the parameter into the superpolynomial decay.
If f is negligible, then fun n => ↑(p.eval n) * f n is negligible for any polynomial p.
This is the key lemma for handling polynomial-loss security reductions.