Ring-homomorphism transport and univariate natDegree bounds for parity factors #
This module provides ring-homomorphism transport and univariate natDegree bounds for the
parity-amplifying series factors Polynomial.parityFactor and truncated coefficient sums
Polynomial.sumCoeffsBelow defined in Complexity.Foundations.Data.Polynomial.ParityAmplifier.
When each input $L_i(T) \in R[T]$ is a univariate polynomial of natDegree at most $d$, the
$V^s$-coefficient of $\prod_{i \in I} B_i(L_i(T), V)$ in $R[T][V]$ has natDegree at most
$d (\#I + 2 s)$ (Polynomial.natDegree_coeff_prod_parityFactor_le), so every retained coefficient
for $s < \ell$ and their sum sumCoeffsBelow ℓ have natDegree at most $d (\#I + 2 (\ell - 1))$
(Polynomial.natDegree_coeff_prod_parityFactor_le_of_lt,
Polynomial.natDegree_sumCoeffsBelow_prod_parityFactor_le), matching Lemma 5.2 and equation (5.5)
of OpenAI, The Exponential Time Hypothesis is False.
Main results #
Polynomial.map_evalInt,Polynomial.map_parityFactor,Polynomial.map_sumCoeffsBelow: ring-homomorphism transport forevalInt,parityFactor, andsumCoeffsBelow.Polynomial.eval_coeff_prod_parityFactor,Polynomial.eval_sumCoeffsBelow_prod_parityFactor: pointwise evaluation of coefficients and truncated sums of products of univariate parity factors.Polynomial.natDegree_evalInt_le,Polynomial.natDegree_coeff_parityFactor_le: univariatenatDegreebounds forevalIntand single parity-factor coefficients.Polynomial.natDegree_coeff_prod_parityFactor_le,Polynomial.natDegree_coeff_prod_parityFactor_le_of_lt,Polynomial.natDegree_sumCoeffsBelow_prod_parityFactor_le: univariatenatDegreebounds for products of parity factors and their truncated coefficient sums.
References #
- OpenAI, The Exponential Time Hypothesis is False (Lemma 5.2 and Section 5.3)
Any ring homomorphism φ : A →+* B commutes with Polynomial.evalInt.
Any ring homomorphism φ : A →+* B commutes with sumCoeffsBelow.
Evaluating the s-th coefficient of ∏ i ∈ I, parityFactor ℓ (L i) at t : R agrees with
the s-th coefficient of ∏ i ∈ I, parityFactor ℓ ((L i).eval t).
Evaluating sumCoeffsBelow m of ∏ i ∈ I, parityFactor ℓ (L i) at t : R agrees with
sumCoeffsBelow m of ∏ i ∈ I, parityFactor ℓ ((L i).eval t).
For y : R[X] and p : ℤ[X], (evalInt y p).natDegree ≤ p.natDegree * y.natDegree.
evalInt y (parityBaseDigit ℓ j) has natDegree ≤ y.natDegree.
The j-th coefficient of parityFactor ℓ y has natDegree ≤ (1 + 2 * j) * y.natDegree.
If every L i (i ∈ I) has natDegree ≤ d, then the V ^ s-coefficient of
∏ i ∈ I, parityFactor ℓ (L i) has natDegree ≤ d * (#I + 2 * s).
For s < ℓ, the V ^ s-coefficient of ∏ i ∈ I, parityFactor ℓ (L i) has
natDegree ≤ d * (#I + 2 * (ℓ - 1)).
The truncated sum sumCoeffsBelow ℓ (∏ i ∈ I, parityFactor ℓ (L i)) has
natDegree ≤ d * (#I + 2 * (ℓ - 1)).