structure. We say that peek arc consistency *solves* ${{\mathsf{CSP}}}({\mathbf{B}})$ if for all structures ${\mathbf{A}}$, the following holds: $({\mathbf{A}}, {\mathbf{B}})$ has the PACC implies that there is a homomorphism ${\mathbf{A}}\rightarrow {\mathbf{B}}$.

The converse of the condition given in this definition always holds. Suppose that $h$ is a homomorphism from ${\mathbf{A}}$ to ${\mathbf{B}}$; then, the mapping taking each $a \in A$ to the singleton $\{ h(a) \}$ is a homomorphism from ${\mathbf{A}}$ to ${\wp}({\mathbf{B}})$ and hence $({\mathbf{A}}, {\mathbf{B}})$ has the PACC.

We use the notation ${\mathsf{Sing}}({\wp}({\mathbf{B}})^n)$ to denote the induced substructure of ${\wp}({\mathbf{B}})^n$ whose universe contains an $n$-tuple of ${\wp}({\mathbf{B}})^n$ if and only if at least one coordinate of the tuple is a singleton.

\[thm:pac-solves\] Let ${\mathbf{B}}$ be a structure. Peek arc consistency solves ${{\mathsf{CSP}}}({\mathbf{B}})$ if and only if for all $n \geq 1$ there is a homomorphism ${\mathsf{Sing}}({\wp}({\mathbf{B}})^n) \rightarrow {\mathbf{B}}$.

Singleton Arc Consistency {#ss:sac}
-------------------------

We now present the singleton arc consistency algorithm. As with arc consistency, this algorithm associates to each element $a \in A$ a set $S_a$ of feasible values. It then continually checks, for pairs $(a, b)$ with $a \in A$ and $b \in S_a$, whether or not arc consistency can be established with respect to the sets 