Sparse polynomial equations over 𝔽₂, common-zero counting, and heavy-variable branching #
A sparse degree-k polynomial over 𝔽₂ on the Boolean cube ι → Bool is represented by a finite
family 𝓜 : Finset (Finset ι) of monomials M ⊆ ι of size at most k, evaluated in any
commutative ring R via Cslib.BitString.monomialSum R 𝓜 x = ∑ M ∈ 𝓜, monomial R M x and lifted
to MvPolynomial ι R via Cslib.BitString.monomialSumPoly R 𝓜.
Over ZMod 2, monomialSum (ZMod 2) 𝓜 x = 0 holds if and only if the integer evaluation
monomialSum ℤ 𝓜 x is even (Cslib.BitString.monomialSum_zmod_two_eq_zero_iff_even). Consequently,
the number of common zeros Cslib.BitString.commonZeroCount I P of a system {P i}_{i ∈ I} of
polynomial equations over 𝔽₂ equals the sum over the Boolean cube of the product of evenness
indicators of their integer evaluations
(Cslib.BitString.sum_prod_even_monomialSum_eq_commonZeroCount).
Combining this identity with the Beigel–Tarui parity-amplifying polynomials and shared-V
truncation from Complexity.Foundations.Data.Polynomial.ParityAmplifier Toda,
Arora and Barak, Section 17.4:
- Substituting any family of polynomials
q : ι → MvPolynomial σ Rof total degree at mostd₀intomonomialSumPoly R (P i)of degree at mostkproduces a lifted polynomial of total degree at mostk * d₀(Cslib.BitString.totalDegree_eval₂_monomialSumPoly_le), so the truncated shared-VproductS_ℓ(∏ i ∈ I, B_i(V))has total degree at most(k * d₀) * (#I + 2 * (ℓ - 1))(Cslib.BitString.totalDegree_sumCoeffsBelow_prod_parityFactor_eval₂_le). - Summing the truncated product over
x : ι → BoolrecoverscommonZeroCount I Pmodulo2 ^ ℓ(Cslib.BitString.sum_sumCoeffsBelow_prod_parityFactor_modEq_commonZeroCount), and recoverscommonZeroCount I Pon the nose via(· % 2 ^ ℓ)wheneverFintype.card ι < ℓ(Cslib.BitString.emod_sum_sumCoeffsBelow_prod_parityFactor_eq_commonZeroCount).
Finally, for any system of equations with variable scopes scope : κ → Finset ι contained in a
candidate variable set V (∀ i ∈ F, scope i ⊆ V) and positive incidence threshold 1 ≤ b₀,
the set Cslib.BitString.heavyVars V F scope b₀ of variables in V appearing in more than b₀
scopes has cardinality at most totalIncidence F scope / b₀
(Cslib.BitString.card_heavyVars_le_div), while every
remaining variable in V \ heavyVars V F scope b₀ (and in any post-branching restricted equation
scope when ∀ i ∈ I, equationScope (P i) ⊆ V) has incidence at most b₀. Branching on all
2 ^ #S assignments to a variable subset S and simplifying each equation via
Cslib.BitString.restrictMonomials preserves degree bounds, never increases the number of
monomials per equation, and decomposes commonZeroCount additively across the branches
(Cslib.BitString.commonZeroCount_eq_sum_branches).
Main definitions #
Cslib.BitString.monomialSum: evaluation∑ M ∈ 𝓜, monomial R M xof a family of monomials.Cslib.BitString.monomialPoly,Cslib.BitString.monomialSumPoly: formal multilinear polynomial lifts inMvPolynomial ι R.Cslib.BitString.IsCommonZero,Cslib.BitString.commonZeroCount: common zeros of a system of𝔽₂polynomial equations onι → Booland their count.Cslib.BitString.varIncidence,Cslib.BitString.totalIncidence,Cslib.BitString.heavyVars: variable-equation incidence counts and heavy-variable set above thresholdb₀.Cslib.BitString.patchAssignment,Cslib.BitString.restrictMonomials: patching a branch assignment onSand reducing a monomial family modulo2after specializingS.Cslib.BitString.parityBaseDigitCleared,Cslib.BitString.hPolyCleared,Cslib.BitString.parityFactorCleared,Cslib.BitString.clearedMonomialPoly,Cslib.BitString.clearedMonomialSumPoly: cleared-denominator parity factors and degree-khomogenized monomial sums from §5.4 and Appendix B.2.
Main results #
Cslib.BitString.monomialSum_zmod_two_eq_zero_iff_even:𝔽₂vanishing iff evenℤevaluation.Cslib.BitString.sum_prod_even_monomialSum_eq_commonZeroCount: equation (5.1) expressingcommonZeroCountas the cube sum of products of evenness indicators.Cslib.BitString.totalDegree_sumCoeffsBelow_prod_parityFactor_eval₂_le: total-degree bound(k * d₀) * (#I + 2 * (ℓ - 1))for the truncated product under degree-d₀replacements.Cslib.BitString.emod_sum_sumCoeffsBelow_prod_parityFactor_eq_commonZeroCount: exact recovery ofcommonZeroCountmodulo2 ^ ℓwhenFintype.card ι < ℓ.Cslib.BitString.card_heavyVars_le_divandCslib.BitString.varIncidence_sdiff_heavyVars_le: heavy-variable cardinality bound and light-variable incidence bound.Cslib.BitString.monomialSum_zmod_two_restrictMonomialsandCslib.BitString.commonZeroCount_eq_sum_branches: exact𝔽₂specialization and additive branch decomposition ofcommonZeroCount.Cslib.BitString.prod_parityFactorCleared_mul,Cslib.BitString.coeffNorm1_clearedMonomialSumPoly_le, andCslib.BitString.coeffNorm1_coeff_parityFactorCleared_le: cleared-denominator homogenization ($\Delta = d_{\text{den}}^k$, $\Gamma = \Delta^{2\ell-1}$, $\Omega = \Gamma^{\#I}$) and numeratorℓ₁-norm bounds from §5.4 and Appendix B.2.
References #
- S. Toda, PP is as hard as the polynomial-time hierarchy
- S. Arora, B. Barak, Computational Complexity: A Modern Approach
- OpenAI, The Exponential Time Hypothesis is False (Sections 5.1, 5.3, 5.4, 5.5, and Appendix B.2)
1. Monomial sums, integer lifts, and commonZeroCount #
The empty family of monomials evaluates to 0.
monomialSum R 𝓜 x equals the cast to R of the number of monomials M ∈ 𝓜 satisfied by
x.
A monomial sum vanishes in ZMod 2 at x if and only if its integer lift monomialSum ℤ 𝓜 x
is even.
x is a common zero over 𝔽₂ if and only if all integer evaluations monomialSum ℤ (P i) x
(i ∈ I) are even.
At any assignment x, the product of the evenness indicators of monomialSum ℤ (P i) x over
i ∈ I is 1 if IsCommonZero I P x and 0 otherwise.
Equation (5.1): the common-zero count of {P i}_{i ∈ I} over 𝔽₂ equals the sum over the
Boolean cube of the product of evenness indicators of the integer lifts monomialSum ℤ (P i) x.
An empty system of equations has 2 ^ Fintype.card ι common zeros.
commonZeroCount I P is at most 2 ^ Fintype.card ι.
2. Formal multilinear lifts and replacement total-degree bounds #
The formal multilinear monomial ∏ v ∈ M, X v in MvPolynomial ι R.
Instances For
The formal multilinear polynomial ∑ M ∈ 𝓜, ∏ v ∈ M, X v in MvPolynomial ι R.
Instances For
Evaluating monomialPoly R M at v ↦ bitVal R (x v) gives monomial R M x.
Evaluating monomialSumPoly R 𝓜 at v ↦ bitVal R (x v) gives monomialSum R 𝓜 x.
Evaluating monomialPoly R M via eval₂ f q gives ∏ v ∈ M, q v.
Substituting polynomials q v of total degree at most d₀ into monomialPoly R M produces a
polynomial of total degree at most #M * d₀.
Substituting polynomials q v of total degree at most d₀ into monomialSumPoly R 𝓜 of
degree at most k produces a polynomial of total degree at most k * d₀.
3. Truncated parity-factor degree bound (eq. 5.5) and count recovery (eq. 5.4) #
Equation (5.5) (truncated product degree bound under variable replacement): under the same
hypotheses, the truncated sum S_ℓ(∏ i ∈ I, B_i(V)) has total degree at most
(k * d₀) * (#I + 2 * (ℓ - 1)).
Polynomial.sumCoeffsBelow ℓ commutes with finite sums.
Equation (5.4) (congruence modulo 2 ^ ℓ): for ℓ ≥ 1, summing the truncated product of
parity factors of monomialSum ℤ (P i) x over x : ι → Bool recovers commonZeroCount I P
modulo 2 ^ ℓ.
Equation (5.4) (exact recovery via % 2 ^ ℓ): when Fintype.card ι < ℓ (in particular for
ℓ = Fintype.card ι + 1), reducing the cube sum of truncated parity-factor products modulo
2 ^ ℓ recovers commonZeroCount I P on the nose.
4. Heavy-variable incidence bounds (§5.5) #
The number of constraints i ∈ F whose scope scope i contains variable v.
Instances For
Double-counting variable-constraint incidences over a universe U containing all scopes.
If every constraint in F has scope size at most k, then totalIncidence F scope is at
most k * #F.
The set of heavy variables in U whose incidence in F strictly exceeds b₀.
Instances For
Markov / counting bound: #(heavyVars U F scope b₀) * (b₀ + 1) ≤ totalIncidence F scope.
#(heavyVars U F scope b₀) * b₀ ≤ totalIncidence F scope.
§5.5 (heavy-variable cardinality bound): for b₀ > 0, the number of heavy variables is at
most totalIncidence F scope / b₀.
Removing heavyVars U F scope b₀ from every scope reduces the incidence of every variable
v : ι to at most b₀.
5. Exact branching on a variable subset S (§5.5) #
The assignment that takes values from b on S and from y outside S.
Instances For
On S, patchAssignment S b y agrees with b.
Outside S, patchAssignment S b y agrees with y.
A monomial M evaluated on patchAssignment S b y factors into the indicator that b is all
true on M ∩ S times monomial R (M \ S) y.
The reduced family of monomials in the remaining variables after specializing S to b and
combining duplicate restricted monomials M \ S modulo 2.
Instances For
Every monomial in restrictMonomials S b 𝓜 is disjoint from S.
Specializing S never increases the degree of any monomial: if ∀ M ∈ 𝓜, #M ≤ k, then
∀ M' ∈ restrictMonomials S b 𝓜, #M' ≤ k.
Specializing S and reducing modulo 2 never increases the number of monomials:
#(restrictMonomials S b 𝓜) ≤ #𝓜.
Over any commutative ring R, monomialSum R 𝓜 (patchAssignment S b y) groups by restricted
monomials M' ∈ 𝓜.image (· \ S).
§5.5 (exact 𝔽₂ specialization): over ZMod 2, evaluating restrictMonomials S b 𝓜 at
y equals evaluating the original family 𝓜 at patchAssignment S b y.
patchAssignment S b y is a common zero of P if and only if y is a common zero of the
specialized system fun i => restrictMonomials S b (P i).
Canonical branch assignments supported on S (false outside S).
Instances For
Canonical subproblem assignments supported outside S (false on S).
Instances For
There are 2 ^ #S canonical branch assignments in branchAssignments S.
The variable scope ⋃ M ∈ 𝓜, M of a family 𝓜 of monomials.
Instances For
If every monomial in 𝓜 has size at most k, then #(equationScope 𝓜) ≤ k * #𝓜.
After specializing S, the variable scope of restrictMonomials S b 𝓜 is contained in
equationScope 𝓜 \ S.
§5.5 (post-branching incidence bound): after branching on the heavy variables
S = heavyVars U F (fun i => equationScope (P i)) b₀, every variable v : ι appears in at most
b₀ reduced scopes equationScope (restrictMonomials S b (P i)) (i ∈ F).
§5.5 (heavy-variable branch count bound): for b₀ > 0, the number of canonical branches on
heavyVars U F scope b₀ is at most 2 ^ (totalIncidence F scope / b₀).
§5.5 (additive branch decomposition of commonZeroCount): branching over all canonical
assignments b ∈ branchAssignments S to S partitions commonZeroCount I P into the sum of
common-zero counts on subproblemAssignments S of the reduced systems
fun i => restrictMonomials S b (P i).
6. Cleared-denominator homogenization and ℓ₁-norm bounds (§5.4 & Appendix B.2) #
Cleared-denominator evaluation a_j * Δ + b_j * A_i of parityBaseDigit ℓ j = a_j + b_j X at
L_i = A_i / Δ.
Instances For
Homogenization of parityBaseDigit ℓ j: parityBaseDigitCleared ℓ j Δ (Δ * y) = Δ * evalInt y (parityBaseDigit ℓ j).
Cleared-denominator evaluation A_i * (A_i - Δ) of hPoly = X ^ 2 - X at L_i = A_i / Δ.
Instances For
Homogenization of hPoly: hPolyCleared Δ (Δ * y) = Δ ^ 2 * evalInt y hPoly.
The cleared-denominator parity factor Γ B_i(V) with uniform factor denominator
Γ = Δ ^ (2 * ℓ - 1):
∑ j ∈ range ℓ, C (Δ ^ (2 * (ℓ - 1 - j)) * parityBaseDigitCleared ℓ j Δ A_i * hPolyCleared Δ A_i ^ j) * X ^ j.
Instances For
The s-th coefficient of parityFactorCleared ℓ Δ A_i.
§5.4 & Appendix B.2 (single-factor denominator clearing, $\Gamma = \Delta^{2\ell-1}$): for
ℓ ≥ 1, parityFactorCleared ℓ Δ (Δ * y) = C (Δ ^ (2 * ℓ - 1)) * parityFactor ℓ y.
§5.4 & Appendix B.2 (product denominator clearing, $\Omega = \Gamma^{\#I}$): for ℓ ≥ 1,
the product of cleared factors over i ∈ I equals C ((Δ ^ (2 * ℓ - 1)) ^ #I) times the product
of parityFactor ℓ (y i).
Scaling a polynomial by C c scales sumCoeffsBelow m by c.
§5.4 (truncated cleared-denominator product): for ℓ ≥ 1, the sum of the first m
coefficients of ∏ i ∈ I, parityFactorCleared ℓ Δ (Δ * y i) equals (Δ ^ (2 * ℓ - 1)) ^ #I
times the sum of the first m coefficients of ∏ i ∈ I, parityFactor ℓ (y i).
The cleared-denominator monomial C (d_den ^ (k - #M)) * ∏ v ∈ M, θ v in ℤ[X] for a monomial
M of degree at most k when each input has denominator d_den.
Instances For
The cleared-denominator monomial sum A_i = ∑ M ∈ 𝓜, clearedMonomialPoly d_den k θ M in
ℤ[X].
Instances For
Appendix B.2 (monomial numerator norm bound): if d_den.natAbs ≤ B₀, #M ≤ k, and every
θ v (v ∈ M) has coeffNorm1 (θ v) ≤ B₀, then
coeffNorm1 (clearedMonomialPoly d_den k θ M) ≤ B₀ ^ k.
Appendix B.2 (equation numerator norm bound ∥Δ L_i∥₁ ≤ #𝓜 * B₀ ^ k): under the same
hypotheses for all M ∈ 𝓜, coeffNorm1 (clearedMonomialSumPoly d_den k θ 𝓜) ≤ #𝓜 * B₀ ^ k.
Appendix B.2 (∥Δ e_j(L_i)∥₁ bound): if coeffNorm1 A_i ≤ B, then
coeffNorm1 (parityBaseDigitCleared ℓ j (C Δ) A_i) ≤ coeffNorm1 (parityBaseDigit ℓ j) * (B + Δ.natAbs).
Appendix B.2 (∥A_i (A_i - Δ)∥₁ bound): if coeffNorm1 A_i ≤ B, then
coeffNorm1 (hPolyCleared (C Δ) A_i) ≤ B * (B + Δ.natAbs).
Appendix B.2 (∥[V ^ s] (Γ B_i)∥₁ bound): if coeffNorm1 A_i ≤ B, then every V ^ s-
coefficient of parityFactorCleared ℓ (C Δ) A_i has coeffNorm1 at most
coeffNorm1 (parityBaseDigit ℓ s) * (B + Δ.natAbs) ^ (2 * ℓ - 1).
Appendix B.2 (explicit ∥[V ^ s] (Γ B_i)∥₁ bound): combining
coeffNorm1_coeff_parityFactorCleared_le with coeffNorm1_parityBaseDigit_le yields the explicit
exponential bound 2 * ((2 * ℓ) ^ s * 2 ^ (3 * ℓ)) * (B + Δ.natAbs) ^ (2 * ℓ - 1) for every
V ^ s-coefficient of parityFactorCleared ℓ (C Δ) A_i.