In this section we will see a new class of constraints called
reified constraints. Reified constraints make it possible to
express constraints involving logical connectives such as
disjunction, implication, and negation. Reified constraints
also make it possible to solve overconstrained problems,
for which only some of the stated constraints can be satisfied.