Commit 3fafcd62f2f046398d8f24ed8df834347e1c773e

Authored by Salvador Abreu
1 parent 8b7af97d
Exists in master

start moving towards prolog-AST construction

1 *.o 1 *.o
2 *-mpi 2 *-mpi
  3 +*~
fzn-parser/examples/queens.fzn 0 → 100644
@@ -0,0 +1,593 @@ @@ -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 // NOTE: the parser produced by the following grammar does not ensure 9 // NOTE: the parser produced by the following grammar does not ensure
6 // that expressions are type correct. Further type-checking after parsing 10 // that expressions are type correct. Further type-checking after parsing
@@ -12,20 +16,49 @@ @@ -12,20 +16,49 @@
12 %{ 16 %{
13 #include <stdio.h> 17 #include <stdio.h>
14 #include <stdlib.h> 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 // Possible values for attributed tokens. 54 // Possible values for attributed tokens.
19 %union { 55 %union {
20 - char* string_val;  
21 - int int_val;  
22 - double float_val; 56 + UNION_DEFS ();
23 }; 57 };
24 58
25 // Token kinds 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 ARRAY BOOL CONSTRAINT FALSE FLOAT INT MAXIMIZE MINIMIZE OF 62 ARRAY BOOL CONSTRAINT FALSE FLOAT INT MAXIMIZE MINIMIZE OF
30 PREDICATE SATISFY SET SOLVE TRUE VAR DOTDOT COLONCOLON 63 PREDICATE SATISFY SET SOLVE TRUE VAR DOTDOT COLONCOLON
31 64
fzn-parser/types.h 0 → 100644
@@ -0,0 +1,23 @@ @@ -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