Constraint Logic Programming Applied to Hypothetical Reasoning in Chemistry