Executable bounded-incidence branch evaluator and Stage-1 design refinement (Proposition 5.3) #
Pure executable bounded-incidence branch evaluator
evalBoundedIncidenceBranch : BranchEvalInput → ℕ, entry and design-shape guards
(validBranchEvalParams, validDesignShape), unconditional cube bound
evalBoundedIncidenceBranch_le_two_pow, Stage-1 parameter unclamping and ReplacementDesign
refinement on feasible prepared inputs (prepareBranchEvalInput (n', eqs') under
checkBranchFeasible N₀_branch (n', eqs') = true), and Stage-2 local assignment/cube bridges for
Proposition 5.3 of OpenAI, The Exponential Time Hypothesis is False
(§§3.4–3.5, §4.6, §§5.3–5.5, Proposition 5.3, and Appendix B.2–B.3, pp. 24–26, 33–34, 37–39,
48–50). Invalid raw inputs return 0, validDesignShape enforces unary resource-dimension bounds
rather than semantic validity of arbitrary designs, and exact root-count recovery on feasible
prepared inputs follows in BoundedIncidenceExactness.
Given inp = ((n', k'), (b, w, M', β), (r, Q, R, A₀), eqs') : BranchEvalInput:
- Entry guard and unary-clamped parameters:
validBranchEvalParamschecks the structural and schedule range invariants (includingr_u ^ (2 * Q_u) ≤ n', variable bounds< n', canonicality, andsysMaxDegree eqs' ≤ k'), clamping(Q, R, r, A₀, D)from the left against unary expressions inn'so resource certificates remain uniform across allBranchEvalInputtuples. - Greedy balanced schedule and Lemma 4.7 replacement design: augments equation scopes with
neutral singletons via
withNeutralScopesList, constructs balanced variable/factor schedules viaBalancedSchedules.constructBalancedSchedules, buildsReplacementDesignDataviabuildReplacementDesignData, and precomputes per-equation replacement-row lookup tables. - Two-pass measurement-fiber jet accumulation and Hermite–Cramer recovery: for each node
t < Q_u(node = t + 1), folds over subset pairs(E, U, oddSign)viaSubsetPairFold.runand signed measurement tuples viaMeasurementFold.run; Pass 1 finds unrestricted local fiber representatives viaBooleanMeasurements.search, Pass 2 streams restricted local fiber jet sums viaCommonCountingAccum.streamGroupJetSumusingevalAffineInputZJetTableandevalEquationParityFactorJet, multiplies group jets viaCommonCountingAccum.prodJet, and recovers the count modulo2 ^ (n' + 1)viaCommonCountingAccum.recoverOuterJetSumModPowTwo.
Main definitions #
Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.validBranchEvalParams,Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.validDesignShape: Boolean entry and unary design-shape guards onBranchEvalInputandReplacementDesignData.Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.applyGroupBits,Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.buildBaseAssignment,Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.checkRestrictedGroup,Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.buildEqRowTables,Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.groupEquationsAt: local group bit overrides, restricted-cube test, and precomputed per-equation replacement-row tables.Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.GroupEvalCtx,Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.MeasStepCtx,Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.SubsetStepCtx,Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.evalGroupFactorJet,Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.measurementStepBody,Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.subsetPairStepBody: closed step contexts and step bodies forCommonCountingAccum.streamGroupJetSum,MeasurementFold.run, andSubsetPairFold.run.Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.evalBoundedIncidenceBranch: executable Proposition 5.3 branch evaluatorBranchEvalInput → ℕ.
Main results #
Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.evalBoundedIncidenceBranch_le_two_pow: unconditional upper boundevalBoundedIncidenceBranch inp ≤ 2 ^ inp.1.1.Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.validBranchEvalParams_prepare_of_feasible: passingcheckBranchFeasibleimpliesvalidBranchEvalParamsonprepareBranchEvalInput.Cslib.Complexity.SubexponentialSAT.SparsePolyCounter.exists_refines_prepare_of_feasible: Stage-1ReplacementDesignData.Refineswitness and unclamped parameter identities on feasible prepared inputs.
References #
- OpenAI, The Exponential Time Hypothesis is False, §§3.4–3.5, §4.6, §§5.3–5.5, Proposition 5.3, and Appendix B.2–B.3.
1. Entry Guard, Clamped Parameters, and Stage-1/Stage-2 Helpers #
Entry guard on inp = ((n', k'), (b, w, M', β), (r, Q, R, A₀), eqs') : BranchEvalInput
verifying structural nondegeneracy, unary parameter bounds against n', auxiliary dimension bound
r_u ^ (2 * Q_u) ≤ n', variable range < n', canonicality, and degree bound ≤ k'.
Instances For
Design-shape guard checking unary measurement-dimension and local-group size bounds on
ReplacementDesignData (both hold automatically under ReplacementParams.Feasible).
Instances For
Precompute for each equation f < eqs'.length and variable v < n' the cleared replacement
row table data.lookupReplacementRow f v.
Instances For
Context bundle for evalGroupFactorJet inside CommonCountingAccum.streamGroupJetSum:
((n', J, ℓ, k'), (node, denom), (Vg, Ctg, yg), (indE, indU, xStar), groupEqsWithTables) where
each pair in groupEqsWithTables is (eq, rowsCoeffs_f) for an equation in group g at t.
Instances For
Closed local-cube summand for CommonCountingAccum.streamGroupJetSum: returns 0 unless ug
belongs to the indE-restricted local cube and matches measurement slice yg, in which case it
evaluates the product of cleared parity-factor jets over equations assigned to group g at t.
Instances For
Context bundle carried unchanged through MeasurementFold.run at fixed (t, E, U):
((n', r_u, m_rows), (J, ℓ, k'), (node, dDen), (vGroups_t, grpMeas_t), (indE, indU), grpEqs).
Instances For
Closed step body for MeasurementFold.run: slices word into per-group targets yg, runs
Pass 1 (BooleanMeasurements.search) across all g < r_u, and when all fibers are nonempty runs
Pass 2 (CommonCountingAccum.streamGroupJetSum) across all g < r_u and adds their prodJet.
Instances For
Context bundle carried unchanged through SubsetPairFold.run at fixed node t:
((n', r_u, m_rows), (c_meas, D_cap), (J, ℓ, k'), (node, dDen), (vGroups_t, grpMeas_t), eqs).
Instances For
Closed step body for SubsetPairFold.run: accumulates the signed measurement-fiber jet sum at
(indE, indU, oddSign) via MeasurementFold.run.
Instances For
Proposition 5.3 executable bounded-incidence branch evaluator
(OpenAI, The Exponential Time Hypothesis is False, §§5.3–5.5, Proposition 5.3,
pp. 37–39): on feasible prepared inputs (prepareBranchEvalInput (n', eqs') when
checkBranchFeasible N₀_branch (n', eqs') = true), evaluates the exact number of common 𝔽₂
roots of eqs' on {0, 1}^{n'} via greedy balanced scheduling, Lemma 4.7 replacement-design
construction, two-pass measurement-fiber Taylor jet accumulation, and Hermite–Cramer modular
recovery. Invalid raw BranchEvalInput tuples fail validBranchEvalParams or the unary
resource-dimension guard validDesignShape (which bounds measurement and group dimensions rather
than certifying arbitrary designs) and return 0.
Instances For
2. Unconditional Cube Upper Bound #
evalBoundedIncidenceBranch inp never exceeds the ambient Boolean cube size 2 ^ n'.
3. Stage-1 Parameter Unclamping and ReplacementDesignData Refinement #
Passing checkBranchFeasible implies validBranchEvalParams on prepareBranchEvalInput.
Under checkBranchFeasible N₀_branch (n', eqs') = true, the clamped schedule parameters in
evalBoundedIncidenceBranch (prepareBranchEvalInput (n', eqs')) equal the unclamped schedule
parameters, buildReplacementDesignData refines a concrete ReplacementDesign on
withNeutralScopesList (eqs'.map equationVars) n', its measurement matrix has
D.h * #(measurementIndices Q r A₀ R) rows with r * data.measurementMatrix.length ≤ n', and
validDesignShape returns true.