Exercise

Reduce SAT to 3SAT by clause splitting

Replace long CNF clauses by equisatisfiable triples using fresh variables, without exponential distributivity.

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 11 and 22 as well as length at least 44. 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 (ℓ1∨ℓ2∨⋯∨ℓt)(\ell_1\lor\ell_2\lor\cdots\lor\ell_t) with t≥4t\ge4, introduce fresh variables that chain overlapping triples.

Guided construction

SAT → 3SAT

Step 1 of 6
Source clause(a ∨ b ∨ c ∨ d ∨ e)
SAT to 3SAT by clause splittingA five-literal clause is replaced by three overlapping triples linked by two fresh variables.Source clause
Fresh variableOutput triple

Full solution

Assume the input is already in CNF (the Cook–Levin output, or a prior Tseitin conversion). Process each clause independently.

  • Length 33: keep the clause.
  • Length 11: replace (ℓ)(\ell) by (ℓ∨y∨z)∧(ℓ∨y∨¬z)∧(ℓ∨¬y∨z)∧(ℓ∨¬y∨¬z)(\ell\lor y\lor z)\land(\ell\lor y\lor\neg z)\land(\ell\lor\neg y\lor z)\land(\ell\lor\neg y\lor\neg z) for fresh y,zy,z, or any fixed equisatisfiable padding that forces ℓ\ell true. A shorter common padding uses two fresh variables and four triples as above.
  • Length 22: similarly pad with one fresh variable to four triples, or use a fixed library of constant-size gadgets.
  • Length t≥4t\ge4: 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 y1,…,yt−3y_1,\ldots,y_{t-3}.

If the original clause is satisfied by some ℓi\ell_i, set the chain variables so each triple containing a false prefix is completed by a true yjy_j, and each remaining triple inherits a true literal. Conversely, if every triple is satisfied, some original ℓi\ell_i must be true: otherwise the chain of yy-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 O(t)O(t), and ∑t\sum t 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 xx 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 ℓ\ell 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.