High Quality Content by WIKIPEDIA articles! In computational complexity theory, a branch of computer science, Schaefer's theorem states necessary and sufficient conditions under which a finite set S of Boolean relations yields polynomial-time or NP-complete problems when the relations of S are used to constrain some of the propositional variables. More precisely, Schaefer defines a decision problem which he calls the Generalized Satisfiability problem for S (denoted SAT(S)). The problem is to determine whether the given formula is satisfiable, in other words if the variables can be assigned values such that they satisfy all the constraints. Special cases of SAT(S) include the variants of Boolean satisfiability problem and the problem can also be viewed as a constraint satisfaction problem over the Boolean domain.