Sparse 𝔽₂ Polynomial Systems and Branch-Reduced Parity Counting for CNF Formulas #
This module connects the sparse CNF parity-test compilation of Sections 6.1–6.3
(Complexity.Logics.Propositional.CNF.ExactTests and
Complexity.Logics.Propositional.CNF.PolynomialTests) with the sparse 𝔽₂ polynomial system,
heavy-variable branching, and cleared-denominator parity-amplifier counter of Section 5 and
Appendix B.2–B.3 (Complexity.Foundations.BooleanAnalysis.SparseEquations,
Complexity.Foundations.BooleanAnalysis.SparseBranching, and
Complexity.Foundations.BooleanAnalysis.SparseClearedSpecialization) of
OpenAI, The Exponential Time Hypothesis is False (printed pp. 37–43, 48–50):
- Indexed sparse
𝔽₂polynomial system of parity-check rows (CNF.parityRowSystem): For anyφ : CNF Vand listrows : List (Fin φ.length → Bool)of parity-check rows on the clause-violation vector,φ.parityRowSystem rows : Fin rows.length → Finset (Finset V)indexes the compiled𝔽₂equationsφ.parityRowMonomials (rows.get i). ItsCslib.BitStringcommon zero predicateIsCommonZero univ (φ.parityRowSystem rows)is equivalent toPassesTests φ.violations rows, and its common-zero countcommonZeroCount univ (φ.parityRowSystem rows)equalsnumPassing φ.violations rows. - Degree, sparsity, variable-scope, and heavy-variable branch bounds (§5.5 & Lemma 6.2):
When every clause of
φhas width at mostkand every row inrowshas Hamming weight at mostW, each equationφ.parityRowSystem rows ihas degree at mostk, at mostW * 2 ^ kmonomials, and variable scopeequationScope (φ.parityRowSystem rows i)of size at mostk * (W * 2 ^ k)contained inφ.vars.toFinset. Consequently, branching on the heavy variablesheavyVars univ univ (fun i => equationScope (φ.parityRowSystem rows i)) b₀produces at most2 ^ ((rows.length * (k * (W * 2 ^ k))) / b₀)branches, each with post-branching free-variable incidence at mostb₀. - End-to-end greedy parity-test model counting via
commonZeroCountand cleared-denominator branch evaluation (§6.1–6.3 & §5.4–5.5): CombiningCNF.numPassing_greedy_initial(Lemmas 6.1–6.2) withCNF.commonZeroCount_parityRowSystemandcommonZeroCount_eq_sum_branch_emod_ediv_clearedshows that for any width-≤ kformulaφonn = Fintype.card V ≥ 1variables withφ.length ≤ B * n(B ≥ 1), there exist at most3 * ninitial rowsA₀of weight at mostD₀ = 320000 * B ^ 2 * (Nat.log 2 φ.length + 1) ^ 3such that any3 * n-step greedy sequence minimizingcommonZeroCount univ (φ.parityRowSystem (A i ++ [testRow γ']))over candidate rows of list lengthP = 20000 * B ^ 2 * (Nat.log 2 φ.length + 1) ^ 2satisfiescommonZeroCount univ (φ.parityRowSystem (A (3 * n))) = φ.modelCountOn Finset.univ, and its branch-summed cleared-denominator parity-product evaluation atT = 0recoversφ.modelCountOn Finset.univon the nose.
Main definitions #
Cslib.Logic.PL.CNF.parityRowSystem: theFin rows.length-indexed sparse𝔽₂polynomial systemfun i => φ.parityRowMonomials (rows.get i).
Main results #
Cslib.Logic.PL.CNF.isCommonZero_parityRowSystem_iff,Cslib.Logic.PL.CNF.commonZeroCount_parityRowSystem: equivalence betweenIsCommonZero/commonZeroCountofφ.parityRowSystem rowsandPassesTests/numPassing.Cslib.Logic.PL.CNF.card_equationScope_parityRowSystem_le,Cslib.Logic.PL.CNF.totalIncidence_parityRowSystem_le,Cslib.Logic.PL.CNF.card_branchAssignments_heavyVars_parityRowSystem_le,Cslib.Logic.PL.CNF.varIncidence_restrictMonomials_heavyVars_parityRowSystem_le: variable-scope, total-incidence, and heavy-variable branching bounds for compiled parity-row systems.Cslib.Logic.PL.CNF.commonZeroCount_parityRowSystem_greedy,Cslib.Logic.PL.CNF.exists_initialTests_commonZeroCount_greedy,Cslib.Logic.PL.CNF.modelCountOn_eq_sum_branch_emod_ediv_cleared_greedy: exact recovery ofφ.modelCountOn Finset.univafter3 * Fintype.card Vgreedy rounds viacommonZeroCountand cleared-denominator branch evaluation.
References #
- OpenAI, The Exponential Time Hypothesis is False (Sections 5.4–5.5 and 6.1–6.3)
1. Indexed sparse 𝔽₂ polynomial system of parity-check rows #
The Fin rows.length-indexed sparse 𝔽₂ polynomial system compiled from a list
rows : List (Fin φ.length → Bool) of parity-check rows on the clause-violation bits of φ
([OAI26c], eq. 6.1, p. 39).
Instances For
§6 (eq. 6.1 common-zero equivalence): σ : V → Bool is a common zero of
φ.parityRowSystem rows if and only if PassesTests φ.violations rows σ.
If every clause of φ has width at most k, then every monomial in
φ.parityRowSystem rows i has size at most k.
If every clause of φ has width at most k and every row in rows has Hamming weight at most
W, then every equation φ.parityRowSystem rows i contains at most W * 2 ^ k monomials.
If every clause of φ has width at most k and every row in rows has Hamming weight at most
W, then the variable scope equationScope (φ.parityRowSystem rows i) has size at most
k * (W * 2 ^ k).
Under the same hypotheses, the total variable-equation incidence across all rows.length
compiled equations is at most (k * (W * 2 ^ k)) * rows.length.
2. Common-zero counts, heavy-variable branching, and greedy parity recovery #
§6 (common-zero count identity): commonZeroCount univ (φ.parityRowSystem rows) equals
numPassing φ.violations rows.
N(P_A) = #F + D(A) in commonZeroCount form ([OAI26c], §6, p. 40).
§5.5 & §6.3 (heavy-variable branch count bound on compiled parity systems): if every clause
of φ has width at most k, every row in rows has Hamming weight at most W, and 0 < b₀, then
branching on heavyVars univ univ (fun i => equationScope (φ.parityRowSystem rows i)) b₀ produces
at most 2 ^ (((k * (W * 2 ^ k)) * rows.length) / b₀) canonical branches.
§5.5 & §6.3 (post-branching free-variable incidence bound on compiled parity systems):
after branching on heavyVars univ univ (fun i => equationScope (φ.parityRowSystem rows i)) b₀,
every variable v : V appears in at most b₀ restricted equations.
Lemma 6.2 & §6.3 (commonZeroCount greedy recovery of φ.modelCountOn Finset.univ):
under the initial-residual hypothesis hinit, if each greedy step i chooses γ i minimizing
commonZeroCount univ (φ.parityRowSystem (A i ++ [testRow γ'])), then after 3 * Fintype.card V
rounds the common-zero count of φ.parityRowSystem (A (3 * Fintype.card V)) equals
φ.modelCountOn Finset.univ (#F).
Lemmas 6.1–6.2 & §6.3 (initial + greedy parity tests via commonZeroCount with system
sparsity and scope bounds): for any width-≤ k CNF φ on n = Fintype.card V ≥ 1 variables with
φ.length ≤ B * n (B ≥ 1), there exist initial parity rows A₀ (A₀.length ≤ 3 * n, each of
weight at most D₀ = initialRowWeightBound B φ.length) such that for any greedy sequence
A (i + 1) = A i ++ [testRow (γ i)] with A 0 = A₀ minimizing
commonZeroCount univ (φ.parityRowSystem (A i ++ [testRow γ'])) over candidate rows of list length
P = greedyRowListLength B φ.length:
- After
3 * nrounds,commonZeroCount univ (φ.parityRowSystem (A (3 * n))) = φ.modelCountOn Finset.univ. - At every stage
i ≤ 3 * n,(A i).length ≤ 6 * n, and every compiled equationφ.parityRowSystem (A i) jhas degree at mostk, at mostmax D₀ P * 2 ^ kmonomials, and variable-scope size#(equationScope (φ.parityRowSystem (A i) j)) ≤ k * (max D₀ P * 2 ^ k).
§5.4–5.5 & §6.3 (branch-summed cleared-denominator recovery of φ.modelCountOn Finset.univ
after 3 * n greedy rounds): under the hypotheses of
CNF.commonZeroCount_parityRowSystem_greedy, for any heavy-variable set S : Finset V,
free-variable relabeling e : ↥(univ \ S) ≃ ι', nonzero common denominator d_den ≠ 0, and
cleared-denominator replacement family θ evaluating at T = 0 to d_den * bitVal ℤ (x v),
summing the branch modular residues of univariateClearedParityTruncatedSum divided by
clearedProductDenom at shared precision branchPrecision (Fintype.card V) across all
b ∈ branchAssignments S recovers φ.modelCountOn Finset.univ.