Documentation

MIPRE.Foundations.Cost.Growth

Polynomial versus exponential growth #

The arithmetic behind the threshold of the recursive compression argument (planning/compression-track.md, K3 step 4): for every polynomial Q over there is a constant K such that n ≥ 2 ^ (K + 1 + x) forces Q (x + log n) ≤ n + 1 (exists_threshold). The proof is elementary: a polynomial is bounded by its coefficient sum times the top power (polynomial_eval_le_sum_coeff_mul_pow), and A · σ ^ D ≤ 2 ^ σ as soon as σ ≥ A (D + 1) ^ (D + 1) (mul_pow_le_two_pow).

A polynomial over is bounded by its coefficient sum times the top power.

theorem MIPRE.Cost.mul_pow_le_two_pow (A D σ : ) (h : A * (D + 1) ^ (D + 1) σ) :
A * σ ^ D 2 ^ σ

A · σ ^ D ≤ 2 ^ σ for σ ≥ A (D + 1) ^ (D + 1): with μ = σ / (D + 1), A σ ^ D ≤ A (D + 1) ^ D (μ + 1) ^ D ≤ μ (μ + 1) ^ D ≤ (μ + 1) ^ (D + 1) ≤ 2 ^ (μ (D + 1)) ≤ 2 ^ σ.

theorem MIPRE.Cost.exists_threshold (Q : Polynomial ) :
∃ (K : ), ∀ (x n : ), 2 ^ (K + 1 + x) nPolynomial.eval (x + n.size) Q n + 1

The threshold lemma. For a polynomial Q, there is a constant K such that n ≥ 2 ^ (K + 1 + x) implies Q (x + log n) ≤ n + 1 (with log n = Nat.size n). This is what makes the threshold r e = 2 ^ (K + 1 + esize e) of the compression argument work: above it, every polynomial overhead in esize e + log n is at most n + 1.