Constraint analysis