I heard that constraint satisfaction and constraint solving are 2 branches of constraint programming. What exactly are they?
Constraint satisfaction deals mainly with finite domains, whereas constraint solving deals with problems defined over infinite or more complex domains. Also, the solving techniques differ for both. Constraint satisfaction deals with more combinatorial methods, whereas Constraint Solving is based more on mathematical techniques (Example: Taylor series).