Documentation

Complexity.Computability.PolyTime.CNF.BranchedSparseCNFCounter

Heavy-branched sparse k-CNF leaf model counter (BranchedSparseCNFCounter) #

Connects the heavy-branched sparse ๐”ฝโ‚‚ polynomial-system zero counter countSparsePolySystem (ยง5.5, Theorem 2.2, pp. 38โ€“39) to sparseCNFDeclaredCounter / normalizeDeclaredLeaf (ยง6.3, p. 43) at the Proposition 6.4 leaf schedule (ยง6.4, pp. 43โ€“44) of OpenAI, The Exponential Time Hypothesis is False, parameterized solely over branchEval : BranchEvalInput โ†’ โ„•:

Main definitions #

Main results #

References #

1. Proposition 6.4 / Section 6.3 Leaf Parameters and Total Counters #

Sparsification search divisor max 1 โŒŠโˆšโŒˆlogโ‚‚ NโŒ‰ / โŒˆlogโ‚‚ โŒˆlogโ‚‚ NโŒ‰โŒ‰ยฒโŒ‹ (ยง6.4, Proposition 6.4).

Instances For

    Appendix A.3 dyadic threshold base countingThresholdBase (max 2 k) (leafSearchDivisor N).

    Instances For

      Sparse leaf clause-density sum 2 * โˆ‘_{j < max 2 k} (leafThresholdBase k N) ^ j (ยง6.4).

      Instances For

        Promised sparse leaf clause-to-variable ratio leafOccBound k N + 1 (ยง6.3โ€“6.4).

        Instances For

          Heavy-branched sparse ๐”ฝโ‚‚ polynomial-system zero counter at mkPaperSparseInput y.1 k y.2.

          Instances For

            Total declared-range sparse k-CNF leaf model counter (ยง6.3โ€“6.4): dispatches valid dense formulas (leafDensityRatio k N * N < ฯˆ.length, including [[]] at N = 0) to countCNFExhaustive and sparse formulas (ฯˆ.length โ‰ค leafDensityRatio k N * N) to sparseCNFDeclaredCounter backed by branchedPolyCounter.

            Instances For

              Total normalized occurring-support sparse k-CNF leaf model counter (ยง6.3โ€“6.4).

              Instances For

                2. Leaf Parameter Bounds & Unary ComputableInPolyTime Certificate #

                leafOccBound k N equals 2 * โˆ‘ j โˆˆ Finset.range (max 2 k), leafThresholdBase k N ^ j.

                leafOccBound k N agrees with CountingSparsify.occBound (max 2 k) (leafThresholdBase k N).

                Polylogarithmic leaf clause-density bound (ยง6.4, Proposition 6.4, p. 44): โˆƒ C_B, โˆ€ N โ‰ฅ 2, leafDensityRatio k N โ‰ค C_B * (Nat.clog 2 N) ^ (2 * (max 2 k - 1)).

                Unary ComputableInPolyTime certificate for leafDensityRatio on (Unit ร— โ„•) (encPair encUnit encUnary โ†’ encUnary), clamping the binary countingThresholdBase schedule by its polynomial unary upper bound via ComputableInPolyTime.binary_min_unary'.

                3. Unconditional Output Caps & Semantic Exactness Across All Width-โ‰ค k CNFs #

                theorem Cslib.Complexity.BranchedSparseCNFCounter.branchedSparseCNFDeclaredCounter_le_two_pow (k Nโ‚€_leaf Nโ‚€_top Nโ‚€_branch : โ„•) (branchEval : SubexponentialSAT.SparsePolyCounter.BranchEvalInput โ†’ โ„•) (x : (Unit ร— โ„•) ร— Logic.PL.CNF โ„•) :
                branchedSparseCNFDeclaredCounter k Nโ‚€_leaf Nโ‚€_top Nโ‚€_branch branchEval x โ‰ค 2 ^ x.1.2

                Unconditional declared-range output cap: branchedSparseCNFDeclaredCounter โ‰ค 2 ^ x.1.2.

                theorem Cslib.Complexity.BranchedSparseCNFCounter.branchedSparseCNFLeafCounter_le_two_pow_numVars (k Nโ‚€_leaf Nโ‚€_top Nโ‚€_branch : โ„•) (branchEval : SubexponentialSAT.SparsePolyCounter.BranchEvalInput โ†’ โ„•) (x : (Unit ร— โ„•) ร— Logic.PL.CNF โ„•) :
                branchedSparseCNFLeafCounter k Nโ‚€_leaf Nโ‚€_top Nโ‚€_branch branchEval x โ‰ค 2 ^ x.2.numVars

                Unconditional occurring-support output cap: branchedSparseCNFLeafCounter โ‰ค 2 ^ x.2.numVars.

                Semantic bridge for branchedPolyCounter (ยง5.5 & ยง6.3): under exact feasible branch evaluation, branchedPolyCounter equals commonZeroCount on IsCompiledSparseSystem.

                theorem Cslib.Complexity.BranchedSparseCNFCounter.branchedSparseCNFDeclaredCounter_eq_modelCountOn {k Nโ‚€_leaf Nโ‚€_top Nโ‚€_branch : โ„•} {branchEval : SubexponentialSAT.SparsePolyCounter.BranchEvalInput โ†’ โ„•} (hbranch : โˆ€ (n' : โ„•) (eqs' : List (List (List โ„•))), SubexponentialSAT.SparsePolyCounter.checkBranchFeasible Nโ‚€_branch (n', eqs') = true โ†’ branchEval (SubexponentialSAT.SparsePolyCounter.prepareBranchEvalInput (n', eqs')) = GenericRAM.HeavyBranchFold.rootCount n' eqs') (c : Unit) (N : โ„•) (ฯˆ : Logic.PL.CNF โ„•) (hw : โˆ€ cl โˆˆ ฯˆ, List.length cl โ‰ค k) (hsub : ฯˆ.vars.toFinset โІ Finset.range N) :
                branchedSparseCNFDeclaredCounter k Nโ‚€_leaf Nโ‚€_top Nโ‚€_branch branchEval ((c, N), ฯˆ) = ฯˆ.modelCountOn (Finset.range N)

                Exactness of branchedSparseCNFDeclaredCounter without a density restriction (ยง5.5, ยง6.3, ยง6.4), assuming exact feasible-branch evaluation, on all width-โ‰ค k formulas ฯˆ with ฯˆ.vars.toFinset โІ Finset.range N.

                theorem Cslib.Complexity.BranchedSparseCNFCounter.branchedSparseCNFLeafCounter_eq_modelCount {k Nโ‚€_leaf Nโ‚€_top Nโ‚€_branch : โ„•} {branchEval : SubexponentialSAT.SparsePolyCounter.BranchEvalInput โ†’ โ„•} (hbranch : โˆ€ (n' : โ„•) (eqs' : List (List (List โ„•))), SubexponentialSAT.SparsePolyCounter.checkBranchFeasible Nโ‚€_branch (n', eqs') = true โ†’ branchEval (SubexponentialSAT.SparsePolyCounter.prepareBranchEvalInput (n', eqs')) = GenericRAM.HeavyBranchFold.rootCount n' eqs') (c : Unit) (N : โ„•) (ฯˆ : Logic.PL.CNF โ„•) (hw : โˆ€ cl โˆˆ ฯˆ, List.length cl โ‰ค k) (hsub : ฯˆ.vars.toFinset โІ Finset.range N) :
                branchedSparseCNFLeafCounter k Nโ‚€_leaf Nโ‚€_top Nโ‚€_branch branchEval ((c, N), ฯˆ) = ฯˆ.modelCount

                Exactness of branchedSparseCNFLeafCounter without a density restriction (ยง5.5, ยง6.3, ยง6.4), assuming exact feasible-branch evaluation, on all width-โ‰ค k formulas ฯˆ with ฯˆ.vars.toFinset โІ Finset.range N.

                theorem Cslib.Complexity.BranchedSparseCNFCounter.branchedSparseCNFDeclaredCounter_exhaustive_eq_modelCountOn (k Nโ‚€_leaf Nโ‚€_top Nโ‚€_branch : โ„•) (c : Unit) (N : โ„•) (ฯˆ : Logic.PL.CNF โ„•) (hw : โˆ€ cl โˆˆ ฯˆ, List.length cl โ‰ค k) (hsub : ฯˆ.vars.toFinset โІ Finset.range N) :

                Concrete instantiation of branchedSparseCNFDeclaredCounter_eq_modelCountOn with countSystemExhaustive.

                theorem Cslib.Complexity.BranchedSparseCNFCounter.branchedSparseCNFLeafCounter_exhaustive_eq_modelCount (k Nโ‚€_leaf Nโ‚€_top Nโ‚€_branch : โ„•) (c : Unit) (N : โ„•) (ฯˆ : Logic.PL.CNF โ„•) (hw : โˆ€ cl โˆˆ ฯˆ, List.length cl โ‰ค k) (hsub : ฯˆ.vars.toFinset โІ Finset.range N) :

                Concrete instantiation of branchedSparseCNFLeafCounter_eq_modelCount with countSystemExhaustive.

                4. Uniform Native Certificates & Global PolyBounded Workspace #

                5. Fast-Regime 2 ^ {O_k(interpolationScale N)} Runtime Envelope (ยง5.5, ยง6.3, ยง6.4) #

                Proposition 5.3 per-branch subexponential runtime hypothesis (BranchPolylogTimeBound): for every degree cap k_deg, polylogarithmic exponent ฮฒ, and prefactor C_inc, above a constant threshold Nโ‚€_br, every feasible reduced branch (n', sys') with sysMaxDegree sys' โ‰ค k_deg, sys'.length โ‰ค C_inc * n', and neutral-augmented incidence and scope width โ‰ค C_inc * โŒˆlogโ‚‚ n'โŒ‰ ^ ฮฒ runs in at most C_br * (|enc (n', sys')| + 1) ^ d_br * 2 ^ (A_br * interpolationScale n') steps.

                Instances For
                  theorem Cslib.Complexity.BranchedSparseCNFCounter.exists_threshold_branchedSparseCNF_time_bound (k Nโ‚€_top Nโ‚€_branch : โ„•) {branchEval : SubexponentialSAT.SparsePolyCounter.BranchEvalInput โ†’ โ„•} (cBranch : GenericRAM.NativeCertificate branchEval SubexponentialSAT.SparsePolyCounter.encBranchEvalInput Turing.MultiTapeTM.encNat) (hbound : โˆ€ (n' : โ„•) (eqs' : List (List (List โ„•))), SubexponentialSAT.SparsePolyCounter.checkBranchFeasible Nโ‚€_branch (n', eqs') = true โ†’ branchEval (SubexponentialSAT.SparsePolyCounter.prepareBranchEvalInput (n', eqs')) โ‰ค 2 ^ n') (hs_br : Turing.MultiTapeTM.PolyBounded (fun (x : SubexponentialSAT.SparsePolyCounter.BranchEvalInput) => (SubexponentialSAT.SparsePolyCounter.encBranchEvalInput x).length) cBranch.space) (hbr_time : BranchPolylogTimeBound Nโ‚€_branch cBranch) :
                  โˆƒ (N_min : โ„•), 16384 โ‰ค N_min โˆง โˆ€ (Nโ‚€_leaf : โ„•), N_min โ‰ค Nโ‚€_leaf โ†’ โˆƒ (C_t : โ„•) (d_t : โ„•) (A_t : โ„•), 1 โ‰ค A_t โˆง โˆ€ (x : (Unit ร— โ„•) ร— Logic.PL.CNF โ„•), List.length x.2 โ‰ค leafOccBound k x.1.2 * x.1.2 + 1 โ†’ โ†‘((branchedSparseCNFDeclaredCertificate k Nโ‚€_leaf Nโ‚€_top Nโ‚€_branch cBranch hbound).time x) โ‰ค โ†‘C_t * (โ†‘((Turing.MultiTapeTM.encPair (Turing.MultiTapeTM.encPair Turing.MultiTapeTM.Universal.encUnit Turing.MultiTapeTM.encUnary) encCNF) x).length + 1) ^ d_t * 2 ^ (โ†‘A_t * SubexponentialSAT.interpolationScale x.1.2) โˆง โ†‘((branchedSparseCNFLeafCertificate k Nโ‚€_leaf Nโ‚€_top Nโ‚€_branch cBranch hbound).time x) โ‰ค โ†‘C_t * (โ†‘((Turing.MultiTapeTM.encPair (Turing.MultiTapeTM.encPair Turing.MultiTapeTM.Universal.encUnit Turing.MultiTapeTM.encUnary) encCNF) x).length + 1) ^ d_t * 2 ^ (โ†‘A_t * SubexponentialSAT.interpolationScale x.1.2)

                  Threshold-parametric fast-regime 2 ^ {O_k(interpolationScale N)} runtime bound (ยง5.5, ยง6.3 eq. (6.4), ยง6.4 Proposition 6.4): above N_min โ‰ฅ 16384, both leaf certificates run in C_t * (|enc x| + 1) ^ d_t * 2 ^ (A_t * interpolationScale x.1.2) steps on x.2.length โ‰ค leafOccBound k x.1.2 * x.1.2 + 1 (for all N : โ„•, including N = 0).

                  theorem Cslib.Complexity.BranchedSparseCNFCounter.exists_branchedSparseCNF_time_bound (k Nโ‚€_branch : โ„•) {branchEval : SubexponentialSAT.SparsePolyCounter.BranchEvalInput โ†’ โ„•} (cBranch : GenericRAM.NativeCertificate branchEval SubexponentialSAT.SparsePolyCounter.encBranchEvalInput Turing.MultiTapeTM.encNat) (hbound : โˆ€ (n' : โ„•) (eqs' : List (List (List โ„•))), SubexponentialSAT.SparsePolyCounter.checkBranchFeasible Nโ‚€_branch (n', eqs') = true โ†’ branchEval (SubexponentialSAT.SparsePolyCounter.prepareBranchEvalInput (n', eqs')) โ‰ค 2 ^ n') (hs_br : Turing.MultiTapeTM.PolyBounded (fun (x : SubexponentialSAT.SparsePolyCounter.BranchEvalInput) => (SubexponentialSAT.SparsePolyCounter.encBranchEvalInput x).length) cBranch.space) (hbr_time : BranchPolylogTimeBound Nโ‚€_branch cBranch) :
                  โˆƒ (Nโ‚€_leaf : โ„•) (Nโ‚€_top : โ„•) (C_t : โ„•) (d_t : โ„•) (A_t : โ„•), 1 โ‰ค A_t โˆง โˆ€ (x : (Unit ร— โ„•) ร— Logic.PL.CNF โ„•), List.length x.2 โ‰ค leafOccBound k x.1.2 * x.1.2 + 1 โ†’ โ†‘((branchedSparseCNFDeclaredCertificate k Nโ‚€_leaf Nโ‚€_top Nโ‚€_branch cBranch hbound).time x) โ‰ค โ†‘C_t * (โ†‘((Turing.MultiTapeTM.encPair (Turing.MultiTapeTM.encPair Turing.MultiTapeTM.Universal.encUnit Turing.MultiTapeTM.encUnary) encCNF) x).length + 1) ^ d_t * 2 ^ (โ†‘A_t * SubexponentialSAT.interpolationScale x.1.2) โˆง โ†‘((branchedSparseCNFLeafCertificate k Nโ‚€_leaf Nโ‚€_top Nโ‚€_branch cBranch hbound).time x) โ‰ค โ†‘C_t * (โ†‘((Turing.MultiTapeTM.encPair (Turing.MultiTapeTM.encPair Turing.MultiTapeTM.Universal.encUnit Turing.MultiTapeTM.encUnary) encCNF) x).length + 1) ^ d_t * 2 ^ (โ†‘A_t * SubexponentialSAT.interpolationScale x.1.2)

                  Existential fast-regime 2 ^ {O_k(interpolationScale N)} runtime bound (ยง5.5, ยง6.3 eq. (6.4), ยง6.4 Proposition 6.4): under BranchPolylogTimeBound Nโ‚€_branch cBranch and polynomial branch workspace hs_br, there exist Nโ‚€_leaf Nโ‚€_top C_t d_t A_t : โ„• (1 โ‰ค A_t) bounding both leaf certificates across all x = ((c, N), ฯˆ) satisfying ฯˆ.length โ‰ค leafOccBound k N * N + 1 (including N = 0).