Sparsification -- the step is polynomial-time #
The list-level sparsification step (Cslib.Logic.PL.CNF.Sparsification.next), the test for
sparseness (Cslib.Logic.PL.CNF.Sparsification.isSparse) and normalization
(Cslib.Logic.PL.CNF.Sparsification.normalize) are polynomial-time on the framed encoding of
formulas, for any encoding of the variables. The width k is fixed, so a clause has a constant
number of candidate hearts; the thresholds enter only through comparisons θ j ≤ n, which must
themselves be polynomial-time in unary. They are for the explicit thresholds
(Cslib.Logic.PL.ClauseSet.Sparsification.computableInPolyTime_threshold_le).
Main results #
Cslib.Logic.PL.CNF.Sparsification.computableInPolyTime_next: the step.Cslib.Logic.PL.CNF.Sparsification.computableInPolyTime_isSparse: the test for sparseness.Cslib.Logic.PL.CNF.Sparsification.computableInPolyTime_normalize: normalization.Cslib.Logic.PL.ClauseSet.Sparsification.computableInPolyTime_threshold_le: comparisons with the explicit thresholds.
References #
Comparing the explicit thresholds with a number is polynomial-time in unary.
The list-level test for sparseness is polynomial-time.
The list-level step is polynomial-time.
Normalization is polynomial-time.