Constraint satisfaction problems occur in many areas of computer science, most prominently in artificial intelligence including temporal or spacial reasoning, belief maintenance, machine vision, and scheduling (for an overview see [Kumar, 1992,Dechter, 2003]). Other areas are graph theory, boolean satisfiability, type systems for programming languages, database theory, automatic theorem proving...