set(arithmetic).
assign(domain_size,4).
assign(max_models,-1).

formulas(assumptions).
  all x (evenCol(x) <-> (f(0,x) + f(1,x) + f(2,x) + f(3,x)) mod 2 = 0).
  all x (evenRow(x) <-> (f(x,0) + f(x,1) + f(x,2) + f(x,3)) mod 2 = 0).

  evenCol(0) & evenCol(1) & evenCol(2) & evenCol(3).
  evenRow(0) & evenRow(1) & evenRow(2) & evenRow(3).

  all x all y (f(x,y) = 0 | f(x,y) = 1).

  f(0,0) + f(1,0) + f(2,0) + f(3,0) + 
  f(0,1) + f(1,1) + f(2,1) + f(3,1) + 
  f(0,2) + f(1,2) + f(2,2) + f(3,2) + 
  f(0,3) + f(1,3) + f(2,3) + f(3,3) = 10.
end_of_list.
