Commit 47d42f0dbe891990c1487462bbc6127078d8a858

Authored by Salvador Abreu
1 parent 8b7af97d
Exists in master

start moving towards prolog-AST construction

.gitignore
1 1 *.o
2 2 *-mpi
  3 +*~
... ...
fzn-parser/examples/queens.fzn 0 → 100644
... ... @@ -0,0 +1,593 @@
  1 +array [1..2] of int: X_INTRODUCED_20 = [1,-1];
  2 +var 1..20: X_INTRODUCED_0;
  3 +var 1..20: X_INTRODUCED_1;
  4 +var 1..20: X_INTRODUCED_2;
  5 +var 1..20: X_INTRODUCED_3;
  6 +var 1..20: X_INTRODUCED_4;
  7 +var 1..20: X_INTRODUCED_5;
  8 +var 1..20: X_INTRODUCED_6;
  9 +var 1..20: X_INTRODUCED_7;
  10 +var 1..20: X_INTRODUCED_8;
  11 +var 1..20: X_INTRODUCED_9;
  12 +var 1..20: X_INTRODUCED_10;
  13 +var 1..20: X_INTRODUCED_11;
  14 +var 1..20: X_INTRODUCED_12;
  15 +var 1..20: X_INTRODUCED_13;
  16 +var 1..20: X_INTRODUCED_14;
  17 +var 1..20: X_INTRODUCED_15;
  18 +var 1..20: X_INTRODUCED_16;
  19 +var 1..20: X_INTRODUCED_17;
  20 +var 1..20: X_INTRODUCED_18;
  21 +var 1..20: X_INTRODUCED_19;
  22 +array [1..20] of var 1..20: q:: output_array([1..20]) = [X_INTRODUCED_0,X_INTRODUCED_1,X_INTRODUCED_2,X_INTRODUCED_3,X_INTRODUCED_4,X_INTRODUCED_5,X_INTRODUCED_6,X_INTRODUCED_7,X_INTRODUCED_8,X_INTRODUCED_9,X_INTRODUCED_10,X_INTRODUCED_11,X_INTRODUCED_12,X_INTRODUCED_13,X_INTRODUCED_14,X_INTRODUCED_15,X_INTRODUCED_16,X_INTRODUCED_17,X_INTRODUCED_18,X_INTRODUCED_19];
  23 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_1],0);
  24 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_1],1);
  25 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_1],-1);
  26 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_2],0);
  27 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_2],2);
  28 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_2],-2);
  29 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_3],0);
  30 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_3],3);
  31 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_3],-3);
  32 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_4],0);
  33 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_4],4);
  34 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_4],-4);
  35 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_5],0);
  36 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_5],5);
  37 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_5],-5);
  38 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_6],0);
  39 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_6],6);
  40 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_6],-6);
  41 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_7],0);
  42 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_7],7);
  43 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_7],-7);
  44 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_8],0);
  45 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_8],8);
  46 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_8],-8);
  47 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_9],0);
  48 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_9],9);
  49 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_9],-9);
  50 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_10],0);
  51 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_10],10);
  52 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_10],-10);
  53 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_11],0);
  54 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_11],11);
  55 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_11],-11);
  56 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_12],0);
  57 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_12],12);
  58 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_12],-12);
  59 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_13],0);
  60 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_13],13);
  61 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_13],-13);
  62 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_14],0);
  63 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_14],14);
  64 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_14],-14);
  65 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_15],0);
  66 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_15],15);
  67 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_15],-15);
  68 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_16],0);
  69 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_16],16);
  70 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_16],-16);
  71 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_17],0);
  72 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_17],17);
  73 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_17],-17);
  74 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_18],0);
  75 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_18],18);
  76 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_18],-18);
  77 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_19],0);
  78 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_19],19);
  79 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_0,X_INTRODUCED_19],-19);
  80 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_2],0);
  81 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_2],1);
  82 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_2],-1);
  83 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_3],0);
  84 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_3],2);
  85 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_3],-2);
  86 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_4],0);
  87 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_4],3);
  88 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_4],-3);
  89 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_5],0);
  90 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_5],4);
  91 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_5],-4);
  92 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_6],0);
  93 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_6],5);
  94 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_6],-5);
  95 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_7],0);
  96 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_7],6);
  97 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_7],-6);
  98 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_8],0);
  99 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_8],7);
  100 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_8],-7);
  101 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_9],0);
  102 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_9],8);
  103 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_9],-8);
  104 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_10],0);
  105 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_10],9);
  106 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_10],-9);
  107 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_11],0);
  108 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_11],10);
  109 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_11],-10);
  110 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_12],0);
  111 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_12],11);
  112 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_12],-11);
  113 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_13],0);
  114 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_13],12);
  115 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_13],-12);
  116 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_14],0);
  117 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_14],13);
  118 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_14],-13);
  119 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_15],0);
  120 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_15],14);
  121 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_15],-14);
  122 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_16],0);
  123 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_16],15);
  124 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_16],-15);
  125 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_17],0);
  126 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_17],16);
  127 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_17],-16);
  128 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_18],0);
  129 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_18],17);
  130 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_18],-17);
  131 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_19],0);
  132 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_19],18);
  133 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_1,X_INTRODUCED_19],-18);
  134 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_3],0);
  135 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_3],1);
  136 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_3],-1);
  137 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_4],0);
  138 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_4],2);
  139 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_4],-2);
  140 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_5],0);
  141 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_5],3);
  142 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_5],-3);
  143 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_6],0);
  144 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_6],4);
  145 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_6],-4);
  146 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_7],0);
  147 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_7],5);
  148 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_7],-5);
  149 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_8],0);
  150 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_8],6);
  151 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_8],-6);
  152 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_9],0);
  153 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_9],7);
  154 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_9],-7);
  155 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_10],0);
  156 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_10],8);
  157 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_10],-8);
  158 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_11],0);
  159 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_11],9);
  160 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_11],-9);
  161 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_12],0);
  162 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_12],10);
  163 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_12],-10);
  164 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_13],0);
  165 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_13],11);
  166 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_13],-11);
  167 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_14],0);
  168 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_14],12);
  169 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_14],-12);
  170 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_15],0);
  171 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_15],13);
  172 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_15],-13);
  173 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_16],0);
  174 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_16],14);
  175 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_16],-14);
  176 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_17],0);
  177 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_17],15);
  178 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_17],-15);
  179 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_18],0);
  180 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_18],16);
  181 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_18],-16);
  182 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_19],0);
  183 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_19],17);
  184 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_2,X_INTRODUCED_19],-17);
  185 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_4],0);
  186 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_4],1);
  187 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_4],-1);
  188 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_5],0);
  189 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_5],2);
  190 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_5],-2);
  191 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_6],0);
  192 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_6],3);
  193 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_6],-3);
  194 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_7],0);
  195 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_7],4);
  196 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_7],-4);
  197 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_8],0);
  198 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_8],5);
  199 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_8],-5);
  200 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_9],0);
  201 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_9],6);
  202 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_9],-6);
  203 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_10],0);
  204 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_10],7);
  205 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_10],-7);
  206 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_11],0);
  207 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_11],8);
  208 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_11],-8);
  209 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_12],0);
  210 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_12],9);
  211 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_12],-9);
  212 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_13],0);
  213 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_13],10);
  214 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_13],-10);
  215 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_14],0);
  216 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_14],11);
  217 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_14],-11);
  218 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_15],0);
  219 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_15],12);
  220 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_15],-12);
  221 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_16],0);
  222 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_16],13);
  223 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_16],-13);
  224 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_17],0);
  225 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_17],14);
  226 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_17],-14);
  227 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_18],0);
  228 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_18],15);
  229 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_18],-15);
  230 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_19],0);
  231 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_19],16);
  232 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_3,X_INTRODUCED_19],-16);
  233 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_5],0);
  234 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_5],1);
  235 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_5],-1);
  236 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_6],0);
  237 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_6],2);
  238 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_6],-2);
  239 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_7],0);
  240 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_7],3);
  241 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_7],-3);
  242 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_8],0);
  243 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_8],4);
  244 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_8],-4);
  245 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_9],0);
  246 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_9],5);
  247 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_9],-5);
  248 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_10],0);
  249 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_10],6);
  250 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_10],-6);
  251 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_11],0);
  252 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_11],7);
  253 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_11],-7);
  254 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_12],0);
  255 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_12],8);
  256 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_12],-8);
  257 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_13],0);
  258 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_13],9);
  259 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_13],-9);
  260 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_14],0);
  261 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_14],10);
  262 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_14],-10);
  263 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_15],0);
  264 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_15],11);
  265 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_15],-11);
  266 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_16],0);
  267 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_16],12);
  268 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_16],-12);
  269 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_17],0);
  270 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_17],13);
  271 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_17],-13);
  272 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_18],0);
  273 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_18],14);
  274 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_18],-14);
  275 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_19],0);
  276 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_19],15);
  277 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_4,X_INTRODUCED_19],-15);
  278 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_6],0);
  279 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_6],1);
  280 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_6],-1);
  281 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_7],0);
  282 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_7],2);
  283 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_7],-2);
  284 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_8],0);
  285 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_8],3);
  286 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_8],-3);
  287 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_9],0);
  288 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_9],4);
  289 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_9],-4);
  290 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_10],0);
  291 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_10],5);
  292 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_10],-5);
  293 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_11],0);
  294 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_11],6);
  295 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_11],-6);
  296 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_12],0);
  297 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_12],7);
  298 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_12],-7);
  299 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_13],0);
  300 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_13],8);
  301 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_13],-8);
  302 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_14],0);
  303 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_14],9);
  304 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_14],-9);
  305 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_15],0);
  306 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_15],10);
  307 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_15],-10);
  308 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_16],0);
  309 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_16],11);
  310 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_16],-11);
  311 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_17],0);
  312 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_17],12);
  313 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_17],-12);
  314 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_18],0);
  315 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_18],13);
  316 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_18],-13);
  317 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_19],0);
  318 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_19],14);
  319 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_5,X_INTRODUCED_19],-14);
  320 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_7],0);
  321 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_7],1);
  322 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_7],-1);
  323 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_8],0);
  324 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_8],2);
  325 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_8],-2);
  326 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_9],0);
  327 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_9],3);
  328 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_9],-3);
  329 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_10],0);
  330 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_10],4);
  331 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_10],-4);
  332 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_11],0);
  333 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_11],5);
  334 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_11],-5);
  335 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_12],0);
  336 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_12],6);
  337 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_12],-6);
  338 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_13],0);
  339 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_13],7);
  340 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_13],-7);
  341 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_14],0);
  342 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_14],8);
  343 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_14],-8);
  344 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_15],0);
  345 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_15],9);
  346 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_15],-9);
  347 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_16],0);
  348 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_16],10);
  349 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_16],-10);
  350 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_17],0);
  351 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_17],11);
  352 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_17],-11);
  353 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_18],0);
  354 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_18],12);
  355 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_18],-12);
  356 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_19],0);
  357 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_19],13);
  358 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_6,X_INTRODUCED_19],-13);
  359 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_8],0);
  360 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_8],1);
  361 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_8],-1);
  362 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_9],0);
  363 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_9],2);
  364 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_9],-2);
  365 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_10],0);
  366 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_10],3);
  367 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_10],-3);
  368 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_11],0);
  369 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_11],4);
  370 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_11],-4);
  371 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_12],0);
  372 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_12],5);
  373 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_12],-5);
  374 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_13],0);
  375 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_13],6);
  376 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_13],-6);
  377 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_14],0);
  378 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_14],7);
  379 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_14],-7);
  380 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_15],0);
  381 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_15],8);
  382 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_15],-8);
  383 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_16],0);
  384 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_16],9);
  385 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_16],-9);
  386 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_17],0);
  387 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_17],10);
  388 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_17],-10);
  389 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_18],0);
  390 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_18],11);
  391 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_18],-11);
  392 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_19],0);
  393 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_19],12);
  394 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_7,X_INTRODUCED_19],-12);
  395 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_9],0);
  396 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_9],1);
  397 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_9],-1);
  398 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_10],0);
  399 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_10],2);
  400 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_10],-2);
  401 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_11],0);
  402 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_11],3);
  403 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_11],-3);
  404 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_12],0);
  405 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_12],4);
  406 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_12],-4);
  407 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_13],0);
  408 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_13],5);
  409 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_13],-5);
  410 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_14],0);
  411 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_14],6);
  412 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_14],-6);
  413 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_15],0);
  414 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_15],7);
  415 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_15],-7);
  416 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_16],0);
  417 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_16],8);
  418 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_16],-8);
  419 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_17],0);
  420 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_17],9);
  421 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_17],-9);
  422 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_18],0);
  423 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_18],10);
  424 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_18],-10);
  425 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_19],0);
  426 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_19],11);
  427 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_8,X_INTRODUCED_19],-11);
  428 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_10],0);
  429 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_10],1);
  430 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_10],-1);
  431 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_11],0);
  432 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_11],2);
  433 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_11],-2);
  434 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_12],0);
  435 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_12],3);
  436 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_12],-3);
  437 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_13],0);
  438 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_13],4);
  439 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_13],-4);
  440 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_14],0);
  441 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_14],5);
  442 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_14],-5);
  443 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_15],0);
  444 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_15],6);
  445 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_15],-6);
  446 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_16],0);
  447 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_16],7);
  448 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_16],-7);
  449 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_17],0);
  450 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_17],8);
  451 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_17],-8);
  452 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_18],0);
  453 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_18],9);
  454 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_18],-9);
  455 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_19],0);
  456 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_19],10);
  457 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_9,X_INTRODUCED_19],-10);
  458 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_11],0);
  459 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_11],1);
  460 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_11],-1);
  461 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_12],0);
  462 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_12],2);
  463 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_12],-2);
  464 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_13],0);
  465 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_13],3);
  466 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_13],-3);
  467 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_14],0);
  468 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_14],4);
  469 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_14],-4);
  470 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_15],0);
  471 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_15],5);
  472 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_15],-5);
  473 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_16],0);
  474 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_16],6);
  475 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_16],-6);
  476 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_17],0);
  477 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_17],7);
  478 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_17],-7);
  479 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_18],0);
  480 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_18],8);
  481 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_18],-8);
  482 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_19],0);
  483 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_19],9);
  484 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_10,X_INTRODUCED_19],-9);
  485 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_12],0);
  486 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_12],1);
  487 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_12],-1);
  488 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_13],0);
  489 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_13],2);
  490 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_13],-2);
  491 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_14],0);
  492 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_14],3);
  493 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_14],-3);
  494 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_15],0);
  495 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_15],4);
  496 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_15],-4);
  497 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_16],0);
  498 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_16],5);
  499 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_16],-5);
  500 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_17],0);
  501 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_17],6);
  502 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_17],-6);
  503 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_18],0);
  504 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_18],7);
  505 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_18],-7);
  506 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_19],0);
  507 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_19],8);
  508 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_11,X_INTRODUCED_19],-8);
  509 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_13],0);
  510 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_13],1);
  511 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_13],-1);
  512 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_14],0);
  513 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_14],2);
  514 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_14],-2);
  515 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_15],0);
  516 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_15],3);
  517 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_15],-3);
  518 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_16],0);
  519 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_16],4);
  520 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_16],-4);
  521 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_17],0);
  522 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_17],5);
  523 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_17],-5);
  524 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_18],0);
  525 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_18],6);
  526 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_18],-6);
  527 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_19],0);
  528 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_19],7);
  529 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_12,X_INTRODUCED_19],-7);
  530 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_14],0);
  531 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_14],1);
  532 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_14],-1);
  533 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_15],0);
  534 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_15],2);
  535 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_15],-2);
  536 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_16],0);
  537 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_16],3);
  538 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_16],-3);
  539 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_17],0);
  540 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_17],4);
  541 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_17],-4);
  542 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_18],0);
  543 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_18],5);
  544 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_18],-5);
  545 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_19],0);
  546 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_19],6);
  547 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_13,X_INTRODUCED_19],-6);
  548 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_15],0);
  549 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_15],1);
  550 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_15],-1);
  551 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_16],0);
  552 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_16],2);
  553 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_16],-2);
  554 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_17],0);
  555 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_17],3);
  556 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_17],-3);
  557 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_18],0);
  558 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_18],4);
  559 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_18],-4);
  560 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_19],0);
  561 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_19],5);
  562 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_14,X_INTRODUCED_19],-5);
  563 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_15,X_INTRODUCED_16],0);
  564 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_15,X_INTRODUCED_16],1);
  565 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_15,X_INTRODUCED_16],-1);
  566 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_15,X_INTRODUCED_17],0);
  567 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_15,X_INTRODUCED_17],2);
  568 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_15,X_INTRODUCED_17],-2);
  569 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_15,X_INTRODUCED_18],0);
  570 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_15,X_INTRODUCED_18],3);
  571 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_15,X_INTRODUCED_18],-3);
  572 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_15,X_INTRODUCED_19],0);
  573 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_15,X_INTRODUCED_19],4);
  574 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_15,X_INTRODUCED_19],-4);
  575 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_16,X_INTRODUCED_17],0);
  576 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_16,X_INTRODUCED_17],1);
  577 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_16,X_INTRODUCED_17],-1);
  578 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_16,X_INTRODUCED_18],0);
  579 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_16,X_INTRODUCED_18],2);
  580 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_16,X_INTRODUCED_18],-2);
  581 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_16,X_INTRODUCED_19],0);
  582 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_16,X_INTRODUCED_19],3);
  583 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_16,X_INTRODUCED_19],-3);
  584 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_17,X_INTRODUCED_18],0);
  585 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_17,X_INTRODUCED_18],1);
  586 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_17,X_INTRODUCED_18],-1);
  587 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_17,X_INTRODUCED_19],0);
  588 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_17,X_INTRODUCED_19],2);
  589 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_17,X_INTRODUCED_19],-2);
  590 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_18,X_INTRODUCED_19],0);
  591 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_18,X_INTRODUCED_19],1);
  592 +constraint int_lin_ne(X_INTRODUCED_20,[X_INTRODUCED_18,X_INTRODUCED_19],-1);
  593 +solve satisfy;
