langford_4.fzn 4.05 KB
array [1..2] of int: X_INTRODUCED_18_ = [1,-1];
var 1..8: X_INTRODUCED_0_;
var 1..8: X_INTRODUCED_1_;
var 1..8: X_INTRODUCED_2_;
var 1..8: X_INTRODUCED_3_;
var 3..8: X_INTRODUCED_4_:: is_defined_var;
var 4..8: X_INTRODUCED_5_:: is_defined_var;
var 5..8: X_INTRODUCED_6_:: is_defined_var;
var 6..8: X_INTRODUCED_7_:: is_defined_var;
var 1..4: X_INTRODUCED_8_;
var 1..4: X_INTRODUCED_9_;
var 1..4: X_INTRODUCED_10_;
var 1..4: X_INTRODUCED_11_;
var 1..4: X_INTRODUCED_12_;
var 1..4: X_INTRODUCED_13_;
var 1..4: X_INTRODUCED_14_;
var 1..4: X_INTRODUCED_15_;
array [1..8] of var int: position = [X_INTRODUCED_0_,X_INTRODUCED_1_,X_INTRODUCED_2_,X_INTRODUCED_3_,X_INTRODUCED_4_,X_INTRODUCED_5_,X_INTRODUCED_6_,X_INTRODUCED_7_];
array [1..8] of var int: solution:: output_array([1..8]) = [X_INTRODUCED_8_,X_INTRODUCED_9_,X_INTRODUCED_10_,X_INTRODUCED_11_,X_INTRODUCED_12_,X_INTRODUCED_13_,X_INTRODUCED_14_,X_INTRODUCED_15_];
constraint int_lin_eq(X_INTRODUCED_18_,[X_INTRODUCED_4_,X_INTRODUCED_0_],2):: defines_var(X_INTRODUCED_4_);
constraint array_var_int_element(X_INTRODUCED_0_,solution,1);
constraint array_var_int_element(X_INTRODUCED_4_,solution,1);
constraint int_lin_eq(X_INTRODUCED_18_,[X_INTRODUCED_5_,X_INTRODUCED_1_],3):: defines_var(X_INTRODUCED_5_);
constraint array_var_int_element(X_INTRODUCED_1_,solution,2);
constraint array_var_int_element(X_INTRODUCED_5_,solution,2);
constraint int_lin_eq(X_INTRODUCED_18_,[X_INTRODUCED_6_,X_INTRODUCED_2_],4):: defines_var(X_INTRODUCED_6_);
constraint array_var_int_element(X_INTRODUCED_2_,solution,3);
constraint array_var_int_element(X_INTRODUCED_6_,solution,3);
constraint int_lin_eq(X_INTRODUCED_18_,[X_INTRODUCED_7_,X_INTRODUCED_3_],5):: defines_var(X_INTRODUCED_7_);
constraint array_var_int_element(X_INTRODUCED_3_,solution,4);
constraint array_var_int_element(X_INTRODUCED_7_,solution,4);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_0_,X_INTRODUCED_1_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_0_,X_INTRODUCED_2_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_0_,X_INTRODUCED_3_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_0_,X_INTRODUCED_4_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_0_,X_INTRODUCED_5_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_0_,X_INTRODUCED_6_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_0_,X_INTRODUCED_7_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_1_,X_INTRODUCED_2_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_1_,X_INTRODUCED_3_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_1_,X_INTRODUCED_4_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_1_,X_INTRODUCED_5_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_1_,X_INTRODUCED_6_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_1_,X_INTRODUCED_7_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_2_,X_INTRODUCED_3_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_2_,X_INTRODUCED_4_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_2_,X_INTRODUCED_5_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_2_,X_INTRODUCED_6_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_2_,X_INTRODUCED_7_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_3_,X_INTRODUCED_4_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_3_,X_INTRODUCED_5_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_3_,X_INTRODUCED_6_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_3_,X_INTRODUCED_7_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_4_,X_INTRODUCED_5_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_4_,X_INTRODUCED_6_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_4_,X_INTRODUCED_7_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_5_,X_INTRODUCED_6_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_5_,X_INTRODUCED_7_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_6_,X_INTRODUCED_7_],0);
constraint int_lin_le(X_INTRODUCED_18_,[X_INTRODUCED_8_,X_INTRODUCED_15_],-1);
solve :: int_search(position,first_fail,indomain_min,complete) satisfy;