# Hidden transformation

The hidden transformation converts an arbitrary constraint satisfaction problem into a binary one. The transformation is similar to that generating the dual problem. The problem is added new variables, one for each constraint of the original problem. The domain of each such variable is the set of satisfying tuples of the corresponding constraint. The constraints of the new problem enforce the value of the original variables to be consistent with the values of the new variables. For example, if the new variables ${\displaystyle c}$, corresponding to the old constraint ${\displaystyle C(x,y)}$ can assume values ${\displaystyle (1,2)}$ and ${\displaystyle (2,0)}$, two new constraints are added: the first one enforces ${\displaystyle x}$ to take value ${\displaystyle 1}$ if ${\displaystyle c=(1,2)}$ value ${\displaystyle 2}$ if ${\displaystyle c=(2,0)}$, and vice versa. The second condition enforces a similar condition for variable ${\displaystyle y}$.