00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #include "test/flatzinc.hh"
00039
00040 namespace Test { namespace FlatZinc {
00041
00042 namespace {
00044 class Create {
00045 public:
00046
00048 Create(void) {
00049 (void) new FlatZincTest("blocksworld::1",
00050 std::string("predicate all_different_int(array [int] of var int: x);\n\
00051 predicate all_equal_int(array [int] of var int: x);\n\
00052 predicate among(var int: n, array [int] of var int: x, set of int: v);\n\
00053 predicate array_bool_lq(array [int] of var bool: x, array [int] of var bool: y);\n\
00054 predicate array_bool_lt(array [int] of var bool: x, array [int] of var bool: y);\n\
00055 predicate array_int_lq(array [int] of var int: x, array [int] of var int: y);\n\
00056 predicate array_int_lt(array [int] of var int: x, array [int] of var int: y);\n\
00057 predicate array_set_partition(array [int] of var set of int: S, set of int: universe);\n\
00058 predicate at_least_int(int: n, array [int] of var int: x, int: v);\n\
00059 predicate at_most_int(int: n, array [int] of var int: x, int: v);\n\
00060 predicate bool_lin_ge(array [int] of int: a, array [int] of var bool: x, var int: c);\n\
00061 predicate bool_lin_gt(array [int] of int: a, array [int] of var bool: x, var int: c);\n\
00062 predicate bool_lin_lt(array [int] of int: a, array [int] of var bool: x, var int: c);\n\
00063 predicate bool_lin_ne(array [int] of int: a, array [int] of var bool: x, var int: c);\n\
00064 predicate count(array [int] of var int: x, var int: y, var int: c);\n\
00065 predicate count_reif(array [int] of var int: x, var int: y, var int: c, var bool: b);\n\
00066 predicate cumulatives(array [int] of var int: s, array [int] of var int: d, array [int] of var int: r, var int: b);\n\
00067 predicate decreasing_bool(array [int] of var bool: x);\n\
00068 predicate decreasing_int(array [int] of var int: x);\n\
00069 predicate disjoint(var set of int: s1, var set of int: s2);\n\
00070 predicate gecode_array_set_element_union(var set of int: x, array [int] of var set of int: y, var set of int: z);\n\
00071 predicate gecode_bin_packing_load(array [int] of var int: l, array [int] of var int: bin, array [int] of int: w, int: minIndex);\n\
00072 predicate gecode_circuit(int: offset, array [int] of var int: x);\n\
00073 predicate gecode_int_set_channel(array [int] of var int: x, int: xoff, array [int] of var set of int: y, int: yoff);\n\
00074 predicate gecode_inverse_set(array [int] of var set of int: f, array [int] of var set of int: invf, int: xoff, int: yoff);\n\
00075 predicate gecode_link_set_to_booleans(var set of int: s, array [int] of var bool: b, int: idx);\n\
00076 predicate gecode_member_bool_reif(array [int] of var bool: x, var bool: y, var bool: b);\n\
00077 predicate gecode_member_int_reif(array [int] of var int: x, var int: y, var bool: b);\n\
00078 predicate gecode_nooverlap(array [int] of var int: x, array [int] of var int: w, array [int] of var int: y, array [int] of var int: h);\n\
00079 predicate gecode_precede(array [int] of var int: x, int: s, int: t);\n\
00080 predicate gecode_precede_set(array [int] of var set of int: x, int: s, int: t);\n\
00081 predicate gecode_range(array [int] of var int: x, int: xoff, var set of int: s, var set of int: t);\n\
00082 predicate gecode_set_weights(array [int] of int: csi, array [int] of int: cs, var set of int: x, var int: y);\n\
00083 predicate global_cardinality(array [int] of var int: x, array [int] of int: cover, array [int] of var int: counts);\n\
00084 predicate global_cardinality_closed(array [int] of var int: x, array [int] of int: cover, array [int] of var int: counts);\n\
00085 predicate global_cardinality_low_up(array [int] of var int: x, array [int] of int: cover, array [int] of int: lbound, array [int] of int: ubound);\n\
00086 predicate global_cardinality_low_up_closed(array [int] of var int: x, array [int] of int: cover, array [int] of int: lbound, array [int] of int: ubound);\n\
00087 predicate increasing_bool(array [int] of var bool: x);\n\
00088 predicate increasing_int(array [int] of var int: x);\n\
00089 predicate inverse_offsets(array [int] of var int: f, int: foff, array [int] of var int: invf, int: invfoff);\n\
00090 predicate maximum_int(var int: m, array [int] of var int: x);\n\
00091 predicate member_bool(array [int] of var bool: x, var bool: y);\n\
00092 predicate member_int(array [int] of var int: x, var int: y);\n\
00093 predicate minimum_int(var int: m, array [int] of var int: x);\n\
00094 predicate nvalue(var int: n, array [int] of var int: x);\n\
00095 predicate regular(array [int] of var int: x, int: Q, int: S, array [int, int] of int: d, int: q0, set of int: F);\n\
00096 predicate sort(array [int] of var int: x, array [int] of var int: y);\n\
00097 predicate table_bool(array [int] of var bool: x, array [int, int] of bool: t);\n\
00098 predicate table_int(array [int] of var int: x, array [int, int] of int: t);\n\
00099 array [1..3] of int: final_loc = [2, 3, 0];\n\
00100 array [1..3] of int: initial_loc = [2, 0, 1];\n")+
00101 "var bool: BOOL____00001 :: is_defined_var :: var_is_introduced;\n\
00102 var bool: BOOL____00002 :: is_defined_var :: var_is_introduced;\n\
00103 var bool: BOOL____00003 :: is_defined_var :: var_is_introduced;\n\
00104 var bool: BOOL____00004 :: is_defined_var :: var_is_introduced;\n\
00105 var bool: BOOL____00005 :: is_defined_var :: var_is_introduced;\n\
00106 var bool: BOOL____00006 :: is_defined_var :: var_is_introduced;\n\
00107 var bool: BOOL____00007 :: is_defined_var :: var_is_introduced;\n\
00108 var bool: BOOL____00008 :: is_defined_var :: var_is_introduced;\n\
00109 var bool: BOOL____00009 :: is_defined_var :: var_is_introduced;\n\
00110 var bool: BOOL____00010 :: is_defined_var :: var_is_introduced;\n\
00111 var bool: BOOL____00011 :: is_defined_var :: var_is_introduced;\n\
00112 var bool: BOOL____00012 :: is_defined_var :: var_is_introduced;\n\
00113 var bool: BOOL____00013 :: is_defined_var :: var_is_introduced;\n\
00114 var bool: BOOL____00014 :: is_defined_var :: var_is_introduced;\n\
00115 var bool: BOOL____00015 :: is_defined_var :: var_is_introduced;\n\
00116 var bool: BOOL____00016 :: is_defined_var :: var_is_introduced;\n\
00117 var bool: BOOL____00017 :: is_defined_var :: var_is_introduced;\n\
00118 var bool: BOOL____00018 :: is_defined_var :: var_is_introduced;\n\
00119 var bool: BOOL____00019 :: is_defined_var :: var_is_introduced;\n\
00120 var bool: BOOL____00020 :: is_defined_var :: var_is_introduced;\n\
00121 var bool: BOOL____00021 :: is_defined_var :: var_is_introduced;\n\
00122 var bool: BOOL____00022 :: is_defined_var :: var_is_introduced;\n\
00123 var bool: BOOL____00023 :: is_defined_var :: var_is_introduced;\n\
00124 var bool: BOOL____00024 :: is_defined_var :: var_is_introduced;\n\
00125 var bool: BOOL____00025 :: is_defined_var :: var_is_introduced;\n\
00126 var bool: BOOL____00026 :: is_defined_var :: var_is_introduced;\n\
00127 var bool: BOOL____00027 :: is_defined_var :: var_is_introduced;\n\
00128 var bool: BOOL____00028 :: is_defined_var :: var_is_introduced;\n\
00129 var bool: BOOL____00029 :: is_defined_var :: var_is_introduced;\n\
00130 var bool: BOOL____00030 :: is_defined_var :: var_is_introduced;\n\
00131 var bool: BOOL____00031 :: is_defined_var :: var_is_introduced;\n\
00132 var bool: BOOL____00032 :: is_defined_var :: var_is_introduced;\n\
00133 var bool: BOOL____00033 :: is_defined_var :: var_is_introduced;\n\
00134 var bool: BOOL____00034 :: is_defined_var :: var_is_introduced;\n\
00135 var bool: BOOL____00035 :: is_defined_var :: var_is_introduced;\n\
00136 var bool: BOOL____00036 :: is_defined_var :: var_is_introduced;\n\
00137 var bool: BOOL____00037 :: is_defined_var :: var_is_introduced;\n\
00138 var bool: BOOL____00038 :: is_defined_var :: var_is_introduced;\n\
00139 var bool: BOOL____00039 :: is_defined_var :: var_is_introduced;\n\
00140 var bool: BOOL____00040 :: is_defined_var :: var_is_introduced;\n\
00141 var bool: BOOL____00041 :: is_defined_var :: var_is_introduced;\n\
00142 var bool: BOOL____00042 :: is_defined_var :: var_is_introduced;\n\
00143 var bool: BOOL____00043 :: is_defined_var :: var_is_introduced;\n\
00144 var bool: BOOL____00044 :: is_defined_var :: var_is_introduced;\n\
00145 var bool: BOOL____00045 :: is_defined_var :: var_is_introduced;\n\
00146 var bool: BOOL____00046 :: is_defined_var :: var_is_introduced;\n\
00147 var bool: BOOL____00047 :: is_defined_var :: var_is_introduced;\n\
00148 var bool: BOOL____00048 :: is_defined_var :: var_is_introduced;\n\
00149 var bool: BOOL____00049 :: is_defined_var :: var_is_introduced;\n\
00150 var bool: BOOL____00050 :: is_defined_var :: var_is_introduced;\n\
00151 var bool: BOOL____00051 :: is_defined_var :: var_is_introduced;\n\
00152 var bool: BOOL____00052 :: is_defined_var :: var_is_introduced;\n\
00153 var bool: BOOL____00053 :: is_defined_var :: var_is_introduced;\n\
00154 var bool: BOOL____00054 :: is_defined_var :: var_is_introduced;\n\
00155 var bool: BOOL____00055 :: is_defined_var :: var_is_introduced;\n\
00156 var bool: BOOL____00056 :: is_defined_var :: var_is_introduced;\n\
00157 var bool: BOOL____00057 :: is_defined_var :: var_is_introduced;\n\
00158 var bool: BOOL____00058 :: is_defined_var :: var_is_introduced;\n\
00159 var bool: BOOL____00059 :: is_defined_var :: var_is_introduced;\n\
00160 var bool: BOOL____00060 :: is_defined_var :: var_is_introduced;\n\
00161 var bool: BOOL____00061 :: is_defined_var :: var_is_introduced;\n\
00162 var bool: BOOL____00062 :: is_defined_var :: var_is_introduced;\n\
00163 var bool: BOOL____00063 :: is_defined_var :: var_is_introduced;\n\
00164 var bool: BOOL____00064 :: is_defined_var :: var_is_introduced;\n\
00165 var bool: BOOL____00065 :: is_defined_var :: var_is_introduced;\n\
00166 var bool: BOOL____00066 :: is_defined_var :: var_is_introduced;\n\
00167 var bool: BOOL____00067 :: is_defined_var :: var_is_introduced;\n\
00168 var bool: BOOL____00068 :: is_defined_var :: var_is_introduced;\n\
00169 var bool: BOOL____00069 :: is_defined_var :: var_is_introduced;\n\
00170 var bool: BOOL____00070 :: is_defined_var :: var_is_introduced;\n\
00171 var bool: BOOL____00071 :: is_defined_var :: var_is_introduced;\n\
00172 var bool: BOOL____00072 :: is_defined_var :: var_is_introduced;\n\
00173 var bool: BOOL____00073 :: is_defined_var :: var_is_introduced;\n\
00174 var bool: BOOL____00074 :: is_defined_var :: var_is_introduced;\n\
00175 var bool: BOOL____00075 :: is_defined_var :: var_is_introduced;\n\
00176 var bool: BOOL____00076 :: is_defined_var :: var_is_introduced;\n\
00177 var bool: BOOL____00077 :: is_defined_var :: var_is_introduced;\n\
00178 var bool: BOOL____00078 :: is_defined_var :: var_is_introduced;\n\
00179 var bool: BOOL____00079 :: is_defined_var :: var_is_introduced;\n\
00180 var bool: BOOL____00080 :: is_defined_var :: var_is_introduced;\n\
00181 var bool: BOOL____00081 :: is_defined_var :: var_is_introduced;\n\
00182 var bool: BOOL____00082 :: is_defined_var :: var_is_introduced;\n\
00183 var bool: BOOL____00083 :: is_defined_var :: var_is_introduced;\n\
00184 var bool: BOOL____00084 :: is_defined_var :: var_is_introduced;\n\
00185 var bool: BOOL____00085 :: is_defined_var :: var_is_introduced;\n\
00186 var bool: BOOL____00086 :: is_defined_var :: var_is_introduced;\n\
00187 var bool: BOOL____00087 :: is_defined_var :: var_is_introduced;\n\
00188 var bool: BOOL____00088 :: is_defined_var :: var_is_introduced;\n\
00189 var bool: BOOL____00089 :: is_defined_var :: var_is_introduced;\n\
00190 var bool: BOOL____00090 :: is_defined_var :: var_is_introduced;\n"+
00191 "array [1..12] of var -3..3: on :: output_array([1..4, 1..3]);\n\
00192 constraint all_different_int([on[1], on[2], on[3]]);\n\
00193 constraint all_different_int([on[4], on[5], on[6]]);\n\
00194 constraint all_different_int([on[7], on[8], on[9]]);\n\
00195 constraint all_different_int([on[10], on[11], on[12]]);\n\
00196 constraint array_bool_and([BOOL____00007, BOOL____00006, BOOL____00001], BOOL____00008) :: defines_var(BOOL____00008);\n\
00197 constraint array_bool_and([BOOL____00017, BOOL____00011, BOOL____00016], BOOL____00018) :: defines_var(BOOL____00018);\n\
00198 constraint array_bool_and([BOOL____00021, BOOL____00027, BOOL____00026], BOOL____00028) :: defines_var(BOOL____00028);\n\
00199 constraint array_bool_and([BOOL____00037, BOOL____00036, BOOL____00031], BOOL____00038) :: defines_var(BOOL____00038);\n\
00200 constraint array_bool_and([BOOL____00047, BOOL____00041, BOOL____00046], BOOL____00048) :: defines_var(BOOL____00048);\n\
00201 constraint array_bool_and([BOOL____00051, BOOL____00057, BOOL____00056], BOOL____00058) :: defines_var(BOOL____00058);\n\
00202 constraint array_bool_and([BOOL____00067, BOOL____00066, BOOL____00061], BOOL____00068) :: defines_var(BOOL____00068);\n\
00203 constraint array_bool_and([BOOL____00077, BOOL____00071, BOOL____00076], BOOL____00078) :: defines_var(BOOL____00078);\n\
00204 constraint array_bool_and([BOOL____00081, BOOL____00087, BOOL____00086], BOOL____00088) :: defines_var(BOOL____00088);\n\
00205 constraint array_bool_and([BOOL____00009, BOOL____00004, BOOL____00003, BOOL____00002], BOOL____00010) :: defines_var(BOOL____00010);\n\
00206 constraint array_bool_and([BOOL____00019, BOOL____00014, BOOL____00013, BOOL____00012], BOOL____00020) :: defines_var(BOOL____00020);\n\
00207 constraint array_bool_and([BOOL____00029, BOOL____00024, BOOL____00023, BOOL____00022], BOOL____00030) :: defines_var(BOOL____00030);\n\
00208 constraint array_bool_and([BOOL____00039, BOOL____00034, BOOL____00033, BOOL____00032], BOOL____00040) :: defines_var(BOOL____00040);\n\
00209 constraint array_bool_and([BOOL____00049, BOOL____00044, BOOL____00043, BOOL____00042], BOOL____00050) :: defines_var(BOOL____00050);\n\
00210 constraint array_bool_and([BOOL____00059, BOOL____00054, BOOL____00053, BOOL____00052], BOOL____00060) :: defines_var(BOOL____00060);\n\
00211 constraint array_bool_and([BOOL____00069, BOOL____00064, BOOL____00063, BOOL____00062], BOOL____00070) :: defines_var(BOOL____00070);\n\
00212 constraint array_bool_and([BOOL____00079, BOOL____00074, BOOL____00073, BOOL____00072], BOOL____00080) :: defines_var(BOOL____00080);\n\
00213 constraint array_bool_and([BOOL____00089, BOOL____00084, BOOL____00083, BOOL____00082], BOOL____00090) :: defines_var(BOOL____00090);\n\
00214 constraint array_bool_or([BOOL____00008, BOOL____00005], BOOL____00009) :: defines_var(BOOL____00009);\n\
00215 constraint array_bool_or([BOOL____00018, BOOL____00015], BOOL____00019) :: defines_var(BOOL____00019);\n\
00216 constraint array_bool_or([BOOL____00028, BOOL____00025], BOOL____00029) :: defines_var(BOOL____00029);\n\
00217 constraint array_bool_or([BOOL____00038, BOOL____00035], BOOL____00039) :: defines_var(BOOL____00039);\n\
00218 constraint array_bool_or([BOOL____00048, BOOL____00045], BOOL____00049) :: defines_var(BOOL____00049);\n\
00219 constraint array_bool_or([BOOL____00058, BOOL____00055], BOOL____00059) :: defines_var(BOOL____00059);\n\
00220 constraint array_bool_or([BOOL____00068, BOOL____00065], BOOL____00069) :: defines_var(BOOL____00069);\n\
00221 constraint array_bool_or([BOOL____00078, BOOL____00075], BOOL____00079) :: defines_var(BOOL____00079);\n\
00222 constraint array_bool_or([BOOL____00088, BOOL____00085], BOOL____00089) :: defines_var(BOOL____00089);\n\
00223 constraint bool_le(BOOL____00001, BOOL____00010);\n\
00224 constraint bool_le(BOOL____00011, BOOL____00020);\n\
00225 constraint bool_le(BOOL____00021, BOOL____00030);\n\
00226 constraint bool_le(BOOL____00031, BOOL____00040);\n\
00227 constraint bool_le(BOOL____00041, BOOL____00050);\n\
00228 constraint bool_le(BOOL____00051, BOOL____00060);\n\
00229 constraint bool_le(BOOL____00061, BOOL____00070);\n\
00230 constraint bool_le(BOOL____00071, BOOL____00080);\n\
00231 constraint bool_le(BOOL____00081, BOOL____00090);\n\
00232 constraint int_eq(on[1], 2);\n\
00233 constraint int_eq(on[2], -2);\n\
00234 constraint int_eq(on[3], 1);\n\
00235 constraint int_eq(on[10], 2);\n\
00236 constraint int_eq(on[11], 3);\n\
00237 constraint int_eq(on[12], -3);\n"+
00238 "constraint int_lt_reif(on[4], 0, BOOL____00005) :: defines_var(BOOL____00005);\n\
00239 constraint int_lt_reif(on[5], 0, BOOL____00015) :: defines_var(BOOL____00015);\n\
00240 constraint int_lt_reif(on[6], 0, BOOL____00025) :: defines_var(BOOL____00025);\n\
00241 constraint int_lt_reif(on[7], 0, BOOL____00035) :: defines_var(BOOL____00035);\n\
00242 constraint int_lt_reif(on[8], 0, BOOL____00045) :: defines_var(BOOL____00045);\n\
00243 constraint int_lt_reif(on[9], 0, BOOL____00055) :: defines_var(BOOL____00055);\n\
00244 constraint int_lt_reif(on[10], 0, BOOL____00065) :: defines_var(BOOL____00065);\n\
00245 constraint int_lt_reif(on[11], 0, BOOL____00075) :: defines_var(BOOL____00075);\n\
00246 constraint int_lt_reif(on[12], 0, BOOL____00085) :: defines_var(BOOL____00085);\n\
00247 constraint int_ne_reif(on[1], 1, BOOL____00002) :: defines_var(BOOL____00002);\n\
00248 constraint int_ne_reif(on[1], 2, BOOL____00012) :: defines_var(BOOL____00012);\n\
00249 constraint int_ne_reif(on[1], 3, BOOL____00022) :: defines_var(BOOL____00022);\n\
00250 constraint int_ne_reif(on[1], on[4], BOOL____00001) :: defines_var(BOOL____00001);\n\
00251 constraint int_ne_reif(on[1], on[5], BOOL____00016) :: defines_var(BOOL____00016);\n\
00252 constraint int_ne_reif(on[1], on[6], BOOL____00026) :: defines_var(BOOL____00026);\n\
00253 constraint int_ne_reif(on[2], 1, BOOL____00003) :: defines_var(BOOL____00003);\n\
00254 constraint int_ne_reif(on[2], 2, BOOL____00013) :: defines_var(BOOL____00013);\n\
00255 constraint int_ne_reif(on[2], 3, BOOL____00023) :: defines_var(BOOL____00023);\n\
00256 constraint int_ne_reif(on[2], on[4], BOOL____00006) :: defines_var(BOOL____00006);\n\
00257 constraint int_ne_reif(on[2], on[5], BOOL____00011) :: defines_var(BOOL____00011);\n\
00258 constraint int_ne_reif(on[2], on[6], BOOL____00027) :: defines_var(BOOL____00027);\n\
00259 constraint int_ne_reif(on[3], 1, BOOL____00004) :: defines_var(BOOL____00004);\n\
00260 constraint int_ne_reif(on[3], 2, BOOL____00014) :: defines_var(BOOL____00014);\n\
00261 constraint int_ne_reif(on[3], 3, BOOL____00024) :: defines_var(BOOL____00024);\n\
00262 constraint int_ne_reif(on[3], on[4], BOOL____00007) :: defines_var(BOOL____00007);\n\
00263 constraint int_ne_reif(on[3], on[5], BOOL____00017) :: defines_var(BOOL____00017);\n\
00264 constraint int_ne_reif(on[3], on[6], BOOL____00021) :: defines_var(BOOL____00021);\n\
00265 constraint int_ne_reif(on[4], 1, BOOL____00032) :: defines_var(BOOL____00032);\n\
00266 constraint int_ne_reif(on[4], 2, BOOL____00042) :: defines_var(BOOL____00042);\n\
00267 constraint int_ne_reif(on[4], 3, BOOL____00052) :: defines_var(BOOL____00052);\n\
00268 constraint int_ne_reif(on[4], on[7], BOOL____00031) :: defines_var(BOOL____00031);\n\
00269 constraint int_ne_reif(on[4], on[8], BOOL____00046) :: defines_var(BOOL____00046);\n\
00270 constraint int_ne_reif(on[4], on[9], BOOL____00056) :: defines_var(BOOL____00056);\n\
00271 constraint int_ne_reif(on[5], 1, BOOL____00033) :: defines_var(BOOL____00033);\n\
00272 constraint int_ne_reif(on[5], 2, BOOL____00043) :: defines_var(BOOL____00043);\n\
00273 constraint int_ne_reif(on[5], 3, BOOL____00053) :: defines_var(BOOL____00053);\n\
00274 constraint int_ne_reif(on[5], on[7], BOOL____00036) :: defines_var(BOOL____00036);\n\
00275 constraint int_ne_reif(on[5], on[8], BOOL____00041) :: defines_var(BOOL____00041);\n\
00276 constraint int_ne_reif(on[5], on[9], BOOL____00057) :: defines_var(BOOL____00057);\n\
00277 constraint int_ne_reif(on[6], 1, BOOL____00034) :: defines_var(BOOL____00034);\n\
00278 constraint int_ne_reif(on[6], 2, BOOL____00044) :: defines_var(BOOL____00044);\n\
00279 constraint int_ne_reif(on[6], 3, BOOL____00054) :: defines_var(BOOL____00054);\n\
00280 constraint int_ne_reif(on[6], on[7], BOOL____00037) :: defines_var(BOOL____00037);\n\
00281 constraint int_ne_reif(on[6], on[8], BOOL____00047) :: defines_var(BOOL____00047);\n\
00282 constraint int_ne_reif(on[6], on[9], BOOL____00051) :: defines_var(BOOL____00051);\n\
00283 constraint int_ne_reif(on[7], 1, BOOL____00062) :: defines_var(BOOL____00062);\n\
00284 constraint int_ne_reif(on[7], 2, BOOL____00072) :: defines_var(BOOL____00072);\n\
00285 constraint int_ne_reif(on[7], 3, BOOL____00082) :: defines_var(BOOL____00082);\n\
00286 constraint int_ne_reif(on[7], on[10], BOOL____00061) :: defines_var(BOOL____00061);\n\
00287 constraint int_ne_reif(on[7], on[11], BOOL____00076) :: defines_var(BOOL____00076);\n\
00288 constraint int_ne_reif(on[7], on[12], BOOL____00086) :: defines_var(BOOL____00086);\n\
00289 constraint int_ne_reif(on[8], 1, BOOL____00063) :: defines_var(BOOL____00063);\n\
00290 constraint int_ne_reif(on[8], 2, BOOL____00073) :: defines_var(BOOL____00073);\n\
00291 constraint int_ne_reif(on[8], 3, BOOL____00083) :: defines_var(BOOL____00083);\n\
00292 constraint int_ne_reif(on[8], on[10], BOOL____00066) :: defines_var(BOOL____00066);\n\
00293 constraint int_ne_reif(on[8], on[11], BOOL____00071) :: defines_var(BOOL____00071);\n\
00294 constraint int_ne_reif(on[8], on[12], BOOL____00087) :: defines_var(BOOL____00087);\n\
00295 constraint int_ne_reif(on[9], 1, BOOL____00064) :: defines_var(BOOL____00064);\n\
00296 constraint int_ne_reif(on[9], 2, BOOL____00074) :: defines_var(BOOL____00074);\n\
00297 constraint int_ne_reif(on[9], 3, BOOL____00084) :: defines_var(BOOL____00084);\n\
00298 constraint int_ne_reif(on[9], on[10], BOOL____00067) :: defines_var(BOOL____00067);\n\
00299 constraint int_ne_reif(on[9], on[11], BOOL____00077) :: defines_var(BOOL____00077);\n\
00300 constraint int_ne_reif(on[9], on[12], BOOL____00081) :: defines_var(BOOL____00081);\n\
00301 constraint set_in(on[1], {-1, 2, 3});\n\
00302 constraint set_in(on[2], {-2, 1, 3});\n\
00303 constraint set_in(on[3], {-3, 1, 2});\n\
00304 constraint set_in(on[4], {-1, 2, 3});\n\
00305 constraint set_in(on[5], {-2, 1, 3});\n\
00306 constraint set_in(on[6], {-3, 1, 2});\n\
00307 constraint set_in(on[7], {-1, 2, 3});\n\
00308 constraint set_in(on[8], {-2, 1, 3});\n\
00309 constraint set_in(on[9], {-3, 1, 2});\n\
00310 constraint set_in(on[10], {-1, 2, 3});\n\
00311 constraint set_in(on[11], {-2, 1, 3});\n\
00312 constraint set_in(on[12], {-3, 1, 2});\n\
00313 solve :: int_search([on[1], on[2], on[3], on[4], on[5], on[6], on[7], on[8], on[9], on[10], on[11], on[12]], first_fail, indomain_split, complete) satisfy;\n\
00314 ", "on = array2d(1..4, 1..3, [2, -2, 1, 2, -2, -3, -1, -2, -3, 2, 3, -3]);\n\
00315 ----------\n\
00316 ");
00317 }
00318 };
00319
00320 Create c;
00321 }
00322
00323 }}
00324
00325