array [1..3] of var 0..3: d :: output_array([1..3]); array [1..9] of var 0..1: x :: output_array([1..3, 1..3]); array [1..9] of var 0..1: y :: output_array([1..3, 1..3]); constraint int_eq(x[1], x[6]); constraint int_eq(x[1], x[9]); constraint int_eq(x[4], x[3]); constraint int_lin_eq([1, 1, 1], [x[1], x[2], x[3]], 1); constraint int_lin_eq([1, 1, 1], [x[1], x[4], x[7]], 1); constraint int_lin_eq([1, 1, 1], [x[2], x[5], x[8]], 1); constraint int_lin_eq([1, 1, 1], [x[3], x[6], x[9]], 1); constraint int_lin_eq([1, 1, 1], [x[4], x[5], x[6]], 1); constraint int_lin_eq([1, 1, 1], [x[7], x[8], x[9]], 1); constraint int_lin_eq([1, 1, 1], [y[1], y[2], y[3]], 1); constraint int_lin_eq([1, 1, 1], [y[1], y[4], y[7]], 1); constraint int_lin_eq([1, 1, 1], [y[2], y[5], y[8]], 1); constraint int_lin_eq([1, 1, 1], [y[3], y[6], y[9]], 1); constraint int_lin_eq([1, 1, 1], [y[4], y[5], y[6]], 1); constraint int_lin_eq([1, 1, 1], [y[7], y[8], y[9]], 1); constraint int_lin_eq([-1, 1, 1, 1], [d[1], x[1], x[5], x[9]], 0); constraint int_lin_eq([-1, 1, 1, 1], [d[2], x[1], x[6], x[8]], 0); constraint int_lin_eq([-1, 1, 1, 1], [d[3], x[3], x[4], x[8]], 0); constraint int_lin_le([-1, -1], [d[1], y[3]], -1); constraint int_lin_le([-1, -1], [d[2], y[6]], -1); constraint int_lin_le([-1, -1], [d[3], y[9]], -1); constraint int_lin_le([-1, 3], [d[1], y[1]], 0); constraint int_lin_le([-1, 3], [d[2], y[4]], 0); constraint int_lin_le([-1, 3], [d[3], y[7]], 0); constraint int_lin_le([1, -3], [d[1], y[1]], 2); constraint int_lin_le([1, -3], [d[2], y[4]], 2); constraint int_lin_le([1, -3], [d[3], y[7]], 2); constraint int_lin_le([1, 3], [d[1], y[3]], 3); constraint int_lin_le([1, 3], [d[2], y[6]], 3); constraint int_lin_le([1, 3], [d[3], y[9]], 3); solve satisfy;