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

610 lines
50 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);
var bool: BOOL____00074 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00075 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00076 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00077 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00078 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00079 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00080 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00081 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00082 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00083 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00084 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00085 :: 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____00091 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00092 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00093 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00094 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00095 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00096 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00097 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00098 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00099 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00100 :: 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____00106 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00107 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00108 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00109 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00110 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00111 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00112 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00113 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00114 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00115 :: 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____00121 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00122 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00123 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00124 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00125 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00126 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00127 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00128 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00129 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00130 :: 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____00136 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00137 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00138 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00139 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00140 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00141 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00142 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00143 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00144 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00145 :: 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____00151 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00152 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00153 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00154 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00155 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00156 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00157 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00158 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00159 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00160 :: 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____00166 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00167 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00168 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00169 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00170 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00171 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00172 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00173 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00174 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00175 :: 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____00181 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00182 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00183 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00184 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00185 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00186 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00187 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00188 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00189 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00190 :: 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____00196 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00197 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00198 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00199 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00200 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00201 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00202 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00203 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00204 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00205 :: 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____00212 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00213 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00214 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00215 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00216 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00217 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00218 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00219 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00220 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00221 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00222 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00223 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00224 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00225 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00226 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00227 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00228 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00229 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00230 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00231 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00232 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00233 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00234 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00235 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00236 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00237 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00238 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00239 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00240 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00241 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00242 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00243 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00244 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00245 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00246 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00247 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00248 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00249 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00250 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00252 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00253 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00254 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00255 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00256 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00257 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00258 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00259 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00260 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00261 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00262 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00263 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00264 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00265 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00266 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00267 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00268 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00269 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00270 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00271 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00272 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00273 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00274 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00275 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00276 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00277 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00278 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00279 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00280 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00281 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00282 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00283 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00284 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00285 :: is_defined_var :: var_is_introduced;
var 5..8: INT____00005 :: is_defined_var :: var_is_introduced;
var 9..12: INT____00008 :: is_defined_var :: var_is_introduced;
var 13..16: INT____00011 :: is_defined_var :: var_is_introduced;
var 5..8: INT____00016 :: is_defined_var :: var_is_introduced;
var 9..12: INT____00019 :: is_defined_var :: var_is_introduced;
var 13..16: INT____00022 :: is_defined_var :: var_is_introduced;
var 5..8: INT____00027 :: is_defined_var :: var_is_introduced;
var 9..12: INT____00030 :: is_defined_var :: var_is_introduced;
var 13..16: INT____00033 :: is_defined_var :: var_is_introduced;
var 5..8: INT____00038 :: is_defined_var :: var_is_introduced;
var 9..12: INT____00041 :: is_defined_var :: var_is_introduced;
var 13..16: INT____00044 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00046 :: is_defined_var :: var_is_introduced;
var 5..8: INT____00047 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00048 :: is_defined_var :: var_is_introduced;
var 9..12: INT____00049 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00050 :: is_defined_var :: var_is_introduced;
var 13..16: INT____00051 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00052 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00053 :: is_defined_var :: var_is_introduced;
var 5..8: INT____00054 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00055 :: is_defined_var :: var_is_introduced;
var 9..12: INT____00056 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00057 :: is_defined_var :: var_is_introduced;
var 13..16: INT____00058 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00059 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00060 :: is_defined_var :: var_is_introduced;
var 5..8: INT____00061 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00062 :: is_defined_var :: var_is_introduced;
var 9..12: INT____00063 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00064 :: is_defined_var :: var_is_introduced;
var 13..16: INT____00065 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00066 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00067 :: is_defined_var :: var_is_introduced;
var 5..8: INT____00068 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00069 :: is_defined_var :: var_is_introduced;
var 9..12: INT____00070 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00071 :: is_defined_var :: var_is_introduced;
var 13..16: INT____00072 :: is_defined_var :: var_is_introduced;
var 1..4: INT____00073 :: is_defined_var :: var_is_introduced;
array [1..16] of var 1..4: colors :: output_array([1..4, 1..4]);
array [1..32] of var 1..4: pairs;
array [1..16] of var 1..4: plants :: output_array([1..4, 1..4]);
array [1..16] of var 1..4: pos____00001;
var 1..4: j____00043 = pos____00001[16];
var 1..4: j____00040 = pos____00001[15];
var 1..4: j____00037 = pos____00001[14];
var 1..4: j____00035 = pos____00001[13];
var 1..4: j____00032 = pos____00001[12];
var 1..4: j____00029 = pos____00001[11];
var 1..4: j____00026 = pos____00001[10];
var 1..4: j____00024 = pos____00001[9];
var 1..4: j____00021 = pos____00001[8];
var 1..4: j____00018 = pos____00001[7];
var 1..4: j____00015 = pos____00001[6];
var 1..4: j____00013 = pos____00001[5];
var 1..4: j____00010 = pos____00001[4];
var 1..4: j____00007 = pos____00001[3];
var 1..4: j____00004 = pos____00001[2];
var 1..4: j____00002 = pos____00001[1];
constraint fzn_all_different_int([INT____00046, INT____00048, INT____00050, INT____00052]);
constraint fzn_all_different_int([INT____00053, INT____00055, INT____00057, INT____00059]);
constraint fzn_all_different_int([INT____00060, INT____00062, INT____00064, INT____00066]);
constraint fzn_all_different_int([INT____00067, INT____00069, INT____00071, INT____00073]);
constraint fzn_all_different_int([colors[1], colors[2], colors[3], colors[4]]);
constraint fzn_all_different_int([colors[1], colors[5], colors[9], colors[13]]);
constraint fzn_all_different_int([colors[2], colors[6], colors[10], colors[14]]);
constraint fzn_all_different_int([colors[3], colors[7], colors[11], colors[15]]);
constraint fzn_all_different_int([colors[4], colors[8], colors[12], colors[16]]);
constraint fzn_all_different_int([colors[5], colors[6], colors[7], colors[8]]);
constraint fzn_all_different_int([colors[9], colors[10], colors[11], colors[12]]);
constraint fzn_all_different_int([colors[13], colors[14], colors[15], colors[16]]);
constraint fzn_all_different_int([plants[1], plants[2], plants[3], plants[4]]);
constraint fzn_all_different_int([plants[1], plants[5], plants[9], plants[13]]);
constraint fzn_all_different_int([plants[2], plants[6], plants[10], plants[14]]);
constraint fzn_all_different_int([plants[3], plants[7], plants[11], plants[15]]);
constraint fzn_all_different_int([plants[4], plants[8], plants[12], plants[16]]);
constraint fzn_all_different_int([plants[5], plants[6], plants[7], plants[8]]);
constraint fzn_all_different_int([plants[9], plants[10], plants[11], plants[12]]);
constraint fzn_all_different_int([plants[13], plants[14], plants[15], plants[16]]);
constraint array_bool_and([BOOL____00074, BOOL____00075], BOOL____00082) :: defines_var(BOOL____00082);
constraint array_bool_and([BOOL____00076, BOOL____00077], BOOL____00083) :: defines_var(BOOL____00083);
constraint array_bool_and([BOOL____00078, BOOL____00079], BOOL____00084) :: defines_var(BOOL____00084);
constraint array_bool_and([BOOL____00080, BOOL____00081], BOOL____00085) :: defines_var(BOOL____00085);
constraint array_bool_and([BOOL____00252, BOOL____00255], BOOL____00260) :: defines_var(BOOL____00260);
constraint array_bool_and([BOOL____00252, BOOL____00256], BOOL____00261) :: defines_var(BOOL____00261);
constraint array_bool_and([BOOL____00257, BOOL____00256], BOOL____00262) :: defines_var(BOOL____00262);
constraint array_bool_and([BOOL____00258, BOOL____00253], BOOL____00263) :: defines_var(BOOL____00263);
constraint array_bool_and([BOOL____00259, BOOL____00253], BOOL____00264) :: defines_var(BOOL____00264);
constraint array_bool_and([BOOL____00259, BOOL____00254], BOOL____00265) :: defines_var(BOOL____00265);
constraint array_bool_and([BOOL____00266, BOOL____00258], BOOL____00270) :: defines_var(BOOL____00270);
constraint array_bool_and([BOOL____00266, BOOL____00259], BOOL____00271) :: defines_var(BOOL____00271);
constraint array_bool_and([BOOL____00267, BOOL____00259], BOOL____00272) :: defines_var(BOOL____00272);
constraint array_bool_and([BOOL____00268, BOOL____00252], BOOL____00273) :: defines_var(BOOL____00273);
constraint array_bool_and([BOOL____00269, BOOL____00252], BOOL____00274) :: defines_var(BOOL____00274);
constraint array_bool_and([BOOL____00269, BOOL____00257], BOOL____00275) :: defines_var(BOOL____00275);
constraint array_bool_and([BOOL____00276, BOOL____00268], BOOL____00280) :: defines_var(BOOL____00280);
constraint array_bool_and([BOOL____00276, BOOL____00269], BOOL____00281) :: defines_var(BOOL____00281);
constraint array_bool_and([BOOL____00277, BOOL____00269], BOOL____00282) :: defines_var(BOOL____00282);
constraint array_bool_and([BOOL____00278, BOOL____00266], BOOL____00283) :: defines_var(BOOL____00283);
constraint array_bool_and([BOOL____00279, BOOL____00266], BOOL____00284) :: defines_var(BOOL____00284);
constraint array_bool_and([BOOL____00279, BOOL____00267], BOOL____00285) :: defines_var(BOOL____00285);
constraint array_bool_and([BOOL____00090, BOOL____00089, BOOL____00087, BOOL____00088], BOOL____00151) :: defines_var(BOOL____00151);
constraint array_bool_and([BOOL____00090, BOOL____00089, BOOL____00097, BOOL____00098], BOOL____00155) :: defines_var(BOOL____00155);
constraint array_bool_and([BOOL____00090, BOOL____00089, BOOL____00111, BOOL____00112], BOOL____00171) :: defines_var(BOOL____00171);
constraint array_bool_and([BOOL____00090, BOOL____00089, BOOL____00117, BOOL____00118], BOOL____00177) :: defines_var(BOOL____00177);
constraint array_bool_and([BOOL____00092, BOOL____00091, BOOL____00087, BOOL____00088], BOOL____00152) :: defines_var(BOOL____00152);
constraint array_bool_and([BOOL____00092, BOOL____00091, BOOL____00097, BOOL____00098], BOOL____00156) :: defines_var(BOOL____00156);
constraint array_bool_and([BOOL____00092, BOOL____00091, BOOL____00103, BOOL____00104], BOOL____00161) :: defines_var(BOOL____00161);
constraint array_bool_and([BOOL____00092, BOOL____00091, BOOL____00111, BOOL____00112], BOOL____00172) :: defines_var(BOOL____00172);
constraint array_bool_and([BOOL____00092, BOOL____00091, BOOL____00117, BOOL____00118], BOOL____00178) :: defines_var(BOOL____00178);
constraint array_bool_and([BOOL____00092, BOOL____00091, BOOL____00121, BOOL____00122], BOOL____00186) :: defines_var(BOOL____00186);
constraint array_bool_and([BOOL____00094, BOOL____00093, BOOL____00087, BOOL____00088], BOOL____00153) :: defines_var(BOOL____00153);
constraint array_bool_and([BOOL____00094, BOOL____00093, BOOL____00097, BOOL____00098], BOOL____00158) :: defines_var(BOOL____00158);
constraint array_bool_and([BOOL____00094, BOOL____00093, BOOL____00111, BOOL____00112], BOOL____00173) :: defines_var(BOOL____00173);
constraint array_bool_and([BOOL____00094, BOOL____00093, BOOL____00117, BOOL____00118], BOOL____00180) :: defines_var(BOOL____00180);
constraint array_bool_and([BOOL____00094, BOOL____00093, BOOL____00127, BOOL____00128], BOOL____00201) :: defines_var(BOOL____00201);
constraint array_bool_and([BOOL____00094, BOOL____00093, BOOL____00133, BOOL____00134], BOOL____00207) :: defines_var(BOOL____00207);
constraint array_bool_and([BOOL____00096, BOOL____00095, BOOL____00087, BOOL____00088], BOOL____00154) :: defines_var(BOOL____00154);
constraint array_bool_and([BOOL____00096, BOOL____00095, BOOL____00097, BOOL____00098], BOOL____00159) :: defines_var(BOOL____00159);
constraint array_bool_and([BOOL____00096, BOOL____00095, BOOL____00103, BOOL____00104], BOOL____00164) :: defines_var(BOOL____00164);
constraint array_bool_and([BOOL____00096, BOOL____00095, BOOL____00111, BOOL____00112], BOOL____00174) :: defines_var(BOOL____00174);
constraint array_bool_and([BOOL____00096, BOOL____00095, BOOL____00117, BOOL____00118], BOOL____00181) :: defines_var(BOOL____00181);
constraint array_bool_and([BOOL____00096, BOOL____00095, BOOL____00121, BOOL____00122], BOOL____00189) :: defines_var(BOOL____00189);
constraint array_bool_and([BOOL____00096, BOOL____00095, BOOL____00127, BOOL____00128], BOOL____00202) :: defines_var(BOOL____00202);
constraint array_bool_and([BOOL____00096, BOOL____00095, BOOL____00133, BOOL____00134], BOOL____00208) :: defines_var(BOOL____00208);
constraint array_bool_and([BOOL____00096, BOOL____00095, BOOL____00137, BOOL____00138], BOOL____00216) :: defines_var(BOOL____00216);
constraint array_bool_and([BOOL____00100, BOOL____00099, BOOL____00097, BOOL____00098], BOOL____00157) :: defines_var(BOOL____00157);
constraint array_bool_and([BOOL____00100, BOOL____00099, BOOL____00103, BOOL____00104], BOOL____00162) :: defines_var(BOOL____00162);
constraint array_bool_and([BOOL____00100, BOOL____00099, BOOL____00109, BOOL____00110], BOOL____00167) :: defines_var(BOOL____00167);
constraint array_bool_and([BOOL____00100, BOOL____00099, BOOL____00117, BOOL____00118], BOOL____00179) :: defines_var(BOOL____00179);
constraint array_bool_and([BOOL____00100, BOOL____00099, BOOL____00121, BOOL____00122], BOOL____00187) :: defines_var(BOOL____00187);
constraint array_bool_and([BOOL____00100, BOOL____00099, BOOL____00125, BOOL____00126], BOOL____00195) :: defines_var(BOOL____00195);
constraint array_bool_and([BOOL____00102, BOOL____00101, BOOL____00097, BOOL____00098], BOOL____00160) :: defines_var(BOOL____00160);
constraint array_bool_and([BOOL____00102, BOOL____00101, BOOL____00103, BOOL____00104], BOOL____00165) :: defines_var(BOOL____00165);
constraint array_bool_and([BOOL____00102, BOOL____00101, BOOL____00109, BOOL____00110], BOOL____00169) :: defines_var(BOOL____00169);
constraint array_bool_and([BOOL____00102, BOOL____00101, BOOL____00117, BOOL____00118], BOOL____00182) :: defines_var(BOOL____00182);
constraint array_bool_and([BOOL____00102, BOOL____00101, BOOL____00121, BOOL____00122], BOOL____00190) :: defines_var(BOOL____00190);
constraint array_bool_and([BOOL____00102, BOOL____00101, BOOL____00125, BOOL____00126], BOOL____00197) :: defines_var(BOOL____00197);
constraint array_bool_and([BOOL____00102, BOOL____00101, BOOL____00133, BOOL____00134], BOOL____00209) :: defines_var(BOOL____00209);
constraint array_bool_and([BOOL____00102, BOOL____00101, BOOL____00137, BOOL____00138], BOOL____00217) :: defines_var(BOOL____00217);
constraint array_bool_and([BOOL____00102, BOOL____00101, BOOL____00141, BOOL____00142], BOOL____00225) :: defines_var(BOOL____00225);
constraint array_bool_and([BOOL____00106, BOOL____00105, BOOL____00103, BOOL____00104], BOOL____00163) :: defines_var(BOOL____00163);
constraint array_bool_and([BOOL____00106, BOOL____00105, BOOL____00109, BOOL____00110], BOOL____00168) :: defines_var(BOOL____00168);
constraint array_bool_and([BOOL____00106, BOOL____00105, BOOL____00121, BOOL____00122], BOOL____00188) :: defines_var(BOOL____00188);
constraint array_bool_and([BOOL____00106, BOOL____00105, BOOL____00125, BOOL____00126], BOOL____00196) :: defines_var(BOOL____00196);
constraint array_bool_and([BOOL____00108, BOOL____00107, BOOL____00103, BOOL____00104], BOOL____00166) :: defines_var(BOOL____00166);
constraint array_bool_and([BOOL____00108, BOOL____00107, BOOL____00109, BOOL____00110], BOOL____00170) :: defines_var(BOOL____00170);
constraint array_bool_and([BOOL____00108, BOOL____00107, BOOL____00121, BOOL____00122], BOOL____00191) :: defines_var(BOOL____00191);
constraint array_bool_and([BOOL____00108, BOOL____00107, BOOL____00125, BOOL____00126], BOOL____00198) :: defines_var(BOOL____00198);
constraint array_bool_and([BOOL____00108, BOOL____00107, BOOL____00137, BOOL____00138], BOOL____00218) :: defines_var(BOOL____00218);
constraint array_bool_and([BOOL____00108, BOOL____00107, BOOL____00141, BOOL____00142], BOOL____00226) :: defines_var(BOOL____00226);
constraint array_bool_and([BOOL____00114, BOOL____00113, BOOL____00111, BOOL____00112], BOOL____00175) :: defines_var(BOOL____00175);
constraint array_bool_and([BOOL____00114, BOOL____00113, BOOL____00117, BOOL____00118], BOOL____00183) :: defines_var(BOOL____00183);
constraint array_bool_and([BOOL____00114, BOOL____00113, BOOL____00127, BOOL____00128], BOOL____00203) :: defines_var(BOOL____00203);
constraint array_bool_and([BOOL____00114, BOOL____00113, BOOL____00133, BOOL____00134], BOOL____00210) :: defines_var(BOOL____00210);
constraint array_bool_and([BOOL____00114, BOOL____00113, BOOL____00143, BOOL____00144], BOOL____00231) :: defines_var(BOOL____00231);
constraint array_bool_and([BOOL____00114, BOOL____00113, BOOL____00145, BOOL____00146], BOOL____00235) :: defines_var(BOOL____00235);
constraint array_bool_and([BOOL____00116, BOOL____00115, BOOL____00111, BOOL____00112], BOOL____00176) :: defines_var(BOOL____00176);
constraint array_bool_and([BOOL____00116, BOOL____00115, BOOL____00117, BOOL____00118], BOOL____00184) :: defines_var(BOOL____00184);
constraint array_bool_and([BOOL____00116, BOOL____00115, BOOL____00121, BOOL____00122], BOOL____00192) :: defines_var(BOOL____00192);
constraint array_bool_and([BOOL____00116, BOOL____00115, BOOL____00127, BOOL____00128], BOOL____00204) :: defines_var(BOOL____00204);
constraint array_bool_and([BOOL____00116, BOOL____00115, BOOL____00133, BOOL____00134], BOOL____00211) :: defines_var(BOOL____00211);
constraint array_bool_and([BOOL____00116, BOOL____00115, BOOL____00137, BOOL____00138], BOOL____00219) :: defines_var(BOOL____00219);
constraint array_bool_and([BOOL____00116, BOOL____00115, BOOL____00143, BOOL____00144], BOOL____00232) :: defines_var(BOOL____00232);
constraint array_bool_and([BOOL____00116, BOOL____00115, BOOL____00145, BOOL____00146], BOOL____00236) :: defines_var(BOOL____00236);
constraint array_bool_and([BOOL____00116, BOOL____00115, BOOL____00147, BOOL____00148], BOOL____00241) :: defines_var(BOOL____00241);
constraint array_bool_and([BOOL____00120, BOOL____00119, BOOL____00117, BOOL____00118], BOOL____00185) :: defines_var(BOOL____00185);
constraint array_bool_and([BOOL____00120, BOOL____00119, BOOL____00121, BOOL____00122], BOOL____00193) :: defines_var(BOOL____00193);
constraint array_bool_and([BOOL____00120, BOOL____00119, BOOL____00125, BOOL____00126], BOOL____00199) :: defines_var(BOOL____00199);
constraint array_bool_and([BOOL____00120, BOOL____00119, BOOL____00133, BOOL____00134], BOOL____00212) :: defines_var(BOOL____00212);
constraint array_bool_and([BOOL____00120, BOOL____00119, BOOL____00137, BOOL____00138], BOOL____00220) :: defines_var(BOOL____00220);
constraint array_bool_and([BOOL____00120, BOOL____00119, BOOL____00141, BOOL____00142], BOOL____00227) :: defines_var(BOOL____00227);
constraint array_bool_and([BOOL____00120, BOOL____00119, BOOL____00145, BOOL____00146], BOOL____00237) :: defines_var(BOOL____00237);
constraint array_bool_and([BOOL____00120, BOOL____00119, BOOL____00147, BOOL____00148], BOOL____00242) :: defines_var(BOOL____00242);
constraint array_bool_and([BOOL____00120, BOOL____00119, BOOL____00149, BOOL____00150], BOOL____00247) :: defines_var(BOOL____00247);
constraint array_bool_and([BOOL____00124, BOOL____00123, BOOL____00121, BOOL____00122], BOOL____00194) :: defines_var(BOOL____00194);
constraint array_bool_and([BOOL____00124, BOOL____00123, BOOL____00125, BOOL____00126], BOOL____00200) :: defines_var(BOOL____00200);
constraint array_bool_and([BOOL____00124, BOOL____00123, BOOL____00137, BOOL____00138], BOOL____00221) :: defines_var(BOOL____00221);
constraint array_bool_and([BOOL____00124, BOOL____00123, BOOL____00141, BOOL____00142], BOOL____00228) :: defines_var(BOOL____00228);
constraint array_bool_and([BOOL____00124, BOOL____00123, BOOL____00147, BOOL____00148], BOOL____00243) :: defines_var(BOOL____00243);
constraint array_bool_and([BOOL____00124, BOOL____00123, BOOL____00149, BOOL____00150], BOOL____00248) :: defines_var(BOOL____00248);
constraint array_bool_and([BOOL____00130, BOOL____00129, BOOL____00127, BOOL____00128], BOOL____00205) :: defines_var(BOOL____00205);
constraint array_bool_and([BOOL____00130, BOOL____00129, BOOL____00133, BOOL____00134], BOOL____00213) :: defines_var(BOOL____00213);
constraint array_bool_and([BOOL____00130, BOOL____00129, BOOL____00143, BOOL____00144], BOOL____00233) :: defines_var(BOOL____00233);
constraint array_bool_and([BOOL____00130, BOOL____00129, BOOL____00145, BOOL____00146], BOOL____00238) :: defines_var(BOOL____00238);
constraint array_bool_and([BOOL____00132, BOOL____00131, BOOL____00127, BOOL____00128], BOOL____00206) :: defines_var(BOOL____00206);
constraint array_bool_and([BOOL____00132, BOOL____00131, BOOL____00133, BOOL____00134], BOOL____00214) :: defines_var(BOOL____00214);
constraint array_bool_and([BOOL____00132, BOOL____00131, BOOL____00137, BOOL____00138], BOOL____00222) :: defines_var(BOOL____00222);
constraint array_bool_and([BOOL____00132, BOOL____00131, BOOL____00143, BOOL____00144], BOOL____00234) :: defines_var(BOOL____00234);
constraint array_bool_and([BOOL____00132, BOOL____00131, BOOL____00145, BOOL____00146], BOOL____00239) :: defines_var(BOOL____00239);
constraint array_bool_and([BOOL____00132, BOOL____00131, BOOL____00147, BOOL____00148], BOOL____00244) :: defines_var(BOOL____00244);
constraint array_bool_and([BOOL____00136, BOOL____00135, BOOL____00133, BOOL____00134], BOOL____00215) :: defines_var(BOOL____00215);
constraint array_bool_and([BOOL____00136, BOOL____00135, BOOL____00137, BOOL____00138], BOOL____00223) :: defines_var(BOOL____00223);
constraint array_bool_and([BOOL____00136, BOOL____00135, BOOL____00141, BOOL____00142], BOOL____00229) :: defines_var(BOOL____00229);
constraint array_bool_and([BOOL____00136, BOOL____00135, BOOL____00145, BOOL____00146], BOOL____00240) :: defines_var(BOOL____00240);
constraint array_bool_and([BOOL____00136, BOOL____00135, BOOL____00147, BOOL____00148], BOOL____00245) :: defines_var(BOOL____00245);
constraint array_bool_and([BOOL____00136, BOOL____00135, BOOL____00149, BOOL____00150], BOOL____00249) :: defines_var(BOOL____00249);
constraint array_bool_and([BOOL____00140, BOOL____00139, BOOL____00137, BOOL____00138], BOOL____00224) :: defines_var(BOOL____00224);
constraint array_bool_and([BOOL____00140, BOOL____00139, BOOL____00141, BOOL____00142], BOOL____00230) :: defines_var(BOOL____00230);
constraint array_bool_and([BOOL____00140, BOOL____00139, BOOL____00147, BOOL____00148], BOOL____00246) :: defines_var(BOOL____00246);
constraint array_bool_and([BOOL____00140, BOOL____00139, BOOL____00149, BOOL____00150], BOOL____00250) :: defines_var(BOOL____00250);
constraint array_bool_or([BOOL____00085, BOOL____00084, BOOL____00082, BOOL____00083], true);
constraint array_bool_or([BOOL____00265, BOOL____00264, BOOL____00263, BOOL____00262, BOOL____00260, BOOL____00261], true);
constraint array_bool_or([BOOL____00275, BOOL____00274, BOOL____00273, BOOL____00272, BOOL____00270, BOOL____00271], true);
constraint array_bool_or([BOOL____00285, BOOL____00284, BOOL____00283, BOOL____00282, BOOL____00280, BOOL____00281], true);
constraint array_bool_or([BOOL____00250, BOOL____00249, BOOL____00248, BOOL____00247, BOOL____00246, BOOL____00245, BOOL____00244, BOOL____00243, BOOL____00242, BOOL____00241, BOOL____00240, BOOL____00239, BOOL____00238, BOOL____00237, BOOL____00236, BOOL____00235, BOOL____00234, BOOL____00233, BOOL____00232, BOOL____00231, BOOL____00230, BOOL____00229, BOOL____00228, BOOL____00227, BOOL____00226, BOOL____00225, BOOL____00224, BOOL____00223, BOOL____00222, BOOL____00221, BOOL____00220, BOOL____00219, BOOL____00218, BOOL____00217, BOOL____00216, BOOL____00215, BOOL____00214, BOOL____00213, BOOL____00212, BOOL____00211, BOOL____00210, BOOL____00209, BOOL____00208, BOOL____00207, BOOL____00206, BOOL____00205, BOOL____00204, BOOL____00203, BOOL____00202, BOOL____00201, BOOL____00200, BOOL____00199, BOOL____00198, BOOL____00197, BOOL____00196, BOOL____00195, BOOL____00194, BOOL____00193, BOOL____00192, BOOL____00191, BOOL____00190, BOOL____00189, BOOL____00188, BOOL____00187, BOOL____00186, BOOL____00185, BOOL____00184, BOOL____00183, BOOL____00182, BOOL____00181, BOOL____00180, BOOL____00179, BOOL____00178, BOOL____00177, BOOL____00176, BOOL____00175, BOOL____00174, BOOL____00173, BOOL____00172, BOOL____00171, BOOL____00170, BOOL____00169, BOOL____00168, BOOL____00167, BOOL____00166, BOOL____00165, BOOL____00164, BOOL____00163, BOOL____00162, BOOL____00161, BOOL____00160, BOOL____00159, BOOL____00158, BOOL____00157, BOOL____00156, BOOL____00155, BOOL____00154, BOOL____00153, BOOL____00151, BOOL____00152], true);
constraint array_var_int_element(INT____00005, plants, 1);
constraint array_var_int_element(INT____00008, plants, 1);
constraint array_var_int_element(INT____00011, plants, 1);
constraint array_var_int_element(INT____00016, plants, 2);
constraint array_var_int_element(INT____00019, plants, 2);
constraint array_var_int_element(INT____00022, plants, 2);
constraint array_var_int_element(INT____00027, plants, 3);
constraint array_var_int_element(INT____00030, plants, 3);
constraint array_var_int_element(INT____00033, plants, 3);
constraint array_var_int_element(INT____00038, plants, 4);
constraint array_var_int_element(INT____00041, plants, 4);
constraint array_var_int_element(INT____00044, plants, 4);
constraint array_var_int_element(INT____00047, colors, INT____00048) :: defines_var(INT____00048);
constraint array_var_int_element(INT____00049, colors, INT____00050) :: defines_var(INT____00050);
constraint array_var_int_element(INT____00051, colors, INT____00052) :: defines_var(INT____00052);
constraint array_var_int_element(INT____00054, colors, INT____00055) :: defines_var(INT____00055);
constraint array_var_int_element(INT____00056, colors, INT____00057) :: defines_var(INT____00057);
constraint array_var_int_element(INT____00058, colors, INT____00059) :: defines_var(INT____00059);
constraint array_var_int_element(INT____00061, colors, INT____00062) :: defines_var(INT____00062);
constraint array_var_int_element(INT____00063, colors, INT____00064) :: defines_var(INT____00064);
constraint array_var_int_element(INT____00065, colors, INT____00066) :: defines_var(INT____00066);
constraint array_var_int_element(INT____00068, colors, INT____00069) :: defines_var(INT____00069);
constraint array_var_int_element(INT____00070, colors, INT____00071) :: defines_var(INT____00071);
constraint array_var_int_element(INT____00072, colors, INT____00073) :: defines_var(INT____00073);
constraint array_var_int_element(pos____00001[1], colors, INT____00046) :: defines_var(INT____00046);
constraint array_var_int_element(pos____00001[1], plants, 1);
constraint array_var_int_element(pos____00001[5], colors, INT____00053) :: defines_var(INT____00053);
constraint array_var_int_element(pos____00001[5], plants, 2);
constraint array_var_int_element(pos____00001[9], colors, INT____00060) :: defines_var(INT____00060);
constraint array_var_int_element(pos____00001[9], plants, 3);
constraint array_var_int_element(pos____00001[13], colors, INT____00067) :: defines_var(INT____00067);
constraint array_var_int_element(pos____00001[13], plants, 4);
constraint int_eq(colors[1], 1);
constraint int_eq(colors[2], 2);
constraint int_eq(colors[3], 3);
constraint int_eq(colors[4], 4);
constraint int_eq(pairs[1], plants[1]);
constraint int_eq(pairs[2], colors[1]);
constraint int_eq(pairs[3], plants[2]);
constraint int_eq(pairs[4], colors[2]);
constraint int_eq(pairs[5], plants[3]);
constraint int_eq(pairs[6], colors[3]);
constraint int_eq(pairs[7], plants[4]);
constraint int_eq(pairs[8], colors[4]);
constraint int_eq(pairs[9], plants[5]);
constraint int_eq(pairs[10], colors[5]);
constraint int_eq(pairs[11], plants[6]);
constraint int_eq(pairs[12], colors[6]);
constraint int_eq(pairs[13], plants[7]);
constraint int_eq(pairs[14], colors[7]);
constraint int_eq(pairs[15], plants[8]);
constraint int_eq(pairs[16], colors[8]);
constraint int_eq(pairs[17], plants[9]);
constraint int_eq(pairs[18], colors[9]);
constraint int_eq(pairs[19], plants[10]);
constraint int_eq(pairs[20], colors[10]);
constraint int_eq(pairs[21], plants[11]);
constraint int_eq(pairs[22], colors[11]);
constraint int_eq(pairs[23], plants[12]);
constraint int_eq(pairs[24], colors[12]);
constraint int_eq(pairs[25], plants[13]);
constraint int_eq(pairs[26], colors[13]);
constraint int_eq(pairs[27], plants[14]);
constraint int_eq(pairs[28], colors[14]);
constraint int_eq(pairs[29], plants[15]);
constraint int_eq(pairs[30], colors[15]);
constraint int_eq(pairs[31], plants[16]);
constraint int_eq(pairs[32], colors[16]);
constraint int_eq_reif(colors[1], 1, BOOL____00088) :: defines_var(BOOL____00088);
constraint int_eq_reif(colors[1], 2, BOOL____00090) :: defines_var(BOOL____00090);
constraint int_eq_reif(colors[1], 4, BOOL____00075) :: defines_var(BOOL____00075);
constraint int_eq_reif(colors[2], 1, BOOL____00098) :: defines_var(BOOL____00098);
constraint int_eq_reif(colors[2], 2, BOOL____00092) :: defines_var(BOOL____00092);
constraint int_eq_reif(colors[3], 1, BOOL____00104) :: defines_var(BOOL____00104);
constraint int_eq_reif(colors[3], 2, BOOL____00100) :: defines_var(BOOL____00100);
constraint int_eq_reif(colors[4], 1, BOOL____00110) :: defines_var(BOOL____00110);
constraint int_eq_reif(colors[4], 2, BOOL____00106) :: defines_var(BOOL____00106);
constraint int_eq_reif(colors[5], 1, BOOL____00112) :: defines_var(BOOL____00112);
constraint int_eq_reif(colors[5], 2, BOOL____00094) :: defines_var(BOOL____00094);
constraint int_eq_reif(colors[5], 4, BOOL____00077) :: defines_var(BOOL____00077);
constraint int_eq_reif(colors[6], 1, BOOL____00118) :: defines_var(BOOL____00118);
constraint int_eq_reif(colors[6], 2, BOOL____00096) :: defines_var(BOOL____00096);
constraint int_eq_reif(colors[7], 1, BOOL____00122) :: defines_var(BOOL____00122);
constraint int_eq_reif(colors[7], 2, BOOL____00102) :: defines_var(BOOL____00102);
constraint int_eq_reif(colors[8], 1, BOOL____00126) :: defines_var(BOOL____00126);
constraint int_eq_reif(colors[8], 2, BOOL____00108) :: defines_var(BOOL____00108);
constraint int_eq_reif(colors[9], 1, BOOL____00128) :: defines_var(BOOL____00128);
constraint int_eq_reif(colors[9], 2, BOOL____00114) :: defines_var(BOOL____00114);
constraint int_eq_reif(colors[9], 4, BOOL____00079) :: defines_var(BOOL____00079);
constraint int_eq_reif(colors[10], 1, BOOL____00134) :: defines_var(BOOL____00134);
constraint int_eq_reif(colors[10], 2, BOOL____00116) :: defines_var(BOOL____00116);
constraint int_eq_reif(colors[11], 1, BOOL____00138) :: defines_var(BOOL____00138);
constraint int_eq_reif(colors[11], 2, BOOL____00120) :: defines_var(BOOL____00120);
constraint int_eq_reif(colors[12], 1, BOOL____00142) :: defines_var(BOOL____00142);
constraint int_eq_reif(colors[12], 2, BOOL____00124) :: defines_var(BOOL____00124);
constraint int_eq_reif(colors[13], 1, BOOL____00144) :: defines_var(BOOL____00144);
constraint int_eq_reif(colors[13], 2, BOOL____00130) :: defines_var(BOOL____00130);
constraint int_eq_reif(colors[13], 4, BOOL____00081) :: defines_var(BOOL____00081);
constraint int_eq_reif(colors[14], 1, BOOL____00146) :: defines_var(BOOL____00146);
constraint int_eq_reif(colors[14], 2, BOOL____00132) :: defines_var(BOOL____00132);
constraint int_eq_reif(colors[15], 1, BOOL____00148) :: defines_var(BOOL____00148);
constraint int_eq_reif(colors[15], 2, BOOL____00136) :: defines_var(BOOL____00136);
constraint int_eq_reif(colors[16], 1, BOOL____00150) :: defines_var(BOOL____00150);
constraint int_eq_reif(colors[16], 2, BOOL____00140) :: defines_var(BOOL____00140);
constraint int_eq_reif(plants[1], 1, BOOL____00087) :: defines_var(BOOL____00087);
constraint int_eq_reif(plants[1], 2, BOOL____00089) :: defines_var(BOOL____00089);
constraint int_eq_reif(plants[1], 3, BOOL____00253) :: defines_var(BOOL____00253);
constraint int_eq_reif(plants[1], 4, BOOL____00074) :: defines_var(BOOL____00074);
constraint int_eq_reif(plants[2], 1, BOOL____00097) :: defines_var(BOOL____00097);
constraint int_eq_reif(plants[2], 2, BOOL____00091) :: defines_var(BOOL____00091);
constraint int_eq_reif(plants[2], 3, BOOL____00254) :: defines_var(BOOL____00254);
constraint int_eq_reif(plants[3], 1, BOOL____00103) :: defines_var(BOOL____00103);
constraint int_eq_reif(plants[3], 2, BOOL____00099) :: defines_var(BOOL____00099);
constraint int_eq_reif(plants[3], 3, BOOL____00255) :: defines_var(BOOL____00255);
constraint int_eq_reif(plants[4], 1, BOOL____00109) :: defines_var(BOOL____00109);
constraint int_eq_reif(plants[4], 2, BOOL____00105) :: defines_var(BOOL____00105);
constraint int_eq_reif(plants[4], 3, BOOL____00256) :: defines_var(BOOL____00256);
constraint int_eq_reif(plants[5], 1, BOOL____00111) :: defines_var(BOOL____00111);
constraint int_eq_reif(plants[5], 2, BOOL____00093) :: defines_var(BOOL____00093);
constraint int_eq_reif(plants[5], 3, BOOL____00252) :: defines_var(BOOL____00252);
constraint int_eq_reif(plants[5], 4, BOOL____00076) :: defines_var(BOOL____00076);
constraint int_eq_reif(plants[6], 1, BOOL____00117) :: defines_var(BOOL____00117);
constraint int_eq_reif(plants[6], 2, BOOL____00095) :: defines_var(BOOL____00095);
constraint int_eq_reif(plants[6], 3, BOOL____00257) :: defines_var(BOOL____00257);
constraint int_eq_reif(plants[7], 1, BOOL____00121) :: defines_var(BOOL____00121);
constraint int_eq_reif(plants[7], 2, BOOL____00101) :: defines_var(BOOL____00101);
constraint int_eq_reif(plants[7], 3, BOOL____00258) :: defines_var(BOOL____00258);
constraint int_eq_reif(plants[8], 1, BOOL____00125) :: defines_var(BOOL____00125);
constraint int_eq_reif(plants[8], 2, BOOL____00107) :: defines_var(BOOL____00107);
constraint int_eq_reif(plants[8], 3, BOOL____00259) :: defines_var(BOOL____00259);
constraint int_eq_reif(plants[9], 1, BOOL____00127) :: defines_var(BOOL____00127);
constraint int_eq_reif(plants[9], 2, BOOL____00113) :: defines_var(BOOL____00113);
constraint int_eq_reif(plants[9], 3, BOOL____00266) :: defines_var(BOOL____00266);
constraint int_eq_reif(plants[9], 4, BOOL____00078) :: defines_var(BOOL____00078);
constraint int_eq_reif(plants[10], 1, BOOL____00133) :: defines_var(BOOL____00133);
constraint int_eq_reif(plants[10], 2, BOOL____00115) :: defines_var(BOOL____00115);
constraint int_eq_reif(plants[10], 3, BOOL____00267) :: defines_var(BOOL____00267);
constraint int_eq_reif(plants[11], 1, BOOL____00137) :: defines_var(BOOL____00137);
constraint int_eq_reif(plants[11], 2, BOOL____00119) :: defines_var(BOOL____00119);
constraint int_eq_reif(plants[11], 3, BOOL____00268) :: defines_var(BOOL____00268);
constraint int_eq_reif(plants[12], 1, BOOL____00141) :: defines_var(BOOL____00141);
constraint int_eq_reif(plants[12], 2, BOOL____00123) :: defines_var(BOOL____00123);
constraint int_eq_reif(plants[12], 3, BOOL____00269) :: defines_var(BOOL____00269);
constraint int_eq_reif(plants[13], 1, BOOL____00143) :: defines_var(BOOL____00143);
constraint int_eq_reif(plants[13], 2, BOOL____00129) :: defines_var(BOOL____00129);
constraint int_eq_reif(plants[13], 3, BOOL____00276) :: defines_var(BOOL____00276);
constraint int_eq_reif(plants[13], 4, BOOL____00080) :: defines_var(BOOL____00080);
constraint int_eq_reif(plants[14], 1, BOOL____00145) :: defines_var(BOOL____00145);
constraint int_eq_reif(plants[14], 2, BOOL____00131) :: defines_var(BOOL____00131);
constraint int_eq_reif(plants[14], 3, BOOL____00277) :: defines_var(BOOL____00277);
constraint int_eq_reif(plants[15], 1, BOOL____00147) :: defines_var(BOOL____00147);
constraint int_eq_reif(plants[15], 2, BOOL____00135) :: defines_var(BOOL____00135);
constraint int_eq_reif(plants[15], 3, BOOL____00278) :: defines_var(BOOL____00278);
constraint int_eq_reif(plants[16], 1, BOOL____00149) :: defines_var(BOOL____00149);
constraint int_eq_reif(plants[16], 2, BOOL____00139) :: defines_var(BOOL____00139);
constraint int_eq_reif(plants[16], 3, BOOL____00279) :: defines_var(BOOL____00279);
constraint int_lin_eq([-1, 1], [INT____00005, pos____00001[2]], -4) :: defines_var(INT____00005) :: domain;
constraint int_lin_eq([-1, 1], [INT____00008, pos____00001[3]], -8) :: defines_var(INT____00008) :: domain;
constraint int_lin_eq([-1, 1], [INT____00011, pos____00001[4]], -12) :: defines_var(INT____00011) :: domain;
constraint int_lin_eq([-1, 1], [INT____00016, pos____00001[6]], -4) :: defines_var(INT____00016) :: domain;
constraint int_lin_eq([-1, 1], [INT____00019, pos____00001[7]], -8) :: defines_var(INT____00019) :: domain;
constraint int_lin_eq([-1, 1], [INT____00022, pos____00001[8]], -12) :: defines_var(INT____00022) :: domain;
constraint int_lin_eq([-1, 1], [INT____00027, pos____00001[10]], -4) :: defines_var(INT____00027) :: domain;
constraint int_lin_eq([-1, 1], [INT____00030, pos____00001[11]], -8) :: defines_var(INT____00030) :: domain;
constraint int_lin_eq([-1, 1], [INT____00033, pos____00001[12]], -12) :: defines_var(INT____00033) :: domain;
constraint int_lin_eq([-1, 1], [INT____00038, pos____00001[14]], -4) :: defines_var(INT____00038) :: domain;
constraint int_lin_eq([-1, 1], [INT____00041, pos____00001[15]], -8) :: defines_var(INT____00041) :: domain;
constraint int_lin_eq([-1, 1], [INT____00044, pos____00001[16]], -12) :: defines_var(INT____00044) :: domain;
constraint int_lin_eq([-1, 1], [INT____00047, pos____00001[2]], -4) :: defines_var(INT____00047) :: domain;
constraint int_lin_eq([-1, 1], [INT____00049, pos____00001[3]], -8) :: defines_var(INT____00049) :: domain;
constraint int_lin_eq([-1, 1], [INT____00051, pos____00001[4]], -12) :: defines_var(INT____00051) :: domain;
constraint int_lin_eq([-1, 1], [INT____00054, pos____00001[6]], -4) :: defines_var(INT____00054) :: domain;
constraint int_lin_eq([-1, 1], [INT____00056, pos____00001[7]], -8) :: defines_var(INT____00056) :: domain;
constraint int_lin_eq([-1, 1], [INT____00058, pos____00001[8]], -12) :: defines_var(INT____00058) :: domain;
constraint int_lin_eq([-1, 1], [INT____00061, pos____00001[10]], -4) :: defines_var(INT____00061) :: domain;
constraint int_lin_eq([-1, 1], [INT____00063, pos____00001[11]], -8) :: defines_var(INT____00063) :: domain;
constraint int_lin_eq([-1, 1], [INT____00065, pos____00001[12]], -12) :: defines_var(INT____00065) :: domain;
constraint int_lin_eq([-1, 1], [INT____00068, pos____00001[14]], -4) :: defines_var(INT____00068) :: domain;
constraint int_lin_eq([-1, 1], [INT____00070, pos____00001[15]], -8) :: defines_var(INT____00070) :: domain;
constraint int_lin_eq([-1, 1], [INT____00072, pos____00001[16]], -12) :: defines_var(INT____00072) :: domain;
solve :: int_search([plants[1], plants[2], plants[3], plants[4], plants[5], plants[6], plants[7], plants[8], plants[9], plants[10], plants[11], plants[12], plants[13], plants[14], plants[15], plants[16], colors[1], colors[2], colors[3], colors[4], colors[5], colors[6], colors[7], colors[8], colors[9], colors[10], colors[11], colors[12], colors[13], colors[14], colors[15], colors[16]], first_fail, indomain_min, complete) satisfy;