Documentation

Complexity.Logics.Propositional.ClauseSet.Sparsification.CountingPolyTime

Counting sparsification -- the step is polynomial-time #

The list-level counting-sparsification step (Cslib.Logic.PL.CNF.Sparsification.countingNext), tautology removal (Cslib.Logic.PL.CNF.Sparsification.removeTautologies), nontautological normalization (Cslib.Logic.PL.CNF.Sparsification.countingNormalize), and comparison with the counting thresholds countingThreshold M j = M ^ j (Cslib.Logic.PL.CNF.Sparsification.computableInPolyTime_countingThreshold_le) are polynomial-time on the framed encoding of formulas, for any encoding of the variables [OpenAI2026ETH, Appendix A.1].

Main results #

References #

The counting thresholds for a runtime base #

Comparing the counting thresholds countingThreshold M j = M ^ j with a number is polynomial-time for a runtime base M in binary, with j and the compared number in unary.

Sparseness for a runtime base. The test for sparseness against the thresholds countingThreshold M, for a base M given in binary at runtime, is polynomial-time.