Constant-factor parsimonious compilation to positive exact-one clauses #
The two local constructions compose without another occurrence splitter or planarization. Every source clause contributes at most thirteen signed exact-one clauses; replacing their negative occurrences contributes at most thirteen times as many positive clauses. These are bounds on actual emitted lists. Every source variable keeps its occurrence count and no new variable occurs more than three times.
Main definitions #
PositiveExactOneCompile.rawFormula: the structured-variable positive compiler.PositiveExactOneCompile.formula: its compact natural-variable output.
Main results #
oneModelCount_formula,oneSatisfiable_formula: parsimony and correctness.length_formula_le,length_vars_formula_le: explicit constant-factor bounds.
References #
The local gadgets are from [HuntMaratheRadhakrishnanStearns1998, Theorem 3.8]. The composition and quantitative bounds are original.
The two disjoint families of local auxiliary variables.
Instances For
Compact natural names for all output variables.
Instances For
Both local stages have constant size: at most 169 clauses per source clause.
Every emitted clause has exactly three literal occurrences.
All output literal polarities are positive.
Occurrence-three inputs retain that bound through both local replacements.
Model counts are preserved through both uniquely extensible stages.
Compact numbering preserves the constant-factor clause bound.
Every compact output clause has exactly three literal occurrences.
The actual output has at most 507 literal occurrences per source clause.
Compact numbering preserves the degree-three restriction.
The final natural-variable output has exactly the source model count.
The compiler preserves satisfiability between ordinary and exact-one semantics.