In this section we give some necessary definitions on CSPs, and describe the hidden variable, dual, and double encodings of non-binary CSPs.