... ...
fzn-parser/flatzinc.y
1   -// Parser for FlatZinc 1.1.
2   -// Authors: Nick Nethercote
3   -// Julien Fischer
  1 +// == Prolog AST-stream term Parser for FlatZinc ==============================
  2 +//
  3 +// (C) 2015 Salvador Abreu
  4 +//
  5 +// ----------------------------------------------------------------------------
  6 +// Based on the Parser for FlatZinc 1.1
  7 +// by Nick Nethercote and Julien Fischer
4 8 //
5 9 // NOTE: the parser produced by the following grammar does not ensure
6 10 // that expressions are type correct. Further type-checking after parsing
... ... @@ -12,20 +16,49 @@
12 16 %{
13 17 #include <stdio.h>
14 18 #include <stdlib.h>
  19 +
  20 +#include "types.h"
  21 +
  22 +#define AST(pop, push) \
  23 +{ \
  24 + if (pop) \
  25 + printf ("[%s|_Tail] ==> [", pop); \
  26 + else \
  27 + printf ("_Tail ==> ["); \
  28 + printf push; \
  29 + printf ("|_Tail].\n"); \
  30 +}
  31 +
  32 +#define PUSH(x) \
  33 +{ \
  34 + printf ("_Tail ==> ["); \
  35 + printf x; \
  36 + printf ("|_Tail].\n"); \
  37 +}
  38 +
  39 +#define CONS() AST ("T,H", ("[H|T]"))
  40 +#define CONS_SWAPPED() AST ("H,T", ("[H|T]"))
  41 +
  42 +#define TAIL() AST ("T", ("[T]"))
  43 +#define NIL() PUSH (("[]"))
  44 +
  45 +#define TAIL_OPEN() AST ("T", ("[T|_]"))
  46 +#define NIL_OPEN() PUSH (("_"))
  47 +
  48 +#define BINARY(op) AST ("B,A", ("op(A,B)"))
  49 +#define UNARY(op) AST ("X", ("op(X)"))
  50 +
15 51 %}
16 52  
17 53  
18 54 // Possible values for attributed tokens.
19 55 %union {
20   - char* string_val;
21   - int int_val;
22   - double float_val;
  56 + UNION_DEFS ();
23 57 };
24 58  
25 59 // Token kinds
26   -%token <int_val> INT_LITERAL
27   - <string_val> STRING_LITERAL IDENT UNDERSCORE_IDENT
28   - <float_val> FLOAT_LITERAL
  60 +%token <lit> INT_LITERAL STRING_LITERAL FLOAT_LITERAL
  61 + <id> IDENT UNDERSCORE_IDENT
29 62 ARRAY BOOL CONSTRAINT FALSE FLOAT INT MAXIMIZE MINIMIZE OF
30 63 PREDICATE SATISFY SET SOLVE TRUE VAR DOTDOT COLONCOLON
31 64  
... ...
fzn-parser/types.h 0 → 100644
... ... @@ -0,0 +1,23 @@
  1 +// == Prolog AST-stream term parser for FlatZinc ==============================
  2 +//
  3 +// (C) 2015 Salvador Abreu
  4 +//
  5 +// ----------------------------------------------------------------------------
  6 +
  7 +typedef enum { false, true } bool;
  8 +
  9 +typedef union {
  10 + long ival;
  11 + double rval;
  12 + bool bval;
  13 + char *sval;
  14 +} lit_token;
  15 +
  16 +typedef char *id_token;
  17 +
  18 +typedef long ast_node;
  19 +
  20 +#define UNION_DEFS() \
  21 + lit_token lit; \
  22 + id_token id; \
  23 + ast_node node
... ...