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 #include "test/flatzinc.hh"
00035
00036 namespace Test { namespace FlatZinc {
00037
00038 namespace {
00040 class Create {
00041 public:
00042
00044 Create(void) {
00045 (void) new FlatZincTest("sat_arith1",
00046 "\n\
00047 var bool: v_1;\n\
00048 var bool: v_2;\n\
00049 var bool: v_3;\n\
00050 var bool: v_4;\n\
00051 var bool: v_5;\n\
00052 var bool: v_6;\n\
00053 var bool: v_7;\n\
00054 var bool: v_8;\n\
00055 var bool: v_9;\n\
00056 var bool: v_10;\n\
00057 var bool: v_11;\n\
00058 var bool: v_12;\n\
00059 var bool: v_13;\n\
00060 var bool: v_14;\n\
00061 var bool: v_15;\n\
00062 var bool: v_16;\n\
00063 var bool: v_17;\n\
00064 var bool: v_18;\n\
00065 var bool: v_19;\n\
00066 var bool: v_20;\n\
00067 var bool: v_21;\n\
00068 var bool: v_22;\n\
00069 var bool: v_23;\n\
00070 var bool: v_24;\n\
00071 var bool: v_25;\n\
00072 var bool: v_26;\n\
00073 var bool: v_27;\n\
00074 var bool: v_28;\n\
00075 var bool: v_29;\n\
00076 var bool: v_30;\n\
00077 var bool: v_31;\n\
00078 var bool: v_32;\n\
00079 var bool: v_33;\n\
00080 var bool: v_34;\n\
00081 var bool: v_35;\n\
00082 var bool: v_36;\n\
00083 var bool: v_37;\n\
00084 var bool: v_38;\n\
00085 var bool: v_39;\n\
00086 var bool: v_40;\n\
00087 var bool: v_41;\n\
00088 var bool: v_42;\n\
00089 var bool: v_43;\n\
00090 var bool: v_44;\n\
00091 var bool: v_45;\n\
00092 var bool: v_46;\n\
00093 var bool: v_47;\n\
00094 var bool: v_48;\n\
00095 var bool: v_49;\n\
00096 var bool: v_50;\n\
00097 var bool: v_51;\n\
00098 var bool: v_52;\n\
00099 var bool: v_53;\n\
00100 var bool: v_54;\n\
00101 var bool: v_55;\n\
00102 var bool: v_56;\n\
00103 var bool: v_57;\n\
00104 var bool: v_58;\n\
00105 var bool: v_59;\n\
00106 var bool: v_60;\n\
00107 var bool: v_61;\n\
00108 var bool: v_62;\n\
00109 var bool: v_63;\n\
00110 var bool: v_64;\n\
00111 var bool: v_65;\n\
00112 var bool: v_66;\n\
00113 var bool: v_67;\n\
00114 var bool: v_68;\n\
00115 var bool: v_69;\n\
00116 var bool: v_70;\n\
00117 var bool: v_71;\n\
00118 var bool: v_72;\n\
00119 var bool: v_73;\n\
00120 var bool: v_74;\n\
00121 var bool: v_75;\n\
00122 var bool: v_76;\n\
00123 var bool: v_77;\n\
00124 var bool: v_78;\n\
00125 var bool: v_79;\n\
00126 var bool: v_80;\n\
00127 var bool: v_81;\n\
00128 var bool: v_82;\n\
00129 var bool: v_83;\n\
00130 var bool: v_84;\n\
00131 var bool: v_85;\n\
00132 var bool: v_86;\n\
00133 var bool: v_87;\n\
00134 var bool: v_88;\n\
00135 var bool: v_89;\n\
00136 var bool: v_90;\n\
00137 var bool: v_91;\n\
00138 var bool: v_92;\n\
00139 var bool: v_93;\n\
00140 var bool: v_94;\n\
00141 var bool: v_95;\n\
00142 var bool: v_96;\n\
00143 var bool: v_97;\n\
00144 var bool: v_98;\n\
00145 var bool: v_99;\n\
00146 var bool: v_100;\n\
00147 var bool: v_101;\n\
00148 var bool: v_102;\n\
00149 var bool: v_103;\n\
00150 var bool: v_104;\n\
00151 var bool: v_105;\n\
00152 var bool: v_106;\n\
00153 var bool: v_107;\n\
00154 var bool: v_108;\n\
00155 var bool: v_109;\n\
00156 var bool: v_110;\n\
00157 var bool: v_111;\n\
00158 var bool: v_112;\n\
00159 var bool: v_113;\n\
00160 var bool: v_114;\n\
00161 var bool: v_115;\n\
00162 var bool: v_116;\n\
00163 var bool: v_117;\n\
00164 var bool: v_118;\n\
00165 var bool: v_119;\n\
00166 var bool: v_120;\n\
00167 var bool: v_121;\n\
00168 var bool: v_122;\n\
00169 var bool: v_123;\n\
00170 var bool: v_124;\n\
00171 var bool: v_125;\n\
00172 var bool: v_126;\n\
00173 var bool: v_127;\n\
00174 var bool: v_128;\n\
00175 var bool: v_129;\n\
00176 var bool: v_130;\n\
00177 var bool: v_131;\n\
00178 var bool: v_132;\n\
00179 var bool: v_133;\n\
00180 var bool: v_134;\n\
00181 var bool: v_135;\n\
00182 var bool: v_136;\n\
00183 var bool: v_137;\n\
00184 var bool: v_138;\n\
00185 var bool: v_139;\n\
00186 var bool: v_140;\n\
00187 var bool: v_141;\n\
00188 var bool: v_142;\n\
00189 var bool: v_143;\n\
00190 var bool: v_144;\n\
00191 var bool: v_145;\n\
00192 var bool: v_146;\n\
00193 var bool: v_147;\n\
00194 var bool: v_148;\n\
00195 var bool: v_149;\n\
00196 var bool: v_150;\n\
00197 var bool: v_151;\n\
00198 var bool: v_152;\n\
00199 var bool: v_153;\n\
00200 array [1..8] of var bool: a :: output_array([1..8]) =\n\
00201 [v_8, v_7, v_6, v_5, v_4, v_3, v_2, v_1];\n\
00202 array [1..8] of var bool: b :: output_array([1..8]) =\n\
00203 [v_28, v_27, v_26, v_25, v_24, v_23, v_22, v_21];\n\
00204 constraint bool_eq(false, v_4);\n\
00205 constraint bool_eq(false, v_5);\n\
00206 constraint bool_eq(false, v_6);\n\
00207 constraint bool_eq(false, v_7);\n\
00208 constraint bool_eq(false, v_8);\n\
00209 constraint bool_eq(false, v_4);\n\
00210 constraint bool_eq(v_4, v_9);\n\
00211 constraint bool_not(v_4, v_10);\n\
00212 constraint bool_eq(v_11, false);\n\
00213 constraint bool_not(v_3, v_12);\n\
00214 constraint bool_not(v_2, v_13);\n\
00215 constraint bool_eq(v_2, v_14);\n\
00216 constraint bool_not(v_1, v_15);\n\
00217 constraint bool_or(v_9, v_16, true);\n\
00218 constraint bool_and(v_10, v_17, v_16);\n\
00219 constraint bool_or(v_11, v_18, v_17);\n\
00220 constraint bool_and(v_12, v_19, v_18);\n\
00221 constraint bool_or(v_13, v_20, v_19);\n\
00222 constraint bool_and(v_14, v_15, v_20);\n\
00223 constraint bool_eq(false, v_24);\n\
00224 constraint bool_eq(false, v_25);\n\
00225 constraint bool_eq(false, v_26);\n\
00226 constraint bool_eq(false, v_27);\n\
00227 constraint bool_eq(false, v_28);\n\
00228 constraint bool_eq(false, v_24);\n\
00229 constraint bool_eq(v_24, v_29);\n\
00230 constraint bool_not(v_24, v_30);\n\
00231 constraint bool_eq(v_31, false);\n\
00232 constraint bool_not(v_23, v_32);\n\
00233 constraint bool_not(v_22, v_33);\n\
00234 constraint bool_eq(v_22, v_34);\n\
00235 constraint bool_not(v_21, v_35);\n\
00236 constraint bool_or(v_29, v_36, true);\n\
00237 constraint bool_and(v_30, v_37, v_36);\n\
00238 constraint bool_or(v_31, v_38, v_37);\n\
00239 constraint bool_and(v_32, v_39, v_38);\n\
00240 constraint bool_or(v_33, v_40, v_39);\n\
00241 constraint bool_and(v_34, v_35, v_40);\n\
00242 constraint bool_eq(v_28, v_41);\n\
00243 constraint bool_not(v_28, v_42);\n\
00244 constraint bool_eq(v_43, false);\n\
00245 constraint bool_not(v_27, v_44);\n\
00246 constraint bool_eq(v_45, false);\n\
00247 constraint bool_not(v_26, v_46);\n\
00248 constraint bool_eq(v_47, false);\n\
00249 constraint bool_not(v_25, v_48);\n\
00250 constraint bool_eq(v_49, false);\n\
00251 constraint bool_not(v_24, v_50);\n\
00252 constraint bool_eq(v_51, false);\n\
00253 constraint bool_not(v_23, v_52);\n\
00254 constraint bool_eq(v_53, false);\n\
00255 constraint bool_not(v_22, v_54);\n\
00256 constraint bool_not(v_21, v_55);\n\
00257 constraint bool_or(v_41, v_56, false);\n\
00258 constraint bool_and(v_42, v_57, v_56);\n\
00259 constraint bool_or(v_43, v_58, v_57);\n\
00260 constraint bool_and(v_44, v_59, v_58);\n\
00261 constraint bool_or(v_45, v_60, v_59);\n\
00262 constraint bool_and(v_46, v_61, v_60);\n\
00263 constraint bool_or(v_47, v_62, v_61);\n\
00264 constraint bool_and(v_48, v_63, v_62);\n\
00265 constraint bool_or(v_49, v_64, v_63);\n\
00266 constraint bool_and(v_50, v_65, v_64);\n\
00267 constraint bool_or(v_51, v_66, v_65);\n\
00268 constraint bool_and(v_52, v_67, v_66);\n\
00269 constraint bool_or(v_53, v_68, v_67);\n\
00270 constraint bool_and(v_54, v_55, v_68);\n\
00271 constraint bool_eq(v_8, v_69);\n\
00272 constraint bool_not(v_8, v_70);\n\
00273 constraint bool_eq(v_71, false);\n\
00274 constraint bool_not(v_7, v_72);\n\
00275 constraint bool_eq(v_73, false);\n\
00276 constraint bool_not(v_6, v_74);\n\
00277 constraint bool_eq(v_75, false);\n\
00278 constraint bool_not(v_5, v_76);\n\
00279 constraint bool_eq(v_77, false);\n\
00280 constraint bool_not(v_4, v_78);\n\
00281 constraint bool_eq(v_79, false);\n\
00282 constraint bool_not(v_3, v_80);\n\
00283 constraint bool_eq(v_81, false);\n\
00284 constraint bool_not(v_2, v_82);\n\
00285 constraint bool_not(v_1, v_83);\n\
00286 constraint bool_or(v_69, v_84, false);\n\
00287 constraint bool_and(v_70, v_85, v_84);\n\
00288 constraint bool_or(v_71, v_86, v_85);\n\
00289 constraint bool_and(v_72, v_87, v_86);\n\
00290 constraint bool_or(v_73, v_88, v_87);\n\
00291 constraint bool_and(v_74, v_89, v_88);\n\
00292 constraint bool_or(v_75, v_90, v_89);\n\
00293 constraint bool_and(v_76, v_91, v_90);\n\
00294 constraint bool_or(v_77, v_92, v_91);\n\
00295 constraint bool_and(v_78, v_93, v_92);\n\
00296 constraint bool_or(v_79, v_94, v_93);\n\
00297 constraint bool_and(v_80, v_95, v_94);\n\
00298 constraint bool_or(v_81, v_96, v_95);\n\
00299 constraint bool_and(v_82, v_83, v_96);\n\
00300 constraint bool_eq(v_113, false);\n\
00301 constraint bool_xor(v_1, v_21, v_105);\n\
00302 constraint bool_xor(v_105, v_113, v_97);\n\
00303 constraint array_bool_or([v_122, v_130, v_138], v_114);\n\
00304 constraint bool_and(v_1, v_21, v_122);\n\
00305 constraint bool_and(v_1, v_113, v_130);\n\
00306 constraint bool_and(v_21, v_113, v_138);\n\
00307 constraint bool_xor(v_2, v_22, v_106);\n\
00308 constraint bool_xor(v_106, v_114, v_98);\n\
00309 constraint array_bool_or([v_123, v_131, v_139], v_115);\n\
00310 constraint bool_and(v_2, v_22, v_123);\n\
00311 constraint bool_and(v_2, v_114, v_131);\n\
00312 constraint bool_and(v_22, v_114, v_139);\n\
00313 constraint bool_xor(v_3, v_23, v_107);\n\
00314 constraint bool_xor(v_107, v_115, v_99);\n\
00315 constraint array_bool_or([v_124, v_132, v_140], v_116);\n\
00316 constraint bool_and(v_3, v_23, v_124);\n\
00317 constraint bool_and(v_3, v_115, v_132);\n\
00318 constraint bool_and(v_23, v_115, v_140);\n\
00319 constraint bool_xor(v_4, v_24, v_108);\n\
00320 constraint bool_xor(v_108, v_116, v_100);\n\
00321 constraint array_bool_or([v_125, v_133, v_141], v_117);\n\
00322 constraint bool_and(v_4, v_24, v_125);\n\
00323 constraint bool_and(v_4, v_116, v_133);\n\
00324 constraint bool_and(v_24, v_116, v_141);\n\
00325 constraint bool_xor(v_5, v_25, v_109);\n\
00326 constraint bool_xor(v_109, v_117, v_101);\n\
00327 constraint array_bool_or([v_126, v_134, v_142], v_118);\n\
00328 constraint bool_and(v_5, v_25, v_126);\n\
00329 constraint bool_and(v_5, v_117, v_134);\n\
00330 constraint bool_and(v_25, v_117, v_142);\n\
00331 constraint bool_xor(v_6, v_26, v_110);\n\
00332 constraint bool_xor(v_110, v_118, v_102);\n\
00333 constraint array_bool_or([v_127, v_135, v_143], v_119);\n\
00334 constraint bool_and(v_6, v_26, v_127);\n\
00335 constraint bool_and(v_6, v_118, v_135);\n\
00336 constraint bool_and(v_26, v_118, v_143);\n\
00337 constraint bool_xor(v_7, v_27, v_111);\n\
00338 constraint bool_xor(v_111, v_119, v_103);\n\
00339 constraint array_bool_or([v_128, v_136, v_144], v_120);\n\
00340 constraint bool_and(v_7, v_27, v_128);\n\
00341 constraint bool_and(v_7, v_119, v_136);\n\
00342 constraint bool_and(v_27, v_119, v_144);\n\
00343 constraint bool_xor(v_8, v_28, v_112);\n\
00344 constraint bool_xor(v_112, v_120, v_104);\n\
00345 constraint array_bool_or([v_129, v_137, v_145], v_121);\n\
00346 constraint bool_and(v_8, v_28, v_129);\n\
00347 constraint bool_and(v_8, v_120, v_137);\n\
00348 constraint bool_and(v_28, v_120, v_145);\n\
00349 constraint bool_eq(v_120, v_121);\n\
00350 constraint bool_not(v_97, v_146);\n\
00351 constraint bool_eq(v_98, v_147);\n\
00352 constraint bool_not(v_99, v_148);\n\
00353 constraint bool_not(v_100, v_149);\n\
00354 constraint bool_not(v_101, v_150);\n\
00355 constraint bool_not(v_102, v_151);\n\
00356 constraint bool_not(v_103, v_152);\n\
00357 constraint bool_not(v_104, v_153);\n\
00358 constraint array_bool_and([v_146, v_147, v_148, v_149, v_150, v_151, v_152, v_153], true);\n\
00359 solve satisfy;\n\
00360 ",
00361 "a = array1d(1..8, [false, false, false, false, false, false, false, true]);\n\
00362 b = array1d(1..8, [false, false, false, false, false, false, false, true]);\n\
00363 ----------\n\
00364 ");
00365 }
00366 };
00367
00368 Create c;
00369 }
00370
00371 }}
00372
00373