3SAT with at most three occurrences per variable #
ThreeSATThree uses clauses of width at most three, allowing binary clauses. Every variable has
at most three literal occurrences, including repeated literals within a clause
Papadimitriou, Proposition 9.3. Only the variable-occurrence restriction of
that proposition is formalized; its additional bound of two occurrences per signed literal is
not part of ThreeSATThree or the completeness theorem. The reduction
splits occurrences and connects the copies by binary implication cycles. It is total on all CNF
inputs: a formula having a clause longer than three maps to the unsatisfiable formula [[]].
Original natural labels stay binary throughout; only syntactic positions use unary counters.
The construction is adapted from lean-trominoes revision
6d5b36c15cec6cb18d30137b7f1c7fb92ea24332,
PeriodicThreeSATThree.lean,
PeriodicThreeSATThreeCorrectness.lean, and
PeriodicThreeSATThreeExactSize.lean.
This endpoint imposes no planarity condition.
Main definitions #
Cslib.Complexity.ThreeSATThree: satisfiable width-three, occurrence-three CNF formulas.Cslib.Complexity.toThreeSATThree: the total reduction fromThreeSAT.
Main results #
Cslib.Complexity.mem_ThreeSATThree_toThreeSATThree_iff: correctness of the reduction.Cslib.Complexity.modelCount_toThreeSATThree: preservation of counts for width-three inputs.Cslib.Complexity.computableInPolyTime_toThreeSATThree: native polynomial time underencCNF.Cslib.Complexity.ThreeSATThree_npComplete: 3SAT-3 is NP-complete.
References #
Satisfiable CNF formulas of width at most three, with at most three literal occurrences per variable. Repetitions count, and binary clauses are permitted.
Instances For
Numbering copies is injective, independently of whether they occur in a formula.
Numbering copies is polynomial-time without expanding the original binary label.
Check clause widths, literal-occurrence bounds, and a satisfying assignment.
Instances For
The occurrence restriction is a polynomial-time guard on the usual SAT verifier.
The width/occurrence tests and SAT evaluation run in native polynomial time.
3SAT-3 belongs to NP under the ordinary binary CNF encoding.
Reject non-width-three inputs, and otherwise split occurrences and number the copies.
Instances For
For a width-three input, numbering preserves the splitter's exact clause count.
For a width-three input, numbering preserves the exact literal-occurrence count.
For a width-three input, occurrence splitting and injective numbering preserve the number of satisfying assignments on occurring variables.
The total splitter is polynomial-time under binary encCNF.
Correctness holds for all CNF inputs, including those outside the width-three restriction.
ThreeSAT reduces to 3SAT-3.
3SAT with at most three occurrences per variable is NP-complete Papadimitriou, Proposition 9.3. The additional per-signed-literal bound in that proposition is not part of this statement.