Problem: SchursLemma_10_3 // n_balls = number of balls // n_boxes = number of boxes Data n_balls := 10; n_boxes := 3; // d_boxes = number of box where can be a ball Domains Dom d_boxes = [1..n_boxes]; // putIn = array wich contains the box where a ball is put in Variables IntVar putIn[n_balls] :: d_boxes; Constraints // For any triplet of balls: i, j and k Forall(i in [1..n_balls]) { Forall(j in [1..n_balls]) { Forall(k in [1..n_balls]) { // If the sum of i+j = k, then k can't be in the same box as i or j If (i+j=k) Then { (putIn[i] <> putIn[j]) Or (putIn[i] <> putIn[k]); } } } }