We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
3SAT
Summary
We show that we can break up larger clauses into clauses of size 3 to reduce SAT problems to 3SAT problems. This lets us prove that 3SAT is at least as hard as SAT, which is known to be NP-Complete.
Contents
3SAT Problem Definition
Input: Boolean formula f in CNF with n variables and m clauses where each clause has at most 3 literals
Output: Satisyfing assignment if one exists, otherwise, NO
Proof Outline
Show that 3SAT is NP-Complete
Need to show:
- 3SAT NP
- SAT 3SAT
- thus,
3SAT in NP
Given a 3SAT input f, and T/F assignment for , for each clause :
- in O(1) time check that at least one literal in c is satisfied
O(m) total time
Reduce SAT to 3SAT
Take input f for SAT, and transform it into f’ for 3SAT problem.
Take output o’ for 3SAT, and transform it into o for SAT problem.
Need o’ satisfies f’ o satisfies f
Example
Becomes
Proof
We need to prove that c is satisfiable if and only if c’ is satisfiable
Forward claim
Take a satisfying assignment for c
if : then set to satisfy the second clause
if : then set to satisfy the first clause
Reverse claim
Take satisfying assignment for c’
if : then
if : then
Correctness
Since we create a chain of introducing an auxilliary variable (y) at the tail of all but the last clause, and negate that variable in the head of the next clause, it’s impossible to create a satisfying assignment SOLELY on these new variables, since setting one to true will satisfy one clause and not the next. If we set them all to true, that will set the last clause to false, so we still need at least one of the original variables to be true in the last clause.