import choco.Problem; import choco.ContradictionException; import choco.integer.*; import choco.Constraint; import choco.Solver; import choco.Solution; public class Or { public static void main(String[] args) throws ContradictionException { Problem pb = new Problem(); /* IntDomainVar v = pb.makeEnumIntVar("v1",1,10); pb.post(pb.or(pb.eq(v,2),pb.eq(v,2))); */ IntDomainVar x = pb.makeBoundIntVar("x",1,3); IntDomainVar y = pb.makeBoundIntVar("y",1,2); IntDomainVar z = pb.makeBoundIntVar("z",1,1); Constraint U1 = pb.and(pb.eq(x,y),pb.and(pb.lt(z,y),pb.lt(z,x))); Constraint U2 = pb.and(pb.eq(x,z),pb.and(pb.lt(y,z),pb.lt(y,x))); Constraint U3 = pb.and(pb.eq(y,z),pb.and(pb.lt(x,z),pb.lt(x,y))); Constraint U4 = pb.and(pb.eq(x,y),pb.and(pb.eq(y,z),pb.eq(x,z))); Constraint U5 = pb.or(U1,pb.or(U2,pb.or(U3,U4))); pb.post(U5); System.out.println(pb.pretty()); pb.propagate(); System.out.println(pb.pretty()); } }