Reduce SAT to 3SAT by clause splitting
Replace long CNF clauses by equisatisfiable triples using fresh variables, without exponential distributivity.
Related exam and assignment appearances
These links mark a related idea or close version; only groups explicitly marked as exact repeats in the question map count as duplicates.
Problem
Describe a polynomial-time many-one reduction from CNF-SAT to 3SAT. Given a CNF formula that may contain clauses of arbitrary length, produce an equisatisfiable 3CNF formula. Handle clauses of length and as well as length at least . Prove both directions and bound the output size.
Hint 1
Do not distribute an arbitrary Boolean formula into CNF; start from CNF and only split long clauses.
Hint 2
For a clause with , introduce fresh variables that chain overlapping triples.
SAT → 3SAT
Full solution
Assume the input is already in CNF (the Cook–Levin output, or a prior Tseitin conversion). Process each clause independently.
- Length : keep the clause.
- Length : replace by for fresh , or any fixed equisatisfiable padding that forces true. A shorter common padding uses two fresh variables and four triples as above.
- Length : similarly pad with one fresh variable to four triples, or use a fixed library of constant-size gadgets.
- Length : replace [ (\ell_1\lor\cdots\lor\ell_t) ] by [ (\ell_1\lor\ell_2\lor y_1)\land(\neg y_1\lor\ell_3\lor y_2)\land\cdots\land(\neg y_\lor\ell_\lor\ell_t) ] with fresh .
If the original clause is satisfied by some , set the chain variables so each triple containing a false prefix is completed by a true , and each remaining triple inherits a true literal. Conversely, if every triple is satisfied, some original must be true: otherwise the chain of -implications forces a contradiction at the final triple. Fresh variables do not appear elsewhere, so assignments extend independently per clause.
The number of triples per clause is , and is linear in the input length, so the output size and construction time are polynomial. The identity map on already-3CNF instances is a special case; claiming “return unchanged” for arbitrary SAT is incorrect because long clauses are not 3SAT instances.
Checkpoint
Equisatisfiability must be proved both ways for the splitting chain; padding short clauses must not introduce unintended satisfying assignments that leave false.
Common mistakes
- Using distributivity on a general formula, risking exponential blowup.
- Returning the input unchanged while claiming a reduction to 3SAT.
- Reusing the same fresh variable across unrelated clauses.
Provenance note
Original course-and-textbook-aligned synthesis of the standard SAT→3SAT normalization appearing in the reduction atlas. Assignment prompts that audit broken “identity” reductions (e.g. Semester A 2026 exercise 3) motivate the exercise but are not copied.
Sources and verification
- Sipser 3e, sec. 7.5
- Garey-Johnson LO-family formulations
- Catalog mapping:
data/exercises.json; statements and solutions are independently written.