ABSTRACT: Constraint Satisfaction Problems (CSPs) are among the most well-studied problems in Computer Science, 3SAT being a prominent example.
Let $\Sigma$ be an alphabet and $P:\Sigma^k \rightarrow \{0,1\}$ be a fixed predicate. The assignments in $P^{-1}(1)$ are deemed as satisfying assignments to the predicate. The $k$-ary CSP corresponding to the predicate, denoted $CSP(P)$, consists of $n$ variables $x_1,...,x_n$ taking values over $\Sigma$ and $m$ constraints $C_1,...,C_m$ where eachconstraint $C_j$ is the predicate $P$ applied to an ordered subset of $k$ variables.
Sometimes variablesare allowed to be in negated form (in case of Boolean alphabet) or a mixof predicatesderived from the same template predicate $P$ is allowed. The satisfiability problem for $CSP(P)$ asks whether an instance of $CSP(P)$ has a (fully) satisfying assignment, i.e. an assignment that satisfies all constraints. This problem is known to be in class P or is NP-complete by the recently proved Dichotomy Theorem of Bulatov and Zhuk. An example of a CSP that is in class P is 3LIN, where constraints are linear equations over an Abelian group, each equation having three variables.