Polynomial-time forbidden-pattern compilation of Boolean CSPs #
The existing width-guarded compiler Cslib.Logic.PL.CSP.toCNFBounded is polynomial-time for
fixed width when its finite relation tables can be evaluated in polynomial time. These
certificates serve both exact counting and approximation-preserving reductions.
Main definitions #
Cslib.Complexity.encConstraint,Cslib.Complexity.encCSP: framed binary encodings of constraints and their lists.
Main results #
Cslib.Complexity.CSP.computableInPolyTime_toCNFBounded_of_forall: compilation from polynomial-time evaluations of the finitely many relevant local patterns.Cslib.Complexity.CSP.computableInPolyTime_toCNFBounded: compilation from a polynomial-time relation evaluator.Cslib.Complexity.CSP.computableInPolyTime_toCNFBounded_of_finite: compilation for a finite relation alphabet.
Width-guarded compilation of a Boolean CSP instance to a k-CNF formula is computable in
polynomial time whenever fun R => sem R w is computable in polynomial time for each bit pattern
w of length at most k.
Width-guarded compilation of a Boolean CSP instance to a k-CNF formula is computable in
polynomial time whenever sem is computable in polynomial time.
Width-guarded compilation of a Boolean CSP instance to a k-CNF formula is computable in
polynomial time for any finite relation alphabet Rel.