Definition
Satisfiability Problem
The SAT problem is a decision problem that, for a given Boolean function , checks whether there exists a variable assignment of true and false values such that .
Tractable Classes
Horn Formulas
Solving Horn formulas is a tractable problem.
Krom Formula
Solving Krom formulas is a tractable problem.
Reductions
Reduction to CSP
The SAT problem can be reduced to a constraint satisfaction problem by translating Boolean variables into CSP variables and clauses into constraints.
Variables: Let be a Boolean formula with variables . The CSP instance uses exactly these variables as its variable set .
Domain: Each variable ranges over the domain , where represents and represents .
Constraints: For every clause of , add one constraint whose scope consists of the variables occurring in . Its relation contains exactly those tuples in that satisfy the clause. Hence the only excluded tuples are those that make all literals in the clause false.
Encoding a Clause as a Constraint
The clause
is encoded by a ternary constraint on whose relation is
The only forbidden tuple is , since it is the unique assignment for which , , and , making as well.
Correctness: A Boolean assignment satisfies if and only if the corresponding CSP assignment satisfies every constraint. Therefore the constructed CSP instance is satisfiable exactly when the original SAT instance is satisfiable.