Commit 57421ab251f6bbc8d1b820a99123cc27b46d00e4
1 parent
f1a115f5
Exists in
master
first stab at type analysis.
one more example.
Showing
4 changed files
with
1372 additions
and
10 deletions
Show diff stats
| @@ -0,0 +1,1282 @@ | @@ -0,0 +1,1282 @@ | ||
| 1 | +_ > []. | ||
| 2 | +_T > [[]|_T]. | ||
| 3 | +[X|_T] > [preds(X)|_T]. | ||
| 4 | +_T > [[]|_T]. | ||
| 5 | +_T > [int|_T]. | ||
| 6 | +_T > ['X_INTRODUCED_42'|_T]. | ||
| 7 | +_T > [[]|_T]. | ||
| 8 | +_T > [lit(1,int)|_T]. | ||
| 9 | +_T > [lit(-1,int)|_T]. | ||
| 10 | +[E|_T] > [[E]|_T]. | ||
| 11 | +[T,H|_T] > [[H|T]|_T]. | ||
| 12 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 13 | +[VAL,AN,ID,T|_T] > [var(ID, array(T,1,2), VAL, AN)|_T]. | ||
| 14 | +[H,T|_T] > [[H|T]|_T]. | ||
| 15 | +_T > [int|_T]. | ||
| 16 | +_T > ['X_INTRODUCED_45'|_T]. | ||
| 17 | +_T > [[]|_T]. | ||
| 18 | +_T > [lit(1,int)|_T]. | ||
| 19 | +_T > [lit(-1,int)|_T]. | ||
| 20 | +_T > [lit(1,int)|_T]. | ||
| 21 | +[E|_T] > [[E]|_T]. | ||
| 22 | +[T,H|_T] > [[H|T]|_T]. | ||
| 23 | +[T,H|_T] > [[H|T]|_T]. | ||
| 24 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 25 | +[VAL,AN,ID,T|_T] > [var(ID, array(T,1,3), VAL, AN)|_T]. | ||
| 26 | +[H,T|_T] > [[H|T]|_T]. | ||
| 27 | +_T > [int|_T]. | ||
| 28 | +_T > ['X_INTRODUCED_70'|_T]. | ||
| 29 | +_T > [[]|_T]. | ||
| 30 | +_T > [lit(1,int)|_T]. | ||
| 31 | +_T > [lit(1,int)|_T]. | ||
| 32 | +_T > [lit(-1,int)|_T]. | ||
| 33 | +_T > [lit(-1,int)|_T]. | ||
| 34 | +[E|_T] > [[E]|_T]. | ||
| 35 | +[T,H|_T] > [[H|T]|_T]. | ||
| 36 | +[T,H|_T] > [[H|T]|_T]. | ||
| 37 | +[T,H|_T] > [[H|T]|_T]. | ||
| 38 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 39 | +[VAL,AN,ID,T|_T] > [var(ID, array(T,1,4), VAL, AN)|_T]. | ||
| 40 | +[H,T|_T] > [[H|T]|_T]. | ||
| 41 | +_T > [int(1,6)|_T]. | ||
| 42 | +_T > ['X_INTRODUCED_0'|_T]. | ||
| 43 | +_T > [[]|_T]. | ||
| 44 | +_T > [[]|_T]. | ||
| 45 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 46 | +[H,T|_T] > [[H|T]|_T]. | ||
| 47 | +_T > [int(1,6)|_T]. | ||
| 48 | +_T > ['X_INTRODUCED_1'|_T]. | ||
| 49 | +_T > [[]|_T]. | ||
| 50 | +_T > [[]|_T]. | ||
| 51 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 52 | +[H,T|_T] > [[H|T]|_T]. | ||
| 53 | +_T > [int(1,6)|_T]. | ||
| 54 | +_T > ['X_INTRODUCED_2'|_T]. | ||
| 55 | +_T > [[]|_T]. | ||
| 56 | +_T > [[]|_T]. | ||
| 57 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 58 | +[H,T|_T] > [[H|T]|_T]. | ||
| 59 | +_T > [int(1,6)|_T]. | ||
| 60 | +_T > ['X_INTRODUCED_3'|_T]. | ||
| 61 | +_T > [[]|_T]. | ||
| 62 | +_T > [[]|_T]. | ||
| 63 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 64 | +[H,T|_T] > [[H|T]|_T]. | ||
| 65 | +_T > [int(1,6)|_T]. | ||
| 66 | +_T > ['X_INTRODUCED_4'|_T]. | ||
| 67 | +_T > [[]|_T]. | ||
| 68 | +_T > [[]|_T]. | ||
| 69 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 70 | +[H,T|_T] > [[H|T]|_T]. | ||
| 71 | +_T > [int(1,6)|_T]. | ||
| 72 | +_T > ['X_INTRODUCED_5'|_T]. | ||
| 73 | +_T > [[]|_T]. | ||
| 74 | +_T > [[]|_T]. | ||
| 75 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 76 | +[H,T|_T] > [[H|T]|_T]. | ||
| 77 | +_T > [[5]|_T]. | ||
| 78 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 79 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 80 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 81 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 82 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 83 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 84 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 85 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 86 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 87 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 88 | +_T > ['X_INTRODUCED_7'|_T]. | ||
| 89 | +_T > [id('is_defined_var')|_T]. | ||
| 90 | +_T > [[]|_T]. | ||
| 91 | +[As, E|_T] > [[E|As]|_T]. | ||
| 92 | +_T > [[]|_T]. | ||
| 93 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 94 | +[H,T|_T] > [[H|T]|_T]. | ||
| 95 | +_T > [[5]|_T]. | ||
| 96 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 97 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 98 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 99 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 100 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 101 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 102 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 103 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 104 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 105 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 106 | +_T > ['X_INTRODUCED_8'|_T]. | ||
| 107 | +_T > [id('is_defined_var')|_T]. | ||
| 108 | +_T > [[]|_T]. | ||
| 109 | +[As, E|_T] > [[E|As]|_T]. | ||
| 110 | +_T > [[]|_T]. | ||
| 111 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 112 | +[H,T|_T] > [[H|T]|_T]. | ||
| 113 | +_T > [[5]|_T]. | ||
| 114 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 115 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 116 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 117 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 118 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 119 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 120 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 121 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 122 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 123 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 124 | +_T > ['X_INTRODUCED_9'|_T]. | ||
| 125 | +_T > [id('is_defined_var')|_T]. | ||
| 126 | +_T > [[]|_T]. | ||
| 127 | +[As, E|_T] > [[E|As]|_T]. | ||
| 128 | +_T > [[]|_T]. | ||
| 129 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 130 | +[H,T|_T] > [[H|T]|_T]. | ||
| 131 | +_T > [[5]|_T]. | ||
| 132 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 133 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 134 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 135 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 136 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 137 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 138 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 139 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 140 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 141 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 142 | +_T > ['X_INTRODUCED_10'|_T]. | ||
| 143 | +_T > [id('is_defined_var')|_T]. | ||
| 144 | +_T > [[]|_T]. | ||
| 145 | +[As, E|_T] > [[E|As]|_T]. | ||
| 146 | +_T > [[]|_T]. | ||
| 147 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 148 | +[H,T|_T] > [[H|T]|_T]. | ||
| 149 | +_T > [[5]|_T]. | ||
| 150 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 151 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 152 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 153 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 154 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 155 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 156 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 157 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 158 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 159 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 160 | +_T > ['X_INTRODUCED_11'|_T]. | ||
| 161 | +_T > [id('is_defined_var')|_T]. | ||
| 162 | +_T > [[]|_T]. | ||
| 163 | +[As, E|_T] > [[E|As]|_T]. | ||
| 164 | +_T > [[]|_T]. | ||
| 165 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 166 | +[H,T|_T] > [[H|T]|_T]. | ||
| 167 | +_T > [[5]|_T]. | ||
| 168 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 169 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 170 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 171 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 172 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 173 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 174 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 175 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 176 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 177 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 178 | +_T > ['X_INTRODUCED_14'|_T]. | ||
| 179 | +_T > [id('is_defined_var')|_T]. | ||
| 180 | +_T > [[]|_T]. | ||
| 181 | +[As, E|_T] > [[E|As]|_T]. | ||
| 182 | +_T > [[]|_T]. | ||
| 183 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 184 | +[H,T|_T] > [[H|T]|_T]. | ||
| 185 | +_T > [[5]|_T]. | ||
| 186 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 187 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 188 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 189 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 190 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 191 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 192 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 193 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 194 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 195 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 196 | +_T > ['X_INTRODUCED_15'|_T]. | ||
| 197 | +_T > [id('is_defined_var')|_T]. | ||
| 198 | +_T > [[]|_T]. | ||
| 199 | +[As, E|_T] > [[E|As]|_T]. | ||
| 200 | +_T > [[]|_T]. | ||
| 201 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 202 | +[H,T|_T] > [[H|T]|_T]. | ||
| 203 | +_T > [[5]|_T]. | ||
| 204 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 205 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 206 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 207 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 208 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 209 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 210 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 211 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 212 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 213 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 214 | +_T > ['X_INTRODUCED_16'|_T]. | ||
| 215 | +_T > [id('is_defined_var')|_T]. | ||
| 216 | +_T > [[]|_T]. | ||
| 217 | +[As, E|_T] > [[E|As]|_T]. | ||
| 218 | +_T > [[]|_T]. | ||
| 219 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 220 | +[H,T|_T] > [[H|T]|_T]. | ||
| 221 | +_T > [[5]|_T]. | ||
| 222 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 223 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 224 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 225 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 226 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 227 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 228 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 229 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 230 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 231 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 232 | +_T > ['X_INTRODUCED_17'|_T]. | ||
| 233 | +_T > [id('is_defined_var')|_T]. | ||
| 234 | +_T > [[]|_T]. | ||
| 235 | +[As, E|_T] > [[E|As]|_T]. | ||
| 236 | +_T > [[]|_T]. | ||
| 237 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 238 | +[H,T|_T] > [[H|T]|_T]. | ||
| 239 | +_T > [[5]|_T]. | ||
| 240 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 241 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 242 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 243 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 244 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 245 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 246 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 247 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 248 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 249 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 250 | +_T > ['X_INTRODUCED_21'|_T]. | ||
| 251 | +_T > [id('is_defined_var')|_T]. | ||
| 252 | +_T > [[]|_T]. | ||
| 253 | +[As, E|_T] > [[E|As]|_T]. | ||
| 254 | +_T > [[]|_T]. | ||
| 255 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 256 | +[H,T|_T] > [[H|T]|_T]. | ||
| 257 | +_T > [[5]|_T]. | ||
| 258 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 259 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 260 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 261 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 262 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 263 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 264 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 265 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 266 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 267 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 268 | +_T > ['X_INTRODUCED_22'|_T]. | ||
| 269 | +_T > [id('is_defined_var')|_T]. | ||
| 270 | +_T > [[]|_T]. | ||
| 271 | +[As, E|_T] > [[E|As]|_T]. | ||
| 272 | +_T > [[]|_T]. | ||
| 273 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 274 | +[H,T|_T] > [[H|T]|_T]. | ||
| 275 | +_T > [[5]|_T]. | ||
| 276 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 277 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 278 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 279 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 280 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 281 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 282 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 283 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 284 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 285 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 286 | +_T > ['X_INTRODUCED_23'|_T]. | ||
| 287 | +_T > [id('is_defined_var')|_T]. | ||
| 288 | +_T > [[]|_T]. | ||
| 289 | +[As, E|_T] > [[E|As]|_T]. | ||
| 290 | +_T > [[]|_T]. | ||
| 291 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 292 | +[H,T|_T] > [[H|T]|_T]. | ||
| 293 | +_T > [[5]|_T]. | ||
| 294 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 295 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 296 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 297 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 298 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 299 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 300 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 301 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 302 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 303 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 304 | +_T > ['X_INTRODUCED_28'|_T]. | ||
| 305 | +_T > [id('is_defined_var')|_T]. | ||
| 306 | +_T > [[]|_T]. | ||
| 307 | +[As, E|_T] > [[E|As]|_T]. | ||
| 308 | +_T > [[]|_T]. | ||
| 309 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 310 | +[H,T|_T] > [[H|T]|_T]. | ||
| 311 | +_T > [[5]|_T]. | ||
| 312 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 313 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 314 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 315 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 316 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 317 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 318 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 319 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 320 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 321 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 322 | +_T > ['X_INTRODUCED_29'|_T]. | ||
| 323 | +_T > [id('is_defined_var')|_T]. | ||
| 324 | +_T > [[]|_T]. | ||
| 325 | +[As, E|_T] > [[E|As]|_T]. | ||
| 326 | +_T > [[]|_T]. | ||
| 327 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 328 | +[H,T|_T] > [[H|T]|_T]. | ||
| 329 | +_T > [[5]|_T]. | ||
| 330 | +[Ls|_T] > [[4|Ls]|_T]. | ||
| 331 | +[Ls|_T] > [[3|Ls]|_T]. | ||
| 332 | +[Ls|_T] > [[2|Ls]|_T]. | ||
| 333 | +[Ls|_T] > [[1|Ls]|_T]. | ||
| 334 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
| 335 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
| 336 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
| 337 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
| 338 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
| 339 | +[Ls|_T] > [int(Ls)|_T]. | ||
| 340 | +_T > ['X_INTRODUCED_35'|_T]. | ||
| 341 | +_T > [id('is_defined_var')|_T]. | ||
| 342 | +_T > [[]|_T]. | ||
| 343 | +[As, E|_T] > [[E|As]|_T]. | ||
| 344 | +_T > [[]|_T]. | ||
| 345 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
| 346 | +[H,T|_T] > [[H|T]|_T]. | ||
| 347 | +_T > [int(1,6)|_T]. | ||
| 348 | +_T > ['costas'|_T]. | ||
| 349 | +_T > [lit([1, 2, 3, 4, 5, 6], set(int))|_T]. | ||
| 350 | +[E|_T] > [[E]|_T]. | ||
| 351 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 352 | +[E|_T] > [[E]|_T]. | ||
| 353 | +_T > [[]|_T]. | ||
| 354 | +[As, E|_T] > [[E|As]|_T]. | ||
| 355 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
| 356 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
| 357 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
| 358 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
| 359 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
| 360 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
| 361 | +[E|_T] > [[E]|_T]. | ||
| 362 | +[T,H|_T] > [[H|T]|_T]. | ||
| 363 | +[T,H|_T] > [[H|T]|_T]. | ||
| 364 | +[T,H|_T] > [[H|T]|_T]. | ||
| 365 | +[T,H|_T] > [[H|T]|_T]. | ||
| 366 | +[T,H|_T] > [[H|T]|_T]. | ||
| 367 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 368 | +[VAL,AN,ID,T|_T] > [var(ID, array(T,1,6), VAL, AN)|_T]. | ||
| 369 | +[H,T|_T] > [[H|T]|_T]. | ||
| 370 | +[X|_T] > [vars(X)|_T]. | ||
| 371 | +_T > [[]|_T]. | ||
| 372 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 373 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
| 374 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
| 375 | +[E|_T] > [[E]|_T]. | ||
| 376 | +[T,H|_T] > [[H|T]|_T]. | ||
| 377 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 378 | +_T > [lit(0,int)|_T]. | ||
| 379 | +[E|_T] > [[E]|_T]. | ||
| 380 | +[T,H|_T] > [[H|T]|_T]. | ||
| 381 | +[T,H|_T] > [[H|T]|_T]. | ||
| 382 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 383 | +_T > [[]|_T]. | ||
| 384 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 385 | +[H,T|_T] > [[H|T]|_T]. | ||
| 386 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 387 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
| 388 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
| 389 | +[E|_T] > [[E]|_T]. | ||
| 390 | +[T,H|_T] > [[H|T]|_T]. | ||
| 391 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 392 | +_T > [lit(0,int)|_T]. | ||
| 393 | +[E|_T] > [[E]|_T]. | ||
| 394 | +[T,H|_T] > [[H|T]|_T]. | ||
| 395 | +[T,H|_T] > [[H|T]|_T]. | ||
| 396 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 397 | +_T > [[]|_T]. | ||
| 398 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 399 | +[H,T|_T] > [[H|T]|_T]. | ||
| 400 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 401 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
| 402 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
| 403 | +[E|_T] > [[E]|_T]. | ||
| 404 | +[T,H|_T] > [[H|T]|_T]. | ||
| 405 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 406 | +_T > [lit(0,int)|_T]. | ||
| 407 | +[E|_T] > [[E]|_T]. | ||
| 408 | +[T,H|_T] > [[H|T]|_T]. | ||
| 409 | +[T,H|_T] > [[H|T]|_T]. | ||
| 410 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 411 | +_T > [[]|_T]. | ||
| 412 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 413 | +[H,T|_T] > [[H|T]|_T]. | ||
| 414 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 415 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
| 416 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
| 417 | +[E|_T] > [[E]|_T]. | ||
| 418 | +[T,H|_T] > [[H|T]|_T]. | ||
| 419 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 420 | +_T > [lit(0,int)|_T]. | ||
| 421 | +[E|_T] > [[E]|_T]. | ||
| 422 | +[T,H|_T] > [[H|T]|_T]. | ||
| 423 | +[T,H|_T] > [[H|T]|_T]. | ||
| 424 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 425 | +_T > [[]|_T]. | ||
| 426 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 427 | +[H,T|_T] > [[H|T]|_T]. | ||
| 428 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 429 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
| 430 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
| 431 | +[E|_T] > [[E]|_T]. | ||
| 432 | +[T,H|_T] > [[H|T]|_T]. | ||
| 433 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 434 | +_T > [lit(0,int)|_T]. | ||
| 435 | +[E|_T] > [[E]|_T]. | ||
| 436 | +[T,H|_T] > [[H|T]|_T]. | ||
| 437 | +[T,H|_T] > [[H|T]|_T]. | ||
| 438 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 439 | +_T > [[]|_T]. | ||
| 440 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 441 | +[H,T|_T] > [[H|T]|_T]. | ||
| 442 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 443 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
| 444 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
| 445 | +[E|_T] > [[E]|_T]. | ||
| 446 | +[T,H|_T] > [[H|T]|_T]. | ||
| 447 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 448 | +_T > [lit(0,int)|_T]. | ||
| 449 | +[E|_T] > [[E]|_T]. | ||
| 450 | +[T,H|_T] > [[H|T]|_T]. | ||
| 451 | +[T,H|_T] > [[H|T]|_T]. | ||
| 452 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 453 | +_T > [[]|_T]. | ||
| 454 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 455 | +[H,T|_T] > [[H|T]|_T]. | ||
| 456 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 457 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
| 458 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
| 459 | +[E|_T] > [[E]|_T]. | ||
| 460 | +[T,H|_T] > [[H|T]|_T]. | ||
| 461 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 462 | +_T > [lit(0,int)|_T]. | ||
| 463 | +[E|_T] > [[E]|_T]. | ||
| 464 | +[T,H|_T] > [[H|T]|_T]. | ||
| 465 | +[T,H|_T] > [[H|T]|_T]. | ||
| 466 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 467 | +_T > [[]|_T]. | ||
| 468 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 469 | +[H,T|_T] > [[H|T]|_T]. | ||
| 470 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 471 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
| 472 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
| 473 | +[E|_T] > [[E]|_T]. | ||
| 474 | +[T,H|_T] > [[H|T]|_T]. | ||
| 475 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 476 | +_T > [lit(0,int)|_T]. | ||
| 477 | +[E|_T] > [[E]|_T]. | ||
| 478 | +[T,H|_T] > [[H|T]|_T]. | ||
| 479 | +[T,H|_T] > [[H|T]|_T]. | ||
| 480 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 481 | +_T > [[]|_T]. | ||
| 482 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 483 | +[H,T|_T] > [[H|T]|_T]. | ||
| 484 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 485 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
| 486 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
| 487 | +[E|_T] > [[E]|_T]. | ||
| 488 | +[T,H|_T] > [[H|T]|_T]. | ||
| 489 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 490 | +_T > [lit(0,int)|_T]. | ||
| 491 | +[E|_T] > [[E]|_T]. | ||
| 492 | +[T,H|_T] > [[H|T]|_T]. | ||
| 493 | +[T,H|_T] > [[H|T]|_T]. | ||
| 494 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 495 | +_T > [[]|_T]. | ||
| 496 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 497 | +[H,T|_T] > [[H|T]|_T]. | ||
| 498 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 499 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
| 500 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
| 501 | +[E|_T] > [[E]|_T]. | ||
| 502 | +[T,H|_T] > [[H|T]|_T]. | ||
| 503 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 504 | +_T > [lit(0,int)|_T]. | ||
| 505 | +[E|_T] > [[E]|_T]. | ||
| 506 | +[T,H|_T] > [[H|T]|_T]. | ||
| 507 | +[T,H|_T] > [[H|T]|_T]. | ||
| 508 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 509 | +_T > [[]|_T]. | ||
| 510 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 511 | +[H,T|_T] > [[H|T]|_T]. | ||
| 512 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 513 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
| 514 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
| 515 | +[E|_T] > [[E]|_T]. | ||
| 516 | +[T,H|_T] > [[H|T]|_T]. | ||
| 517 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 518 | +_T > [lit(0,int)|_T]. | ||
| 519 | +[E|_T] > [[E]|_T]. | ||
| 520 | +[T,H|_T] > [[H|T]|_T]. | ||
| 521 | +[T,H|_T] > [[H|T]|_T]. | ||
| 522 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 523 | +_T > [[]|_T]. | ||
| 524 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 525 | +[H,T|_T] > [[H|T]|_T]. | ||
| 526 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 527 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
| 528 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
| 529 | +[E|_T] > [[E]|_T]. | ||
| 530 | +[T,H|_T] > [[H|T]|_T]. | ||
| 531 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 532 | +_T > [lit(0,int)|_T]. | ||
| 533 | +[E|_T] > [[E]|_T]. | ||
| 534 | +[T,H|_T] > [[H|T]|_T]. | ||
| 535 | +[T,H|_T] > [[H|T]|_T]. | ||
| 536 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 537 | +_T > [[]|_T]. | ||
| 538 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 539 | +[H,T|_T] > [[H|T]|_T]. | ||
| 540 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 541 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
| 542 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
| 543 | +[E|_T] > [[E]|_T]. | ||
| 544 | +[T,H|_T] > [[H|T]|_T]. | ||
| 545 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 546 | +_T > [lit(0,int)|_T]. | ||
| 547 | +[E|_T] > [[E]|_T]. | ||
| 548 | +[T,H|_T] > [[H|T]|_T]. | ||
| 549 | +[T,H|_T] > [[H|T]|_T]. | ||
| 550 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 551 | +_T > [[]|_T]. | ||
| 552 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 553 | +[H,T|_T] > [[H|T]|_T]. | ||
| 554 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 555 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
| 556 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
| 557 | +[E|_T] > [[E]|_T]. | ||
| 558 | +[T,H|_T] > [[H|T]|_T]. | ||
| 559 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 560 | +_T > [lit(0,int)|_T]. | ||
| 561 | +[E|_T] > [[E]|_T]. | ||
| 562 | +[T,H|_T] > [[H|T]|_T]. | ||
| 563 | +[T,H|_T] > [[H|T]|_T]. | ||
| 564 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 565 | +_T > [[]|_T]. | ||
| 566 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 567 | +[H,T|_T] > [[H|T]|_T]. | ||
| 568 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 569 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
| 570 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
| 571 | +[E|_T] > [[E]|_T]. | ||
| 572 | +[T,H|_T] > [[H|T]|_T]. | ||
| 573 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 574 | +_T > [lit(0,int)|_T]. | ||
| 575 | +[E|_T] > [[E]|_T]. | ||
| 576 | +[T,H|_T] > [[H|T]|_T]. | ||
| 577 | +[T,H|_T] > [[H|T]|_T]. | ||
| 578 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 579 | +_T > [[]|_T]. | ||
| 580 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 581 | +[H,T|_T] > [[H|T]|_T]. | ||
| 582 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 583 | +_T > [id('X_INTRODUCED_7')|_T]. | ||
| 584 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
| 585 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
| 586 | +[E|_T] > [[E]|_T]. | ||
| 587 | +[T,H|_T] > [[H|T]|_T]. | ||
| 588 | +[T,H|_T] > [[H|T]|_T]. | ||
| 589 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 590 | +_T > [lit(0,int)|_T]. | ||
| 591 | +[E|_T] > [[E]|_T]. | ||
| 592 | +[T,H|_T] > [[H|T]|_T]. | ||
| 593 | +[T,H|_T] > [[H|T]|_T]. | ||
| 594 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 595 | +_T > [id('X_INTRODUCED_7')|_T]. | ||
| 596 | +[E|_T] > [[E]|_T]. | ||
| 597 | +_T > [[]|_T]. | ||
| 598 | +[As, E|_T] > [[E|As]|_T]. | ||
| 599 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 600 | +[H,T|_T] > [[H|T]|_T]. | ||
| 601 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 602 | +_T > [id('X_INTRODUCED_8')|_T]. | ||
| 603 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
| 604 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
| 605 | +[E|_T] > [[E]|_T]. | ||
| 606 | +[T,H|_T] > [[H|T]|_T]. | ||
| 607 | +[T,H|_T] > [[H|T]|_T]. | ||
| 608 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 609 | +_T > [lit(0,int)|_T]. | ||
| 610 | +[E|_T] > [[E]|_T]. | ||
| 611 | +[T,H|_T] > [[H|T]|_T]. | ||
| 612 | +[T,H|_T] > [[H|T]|_T]. | ||
| 613 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 614 | +_T > [id('X_INTRODUCED_8')|_T]. | ||
| 615 | +[E|_T] > [[E]|_T]. | ||
| 616 | +_T > [[]|_T]. | ||
| 617 | +[As, E|_T] > [[E|As]|_T]. | ||
| 618 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 619 | +[H,T|_T] > [[H|T]|_T]. | ||
| 620 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 621 | +_T > [id('X_INTRODUCED_9')|_T]. | ||
| 622 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
| 623 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
| 624 | +[E|_T] > [[E]|_T]. | ||
| 625 | +[T,H|_T] > [[H|T]|_T]. | ||
| 626 | +[T,H|_T] > [[H|T]|_T]. | ||
| 627 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 628 | +_T > [lit(0,int)|_T]. | ||
| 629 | +[E|_T] > [[E]|_T]. | ||
| 630 | +[T,H|_T] > [[H|T]|_T]. | ||
| 631 | +[T,H|_T] > [[H|T]|_T]. | ||
| 632 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 633 | +_T > [id('X_INTRODUCED_9')|_T]. | ||
| 634 | +[E|_T] > [[E]|_T]. | ||
| 635 | +_T > [[]|_T]. | ||
| 636 | +[As, E|_T] > [[E|As]|_T]. | ||
| 637 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 638 | +[H,T|_T] > [[H|T]|_T]. | ||
| 639 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 640 | +_T > [id('X_INTRODUCED_10')|_T]. | ||
| 641 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
| 642 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
| 643 | +[E|_T] > [[E]|_T]. | ||
| 644 | +[T,H|_T] > [[H|T]|_T]. | ||
| 645 | +[T,H|_T] > [[H|T]|_T]. | ||
| 646 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 647 | +_T > [lit(0,int)|_T]. | ||
| 648 | +[E|_T] > [[E]|_T]. | ||
| 649 | +[T,H|_T] > [[H|T]|_T]. | ||
| 650 | +[T,H|_T] > [[H|T]|_T]. | ||
| 651 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 652 | +_T > [id('X_INTRODUCED_10')|_T]. | ||
| 653 | +[E|_T] > [[E]|_T]. | ||
| 654 | +_T > [[]|_T]. | ||
| 655 | +[As, E|_T] > [[E|As]|_T]. | ||
| 656 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 657 | +[H,T|_T] > [[H|T]|_T]. | ||
| 658 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 659 | +_T > [id('X_INTRODUCED_11')|_T]. | ||
| 660 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
| 661 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
| 662 | +[E|_T] > [[E]|_T]. | ||
| 663 | +[T,H|_T] > [[H|T]|_T]. | ||
| 664 | +[T,H|_T] > [[H|T]|_T]. | ||
| 665 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 666 | +_T > [lit(0,int)|_T]. | ||
| 667 | +[E|_T] > [[E]|_T]. | ||
| 668 | +[T,H|_T] > [[H|T]|_T]. | ||
| 669 | +[T,H|_T] > [[H|T]|_T]. | ||
| 670 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 671 | +_T > [id('X_INTRODUCED_11')|_T]. | ||
| 672 | +[E|_T] > [[E]|_T]. | ||
| 673 | +_T > [[]|_T]. | ||
| 674 | +[As, E|_T] > [[E|As]|_T]. | ||
| 675 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 676 | +[H,T|_T] > [[H|T]|_T]. | ||
| 677 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 678 | +_T > [id('X_INTRODUCED_14')|_T]. | ||
| 679 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
| 680 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
| 681 | +[E|_T] > [[E]|_T]. | ||
| 682 | +[T,H|_T] > [[H|T]|_T]. | ||
| 683 | +[T,H|_T] > [[H|T]|_T]. | ||
| 684 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 685 | +_T > [lit(0,int)|_T]. | ||
| 686 | +[E|_T] > [[E]|_T]. | ||
| 687 | +[T,H|_T] > [[H|T]|_T]. | ||
| 688 | +[T,H|_T] > [[H|T]|_T]. | ||
| 689 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 690 | +_T > [id('X_INTRODUCED_14')|_T]. | ||
| 691 | +[E|_T] > [[E]|_T]. | ||
| 692 | +_T > [[]|_T]. | ||
| 693 | +[As, E|_T] > [[E|As]|_T]. | ||
| 694 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 695 | +[H,T|_T] > [[H|T]|_T]. | ||
| 696 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 697 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
| 698 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
| 699 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
| 700 | +[E|_T] > [[E]|_T]. | ||
| 701 | +[T,H|_T] > [[H|T]|_T]. | ||
| 702 | +[T,H|_T] > [[H|T]|_T]. | ||
| 703 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 704 | +_T > [lit(0,int)|_T]. | ||
| 705 | +[E|_T] > [[E]|_T]. | ||
| 706 | +[T,H|_T] > [[H|T]|_T]. | ||
| 707 | +[T,H|_T] > [[H|T]|_T]. | ||
| 708 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 709 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
| 710 | +[E|_T] > [[E]|_T]. | ||
| 711 | +_T > [[]|_T]. | ||
| 712 | +[As, E|_T] > [[E|As]|_T]. | ||
| 713 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 714 | +[H,T|_T] > [[H|T]|_T]. | ||
| 715 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 716 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
| 717 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
| 718 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
| 719 | +[E|_T] > [[E]|_T]. | ||
| 720 | +[T,H|_T] > [[H|T]|_T]. | ||
| 721 | +[T,H|_T] > [[H|T]|_T]. | ||
| 722 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 723 | +_T > [lit(0,int)|_T]. | ||
| 724 | +[E|_T] > [[E]|_T]. | ||
| 725 | +[T,H|_T] > [[H|T]|_T]. | ||
| 726 | +[T,H|_T] > [[H|T]|_T]. | ||
| 727 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 728 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
| 729 | +[E|_T] > [[E]|_T]. | ||
| 730 | +_T > [[]|_T]. | ||
| 731 | +[As, E|_T] > [[E|As]|_T]. | ||
| 732 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 733 | +[H,T|_T] > [[H|T]|_T]. | ||
| 734 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 735 | +_T > [id('X_INTRODUCED_17')|_T]. | ||
| 736 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
| 737 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
| 738 | +[E|_T] > [[E]|_T]. | ||
| 739 | +[T,H|_T] > [[H|T]|_T]. | ||
| 740 | +[T,H|_T] > [[H|T]|_T]. | ||
| 741 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 742 | +_T > [lit(0,int)|_T]. | ||
| 743 | +[E|_T] > [[E]|_T]. | ||
| 744 | +[T,H|_T] > [[H|T]|_T]. | ||
| 745 | +[T,H|_T] > [[H|T]|_T]. | ||
| 746 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 747 | +_T > [id('X_INTRODUCED_17')|_T]. | ||
| 748 | +[E|_T] > [[E]|_T]. | ||
| 749 | +_T > [[]|_T]. | ||
| 750 | +[As, E|_T] > [[E|As]|_T]. | ||
| 751 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 752 | +[H,T|_T] > [[H|T]|_T]. | ||
| 753 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 754 | +_T > [id('X_INTRODUCED_21')|_T]. | ||
| 755 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
| 756 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
| 757 | +[E|_T] > [[E]|_T]. | ||
| 758 | +[T,H|_T] > [[H|T]|_T]. | ||
| 759 | +[T,H|_T] > [[H|T]|_T]. | ||
| 760 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 761 | +_T > [lit(0,int)|_T]. | ||
| 762 | +[E|_T] > [[E]|_T]. | ||
| 763 | +[T,H|_T] > [[H|T]|_T]. | ||
| 764 | +[T,H|_T] > [[H|T]|_T]. | ||
| 765 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 766 | +_T > [id('X_INTRODUCED_21')|_T]. | ||
| 767 | +[E|_T] > [[E]|_T]. | ||
| 768 | +_T > [[]|_T]. | ||
| 769 | +[As, E|_T] > [[E|As]|_T]. | ||
| 770 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 771 | +[H,T|_T] > [[H|T]|_T]. | ||
| 772 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 773 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
| 774 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
| 775 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
| 776 | +[E|_T] > [[E]|_T]. | ||
| 777 | +[T,H|_T] > [[H|T]|_T]. | ||
| 778 | +[T,H|_T] > [[H|T]|_T]. | ||
| 779 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 780 | +_T > [lit(0,int)|_T]. | ||
| 781 | +[E|_T] > [[E]|_T]. | ||
| 782 | +[T,H|_T] > [[H|T]|_T]. | ||
| 783 | +[T,H|_T] > [[H|T]|_T]. | ||
| 784 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 785 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
| 786 | +[E|_T] > [[E]|_T]. | ||
| 787 | +_T > [[]|_T]. | ||
| 788 | +[As, E|_T] > [[E|As]|_T]. | ||
| 789 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 790 | +[H,T|_T] > [[H|T]|_T]. | ||
| 791 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 792 | +_T > [id('X_INTRODUCED_23')|_T]. | ||
| 793 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
| 794 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
| 795 | +[E|_T] > [[E]|_T]. | ||
| 796 | +[T,H|_T] > [[H|T]|_T]. | ||
| 797 | +[T,H|_T] > [[H|T]|_T]. | ||
| 798 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 799 | +_T > [lit(0,int)|_T]. | ||
| 800 | +[E|_T] > [[E]|_T]. | ||
| 801 | +[T,H|_T] > [[H|T]|_T]. | ||
| 802 | +[T,H|_T] > [[H|T]|_T]. | ||
| 803 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 804 | +_T > [id('X_INTRODUCED_23')|_T]. | ||
| 805 | +[E|_T] > [[E]|_T]. | ||
| 806 | +_T > [[]|_T]. | ||
| 807 | +[As, E|_T] > [[E|As]|_T]. | ||
| 808 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 809 | +[H,T|_T] > [[H|T]|_T]. | ||
| 810 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 811 | +_T > [id('X_INTRODUCED_28')|_T]. | ||
| 812 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
| 813 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
| 814 | +[E|_T] > [[E]|_T]. | ||
| 815 | +[T,H|_T] > [[H|T]|_T]. | ||
| 816 | +[T,H|_T] > [[H|T]|_T]. | ||
| 817 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 818 | +_T > [lit(0,int)|_T]. | ||
| 819 | +[E|_T] > [[E]|_T]. | ||
| 820 | +[T,H|_T] > [[H|T]|_T]. | ||
| 821 | +[T,H|_T] > [[H|T]|_T]. | ||
| 822 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 823 | +_T > [id('X_INTRODUCED_28')|_T]. | ||
| 824 | +[E|_T] > [[E]|_T]. | ||
| 825 | +_T > [[]|_T]. | ||
| 826 | +[As, E|_T] > [[E|As]|_T]. | ||
| 827 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 828 | +[H,T|_T] > [[H|T]|_T]. | ||
| 829 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 830 | +_T > [id('X_INTRODUCED_29')|_T]. | ||
| 831 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
| 832 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
| 833 | +[E|_T] > [[E]|_T]. | ||
| 834 | +[T,H|_T] > [[H|T]|_T]. | ||
| 835 | +[T,H|_T] > [[H|T]|_T]. | ||
| 836 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 837 | +_T > [lit(0,int)|_T]. | ||
| 838 | +[E|_T] > [[E]|_T]. | ||
| 839 | +[T,H|_T] > [[H|T]|_T]. | ||
| 840 | +[T,H|_T] > [[H|T]|_T]. | ||
| 841 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 842 | +_T > [id('X_INTRODUCED_29')|_T]. | ||
| 843 | +[E|_T] > [[E]|_T]. | ||
| 844 | +_T > [[]|_T]. | ||
| 845 | +[As, E|_T] > [[E|As]|_T]. | ||
| 846 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 847 | +[H,T|_T] > [[H|T]|_T]. | ||
| 848 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
| 849 | +_T > [id('X_INTRODUCED_35')|_T]. | ||
| 850 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
| 851 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
| 852 | +[E|_T] > [[E]|_T]. | ||
| 853 | +[T,H|_T] > [[H|T]|_T]. | ||
| 854 | +[T,H|_T] > [[H|T]|_T]. | ||
| 855 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 856 | +_T > [lit(0,int)|_T]. | ||
| 857 | +[E|_T] > [[E]|_T]. | ||
| 858 | +[T,H|_T] > [[H|T]|_T]. | ||
| 859 | +[T,H|_T] > [[H|T]|_T]. | ||
| 860 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 861 | +_T > [id('X_INTRODUCED_35')|_T]. | ||
| 862 | +[E|_T] > [[E]|_T]. | ||
| 863 | +_T > [[]|_T]. | ||
| 864 | +[As, E|_T] > [[E|As]|_T]. | ||
| 865 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 866 | +[H,T|_T] > [[H|T]|_T]. | ||
| 867 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 868 | +_T > [id('X_INTRODUCED_7')|_T]. | ||
| 869 | +_T > [id('X_INTRODUCED_8')|_T]. | ||
| 870 | +[E|_T] > [[E]|_T]. | ||
| 871 | +[T,H|_T] > [[H|T]|_T]. | ||
| 872 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 873 | +_T > [lit(0,int)|_T]. | ||
| 874 | +[E|_T] > [[E]|_T]. | ||
| 875 | +[T,H|_T] > [[H|T]|_T]. | ||
| 876 | +[T,H|_T] > [[H|T]|_T]. | ||
| 877 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 878 | +_T > [[]|_T]. | ||
| 879 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 880 | +[H,T|_T] > [[H|T]|_T]. | ||
| 881 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 882 | +_T > [id('X_INTRODUCED_7')|_T]. | ||
| 883 | +_T > [id('X_INTRODUCED_9')|_T]. | ||
| 884 | +[E|_T] > [[E]|_T]. | ||
| 885 | +[T,H|_T] > [[H|T]|_T]. | ||
| 886 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 887 | +_T > [lit(0,int)|_T]. | ||
| 888 | +[E|_T] > [[E]|_T]. | ||
| 889 | +[T,H|_T] > [[H|T]|_T]. | ||
| 890 | +[T,H|_T] > [[H|T]|_T]. | ||
| 891 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 892 | +_T > [[]|_T]. | ||
| 893 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 894 | +[H,T|_T] > [[H|T]|_T]. | ||
| 895 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 896 | +_T > [id('X_INTRODUCED_7')|_T]. | ||
| 897 | +_T > [id('X_INTRODUCED_10')|_T]. | ||
| 898 | +[E|_T] > [[E]|_T]. | ||
| 899 | +[T,H|_T] > [[H|T]|_T]. | ||
| 900 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 901 | +_T > [lit(0,int)|_T]. | ||
| 902 | +[E|_T] > [[E]|_T]. | ||
| 903 | +[T,H|_T] > [[H|T]|_T]. | ||
| 904 | +[T,H|_T] > [[H|T]|_T]. | ||
| 905 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 906 | +_T > [[]|_T]. | ||
| 907 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 908 | +[H,T|_T] > [[H|T]|_T]. | ||
| 909 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 910 | +_T > [id('X_INTRODUCED_7')|_T]. | ||
| 911 | +_T > [id('X_INTRODUCED_11')|_T]. | ||
| 912 | +[E|_T] > [[E]|_T]. | ||
| 913 | +[T,H|_T] > [[H|T]|_T]. | ||
| 914 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 915 | +_T > [lit(0,int)|_T]. | ||
| 916 | +[E|_T] > [[E]|_T]. | ||
| 917 | +[T,H|_T] > [[H|T]|_T]. | ||
| 918 | +[T,H|_T] > [[H|T]|_T]. | ||
| 919 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 920 | +_T > [[]|_T]. | ||
| 921 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 922 | +[H,T|_T] > [[H|T]|_T]. | ||
| 923 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 924 | +_T > [id('X_INTRODUCED_8')|_T]. | ||
| 925 | +_T > [id('X_INTRODUCED_9')|_T]. | ||
| 926 | +[E|_T] > [[E]|_T]. | ||
| 927 | +[T,H|_T] > [[H|T]|_T]. | ||
| 928 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 929 | +_T > [lit(0,int)|_T]. | ||
| 930 | +[E|_T] > [[E]|_T]. | ||
| 931 | +[T,H|_T] > [[H|T]|_T]. | ||
| 932 | +[T,H|_T] > [[H|T]|_T]. | ||
| 933 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 934 | +_T > [[]|_T]. | ||
| 935 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 936 | +[H,T|_T] > [[H|T]|_T]. | ||
| 937 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 938 | +_T > [id('X_INTRODUCED_8')|_T]. | ||
| 939 | +_T > [id('X_INTRODUCED_10')|_T]. | ||
| 940 | +[E|_T] > [[E]|_T]. | ||
| 941 | +[T,H|_T] > [[H|T]|_T]. | ||
| 942 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 943 | +_T > [lit(0,int)|_T]. | ||
| 944 | +[E|_T] > [[E]|_T]. | ||
| 945 | +[T,H|_T] > [[H|T]|_T]. | ||
| 946 | +[T,H|_T] > [[H|T]|_T]. | ||
| 947 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 948 | +_T > [[]|_T]. | ||
| 949 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 950 | +[H,T|_T] > [[H|T]|_T]. | ||
| 951 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 952 | +_T > [id('X_INTRODUCED_8')|_T]. | ||
| 953 | +_T > [id('X_INTRODUCED_11')|_T]. | ||
| 954 | +[E|_T] > [[E]|_T]. | ||
| 955 | +[T,H|_T] > [[H|T]|_T]. | ||
| 956 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 957 | +_T > [lit(0,int)|_T]. | ||
| 958 | +[E|_T] > [[E]|_T]. | ||
| 959 | +[T,H|_T] > [[H|T]|_T]. | ||
| 960 | +[T,H|_T] > [[H|T]|_T]. | ||
| 961 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 962 | +_T > [[]|_T]. | ||
| 963 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 964 | +[H,T|_T] > [[H|T]|_T]. | ||
| 965 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 966 | +_T > [id('X_INTRODUCED_9')|_T]. | ||
| 967 | +_T > [id('X_INTRODUCED_10')|_T]. | ||
| 968 | +[E|_T] > [[E]|_T]. | ||
| 969 | +[T,H|_T] > [[H|T]|_T]. | ||
| 970 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 971 | +_T > [lit(0,int)|_T]. | ||
| 972 | +[E|_T] > [[E]|_T]. | ||
| 973 | +[T,H|_T] > [[H|T]|_T]. | ||
| 974 | +[T,H|_T] > [[H|T]|_T]. | ||
| 975 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 976 | +_T > [[]|_T]. | ||
| 977 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 978 | +[H,T|_T] > [[H|T]|_T]. | ||
| 979 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 980 | +_T > [id('X_INTRODUCED_9')|_T]. | ||
| 981 | +_T > [id('X_INTRODUCED_11')|_T]. | ||
| 982 | +[E|_T] > [[E]|_T]. | ||
| 983 | +[T,H|_T] > [[H|T]|_T]. | ||
| 984 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 985 | +_T > [lit(0,int)|_T]. | ||
| 986 | +[E|_T] > [[E]|_T]. | ||
| 987 | +[T,H|_T] > [[H|T]|_T]. | ||
| 988 | +[T,H|_T] > [[H|T]|_T]. | ||
| 989 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 990 | +_T > [[]|_T]. | ||
| 991 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 992 | +[H,T|_T] > [[H|T]|_T]. | ||
| 993 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 994 | +_T > [id('X_INTRODUCED_10')|_T]. | ||
| 995 | +_T > [id('X_INTRODUCED_11')|_T]. | ||
| 996 | +[E|_T] > [[E]|_T]. | ||
| 997 | +[T,H|_T] > [[H|T]|_T]. | ||
| 998 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 999 | +_T > [lit(0,int)|_T]. | ||
| 1000 | +[E|_T] > [[E]|_T]. | ||
| 1001 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1002 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1003 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 1004 | +_T > [[]|_T]. | ||
| 1005 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1006 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1007 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 1008 | +_T > [id('X_INTRODUCED_14')|_T]. | ||
| 1009 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
| 1010 | +[E|_T] > [[E]|_T]. | ||
| 1011 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1012 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1013 | +_T > [lit(0,int)|_T]. | ||
| 1014 | +[E|_T] > [[E]|_T]. | ||
| 1015 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1016 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1017 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 1018 | +_T > [[]|_T]. | ||
| 1019 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1020 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1021 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 1022 | +_T > [id('X_INTRODUCED_14')|_T]. | ||
| 1023 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
| 1024 | +[E|_T] > [[E]|_T]. | ||
| 1025 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1026 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1027 | +_T > [lit(0,int)|_T]. | ||
| 1028 | +[E|_T] > [[E]|_T]. | ||
| 1029 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1030 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1031 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 1032 | +_T > [[]|_T]. | ||
| 1033 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1034 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1035 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 1036 | +_T > [id('X_INTRODUCED_14')|_T]. | ||
| 1037 | +_T > [id('X_INTRODUCED_17')|_T]. | ||
| 1038 | +[E|_T] > [[E]|_T]. | ||
| 1039 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1040 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1041 | +_T > [lit(0,int)|_T]. | ||
| 1042 | +[E|_T] > [[E]|_T]. | ||
| 1043 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1044 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1045 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 1046 | +_T > [[]|_T]. | ||
| 1047 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1048 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1049 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 1050 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
| 1051 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
| 1052 | +[E|_T] > [[E]|_T]. | ||
| 1053 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1054 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1055 | +_T > [lit(0,int)|_T]. | ||
| 1056 | +[E|_T] > [[E]|_T]. | ||
| 1057 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1058 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1059 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 1060 | +_T > [[]|_T]. | ||
| 1061 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1062 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1063 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 1064 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
| 1065 | +_T > [id('X_INTRODUCED_17')|_T]. | ||
| 1066 | +[E|_T] > [[E]|_T]. | ||
| 1067 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1068 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1069 | +_T > [lit(0,int)|_T]. | ||
| 1070 | +[E|_T] > [[E]|_T]. | ||
| 1071 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1072 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1073 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 1074 | +_T > [[]|_T]. | ||
| 1075 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1076 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1077 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 1078 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
| 1079 | +_T > [id('X_INTRODUCED_17')|_T]. | ||
| 1080 | +[E|_T] > [[E]|_T]. | ||
| 1081 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1082 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1083 | +_T > [lit(0,int)|_T]. | ||
| 1084 | +[E|_T] > [[E]|_T]. | ||
| 1085 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1086 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1087 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 1088 | +_T > [[]|_T]. | ||
| 1089 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1090 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1091 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 1092 | +_T > [id('X_INTRODUCED_21')|_T]. | ||
| 1093 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
| 1094 | +[E|_T] > [[E]|_T]. | ||
| 1095 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1096 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1097 | +_T > [lit(0,int)|_T]. | ||
| 1098 | +[E|_T] > [[E]|_T]. | ||
| 1099 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1100 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1101 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 1102 | +_T > [[]|_T]. | ||
| 1103 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1104 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1105 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 1106 | +_T > [id('X_INTRODUCED_21')|_T]. | ||
| 1107 | +_T > [id('X_INTRODUCED_23')|_T]. | ||
| 1108 | +[E|_T] > [[E]|_T]. | ||
| 1109 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1110 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1111 | +_T > [lit(0,int)|_T]. | ||
| 1112 | +[E|_T] > [[E]|_T]. | ||
| 1113 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1114 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1115 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 1116 | +_T > [[]|_T]. | ||
| 1117 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1118 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1119 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 1120 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
| 1121 | +_T > [id('X_INTRODUCED_23')|_T]. | ||
| 1122 | +[E|_T] > [[E]|_T]. | ||
| 1123 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1124 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1125 | +_T > [lit(0,int)|_T]. | ||
| 1126 | +[E|_T] > [[E]|_T]. | ||
| 1127 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1128 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1129 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 1130 | +_T > [[]|_T]. | ||
| 1131 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1132 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1133 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 1134 | +_T > [id('X_INTRODUCED_28')|_T]. | ||
| 1135 | +_T > [id('X_INTRODUCED_29')|_T]. | ||
| 1136 | +[E|_T] > [[E]|_T]. | ||
| 1137 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1138 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1139 | +_T > [lit(0,int)|_T]. | ||
| 1140 | +[E|_T] > [[E]|_T]. | ||
| 1141 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1142 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1143 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
| 1144 | +_T > [[]|_T]. | ||
| 1145 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1146 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1147 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
| 1148 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
| 1149 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
| 1150 | +[E|_T] > [[E]|_T]. | ||
| 1151 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1152 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1153 | +_T > [lit(-1,int)|_T]. | ||
| 1154 | +[E|_T] > [[E]|_T]. | ||
| 1155 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1156 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1157 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_le'|AL]. | ||
| 1158 | +_T > [[]|_T]. | ||
| 1159 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1160 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1161 | +_T > [id('X_INTRODUCED_70')|_T]. | ||
| 1162 | +_T > [id('X_INTRODUCED_8')|_T]. | ||
| 1163 | +_T > [id('X_INTRODUCED_21')|_T]. | ||
| 1164 | +_T > [id('X_INTRODUCED_14')|_T]. | ||
| 1165 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
| 1166 | +[E|_T] > [[E]|_T]. | ||
| 1167 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1168 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1169 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1170 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1171 | +_T > [lit(0,int)|_T]. | ||
| 1172 | +[E|_T] > [[E]|_T]. | ||
| 1173 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1174 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1175 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 1176 | +_T > [[]|_T]. | ||
| 1177 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1178 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1179 | +_T > [id('X_INTRODUCED_70')|_T]. | ||
| 1180 | +_T > [id('X_INTRODUCED_9')|_T]. | ||
| 1181 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
| 1182 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
| 1183 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
| 1184 | +[E|_T] > [[E]|_T]. | ||
| 1185 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1186 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1187 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1188 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1189 | +_T > [lit(0,int)|_T]. | ||
| 1190 | +[E|_T] > [[E]|_T]. | ||
| 1191 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1192 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1193 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 1194 | +_T > [[]|_T]. | ||
| 1195 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1196 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1197 | +_T > [id('X_INTRODUCED_70')|_T]. | ||
| 1198 | +_T > [id('X_INTRODUCED_10')|_T]. | ||
| 1199 | +_T > [id('X_INTRODUCED_23')|_T]. | ||
| 1200 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
| 1201 | +_T > [id('X_INTRODUCED_17')|_T]. | ||
| 1202 | +[E|_T] > [[E]|_T]. | ||
| 1203 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1204 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1205 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1206 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1207 | +_T > [lit(0,int)|_T]. | ||
| 1208 | +[E|_T] > [[E]|_T]. | ||
| 1209 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1210 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1211 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 1212 | +_T > [[]|_T]. | ||
| 1213 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1214 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1215 | +_T > [id('X_INTRODUCED_70')|_T]. | ||
| 1216 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
| 1217 | +_T > [id('X_INTRODUCED_28')|_T]. | ||
| 1218 | +_T > [id('X_INTRODUCED_21')|_T]. | ||
| 1219 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
| 1220 | +[E|_T] > [[E]|_T]. | ||
| 1221 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1222 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1223 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1224 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1225 | +_T > [lit(0,int)|_T]. | ||
| 1226 | +[E|_T] > [[E]|_T]. | ||
| 1227 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1228 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1229 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 1230 | +_T > [[]|_T]. | ||
| 1231 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1232 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1233 | +_T > [id('X_INTRODUCED_70')|_T]. | ||
| 1234 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
| 1235 | +_T > [id('X_INTRODUCED_29')|_T]. | ||
| 1236 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
| 1237 | +_T > [id('X_INTRODUCED_23')|_T]. | ||
| 1238 | +[E|_T] > [[E]|_T]. | ||
| 1239 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1240 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1241 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1242 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1243 | +_T > [lit(0,int)|_T]. | ||
| 1244 | +[E|_T] > [[E]|_T]. | ||
| 1245 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1246 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1247 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 1248 | +_T > [[]|_T]. | ||
| 1249 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1250 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1251 | +_T > [id('X_INTRODUCED_70')|_T]. | ||
| 1252 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
| 1253 | +_T > [id('X_INTRODUCED_35')|_T]. | ||
| 1254 | +_T > [id('X_INTRODUCED_28')|_T]. | ||
| 1255 | +_T > [id('X_INTRODUCED_29')|_T]. | ||
| 1256 | +[E|_T] > [[E]|_T]. | ||
| 1257 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1258 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1259 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1260 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
| 1261 | +_T > [lit(0,int)|_T]. | ||
| 1262 | +[E|_T] > [[E]|_T]. | ||
| 1263 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1264 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1265 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
| 1266 | +_T > [[]|_T]. | ||
| 1267 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
| 1268 | +[H,T|_T] > [[H|T]|_T]. | ||
| 1269 | +[X|_T] > [constrs(X)|_T]. | ||
| 1270 | +_T > [id('costas')|_T]. | ||
| 1271 | +_T > [id('input_order')|_T]. | ||
| 1272 | +_T > [id('indomain_min')|_T]. | ||
| 1273 | +_T > [id('complete')|_T]. | ||
| 1274 | +[E|_T] > [[E]|_T]. | ||
| 1275 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1276 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1277 | +[T,H|_T] > [[H|T]|_T]. | ||
| 1278 | +_T > [[]|_T]. | ||
| 1279 | +[As, E|_T] > [[E|As]|_T]. | ||
| 1280 | +_T > [satisfy|_T]. | ||
| 1281 | +[S,A|_T] > [solve(S, A)|_T]. | ||
| 1282 | +[S,C,V,P|_T] > [fzn(P, V, C, S)|_T]. |
fzn-parser/fznslurp.pl
| @@ -13,11 +13,16 @@ main([]). | @@ -13,11 +13,16 @@ main([]). | ||
| 13 | 13 | ||
| 14 | action(load(F)) :- !, see(F), action(load), seen. | 14 | action(load(F)) :- !, see(F), action(load), seen. |
| 15 | action(load) :- !, load_ast(AST), g_assign(ast, AST). | 15 | action(load) :- !, load_ast(AST), g_assign(ast, AST). |
| 16 | +action(dump(A)) :- !, dump_ast(A). | ||
| 16 | action(dump) :- !, g_read(ast, AST), dump_ast(AST). | 17 | action(dump) :- !, g_read(ast, AST), dump_ast(AST). |
| 17 | action(name) :- !, | 18 | action(name) :- !, |
| 18 | g_read(ast, AST), | 19 | g_read(ast, AST), |
| 19 | - sa_names(AST, NAST), | ||
| 20 | - g_assign(ast, NAST). | 20 | + sa_names(AST, NAST, ST), |
| 21 | + g_assign(ast_n, NAST+ST). | ||
| 22 | +action(type) :- !, | ||
| 23 | + g_read(ast_n, AST+ST), | ||
| 24 | + sa_types(AST, ST), | ||
| 25 | + g_assign(ast_t, AST+ST). | ||
| 21 | action(halt) :- !, halt. | 26 | action(halt) :- !, halt. |
| 22 | action(debug) :- g_read(ast_debug, true), !, g_assign(ast_debug, false). | 27 | action(debug) :- g_read(ast_debug, true), !, g_assign(ast_debug, false). |
| 23 | action(debug) :- !, g_assign(ast_debug, true). | 28 | action(debug) :- !, g_assign(ast_debug, true). |
fzn-parser/semantic.pl
| 1 | % == No, Emacs this is -*-Prolog-*- code, not what you thought... ============= | 1 | % == No, Emacs this is -*-Prolog-*- code, not what you thought... ============= |
| 2 | 2 | ||
| 3 | +% == NAMES ==================================================================== | ||
| 4 | + | ||
| 5 | +% -- sa_names(AST_IN, AST_OUT, ST) -------------------------------------------- | ||
| 6 | +% | ||
| 7 | +% sa_names/3: do name analysis (replace identifiers by their dict. entry) | ||
| 8 | + | ||
| 3 | sa_names(fzn(preds(IP), vars(IV), constrs(IC), SOLVE), | 9 | sa_names(fzn(preds(IP), vars(IV), constrs(IC), SOLVE), |
| 4 | - fzn(preds(OP), vars(OV), constrs(OC), SOLVE, ST)) :- | 10 | + fzn(preds(OP), vars(OV), constrs(OC), SOLVE), ST) :- |
| 5 | sa_n_traverse(IP, OP, ST), % predicates | 11 | sa_n_traverse(IP, OP, ST), % predicates |
| 6 | sa_n_traverse(IV, OV, ST), % variables | 12 | sa_n_traverse(IV, OV, ST), % variables |
| 7 | sa_n_traverse(IC, OC, ST). % constraints | 13 | sa_n_traverse(IC, OC, ST). % constraints |
| @@ -17,14 +23,22 @@ sa_n_traverse([_|Ns], NNs, ST) :- !, % ignore failing nodes (beware!) | @@ -17,14 +23,22 @@ sa_n_traverse([_|Ns], NNs, ST) :- !, % ignore failing nodes (beware!) | ||
| 17 | 23 | ||
| 18 | sa_n_traverse(N, NN, ST) :- sa_n(N, NN, ST). % non-list case | 24 | sa_n_traverse(N, NN, ST) :- sa_n(N, NN, ST). % non-list case |
| 19 | 25 | ||
| 26 | + | ||
| 20 | % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 27 | % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| 21 | % | 28 | % |
| 22 | % sa_n(AST_N_IN, AST_N_OUT, ST) | 29 | % sa_n(AST_N_IN, AST_N_OUT, ST) |
| 23 | % | 30 | % |
| 31 | +% arguments: | ||
| 32 | +% AST_N_IN - input AST node | ||
| 33 | +% AST_N_OUT - output AST node (same structure, rewritten) | ||
| 34 | +% ST - symbol table (gets extended) | ||
| 35 | +% | ||
| 24 | % handle all AST cases: | 36 | % handle all AST cases: |
| 25 | -% var(N,T,I,A) - variable declaration | ||
| 26 | -% lit(V,T) - literal with type | ||
| 27 | -% | 37 | +% var(N,T,I,A) - Name, Type, Initializer, Attrib -- variable declaration |
| 38 | +% lit(V,T) - Value, Type -- literal with type | ||
| 39 | +% id(N) - Name -- identifier | ||
| 40 | +% constraint(C,A) - Constraint, Attrib -- constraint | ||
| 41 | +% | ||
| 28 | 42 | ||
| 29 | sa_n(var(N,T,I,A), V, ST) :- | 43 | sa_n(var(N,T,I,A), V, ST) :- |
| 30 | sa_attribs(A, AX, ST), | 44 | sa_attribs(A, AX, ST), |
| @@ -32,18 +46,58 @@ sa_n(var(N,T,I,A), V, ST) :- | @@ -32,18 +46,58 @@ sa_n(var(N,T,I,A), V, ST) :- | ||
| 32 | V=var(N,T,NI,AX), % new AST node becomes ST entry value | 46 | V=var(N,T,NI,AX), % new AST node becomes ST entry value |
| 33 | st_insert(ST, N, V). | 47 | st_insert(ST, N, V). |
| 34 | 48 | ||
| 49 | + | ||
| 35 | sa_n(lit(E,array(T)), lit(NE, array(T)), ST) :- | 50 | sa_n(lit(E,array(T)), lit(NE, array(T)), ST) :- |
| 36 | sa_n_traverse(E, NE, ST). | 51 | sa_n_traverse(E, NE, ST). |
| 37 | sa_n(lit(E,int), lit(E,int), _ST). | 52 | sa_n(lit(E,int), lit(E,int), _ST). |
| 38 | sa_n(lit(E,float), lit(E,float), _ST). | 53 | sa_n(lit(E,float), lit(E,float), _ST). |
| 39 | sa_n(lit(E,string), lit(E,string), _ST). | 54 | sa_n(lit(E,string), lit(E,string), _ST). |
| 40 | 55 | ||
| 56 | + | ||
| 41 | sa_n(id(N), V, ST) :- st_lookup(ST, N, V), !. | 57 | sa_n(id(N), V, ST) :- st_lookup(ST, N, V), !. |
| 42 | -sa_n(id(N), V, ST) :- V=id(N,_), % type as yet unknown | 58 | +sa_n(id(N), V, ST) :- V=var(N,_,_,_), % type as yet unknown |
| 43 | st_insert(ST, N, V). | 59 | st_insert(ST, N, V). |
| 44 | 60 | ||
| 61 | + | ||
| 62 | +sa_n(constraint(CE, AT), constraint(NCE, AT), ST) :- | ||
| 63 | + CE=..[C|AS], | ||
| 64 | + sa_n_traverse(AS, NAS, ST), | ||
| 65 | + NCE=..[C|NAS]. | ||
| 66 | + | ||
| 45 | % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 67 | % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| 46 | 68 | ||
| 69 | +% == TYPES ==================================================================== | ||
| 70 | + | ||
| 71 | +% -- sa_types(AST, ST) -------------------------------------------------------- | ||
| 72 | +% | ||
| 73 | +% sa_types/2: do type analysis (traverse AST enforcing type correctness). | ||
| 74 | +% as a side-effect, it will do type inference. | ||
| 75 | + | ||
| 76 | +sa_types(fzn(_PS, vars(VS), constrs(CS), _S), ST) :- | ||
| 77 | + sa_t_traverse(VS, ST), | ||
| 78 | + sa_t_traverse(CS, ST). | ||
| 79 | + | ||
| 80 | +% ----------------------------------------------------------------------------- | ||
| 81 | + | ||
| 82 | +sa_t_traverse([], _ST) :- !. | ||
| 83 | +sa_t_traverse([N|Ns], ST) :- | ||
| 84 | + sa_t(N, ST), !, | ||
| 85 | + sa_t_traverse(Ns, ST). | ||
| 86 | +sa_t_traverse([_|Ns], ST) :- !, % ignore failing nodes (beware!) | ||
| 87 | + sa_t_traverse(Ns, ST). | ||
| 88 | + | ||
| 89 | +sa_t_traverse(N, ST) :- sa_t(N, ST). % non-list case | ||
| 90 | + | ||
| 91 | +% -- sa_t(NODE, ST) ----------------------------------------------------------- | ||
| 92 | + | ||
| 93 | +sa_t(var(_N,T,I,_A), _ST) :- type(I,T). | ||
| 94 | +sa_t(lit(E,T), _ST) :- type(lit(E,T), T). | ||
| 95 | +sa_t(constraint(CE, _AT), ST) :- | ||
| 96 | + CE=..[_|AS], | ||
| 97 | + sa_t_traverse(AS, ST). | ||
| 98 | + | ||
| 99 | +% ============================================================================= | ||
| 100 | + | ||
| 47 | sa_attribs([A|As], [NA|NAs], ST) :- | 101 | sa_attribs([A|As], [NA|NAs], ST) :- |
| 48 | sa_attrib(A, NA, ST), !, | 102 | sa_attrib(A, NA, ST), !, |
| 49 | sa_attribs(As, NAs, ST). | 103 | sa_attribs(As, NAs, ST). |
| @@ -55,3 +109,4 @@ sa_attribs([], [], _). | @@ -55,3 +109,4 @@ sa_attribs([], [], _). | ||
| 55 | sa_attrib(id(output_var), output, _). | 109 | sa_attrib(id(output_var), output, _). |
| 56 | 110 | ||
| 57 | % ----------------------------------------------------------------------------- | 111 | % ----------------------------------------------------------------------------- |
| 112 | + |
fzn-parser/types.pl
| 1 | % == No, Emacs this is -*-Prolog-*- code, not what you thought... ============= | 1 | % == No, Emacs this is -*-Prolog-*- code, not what you thought... ============= |
| 2 | 2 | ||
| 3 | -% sa_type/2 - locate the TYPE field | 3 | +% -- type(NODE, TYPE) --------------------------------------------------------- |
| 4 | +% | ||
| 5 | +% type/2: Extract type from AST node. | ||
| 4 | 6 | ||
| 5 | -sa_type(var(_NAME,TYPE,_INIT,_ANNOT), TYPE). | ||
| 6 | -sa_type(constraint(_NAME)). | 7 | +type(var(_,T,_,_), T) :- type(T). |
| 8 | +type(lit(_,T), T) :- type(T). | ||
| 9 | +type(id(_,T), T) :- type(T). | ||
| 10 | + | ||
| 11 | +type(lit(E,array(T)), array(T)) :- type(E, T). | ||
| 12 | +type(lit(_,T), T) :- type(T). | ||
| 13 | + | ||
| 14 | +type([], _). | ||
| 15 | +type([E|Es], T) :- type(E, T), type(Es, T). | ||
| 16 | + | ||
| 17 | +% -- type(TYPE) --------------------------------------------------------------- | ||
| 18 | +% | ||
| 19 | +% type/1: generate or test valid types. | ||
| 20 | + | ||
| 21 | +type(int). % integer | ||
| 22 | +type(int(_L,_U)). % integer interval | ||
| 23 | +type(float). % floating point | ||
| 24 | +type(float(_L,_U)). % floating point interval | ||
| 25 | +type(string). % string | ||
| 26 | +type(array(T,1,_U)) :- type(T). % array of type |