← Student tools · Problem 32 · Lecture 12 · Round 2 (30 pts)

SAT search ≤p SAT decision · self-reducibility

A SAT decider lets you actually find a satisfying assignment in poly time.

CLO-3CLO-4R2·30 ptsL12
🔊 Listen

Suppose someone gave you a SAT decider — a procedure that on input φ returns yes/no without telling you the satisfying assignment. Can you use it to find a satisfying assignment? Surprisingly, yes — in only n + 1 calls to D.

Self-reducibility algorithm
on input φ with variables x₁, ..., xₙ:
  if not D(φ): output "UNSAT" and halt
  for i = 1 to n:
    let φ' = φ with xᵢ = TRUE substituted
    if D(φ'):  set xᵢ = TRUE,  φ := φ'
    else:      set xᵢ = FALSE, φ := φ|{xᵢ = FALSE}
  output (x₁, ..., xₙ)

Key insight: substituting xi = TRUE shrinks the formula by one variable. If the result is still satisfiable, we've found a witness with xi = TRUE somewhere; if not, xi = FALSE must work. Either way, the residual formula has one fewer variable. After n iterations all variables are fixed, and the output is a satisfying assignment.

Why it matters

If P = NP, then SAT decision is in P. By self-reducibility, SAT search is also in P — we can actually find satisfying assignments fast, not just say whether they exist. This argument collapses search-to-decision for SAT (and more generally for all NP-complete problems with self-reduction structure).

🔊 Listen
Decide each variable in turn Auto-plays
🔊 Listen
🔊 Listen
🔊 Listen

Sipser: §7.4 (NP, discussion of search vs decision). Lecture notes: Module 5 slide 6. Companion problems: P22 (SAT interactive), P14 (Rice — for the contrast).