Stratified Constructive Disjunction and Negation in Constraint Programming