Constraint-Based Verification