constraint solving now better uses predicate informations