36namespace Test {
namespace FlatZinc {
45 (void)
new FlatZincTest(
"sat_arith1",
200array [1..8] of var bool: a :: output_array([1..8]) =\n\
201 [v_8, v_7, v_6, v_5, v_4, v_3, v_2, v_1];\n\
202array [1..8] of var bool: b :: output_array([1..8]) =\n\
203 [v_28, v_27, v_26, v_25, v_24, v_23, v_22, v_21];\n\
204constraint bool_eq(false, v_4);\n\
205constraint bool_eq(false, v_5);\n\
206constraint bool_eq(false, v_6);\n\
207constraint bool_eq(false, v_7);\n\
208constraint bool_eq(false, v_8);\n\
209constraint bool_eq(false, v_4);\n\
210constraint bool_eq(v_4, v_9);\n\
211constraint bool_not(v_4, v_10);\n\
212constraint bool_eq(v_11, false);\n\
213constraint bool_not(v_3, v_12);\n\
214constraint bool_not(v_2, v_13);\n\
215constraint bool_eq(v_2, v_14);\n\
216constraint bool_not(v_1, v_15);\n\
217constraint bool_or(v_9, v_16, true);\n\
218constraint bool_and(v_10, v_17, v_16);\n\
219constraint bool_or(v_11, v_18, v_17);\n\
220constraint bool_and(v_12, v_19, v_18);\n\
221constraint bool_or(v_13, v_20, v_19);\n\
222constraint bool_and(v_14, v_15, v_20);\n\
223constraint bool_eq(false, v_24);\n\
224constraint bool_eq(false, v_25);\n\
225constraint bool_eq(false, v_26);\n\
226constraint bool_eq(false, v_27);\n\
227constraint bool_eq(false, v_28);\n\
228constraint bool_eq(false, v_24);\n\
229constraint bool_eq(v_24, v_29);\n\
230constraint bool_not(v_24, v_30);\n\
231constraint bool_eq(v_31, false);\n\
232constraint bool_not(v_23, v_32);\n\
233constraint bool_not(v_22, v_33);\n\
234constraint bool_eq(v_22, v_34);\n\
235constraint bool_not(v_21, v_35);\n\
236constraint bool_or(v_29, v_36, true);\n\
237constraint bool_and(v_30, v_37, v_36);\n\
238constraint bool_or(v_31, v_38, v_37);\n\
239constraint bool_and(v_32, v_39, v_38);\n\
240constraint bool_or(v_33, v_40, v_39);\n\
241constraint bool_and(v_34, v_35, v_40);\n\
242constraint bool_eq(v_28, v_41);\n\
243constraint bool_not(v_28, v_42);\n\
244constraint bool_eq(v_43, false);\n\
245constraint bool_not(v_27, v_44);\n\
246constraint bool_eq(v_45, false);\n\
247constraint bool_not(v_26, v_46);\n\
248constraint bool_eq(v_47, false);\n\
249constraint bool_not(v_25, v_48);\n\
250constraint bool_eq(v_49, false);\n\
251constraint bool_not(v_24, v_50);\n\
252constraint bool_eq(v_51, false);\n\
253constraint bool_not(v_23, v_52);\n\
254constraint bool_eq(v_53, false);\n\
255constraint bool_not(v_22, v_54);\n\
256constraint bool_not(v_21, v_55);\n\
257constraint bool_or(v_41, v_56, false);\n\
258constraint bool_and(v_42, v_57, v_56);\n\
259constraint bool_or(v_43, v_58, v_57);\n\
260constraint bool_and(v_44, v_59, v_58);\n\
261constraint bool_or(v_45, v_60, v_59);\n\
262constraint bool_and(v_46, v_61, v_60);\n\
263constraint bool_or(v_47, v_62, v_61);\n\
264constraint bool_and(v_48, v_63, v_62);\n\
265constraint bool_or(v_49, v_64, v_63);\n\
266constraint bool_and(v_50, v_65, v_64);\n\
267constraint bool_or(v_51, v_66, v_65);\n\
268constraint bool_and(v_52, v_67, v_66);\n\
269constraint bool_or(v_53, v_68, v_67);\n\
270constraint bool_and(v_54, v_55, v_68);\n\
271constraint bool_eq(v_8, v_69);\n\
272constraint bool_not(v_8, v_70);\n\
273constraint bool_eq(v_71, false);\n\
274constraint bool_not(v_7, v_72);\n\
275constraint bool_eq(v_73, false);\n\
276constraint bool_not(v_6, v_74);\n\
277constraint bool_eq(v_75, false);\n\
278constraint bool_not(v_5, v_76);\n\
279constraint bool_eq(v_77, false);\n\
280constraint bool_not(v_4, v_78);\n\
281constraint bool_eq(v_79, false);\n\
282constraint bool_not(v_3, v_80);\n\
283constraint bool_eq(v_81, false);\n\
284constraint bool_not(v_2, v_82);\n\
285constraint bool_not(v_1, v_83);\n\
286constraint bool_or(v_69, v_84, false);\n\
287constraint bool_and(v_70, v_85, v_84);\n\
288constraint bool_or(v_71, v_86, v_85);\n\
289constraint bool_and(v_72, v_87, v_86);\n\
290constraint bool_or(v_73, v_88, v_87);\n\
291constraint bool_and(v_74, v_89, v_88);\n\
292constraint bool_or(v_75, v_90, v_89);\n\
293constraint bool_and(v_76, v_91, v_90);\n\
294constraint bool_or(v_77, v_92, v_91);\n\
295constraint bool_and(v_78, v_93, v_92);\n\
296constraint bool_or(v_79, v_94, v_93);\n\
297constraint bool_and(v_80, v_95, v_94);\n\
298constraint bool_or(v_81, v_96, v_95);\n\
299constraint bool_and(v_82, v_83, v_96);\n\
300constraint bool_eq(v_113, false);\n\
301constraint bool_xor(v_1, v_21, v_105);\n\
302constraint bool_xor(v_105, v_113, v_97);\n\
303constraint array_bool_or([v_122, v_130, v_138], v_114);\n\
304constraint bool_and(v_1, v_21, v_122);\n\
305constraint bool_and(v_1, v_113, v_130);\n\
306constraint bool_and(v_21, v_113, v_138);\n\
307constraint bool_xor(v_2, v_22, v_106);\n\
308constraint bool_xor(v_106, v_114, v_98);\n\
309constraint array_bool_or([v_123, v_131, v_139], v_115);\n\
310constraint bool_and(v_2, v_22, v_123);\n\
311constraint bool_and(v_2, v_114, v_131);\n\
312constraint bool_and(v_22, v_114, v_139);\n\
313constraint bool_xor(v_3, v_23, v_107);\n\
314constraint bool_xor(v_107, v_115, v_99);\n\
315constraint array_bool_or([v_124, v_132, v_140], v_116);\n\
316constraint bool_and(v_3, v_23, v_124);\n\
317constraint bool_and(v_3, v_115, v_132);\n\
318constraint bool_and(v_23, v_115, v_140);\n\
319constraint bool_xor(v_4, v_24, v_108);\n\
320constraint bool_xor(v_108, v_116, v_100);\n\
321constraint array_bool_or([v_125, v_133, v_141], v_117);\n\
322constraint bool_and(v_4, v_24, v_125);\n\
323constraint bool_and(v_4, v_116, v_133);\n\
324constraint bool_and(v_24, v_116, v_141);\n\
325constraint bool_xor(v_5, v_25, v_109);\n\
326constraint bool_xor(v_109, v_117, v_101);\n\
327constraint array_bool_or([v_126, v_134, v_142], v_118);\n\
328constraint bool_and(v_5, v_25, v_126);\n\
329constraint bool_and(v_5, v_117, v_134);\n\
330constraint bool_and(v_25, v_117, v_142);\n\
331constraint bool_xor(v_6, v_26, v_110);\n\
332constraint bool_xor(v_110, v_118, v_102);\n\
333constraint array_bool_or([v_127, v_135, v_143], v_119);\n\
334constraint bool_and(v_6, v_26, v_127);\n\
335constraint bool_and(v_6, v_118, v_135);\n\
336constraint bool_and(v_26, v_118, v_143);\n\
337constraint bool_xor(v_7, v_27, v_111);\n\
338constraint bool_xor(v_111, v_119, v_103);\n\
339constraint array_bool_or([v_128, v_136, v_144], v_120);\n\
340constraint bool_and(v_7, v_27, v_128);\n\
341constraint bool_and(v_7, v_119, v_136);\n\
342constraint bool_and(v_27, v_119, v_144);\n\
343constraint bool_xor(v_8, v_28, v_112);\n\
344constraint bool_xor(v_112, v_120, v_104);\n\
345constraint array_bool_or([v_129, v_137, v_145], v_121);\n\
346constraint bool_and(v_8, v_28, v_129);\n\
347constraint bool_and(v_8, v_120, v_137);\n\
348constraint bool_and(v_28, v_120, v_145);\n\
349constraint bool_eq(v_120, v_121);\n\
350constraint bool_not(v_97, v_146);\n\
351constraint bool_eq(v_98, v_147);\n\
352constraint bool_not(v_99, v_148);\n\
353constraint bool_not(v_100, v_149);\n\
354constraint bool_not(v_101, v_150);\n\
355constraint bool_not(v_102, v_151);\n\
356constraint bool_not(v_103, v_152);\n\
357constraint bool_not(v_104, v_153);\n\
358constraint array_bool_and([v_146, v_147, v_148, v_149, v_150, v_151, v_152, v_153], true);\n\
361"a = array1d(1..8, [false, false, false, false, false, false, false, true]);\n\
362b = array1d(1..8, [false, false, false, false, false, false, false, true]);\n\
Gecode::FloatVal c(-8, 8)