Properties of Solvers
We desire solvers to have certain properties
well-behaved:
- set based: answer depends only on set of primitive constraints
- monotonic: is solver fails for C1 it also fails for C1 /\ C2
- variable name independent: the solver gives the same answer regardless of names of vars