import choco.Problem;
import choco.ContradictionException;
import choco.integer.*;
import choco.Constraint;

public class Test {

  
  public static void main(String[] args) throws ContradictionException {
     Problem pb = new Problem();
     IntDomainVar x = pb.makeEnumIntVar("x",0,2);
     IntDomainVar y = pb.makeEnumIntVar("y",0,2);
     IntDomainVar z = pb.makeEnumIntVar("z",0,2);
     IntDomainVar d = pb.makeEnumIntVar("d",0,1);     
     Constraint Cxy = pb.eq(x,y);
     Constraint Cxz = pb.eq(x,z);
     Constraint Cyz = pb.lt(y,z);
     Constraint C1  = pb.and(Cxy,pb.and(Cxz,Cyz));
     Constraint C2  = pb.eq(d,0);
     Constraint C3  = pb.ifOnlyIf(C1,C2);
     pb.post(C3);
     pb.solve(false);
     System.out.println(pb.pretty());

  }
}
