computation

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.