Files
ortools-clone/examples/flatzinc/word_golf.fzn

640 lines
45 KiB
MiniZinc

predicate fzn_all_different_int(array [int] of var int: x);
predicate count(array [int] of var int: x, var int: y, var int: c);
predicate fixed_fzn_cumulative(array [int] of var int: s, array [int] of int: d, array [int] of int: r, int: b);
predicate global_cardinality(array [int] of var int: x, array [int] of int: cover, array [int] of var int: counts);
predicate maximum_int(var int: m, array [int] of var int: x);
predicate minimum_int(var int: m, array [int] of var int: x);
predicate sliding_sum(int: low, int: up, int: seq, array [int] of var int: vs);
predicate sort(array [int] of var int: x, array [int] of var int: y);
predicate table_bool(array [int] of var bool: x, array [int, int] of bool: t);
predicate table_int(array [int] of var int: x, array [int, int] of int: t);
predicate var_fzn_cumulative(array [int] of var int: s, array [int] of int: d, array [int] of int: r, var int: b);
array [1..4] of int: end = [16, 12, 1, 25];
array [1..4] of int: start = [23, 15, 18, 11];
var bool: BOOL____00011 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00012 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00013 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00014 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00015 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00026 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00027 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00028 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00029 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00030 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00041 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00042 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00043 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00044 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00045 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00056 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00057 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00058 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00059 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00060 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00071 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00072 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00073 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00074 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00075 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00086 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00087 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00088 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00089 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00090 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00101 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00102 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00103 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00104 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00105 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00116 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00117 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00118 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00119 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00120 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00131 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00132 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00133 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00134 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00135 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00146 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00147 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00148 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00149 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00150 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00161 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00162 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00163 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00164 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00165 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00176 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00177 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00178 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00179 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00180 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00191 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00192 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00193 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00194 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00195 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00206 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00207 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00208 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00209 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00210 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00211 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00213 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00215 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00217 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00219 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00221 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00223 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00225 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00227 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00229 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00231 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00233 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00235 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00237 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00239 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00241 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00243 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00245 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00247 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00249 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00251 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00253 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00255 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00257 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00259 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00261 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00263 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00265 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00267 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00269 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00271 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00273 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00275 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00277 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00279 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00281 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00283 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00285 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00287 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00289 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00291 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00293 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00295 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00297 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00299 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00301 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00303 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00305 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00307 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00309 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00311 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00313 :: is_defined_var :: var_is_introduced;
var 1..73: INT____00002 :: is_defined_var :: var_is_introduced;
var 2..74: INT____00004 :: is_defined_var :: var_is_introduced;
var 3..75: INT____00006 :: is_defined_var :: var_is_introduced;
var 4..76: INT____00008 :: is_defined_var :: var_is_introduced;
var 1..73: INT____00017 :: is_defined_var :: var_is_introduced;
var 2..74: INT____00019 :: is_defined_var :: var_is_introduced;
var 3..75: INT____00021 :: is_defined_var :: var_is_introduced;
var 4..76: INT____00023 :: is_defined_var :: var_is_introduced;
var 1..73: INT____00032 :: is_defined_var :: var_is_introduced;
var 2..74: INT____00034 :: is_defined_var :: var_is_introduced;
var 3..75: INT____00036 :: is_defined_var :: var_is_introduced;
var 4..76: INT____00038 :: is_defined_var :: var_is_introduced;
var 1..73: INT____00047 :: is_defined_var :: var_is_introduced;
var 2..74: INT____00049 :: is_defined_var :: var_is_introduced;
var 3..75: INT____00051 :: is_defined_var :: var_is_introduced;
var 4..76: INT____00053 :: is_defined_var :: var_is_introduced;
var 1..73: INT____00062 :: is_defined_var :: var_is_introduced;
var 2..74: INT____00064 :: is_defined_var :: var_is_introduced;
var 3..75: INT____00066 :: is_defined_var :: var_is_introduced;
var 4..76: INT____00068 :: is_defined_var :: var_is_introduced;
var 1..73: INT____00077 :: is_defined_var :: var_is_introduced;
var 2..74: INT____00079 :: is_defined_var :: var_is_introduced;
var 3..75: INT____00081 :: is_defined_var :: var_is_introduced;
var 4..76: INT____00083 :: is_defined_var :: var_is_introduced;
var 1..73: INT____00092 :: is_defined_var :: var_is_introduced;
var 2..74: INT____00094 :: is_defined_var :: var_is_introduced;
var 3..75: INT____00096 :: is_defined_var :: var_is_introduced;
var 4..76: INT____00098 :: is_defined_var :: var_is_introduced;
var 1..73: INT____00107 :: is_defined_var :: var_is_introduced;
var 2..74: INT____00109 :: is_defined_var :: var_is_introduced;
var 3..75: INT____00111 :: is_defined_var :: var_is_introduced;
var 4..76: INT____00113 :: is_defined_var :: var_is_introduced;
var 1..73: INT____00122 :: is_defined_var :: var_is_introduced;
var 2..74: INT____00124 :: is_defined_var :: var_is_introduced;
var 3..75: INT____00126 :: is_defined_var :: var_is_introduced;
var 4..76: INT____00128 :: is_defined_var :: var_is_introduced;
var 1..73: INT____00137 :: is_defined_var :: var_is_introduced;
var 2..74: INT____00139 :: is_defined_var :: var_is_introduced;
var 3..75: INT____00141 :: is_defined_var :: var_is_introduced;
var 4..76: INT____00143 :: is_defined_var :: var_is_introduced;
var 1..73: INT____00152 :: is_defined_var :: var_is_introduced;
var 2..74: INT____00154 :: is_defined_var :: var_is_introduced;
var 3..75: INT____00156 :: is_defined_var :: var_is_introduced;
var 4..76: INT____00158 :: is_defined_var :: var_is_introduced;
var 1..73: INT____00167 :: is_defined_var :: var_is_introduced;
var 2..74: INT____00169 :: is_defined_var :: var_is_introduced;
var 3..75: INT____00171 :: is_defined_var :: var_is_introduced;
var 4..76: INT____00173 :: is_defined_var :: var_is_introduced;
var 1..73: INT____00182 :: is_defined_var :: var_is_introduced;
var 2..74: INT____00184 :: is_defined_var :: var_is_introduced;
var 3..75: INT____00186 :: is_defined_var :: var_is_introduced;
var 4..76: INT____00188 :: is_defined_var :: var_is_introduced;
var 1..73: INT____00197 :: is_defined_var :: var_is_introduced;
var 2..74: INT____00199 :: is_defined_var :: var_is_introduced;
var 3..75: INT____00201 :: is_defined_var :: var_is_introduced;
var 4..76: INT____00203 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00212 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00214 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00216 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00218 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00220 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00222 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00224 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00226 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00228 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00230 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00232 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00234 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00236 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00238 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00240 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00242 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00244 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00246 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00248 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00250 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00252 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00254 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00256 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00258 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00260 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00262 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00264 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00266 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00268 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00270 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00272 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00274 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00276 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00278 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00280 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00282 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00284 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00286 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00288 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00290 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00292 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00294 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00296 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00298 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00300 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00302 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00304 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00306 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00308 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00310 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00312 :: is_defined_var :: var_is_introduced;
var 0..1: INT____00314 :: is_defined_var :: var_is_introduced;
var 1..19: j____00001;
var 1..19: j____00016;
var 1..19: j____00031;
var 1..19: j____00046;
var 1..19: j____00061;
var 1..19: j____00076;
var 1..19: j____00091;
var 1..19: j____00106;
var 1..19: j____00121;
var 1..19: j____00136;
var 1..19: j____00151;
var 1..19: j____00166;
var 1..19: j____00181;
var 1..19: j____00196;
array [1..14] of var 1..19: ladder_num :: output_array([1..14]);
array [1..76] of var 1..25: words = [6, 5, 1, 18, 6, 5, 1, 20, 6, 12, 1, 20, 6, 12, 1, 25, 6, 15, 18, 5, 6, 15, 18, 11, 16, 1, 18, 5, 16, 1, 18, 11, 16, 5, 1, 11, 16, 5, 1, 18, 16, 5, 18, 11, 16, 12, 1, 25, 16, 15, 18, 5, 23, 15, 18, 11, 12, 1, 19, 19, 13, 1, 12, 5, 13, 1, 18, 5, 13, 1, 18, 19, 13, 1, 19, 19];
array [1..56] of var 1..26: x :: output_array([1..14, 1..4]);
var 1..25: INT____00204 :: var_is_introduced = x[56];
var 1..25: INT____00202 :: var_is_introduced = x[55];
var 1..25: INT____00200 :: var_is_introduced = x[54];
var 1..25: INT____00198 :: var_is_introduced = x[53];
var 1..25: INT____00189 :: var_is_introduced = x[52];
var 1..25: INT____00187 :: var_is_introduced = x[51];
var 1..25: INT____00185 :: var_is_introduced = x[50];
var 1..25: INT____00183 :: var_is_introduced = x[49];
var 1..25: INT____00174 :: var_is_introduced = x[48];
var 1..25: INT____00172 :: var_is_introduced = x[47];
var 1..25: INT____00170 :: var_is_introduced = x[46];
var 1..25: INT____00168 :: var_is_introduced = x[45];
var 1..25: INT____00159 :: var_is_introduced = x[44];
var 1..25: INT____00157 :: var_is_introduced = x[43];
var 1..25: INT____00155 :: var_is_introduced = x[42];
var 1..25: INT____00153 :: var_is_introduced = x[41];
var 1..25: INT____00144 :: var_is_introduced = x[40];
var 1..25: INT____00142 :: var_is_introduced = x[39];
var 1..25: INT____00140 :: var_is_introduced = x[38];
var 1..25: INT____00138 :: var_is_introduced = x[37];
var 1..25: INT____00129 :: var_is_introduced = x[36];
var 1..25: INT____00127 :: var_is_introduced = x[35];
var 1..25: INT____00125 :: var_is_introduced = x[34];
var 1..25: INT____00123 :: var_is_introduced = x[33];
var 1..25: INT____00114 :: var_is_introduced = x[32];
var 1..25: INT____00112 :: var_is_introduced = x[31];
var 1..25: INT____00110 :: var_is_introduced = x[30];
var 1..25: INT____00108 :: var_is_introduced = x[29];
var 1..25: INT____00099 :: var_is_introduced = x[28];
var 1..25: INT____00097 :: var_is_introduced = x[27];
var 1..25: INT____00095 :: var_is_introduced = x[26];
var 1..25: INT____00093 :: var_is_introduced = x[25];
var 1..25: INT____00084 :: var_is_introduced = x[24];
var 1..25: INT____00082 :: var_is_introduced = x[23];
var 1..25: INT____00080 :: var_is_introduced = x[22];
var 1..25: INT____00078 :: var_is_introduced = x[21];
var 1..25: INT____00069 :: var_is_introduced = x[20];
var 1..25: INT____00067 :: var_is_introduced = x[19];
var 1..25: INT____00065 :: var_is_introduced = x[18];
var 1..25: INT____00063 :: var_is_introduced = x[17];
var 1..25: INT____00054 :: var_is_introduced = x[16];
var 1..25: INT____00052 :: var_is_introduced = x[15];
var 1..25: INT____00050 :: var_is_introduced = x[14];
var 1..25: INT____00048 :: var_is_introduced = x[13];
var 1..25: INT____00039 :: var_is_introduced = x[12];
var 1..25: INT____00037 :: var_is_introduced = x[11];
var 1..25: INT____00035 :: var_is_introduced = x[10];
var 1..25: INT____00033 :: var_is_introduced = x[9];
var 1..25: INT____00024 :: var_is_introduced = x[8];
var 1..25: INT____00022 :: var_is_introduced = x[7];
var 1..25: INT____00020 :: var_is_introduced = x[6];
var 1..25: INT____00018 :: var_is_introduced = x[5];
var 1..25: INT____00009 :: var_is_introduced = x[4];
var 1..25: INT____00007 :: var_is_introduced = x[3];
var 1..25: INT____00005 :: var_is_introduced = x[2];
var 1..25: INT____00003 :: var_is_introduced = x[1];
constraint fzn_all_different_int(ladder_num);
constraint array_bool_and([BOOL____00014, BOOL____00013, BOOL____00012, BOOL____00011], BOOL____00015) :: defines_var(BOOL____00015);
constraint array_bool_and([BOOL____00029, BOOL____00028, BOOL____00027, BOOL____00026], BOOL____00030) :: defines_var(BOOL____00030);
constraint array_bool_and([BOOL____00044, BOOL____00043, BOOL____00042, BOOL____00041], BOOL____00045) :: defines_var(BOOL____00045);
constraint array_bool_and([BOOL____00059, BOOL____00058, BOOL____00057, BOOL____00056], BOOL____00060) :: defines_var(BOOL____00060);
constraint array_bool_and([BOOL____00074, BOOL____00073, BOOL____00072, BOOL____00071], BOOL____00075) :: defines_var(BOOL____00075);
constraint array_bool_and([BOOL____00089, BOOL____00088, BOOL____00087, BOOL____00086], BOOL____00090) :: defines_var(BOOL____00090);
constraint array_bool_and([BOOL____00104, BOOL____00103, BOOL____00102, BOOL____00101], BOOL____00105) :: defines_var(BOOL____00105);
constraint array_bool_and([BOOL____00119, BOOL____00118, BOOL____00117, BOOL____00116], BOOL____00120) :: defines_var(BOOL____00120);
constraint array_bool_and([BOOL____00134, BOOL____00133, BOOL____00132, BOOL____00131], BOOL____00135) :: defines_var(BOOL____00135);
constraint array_bool_and([BOOL____00149, BOOL____00148, BOOL____00147, BOOL____00146], BOOL____00150) :: defines_var(BOOL____00150);
constraint array_bool_and([BOOL____00164, BOOL____00163, BOOL____00162, BOOL____00161], BOOL____00165) :: defines_var(BOOL____00165);
constraint array_bool_and([BOOL____00179, BOOL____00178, BOOL____00177, BOOL____00176], BOOL____00180) :: defines_var(BOOL____00180);
constraint array_bool_and([BOOL____00194, BOOL____00193, BOOL____00192, BOOL____00191], BOOL____00195) :: defines_var(BOOL____00195);
constraint array_bool_and([BOOL____00209, BOOL____00208, BOOL____00207, BOOL____00206], BOOL____00210) :: defines_var(BOOL____00210);
constraint array_var_int_element(INT____00002, words, x[1]);
constraint array_var_int_element(INT____00004, words, x[2]);
constraint array_var_int_element(INT____00006, words, x[3]);
constraint array_var_int_element(INT____00008, words, x[4]);
constraint array_var_int_element(INT____00017, words, x[5]);
constraint array_var_int_element(INT____00019, words, x[6]);
constraint array_var_int_element(INT____00021, words, x[7]);
constraint array_var_int_element(INT____00023, words, x[8]);
constraint array_var_int_element(INT____00032, words, x[9]);
constraint array_var_int_element(INT____00034, words, x[10]);
constraint array_var_int_element(INT____00036, words, x[11]);
constraint array_var_int_element(INT____00038, words, x[12]);
constraint array_var_int_element(INT____00047, words, x[13]);
constraint array_var_int_element(INT____00049, words, x[14]);
constraint array_var_int_element(INT____00051, words, x[15]);
constraint array_var_int_element(INT____00053, words, x[16]);
constraint array_var_int_element(INT____00062, words, x[17]);
constraint array_var_int_element(INT____00064, words, x[18]);
constraint array_var_int_element(INT____00066, words, x[19]);
constraint array_var_int_element(INT____00068, words, x[20]);
constraint array_var_int_element(INT____00077, words, x[21]);
constraint array_var_int_element(INT____00079, words, x[22]);
constraint array_var_int_element(INT____00081, words, x[23]);
constraint array_var_int_element(INT____00083, words, x[24]);
constraint array_var_int_element(INT____00092, words, x[25]);
constraint array_var_int_element(INT____00094, words, x[26]);
constraint array_var_int_element(INT____00096, words, x[27]);
constraint array_var_int_element(INT____00098, words, x[28]);
constraint array_var_int_element(INT____00107, words, x[29]);
constraint array_var_int_element(INT____00109, words, x[30]);
constraint array_var_int_element(INT____00111, words, x[31]);
constraint array_var_int_element(INT____00113, words, x[32]);
constraint array_var_int_element(INT____00122, words, x[33]);
constraint array_var_int_element(INT____00124, words, x[34]);
constraint array_var_int_element(INT____00126, words, x[35]);
constraint array_var_int_element(INT____00128, words, x[36]);
constraint array_var_int_element(INT____00137, words, x[37]);
constraint array_var_int_element(INT____00139, words, x[38]);
constraint array_var_int_element(INT____00141, words, x[39]);
constraint array_var_int_element(INT____00143, words, x[40]);
constraint array_var_int_element(INT____00152, words, x[41]);
constraint array_var_int_element(INT____00154, words, x[42]);
constraint array_var_int_element(INT____00156, words, x[43]);
constraint array_var_int_element(INT____00158, words, x[44]);
constraint array_var_int_element(INT____00167, words, x[45]);
constraint array_var_int_element(INT____00169, words, x[46]);
constraint array_var_int_element(INT____00171, words, x[47]);
constraint array_var_int_element(INT____00173, words, x[48]);
constraint array_var_int_element(INT____00182, words, x[49]);
constraint array_var_int_element(INT____00184, words, x[50]);
constraint array_var_int_element(INT____00186, words, x[51]);
constraint array_var_int_element(INT____00188, words, x[52]);
constraint array_var_int_element(INT____00197, words, x[53]);
constraint array_var_int_element(INT____00199, words, x[54]);
constraint array_var_int_element(INT____00201, words, x[55]);
constraint array_var_int_element(INT____00203, words, x[56]);
constraint bool2int(BOOL____00211, INT____00212) :: defines_var(INT____00212);
constraint bool2int(BOOL____00213, INT____00214) :: defines_var(INT____00214);
constraint bool2int(BOOL____00215, INT____00216) :: defines_var(INT____00216);
constraint bool2int(BOOL____00217, INT____00218) :: defines_var(INT____00218);
constraint bool2int(BOOL____00219, INT____00220) :: defines_var(INT____00220);
constraint bool2int(BOOL____00221, INT____00222) :: defines_var(INT____00222);
constraint bool2int(BOOL____00223, INT____00224) :: defines_var(INT____00224);
constraint bool2int(BOOL____00225, INT____00226) :: defines_var(INT____00226);
constraint bool2int(BOOL____00227, INT____00228) :: defines_var(INT____00228);
constraint bool2int(BOOL____00229, INT____00230) :: defines_var(INT____00230);
constraint bool2int(BOOL____00231, INT____00232) :: defines_var(INT____00232);
constraint bool2int(BOOL____00233, INT____00234) :: defines_var(INT____00234);
constraint bool2int(BOOL____00235, INT____00236) :: defines_var(INT____00236);
constraint bool2int(BOOL____00237, INT____00238) :: defines_var(INT____00238);
constraint bool2int(BOOL____00239, INT____00240) :: defines_var(INT____00240);
constraint bool2int(BOOL____00241, INT____00242) :: defines_var(INT____00242);
constraint bool2int(BOOL____00243, INT____00244) :: defines_var(INT____00244);
constraint bool2int(BOOL____00245, INT____00246) :: defines_var(INT____00246);
constraint bool2int(BOOL____00247, INT____00248) :: defines_var(INT____00248);
constraint bool2int(BOOL____00249, INT____00250) :: defines_var(INT____00250);
constraint bool2int(BOOL____00251, INT____00252) :: defines_var(INT____00252);
constraint bool2int(BOOL____00253, INT____00254) :: defines_var(INT____00254);
constraint bool2int(BOOL____00255, INT____00256) :: defines_var(INT____00256);
constraint bool2int(BOOL____00257, INT____00258) :: defines_var(INT____00258);
constraint bool2int(BOOL____00259, INT____00260) :: defines_var(INT____00260);
constraint bool2int(BOOL____00261, INT____00262) :: defines_var(INT____00262);
constraint bool2int(BOOL____00263, INT____00264) :: defines_var(INT____00264);
constraint bool2int(BOOL____00265, INT____00266) :: defines_var(INT____00266);
constraint bool2int(BOOL____00267, INT____00268) :: defines_var(INT____00268);
constraint bool2int(BOOL____00269, INT____00270) :: defines_var(INT____00270);
constraint bool2int(BOOL____00271, INT____00272) :: defines_var(INT____00272);
constraint bool2int(BOOL____00273, INT____00274) :: defines_var(INT____00274);
constraint bool2int(BOOL____00275, INT____00276) :: defines_var(INT____00276);
constraint bool2int(BOOL____00277, INT____00278) :: defines_var(INT____00278);
constraint bool2int(BOOL____00279, INT____00280) :: defines_var(INT____00280);
constraint bool2int(BOOL____00281, INT____00282) :: defines_var(INT____00282);
constraint bool2int(BOOL____00283, INT____00284) :: defines_var(INT____00284);
constraint bool2int(BOOL____00285, INT____00286) :: defines_var(INT____00286);
constraint bool2int(BOOL____00287, INT____00288) :: defines_var(INT____00288);
constraint bool2int(BOOL____00289, INT____00290) :: defines_var(INT____00290);
constraint bool2int(BOOL____00291, INT____00292) :: defines_var(INT____00292);
constraint bool2int(BOOL____00293, INT____00294) :: defines_var(INT____00294);
constraint bool2int(BOOL____00295, INT____00296) :: defines_var(INT____00296);
constraint bool2int(BOOL____00297, INT____00298) :: defines_var(INT____00298);
constraint bool2int(BOOL____00299, INT____00300) :: defines_var(INT____00300);
constraint bool2int(BOOL____00301, INT____00302) :: defines_var(INT____00302);
constraint bool2int(BOOL____00303, INT____00304) :: defines_var(INT____00304);
constraint bool2int(BOOL____00305, INT____00306) :: defines_var(INT____00306);
constraint bool2int(BOOL____00307, INT____00308) :: defines_var(INT____00308);
constraint bool2int(BOOL____00309, INT____00310) :: defines_var(INT____00310);
constraint bool2int(BOOL____00311, INT____00312) :: defines_var(INT____00312);
constraint bool2int(BOOL____00313, INT____00314) :: defines_var(INT____00314);
constraint int_eq(x[1], 23);
constraint int_eq(x[2], 15);
constraint int_eq(x[3], 18);
constraint int_eq(x[4], 11);
constraint int_eq(x[53], 16);
constraint int_eq(x[54], 12);
constraint int_eq(x[55], 1);
constraint int_eq(x[56], 25);
constraint int_eq_reif(ladder_num[1], j____00001, BOOL____00015);
constraint int_eq_reif(ladder_num[2], j____00016, BOOL____00030);
constraint int_eq_reif(ladder_num[3], j____00031, BOOL____00045);
constraint int_eq_reif(ladder_num[4], j____00046, BOOL____00060);
constraint int_eq_reif(ladder_num[5], j____00061, BOOL____00075);
constraint int_eq_reif(ladder_num[6], j____00076, BOOL____00090);
constraint int_eq_reif(ladder_num[7], j____00091, BOOL____00105);
constraint int_eq_reif(ladder_num[8], j____00106, BOOL____00120);
constraint int_eq_reif(ladder_num[9], j____00121, BOOL____00135);
constraint int_eq_reif(ladder_num[10], j____00136, BOOL____00150);
constraint int_eq_reif(ladder_num[11], j____00151, BOOL____00165);
constraint int_eq_reif(ladder_num[12], j____00166, BOOL____00180);
constraint int_eq_reif(ladder_num[13], j____00181, BOOL____00195);
constraint int_eq_reif(ladder_num[14], j____00196, BOOL____00210);
constraint int_eq_reif(x[1], x[1], BOOL____00011) :: defines_var(BOOL____00011);
constraint int_eq_reif(x[2], x[2], BOOL____00012) :: defines_var(BOOL____00012);
constraint int_eq_reif(x[3], x[3], BOOL____00013) :: defines_var(BOOL____00013);
constraint int_eq_reif(x[4], x[4], BOOL____00014) :: defines_var(BOOL____00014);
constraint int_eq_reif(x[5], x[5], BOOL____00026) :: defines_var(BOOL____00026);
constraint int_eq_reif(x[6], x[6], BOOL____00027) :: defines_var(BOOL____00027);
constraint int_eq_reif(x[7], x[7], BOOL____00028) :: defines_var(BOOL____00028);
constraint int_eq_reif(x[8], x[8], BOOL____00029) :: defines_var(BOOL____00029);
constraint int_eq_reif(x[9], x[9], BOOL____00041) :: defines_var(BOOL____00041);
constraint int_eq_reif(x[10], x[10], BOOL____00042) :: defines_var(BOOL____00042);
constraint int_eq_reif(x[11], x[11], BOOL____00043) :: defines_var(BOOL____00043);
constraint int_eq_reif(x[12], x[12], BOOL____00044) :: defines_var(BOOL____00044);
constraint int_eq_reif(x[13], x[13], BOOL____00056) :: defines_var(BOOL____00056);
constraint int_eq_reif(x[14], x[14], BOOL____00057) :: defines_var(BOOL____00057);
constraint int_eq_reif(x[15], x[15], BOOL____00058) :: defines_var(BOOL____00058);
constraint int_eq_reif(x[16], x[16], BOOL____00059) :: defines_var(BOOL____00059);
constraint int_eq_reif(x[17], x[17], BOOL____00071) :: defines_var(BOOL____00071);
constraint int_eq_reif(x[18], x[18], BOOL____00072) :: defines_var(BOOL____00072);
constraint int_eq_reif(x[19], x[19], BOOL____00073) :: defines_var(BOOL____00073);
constraint int_eq_reif(x[20], x[20], BOOL____00074) :: defines_var(BOOL____00074);
constraint int_eq_reif(x[21], x[21], BOOL____00086) :: defines_var(BOOL____00086);
constraint int_eq_reif(x[22], x[22], BOOL____00087) :: defines_var(BOOL____00087);
constraint int_eq_reif(x[23], x[23], BOOL____00088) :: defines_var(BOOL____00088);
constraint int_eq_reif(x[24], x[24], BOOL____00089) :: defines_var(BOOL____00089);
constraint int_eq_reif(x[25], x[25], BOOL____00101) :: defines_var(BOOL____00101);
constraint int_eq_reif(x[26], x[26], BOOL____00102) :: defines_var(BOOL____00102);
constraint int_eq_reif(x[27], x[27], BOOL____00103) :: defines_var(BOOL____00103);
constraint int_eq_reif(x[28], x[28], BOOL____00104) :: defines_var(BOOL____00104);
constraint int_eq_reif(x[29], x[29], BOOL____00116) :: defines_var(BOOL____00116);
constraint int_eq_reif(x[30], x[30], BOOL____00117) :: defines_var(BOOL____00117);
constraint int_eq_reif(x[31], x[31], BOOL____00118) :: defines_var(BOOL____00118);
constraint int_eq_reif(x[32], x[32], BOOL____00119) :: defines_var(BOOL____00119);
constraint int_eq_reif(x[33], x[33], BOOL____00131) :: defines_var(BOOL____00131);
constraint int_eq_reif(x[34], x[34], BOOL____00132) :: defines_var(BOOL____00132);
constraint int_eq_reif(x[35], x[35], BOOL____00133) :: defines_var(BOOL____00133);
constraint int_eq_reif(x[36], x[36], BOOL____00134) :: defines_var(BOOL____00134);
constraint int_eq_reif(x[37], x[37], BOOL____00146) :: defines_var(BOOL____00146);
constraint int_eq_reif(x[38], x[38], BOOL____00147) :: defines_var(BOOL____00147);
constraint int_eq_reif(x[39], x[39], BOOL____00148) :: defines_var(BOOL____00148);
constraint int_eq_reif(x[40], x[40], BOOL____00149) :: defines_var(BOOL____00149);
constraint int_eq_reif(x[41], x[41], BOOL____00161) :: defines_var(BOOL____00161);
constraint int_eq_reif(x[42], x[42], BOOL____00162) :: defines_var(BOOL____00162);
constraint int_eq_reif(x[43], x[43], BOOL____00163) :: defines_var(BOOL____00163);
constraint int_eq_reif(x[44], x[44], BOOL____00164) :: defines_var(BOOL____00164);
constraint int_eq_reif(x[45], x[45], BOOL____00176) :: defines_var(BOOL____00176);
constraint int_eq_reif(x[46], x[46], BOOL____00177) :: defines_var(BOOL____00177);
constraint int_eq_reif(x[47], x[47], BOOL____00178) :: defines_var(BOOL____00178);
constraint int_eq_reif(x[48], x[48], BOOL____00179) :: defines_var(BOOL____00179);
constraint int_eq_reif(x[49], x[49], BOOL____00191) :: defines_var(BOOL____00191);
constraint int_eq_reif(x[50], x[50], BOOL____00192) :: defines_var(BOOL____00192);
constraint int_eq_reif(x[51], x[51], BOOL____00193) :: defines_var(BOOL____00193);
constraint int_eq_reif(x[52], x[52], BOOL____00194) :: defines_var(BOOL____00194);
constraint int_eq_reif(x[53], x[53], BOOL____00206) :: defines_var(BOOL____00206);
constraint int_eq_reif(x[54], x[54], BOOL____00207) :: defines_var(BOOL____00207);
constraint int_eq_reif(x[55], x[55], BOOL____00208) :: defines_var(BOOL____00208);
constraint int_eq_reif(x[56], x[56], BOOL____00209) :: defines_var(BOOL____00209);
constraint int_lin_eq([-1, 4], [INT____00002, j____00001], 3) :: defines_var(INT____00002) :: domain;
constraint int_lin_eq([-1, 4], [INT____00004, j____00001], 2) :: defines_var(INT____00004) :: domain;
constraint int_lin_eq([-1, 4], [INT____00006, j____00001], 1) :: defines_var(INT____00006) :: domain;
constraint int_lin_eq([-1, 4], [INT____00008, j____00001], 0) :: defines_var(INT____00008) :: domain;
constraint int_lin_eq([-1, 4], [INT____00017, j____00016], 3) :: defines_var(INT____00017) :: domain;
constraint int_lin_eq([-1, 4], [INT____00019, j____00016], 2) :: defines_var(INT____00019) :: domain;
constraint int_lin_eq([-1, 4], [INT____00021, j____00016], 1) :: defines_var(INT____00021) :: domain;
constraint int_lin_eq([-1, 4], [INT____00023, j____00016], 0) :: defines_var(INT____00023) :: domain;
constraint int_lin_eq([-1, 4], [INT____00032, j____00031], 3) :: defines_var(INT____00032) :: domain;
constraint int_lin_eq([-1, 4], [INT____00034, j____00031], 2) :: defines_var(INT____00034) :: domain;
constraint int_lin_eq([-1, 4], [INT____00036, j____00031], 1) :: defines_var(INT____00036) :: domain;
constraint int_lin_eq([-1, 4], [INT____00038, j____00031], 0) :: defines_var(INT____00038) :: domain;
constraint int_lin_eq([-1, 4], [INT____00047, j____00046], 3) :: defines_var(INT____00047) :: domain;
constraint int_lin_eq([-1, 4], [INT____00049, j____00046], 2) :: defines_var(INT____00049) :: domain;
constraint int_lin_eq([-1, 4], [INT____00051, j____00046], 1) :: defines_var(INT____00051) :: domain;
constraint int_lin_eq([-1, 4], [INT____00053, j____00046], 0) :: defines_var(INT____00053) :: domain;
constraint int_lin_eq([-1, 4], [INT____00062, j____00061], 3) :: defines_var(INT____00062) :: domain;
constraint int_lin_eq([-1, 4], [INT____00064, j____00061], 2) :: defines_var(INT____00064) :: domain;
constraint int_lin_eq([-1, 4], [INT____00066, j____00061], 1) :: defines_var(INT____00066) :: domain;
constraint int_lin_eq([-1, 4], [INT____00068, j____00061], 0) :: defines_var(INT____00068) :: domain;
constraint int_lin_eq([-1, 4], [INT____00077, j____00076], 3) :: defines_var(INT____00077) :: domain;
constraint int_lin_eq([-1, 4], [INT____00079, j____00076], 2) :: defines_var(INT____00079) :: domain;
constraint int_lin_eq([-1, 4], [INT____00081, j____00076], 1) :: defines_var(INT____00081) :: domain;
constraint int_lin_eq([-1, 4], [INT____00083, j____00076], 0) :: defines_var(INT____00083) :: domain;
constraint int_lin_eq([-1, 4], [INT____00092, j____00091], 3) :: defines_var(INT____00092) :: domain;
constraint int_lin_eq([-1, 4], [INT____00094, j____00091], 2) :: defines_var(INT____00094) :: domain;
constraint int_lin_eq([-1, 4], [INT____00096, j____00091], 1) :: defines_var(INT____00096) :: domain;
constraint int_lin_eq([-1, 4], [INT____00098, j____00091], 0) :: defines_var(INT____00098) :: domain;
constraint int_lin_eq([-1, 4], [INT____00107, j____00106], 3) :: defines_var(INT____00107) :: domain;
constraint int_lin_eq([-1, 4], [INT____00109, j____00106], 2) :: defines_var(INT____00109) :: domain;
constraint int_lin_eq([-1, 4], [INT____00111, j____00106], 1) :: defines_var(INT____00111) :: domain;
constraint int_lin_eq([-1, 4], [INT____00113, j____00106], 0) :: defines_var(INT____00113) :: domain;
constraint int_lin_eq([-1, 4], [INT____00122, j____00121], 3) :: defines_var(INT____00122) :: domain;
constraint int_lin_eq([-1, 4], [INT____00124, j____00121], 2) :: defines_var(INT____00124) :: domain;
constraint int_lin_eq([-1, 4], [INT____00126, j____00121], 1) :: defines_var(INT____00126) :: domain;
constraint int_lin_eq([-1, 4], [INT____00128, j____00121], 0) :: defines_var(INT____00128) :: domain;
constraint int_lin_eq([-1, 4], [INT____00137, j____00136], 3) :: defines_var(INT____00137) :: domain;
constraint int_lin_eq([-1, 4], [INT____00139, j____00136], 2) :: defines_var(INT____00139) :: domain;
constraint int_lin_eq([-1, 4], [INT____00141, j____00136], 1) :: defines_var(INT____00141) :: domain;
constraint int_lin_eq([-1, 4], [INT____00143, j____00136], 0) :: defines_var(INT____00143) :: domain;
constraint int_lin_eq([-1, 4], [INT____00152, j____00151], 3) :: defines_var(INT____00152) :: domain;
constraint int_lin_eq([-1, 4], [INT____00154, j____00151], 2) :: defines_var(INT____00154) :: domain;
constraint int_lin_eq([-1, 4], [INT____00156, j____00151], 1) :: defines_var(INT____00156) :: domain;
constraint int_lin_eq([-1, 4], [INT____00158, j____00151], 0) :: defines_var(INT____00158) :: domain;
constraint int_lin_eq([-1, 4], [INT____00167, j____00166], 3) :: defines_var(INT____00167) :: domain;
constraint int_lin_eq([-1, 4], [INT____00169, j____00166], 2) :: defines_var(INT____00169) :: domain;
constraint int_lin_eq([-1, 4], [INT____00171, j____00166], 1) :: defines_var(INT____00171) :: domain;
constraint int_lin_eq([-1, 4], [INT____00173, j____00166], 0) :: defines_var(INT____00173) :: domain;
constraint int_lin_eq([-1, 4], [INT____00182, j____00181], 3) :: defines_var(INT____00182) :: domain;
constraint int_lin_eq([-1, 4], [INT____00184, j____00181], 2) :: defines_var(INT____00184) :: domain;
constraint int_lin_eq([-1, 4], [INT____00186, j____00181], 1) :: defines_var(INT____00186) :: domain;
constraint int_lin_eq([-1, 4], [INT____00188, j____00181], 0) :: defines_var(INT____00188) :: domain;
constraint int_lin_eq([-1, 4], [INT____00197, j____00196], 3) :: defines_var(INT____00197) :: domain;
constraint int_lin_eq([-1, 4], [INT____00199, j____00196], 2) :: defines_var(INT____00199) :: domain;
constraint int_lin_eq([-1, 4], [INT____00201, j____00196], 1) :: defines_var(INT____00201) :: domain;
constraint int_lin_eq([-1, 4], [INT____00203, j____00196], 0) :: defines_var(INT____00203) :: domain;
constraint int_lin_eq([1, 1, 1, 1], [INT____00212, INT____00214, INT____00216, INT____00218], 1);
constraint int_lin_eq([1, 1, 1, 1], [INT____00220, INT____00222, INT____00224, INT____00226], 1);
constraint int_lin_eq([1, 1, 1, 1], [INT____00228, INT____00230, INT____00232, INT____00234], 1);
constraint int_lin_eq([1, 1, 1, 1], [INT____00236, INT____00238, INT____00240, INT____00242], 1);
constraint int_lin_eq([1, 1, 1, 1], [INT____00244, INT____00246, INT____00248, INT____00250], 1);
constraint int_lin_eq([1, 1, 1, 1], [INT____00252, INT____00254, INT____00256, INT____00258], 1);
constraint int_lin_eq([1, 1, 1, 1], [INT____00260, INT____00262, INT____00264, INT____00266], 1);
constraint int_lin_eq([1, 1, 1, 1], [INT____00268, INT____00270, INT____00272, INT____00274], 1);
constraint int_lin_eq([1, 1, 1, 1], [INT____00276, INT____00278, INT____00280, INT____00282], 1);
constraint int_lin_eq([1, 1, 1, 1], [INT____00284, INT____00286, INT____00288, INT____00290], 1);
constraint int_lin_eq([1, 1, 1, 1], [INT____00292, INT____00294, INT____00296, INT____00298], 1);
constraint int_lin_eq([1, 1, 1, 1], [INT____00300, INT____00302, INT____00304, INT____00306], 1);
constraint int_lin_eq([1, 1, 1, 1], [INT____00308, INT____00310, INT____00312, INT____00314], 1);
constraint int_ne_reif(x[1], x[5], BOOL____00211) :: defines_var(BOOL____00211);
constraint int_ne_reif(x[2], x[6], BOOL____00213) :: defines_var(BOOL____00213);
constraint int_ne_reif(x[3], x[7], BOOL____00215) :: defines_var(BOOL____00215);
constraint int_ne_reif(x[4], x[8], BOOL____00217) :: defines_var(BOOL____00217);
constraint int_ne_reif(x[5], x[9], BOOL____00219) :: defines_var(BOOL____00219);
constraint int_ne_reif(x[6], x[10], BOOL____00221) :: defines_var(BOOL____00221);
constraint int_ne_reif(x[7], x[11], BOOL____00223) :: defines_var(BOOL____00223);
constraint int_ne_reif(x[8], x[12], BOOL____00225) :: defines_var(BOOL____00225);
constraint int_ne_reif(x[9], x[13], BOOL____00227) :: defines_var(BOOL____00227);
constraint int_ne_reif(x[10], x[14], BOOL____00229) :: defines_var(BOOL____00229);
constraint int_ne_reif(x[11], x[15], BOOL____00231) :: defines_var(BOOL____00231);
constraint int_ne_reif(x[12], x[16], BOOL____00233) :: defines_var(BOOL____00233);
constraint int_ne_reif(x[13], x[17], BOOL____00235) :: defines_var(BOOL____00235);
constraint int_ne_reif(x[14], x[18], BOOL____00237) :: defines_var(BOOL____00237);
constraint int_ne_reif(x[15], x[19], BOOL____00239) :: defines_var(BOOL____00239);
constraint int_ne_reif(x[16], x[20], BOOL____00241) :: defines_var(BOOL____00241);
constraint int_ne_reif(x[17], x[21], BOOL____00243) :: defines_var(BOOL____00243);
constraint int_ne_reif(x[18], x[22], BOOL____00245) :: defines_var(BOOL____00245);
constraint int_ne_reif(x[19], x[23], BOOL____00247) :: defines_var(BOOL____00247);
constraint int_ne_reif(x[20], x[24], BOOL____00249) :: defines_var(BOOL____00249);
constraint int_ne_reif(x[21], x[25], BOOL____00251) :: defines_var(BOOL____00251);
constraint int_ne_reif(x[22], x[26], BOOL____00253) :: defines_var(BOOL____00253);
constraint int_ne_reif(x[23], x[27], BOOL____00255) :: defines_var(BOOL____00255);
constraint int_ne_reif(x[24], x[28], BOOL____00257) :: defines_var(BOOL____00257);
constraint int_ne_reif(x[25], x[29], BOOL____00259) :: defines_var(BOOL____00259);
constraint int_ne_reif(x[26], x[30], BOOL____00261) :: defines_var(BOOL____00261);
constraint int_ne_reif(x[27], x[31], BOOL____00263) :: defines_var(BOOL____00263);
constraint int_ne_reif(x[28], x[32], BOOL____00265) :: defines_var(BOOL____00265);
constraint int_ne_reif(x[29], x[33], BOOL____00267) :: defines_var(BOOL____00267);
constraint int_ne_reif(x[30], x[34], BOOL____00269) :: defines_var(BOOL____00269);
constraint int_ne_reif(x[31], x[35], BOOL____00271) :: defines_var(BOOL____00271);
constraint int_ne_reif(x[32], x[36], BOOL____00273) :: defines_var(BOOL____00273);
constraint int_ne_reif(x[33], x[37], BOOL____00275) :: defines_var(BOOL____00275);
constraint int_ne_reif(x[34], x[38], BOOL____00277) :: defines_var(BOOL____00277);
constraint int_ne_reif(x[35], x[39], BOOL____00279) :: defines_var(BOOL____00279);
constraint int_ne_reif(x[36], x[40], BOOL____00281) :: defines_var(BOOL____00281);
constraint int_ne_reif(x[37], x[41], BOOL____00283) :: defines_var(BOOL____00283);
constraint int_ne_reif(x[38], x[42], BOOL____00285) :: defines_var(BOOL____00285);
constraint int_ne_reif(x[39], x[43], BOOL____00287) :: defines_var(BOOL____00287);
constraint int_ne_reif(x[40], x[44], BOOL____00289) :: defines_var(BOOL____00289);
constraint int_ne_reif(x[41], x[45], BOOL____00291) :: defines_var(BOOL____00291);
constraint int_ne_reif(x[42], x[46], BOOL____00293) :: defines_var(BOOL____00293);
constraint int_ne_reif(x[43], x[47], BOOL____00295) :: defines_var(BOOL____00295);
constraint int_ne_reif(x[44], x[48], BOOL____00297) :: defines_var(BOOL____00297);
constraint int_ne_reif(x[45], x[49], BOOL____00299) :: defines_var(BOOL____00299);
constraint int_ne_reif(x[46], x[50], BOOL____00301) :: defines_var(BOOL____00301);
constraint int_ne_reif(x[47], x[51], BOOL____00303) :: defines_var(BOOL____00303);
constraint int_ne_reif(x[48], x[52], BOOL____00305) :: defines_var(BOOL____00305);
constraint int_ne_reif(x[49], x[53], BOOL____00307) :: defines_var(BOOL____00307);
constraint int_ne_reif(x[50], x[54], BOOL____00309) :: defines_var(BOOL____00309);
constraint int_ne_reif(x[51], x[55], BOOL____00311) :: defines_var(BOOL____00311);
constraint int_ne_reif(x[52], x[56], BOOL____00313) :: defines_var(BOOL____00313);
solve :: int_search([x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], x[17], x[18], x[19], x[20], x[21], x[22], x[23], x[24], x[25], x[26], x[27], x[28], x[29], x[30], x[31], x[32], x[33], x[34], x[35], x[36], x[37], x[38], x[39], x[40], x[41], x[42], x[43], x[44], x[45], x[46], x[47], x[48], x[49], x[50], x[51], x[52], x[53], x[54], x[55], x[56]], first_fail, indomain, complete) satisfy;