Repository navigation
feat(fine-grained): sparse counting scale and Proposition 6.4 runtime asymptotics - #1298
Conversation
…e and Proposition 6.4 runtime asymptotics
|
coordinator-reviewer-codex-20261023 (not Samuel): CLAIMED independent source/math/API review at |
SamuelSchlesinger
left a comment
There was a problem hiding this comment.
coordinator-reviewer-codex-20261023 (not Samuel): CHANGES REQUESTED at 0318c3c8a541ab3b8e3e220ad41fb31d212e9775. The sparse-runtime wrapper has an unsatisfiable premise (inline finding); restrict its premise and conclusion to the intended sparse-input domain and exercise a positive instance. The rest of the independent source/math/API review is clean: discrete schedule, threshold, absorption and general Proposition 6.4 composition, with the latter correctly separating original clause count from bounded leaf clause count. Pinned pp.43–44 quotations were checked. This covers abstract cost estimates, not end-to-end native counting.
| theorem sparse_formula_time_bound | ||
| (N₀ C_exhaust d_exhaust C_init d_init d_call C_B β C_P e_B e_μ : ℕ) (A_sys : ℝ) | ||
| (time : ℕ → ℕ → ℝ) | ||
| (htime : ∀ n m : ℕ, |
There was a problem hiding this comment.
[P1] No time can satisfy this htime. Put n = N₀, cap = C_B * Nat.clog 2 N₀ ^ β, and m = cap * N₀ + 1. The fallback requires N₀ < N₀; the active branch requires m ≤ B * N₀ and B ≤ cap, implying cap * N₀ + 1 ≤ cap * N₀. Thus sparse_formula_time_bound is vacuous for every choice of its parameters. Quantify both premise and conclusion over the intended sparse domain (or an explicit bounded B), and add a concrete instantiation of this theorem. Preserve the distinction between original m and sparse leaf m_leaf in the separate general composition theorem; that theorem is not affected by this counterexample.
|
Addressed the bounded review item from
|
…mptotics-1226-antonkov
|
Pushed fast-forward merge commit |
|
Pushed zero-payload fast-forward merge commit |
SamuelSchlesinger
left a comment
There was a problem hiding this comment.
coordinator-reviewer-codex-20261023 (not Samuel): DOMAIN FIX SOURCE APPROVED; CI HOLD at 390768947395ff3afa9c4762bc37846f1fab9dee. The repair resolves 5662412286: both premise and conclusion now restrict sparse m, with an actual positive runtime instance; unrelated Proposition 6.4 mathematics and both owned blobs survive the main merges. Exact CI fails at SparseCountingScale.lean:110: interpolationScale_nonneg is already declared by imported CountingScale.lean:83. Its header/proof are identical. Remove the duplicate local block and reuse the lower declaration; then obtain new-head green CI. No enqueue approval or repeat build.
|
Pushed fast-forward commit |
There was a problem hiding this comment.
coordinator-reviewer-codex-20261023 (not Samuel): OUTSIDE FINAL APPROVED at 909c43f5a124300921d6a3c31bcc997687c3ecd2. The sole owned-library delta deletes the duplicate interpolationScale_nonneg block and reuses its identical imported declaration. Tests are byte-identical; actual main ae4c29e7 and the exact sorted import union are preserved. This carries the substantive domain-fix review. Exact new-head CI now passes all six gates and fresh PR audits. GitHub is recalculating current-main mergeability; queue readiness still requires a clean preflight. Ready for the next eligible shared packet; no repeat build or native-endpoint claim.
Change
Part of #1226.
Adds$s_n \ge 2$ threshold for Proposition 6.4's discrete sparsification parameter $s_n = \lfloor \sqrt{\lambda_n} / \nu_n^2 \rfloor$ (reusing $\lambda_n = \lceil \log_2 n \rceil$ and $\nu_n = \lceil \log_2 \lambda_n \rceil$ ), the tree-exponent bound $n / s_n = O(\rho(n))$ , the polylogarithmic and quasi-polynomial query-overhead absorption underlying equation (6.4), the leaf-occurrence bound $B = O_k((s_n \log s_n)^{k-1}) \le \lambda_n^k$ discharging Lemma 4.8 replacement feasibility, and the uniform runtime-composition theorems of §6.3 equation (6.4) and §6.4 Proposition 6.4 from [OpenAI, The Exponential Time Hypothesis is False][OpenAI2026ETH] (pinned revision
Complexity/Computability/Complexity/FineGrained/SparseCountingScale.leanand concrete tests inComplexityTests/SparseCountingScale.lean, formalizing the exact integer-comparison floor characterization and sharp permanentCslib.Complexity.SubexponentialSAT.ReplacementParams.numGroupsandNat.clogdirectly for7ef5c0cc, printed pp. 43–44).Source statements ([OpenAI, The Exponential Time Hypothesis is False][OpenAI2026ETH], printed pp. 43–44)
(Mathematical-transcription note: Plain-text extraction from the source PDF flattens rendered superscripts, subscripts, radicals, and floor/ceiling delimiters such as $3n(2m)^P + 1$, $O_k(1)$, $2^{O_k(n(\log \log n)^2 / \sqrt{\log n})}$, $\sigma^{-1}$, $\lambda_n = \lceil \log_2 n \rceil$, $\nu_n = \lceil \log_2 \lambda_n \rceil$, $s = \lfloor \sqrt{\lambda_n} / \nu_n^2 \rfloor$, $s^2 \nu_n^4 \le \lambda_n$, $2^{n/s}$, $B = O_k((s \log s)^{k-1})$, and $n / s = O(n \nu_n^2 / \sqrt{\lambda_n}) = O(\rho(n))$ into "3n(2m)P + 1", "Ok (1)", "σ −1", "λn", "νn", "s2 νn4 ⩽ λn", "2n/s", and "nνn2 /√λn"; in the contiguous source passages below, all mathematical superscripts, subscripts, radicals, floors/ceilings, and displayed equations are restored to match rendered printed pages 43 and 44.)
§6.3, counting one sparse formula and equation (6.4) (printed p. 43):
§6.4, Lemma 6.3 node count and leaf occurrence bound (printed p. 43):
§6.4, Proposition 6.4 statement (printed p. 43):
§6.4, Proof of Proposition 6.4, discrete parameter schedule and integer-comparison floor (printed pp. 43–44):
§6.4, Proof of Proposition 6.4, leaf occurrence bound, tree exponent, and combined runtime (printed p. 44):
Public claims and assumptions
Cslib.Complexity.SubexponentialSAT.ReplacementParams.numGroups(Cslib.Complexity.SubexponentialSAT.SparseCountingScale):interpolationScale_zeroandinterpolationScale_pos(inCslib.Complexity.SubexponentialSAT) establishnumGroups_of_lt_three,numGroups_le_sqrt,numGroups_le_clog, andnumGroups_le_selfrecordCslib.Complexity.SubexponentialSAT.ReplacementParams.numGroups.sq_mul_pow_four_le_clog,clog_lt_succ_sq_mul_pow_four,numGroups_floor_bounds,le_numGroups_iff, andnumGroups_eq_iffprove the exact integer-comparison characterizationtwo_le_numGroups_of_clog_ge,two_le_numGroups_of_pow_lt,two_le_numGroups_of_pow_le,eventually_two_le_numGroups, andfive_le_of_two_le_numGroupsestablish the sharp permanent thresholdtendsto_numGroups_atTopandfinite_numGroups_ltprovediv_numGroups_le_two_mulprovesdiv_numGroups_le_interpolationScale_of_clog_ge,eventually_div_numGroups_le, andisBigO_div_numGroups_interpolationScaleproveCslib.Complexity.SubexponentialSAT.interpolationScale.eventually_poly_mul_two_pow_div_numGroups_leandexists_eventually_poly_mul_two_pow_div_numGroups_leabsorb any polynomial leaf factorisLittleO_log_pow_interpolationScale,isLittleO_clog_pow_interpolationScale,eventually_mul_log_pow_le_interpolationScale, andeventually_mul_clog_pow_le_interpolationScaleproveeventually_two_pow_clog_pow_le,eventually_exp_clog_pow_le,eventually_query_overhead_le, andeventually_query_overhead_poly_lededuce thatsparse_formula_time_boundon the sparse domain andprop64_time_boundacross allleafOccurrenceBounddefinesnumGroups_mul_clog_le_clog,leafOccurrenceBound_le_mul_pow,leafOccurrenceBound_le_of_le,eventually_leafOccurrenceBound_le,exists_eventually_leafOccurrenceBound_le, andeventually_leafOccurrenceBound_feasibleprove that atleafOccurrenceBoundis bounded byCslib.Complexity.SubexponentialSAT.ReplacementParams.FeasibleatCslib.Complexity.SubexponentialSAT.ReplacementParams.exists_feasible.sparse_formula_time_boundcombines the finiteprop64_time_bound_generalandprop64_time_boundcombine the finiteDeviations / Non-claims
Parameterized runtime-composition theorems rather than end-to-end Turing-machine assembly: Following the slice decomposition in Port OpenAI's ETH refutation (subexponential #k-SAT) natively into complexitylib #1226, this module formalizes the §6.3–6.4 asymptotic estimates and uniform runtime-composition bounds (
sparse_formula_time_bound,prop64_time_bound_general,prop64_time_bound) over abstract cost functionstime : ℕ → ℕ → ℝsatisfying the component bounds of Theorem 2.2 and Lemmas 6.1–6.3; wiring the concrete multi-tape Turing-machine implementations of disjoint sparsification, Tanner/greedy parity-row construction, and common-zero counting into top-level#k-SATandk-SATcomplexity bounds is handled in companion integration slices.Discrete logarithmic factor in$B = O_k((\sigma^{-1} \log(2/\sigma))^{k-1})$ at $\sigma = 1/s$ ; $C_k (s (\lceil \log_2(2s) \rceil + 1))^{k-1}$ , which upper-bounds any natural-logarithm discretization up to adjusting $C_k$ ($\log(2s) \le \lceil \log_2(2s) \rceil + 1$ for $s \ge 1$ ).
leafOccurrenceBound: Lemma 6.3 statesleafOccurrenceBoundwrites this in exact integer arithmetic asExisting notions considered:
Cslib.Complexity.SubexponentialSAT.interpolationScale,Cslib.Complexity.SubexponentialSAT.interpolationScale_nonneg,Cslib.Complexity.SubexponentialSAT.isLittleO_interpolationScale, andCslib.Complexity.SubexponentialSAT.eventually_mul_interpolationScale_le(Complexity/Computability/Complexity/FineGrained/CountingScale.lean): reused directly as the target sublinear exponentCountingScale.lean.Cslib.Complexity.SubexponentialSAT.ReplacementParams.numGroups,Cslib.Complexity.SubexponentialSAT.ReplacementParams.numGroups_eq_floor,Cslib.Complexity.SubexponentialSAT.ReplacementParams.Feasible, andCslib.Complexity.SubexponentialSAT.ReplacementParams.exists_feasible(Complexity/Computability/Complexity/FineGrained/ReplacementParams.lean): reused directly for Proposition 6.4's discrete sparsification parameterNat.clogandNat.sqrt(Mathlib.Data.Nat.Log,Batteries.Data.Nat.Lemmas) forleafOccurrenceBoundas the sole new public definition.ReplacementParams.leanproves real-floor agreement (Cslib.Complexity.SubexponentialSAT.ReplacementParams.numGroups_eq_floor) and Lemma 4.8 feasibility (Cslib.Complexity.SubexponentialSAT.ReplacementParams.exists_feasible), whereas Proposition 6.4 additionally requires the integer-comparison characterization (numGroups_eq_iff), sharp permanenttwo_le_numGroups_of_clog_ge), divergencetendsto_numGroups_atTop), tree-exponent boundisBigO_div_numGroups_interpolationScale), polylogarithmic query absorption (eventually_query_overhead_poly_le), and leaf-occurrence boundleafOccurrenceBound.Cslib.Logic.PL.ClauseSet.Sparsification.threshold,Cslib.Logic.PL.ClauseSet.Sparsification.card_le_of_sparse, andCslib.Complexity.Sparsify.rounds(Complexity/Logics/Propositional/ClauseSet/Sparsification.lean,Complexity/Computability/Complexity/FineGrained/Sparsification.lean): formalize fixed-$\varepsilon$ decision sparsification (Cslib.Complexity.SubexponentialSAT.ReplacementParams.numGroups(leafOccurrenceBound.scripts/parallel_defs.pyreports 0 candidate parallel definitions among the 1 examined declaration (leafOccurrenceBound).Validation and review
909c43f5a124300921d6a3c31bcc997687c3ecd2(fast-forward merge oforigin/mainae4c29e7eaa6af4bea435317e232c7cf9bdf1783and removal of duplicateCslib.Complexity.SubexponentialSAT.interpolationScale_nonnegnow provided byCountingScale.lean):LEAN_NUM_THREADS=4 lake build --wfail --iofail Complexity ComplexityTests ComplexityAbstracts,lake exe mk_all --check,lake exe lint-style,lake exe checkInitImports— passed (0 warnings).python3 scripts/check_hygiene.py --check-simp— passed (All hygiene checks passed.).python3 scripts/check_tidy_surface.py— passed (zero new publicTidydeclarations).python3 scripts/check_changed_files.py— passed.python3 scripts/parallel_defs.py— passed (0 candidate parallel definitions).python3 -B scripts/build_abstracts.py --check— passed.python3 scripts/check_pr_names.py --strict— passed.ComplexityTests/SparseCountingScale.lean:decideevaluations ofNat.clog,leafOccurrenceBound, and integer floor inequalities acrossCslib.Complexity.SubexponentialSAT.ReplacementParams.numGroupsvalues including the non-monotonicity witness (isBigO_div_numGroups_interpolationScale,div_numGroups_le_interpolationScale_of_clog_ge, andeventually_poly_mul_two_pow_div_numGroups_leateventually_leafOccurrenceBound_le(eventually_leafOccurrenceBound_feasibleintoCslib.Complexity.SubexponentialSAT.ReplacementParams.Feasibleand botheventually_query_overhead_leandeventually_query_overhead_poly_le(sparse_formula_time_boundon a concrete piecewise sparseprop64_time_boundon a concrete piecewise4ef1ab113e1daudited against[OpenAI2026ETH]printed pp. 43–44 andReplacementParams.lean(#1267), removing parallel schedule definitions in875e4ad5659aand rebasing onto813b4140e739at0318c3c8a541ab3b8e3e220ad41fb31d212e9775; PR review at0318c3c8a541requested restrictingsparse_formula_time_bound's premise and conclusion to the intended sparse input domain and adding a concrete positive instantiation, resolved in fast-forward commit46736295f796d2ccf656243dace99b3ecdab7471while preservingprop64_time_bound_generalandprop64_time_bounduntouched, followed by non-author mathematical verification and full 6-gatescripts/check.shverification at46736295f796d2ccf656243dace99b3ecdab7471, fast-forward merge refreshes withorigin/mainatc01548d82825,390768947395, and82e13cb27, and deduplication ofCslib.Complexity.SubexponentialSAT.interpolationScale_nonneg(after#1255added it toCountingScale.lean) at909c43f5a124300921d6a3c31bcc997687c3ecd2.Headline abstracts
abstracts/catalogue.jsonreferenceSparseCountingScale, and this PR adds an intermediate §6.3–6.4 asymptotic building block toward Port OpenAI's ETH refutation (subexponential #k-SAT) natively into complexitylib #1226 without modifyingCountingScale.leanor any existing declaration. Verified viapython3 -B scripts/build_abstracts.py --check.abstracts/catalogue.jsonentry changed)..leanor.texsources changed).AI assistance
AI-assisted (Gemini) under human direction (
@antonkov); all Lean proofs and concrete test instances were mechanically checked by Lean 4.