this repo has no description
1/*** 2!Test 3solvers: [gecode, chuffed] 4expected: 5- !Result 6 solution: !Solution 7 pos: 8 - [1, 1, 1] 9 - [1, 1, 1] 10 - [1, 1, 1] 11 - [1, 1, 1] 12 - [1, 1, 1] 13 - [1, 1, 1] 14 - [1, 1, 1] 15 - [1, 1, 1] 16 - [1, 1, 1] 17 - [1, 1, 1] 18 - [1, 1, 1] 19 - [1, 1, 1] 20 - [1, 1, 1] 21- !Result 22 solution: !Solution 23 pos: 24 - [1, 1, 1] 25 - [1, 1, 1] 26 - [1, 1, 1] 27 - [1, 1, 1] 28 - [1, 1, 1] 29 - [2, 1, 1] 30 - [3, 1, 1] 31 - [4, 1, 1] 32 - [5, 1, 1] 33 - [4, 1, 1] 34 - [3, 1, 1] 35 - [2, 1, 1] 36 - [1, 1, 1] 37- !Result 38 solution: !Solution 39 pos: 40 - [6, 6, 6] 41 - [6, 6, 6] 42 - [6, 6, 6] 43 - [6, 6, 6] 44 - [6, 6, 6] 45 - [6, 6, 6] 46 - [6, 6, 6] 47 - [6, 6, 6] 48 - [6, 6, 6] 49 - [6, 6, 6] 50 - [6, 6, 6] 51 - [6, 6, 6] 52 - [6, 6, 6] 53***/ 54 55% This caused mzn2fzn (r9627 and before) to abort. 56 57 58% NOTE: we cannot run this on LazyFD because it the redefinition of 59% array_var_bool_element below will conflict with the LazyFD backend's 60% redefinitions file. We run this only with the std fd variant since 61% we know that does not use any redefinitions. 62 63array[1..6,1..6] of bool: linked; 64array[1..13,1..3] of var 1..6: pos; 65 66constraint 67 forall(t in 1..3, x in 2..13)(linked[pos[x,t],pos[x-1,t]]); 68 69solve satisfy; 70 71linked = [| true, true, false, false, false, false 72 | true, true, true, false, false, false 73 | false, true, true, true, false, true 74 | false, false, true, true, true, false 75 | false, false, false, true, true, false 76 | false, false, true, false, false, true |]; 77 78% From g12/zinc/lib/minizinc/g12_lazyfd/redefinitions.mzn: 79% 80predicate array_var_bool_element(var int : idx, array[int] of var bool : arr, 81 var bool : v) = 82 let { int : N = length(arr), 83 array[1..N] of var bool : tmp = [idx = I | I in 1..N] 84 } 85 in 86 exists(I in 1..N)(tmp[I]) 87 /\ forall(I in 1..N) (tmp[I] -> v = arr[I]); 88 89output ["pos = ", show(pos), ";\n"];