1structure ILTheory :> ILTheory = 2struct 3 val _ = if !Globals.print_thy_loads then print "Loading ILTheory ... " else () 4 open Type Term Thm 5 infixr --> 6 fun C s t ty = mk_thy_const{Name=s,Thy=t,Ty=ty} 7 fun T s t A = mk_thy_type{Tyop=s, Thy=t,Args=A} 8 fun V s q = mk_var(s,q) 9 val U = mk_vartype 10 11 (* Parents *) 12 local open ARMCompositionTheory 13 in end; 14 val _ = Theory.link_parents 15 ("IL",Arbnum.fromString "1157171238",Arbnum.fromString "41829") 16 [("ARMComposition", 17 Arbnum.fromString "1157170992", 18 Arbnum.fromString "779283")]; 19 val _ = Theory.incorporate_types "IL" 20 [("MEXP",0), ("DOPER",0), ("MREG",0), ("CTL_STRUCTURE",0)]; 21 val _ = Theory.incorporate_consts "IL" 22 [("translate_condition", 23 ((T"prod" "pair" 24 [T"MREG" "IL" [], T"prod" "pair" [alpha, T"MEXP" "IL" []]] --> 25 T"prod" "pair" 26 [T"EXP" "preARM" [], 27 T"prod" "pair" [alpha, T"EXP" "preARM" []]]))), 28 ("index_of_reg",((T"MREG" "IL" [] --> T"num" "num" []))), 29 ("dest_DOPER", 30 ((T"DOPER" "IL" [] --> 31 T"recspace" "ind_type" 32 [T"prod" "pair" 33 [T"MREG" "IL" [], 34 T"prod" "pair" 35 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 36 T"prod" "pair" 37 [T"MEXP" "IL" [], 38 T"prod" "pair" 39 [T"MREG" "IL" [], 40 T"prod" "pair" 41 [T"MREG" "IL" [], 42 T"prod" "pair" 43 [T"cart" "fcp" [bool, T"i5" "words" []], 44 T"prod" "pair" 45 [T"num" "num" [], 46 T"list" "list" [T"num" "num" []]]]]]]]]]))), 47 ("run_ir", 48 ((T"CTL_STRUCTURE" "IL" [] --> 49 (T"prod" "pair" 50 [T"fmap" "finite_map" 51 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 52 T"fmap" "finite_map" 53 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] 54 --> 55 T"prod" "pair" 56 [T"fmap" "finite_map" 57 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 58 T"fmap" "finite_map" 59 [T"num" "num" [], 60 T"cart" "fcp" [bool, T"i32" "words" []]]])))), 61 ("WELL_FORMED",((T"CTL_STRUCTURE" "IL" [] --> bool))), 62 ("eval_il_cond", 63 ((T"prod" "pair" 64 [T"MREG" "IL" [], 65 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 66 (T"prod" "pair" 67 [T"fmap" "finite_map" 68 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 69 T"fmap" "finite_map" 70 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] 71 --> bool)))), 72 ("WELL_FORMED_SUB",((T"CTL_STRUCTURE" "IL" [] --> bool))), 73 ("num2MREG",((T"num" "num" [] --> T"MREG" "IL" []))), 74 ("mdecode", 75 ((T"prod" "pair" 76 [T"fmap" "finite_map" 77 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 78 T"fmap" "finite_map" 79 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 80 (T"DOPER" "IL" [] --> 81 T"prod" "pair" 82 [T"fmap" "finite_map" 83 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 84 T"fmap" "finite_map" 85 [T"num" "num" [], 86 T"cart" "fcp" [bool, T"i32" "words" []]]])))), 87 ("DOPER_case", 88 (((T"MREG" "IL" [] --> 89 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 90 alpha)) --> 91 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 92 (T"MREG" "IL" [] --> alpha)) --> 93 ((T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)) --> 94 ((T"MREG" "IL" [] --> 95 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))) --> 96 ((T"MREG" "IL" [] --> 97 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))) --> 98 ((T"MREG" "IL" [] --> 99 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))) --> 100 ((T"MREG" "IL" [] --> 101 (T"MREG" "IL" [] --> (T"MREG" "IL" [] --> alpha))) --> 102 ((T"MREG" "IL" [] --> 103 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))) --> 104 ((T"MREG" "IL" [] --> 105 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))) --> 106 ((T"MREG" "IL" [] --> 107 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))) --> 108 ((T"MREG" "IL" [] --> 109 (T"MREG" "IL" [] --> 110 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha))) 111 --> 112 ((T"MREG" "IL" [] --> 113 (T"MREG" "IL" [] --> 114 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha))) 115 --> 116 ((T"MREG" "IL" [] --> 117 (T"MREG" "IL" [] --> 118 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha))) 119 --> 120 ((T"MREG" "IL" [] --> 121 (T"MREG" "IL" [] --> 122 (T"cart" "fcp" [bool, T"i5" "words" []] --> 123 alpha))) --> 124 ((T"num" "num" [] --> 125 (T"list" "list" [T"num" "num" []] --> alpha)) --> 126 ((T"num" "num" [] --> 127 (T"list" "list" [T"num" "num" []] --> alpha)) --> 128 (T"DOPER" "IL" [] --> alpha))))))))))))))))))), 129 ("R14",(T"MREG" "IL" [])), ("R13",(T"MREG" "IL" [])), 130 ("R12",(T"MREG" "IL" [])), ("R11",(T"MREG" "IL" [])), 131 ("R10",(T"MREG" "IL" [])), 132 ("IL9", 133 ((T"MREG" "IL" [] --> 134 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))))), 135 ("IL8", 136 ((T"MREG" "IL" [] --> 137 (T"MREG" "IL" [] --> (T"MREG" "IL" [] --> T"DOPER" "IL" []))))), 138 ("IL7", 139 ((T"MREG" "IL" [] --> 140 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))))), 141 ("IL6", 142 ((T"MREG" "IL" [] --> 143 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))))), 144 ("IL5", 145 ((T"MREG" "IL" [] --> 146 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))))), 147 ("IL4", 148 ((T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])))), 149 ("IL3", 150 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 151 (T"MREG" "IL" [] --> T"DOPER" "IL" [])))), 152 ("IL2", 153 ((T"MREG" "IL" [] --> 154 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 155 T"DOPER" "IL" [])))), 156 ("IL1", 157 ((T"cart" "fcp" [bool, T"i4" "words" []] --> 158 (T"cart" "fcp" [bool, T"i8" "words" []] --> T"MEXP" "IL" [])))), 159 ("IL0",((T"MREG" "IL" [] --> T"MEXP" "IL" []))), 160 ("popL", 161 ((T"prod" "pair" 162 [T"fmap" "finite_map" 163 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 164 T"fmap" "finite_map" 165 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 166 (T"num" "num" [] --> 167 (T"list" "list" [T"num" "num" []] --> 168 T"prod" "pair" 169 [T"fmap" "finite_map" 170 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 171 T"fmap" "finite_map" 172 [T"num" "num" [], 173 T"cart" "fcp" [bool, T"i32" "words" []]]]))))), 174 ("BLK", 175 ((T"list" "list" [T"DOPER" "IL" []] --> T"CTL_STRUCTURE" "IL" []))), 176 ("run_arm", 177 ((T"list" "list" 178 [T"prod" "pair" 179 [T"prod" "pair" 180 [T"OPERATOR" "preARM" [], 181 T"prod" "pair" 182 [T"option" "option" [T"COND" "preARM" []], bool]], 183 T"prod" "pair" 184 [T"option" "option" [T"EXP" "preARM" []], 185 T"prod" "pair" 186 [T"list" "list" [T"EXP" "preARM" []], 187 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> 188 (T"prod" "pair" 189 [T"prod" "pair" 190 [T"num" "num" [], 191 T"prod" "pair" 192 [T"cart" "fcp" [bool, T"i32" "words" []], 193 T"prod" "pair" 194 [T"fmap" "finite_map" 195 [T"num" "num" [], 196 T"cart" "fcp" [bool, T"i32" "words" []]], 197 T"fmap" "finite_map" 198 [T"num" "num" [], 199 T"cart" "fcp" [bool, T"i32" "words" []]]]]], 200 (T"num" "num" [] --> bool)] --> 201 T"prod" "pair" 202 [T"prod" "pair" 203 [T"num" "num" [], 204 T"prod" "pair" 205 [T"cart" "fcp" [bool, T"i32" "words" []], 206 T"prod" "pair" 207 [T"fmap" "finite_map" 208 [T"num" "num" [], 209 T"cart" "fcp" [bool, T"i32" "words" []]], 210 T"fmap" "finite_map" 211 [T"num" "num" [], 212 T"cart" "fcp" [bool, T"i32" "words" []]]]]], 213 (T"num" "num" [] --> bool)])))), 214 ("dest_MEXP", 215 ((T"MEXP" "IL" [] --> 216 T"recspace" "ind_type" 217 [T"prod" "pair" 218 [T"MREG" "IL" [], 219 T"prod" "pair" 220 [T"cart" "fcp" [bool, T"i4" "words" []], 221 T"cart" "fcp" [bool, T"i8" "words" []]]]]))), 222 ("translate", 223 ((T"CTL_STRUCTURE" "IL" [] --> 224 T"list" "list" 225 [T"prod" "pair" 226 [T"prod" "pair" 227 [T"OPERATOR" "preARM" [], 228 T"prod" "pair" 229 [T"option" "option" [T"COND" "preARM" []], bool]], 230 T"prod" "pair" 231 [T"option" "option" [T"EXP" "preARM" []], 232 T"prod" "pair" 233 [T"list" "list" [T"EXP" "preARM" []], 234 T"option" "option" [T"OFFSET" "preARM" []]]]]]))), 235 ("MREG_case", 236 ((alpha --> 237 (alpha --> 238 (alpha --> 239 (alpha --> 240 (alpha --> 241 (alpha --> 242 (alpha --> 243 (alpha --> 244 (alpha --> 245 (alpha --> 246 (alpha --> 247 (alpha --> 248 (alpha --> 249 (alpha --> 250 (alpha --> 251 (T"MREG" "IL" [] --> alpha)))))))))))))))))), 252 ("MEXP_case", 253 (((T"MREG" "IL" [] --> alpha) --> 254 ((T"cart" "fcp" [bool, T"i4" "words" []] --> 255 (T"cart" "fcp" [bool, T"i8" "words" []] --> alpha)) --> 256 (T"MEXP" "IL" [] --> alpha))))), 257 ("CTL_STRUCTURE_size", 258 ((T"CTL_STRUCTURE" "IL" [] --> T"num" "num" []))), 259 ("mk_MEXP", 260 ((T"recspace" "ind_type" 261 [T"prod" "pair" 262 [T"MREG" "IL" [], 263 T"prod" "pair" 264 [T"cart" "fcp" [bool, T"i4" "words" []], 265 T"cart" "fcp" [bool, T"i8" "words" []]]]] --> 266 T"MEXP" "IL" []))), 267 ("dest_CTL_STRUCTURE", 268 ((T"CTL_STRUCTURE" "IL" [] --> 269 T"recspace" "ind_type" 270 [T"prod" "pair" 271 [T"list" "list" [T"DOPER" "IL" []], 272 T"prod" "pair" 273 [T"MREG" "IL" [], 274 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]]))), 275 ("DOPER_size",((T"DOPER" "IL" [] --> T"num" "num" []))), 276 ("mk_DOPER", 277 ((T"recspace" "ind_type" 278 [T"prod" "pair" 279 [T"MREG" "IL" [], 280 T"prod" "pair" 281 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 282 T"prod" "pair" 283 [T"MEXP" "IL" [], 284 T"prod" "pair" 285 [T"MREG" "IL" [], 286 T"prod" "pair" 287 [T"MREG" "IL" [], 288 T"prod" "pair" 289 [T"cart" "fcp" [bool, T"i5" "words" []], 290 T"prod" "pair" 291 [T"num" "num" [], 292 T"list" "list" [T"num" "num" []]]]]]]]]] --> 293 T"DOPER" "IL" []))), 294 ("MSTR", 295 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 296 (T"MREG" "IL" [] --> T"DOPER" "IL" [])))), 297 ("MSUB", 298 ((T"MREG" "IL" [] --> 299 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))))), 300 ("MREG2num",((T"MREG" "IL" [] --> T"num" "num" []))), 301 ("MROR", 302 ((T"MREG" "IL" [] --> 303 (T"MREG" "IL" [] --> 304 (T"cart" "fcp" [bool, T"i5" "words" []] --> 305 T"DOPER" "IL" []))))), 306 ("MRSB", 307 ((T"MREG" "IL" [] --> 308 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))))), 309 ("MPUSH", 310 ((T"num" "num" [] --> 311 (T"list" "list" [T"num" "num" []] --> T"DOPER" "IL" [])))), 312 ("MPOP", 313 ((T"num" "num" [] --> 314 (T"list" "list" [T"num" "num" []] --> T"DOPER" "IL" [])))), 315 ("MORR", 316 ((T"MREG" "IL" [] --> 317 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))))), 318 ("MMUL", 319 ((T"MREG" "IL" [] --> 320 (T"MREG" "IL" [] --> (T"MREG" "IL" [] --> T"DOPER" "IL" []))))), 321 ("mk_CTL_STRUCTURE", 322 ((T"recspace" "ind_type" 323 [T"prod" "pair" 324 [T"list" "list" [T"DOPER" "IL" []], 325 T"prod" "pair" 326 [T"MREG" "IL" [], 327 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]] --> 328 T"CTL_STRUCTURE" "IL" []))), 329 ("MMOV", 330 ((T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])))), 331 ("MLSR", 332 ((T"MREG" "IL" [] --> 333 (T"MREG" "IL" [] --> 334 (T"cart" "fcp" [bool, T"i5" "words" []] --> 335 T"DOPER" "IL" []))))), 336 ("MLSL", 337 ((T"MREG" "IL" [] --> 338 (T"MREG" "IL" [] --> 339 (T"cart" "fcp" [bool, T"i5" "words" []] --> 340 T"DOPER" "IL" []))))), 341 ("translate_assignment", 342 ((T"DOPER" "IL" [] --> 343 T"prod" "pair" 344 [T"prod" "pair" 345 [T"OPERATOR" "preARM" [], 346 T"prod" "pair" 347 [T"option" "option" [T"COND" "preARM" []], bool]], 348 T"prod" "pair" 349 [T"option" "option" [T"EXP" "preARM" []], 350 T"prod" "pair" 351 [T"list" "list" [T"EXP" "preARM" []], 352 T"option" "option" [T"OFFSET" "preARM" []]]]]))), 353 ("pushL", 354 ((T"prod" "pair" 355 [T"fmap" "finite_map" 356 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 357 T"fmap" "finite_map" 358 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 359 (T"num" "num" [] --> 360 (T"list" "list" [T"num" "num" []] --> 361 T"prod" "pair" 362 [T"fmap" "finite_map" 363 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 364 T"fmap" "finite_map" 365 [T"num" "num" [], 366 T"cart" "fcp" [bool, T"i32" "words" []]]]))))), 367 ("MLDR", 368 ((T"MREG" "IL" [] --> 369 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 370 T"DOPER" "IL" [])))), 371 ("from_reg_index",((T"num" "num" [] --> T"MREG" "IL" []))), 372 ("toREG",((T"MREG" "IL" [] --> T"EXP" "preARM" []))), 373 ("MEOR", 374 ((T"MREG" "IL" [] --> 375 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))))), 376 ("MREG_size",((T"MREG" "IL" [] --> T"num" "num" []))), 377 ("TR", 378 ((T"prod" "pair" 379 [T"MREG" "IL" [], 380 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 381 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" [])))), 382 ("MEXP_size",((T"MEXP" "IL" [] --> T"num" "num" []))), 383 ("toMEM", 384 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 385 T"EXP" "preARM" []))), 386 ("SC", 387 ((T"CTL_STRUCTURE" "IL" [] --> 388 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" [])))), 389 ("MR",((T"MREG" "IL" [] --> T"MEXP" "IL" []))), 390 ("MASR", 391 ((T"MREG" "IL" [] --> 392 (T"MREG" "IL" [] --> 393 (T"cart" "fcp" [bool, T"i5" "words" []] --> 394 T"DOPER" "IL" []))))), ("R9",(T"MREG" "IL" [])), 395 ("R8",(T"MREG" "IL" [])), ("R7",(T"MREG" "IL" [])), 396 ("R6",(T"MREG" "IL" [])), ("R5",(T"MREG" "IL" [])), 397 ("R4",(T"MREG" "IL" [])), ("R3",(T"MREG" "IL" [])), 398 ("R2",(T"MREG" "IL" [])), ("R1",(T"MREG" "IL" [])), 399 ("R0",(T"MREG" "IL" [])), 400 ("MC", 401 ((T"cart" "fcp" [bool, T"i4" "words" []] --> 402 (T"cart" "fcp" [bool, T"i8" "words" []] --> T"MEXP" "IL" [])))), 403 ("toEXP",((T"MEXP" "IL" [] --> T"EXP" "preARM" []))), 404 ("MAND", 405 ((T"MREG" "IL" [] --> 406 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))))), 407 ("CJ", 408 ((T"prod" "pair" 409 [T"MREG" "IL" [], 410 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 411 (T"CTL_STRUCTURE" "IL" [] --> 412 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" []))))), 413 ("MADD", 414 ((T"MREG" "IL" [] --> 415 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))))), 416 ("IL19", 417 ((T"CTL_STRUCTURE" "IL" [] --> 418 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" [])))), 419 ("IL18", 420 ((T"list" "list" [T"DOPER" "IL" []] --> T"CTL_STRUCTURE" "IL" []))), 421 ("IL17", 422 ((T"num" "num" [] --> 423 (T"list" "list" [T"num" "num" []] --> T"DOPER" "IL" [])))), 424 ("IL16", 425 ((T"num" "num" [] --> 426 (T"list" "list" [T"num" "num" []] --> T"DOPER" "IL" [])))), 427 ("IL21", 428 ((T"prod" "pair" 429 [T"MREG" "IL" [], 430 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 431 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" [])))), 432 ("IL15", 433 ((T"MREG" "IL" [] --> 434 (T"MREG" "IL" [] --> 435 (T"cart" "fcp" [bool, T"i5" "words" []] --> 436 T"DOPER" "IL" []))))), 437 ("IL20", 438 ((T"prod" "pair" 439 [T"MREG" "IL" [], 440 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 441 (T"CTL_STRUCTURE" "IL" [] --> 442 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" []))))), 443 ("IL14", 444 ((T"MREG" "IL" [] --> 445 (T"MREG" "IL" [] --> 446 (T"cart" "fcp" [bool, T"i5" "words" []] --> 447 T"DOPER" "IL" []))))), 448 ("IL13", 449 ((T"MREG" "IL" [] --> 450 (T"MREG" "IL" [] --> 451 (T"cart" "fcp" [bool, T"i5" "words" []] --> 452 T"DOPER" "IL" []))))), 453 ("IL12", 454 ((T"MREG" "IL" [] --> 455 (T"MREG" "IL" [] --> 456 (T"cart" "fcp" [bool, T"i5" "words" []] --> 457 T"DOPER" "IL" []))))), 458 ("IL11", 459 ((T"MREG" "IL" [] --> 460 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))))), 461 ("IL10", 462 ((T"MREG" "IL" [] --> 463 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))))), 464 ("CTL_STRUCTURE_case", 465 (((T"list" "list" [T"DOPER" "IL" []] --> alpha) --> 466 ((T"CTL_STRUCTURE" "IL" [] --> 467 (T"CTL_STRUCTURE" "IL" [] --> alpha)) --> 468 ((T"prod" "pair" 469 [T"MREG" "IL" [], 470 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 471 (T"CTL_STRUCTURE" "IL" [] --> 472 (T"CTL_STRUCTURE" "IL" [] --> alpha))) --> 473 ((T"prod" "pair" 474 [T"MREG" "IL" [], 475 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 476 (T"CTL_STRUCTURE" "IL" [] --> alpha)) --> 477 (T"CTL_STRUCTURE" "IL" [] --> alpha)))))))]; 478 479 local 480 val share_table = Vector.fromList 481 [C"?" "bool" 482 ((((T"MREG" "IL" [] --> T"num" "num" []) --> bool) --> bool)), 483 V"rep" ((T"MREG" "IL" [] --> T"num" "num" [])), 484 C"TYPE_DEFINITION" "bool" 485 (((T"num" "num" [] --> bool) --> 486 ((T"MREG" "IL" [] --> T"num" "num" []) --> bool))), 487 V"n" (T"num" "num" []), 488 C"<" "prim_rec" ((T"num" "num" [] --> (T"num" "num" [] --> bool))), 489 C"NUMERAL" "arithmetic" ((T"num" "num" [] --> T"num" "num" [])), 490 C"BIT1" "arithmetic" ((T"num" "num" [] --> T"num" "num" [])), 491 C"ZERO" "arithmetic" (T"num" "num" []), 492 C"/\\" "bool" ((bool --> (bool --> bool))), 493 C"!" "bool" (((T"MREG" "IL" [] --> bool) --> bool)), 494 V"a" (T"MREG" "IL" []), 495 C"=" "min" ((T"MREG" "IL" [] --> (T"MREG" "IL" [] --> bool))), 496 C"num2MREG" "IL" ((T"num" "num" [] --> T"MREG" "IL" [])), 497 C"MREG2num" "IL" ((T"MREG" "IL" [] --> T"num" "num" [])), 498 C"!" "bool" (((T"num" "num" [] --> bool) --> bool)), 499 V"r" (T"num" "num" []), C"=" "min" ((bool --> (bool --> bool))), 500 C"=" "min" ((T"num" "num" [] --> (T"num" "num" [] --> bool))), 501 C"R0" "IL" (T"MREG" "IL" []), C"0" "num" (T"num" "num" []), 502 C"R1" "IL" (T"MREG" "IL" []), C"R2" "IL" (T"MREG" "IL" []), 503 C"BIT2" "arithmetic" ((T"num" "num" [] --> T"num" "num" [])), 504 C"R3" "IL" (T"MREG" "IL" []), C"R4" "IL" (T"MREG" "IL" []), 505 C"R5" "IL" (T"MREG" "IL" []), C"R6" "IL" (T"MREG" "IL" []), 506 C"R7" "IL" (T"MREG" "IL" []), C"R8" "IL" (T"MREG" "IL" []), 507 C"R9" "IL" (T"MREG" "IL" []), C"R10" "IL" (T"MREG" "IL" []), 508 C"R11" "IL" (T"MREG" "IL" []), C"R12" "IL" (T"MREG" "IL" []), 509 C"R13" "IL" (T"MREG" "IL" []), C"R14" "IL" (T"MREG" "IL" []), 510 V"x" (T"MREG" "IL" []), 511 C"MREG_size" "IL" ((T"MREG" "IL" [] --> T"num" "num" [])), 512 C"!" "bool" (((alpha --> bool) --> bool)), V"v0" (alpha), V"v1" (alpha), 513 V"v2" (alpha), V"v3" (alpha), V"v4" (alpha), V"v5" (alpha), 514 V"v6" (alpha), V"v7" (alpha), V"v8" (alpha), V"v9" (alpha), 515 V"v10" (alpha), V"v11" (alpha), V"v12" (alpha), V"v13" (alpha), 516 V"v14" (alpha), C"=" "min" ((alpha --> (alpha --> bool))), 517 C"MREG_case" "IL" 518 ((alpha --> 519 (alpha --> 520 (alpha --> 521 (alpha --> 522 (alpha --> 523 (alpha --> 524 (alpha --> 525 (alpha --> 526 (alpha --> 527 (alpha --> 528 (alpha --> 529 (alpha --> 530 (alpha --> 531 (alpha --> 532 (alpha --> (T"MREG" "IL" [] --> alpha))))))))))))))))), 533 V"m" (T"num" "num" []), 534 C"COND" "bool" ((bool --> (alpha --> (alpha --> alpha)))), 535 C"?" "bool" 536 ((((T"MEXP" "IL" [] --> 537 T"recspace" "ind_type" 538 [T"prod" "pair" 539 [T"MREG" "IL" [], 540 T"prod" "pair" 541 [T"cart" "fcp" [bool, T"i4" "words" []], 542 T"cart" "fcp" [bool, T"i8" "words" []]]]]) --> bool) --> 543 bool)), 544 V"rep" 545 ((T"MEXP" "IL" [] --> 546 T"recspace" "ind_type" 547 [T"prod" "pair" 548 [T"MREG" "IL" [], 549 T"prod" "pair" 550 [T"cart" "fcp" [bool, T"i4" "words" []], 551 T"cart" "fcp" [bool, T"i8" "words" []]]]])), 552 C"TYPE_DEFINITION" "bool" 553 (((T"recspace" "ind_type" 554 [T"prod" "pair" 555 [T"MREG" "IL" [], 556 T"prod" "pair" 557 [T"cart" "fcp" [bool, T"i4" "words" []], 558 T"cart" "fcp" [bool, T"i8" "words" []]]]] --> bool) --> 559 ((T"MEXP" "IL" [] --> 560 T"recspace" "ind_type" 561 [T"prod" "pair" 562 [T"MREG" "IL" [], 563 T"prod" "pair" 564 [T"cart" "fcp" [bool, T"i4" "words" []], 565 T"cart" "fcp" [bool, T"i8" "words" []]]]]) --> bool))), 566 V"a0'" 567 (T"recspace" "ind_type" 568 [T"prod" "pair" 569 [T"MREG" "IL" [], 570 T"prod" "pair" 571 [T"cart" "fcp" [bool, T"i4" "words" []], 572 T"cart" "fcp" [bool, T"i8" "words" []]]]]), 573 C"!" "bool" 574 ((((T"recspace" "ind_type" 575 [T"prod" "pair" 576 [T"MREG" "IL" [], 577 T"prod" "pair" 578 [T"cart" "fcp" [bool, T"i4" "words" []], 579 T"cart" "fcp" [bool, T"i8" "words" []]]]] --> bool) --> bool) 580 --> bool)), 581 V"'MEXP'" 582 ((T"recspace" "ind_type" 583 [T"prod" "pair" 584 [T"MREG" "IL" [], 585 T"prod" "pair" 586 [T"cart" "fcp" [bool, T"i4" "words" []], 587 T"cart" "fcp" [bool, T"i8" "words" []]]]] --> bool)), 588 C"==>" "min" ((bool --> (bool --> bool))), 589 C"!" "bool" 590 (((T"recspace" "ind_type" 591 [T"prod" "pair" 592 [T"MREG" "IL" [], 593 T"prod" "pair" 594 [T"cart" "fcp" [bool, T"i4" "words" []], 595 T"cart" "fcp" [bool, T"i8" "words" []]]]] --> bool) --> 596 bool)), C"\\/" "bool" ((bool --> (bool --> bool))), 597 C"?" "bool" (((T"MREG" "IL" [] --> bool) --> bool)), 598 C"=" "min" 599 ((T"recspace" "ind_type" 600 [T"prod" "pair" 601 [T"MREG" "IL" [], 602 T"prod" "pair" 603 [T"cart" "fcp" [bool, T"i4" "words" []], 604 T"cart" "fcp" [bool, T"i8" "words" []]]]] --> 605 (T"recspace" "ind_type" 606 [T"prod" "pair" 607 [T"MREG" "IL" [], 608 T"prod" "pair" 609 [T"cart" "fcp" [bool, T"i4" "words" []], 610 T"cart" "fcp" [bool, T"i8" "words" []]]]] --> bool))), 611 C"CONSTR" "ind_type" 612 ((T"num" "num" [] --> 613 (T"prod" "pair" 614 [T"MREG" "IL" [], 615 T"prod" "pair" 616 [T"cart" "fcp" [bool, T"i4" "words" []], 617 T"cart" "fcp" [bool, T"i8" "words" []]]] --> 618 ((T"num" "num" [] --> 619 T"recspace" "ind_type" 620 [T"prod" "pair" 621 [T"MREG" "IL" [], 622 T"prod" "pair" 623 [T"cart" "fcp" [bool, T"i4" "words" []], 624 T"cart" "fcp" [bool, T"i8" "words" []]]]]) --> 625 T"recspace" "ind_type" 626 [T"prod" "pair" 627 [T"MREG" "IL" [], 628 T"prod" "pair" 629 [T"cart" "fcp" [bool, T"i4" "words" []], 630 T"cart" "fcp" [bool, T"i8" "words" []]]]])))), 631 C"," "pair" 632 ((T"MREG" "IL" [] --> 633 (T"prod" "pair" 634 [T"cart" "fcp" [bool, T"i4" "words" []], 635 T"cart" "fcp" [bool, T"i8" "words" []]] --> 636 T"prod" "pair" 637 [T"MREG" "IL" [], 638 T"prod" "pair" 639 [T"cart" "fcp" [bool, T"i4" "words" []], 640 T"cart" "fcp" [bool, T"i8" "words" []]]]))), 641 C"," "pair" 642 ((T"cart" "fcp" [bool, T"i4" "words" []] --> 643 (T"cart" "fcp" [bool, T"i8" "words" []] --> 644 T"prod" "pair" 645 [T"cart" "fcp" [bool, T"i4" "words" []], 646 T"cart" "fcp" [bool, T"i8" "words" []]]))), 647 C"@" "min" 648 (((T"cart" "fcp" [bool, T"i4" "words" []] --> bool) --> 649 T"cart" "fcp" [bool, T"i4" "words" []])), 650 V"v" (T"cart" "fcp" [bool, T"i4" "words" []]), C"T" "bool" (bool), 651 C"@" "min" 652 (((T"cart" "fcp" [bool, T"i8" "words" []] --> bool) --> 653 T"cart" "fcp" [bool, T"i8" "words" []])), 654 V"v" (T"cart" "fcp" [bool, T"i8" "words" []]), 655 C"BOTTOM" "ind_type" 656 (T"recspace" "ind_type" 657 [T"prod" "pair" 658 [T"MREG" "IL" [], 659 T"prod" "pair" 660 [T"cart" "fcp" [bool, T"i4" "words" []], 661 T"cart" "fcp" [bool, T"i8" "words" []]]]]), 662 C"?" "bool" 663 (((T"cart" "fcp" [bool, T"i4" "words" []] --> bool) --> bool)), 664 V"a0" (T"cart" "fcp" [bool, T"i4" "words" []]), 665 C"?" "bool" 666 (((T"cart" "fcp" [bool, T"i8" "words" []] --> bool) --> bool)), 667 V"a1" (T"cart" "fcp" [bool, T"i8" "words" []]), 668 C"SUC" "num" ((T"num" "num" [] --> T"num" "num" [])), 669 C"@" "min" (((T"MREG" "IL" [] --> bool) --> T"MREG" "IL" [])), 670 V"v" (T"MREG" "IL" []), 671 C"!" "bool" (((T"MEXP" "IL" [] --> bool) --> bool)), 672 V"a" (T"MEXP" "IL" []), 673 C"=" "min" ((T"MEXP" "IL" [] --> (T"MEXP" "IL" [] --> bool))), 674 C"mk_MEXP" "IL" 675 ((T"recspace" "ind_type" 676 [T"prod" "pair" 677 [T"MREG" "IL" [], 678 T"prod" "pair" 679 [T"cart" "fcp" [bool, T"i4" "words" []], 680 T"cart" "fcp" [bool, T"i8" "words" []]]]] --> 681 T"MEXP" "IL" [])), 682 C"dest_MEXP" "IL" 683 ((T"MEXP" "IL" [] --> 684 T"recspace" "ind_type" 685 [T"prod" "pair" 686 [T"MREG" "IL" [], 687 T"prod" "pair" 688 [T"cart" "fcp" [bool, T"i4" "words" []], 689 T"cart" "fcp" [bool, T"i8" "words" []]]]])), 690 V"r" 691 (T"recspace" "ind_type" 692 [T"prod" "pair" 693 [T"MREG" "IL" [], 694 T"prod" "pair" 695 [T"cart" "fcp" [bool, T"i4" "words" []], 696 T"cart" "fcp" [bool, T"i8" "words" []]]]]), 697 C"=" "min" 698 (((T"MREG" "IL" [] --> T"MEXP" "IL" []) --> 699 ((T"MREG" "IL" [] --> T"MEXP" "IL" []) --> bool))), 700 C"IL0" "IL" ((T"MREG" "IL" [] --> T"MEXP" "IL" [])), 701 C"=" "min" 702 (((T"cart" "fcp" [bool, T"i4" "words" []] --> 703 (T"cart" "fcp" [bool, T"i8" "words" []] --> T"MEXP" "IL" [])) --> 704 ((T"cart" "fcp" [bool, T"i4" "words" []] --> 705 (T"cart" "fcp" [bool, T"i8" "words" []] --> T"MEXP" "IL" [])) --> 706 bool))), 707 C"IL1" "IL" 708 ((T"cart" "fcp" [bool, T"i4" "words" []] --> 709 (T"cart" "fcp" [bool, T"i8" "words" []] --> T"MEXP" "IL" []))), 710 C"MR" "IL" ((T"MREG" "IL" [] --> T"MEXP" "IL" [])), 711 C"MC" "IL" 712 ((T"cart" "fcp" [bool, T"i4" "words" []] --> 713 (T"cart" "fcp" [bool, T"i8" "words" []] --> T"MEXP" "IL" []))), 714 C"!" "bool" ((((T"MREG" "IL" [] --> alpha) --> bool) --> bool)), 715 V"f" ((T"MREG" "IL" [] --> alpha)), 716 C"!" "bool" 717 ((((T"cart" "fcp" [bool, T"i4" "words" []] --> 718 (T"cart" "fcp" [bool, T"i8" "words" []] --> alpha)) --> bool) --> 719 bool)), 720 V"f1" 721 ((T"cart" "fcp" [bool, T"i4" "words" []] --> 722 (T"cart" "fcp" [bool, T"i8" "words" []] --> alpha))), 723 C"MEXP_case" "IL" 724 (((T"MREG" "IL" [] --> alpha) --> 725 ((T"cart" "fcp" [bool, T"i4" "words" []] --> 726 (T"cart" "fcp" [bool, T"i8" "words" []] --> alpha)) --> 727 (T"MEXP" "IL" [] --> alpha)))), 728 C"!" "bool" 729 (((T"cart" "fcp" [bool, T"i4" "words" []] --> bool) --> bool)), 730 C"!" "bool" 731 (((T"cart" "fcp" [bool, T"i8" "words" []] --> bool) --> bool)), 732 C"MEXP_size" "IL" ((T"MEXP" "IL" [] --> T"num" "num" [])), 733 C"+" "arithmetic" 734 ((T"num" "num" [] --> (T"num" "num" [] --> T"num" "num" []))), 735 C"index_of_reg" "IL" ((T"MREG" "IL" [] --> T"num" "num" [])), 736 V"i" (T"num" "num" []), 737 C"from_reg_index" "IL" ((T"num" "num" [] --> T"MREG" "IL" [])), 738 C"COND" "bool" 739 ((bool --> 740 (T"MREG" "IL" [] --> (T"MREG" "IL" [] --> T"MREG" "IL" [])))), 741 V"r" (T"MREG" "IL" []), 742 C"=" "min" ((T"EXP" "preARM" [] --> (T"EXP" "preARM" [] --> bool))), 743 C"toREG" "IL" ((T"MREG" "IL" [] --> T"EXP" "preARM" [])), 744 C"REG" "preARM" ((T"num" "num" [] --> T"EXP" "preARM" [])), 745 V"base" (T"num" "num" []), 746 C"!" "bool" (((T"OFFSET" "preARM" [] --> bool) --> bool)), 747 V"offset" (T"OFFSET" "preARM" []), 748 C"toMEM" "IL" 749 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 750 T"EXP" "preARM" [])), 751 C"," "pair" 752 ((T"num" "num" [] --> 753 (T"OFFSET" "preARM" [] --> 754 T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []]))), 755 C"MEM" "preARM" 756 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 757 T"EXP" "preARM" [])), 758 C"toEXP" "IL" ((T"MEXP" "IL" [] --> T"EXP" "preARM" [])), 759 V"shift" (T"cart" "fcp" [bool, T"i4" "words" []]), 760 V"c" (T"cart" "fcp" [bool, T"i8" "words" []]), 761 C"WCONST" "preARM" 762 ((T"cart" "fcp" [bool, T"i32" "words" []] --> T"EXP" "preARM" [])), 763 C"word_ror" "words" 764 ((T"cart" "fcp" [bool, T"i32" "words" []] --> 765 (T"num" "num" [] --> T"cart" "fcp" [bool, T"i32" "words" []]))), 766 C"w2w" "words" 767 ((T"cart" "fcp" [bool, T"i8" "words" []] --> 768 T"cart" "fcp" [bool, T"i32" "words" []])), 769 C"*" "arithmetic" 770 ((T"num" "num" [] --> (T"num" "num" [] --> T"num" "num" []))), 771 C"w2n" "words" 772 ((T"cart" "fcp" [bool, T"i4" "words" []] --> T"num" "num" [])), 773 C"?" "bool" 774 ((((T"DOPER" "IL" [] --> 775 T"recspace" "ind_type" 776 [T"prod" "pair" 777 [T"MREG" "IL" [], 778 T"prod" "pair" 779 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 780 T"prod" "pair" 781 [T"MEXP" "IL" [], 782 T"prod" "pair" 783 [T"MREG" "IL" [], 784 T"prod" "pair" 785 [T"MREG" "IL" [], 786 T"prod" "pair" 787 [T"cart" "fcp" [bool, T"i5" "words" []], 788 T"prod" "pair" 789 [T"num" "num" [], 790 T"list" "list" [T"num" "num" []]]]]]]]]]) --> bool) 791 --> bool)), 792 V"rep" 793 ((T"DOPER" "IL" [] --> 794 T"recspace" "ind_type" 795 [T"prod" "pair" 796 [T"MREG" "IL" [], 797 T"prod" "pair" 798 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 799 T"prod" "pair" 800 [T"MEXP" "IL" [], 801 T"prod" "pair" 802 [T"MREG" "IL" [], 803 T"prod" "pair" 804 [T"MREG" "IL" [], 805 T"prod" "pair" 806 [T"cart" "fcp" [bool, T"i5" "words" []], 807 T"prod" "pair" 808 [T"num" "num" [], 809 T"list" "list" [T"num" "num" []]]]]]]]]])), 810 C"TYPE_DEFINITION" "bool" 811 (((T"recspace" "ind_type" 812 [T"prod" "pair" 813 [T"MREG" "IL" [], 814 T"prod" "pair" 815 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 816 T"prod" "pair" 817 [T"MEXP" "IL" [], 818 T"prod" "pair" 819 [T"MREG" "IL" [], 820 T"prod" "pair" 821 [T"MREG" "IL" [], 822 T"prod" "pair" 823 [T"cart" "fcp" [bool, T"i5" "words" []], 824 T"prod" "pair" 825 [T"num" "num" [], 826 T"list" "list" [T"num" "num" []]]]]]]]]] --> bool) 827 --> 828 ((T"DOPER" "IL" [] --> 829 T"recspace" "ind_type" 830 [T"prod" "pair" 831 [T"MREG" "IL" [], 832 T"prod" "pair" 833 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 834 T"prod" "pair" 835 [T"MEXP" "IL" [], 836 T"prod" "pair" 837 [T"MREG" "IL" [], 838 T"prod" "pair" 839 [T"MREG" "IL" [], 840 T"prod" "pair" 841 [T"cart" "fcp" [bool, T"i5" "words" []], 842 T"prod" "pair" 843 [T"num" "num" [], 844 T"list" "list" [T"num" "num" []]]]]]]]]]) --> 845 bool))), 846 V"a0'" 847 (T"recspace" "ind_type" 848 [T"prod" "pair" 849 [T"MREG" "IL" [], 850 T"prod" "pair" 851 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 852 T"prod" "pair" 853 [T"MEXP" "IL" [], 854 T"prod" "pair" 855 [T"MREG" "IL" [], 856 T"prod" "pair" 857 [T"MREG" "IL" [], 858 T"prod" "pair" 859 [T"cart" "fcp" [bool, T"i5" "words" []], 860 T"prod" "pair" 861 [T"num" "num" [], 862 T"list" "list" [T"num" "num" []]]]]]]]]]), 863 C"!" "bool" 864 ((((T"recspace" "ind_type" 865 [T"prod" "pair" 866 [T"MREG" "IL" [], 867 T"prod" "pair" 868 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 869 T"prod" "pair" 870 [T"MEXP" "IL" [], 871 T"prod" "pair" 872 [T"MREG" "IL" [], 873 T"prod" "pair" 874 [T"MREG" "IL" [], 875 T"prod" "pair" 876 [T"cart" "fcp" [bool, T"i5" "words" []], 877 T"prod" "pair" 878 [T"num" "num" [], 879 T"list" "list" [T"num" "num" []]]]]]]]]] --> bool) 880 --> bool) --> bool)), 881 V"'DOPER'" 882 ((T"recspace" "ind_type" 883 [T"prod" "pair" 884 [T"MREG" "IL" [], 885 T"prod" "pair" 886 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 887 T"prod" "pair" 888 [T"MEXP" "IL" [], 889 T"prod" "pair" 890 [T"MREG" "IL" [], 891 T"prod" "pair" 892 [T"MREG" "IL" [], 893 T"prod" "pair" 894 [T"cart" "fcp" [bool, T"i5" "words" []], 895 T"prod" "pair" 896 [T"num" "num" [], 897 T"list" "list" [T"num" "num" []]]]]]]]]] --> bool)), 898 C"!" "bool" 899 (((T"recspace" "ind_type" 900 [T"prod" "pair" 901 [T"MREG" "IL" [], 902 T"prod" "pair" 903 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 904 T"prod" "pair" 905 [T"MEXP" "IL" [], 906 T"prod" "pair" 907 [T"MREG" "IL" [], 908 T"prod" "pair" 909 [T"MREG" "IL" [], 910 T"prod" "pair" 911 [T"cart" "fcp" [bool, T"i5" "words" []], 912 T"prod" "pair" 913 [T"num" "num" [], 914 T"list" "list" [T"num" "num" []]]]]]]]]] --> bool) 915 --> bool)), V"a0" (T"MREG" "IL" []), 916 C"?" "bool" 917 (((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> bool) 918 --> bool)), 919 V"a1" (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []]), 920 C"=" "min" 921 ((T"recspace" "ind_type" 922 [T"prod" "pair" 923 [T"MREG" "IL" [], 924 T"prod" "pair" 925 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 926 T"prod" "pair" 927 [T"MEXP" "IL" [], 928 T"prod" "pair" 929 [T"MREG" "IL" [], 930 T"prod" "pair" 931 [T"MREG" "IL" [], 932 T"prod" "pair" 933 [T"cart" "fcp" [bool, T"i5" "words" []], 934 T"prod" "pair" 935 [T"num" "num" [], 936 T"list" "list" [T"num" "num" []]]]]]]]]] --> 937 (T"recspace" "ind_type" 938 [T"prod" "pair" 939 [T"MREG" "IL" [], 940 T"prod" "pair" 941 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 942 T"prod" "pair" 943 [T"MEXP" "IL" [], 944 T"prod" "pair" 945 [T"MREG" "IL" [], 946 T"prod" "pair" 947 [T"MREG" "IL" [], 948 T"prod" "pair" 949 [T"cart" "fcp" [bool, T"i5" "words" []], 950 T"prod" "pair" 951 [T"num" "num" [], 952 T"list" "list" [T"num" "num" []]]]]]]]]] --> 953 bool))), 954 C"CONSTR" "ind_type" 955 ((T"num" "num" [] --> 956 (T"prod" "pair" 957 [T"MREG" "IL" [], 958 T"prod" "pair" 959 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 960 T"prod" "pair" 961 [T"MEXP" "IL" [], 962 T"prod" "pair" 963 [T"MREG" "IL" [], 964 T"prod" "pair" 965 [T"MREG" "IL" [], 966 T"prod" "pair" 967 [T"cart" "fcp" [bool, T"i5" "words" []], 968 T"prod" "pair" 969 [T"num" "num" [], 970 T"list" "list" [T"num" "num" []]]]]]]]] --> 971 ((T"num" "num" [] --> 972 T"recspace" "ind_type" 973 [T"prod" "pair" 974 [T"MREG" "IL" [], 975 T"prod" "pair" 976 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 977 T"prod" "pair" 978 [T"MEXP" "IL" [], 979 T"prod" "pair" 980 [T"MREG" "IL" [], 981 T"prod" "pair" 982 [T"MREG" "IL" [], 983 T"prod" "pair" 984 [T"cart" "fcp" [bool, T"i5" "words" []], 985 T"prod" "pair" 986 [T"num" "num" [], 987 T"list" "list" [T"num" "num" []]]]]]]]]]) --> 988 T"recspace" "ind_type" 989 [T"prod" "pair" 990 [T"MREG" "IL" [], 991 T"prod" "pair" 992 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 993 T"prod" "pair" 994 [T"MEXP" "IL" [], 995 T"prod" "pair" 996 [T"MREG" "IL" [], 997 T"prod" "pair" 998 [T"MREG" "IL" [], 999 T"prod" "pair" 1000 [T"cart" "fcp" [bool, T"i5" "words" []], 1001 T"prod" "pair" 1002 [T"num" "num" [], 1003 T"list" "list" [T"num" "num" []]]]]]]]]])))), 1004 C"," "pair" 1005 ((T"MREG" "IL" [] --> 1006 (T"prod" "pair" 1007 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 1008 T"prod" "pair" 1009 [T"MEXP" "IL" [], 1010 T"prod" "pair" 1011 [T"MREG" "IL" [], 1012 T"prod" "pair" 1013 [T"MREG" "IL" [], 1014 T"prod" "pair" 1015 [T"cart" "fcp" [bool, T"i5" "words" []], 1016 T"prod" "pair" 1017 [T"num" "num" [], T"list" "list" [T"num" "num" []]]]]]]] 1018 --> 1019 T"prod" "pair" 1020 [T"MREG" "IL" [], 1021 T"prod" "pair" 1022 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 1023 T"prod" "pair" 1024 [T"MEXP" "IL" [], 1025 T"prod" "pair" 1026 [T"MREG" "IL" [], 1027 T"prod" "pair" 1028 [T"MREG" "IL" [], 1029 T"prod" "pair" 1030 [T"cart" "fcp" [bool, T"i5" "words" []], 1031 T"prod" "pair" 1032 [T"num" "num" [], 1033 T"list" "list" [T"num" "num" []]]]]]]]]))), 1034 C"," "pair" 1035 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1036 (T"prod" "pair" 1037 [T"MEXP" "IL" [], 1038 T"prod" "pair" 1039 [T"MREG" "IL" [], 1040 T"prod" "pair" 1041 [T"MREG" "IL" [], 1042 T"prod" "pair" 1043 [T"cart" "fcp" [bool, T"i5" "words" []], 1044 T"prod" "pair" 1045 [T"num" "num" [], T"list" "list" [T"num" "num" []]]]]]] --> 1046 T"prod" "pair" 1047 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 1048 T"prod" "pair" 1049 [T"MEXP" "IL" [], 1050 T"prod" "pair" 1051 [T"MREG" "IL" [], 1052 T"prod" "pair" 1053 [T"MREG" "IL" [], 1054 T"prod" "pair" 1055 [T"cart" "fcp" [bool, T"i5" "words" []], 1056 T"prod" "pair" 1057 [T"num" "num" [], 1058 T"list" "list" [T"num" "num" []]]]]]]]))), 1059 C"," "pair" 1060 ((T"MEXP" "IL" [] --> 1061 (T"prod" "pair" 1062 [T"MREG" "IL" [], 1063 T"prod" "pair" 1064 [T"MREG" "IL" [], 1065 T"prod" "pair" 1066 [T"cart" "fcp" [bool, T"i5" "words" []], 1067 T"prod" "pair" 1068 [T"num" "num" [], T"list" "list" [T"num" "num" []]]]]] --> 1069 T"prod" "pair" 1070 [T"MEXP" "IL" [], 1071 T"prod" "pair" 1072 [T"MREG" "IL" [], 1073 T"prod" "pair" 1074 [T"MREG" "IL" [], 1075 T"prod" "pair" 1076 [T"cart" "fcp" [bool, T"i5" "words" []], 1077 T"prod" "pair" 1078 [T"num" "num" [], T"list" "list" [T"num" "num" []]]]]]]))), 1079 C"@" "min" (((T"MEXP" "IL" [] --> bool) --> T"MEXP" "IL" [])), 1080 V"v" (T"MEXP" "IL" []), 1081 C"," "pair" 1082 ((T"MREG" "IL" [] --> 1083 (T"prod" "pair" 1084 [T"MREG" "IL" [], 1085 T"prod" "pair" 1086 [T"cart" "fcp" [bool, T"i5" "words" []], 1087 T"prod" "pair" 1088 [T"num" "num" [], T"list" "list" [T"num" "num" []]]]] --> 1089 T"prod" "pair" 1090 [T"MREG" "IL" [], 1091 T"prod" "pair" 1092 [T"MREG" "IL" [], 1093 T"prod" "pair" 1094 [T"cart" "fcp" [bool, T"i5" "words" []], 1095 T"prod" "pair" 1096 [T"num" "num" [], T"list" "list" [T"num" "num" []]]]]]))), 1097 C"," "pair" 1098 ((T"MREG" "IL" [] --> 1099 (T"prod" "pair" 1100 [T"cart" "fcp" [bool, T"i5" "words" []], 1101 T"prod" "pair" 1102 [T"num" "num" [], T"list" "list" [T"num" "num" []]]] --> 1103 T"prod" "pair" 1104 [T"MREG" "IL" [], 1105 T"prod" "pair" 1106 [T"cart" "fcp" [bool, T"i5" "words" []], 1107 T"prod" "pair" 1108 [T"num" "num" [], T"list" "list" [T"num" "num" []]]]]))), 1109 C"," "pair" 1110 ((T"cart" "fcp" [bool, T"i5" "words" []] --> 1111 (T"prod" "pair" [T"num" "num" [], T"list" "list" [T"num" "num" []]] 1112 --> 1113 T"prod" "pair" 1114 [T"cart" "fcp" [bool, T"i5" "words" []], 1115 T"prod" "pair" 1116 [T"num" "num" [], T"list" "list" [T"num" "num" []]]]))), 1117 C"@" "min" 1118 (((T"cart" "fcp" [bool, T"i5" "words" []] --> bool) --> 1119 T"cart" "fcp" [bool, T"i5" "words" []])), 1120 V"v" (T"cart" "fcp" [bool, T"i5" "words" []]), 1121 C"," "pair" 1122 ((T"num" "num" [] --> 1123 (T"list" "list" [T"num" "num" []] --> 1124 T"prod" "pair" 1125 [T"num" "num" [], T"list" "list" [T"num" "num" []]]))), 1126 C"@" "min" (((T"num" "num" [] --> bool) --> T"num" "num" [])), 1127 V"v" (T"num" "num" []), 1128 C"@" "min" 1129 (((T"list" "list" [T"num" "num" []] --> bool) --> 1130 T"list" "list" [T"num" "num" []])), 1131 V"v" (T"list" "list" [T"num" "num" []]), 1132 C"BOTTOM" "ind_type" 1133 (T"recspace" "ind_type" 1134 [T"prod" "pair" 1135 [T"MREG" "IL" [], 1136 T"prod" "pair" 1137 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 1138 T"prod" "pair" 1139 [T"MEXP" "IL" [], 1140 T"prod" "pair" 1141 [T"MREG" "IL" [], 1142 T"prod" "pair" 1143 [T"MREG" "IL" [], 1144 T"prod" "pair" 1145 [T"cart" "fcp" [bool, T"i5" "words" []], 1146 T"prod" "pair" 1147 [T"num" "num" [], 1148 T"list" "list" [T"num" "num" []]]]]]]]]]), 1149 V"a0" (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []]), 1150 V"a1" (T"MREG" "IL" []), 1151 C"?" "bool" (((T"MEXP" "IL" [] --> bool) --> bool)), 1152 V"a1" (T"MEXP" "IL" []), 1153 C"@" "min" 1154 (((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> bool) 1155 --> T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []])), 1156 V"v" (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []]), 1157 V"a2" (T"MEXP" "IL" []), V"a2" (T"MREG" "IL" []), 1158 C"?" "bool" 1159 (((T"cart" "fcp" [bool, T"i5" "words" []] --> bool) --> bool)), 1160 V"a2" (T"cart" "fcp" [bool, T"i5" "words" []]), 1161 C"?" "bool" (((T"num" "num" [] --> bool) --> bool)), 1162 V"a0" (T"num" "num" []), 1163 C"?" "bool" (((T"list" "list" [T"num" "num" []] --> bool) --> bool)), 1164 V"a1" (T"list" "list" [T"num" "num" []]), 1165 C"!" "bool" (((T"DOPER" "IL" [] --> bool) --> bool)), 1166 V"a" (T"DOPER" "IL" []), 1167 C"=" "min" ((T"DOPER" "IL" [] --> (T"DOPER" "IL" [] --> bool))), 1168 C"mk_DOPER" "IL" 1169 ((T"recspace" "ind_type" 1170 [T"prod" "pair" 1171 [T"MREG" "IL" [], 1172 T"prod" "pair" 1173 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 1174 T"prod" "pair" 1175 [T"MEXP" "IL" [], 1176 T"prod" "pair" 1177 [T"MREG" "IL" [], 1178 T"prod" "pair" 1179 [T"MREG" "IL" [], 1180 T"prod" "pair" 1181 [T"cart" "fcp" [bool, T"i5" "words" []], 1182 T"prod" "pair" 1183 [T"num" "num" [], 1184 T"list" "list" [T"num" "num" []]]]]]]]]] --> 1185 T"DOPER" "IL" [])), 1186 C"dest_DOPER" "IL" 1187 ((T"DOPER" "IL" [] --> 1188 T"recspace" "ind_type" 1189 [T"prod" "pair" 1190 [T"MREG" "IL" [], 1191 T"prod" "pair" 1192 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 1193 T"prod" "pair" 1194 [T"MEXP" "IL" [], 1195 T"prod" "pair" 1196 [T"MREG" "IL" [], 1197 T"prod" "pair" 1198 [T"MREG" "IL" [], 1199 T"prod" "pair" 1200 [T"cart" "fcp" [bool, T"i5" "words" []], 1201 T"prod" "pair" 1202 [T"num" "num" [], 1203 T"list" "list" [T"num" "num" []]]]]]]]]])), 1204 V"r" 1205 (T"recspace" "ind_type" 1206 [T"prod" "pair" 1207 [T"MREG" "IL" [], 1208 T"prod" "pair" 1209 [T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []], 1210 T"prod" "pair" 1211 [T"MEXP" "IL" [], 1212 T"prod" "pair" 1213 [T"MREG" "IL" [], 1214 T"prod" "pair" 1215 [T"MREG" "IL" [], 1216 T"prod" "pair" 1217 [T"cart" "fcp" [bool, T"i5" "words" []], 1218 T"prod" "pair" 1219 [T"num" "num" [], 1220 T"list" "list" [T"num" "num" []]]]]]]]]]), 1221 C"=" "min" 1222 (((T"MREG" "IL" [] --> 1223 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1224 T"DOPER" "IL" [])) --> 1225 ((T"MREG" "IL" [] --> 1226 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1227 T"DOPER" "IL" [])) --> bool))), 1228 C"IL2" "IL" 1229 ((T"MREG" "IL" [] --> 1230 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1231 T"DOPER" "IL" []))), 1232 C"=" "min" 1233 (((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1234 (T"MREG" "IL" [] --> T"DOPER" "IL" [])) --> 1235 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1236 (T"MREG" "IL" [] --> T"DOPER" "IL" [])) --> bool))), 1237 C"IL3" "IL" 1238 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1239 (T"MREG" "IL" [] --> T"DOPER" "IL" []))), 1240 C"=" "min" 1241 (((T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])) --> 1242 ((T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])) --> 1243 bool))), 1244 C"IL4" "IL" 1245 ((T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))), 1246 C"=" "min" 1247 (((T"MREG" "IL" [] --> 1248 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))) --> 1249 ((T"MREG" "IL" [] --> 1250 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))) --> 1251 bool))), 1252 C"IL5" "IL" 1253 ((T"MREG" "IL" [] --> 1254 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])))), 1255 C"IL6" "IL" 1256 ((T"MREG" "IL" [] --> 1257 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])))), 1258 C"IL7" "IL" 1259 ((T"MREG" "IL" [] --> 1260 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])))), 1261 C"=" "min" 1262 (((T"MREG" "IL" [] --> 1263 (T"MREG" "IL" [] --> (T"MREG" "IL" [] --> T"DOPER" "IL" []))) --> 1264 ((T"MREG" "IL" [] --> 1265 (T"MREG" "IL" [] --> (T"MREG" "IL" [] --> T"DOPER" "IL" []))) --> 1266 bool))), 1267 C"IL8" "IL" 1268 ((T"MREG" "IL" [] --> 1269 (T"MREG" "IL" [] --> (T"MREG" "IL" [] --> T"DOPER" "IL" [])))), 1270 C"IL9" "IL" 1271 ((T"MREG" "IL" [] --> 1272 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])))), 1273 C"IL10" "IL" 1274 ((T"MREG" "IL" [] --> 1275 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])))), 1276 C"IL11" "IL" 1277 ((T"MREG" "IL" [] --> 1278 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])))), 1279 C"=" "min" 1280 (((T"MREG" "IL" [] --> 1281 (T"MREG" "IL" [] --> 1282 (T"cart" "fcp" [bool, T"i5" "words" []] --> T"DOPER" "IL" []))) --> 1283 ((T"MREG" "IL" [] --> 1284 (T"MREG" "IL" [] --> 1285 (T"cart" "fcp" [bool, T"i5" "words" []] --> T"DOPER" "IL" []))) 1286 --> bool))), 1287 C"IL12" "IL" 1288 ((T"MREG" "IL" [] --> 1289 (T"MREG" "IL" [] --> 1290 (T"cart" "fcp" [bool, T"i5" "words" []] --> T"DOPER" "IL" [])))), 1291 C"IL13" "IL" 1292 ((T"MREG" "IL" [] --> 1293 (T"MREG" "IL" [] --> 1294 (T"cart" "fcp" [bool, T"i5" "words" []] --> T"DOPER" "IL" [])))), 1295 C"IL14" "IL" 1296 ((T"MREG" "IL" [] --> 1297 (T"MREG" "IL" [] --> 1298 (T"cart" "fcp" [bool, T"i5" "words" []] --> T"DOPER" "IL" [])))), 1299 C"IL15" "IL" 1300 ((T"MREG" "IL" [] --> 1301 (T"MREG" "IL" [] --> 1302 (T"cart" "fcp" [bool, T"i5" "words" []] --> T"DOPER" "IL" [])))), 1303 C"=" "min" 1304 (((T"num" "num" [] --> 1305 (T"list" "list" [T"num" "num" []] --> T"DOPER" "IL" [])) --> 1306 ((T"num" "num" [] --> 1307 (T"list" "list" [T"num" "num" []] --> T"DOPER" "IL" [])) --> 1308 bool))), 1309 C"IL16" "IL" 1310 ((T"num" "num" [] --> 1311 (T"list" "list" [T"num" "num" []] --> T"DOPER" "IL" []))), 1312 C"IL17" "IL" 1313 ((T"num" "num" [] --> 1314 (T"list" "list" [T"num" "num" []] --> T"DOPER" "IL" []))), 1315 C"MLDR" "IL" 1316 ((T"MREG" "IL" [] --> 1317 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1318 T"DOPER" "IL" []))), 1319 C"MSTR" "IL" 1320 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1321 (T"MREG" "IL" [] --> T"DOPER" "IL" []))), 1322 C"MMOV" "IL" 1323 ((T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))), 1324 C"MADD" "IL" 1325 ((T"MREG" "IL" [] --> 1326 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])))), 1327 C"MSUB" "IL" 1328 ((T"MREG" "IL" [] --> 1329 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])))), 1330 C"MRSB" "IL" 1331 ((T"MREG" "IL" [] --> 1332 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])))), 1333 C"MMUL" "IL" 1334 ((T"MREG" "IL" [] --> 1335 (T"MREG" "IL" [] --> (T"MREG" "IL" [] --> T"DOPER" "IL" [])))), 1336 C"MAND" "IL" 1337 ((T"MREG" "IL" [] --> 1338 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])))), 1339 C"MORR" "IL" 1340 ((T"MREG" "IL" [] --> 1341 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])))), 1342 C"MEOR" "IL" 1343 ((T"MREG" "IL" [] --> 1344 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])))), 1345 C"MLSL" "IL" 1346 ((T"MREG" "IL" [] --> 1347 (T"MREG" "IL" [] --> 1348 (T"cart" "fcp" [bool, T"i5" "words" []] --> T"DOPER" "IL" [])))), 1349 C"MLSR" "IL" 1350 ((T"MREG" "IL" [] --> 1351 (T"MREG" "IL" [] --> 1352 (T"cart" "fcp" [bool, T"i5" "words" []] --> T"DOPER" "IL" [])))), 1353 C"MASR" "IL" 1354 ((T"MREG" "IL" [] --> 1355 (T"MREG" "IL" [] --> 1356 (T"cart" "fcp" [bool, T"i5" "words" []] --> T"DOPER" "IL" [])))), 1357 C"MROR" "IL" 1358 ((T"MREG" "IL" [] --> 1359 (T"MREG" "IL" [] --> 1360 (T"cart" "fcp" [bool, T"i5" "words" []] --> T"DOPER" "IL" [])))), 1361 C"MPUSH" "IL" 1362 ((T"num" "num" [] --> 1363 (T"list" "list" [T"num" "num" []] --> T"DOPER" "IL" []))), 1364 C"MPOP" "IL" 1365 ((T"num" "num" [] --> 1366 (T"list" "list" [T"num" "num" []] --> T"DOPER" "IL" []))), 1367 C"!" "bool" 1368 ((((T"MREG" "IL" [] --> 1369 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1370 alpha)) --> bool) --> bool)), 1371 V"f" 1372 ((T"MREG" "IL" [] --> 1373 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1374 alpha))), 1375 C"!" "bool" 1376 ((((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1377 (T"MREG" "IL" [] --> alpha)) --> bool) --> bool)), 1378 V"f1" 1379 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1380 (T"MREG" "IL" [] --> alpha))), 1381 C"!" "bool" 1382 ((((T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)) --> bool) --> 1383 bool)), V"f2" ((T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))), 1384 C"!" "bool" 1385 ((((T"MREG" "IL" [] --> 1386 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))) --> bool) --> 1387 bool)), 1388 V"f3" 1389 ((T"MREG" "IL" [] --> 1390 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)))), 1391 V"f4" 1392 ((T"MREG" "IL" [] --> 1393 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)))), 1394 V"f5" 1395 ((T"MREG" "IL" [] --> 1396 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)))), 1397 C"!" "bool" 1398 ((((T"MREG" "IL" [] --> 1399 (T"MREG" "IL" [] --> (T"MREG" "IL" [] --> alpha))) --> bool) --> 1400 bool)), 1401 V"f6" 1402 ((T"MREG" "IL" [] --> 1403 (T"MREG" "IL" [] --> (T"MREG" "IL" [] --> alpha)))), 1404 V"f7" 1405 ((T"MREG" "IL" [] --> 1406 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)))), 1407 V"f8" 1408 ((T"MREG" "IL" [] --> 1409 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)))), 1410 V"f9" 1411 ((T"MREG" "IL" [] --> 1412 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)))), 1413 C"!" "bool" 1414 ((((T"MREG" "IL" [] --> 1415 (T"MREG" "IL" [] --> 1416 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha))) --> bool) --> 1417 bool)), 1418 V"f10" 1419 ((T"MREG" "IL" [] --> 1420 (T"MREG" "IL" [] --> 1421 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha)))), 1422 V"f11" 1423 ((T"MREG" "IL" [] --> 1424 (T"MREG" "IL" [] --> 1425 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha)))), 1426 V"f12" 1427 ((T"MREG" "IL" [] --> 1428 (T"MREG" "IL" [] --> 1429 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha)))), 1430 V"f13" 1431 ((T"MREG" "IL" [] --> 1432 (T"MREG" "IL" [] --> 1433 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha)))), 1434 C"!" "bool" 1435 ((((T"num" "num" [] --> (T"list" "list" [T"num" "num" []] --> alpha)) 1436 --> bool) --> bool)), 1437 V"f14" 1438 ((T"num" "num" [] --> (T"list" "list" [T"num" "num" []] --> alpha))), 1439 V"f15" 1440 ((T"num" "num" [] --> (T"list" "list" [T"num" "num" []] --> alpha))), 1441 C"!" "bool" 1442 (((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> bool) 1443 --> bool)), 1444 C"DOPER_case" "IL" 1445 (((T"MREG" "IL" [] --> 1446 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> alpha)) 1447 --> 1448 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1449 (T"MREG" "IL" [] --> alpha)) --> 1450 ((T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)) --> 1451 ((T"MREG" "IL" [] --> 1452 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))) --> 1453 ((T"MREG" "IL" [] --> 1454 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))) --> 1455 ((T"MREG" "IL" [] --> 1456 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))) --> 1457 ((T"MREG" "IL" [] --> 1458 (T"MREG" "IL" [] --> (T"MREG" "IL" [] --> alpha))) --> 1459 ((T"MREG" "IL" [] --> 1460 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))) --> 1461 ((T"MREG" "IL" [] --> 1462 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))) --> 1463 ((T"MREG" "IL" [] --> 1464 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))) --> 1465 ((T"MREG" "IL" [] --> 1466 (T"MREG" "IL" [] --> 1467 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha))) --> 1468 ((T"MREG" "IL" [] --> 1469 (T"MREG" "IL" [] --> 1470 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha))) --> 1471 ((T"MREG" "IL" [] --> 1472 (T"MREG" "IL" [] --> 1473 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha))) 1474 --> 1475 ((T"MREG" "IL" [] --> 1476 (T"MREG" "IL" [] --> 1477 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha))) 1478 --> 1479 ((T"num" "num" [] --> 1480 (T"list" "list" [T"num" "num" []] --> alpha)) --> 1481 ((T"num" "num" [] --> 1482 (T"list" "list" [T"num" "num" []] --> alpha)) --> 1483 (T"DOPER" "IL" [] --> alpha)))))))))))))))))), 1484 C"!" "bool" 1485 (((T"cart" "fcp" [bool, T"i5" "words" []] --> bool) --> bool)), 1486 C"!" "bool" (((T"list" "list" [T"num" "num" []] --> bool) --> bool)), 1487 C"DOPER_size" "IL" ((T"DOPER" "IL" [] --> T"num" "num" [])), 1488 C"UNCURRY" "pair" 1489 (((T"num" "num" [] --> (T"OFFSET" "preARM" [] --> T"num" "num" [])) --> 1490 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 1491 T"num" "num" []))), V"x" (T"num" "num" []), 1492 V"y" (T"OFFSET" "preARM" []), 1493 C"OFFSET_size" "preARM" ((T"OFFSET" "preARM" [] --> T"num" "num" [])), 1494 C"list_size" "list" 1495 (((T"num" "num" [] --> T"num" "num" []) --> 1496 (T"list" "list" [T"num" "num" []] --> T"num" "num" []))), 1497 C"?" "bool" 1498 ((((T"CTL_STRUCTURE" "IL" [] --> 1499 T"recspace" "ind_type" 1500 [T"prod" "pair" 1501 [T"list" "list" [T"DOPER" "IL" []], 1502 T"prod" "pair" 1503 [T"MREG" "IL" [], 1504 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]]) --> 1505 bool) --> bool)), 1506 V"rep" 1507 ((T"CTL_STRUCTURE" "IL" [] --> 1508 T"recspace" "ind_type" 1509 [T"prod" "pair" 1510 [T"list" "list" [T"DOPER" "IL" []], 1511 T"prod" "pair" 1512 [T"MREG" "IL" [], 1513 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]])), 1514 C"TYPE_DEFINITION" "bool" 1515 (((T"recspace" "ind_type" 1516 [T"prod" "pair" 1517 [T"list" "list" [T"DOPER" "IL" []], 1518 T"prod" "pair" 1519 [T"MREG" "IL" [], 1520 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]] --> 1521 bool) --> 1522 ((T"CTL_STRUCTURE" "IL" [] --> 1523 T"recspace" "ind_type" 1524 [T"prod" "pair" 1525 [T"list" "list" [T"DOPER" "IL" []], 1526 T"prod" "pair" 1527 [T"MREG" "IL" [], 1528 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]]) --> 1529 bool))), 1530 V"a0'" 1531 (T"recspace" "ind_type" 1532 [T"prod" "pair" 1533 [T"list" "list" [T"DOPER" "IL" []], 1534 T"prod" "pair" 1535 [T"MREG" "IL" [], 1536 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]]), 1537 C"!" "bool" 1538 ((((T"recspace" "ind_type" 1539 [T"prod" "pair" 1540 [T"list" "list" [T"DOPER" "IL" []], 1541 T"prod" "pair" 1542 [T"MREG" "IL" [], 1543 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]] --> 1544 bool) --> bool) --> bool)), 1545 V"'CTL_STRUCTURE'" 1546 ((T"recspace" "ind_type" 1547 [T"prod" "pair" 1548 [T"list" "list" [T"DOPER" "IL" []], 1549 T"prod" "pair" 1550 [T"MREG" "IL" [], 1551 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]] --> 1552 bool)), 1553 C"!" "bool" 1554 (((T"recspace" "ind_type" 1555 [T"prod" "pair" 1556 [T"list" "list" [T"DOPER" "IL" []], 1557 T"prod" "pair" 1558 [T"MREG" "IL" [], 1559 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]] --> 1560 bool) --> bool)), 1561 C"?" "bool" (((T"list" "list" [T"DOPER" "IL" []] --> bool) --> bool)), 1562 V"a" (T"list" "list" [T"DOPER" "IL" []]), 1563 C"=" "min" 1564 ((T"recspace" "ind_type" 1565 [T"prod" "pair" 1566 [T"list" "list" [T"DOPER" "IL" []], 1567 T"prod" "pair" 1568 [T"MREG" "IL" [], 1569 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]] --> 1570 (T"recspace" "ind_type" 1571 [T"prod" "pair" 1572 [T"list" "list" [T"DOPER" "IL" []], 1573 T"prod" "pair" 1574 [T"MREG" "IL" [], 1575 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]] --> 1576 bool))), 1577 C"CONSTR" "ind_type" 1578 ((T"num" "num" [] --> 1579 (T"prod" "pair" 1580 [T"list" "list" [T"DOPER" "IL" []], 1581 T"prod" "pair" 1582 [T"MREG" "IL" [], 1583 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]] --> 1584 ((T"num" "num" [] --> 1585 T"recspace" "ind_type" 1586 [T"prod" "pair" 1587 [T"list" "list" [T"DOPER" "IL" []], 1588 T"prod" "pair" 1589 [T"MREG" "IL" [], 1590 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]]) 1591 --> 1592 T"recspace" "ind_type" 1593 [T"prod" "pair" 1594 [T"list" "list" [T"DOPER" "IL" []], 1595 T"prod" "pair" 1596 [T"MREG" "IL" [], 1597 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]])))), 1598 C"," "pair" 1599 ((T"list" "list" [T"DOPER" "IL" []] --> 1600 (T"prod" "pair" 1601 [T"MREG" "IL" [], 1602 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1603 T"prod" "pair" 1604 [T"list" "list" [T"DOPER" "IL" []], 1605 T"prod" "pair" 1606 [T"MREG" "IL" [], 1607 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]))), 1608 C"@" "min" 1609 (((T"prod" "pair" 1610 [T"MREG" "IL" [], 1611 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> bool) 1612 --> 1613 T"prod" "pair" 1614 [T"MREG" "IL" [], 1615 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]])), 1616 V"v" 1617 (T"prod" "pair" 1618 [T"MREG" "IL" [], 1619 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]), 1620 C"BOTTOM" "ind_type" 1621 (T"recspace" "ind_type" 1622 [T"prod" "pair" 1623 [T"list" "list" [T"DOPER" "IL" []], 1624 T"prod" "pair" 1625 [T"MREG" "IL" [], 1626 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]]), 1627 C"?" "bool" 1628 (((T"recspace" "ind_type" 1629 [T"prod" "pair" 1630 [T"list" "list" [T"DOPER" "IL" []], 1631 T"prod" "pair" 1632 [T"MREG" "IL" [], 1633 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]] --> 1634 bool) --> bool)), 1635 V"a0" 1636 (T"recspace" "ind_type" 1637 [T"prod" "pair" 1638 [T"list" "list" [T"DOPER" "IL" []], 1639 T"prod" "pair" 1640 [T"MREG" "IL" [], 1641 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]]), 1642 V"a1" 1643 (T"recspace" "ind_type" 1644 [T"prod" "pair" 1645 [T"list" "list" [T"DOPER" "IL" []], 1646 T"prod" "pair" 1647 [T"MREG" "IL" [], 1648 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]]), 1649 C"@" "min" 1650 (((T"list" "list" [T"DOPER" "IL" []] --> bool) --> 1651 T"list" "list" [T"DOPER" "IL" []])), 1652 V"v" (T"list" "list" [T"DOPER" "IL" []]), 1653 C"FCONS" "ind_type" 1654 ((T"recspace" "ind_type" 1655 [T"prod" "pair" 1656 [T"list" "list" [T"DOPER" "IL" []], 1657 T"prod" "pair" 1658 [T"MREG" "IL" [], 1659 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]] --> 1660 ((T"num" "num" [] --> 1661 T"recspace" "ind_type" 1662 [T"prod" "pair" 1663 [T"list" "list" [T"DOPER" "IL" []], 1664 T"prod" "pair" 1665 [T"MREG" "IL" [], 1666 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]]) --> 1667 (T"num" "num" [] --> 1668 T"recspace" "ind_type" 1669 [T"prod" "pair" 1670 [T"list" "list" [T"DOPER" "IL" []], 1671 T"prod" "pair" 1672 [T"MREG" "IL" [], 1673 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]])))), 1674 C"?" "bool" 1675 (((T"prod" "pair" 1676 [T"MREG" "IL" [], 1677 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> bool) 1678 --> bool)), 1679 V"a0" 1680 (T"prod" "pair" 1681 [T"MREG" "IL" [], 1682 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]), 1683 V"a2" 1684 (T"recspace" "ind_type" 1685 [T"prod" "pair" 1686 [T"list" "list" [T"DOPER" "IL" []], 1687 T"prod" "pair" 1688 [T"MREG" "IL" [], 1689 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]]), 1690 C"!" "bool" (((T"CTL_STRUCTURE" "IL" [] --> bool) --> bool)), 1691 V"a" (T"CTL_STRUCTURE" "IL" []), 1692 C"=" "min" 1693 ((T"CTL_STRUCTURE" "IL" [] --> (T"CTL_STRUCTURE" "IL" [] --> bool))), 1694 C"mk_CTL_STRUCTURE" "IL" 1695 ((T"recspace" "ind_type" 1696 [T"prod" "pair" 1697 [T"list" "list" [T"DOPER" "IL" []], 1698 T"prod" "pair" 1699 [T"MREG" "IL" [], 1700 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]] --> 1701 T"CTL_STRUCTURE" "IL" [])), 1702 C"dest_CTL_STRUCTURE" "IL" 1703 ((T"CTL_STRUCTURE" "IL" [] --> 1704 T"recspace" "ind_type" 1705 [T"prod" "pair" 1706 [T"list" "list" [T"DOPER" "IL" []], 1707 T"prod" "pair" 1708 [T"MREG" "IL" [], 1709 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]])), 1710 V"r" 1711 (T"recspace" "ind_type" 1712 [T"prod" "pair" 1713 [T"list" "list" [T"DOPER" "IL" []], 1714 T"prod" "pair" 1715 [T"MREG" "IL" [], 1716 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]]]), 1717 C"=" "min" 1718 (((T"list" "list" [T"DOPER" "IL" []] --> T"CTL_STRUCTURE" "IL" []) --> 1719 ((T"list" "list" [T"DOPER" "IL" []] --> T"CTL_STRUCTURE" "IL" []) --> 1720 bool))), 1721 C"IL18" "IL" 1722 ((T"list" "list" [T"DOPER" "IL" []] --> T"CTL_STRUCTURE" "IL" [])), 1723 C"=" "min" 1724 (((T"CTL_STRUCTURE" "IL" [] --> 1725 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" [])) --> 1726 ((T"CTL_STRUCTURE" "IL" [] --> 1727 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" [])) --> 1728 bool))), 1729 C"IL19" "IL" 1730 ((T"CTL_STRUCTURE" "IL" [] --> 1731 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" []))), 1732 V"a0" (T"CTL_STRUCTURE" "IL" []), V"a1" (T"CTL_STRUCTURE" "IL" []), 1733 C"=" "min" 1734 (((T"prod" "pair" 1735 [T"MREG" "IL" [], 1736 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1737 (T"CTL_STRUCTURE" "IL" [] --> 1738 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" []))) --> 1739 ((T"prod" "pair" 1740 [T"MREG" "IL" [], 1741 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1742 (T"CTL_STRUCTURE" "IL" [] --> 1743 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" []))) --> 1744 bool))), 1745 C"IL20" "IL" 1746 ((T"prod" "pair" 1747 [T"MREG" "IL" [], 1748 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1749 (T"CTL_STRUCTURE" "IL" [] --> 1750 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" [])))), 1751 V"a2" (T"CTL_STRUCTURE" "IL" []), 1752 C"=" "min" 1753 (((T"prod" "pair" 1754 [T"MREG" "IL" [], 1755 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1756 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" [])) --> 1757 ((T"prod" "pair" 1758 [T"MREG" "IL" [], 1759 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1760 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" [])) --> 1761 bool))), 1762 C"IL21" "IL" 1763 ((T"prod" "pair" 1764 [T"MREG" "IL" [], 1765 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1766 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" []))), 1767 C"BLK" "IL" 1768 ((T"list" "list" [T"DOPER" "IL" []] --> T"CTL_STRUCTURE" "IL" [])), 1769 C"SC" "IL" 1770 ((T"CTL_STRUCTURE" "IL" [] --> 1771 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" []))), 1772 C"CJ" "IL" 1773 ((T"prod" "pair" 1774 [T"MREG" "IL" [], 1775 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1776 (T"CTL_STRUCTURE" "IL" [] --> 1777 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" [])))), 1778 C"TR" "IL" 1779 ((T"prod" "pair" 1780 [T"MREG" "IL" [], 1781 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1782 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" []))), 1783 C"!" "bool" 1784 ((((T"list" "list" [T"DOPER" "IL" []] --> alpha) --> bool) --> bool)), 1785 V"f" ((T"list" "list" [T"DOPER" "IL" []] --> alpha)), 1786 C"!" "bool" 1787 ((((T"CTL_STRUCTURE" "IL" [] --> (T"CTL_STRUCTURE" "IL" [] --> alpha)) 1788 --> bool) --> bool)), 1789 V"f1" 1790 ((T"CTL_STRUCTURE" "IL" [] --> (T"CTL_STRUCTURE" "IL" [] --> alpha))), 1791 C"!" "bool" 1792 ((((T"prod" "pair" 1793 [T"MREG" "IL" [], 1794 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1795 (T"CTL_STRUCTURE" "IL" [] --> 1796 (T"CTL_STRUCTURE" "IL" [] --> alpha))) --> bool) --> bool)), 1797 V"f2" 1798 ((T"prod" "pair" 1799 [T"MREG" "IL" [], 1800 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1801 (T"CTL_STRUCTURE" "IL" [] --> 1802 (T"CTL_STRUCTURE" "IL" [] --> alpha)))), 1803 C"!" "bool" 1804 ((((T"prod" "pair" 1805 [T"MREG" "IL" [], 1806 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1807 (T"CTL_STRUCTURE" "IL" [] --> alpha)) --> bool) --> bool)), 1808 V"f3" 1809 ((T"prod" "pair" 1810 [T"MREG" "IL" [], 1811 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1812 (T"CTL_STRUCTURE" "IL" [] --> alpha))), 1813 C"!" "bool" (((T"list" "list" [T"DOPER" "IL" []] --> bool) --> bool)), 1814 C"CTL_STRUCTURE_case" "IL" 1815 (((T"list" "list" [T"DOPER" "IL" []] --> alpha) --> 1816 ((T"CTL_STRUCTURE" "IL" [] --> (T"CTL_STRUCTURE" "IL" [] --> alpha)) 1817 --> 1818 ((T"prod" "pair" 1819 [T"MREG" "IL" [], 1820 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1821 (T"CTL_STRUCTURE" "IL" [] --> 1822 (T"CTL_STRUCTURE" "IL" [] --> alpha))) --> 1823 ((T"prod" "pair" 1824 [T"MREG" "IL" [], 1825 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1826 (T"CTL_STRUCTURE" "IL" [] --> alpha)) --> 1827 (T"CTL_STRUCTURE" "IL" [] --> alpha)))))), 1828 C"!" "bool" 1829 (((T"prod" "pair" 1830 [T"MREG" "IL" [], 1831 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> bool) 1832 --> bool)), 1833 C"CTL_STRUCTURE_size" "IL" 1834 ((T"CTL_STRUCTURE" "IL" [] --> T"num" "num" [])), 1835 C"list_size" "list" 1836 (((T"DOPER" "IL" [] --> T"num" "num" []) --> 1837 (T"list" "list" [T"DOPER" "IL" []] --> T"num" "num" []))), 1838 C"UNCURRY" "pair" 1839 (((T"MREG" "IL" [] --> 1840 (T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []] --> 1841 T"num" "num" [])) --> 1842 (T"prod" "pair" 1843 [T"MREG" "IL" [], 1844 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 1845 T"num" "num" []))), 1846 V"y" (T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]), 1847 C"UNCURRY" "pair" 1848 (((T"COND" "preARM" [] --> (T"MEXP" "IL" [] --> T"num" "num" [])) --> 1849 (T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []] --> 1850 T"num" "num" []))), V"x" (T"COND" "preARM" []), 1851 V"y" (T"MEXP" "IL" []), 1852 C"COND_size" "preARM" ((T"COND" "preARM" [] --> T"num" "num" [])), 1853 C"!" "bool" 1854 (((T"prod" "pair" 1855 [T"fmap" "finite_map" 1856 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1857 T"fmap" "finite_map" 1858 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 1859 bool) --> bool)), 1860 V"st" 1861 (T"prod" "pair" 1862 [T"fmap" "finite_map" 1863 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1864 T"fmap" "finite_map" 1865 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]), 1866 V"baseR" (T"num" "num" []), V"regL" (T"list" "list" [T"num" "num" []]), 1867 C"=" "min" 1868 ((T"prod" "pair" 1869 [T"fmap" "finite_map" 1870 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1871 T"fmap" "finite_map" 1872 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 1873 (T"prod" "pair" 1874 [T"fmap" "finite_map" 1875 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1876 T"fmap" "finite_map" 1877 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 1878 bool))), 1879 C"pushL" "IL" 1880 ((T"prod" "pair" 1881 [T"fmap" "finite_map" 1882 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1883 T"fmap" "finite_map" 1884 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 1885 (T"num" "num" [] --> 1886 (T"list" "list" [T"num" "num" []] --> 1887 T"prod" "pair" 1888 [T"fmap" "finite_map" 1889 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1890 T"fmap" "finite_map" 1891 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]])))), 1892 C"write" "preARM" 1893 ((T"prod" "pair" 1894 [T"fmap" "finite_map" 1895 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1896 T"fmap" "finite_map" 1897 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 1898 (T"EXP" "preARM" [] --> 1899 (T"cart" "fcp" [bool, T"i32" "words" []] --> 1900 T"prod" "pair" 1901 [T"fmap" "finite_map" 1902 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1903 T"fmap" "finite_map" 1904 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]])))), 1905 C"FST" "pair" 1906 ((T"prod" "pair" 1907 [T"prod" "pair" 1908 [T"fmap" "finite_map" 1909 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1910 T"fmap" "finite_map" 1911 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]], 1912 T"num" "num" []] --> 1913 T"prod" "pair" 1914 [T"fmap" "finite_map" 1915 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1916 T"fmap" "finite_map" 1917 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]])), 1918 C"FOLDL" "list" 1919 (((T"prod" "pair" 1920 [T"prod" "pair" 1921 [T"fmap" "finite_map" 1922 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1923 T"fmap" "finite_map" 1924 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]], 1925 T"num" "num" []] --> 1926 (T"EXP" "preARM" [] --> 1927 T"prod" "pair" 1928 [T"prod" "pair" 1929 [T"fmap" "finite_map" 1930 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1931 T"fmap" "finite_map" 1932 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]], 1933 T"num" "num" []])) --> 1934 (T"prod" "pair" 1935 [T"prod" "pair" 1936 [T"fmap" "finite_map" 1937 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1938 T"fmap" "finite_map" 1939 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]], 1940 T"num" "num" []] --> 1941 (T"list" "list" [T"EXP" "preARM" []] --> 1942 T"prod" "pair" 1943 [T"prod" "pair" 1944 [T"fmap" "finite_map" 1945 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1946 T"fmap" "finite_map" 1947 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]], 1948 T"num" "num" []])))), 1949 C"UNCURRY" "pair" 1950 (((T"prod" "pair" 1951 [T"fmap" "finite_map" 1952 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1953 T"fmap" "finite_map" 1954 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 1955 (T"num" "num" [] --> 1956 (T"EXP" "preARM" [] --> 1957 T"prod" "pair" 1958 [T"prod" "pair" 1959 [T"fmap" "finite_map" 1960 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1961 T"fmap" "finite_map" 1962 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]], 1963 T"num" "num" []]))) --> 1964 (T"prod" "pair" 1965 [T"prod" "pair" 1966 [T"fmap" "finite_map" 1967 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1968 T"fmap" "finite_map" 1969 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]], 1970 T"num" "num" []] --> 1971 (T"EXP" "preARM" [] --> 1972 T"prod" "pair" 1973 [T"prod" "pair" 1974 [T"fmap" "finite_map" 1975 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1976 T"fmap" "finite_map" 1977 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]], 1978 T"num" "num" []])))), 1979 V"st1" 1980 (T"prod" "pair" 1981 [T"fmap" "finite_map" 1982 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1983 T"fmap" "finite_map" 1984 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]), 1985 V"reg" (T"EXP" "preARM" []), 1986 C"," "pair" 1987 ((T"prod" "pair" 1988 [T"fmap" "finite_map" 1989 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1990 T"fmap" "finite_map" 1991 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 1992 (T"num" "num" [] --> 1993 T"prod" "pair" 1994 [T"prod" "pair" 1995 [T"fmap" "finite_map" 1996 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 1997 T"fmap" "finite_map" 1998 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]], 1999 T"num" "num" []]))), 2000 C"NEG" "preARM" ((T"num" "num" [] --> T"OFFSET" "preARM" [])), 2001 C"read" "preARM" 2002 ((T"prod" "pair" 2003 [T"fmap" "finite_map" 2004 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2005 T"fmap" "finite_map" 2006 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 2007 (T"EXP" "preARM" [] --> T"cart" "fcp" [bool, T"i32" "words" []]))), 2008 C"REVERSE" "list" 2009 ((T"list" "list" [T"EXP" "preARM" []] --> 2010 T"list" "list" [T"EXP" "preARM" []])), 2011 C"MAP" "list" 2012 (((T"num" "num" [] --> T"EXP" "preARM" []) --> 2013 (T"list" "list" [T"num" "num" []] --> 2014 T"list" "list" [T"EXP" "preARM" []]))), 2015 C"word_sub" "words" 2016 ((T"cart" "fcp" [bool, T"i32" "words" []] --> 2017 (T"cart" "fcp" [bool, T"i32" "words" []] --> 2018 T"cart" "fcp" [bool, T"i32" "words" []]))), 2019 C"n2w" "words" 2020 ((T"num" "num" [] --> T"cart" "fcp" [bool, T"i32" "words" []])), 2021 C"LENGTH" "list" 2022 ((T"list" "list" [T"num" "num" []] --> T"num" "num" [])), 2023 C"popL" "IL" 2024 ((T"prod" "pair" 2025 [T"fmap" "finite_map" 2026 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2027 T"fmap" "finite_map" 2028 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 2029 (T"num" "num" [] --> 2030 (T"list" "list" [T"num" "num" []] --> 2031 T"prod" "pair" 2032 [T"fmap" "finite_map" 2033 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2034 T"fmap" "finite_map" 2035 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]])))), 2036 C"POS" "preARM" ((T"num" "num" [] --> T"OFFSET" "preARM" [])), 2037 C"word_add" "words" 2038 ((T"cart" "fcp" [bool, T"i32" "words" []] --> 2039 (T"cart" "fcp" [bool, T"i32" "words" []] --> 2040 T"cart" "fcp" [bool, T"i32" "words" []]))), 2041 V"dst" (T"MREG" "IL" []), 2042 V"src" (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []]), 2043 C"mdecode" "IL" 2044 ((T"prod" "pair" 2045 [T"fmap" "finite_map" 2046 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2047 T"fmap" "finite_map" 2048 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 2049 (T"DOPER" "IL" [] --> 2050 T"prod" "pair" 2051 [T"fmap" "finite_map" 2052 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2053 T"fmap" "finite_map" 2054 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]))), 2055 V"dst" (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []]), 2056 V"src" (T"MREG" "IL" []), V"src" (T"MEXP" "IL" []), 2057 V"src1" (T"MREG" "IL" []), V"src2" (T"MEXP" "IL" []), 2058 V"src2_reg" (T"MREG" "IL" []), 2059 C"word_mul" "words" 2060 ((T"cart" "fcp" [bool, T"i32" "words" []] --> 2061 (T"cart" "fcp" [bool, T"i32" "words" []] --> 2062 T"cart" "fcp" [bool, T"i32" "words" []]))), 2063 C"word_and" "words" 2064 ((T"cart" "fcp" [bool, T"i32" "words" []] --> 2065 (T"cart" "fcp" [bool, T"i32" "words" []] --> 2066 T"cart" "fcp" [bool, T"i32" "words" []]))), 2067 C"word_or" "words" 2068 ((T"cart" "fcp" [bool, T"i32" "words" []] --> 2069 (T"cart" "fcp" [bool, T"i32" "words" []] --> 2070 T"cart" "fcp" [bool, T"i32" "words" []]))), 2071 C"word_xor" "words" 2072 ((T"cart" "fcp" [bool, T"i32" "words" []] --> 2073 (T"cart" "fcp" [bool, T"i32" "words" []] --> 2074 T"cart" "fcp" [bool, T"i32" "words" []]))), 2075 V"src2_num" (T"cart" "fcp" [bool, T"i5" "words" []]), 2076 C"word_lsl" "words" 2077 ((T"cart" "fcp" [bool, T"i32" "words" []] --> 2078 (T"num" "num" [] --> T"cart" "fcp" [bool, T"i32" "words" []]))), 2079 C"w2n" "words" 2080 ((T"cart" "fcp" [bool, T"i5" "words" []] --> T"num" "num" [])), 2081 C"word_lsr" "words" 2082 ((T"cart" "fcp" [bool, T"i32" "words" []] --> 2083 (T"num" "num" [] --> T"cart" "fcp" [bool, T"i32" "words" []]))), 2084 C"word_asr" "words" 2085 ((T"cart" "fcp" [bool, T"i32" "words" []] --> 2086 (T"num" "num" [] --> T"cart" "fcp" [bool, T"i32" "words" []]))), 2087 V"dst'" (T"num" "num" []), V"srcL" (T"list" "list" [T"num" "num" []]), 2088 C"=" "min" 2089 ((T"prod" "pair" 2090 [T"prod" "pair" 2091 [T"OPERATOR" "preARM" [], 2092 T"prod" "pair" [T"option" "option" [T"COND" "preARM" []], bool]], 2093 T"prod" "pair" 2094 [T"option" "option" [T"EXP" "preARM" []], 2095 T"prod" "pair" 2096 [T"list" "list" [T"EXP" "preARM" []], 2097 T"option" "option" [T"OFFSET" "preARM" []]]]] --> 2098 (T"prod" "pair" 2099 [T"prod" "pair" 2100 [T"OPERATOR" "preARM" [], 2101 T"prod" "pair" 2102 [T"option" "option" [T"COND" "preARM" []], bool]], 2103 T"prod" "pair" 2104 [T"option" "option" [T"EXP" "preARM" []], 2105 T"prod" "pair" 2106 [T"list" "list" [T"EXP" "preARM" []], 2107 T"option" "option" [T"OFFSET" "preARM" []]]]] --> bool))), 2108 C"translate_assignment" "IL" 2109 ((T"DOPER" "IL" [] --> 2110 T"prod" "pair" 2111 [T"prod" "pair" 2112 [T"OPERATOR" "preARM" [], 2113 T"prod" "pair" [T"option" "option" [T"COND" "preARM" []], bool]], 2114 T"prod" "pair" 2115 [T"option" "option" [T"EXP" "preARM" []], 2116 T"prod" "pair" 2117 [T"list" "list" [T"EXP" "preARM" []], 2118 T"option" "option" [T"OFFSET" "preARM" []]]]])), 2119 C"," "pair" 2120 ((T"prod" "pair" 2121 [T"OPERATOR" "preARM" [], 2122 T"prod" "pair" [T"option" "option" [T"COND" "preARM" []], bool]] 2123 --> 2124 (T"prod" "pair" 2125 [T"option" "option" [T"EXP" "preARM" []], 2126 T"prod" "pair" 2127 [T"list" "list" [T"EXP" "preARM" []], 2128 T"option" "option" [T"OFFSET" "preARM" []]]] --> 2129 T"prod" "pair" 2130 [T"prod" "pair" 2131 [T"OPERATOR" "preARM" [], 2132 T"prod" "pair" 2133 [T"option" "option" [T"COND" "preARM" []], bool]], 2134 T"prod" "pair" 2135 [T"option" "option" [T"EXP" "preARM" []], 2136 T"prod" "pair" 2137 [T"list" "list" [T"EXP" "preARM" []], 2138 T"option" "option" [T"OFFSET" "preARM" []]]]]))), 2139 C"," "pair" 2140 ((T"OPERATOR" "preARM" [] --> 2141 (T"prod" "pair" [T"option" "option" [T"COND" "preARM" []], bool] --> 2142 T"prod" "pair" 2143 [T"OPERATOR" "preARM" [], 2144 T"prod" "pair" 2145 [T"option" "option" [T"COND" "preARM" []], bool]]))), 2146 C"MOV" "preARM" (T"OPERATOR" "preARM" []), 2147 C"," "pair" 2148 ((T"option" "option" [T"COND" "preARM" []] --> 2149 (bool --> 2150 T"prod" "pair" [T"option" "option" [T"COND" "preARM" []], bool]))), 2151 C"NONE" "option" (T"option" "option" [T"COND" "preARM" []]), 2152 C"F" "bool" (bool), 2153 C"," "pair" 2154 ((T"option" "option" [T"EXP" "preARM" []] --> 2155 (T"prod" "pair" 2156 [T"list" "list" [T"EXP" "preARM" []], 2157 T"option" "option" [T"OFFSET" "preARM" []]] --> 2158 T"prod" "pair" 2159 [T"option" "option" [T"EXP" "preARM" []], 2160 T"prod" "pair" 2161 [T"list" "list" [T"EXP" "preARM" []], 2162 T"option" "option" [T"OFFSET" "preARM" []]]]))), 2163 C"SOME" "option" 2164 ((T"EXP" "preARM" [] --> T"option" "option" [T"EXP" "preARM" []])), 2165 C"," "pair" 2166 ((T"list" "list" [T"EXP" "preARM" []] --> 2167 (T"option" "option" [T"OFFSET" "preARM" []] --> 2168 T"prod" "pair" 2169 [T"list" "list" [T"EXP" "preARM" []], 2170 T"option" "option" [T"OFFSET" "preARM" []]]))), 2171 C"CONS" "list" 2172 ((T"EXP" "preARM" [] --> 2173 (T"list" "list" [T"EXP" "preARM" []] --> 2174 T"list" "list" [T"EXP" "preARM" []]))), 2175 C"NIL" "list" (T"list" "list" [T"EXP" "preARM" []]), 2176 C"NONE" "option" (T"option" "option" [T"OFFSET" "preARM" []]), 2177 C"ADD" "preARM" (T"OPERATOR" "preARM" []), 2178 C"SUB" "preARM" (T"OPERATOR" "preARM" []), 2179 C"RSB" "preARM" (T"OPERATOR" "preARM" []), 2180 C"MUL" "preARM" (T"OPERATOR" "preARM" []), 2181 C"AND" "preARM" (T"OPERATOR" "preARM" []), 2182 C"ORR" "preARM" (T"OPERATOR" "preARM" []), 2183 C"EOR" "preARM" (T"OPERATOR" "preARM" []), 2184 C"LSL" "preARM" (T"OPERATOR" "preARM" []), 2185 C"w2w" "words" 2186 ((T"cart" "fcp" [bool, T"i5" "words" []] --> 2187 T"cart" "fcp" [bool, T"i32" "words" []])), 2188 C"LSR" "preARM" (T"OPERATOR" "preARM" []), 2189 C"ASR" "preARM" (T"OPERATOR" "preARM" []), 2190 C"ROR" "preARM" (T"OPERATOR" "preARM" []), 2191 C"LDR" "preARM" (T"OPERATOR" "preARM" []), 2192 C"STR" "preARM" (T"OPERATOR" "preARM" []), V"dst" (T"num" "num" []), 2193 C"STMFD" "preARM" (T"OPERATOR" "preARM" []), 2194 C"WREG" "preARM" ((T"num" "num" [] --> T"EXP" "preARM" [])), 2195 C"LDMFD" "preARM" (T"OPERATOR" "preARM" []), V"c" (alpha), 2196 V"e" (T"MEXP" "IL" []), 2197 C"=" "min" 2198 ((T"prod" "pair" 2199 [T"EXP" "preARM" [], T"prod" "pair" [alpha, T"EXP" "preARM" []]] --> 2200 (T"prod" "pair" 2201 [T"EXP" "preARM" [], T"prod" "pair" [alpha, T"EXP" "preARM" []]] 2202 --> bool))), 2203 C"translate_condition" "IL" 2204 ((T"prod" "pair" 2205 [T"MREG" "IL" [], T"prod" "pair" [alpha, T"MEXP" "IL" []]] --> 2206 T"prod" "pair" 2207 [T"EXP" "preARM" [], T"prod" "pair" [alpha, T"EXP" "preARM" []]])), 2208 C"," "pair" 2209 ((T"MREG" "IL" [] --> 2210 (T"prod" "pair" [alpha, T"MEXP" "IL" []] --> 2211 T"prod" "pair" 2212 [T"MREG" "IL" [], T"prod" "pair" [alpha, T"MEXP" "IL" []]]))), 2213 C"," "pair" 2214 ((alpha --> 2215 (T"MEXP" "IL" [] --> T"prod" "pair" [alpha, T"MEXP" "IL" []]))), 2216 C"," "pair" 2217 ((T"EXP" "preARM" [] --> 2218 (T"prod" "pair" [alpha, T"EXP" "preARM" []] --> 2219 T"prod" "pair" 2220 [T"EXP" "preARM" [], 2221 T"prod" "pair" [alpha, T"EXP" "preARM" []]]))), 2222 C"," "pair" 2223 ((alpha --> 2224 (T"EXP" "preARM" [] --> 2225 T"prod" "pair" [alpha, T"EXP" "preARM" []]))), 2226 V"cond" 2227 (T"prod" "pair" 2228 [T"MREG" "IL" [], 2229 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]), 2230 C"=" "min" 2231 (((T"prod" "pair" 2232 [T"fmap" "finite_map" 2233 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2234 T"fmap" "finite_map" 2235 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 2236 bool) --> 2237 ((T"prod" "pair" 2238 [T"fmap" "finite_map" 2239 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2240 T"fmap" "finite_map" 2241 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 2242 bool) --> bool))), 2243 C"eval_il_cond" "IL" 2244 ((T"prod" "pair" 2245 [T"MREG" "IL" [], 2246 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 2247 (T"prod" "pair" 2248 [T"fmap" "finite_map" 2249 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2250 T"fmap" "finite_map" 2251 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 2252 bool))), 2253 C"eval_cond" "ARMComposition" 2254 ((T"prod" "pair" 2255 [T"EXP" "preARM" [], 2256 T"prod" "pair" [T"COND" "preARM" [], T"EXP" "preARM" []]] --> 2257 (T"prod" "pair" 2258 [T"fmap" "finite_map" 2259 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2260 T"fmap" "finite_map" 2261 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 2262 bool))), 2263 C"translate_condition" "IL" 2264 ((T"prod" "pair" 2265 [T"MREG" "IL" [], 2266 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 2267 T"prod" "pair" 2268 [T"EXP" "preARM" [], 2269 T"prod" "pair" [T"COND" "preARM" [], T"EXP" "preARM" []]])), 2270 C"=" "min" 2271 (((T"CTL_STRUCTURE" "IL" [] --> 2272 T"list" "list" 2273 [T"prod" "pair" 2274 [T"prod" "pair" 2275 [T"OPERATOR" "preARM" [], 2276 T"prod" "pair" 2277 [T"option" "option" [T"COND" "preARM" []], bool]], 2278 T"prod" "pair" 2279 [T"option" "option" [T"EXP" "preARM" []], 2280 T"prod" "pair" 2281 [T"list" "list" [T"EXP" "preARM" []], 2282 T"option" "option" [T"OFFSET" "preARM" []]]]]]) --> 2283 ((T"CTL_STRUCTURE" "IL" [] --> 2284 T"list" "list" 2285 [T"prod" "pair" 2286 [T"prod" "pair" 2287 [T"OPERATOR" "preARM" [], 2288 T"prod" "pair" 2289 [T"option" "option" [T"COND" "preARM" []], bool]], 2290 T"prod" "pair" 2291 [T"option" "option" [T"EXP" "preARM" []], 2292 T"prod" "pair" 2293 [T"list" "list" [T"EXP" "preARM" []], 2294 T"option" "option" [T"OFFSET" "preARM" []]]]]]) --> 2295 bool))), 2296 C"translate" "IL" 2297 ((T"CTL_STRUCTURE" "IL" [] --> 2298 T"list" "list" 2299 [T"prod" "pair" 2300 [T"prod" "pair" 2301 [T"OPERATOR" "preARM" [], 2302 T"prod" "pair" 2303 [T"option" "option" [T"COND" "preARM" []], bool]], 2304 T"prod" "pair" 2305 [T"option" "option" [T"EXP" "preARM" []], 2306 T"prod" "pair" 2307 [T"list" "list" [T"EXP" "preARM" []], 2308 T"option" "option" [T"OFFSET" "preARM" []]]]]])), 2309 C"WFREC" "relation" 2310 (((T"CTL_STRUCTURE" "IL" [] --> (T"CTL_STRUCTURE" "IL" [] --> bool)) 2311 --> 2312 (((T"CTL_STRUCTURE" "IL" [] --> 2313 T"list" "list" 2314 [T"prod" "pair" 2315 [T"prod" "pair" 2316 [T"OPERATOR" "preARM" [], 2317 T"prod" "pair" 2318 [T"option" "option" [T"COND" "preARM" []], bool]], 2319 T"prod" "pair" 2320 [T"option" "option" [T"EXP" "preARM" []], 2321 T"prod" "pair" 2322 [T"list" "list" [T"EXP" "preARM" []], 2323 T"option" "option" [T"OFFSET" "preARM" []]]]]]) --> 2324 (T"CTL_STRUCTURE" "IL" [] --> 2325 T"list" "list" 2326 [T"prod" "pair" 2327 [T"prod" "pair" 2328 [T"OPERATOR" "preARM" [], 2329 T"prod" "pair" 2330 [T"option" "option" [T"COND" "preARM" []], bool]], 2331 T"prod" "pair" 2332 [T"option" "option" [T"EXP" "preARM" []], 2333 T"prod" "pair" 2334 [T"list" "list" [T"EXP" "preARM" []], 2335 T"option" "option" [T"OFFSET" "preARM" []]]]]])) --> 2336 (T"CTL_STRUCTURE" "IL" [] --> 2337 T"list" "list" 2338 [T"prod" "pair" 2339 [T"prod" "pair" 2340 [T"OPERATOR" "preARM" [], 2341 T"prod" "pair" 2342 [T"option" "option" [T"COND" "preARM" []], bool]], 2343 T"prod" "pair" 2344 [T"option" "option" [T"EXP" "preARM" []], 2345 T"prod" "pair" 2346 [T"list" "list" [T"EXP" "preARM" []], 2347 T"option" "option" [T"OFFSET" "preARM" []]]]]])))), 2348 C"@" "min" 2349 ((((T"CTL_STRUCTURE" "IL" [] --> (T"CTL_STRUCTURE" "IL" [] --> bool)) 2350 --> bool) --> 2351 (T"CTL_STRUCTURE" "IL" [] --> (T"CTL_STRUCTURE" "IL" [] --> bool)))), 2352 V"R" 2353 ((T"CTL_STRUCTURE" "IL" [] --> (T"CTL_STRUCTURE" "IL" [] --> bool))), 2354 C"WF" "relation" 2355 (((T"CTL_STRUCTURE" "IL" [] --> (T"CTL_STRUCTURE" "IL" [] --> bool)) 2356 --> bool)), V"stm" (T"DOPER" "IL" []), 2357 V"stmL" (T"list" "list" [T"DOPER" "IL" []]), 2358 C"CONS" "list" 2359 ((T"DOPER" "IL" [] --> 2360 (T"list" "list" [T"DOPER" "IL" []] --> 2361 T"list" "list" [T"DOPER" "IL" []]))), 2362 V"S1" (T"CTL_STRUCTURE" "IL" []), V"S2" (T"CTL_STRUCTURE" "IL" []), 2363 V"Sfalse" (T"CTL_STRUCTURE" "IL" []), 2364 V"Strue" (T"CTL_STRUCTURE" "IL" []), 2365 V"Sbody" (T"CTL_STRUCTURE" "IL" []), 2366 V"translate" 2367 ((T"CTL_STRUCTURE" "IL" [] --> 2368 T"list" "list" 2369 [T"prod" "pair" 2370 [T"prod" "pair" 2371 [T"OPERATOR" "preARM" [], 2372 T"prod" "pair" 2373 [T"option" "option" [T"COND" "preARM" []], bool]], 2374 T"prod" "pair" 2375 [T"option" "option" [T"EXP" "preARM" []], 2376 T"prod" "pair" 2377 [T"list" "list" [T"EXP" "preARM" []], 2378 T"option" "option" [T"OFFSET" "preARM" []]]]]])), 2379 C"CTL_STRUCTURE_case" "IL" 2380 (((T"list" "list" [T"DOPER" "IL" []] --> 2381 T"list" "list" 2382 [T"prod" "pair" 2383 [T"prod" "pair" 2384 [T"OPERATOR" "preARM" [], 2385 T"prod" "pair" 2386 [T"option" "option" [T"COND" "preARM" []], bool]], 2387 T"prod" "pair" 2388 [T"option" "option" [T"EXP" "preARM" []], 2389 T"prod" "pair" 2390 [T"list" "list" [T"EXP" "preARM" []], 2391 T"option" "option" [T"OFFSET" "preARM" []]]]]]) --> 2392 ((T"CTL_STRUCTURE" "IL" [] --> 2393 (T"CTL_STRUCTURE" "IL" [] --> 2394 T"list" "list" 2395 [T"prod" "pair" 2396 [T"prod" "pair" 2397 [T"OPERATOR" "preARM" [], 2398 T"prod" "pair" 2399 [T"option" "option" [T"COND" "preARM" []], bool]], 2400 T"prod" "pair" 2401 [T"option" "option" [T"EXP" "preARM" []], 2402 T"prod" "pair" 2403 [T"list" "list" [T"EXP" "preARM" []], 2404 T"option" "option" [T"OFFSET" "preARM" []]]]]])) --> 2405 ((T"prod" "pair" 2406 [T"MREG" "IL" [], 2407 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 2408 (T"CTL_STRUCTURE" "IL" [] --> 2409 (T"CTL_STRUCTURE" "IL" [] --> 2410 T"list" "list" 2411 [T"prod" "pair" 2412 [T"prod" "pair" 2413 [T"OPERATOR" "preARM" [], 2414 T"prod" "pair" 2415 [T"option" "option" [T"COND" "preARM" []], bool]], 2416 T"prod" "pair" 2417 [T"option" "option" [T"EXP" "preARM" []], 2418 T"prod" "pair" 2419 [T"list" "list" [T"EXP" "preARM" []], 2420 T"option" "option" [T"OFFSET" "preARM" []]]]]]))) --> 2421 ((T"prod" "pair" 2422 [T"MREG" "IL" [], 2423 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 2424 (T"CTL_STRUCTURE" "IL" [] --> 2425 T"list" "list" 2426 [T"prod" "pair" 2427 [T"prod" "pair" 2428 [T"OPERATOR" "preARM" [], 2429 T"prod" "pair" 2430 [T"option" "option" [T"COND" "preARM" []], bool]], 2431 T"prod" "pair" 2432 [T"option" "option" [T"EXP" "preARM" []], 2433 T"prod" "pair" 2434 [T"list" "list" [T"EXP" "preARM" []], 2435 T"option" "option" [T"OFFSET" "preARM" []]]]]])) --> 2436 (T"CTL_STRUCTURE" "IL" [] --> 2437 T"list" "list" 2438 [T"prod" "pair" 2439 [T"prod" "pair" 2440 [T"OPERATOR" "preARM" [], 2441 T"prod" "pair" 2442 [T"option" "option" [T"COND" "preARM" []], bool]], 2443 T"prod" "pair" 2444 [T"option" "option" [T"EXP" "preARM" []], 2445 T"prod" "pair" 2446 [T"list" "list" [T"EXP" "preARM" []], 2447 T"option" "option" [T"OFFSET" "preARM" []]]]]])))))), 2448 C"list_case" "list" 2449 ((T"list" "list" 2450 [T"prod" "pair" 2451 [T"prod" "pair" 2452 [T"OPERATOR" "preARM" [], 2453 T"prod" "pair" 2454 [T"option" "option" [T"COND" "preARM" []], bool]], 2455 T"prod" "pair" 2456 [T"option" "option" [T"EXP" "preARM" []], 2457 T"prod" "pair" 2458 [T"list" "list" [T"EXP" "preARM" []], 2459 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> 2460 ((T"DOPER" "IL" [] --> 2461 (T"list" "list" [T"DOPER" "IL" []] --> 2462 T"list" "list" 2463 [T"prod" "pair" 2464 [T"prod" "pair" 2465 [T"OPERATOR" "preARM" [], 2466 T"prod" "pair" 2467 [T"option" "option" [T"COND" "preARM" []], bool]], 2468 T"prod" "pair" 2469 [T"option" "option" [T"EXP" "preARM" []], 2470 T"prod" "pair" 2471 [T"list" "list" [T"EXP" "preARM" []], 2472 T"option" "option" [T"OFFSET" "preARM" []]]]]])) --> 2473 (T"list" "list" [T"DOPER" "IL" []] --> 2474 T"list" "list" 2475 [T"prod" "pair" 2476 [T"prod" "pair" 2477 [T"OPERATOR" "preARM" [], 2478 T"prod" "pair" 2479 [T"option" "option" [T"COND" "preARM" []], bool]], 2480 T"prod" "pair" 2481 [T"option" "option" [T"EXP" "preARM" []], 2482 T"prod" "pair" 2483 [T"list" "list" [T"EXP" "preARM" []], 2484 T"option" "option" [T"OFFSET" "preARM" []]]]]])))), 2485 C"I" "combin" 2486 ((T"list" "list" 2487 [T"prod" "pair" 2488 [T"prod" "pair" 2489 [T"OPERATOR" "preARM" [], 2490 T"prod" "pair" 2491 [T"option" "option" [T"COND" "preARM" []], bool]], 2492 T"prod" "pair" 2493 [T"option" "option" [T"EXP" "preARM" []], 2494 T"prod" "pair" 2495 [T"list" "list" [T"EXP" "preARM" []], 2496 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> 2497 T"list" "list" 2498 [T"prod" "pair" 2499 [T"prod" "pair" 2500 [T"OPERATOR" "preARM" [], 2501 T"prod" "pair" 2502 [T"option" "option" [T"COND" "preARM" []], bool]], 2503 T"prod" "pair" 2504 [T"option" "option" [T"EXP" "preARM" []], 2505 T"prod" "pair" 2506 [T"list" "list" [T"EXP" "preARM" []], 2507 T"option" "option" [T"OFFSET" "preARM" []]]]]])), 2508 C"NIL" "list" 2509 (T"list" "list" 2510 [T"prod" "pair" 2511 [T"prod" "pair" 2512 [T"OPERATOR" "preARM" [], 2513 T"prod" "pair" 2514 [T"option" "option" [T"COND" "preARM" []], bool]], 2515 T"prod" "pair" 2516 [T"option" "option" [T"EXP" "preARM" []], 2517 T"prod" "pair" 2518 [T"list" "list" [T"EXP" "preARM" []], 2519 T"option" "option" [T"OFFSET" "preARM" []]]]]]), 2520 C"CONS" "list" 2521 ((T"prod" "pair" 2522 [T"prod" "pair" 2523 [T"OPERATOR" "preARM" [], 2524 T"prod" "pair" [T"option" "option" [T"COND" "preARM" []], bool]], 2525 T"prod" "pair" 2526 [T"option" "option" [T"EXP" "preARM" []], 2527 T"prod" "pair" 2528 [T"list" "list" [T"EXP" "preARM" []], 2529 T"option" "option" [T"OFFSET" "preARM" []]]]] --> 2530 (T"list" "list" 2531 [T"prod" "pair" 2532 [T"prod" "pair" 2533 [T"OPERATOR" "preARM" [], 2534 T"prod" "pair" 2535 [T"option" "option" [T"COND" "preARM" []], bool]], 2536 T"prod" "pair" 2537 [T"option" "option" [T"EXP" "preARM" []], 2538 T"prod" "pair" 2539 [T"list" "list" [T"EXP" "preARM" []], 2540 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> 2541 T"list" "list" 2542 [T"prod" "pair" 2543 [T"prod" "pair" 2544 [T"OPERATOR" "preARM" [], 2545 T"prod" "pair" 2546 [T"option" "option" [T"COND" "preARM" []], bool]], 2547 T"prod" "pair" 2548 [T"option" "option" [T"EXP" "preARM" []], 2549 T"prod" "pair" 2550 [T"list" "list" [T"EXP" "preARM" []], 2551 T"option" "option" [T"OFFSET" "preARM" []]]]]]))), 2552 C"mk_SC" "ARMComposition" 2553 ((T"list" "list" 2554 [T"prod" "pair" 2555 [T"prod" "pair" 2556 [T"OPERATOR" "preARM" [], 2557 T"prod" "pair" 2558 [T"option" "option" [T"COND" "preARM" []], bool]], 2559 T"prod" "pair" 2560 [T"option" "option" [T"EXP" "preARM" []], 2561 T"prod" "pair" 2562 [T"list" "list" [T"EXP" "preARM" []], 2563 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> 2564 (T"list" "list" 2565 [T"prod" "pair" 2566 [T"prod" "pair" 2567 [T"OPERATOR" "preARM" [], 2568 T"prod" "pair" 2569 [T"option" "option" [T"COND" "preARM" []], bool]], 2570 T"prod" "pair" 2571 [T"option" "option" [T"EXP" "preARM" []], 2572 T"prod" "pair" 2573 [T"list" "list" [T"EXP" "preARM" []], 2574 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> 2575 T"list" "list" 2576 [T"prod" "pair" 2577 [T"prod" "pair" 2578 [T"OPERATOR" "preARM" [], 2579 T"prod" "pair" 2580 [T"option" "option" [T"COND" "preARM" []], bool]], 2581 T"prod" "pair" 2582 [T"option" "option" [T"EXP" "preARM" []], 2583 T"prod" "pair" 2584 [T"list" "list" [T"EXP" "preARM" []], 2585 T"option" "option" [T"OFFSET" "preARM" []]]]]]))), 2586 C"mk_CJ" "ARMComposition" 2587 ((T"prod" "pair" 2588 [T"EXP" "preARM" [], 2589 T"prod" "pair" [T"COND" "preARM" [], T"EXP" "preARM" []]] --> 2590 (T"list" "list" 2591 [T"prod" "pair" 2592 [T"prod" "pair" 2593 [T"OPERATOR" "preARM" [], 2594 T"prod" "pair" 2595 [T"option" "option" [T"COND" "preARM" []], bool]], 2596 T"prod" "pair" 2597 [T"option" "option" [T"EXP" "preARM" []], 2598 T"prod" "pair" 2599 [T"list" "list" [T"EXP" "preARM" []], 2600 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> 2601 (T"list" "list" 2602 [T"prod" "pair" 2603 [T"prod" "pair" 2604 [T"OPERATOR" "preARM" [], 2605 T"prod" "pair" 2606 [T"option" "option" [T"COND" "preARM" []], bool]], 2607 T"prod" "pair" 2608 [T"option" "option" [T"EXP" "preARM" []], 2609 T"prod" "pair" 2610 [T"list" "list" [T"EXP" "preARM" []], 2611 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> 2612 T"list" "list" 2613 [T"prod" "pair" 2614 [T"prod" "pair" 2615 [T"OPERATOR" "preARM" [], 2616 T"prod" "pair" 2617 [T"option" "option" [T"COND" "preARM" []], bool]], 2618 T"prod" "pair" 2619 [T"option" "option" [T"EXP" "preARM" []], 2620 T"prod" "pair" 2621 [T"list" "list" [T"EXP" "preARM" []], 2622 T"option" "option" [T"OFFSET" "preARM" []]]]]])))), 2623 V"cond'" 2624 (T"prod" "pair" 2625 [T"MREG" "IL" [], 2626 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]), 2627 C"mk_TR" "ARMComposition" 2628 ((T"prod" "pair" 2629 [T"EXP" "preARM" [], 2630 T"prod" "pair" [T"COND" "preARM" [], T"EXP" "preARM" []]] --> 2631 (T"list" "list" 2632 [T"prod" "pair" 2633 [T"prod" "pair" 2634 [T"OPERATOR" "preARM" [], 2635 T"prod" "pair" 2636 [T"option" "option" [T"COND" "preARM" []], bool]], 2637 T"prod" "pair" 2638 [T"option" "option" [T"EXP" "preARM" []], 2639 T"prod" "pair" 2640 [T"list" "list" [T"EXP" "preARM" []], 2641 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> 2642 T"list" "list" 2643 [T"prod" "pair" 2644 [T"prod" "pair" 2645 [T"OPERATOR" "preARM" [], 2646 T"prod" "pair" 2647 [T"option" "option" [T"COND" "preARM" []], bool]], 2648 T"prod" "pair" 2649 [T"option" "option" [T"EXP" "preARM" []], 2650 T"prod" "pair" 2651 [T"list" "list" [T"EXP" "preARM" []], 2652 T"option" "option" [T"OFFSET" "preARM" []]]]]]))), 2653 C"!" "bool" 2654 (((T"list" "list" 2655 [T"prod" "pair" 2656 [T"prod" "pair" 2657 [T"OPERATOR" "preARM" [], 2658 T"prod" "pair" 2659 [T"option" "option" [T"COND" "preARM" []], bool]], 2660 T"prod" "pair" 2661 [T"option" "option" [T"EXP" "preARM" []], 2662 T"prod" "pair" 2663 [T"list" "list" [T"EXP" "preARM" []], 2664 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> bool) --> 2665 bool)), 2666 V"arm" 2667 (T"list" "list" 2668 [T"prod" "pair" 2669 [T"prod" "pair" 2670 [T"OPERATOR" "preARM" [], 2671 T"prod" "pair" 2672 [T"option" "option" [T"COND" "preARM" []], bool]], 2673 T"prod" "pair" 2674 [T"option" "option" [T"EXP" "preARM" []], 2675 T"prod" "pair" 2676 [T"list" "list" [T"EXP" "preARM" []], 2677 T"option" "option" [T"OFFSET" "preARM" []]]]]]), 2678 V"pc" (T"num" "num" []), 2679 C"!" "bool" 2680 (((T"cart" "fcp" [bool, T"i32" "words" []] --> bool) --> bool)), 2681 V"cpsr" (T"cart" "fcp" [bool, T"i32" "words" []]), 2682 C"!" "bool" ((((T"num" "num" [] --> bool) --> bool) --> bool)), 2683 V"pcS" ((T"num" "num" [] --> bool)), 2684 C"=" "min" 2685 ((T"prod" "pair" 2686 [T"prod" "pair" 2687 [T"num" "num" [], 2688 T"prod" "pair" 2689 [T"cart" "fcp" [bool, T"i32" "words" []], 2690 T"prod" "pair" 2691 [T"fmap" "finite_map" 2692 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2693 T"fmap" "finite_map" 2694 [T"num" "num" [], 2695 T"cart" "fcp" [bool, T"i32" "words" []]]]]], 2696 (T"num" "num" [] --> bool)] --> 2697 (T"prod" "pair" 2698 [T"prod" "pair" 2699 [T"num" "num" [], 2700 T"prod" "pair" 2701 [T"cart" "fcp" [bool, T"i32" "words" []], 2702 T"prod" "pair" 2703 [T"fmap" "finite_map" 2704 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2705 T"fmap" "finite_map" 2706 [T"num" "num" [], 2707 T"cart" "fcp" [bool, T"i32" "words" []]]]]], 2708 (T"num" "num" [] --> bool)] --> bool))), 2709 C"run_arm" "IL" 2710 ((T"list" "list" 2711 [T"prod" "pair" 2712 [T"prod" "pair" 2713 [T"OPERATOR" "preARM" [], 2714 T"prod" "pair" 2715 [T"option" "option" [T"COND" "preARM" []], bool]], 2716 T"prod" "pair" 2717 [T"option" "option" [T"EXP" "preARM" []], 2718 T"prod" "pair" 2719 [T"list" "list" [T"EXP" "preARM" []], 2720 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> 2721 (T"prod" "pair" 2722 [T"prod" "pair" 2723 [T"num" "num" [], 2724 T"prod" "pair" 2725 [T"cart" "fcp" [bool, T"i32" "words" []], 2726 T"prod" "pair" 2727 [T"fmap" "finite_map" 2728 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2729 T"fmap" "finite_map" 2730 [T"num" "num" [], 2731 T"cart" "fcp" [bool, T"i32" "words" []]]]]], 2732 (T"num" "num" [] --> bool)] --> 2733 T"prod" "pair" 2734 [T"prod" "pair" 2735 [T"num" "num" [], 2736 T"prod" "pair" 2737 [T"cart" "fcp" [bool, T"i32" "words" []], 2738 T"prod" "pair" 2739 [T"fmap" "finite_map" 2740 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2741 T"fmap" "finite_map" 2742 [T"num" "num" [], 2743 T"cart" "fcp" [bool, T"i32" "words" []]]]]], 2744 (T"num" "num" [] --> bool)]))), 2745 C"," "pair" 2746 ((T"prod" "pair" 2747 [T"num" "num" [], 2748 T"prod" "pair" 2749 [T"cart" "fcp" [bool, T"i32" "words" []], 2750 T"prod" "pair" 2751 [T"fmap" "finite_map" 2752 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2753 T"fmap" "finite_map" 2754 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]]] 2755 --> 2756 ((T"num" "num" [] --> bool) --> 2757 T"prod" "pair" 2758 [T"prod" "pair" 2759 [T"num" "num" [], 2760 T"prod" "pair" 2761 [T"cart" "fcp" [bool, T"i32" "words" []], 2762 T"prod" "pair" 2763 [T"fmap" "finite_map" 2764 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2765 T"fmap" "finite_map" 2766 [T"num" "num" [], 2767 T"cart" "fcp" [bool, T"i32" "words" []]]]]], 2768 (T"num" "num" [] --> bool)]))), 2769 C"," "pair" 2770 ((T"num" "num" [] --> 2771 (T"prod" "pair" 2772 [T"cart" "fcp" [bool, T"i32" "words" []], 2773 T"prod" "pair" 2774 [T"fmap" "finite_map" 2775 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2776 T"fmap" "finite_map" 2777 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]] 2778 --> 2779 T"prod" "pair" 2780 [T"num" "num" [], 2781 T"prod" "pair" 2782 [T"cart" "fcp" [bool, T"i32" "words" []], 2783 T"prod" "pair" 2784 [T"fmap" "finite_map" 2785 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2786 T"fmap" "finite_map" 2787 [T"num" "num" [], 2788 T"cart" "fcp" [bool, T"i32" "words" []]]]]]))), 2789 C"," "pair" 2790 ((T"cart" "fcp" [bool, T"i32" "words" []] --> 2791 (T"prod" "pair" 2792 [T"fmap" "finite_map" 2793 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2794 T"fmap" "finite_map" 2795 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 2796 T"prod" "pair" 2797 [T"cart" "fcp" [bool, T"i32" "words" []], 2798 T"prod" "pair" 2799 [T"fmap" "finite_map" 2800 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2801 T"fmap" "finite_map" 2802 [T"num" "num" [], 2803 T"cart" "fcp" [bool, T"i32" "words" []]]]]))), 2804 C"runTo" "preARM" 2805 (((T"num" "num" [] --> 2806 T"prod" "pair" 2807 [T"prod" "pair" 2808 [T"OPERATOR" "preARM" [], 2809 T"prod" "pair" 2810 [T"option" "option" [T"COND" "preARM" []], bool]], 2811 T"prod" "pair" 2812 [T"option" "option" [T"EXP" "preARM" []], 2813 T"prod" "pair" 2814 [T"list" "list" [T"EXP" "preARM" []], 2815 T"option" "option" [T"OFFSET" "preARM" []]]]]) --> 2816 (T"num" "num" [] --> 2817 (T"prod" "pair" 2818 [T"prod" "pair" 2819 [T"num" "num" [], 2820 T"prod" "pair" 2821 [T"cart" "fcp" [bool, T"i32" "words" []], 2822 T"prod" "pair" 2823 [T"fmap" "finite_map" 2824 [T"num" "num" [], 2825 T"cart" "fcp" [bool, T"i32" "words" []]], 2826 T"fmap" "finite_map" 2827 [T"num" "num" [], 2828 T"cart" "fcp" [bool, T"i32" "words" []]]]]], 2829 (T"num" "num" [] --> bool)] --> 2830 T"prod" "pair" 2831 [T"prod" "pair" 2832 [T"num" "num" [], 2833 T"prod" "pair" 2834 [T"cart" "fcp" [bool, T"i32" "words" []], 2835 T"prod" "pair" 2836 [T"fmap" "finite_map" 2837 [T"num" "num" [], 2838 T"cart" "fcp" [bool, T"i32" "words" []]], 2839 T"fmap" "finite_map" 2840 [T"num" "num" [], 2841 T"cart" "fcp" [bool, T"i32" "words" []]]]]], 2842 (T"num" "num" [] --> bool)])))), 2843 C"upload" "preARM" 2844 ((T"list" "list" 2845 [T"prod" "pair" 2846 [T"prod" "pair" 2847 [T"OPERATOR" "preARM" [], 2848 T"prod" "pair" 2849 [T"option" "option" [T"COND" "preARM" []], bool]], 2850 T"prod" "pair" 2851 [T"option" "option" [T"EXP" "preARM" []], 2852 T"prod" "pair" 2853 [T"list" "list" [T"EXP" "preARM" []], 2854 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> 2855 ((T"num" "num" [] --> 2856 T"prod" "pair" 2857 [T"prod" "pair" 2858 [T"OPERATOR" "preARM" [], 2859 T"prod" "pair" 2860 [T"option" "option" [T"COND" "preARM" []], bool]], 2861 T"prod" "pair" 2862 [T"option" "option" [T"EXP" "preARM" []], 2863 T"prod" "pair" 2864 [T"list" "list" [T"EXP" "preARM" []], 2865 T"option" "option" [T"OFFSET" "preARM" []]]]]) --> 2866 (T"num" "num" [] --> 2867 (T"num" "num" [] --> 2868 T"prod" "pair" 2869 [T"prod" "pair" 2870 [T"OPERATOR" "preARM" [], 2871 T"prod" "pair" 2872 [T"option" "option" [T"COND" "preARM" []], bool]], 2873 T"prod" "pair" 2874 [T"option" "option" [T"EXP" "preARM" []], 2875 T"prod" "pair" 2876 [T"list" "list" [T"EXP" "preARM" []], 2877 T"option" "option" [T"OFFSET" "preARM" []]]]]))))), 2878 C"ARB" "bool" 2879 (T"prod" "pair" 2880 [T"prod" "pair" 2881 [T"OPERATOR" "preARM" [], 2882 T"prod" "pair" [T"option" "option" [T"COND" "preARM" []], bool]], 2883 T"prod" "pair" 2884 [T"option" "option" [T"EXP" "preARM" []], 2885 T"prod" "pair" 2886 [T"list" "list" [T"EXP" "preARM" []], 2887 T"option" "option" [T"OFFSET" "preARM" []]]]]), 2888 C"LENGTH" "list" 2889 ((T"list" "list" 2890 [T"prod" "pair" 2891 [T"prod" "pair" 2892 [T"OPERATOR" "preARM" [], 2893 T"prod" "pair" 2894 [T"option" "option" [T"COND" "preARM" []], bool]], 2895 T"prod" "pair" 2896 [T"option" "option" [T"EXP" "preARM" []], 2897 T"prod" "pair" 2898 [T"list" "list" [T"EXP" "preARM" []], 2899 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> 2900 T"num" "num" [])), V"ir" (T"CTL_STRUCTURE" "IL" []), 2901 C"run_ir" "IL" 2902 ((T"CTL_STRUCTURE" "IL" [] --> 2903 (T"prod" "pair" 2904 [T"fmap" "finite_map" 2905 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2906 T"fmap" "finite_map" 2907 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 2908 T"prod" "pair" 2909 [T"fmap" "finite_map" 2910 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2911 T"fmap" "finite_map" 2912 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]))), 2913 C"get_st" "ARMComposition" 2914 ((T"prod" "pair" 2915 [T"prod" "pair" 2916 [T"num" "num" [], 2917 T"prod" "pair" 2918 [T"cart" "fcp" [bool, T"i32" "words" []], 2919 T"prod" "pair" 2920 [T"fmap" "finite_map" 2921 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2922 T"fmap" "finite_map" 2923 [T"num" "num" [], 2924 T"cart" "fcp" [bool, T"i32" "words" []]]]]], 2925 (T"num" "num" [] --> bool)] --> 2926 T"prod" "pair" 2927 [T"fmap" "finite_map" 2928 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 2929 T"fmap" "finite_map" 2930 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]])), 2931 C"EMPTY" "pred_set" ((T"num" "num" [] --> bool)), 2932 C"WELL_FORMED" "IL" ((T"CTL_STRUCTURE" "IL" [] --> bool)), 2933 C"well_formed" "ARMComposition" 2934 ((T"list" "list" 2935 [T"prod" "pair" 2936 [T"prod" "pair" 2937 [T"OPERATOR" "preARM" [], 2938 T"prod" "pair" 2939 [T"option" "option" [T"COND" "preARM" []], bool]], 2940 T"prod" "pair" 2941 [T"option" "option" [T"EXP" "preARM" []], 2942 T"prod" "pair" 2943 [T"list" "list" [T"EXP" "preARM" []], 2944 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> bool)), 2945 C"WF_TR" "ARMComposition" 2946 ((T"prod" "pair" 2947 [T"prod" "pair" 2948 [T"EXP" "preARM" [], 2949 T"prod" "pair" [T"COND" "preARM" [], T"EXP" "preARM" []]], 2950 T"list" "list" 2951 [T"prod" "pair" 2952 [T"prod" "pair" 2953 [T"OPERATOR" "preARM" [], 2954 T"prod" "pair" 2955 [T"option" "option" [T"COND" "preARM" []], bool]], 2956 T"prod" "pair" 2957 [T"option" "option" [T"EXP" "preARM" []], 2958 T"prod" "pair" 2959 [T"list" "list" [T"EXP" "preARM" []], 2960 T"option" "option" [T"OFFSET" "preARM" []]]]]]] --> bool)), 2961 C"," "pair" 2962 ((T"prod" "pair" 2963 [T"EXP" "preARM" [], 2964 T"prod" "pair" [T"COND" "preARM" [], T"EXP" "preARM" []]] --> 2965 (T"list" "list" 2966 [T"prod" "pair" 2967 [T"prod" "pair" 2968 [T"OPERATOR" "preARM" [], 2969 T"prod" "pair" 2970 [T"option" "option" [T"COND" "preARM" []], bool]], 2971 T"prod" "pair" 2972 [T"option" "option" [T"EXP" "preARM" []], 2973 T"prod" "pair" 2974 [T"list" "list" [T"EXP" "preARM" []], 2975 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> 2976 T"prod" "pair" 2977 [T"prod" "pair" 2978 [T"EXP" "preARM" [], 2979 T"prod" "pair" [T"COND" "preARM" [], T"EXP" "preARM" []]], 2980 T"list" "list" 2981 [T"prod" "pair" 2982 [T"prod" "pair" 2983 [T"OPERATOR" "preARM" [], 2984 T"prod" "pair" 2985 [T"option" "option" [T"COND" "preARM" []], bool]], 2986 T"prod" "pair" 2987 [T"option" "option" [T"EXP" "preARM" []], 2988 T"prod" "pair" 2989 [T"list" "list" [T"EXP" "preARM" []], 2990 T"option" "option" [T"OFFSET" "preARM" []]]]]]]))), 2991 C"WELL_FORMED_SUB" "IL" ((T"CTL_STRUCTURE" "IL" [] --> bool)), 2992 V"r'" (T"num" "num" []), V"a'" (T"MREG" "IL" []), 2993 C"DATATYPE" "bool" ((bool --> bool)), 2994 V"MREG" 2995 ((T"MREG" "IL" [] --> 2996 (T"MREG" "IL" [] --> 2997 (T"MREG" "IL" [] --> 2998 (T"MREG" "IL" [] --> 2999 (T"MREG" "IL" [] --> 3000 (T"MREG" "IL" [] --> 3001 (T"MREG" "IL" [] --> 3002 (T"MREG" "IL" [] --> 3003 (T"MREG" "IL" [] --> 3004 (T"MREG" "IL" [] --> 3005 (T"MREG" "IL" [] --> 3006 (T"MREG" "IL" [] --> 3007 (T"MREG" "IL" [] --> 3008 (T"MREG" "IL" [] --> 3009 (T"MREG" "IL" [] --> bool)))))))))))))))), 3010 C"~" "bool" ((bool --> bool)), V"M" (T"MREG" "IL" []), 3011 V"M'" (T"MREG" "IL" []), V"v0'" (alpha), V"v1'" (alpha), V"v2'" (alpha), 3012 V"v3'" (alpha), V"v4'" (alpha), V"v5'" (alpha), V"v6'" (alpha), 3013 V"v7'" (alpha), V"v8'" (alpha), V"v9'" (alpha), V"v10'" (alpha), 3014 V"v11'" (alpha), V"v12'" (alpha), V"v13'" (alpha), V"v14'" (alpha), 3015 V"x0" (alpha), V"x1" (alpha), V"x2" (alpha), V"x3" (alpha), 3016 V"x4" (alpha), V"x5" (alpha), V"x6" (alpha), V"x7" (alpha), 3017 V"x8" (alpha), V"x9" (alpha), V"x10" (alpha), V"x11" (alpha), 3018 V"x12" (alpha), V"x13" (alpha), V"x14" (alpha), 3019 C"?" "bool" ((((T"MREG" "IL" [] --> alpha) --> bool) --> bool)), 3020 C"!" "bool" ((((T"MREG" "IL" [] --> bool) --> bool) --> bool)), 3021 V"P" ((T"MREG" "IL" [] --> bool)), 3022 V"MEXP" 3023 (((T"MREG" "IL" [] --> T"MEXP" "IL" []) --> 3024 ((T"cart" "fcp" [bool, T"i4" "words" []] --> 3025 (T"cart" "fcp" [bool, T"i8" "words" []] --> T"MEXP" "IL" [])) --> 3026 bool))), V"a0'" (T"cart" "fcp" [bool, T"i4" "words" []]), 3027 V"a1'" (T"cart" "fcp" [bool, T"i8" "words" []]), 3028 C"=" "min" 3029 ((T"cart" "fcp" [bool, T"i4" "words" []] --> 3030 (T"cart" "fcp" [bool, T"i4" "words" []] --> bool))), 3031 C"=" "min" 3032 ((T"cart" "fcp" [bool, T"i8" "words" []] --> 3033 (T"cart" "fcp" [bool, T"i8" "words" []] --> bool))), 3034 V"M" (T"MEXP" "IL" []), V"M'" (T"MEXP" "IL" []), 3035 V"f'" ((T"MREG" "IL" [] --> alpha)), 3036 V"f1'" 3037 ((T"cart" "fcp" [bool, T"i4" "words" []] --> 3038 (T"cart" "fcp" [bool, T"i8" "words" []] --> alpha))), 3039 V"c" (T"cart" "fcp" [bool, T"i4" "words" []]), 3040 V"c0" (T"cart" "fcp" [bool, T"i8" "words" []]), 3041 V"f0" ((T"MREG" "IL" [] --> alpha)), 3042 C"?" "bool" ((((T"MEXP" "IL" [] --> alpha) --> bool) --> bool)), 3043 V"fn" ((T"MEXP" "IL" [] --> alpha)), 3044 C"!" "bool" ((((T"MEXP" "IL" [] --> bool) --> bool) --> bool)), 3045 V"P" ((T"MEXP" "IL" [] --> bool)), 3046 V"DOPER" 3047 (((T"MREG" "IL" [] --> 3048 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 3049 T"DOPER" "IL" [])) --> 3050 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 3051 (T"MREG" "IL" [] --> T"DOPER" "IL" [])) --> 3052 ((T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" [])) --> 3053 ((T"MREG" "IL" [] --> 3054 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))) --> 3055 ((T"MREG" "IL" [] --> 3056 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))) 3057 --> 3058 ((T"MREG" "IL" [] --> 3059 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))) 3060 --> 3061 ((T"MREG" "IL" [] --> 3062 (T"MREG" "IL" [] --> (T"MREG" "IL" [] --> T"DOPER" "IL" []))) 3063 --> 3064 ((T"MREG" "IL" [] --> 3065 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> T"DOPER" "IL" []))) 3066 --> 3067 ((T"MREG" "IL" [] --> 3068 (T"MREG" "IL" [] --> 3069 (T"MEXP" "IL" [] --> T"DOPER" "IL" []))) --> 3070 ((T"MREG" "IL" [] --> 3071 (T"MREG" "IL" [] --> 3072 (T"MEXP" "IL" [] --> T"DOPER" "IL" []))) --> 3073 ((T"MREG" "IL" [] --> 3074 (T"MREG" "IL" [] --> 3075 (T"cart" "fcp" [bool, T"i5" "words" []] --> 3076 T"DOPER" "IL" []))) --> 3077 ((T"MREG" "IL" [] --> 3078 (T"MREG" "IL" [] --> 3079 (T"cart" "fcp" [bool, T"i5" "words" []] --> 3080 T"DOPER" "IL" []))) --> 3081 ((T"MREG" "IL" [] --> 3082 (T"MREG" "IL" [] --> 3083 (T"cart" "fcp" [bool, T"i5" "words" []] --> 3084 T"DOPER" "IL" []))) --> 3085 ((T"MREG" "IL" [] --> 3086 (T"MREG" "IL" [] --> 3087 (T"cart" "fcp" [bool, T"i5" "words" []] --> 3088 T"DOPER" "IL" []))) --> 3089 ((T"num" "num" [] --> 3090 (T"list" "list" [T"num" "num" []] --> 3091 T"DOPER" "IL" [])) --> 3092 ((T"num" "num" [] --> 3093 (T"list" "list" [T"num" "num" []] --> 3094 T"DOPER" "IL" [])) --> bool))))))))))))))))), 3095 V"a0'" (T"MREG" "IL" []), 3096 V"a1'" (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []]), 3097 C"=" "min" 3098 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 3099 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> bool))), 3100 V"a0'" (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []]), 3101 V"a1'" (T"MREG" "IL" []), V"a1'" (T"MEXP" "IL" []), 3102 V"a2'" (T"MEXP" "IL" []), V"a2'" (T"MREG" "IL" []), 3103 V"a2'" (T"cart" "fcp" [bool, T"i5" "words" []]), 3104 C"=" "min" 3105 ((T"cart" "fcp" [bool, T"i5" "words" []] --> 3106 (T"cart" "fcp" [bool, T"i5" "words" []] --> bool))), 3107 V"a0'" (T"num" "num" []), V"a1'" (T"list" "list" [T"num" "num" []]), 3108 C"=" "min" 3109 ((T"list" "list" [T"num" "num" []] --> 3110 (T"list" "list" [T"num" "num" []] --> bool))), 3111 V"M" (T"DOPER" "IL" []), V"M'" (T"DOPER" "IL" []), 3112 V"f'" 3113 ((T"MREG" "IL" [] --> 3114 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 3115 alpha))), 3116 V"f1'" 3117 ((T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 3118 (T"MREG" "IL" [] --> alpha))), 3119 V"f2'" ((T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha))), 3120 V"f3'" 3121 ((T"MREG" "IL" [] --> 3122 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)))), 3123 V"f4'" 3124 ((T"MREG" "IL" [] --> 3125 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)))), 3126 V"f5'" 3127 ((T"MREG" "IL" [] --> 3128 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)))), 3129 V"f6'" 3130 ((T"MREG" "IL" [] --> 3131 (T"MREG" "IL" [] --> (T"MREG" "IL" [] --> alpha)))), 3132 V"f7'" 3133 ((T"MREG" "IL" [] --> 3134 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)))), 3135 V"f8'" 3136 ((T"MREG" "IL" [] --> 3137 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)))), 3138 V"f9'" 3139 ((T"MREG" "IL" [] --> 3140 (T"MREG" "IL" [] --> (T"MEXP" "IL" [] --> alpha)))), 3141 V"f10'" 3142 ((T"MREG" "IL" [] --> 3143 (T"MREG" "IL" [] --> 3144 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha)))), 3145 V"f11'" 3146 ((T"MREG" "IL" [] --> 3147 (T"MREG" "IL" [] --> 3148 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha)))), 3149 V"f12'" 3150 ((T"MREG" "IL" [] --> 3151 (T"MREG" "IL" [] --> 3152 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha)))), 3153 V"f13'" 3154 ((T"MREG" "IL" [] --> 3155 (T"MREG" "IL" [] --> 3156 (T"cart" "fcp" [bool, T"i5" "words" []] --> alpha)))), 3157 V"f14'" 3158 ((T"num" "num" [] --> (T"list" "list" [T"num" "num" []] --> alpha))), 3159 V"f15'" 3160 ((T"num" "num" [] --> (T"list" "list" [T"num" "num" []] --> alpha))), 3161 V"D" (T"DOPER" "IL" []), 3162 V"p" (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []]), 3163 V"M0" (T"MEXP" "IL" []), V"M0" (T"MREG" "IL" []), 3164 V"M1" (T"MEXP" "IL" []), V"M1" (T"MREG" "IL" []), 3165 V"c" (T"cart" "fcp" [bool, T"i5" "words" []]), 3166 V"l" (T"list" "list" [T"num" "num" []]), 3167 V"f0" 3168 ((T"MREG" "IL" [] --> 3169 (T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []] --> 3170 alpha))), 3171 C"?" "bool" ((((T"DOPER" "IL" [] --> alpha) --> bool) --> bool)), 3172 V"fn" ((T"DOPER" "IL" [] --> alpha)), 3173 C"!" "bool" ((((T"DOPER" "IL" [] --> bool) --> bool) --> bool)), 3174 V"P" ((T"DOPER" "IL" [] --> bool)), 3175 V"CTL_STRUCTURE" 3176 (((T"list" "list" [T"DOPER" "IL" []] --> T"CTL_STRUCTURE" "IL" []) --> 3177 ((T"CTL_STRUCTURE" "IL" [] --> 3178 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" [])) --> 3179 ((T"prod" "pair" 3180 [T"MREG" "IL" [], 3181 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 3182 (T"CTL_STRUCTURE" "IL" [] --> 3183 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" []))) --> 3184 ((T"prod" "pair" 3185 [T"MREG" "IL" [], 3186 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 3187 (T"CTL_STRUCTURE" "IL" [] --> T"CTL_STRUCTURE" "IL" [])) --> 3188 bool))))), V"a'" (T"list" "list" [T"DOPER" "IL" []]), 3189 C"=" "min" 3190 ((T"list" "list" [T"DOPER" "IL" []] --> 3191 (T"list" "list" [T"DOPER" "IL" []] --> bool))), 3192 V"a0'" (T"CTL_STRUCTURE" "IL" []), V"a1'" (T"CTL_STRUCTURE" "IL" []), 3193 V"a0'" 3194 (T"prod" "pair" 3195 [T"MREG" "IL" [], 3196 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]), 3197 V"a2'" (T"CTL_STRUCTURE" "IL" []), 3198 C"=" "min" 3199 ((T"prod" "pair" 3200 [T"MREG" "IL" [], 3201 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 3202 (T"prod" "pair" 3203 [T"MREG" "IL" [], 3204 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 3205 bool))), V"M" (T"CTL_STRUCTURE" "IL" []), 3206 V"M'" (T"CTL_STRUCTURE" "IL" []), 3207 V"f'" ((T"list" "list" [T"DOPER" "IL" []] --> alpha)), 3208 V"f1'" 3209 ((T"CTL_STRUCTURE" "IL" [] --> (T"CTL_STRUCTURE" "IL" [] --> alpha))), 3210 V"f2'" 3211 ((T"prod" "pair" 3212 [T"MREG" "IL" [], 3213 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 3214 (T"CTL_STRUCTURE" "IL" [] --> 3215 (T"CTL_STRUCTURE" "IL" [] --> alpha)))), 3216 V"f3'" 3217 ((T"prod" "pair" 3218 [T"MREG" "IL" [], 3219 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 3220 (T"CTL_STRUCTURE" "IL" [] --> alpha))), 3221 V"C" (T"CTL_STRUCTURE" "IL" []), 3222 V"l" (T"list" "list" [T"DOPER" "IL" []]), 3223 C"?" "bool" (((T"CTL_STRUCTURE" "IL" [] --> bool) --> bool)), 3224 V"C0" (T"CTL_STRUCTURE" "IL" []), 3225 V"p" 3226 (T"prod" "pair" 3227 [T"MREG" "IL" [], 3228 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]), 3229 V"f0" ((T"list" "list" [T"DOPER" "IL" []] --> alpha)), 3230 C"!" "bool" 3231 ((((T"CTL_STRUCTURE" "IL" [] --> 3232 (T"CTL_STRUCTURE" "IL" [] --> (alpha --> (alpha --> alpha)))) --> 3233 bool) --> bool)), 3234 V"f1" 3235 ((T"CTL_STRUCTURE" "IL" [] --> 3236 (T"CTL_STRUCTURE" "IL" [] --> (alpha --> (alpha --> alpha))))), 3237 C"!" "bool" 3238 ((((T"prod" "pair" 3239 [T"MREG" "IL" [], 3240 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 3241 (T"CTL_STRUCTURE" "IL" [] --> 3242 (T"CTL_STRUCTURE" "IL" [] --> (alpha --> (alpha --> alpha))))) --> 3243 bool) --> bool)), 3244 V"f2" 3245 ((T"prod" "pair" 3246 [T"MREG" "IL" [], 3247 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 3248 (T"CTL_STRUCTURE" "IL" [] --> 3249 (T"CTL_STRUCTURE" "IL" [] --> (alpha --> (alpha --> alpha)))))), 3250 C"!" "bool" 3251 ((((T"prod" "pair" 3252 [T"MREG" "IL" [], 3253 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 3254 (T"CTL_STRUCTURE" "IL" [] --> (alpha --> alpha))) --> bool) --> 3255 bool)), 3256 V"f3" 3257 ((T"prod" "pair" 3258 [T"MREG" "IL" [], 3259 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]] --> 3260 (T"CTL_STRUCTURE" "IL" [] --> (alpha --> alpha)))), 3261 C"?" "bool" 3262 ((((T"CTL_STRUCTURE" "IL" [] --> alpha) --> bool) --> bool)), 3263 V"fn" ((T"CTL_STRUCTURE" "IL" [] --> alpha)), 3264 C"!" "bool" ((((T"CTL_STRUCTURE" "IL" [] --> bool) --> bool) --> bool)), 3265 V"P" ((T"CTL_STRUCTURE" "IL" [] --> bool)), 3266 C"=" "min" 3267 ((T"prod" "pair" 3268 [T"num" "num" [], 3269 T"prod" "pair" 3270 [T"cart" "fcp" [bool, T"i32" "words" []], 3271 T"prod" "pair" 3272 [T"fmap" "finite_map" 3273 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3274 T"fmap" "finite_map" 3275 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]]] 3276 --> 3277 (T"prod" "pair" 3278 [T"num" "num" [], 3279 T"prod" "pair" 3280 [T"cart" "fcp" [bool, T"i32" "words" []], 3281 T"prod" "pair" 3282 [T"fmap" "finite_map" 3283 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3284 T"fmap" "finite_map" 3285 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]]] 3286 --> bool))), 3287 C"decode_cond" "preARM" 3288 ((T"prod" "pair" 3289 [T"num" "num" [], 3290 T"prod" "pair" 3291 [T"cart" "fcp" [bool, T"i32" "words" []], 3292 T"prod" "pair" 3293 [T"fmap" "finite_map" 3294 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3295 T"fmap" "finite_map" 3296 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]]] 3297 --> 3298 (T"prod" "pair" 3299 [T"prod" "pair" 3300 [T"OPERATOR" "preARM" [], 3301 T"prod" "pair" 3302 [T"option" "option" [T"COND" "preARM" []], bool]], 3303 T"prod" "pair" 3304 [T"option" "option" [T"EXP" "preARM" []], 3305 T"prod" "pair" 3306 [T"list" "list" [T"EXP" "preARM" []], 3307 T"option" "option" [T"OFFSET" "preARM" []]]]] --> 3308 T"prod" "pair" 3309 [T"num" "num" [], 3310 T"prod" "pair" 3311 [T"cart" "fcp" [bool, T"i32" "words" []], 3312 T"prod" "pair" 3313 [T"fmap" "finite_map" 3314 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3315 T"fmap" "finite_map" 3316 [T"num" "num" [], 3317 T"cart" "fcp" [bool, T"i32" "words" []]]]]]))), 3318 C"!" "bool" 3319 (((T"prod" "pair" 3320 [T"num" "num" [], 3321 T"prod" "pair" 3322 [T"cart" "fcp" [bool, T"i32" "words" []], 3323 T"prod" "pair" 3324 [T"fmap" "finite_map" 3325 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3326 T"fmap" "finite_map" 3327 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]]] 3328 --> bool) --> bool)), 3329 V"s" 3330 (T"prod" "pair" 3331 [T"num" "num" [], 3332 T"prod" "pair" 3333 [T"cart" "fcp" [bool, T"i32" "words" []], 3334 T"prod" "pair" 3335 [T"fmap" "finite_map" 3336 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3337 T"fmap" "finite_map" 3338 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]]]), 3339 C"FST" "pair" 3340 ((T"prod" "pair" 3341 [T"num" "num" [], 3342 T"prod" "pair" 3343 [T"cart" "fcp" [bool, T"i32" "words" []], 3344 T"prod" "pair" 3345 [T"fmap" "finite_map" 3346 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3347 T"fmap" "finite_map" 3348 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]]] 3349 --> T"num" "num" [])), 3350 C"FST" "pair" 3351 ((T"prod" "pair" 3352 [T"cart" "fcp" [bool, T"i32" "words" []], 3353 T"prod" "pair" 3354 [T"fmap" "finite_map" 3355 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3356 T"fmap" "finite_map" 3357 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]] --> 3358 T"cart" "fcp" [bool, T"i32" "words" []])), 3359 C"SND" "pair" 3360 ((T"prod" "pair" 3361 [T"num" "num" [], 3362 T"prod" "pair" 3363 [T"cart" "fcp" [bool, T"i32" "words" []], 3364 T"prod" "pair" 3365 [T"fmap" "finite_map" 3366 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3367 T"fmap" "finite_map" 3368 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]]] 3369 --> 3370 T"prod" "pair" 3371 [T"cart" "fcp" [bool, T"i32" "words" []], 3372 T"prod" "pair" 3373 [T"fmap" "finite_map" 3374 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3375 T"fmap" "finite_map" 3376 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]])), 3377 C"SND" "pair" 3378 ((T"prod" "pair" 3379 [T"cart" "fcp" [bool, T"i32" "words" []], 3380 T"prod" "pair" 3381 [T"fmap" "finite_map" 3382 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3383 T"fmap" "finite_map" 3384 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]] --> 3385 T"prod" "pair" 3386 [T"fmap" "finite_map" 3387 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3388 T"fmap" "finite_map" 3389 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]])), 3390 C"NIL" "list" (T"list" "list" [T"DOPER" "IL" []]), 3391 V"v" (T"CTL_STRUCTURE" "IL" []), 3392 C"=" "min" 3393 ((T"list" "list" 3394 [T"prod" "pair" 3395 [T"prod" "pair" 3396 [T"OPERATOR" "preARM" [], 3397 T"prod" "pair" 3398 [T"option" "option" [T"COND" "preARM" []], bool]], 3399 T"prod" "pair" 3400 [T"option" "option" [T"EXP" "preARM" []], 3401 T"prod" "pair" 3402 [T"list" "list" [T"EXP" "preARM" []], 3403 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> 3404 (T"list" "list" 3405 [T"prod" "pair" 3406 [T"prod" "pair" 3407 [T"OPERATOR" "preARM" [], 3408 T"prod" "pair" 3409 [T"option" "option" [T"COND" "preARM" []], bool]], 3410 T"prod" "pair" 3411 [T"option" "option" [T"EXP" "preARM" []], 3412 T"prod" "pair" 3413 [T"list" "list" [T"EXP" "preARM" []], 3414 T"option" "option" [T"OFFSET" "preARM" []]]]]] --> bool))), 3415 V"ir1" (T"CTL_STRUCTURE" "IL" []), V"ir2" (T"CTL_STRUCTURE" "IL" []), 3416 C"!" "bool" 3417 ((((T"prod" "pair" 3418 [T"fmap" "finite_map" 3419 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3420 T"fmap" "finite_map" 3421 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 3422 bool) --> bool) --> bool)), 3423 V"P" 3424 ((T"prod" "pair" 3425 [T"fmap" "finite_map" 3426 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3427 T"fmap" "finite_map" 3428 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 3429 bool)), 3430 V"Q" 3431 ((T"prod" "pair" 3432 [T"fmap" "finite_map" 3433 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3434 T"fmap" "finite_map" 3435 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 3436 bool)), 3437 V"R" 3438 ((T"prod" "pair" 3439 [T"fmap" "finite_map" 3440 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3441 T"fmap" "finite_map" 3442 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 3443 bool)), 3444 V"T" 3445 ((T"prod" "pair" 3446 [T"fmap" "finite_map" 3447 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3448 T"fmap" "finite_map" 3449 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 3450 bool)), V"ir_t" (T"CTL_STRUCTURE" "IL" []), 3451 V"ir_f" (T"CTL_STRUCTURE" "IL" []), 3452 C"COND" "bool" ((bool --> (bool --> (bool --> bool)))), 3453 C"!" "bool" 3454 (((T"prod" "pair" [T"num" "num" [], alpha] --> bool) --> bool)), 3455 V"s" (T"prod" "pair" [T"num" "num" [], alpha]), 3456 C"!" "bool" (((beta --> bool) --> bool)), V"stm" (beta), 3457 C"!" "bool" ((((T"num" "num" [] --> beta) --> bool) --> bool)), 3458 V"iB" ((T"num" "num" [] --> beta)), 3459 C"=" "min" ((beta --> (beta --> bool))), 3460 C"upload" "preARM" 3461 ((T"list" "list" [beta] --> 3462 ((T"num" "num" [] --> beta) --> 3463 (T"num" "num" [] --> (T"num" "num" [] --> beta))))), 3464 C"CONS" "list" 3465 ((beta --> (T"list" "list" [beta] --> T"list" "list" [beta]))), 3466 C"NIL" "list" (T"list" "list" [beta]), 3467 C"FST" "pair" 3468 ((T"prod" "pair" [T"num" "num" [], alpha] --> T"num" "num" [])), 3469 C"COND" "bool" 3470 ((bool --> 3471 (T"prod" "pair" 3472 [T"fmap" "finite_map" 3473 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3474 T"fmap" "finite_map" 3475 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 3476 (T"prod" "pair" 3477 [T"fmap" "finite_map" 3478 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3479 T"fmap" "finite_map" 3480 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 3481 T"prod" "pair" 3482 [T"fmap" "finite_map" 3483 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3484 T"fmap" "finite_map" 3485 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]])))), 3486 C"WHILE" "while" 3487 (((T"prod" "pair" 3488 [T"fmap" "finite_map" 3489 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3490 T"fmap" "finite_map" 3491 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 3492 bool) --> 3493 ((T"prod" "pair" 3494 [T"fmap" "finite_map" 3495 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3496 T"fmap" "finite_map" 3497 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 3498 T"prod" "pair" 3499 [T"fmap" "finite_map" 3500 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3501 T"fmap" "finite_map" 3502 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]]) --> 3503 (T"prod" "pair" 3504 [T"fmap" "finite_map" 3505 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3506 T"fmap" "finite_map" 3507 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]] --> 3508 T"prod" "pair" 3509 [T"fmap" "finite_map" 3510 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3511 T"fmap" "finite_map" 3512 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]])))), 3513 V"st'" 3514 (T"prod" "pair" 3515 [T"fmap" "finite_map" 3516 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]], 3517 T"fmap" "finite_map" 3518 [T"num" "num" [], T"cart" "fcp" [bool, T"i32" "words" []]]])] 3519 val DT = Thm.disk_thm share_table 3520 in 3521 val MREG_TY_DEF = 3522 DT(["DISK_THM"], [], 3523 `(%0 (\%1. ((%2 (\%3. ((%4 $0) (%5 (%6 (%6 (%6 (%6 %7)))))))) 3524 $0)))`) 3525 val MREG_BIJ = 3526 DT(["DISK_THM"], [], 3527 `((%8 (%9 (\%10. ((%11 (%12 (%13 $0))) $0)))) (%14 (\%15. ((%16 3528 ((\%3. ((%4 $0) (%5 (%6 (%6 (%6 (%6 %7))))))) $0)) ((%17 (%13 (%12 3529 $0))) $0)))))`) 3530 val R0 = DT([], [], `((%11 %18) (%12 %19))`) 3531 val R1 = DT([], [], `((%11 %20) (%12 (%5 (%6 %7))))`) 3532 val R2 = DT([], [], `((%11 %21) (%12 (%5 (%22 %7))))`) 3533 val R3 = DT([], [], `((%11 %23) (%12 (%5 (%6 (%6 %7)))))`) 3534 val R4 = DT([], [], `((%11 %24) (%12 (%5 (%22 (%6 %7)))))`) 3535 val R5 = DT([], [], `((%11 %25) (%12 (%5 (%6 (%22 %7)))))`) 3536 val R6 = DT([], [], `((%11 %26) (%12 (%5 (%22 (%22 %7)))))`) 3537 val R7 = DT([], [], `((%11 %27) (%12 (%5 (%6 (%6 (%6 %7))))))`) 3538 val R8 = DT([], [], `((%11 %28) (%12 (%5 (%22 (%6 (%6 %7))))))`) 3539 val R9 = DT([], [], `((%11 %29) (%12 (%5 (%6 (%22 (%6 %7))))))`) 3540 val R10 = DT([], [], `((%11 %30) (%12 (%5 (%22 (%22 (%6 %7))))))`) 3541 val R11 = DT([], [], `((%11 %31) (%12 (%5 (%6 (%6 (%22 %7))))))`) 3542 val R12 = DT([], [], `((%11 %32) (%12 (%5 (%22 (%6 (%22 %7))))))`) 3543 val R13 = DT([], [], `((%11 %33) (%12 (%5 (%6 (%22 (%22 %7))))))`) 3544 val R14 = DT([], [], `((%11 %34) (%12 (%5 (%22 (%22 (%22 %7))))))`) 3545 val MREG_size_def = DT([], [], `(%9 (\%35. ((%17 (%36 $0)) %19)))`) 3546 val MREG_case = 3547 DT([], [], 3548 `(%37 (\%38. (%37 (\%39. (%37 (\%40. (%37 (\%41. (%37 (\%42. (%37 3549 (\%43. (%37 (\%44. (%37 (\%45. (%37 (\%46. (%37 (\%47. (%37 (\%48. 3550 (%37 (\%49. (%37 (\%50. (%37 (\%51. (%37 (\%52. (%9 (\%35. ((%53 3551 ((((((((((((((((%54 $15) $14) $13) $12) $11) $10) $9) $8) $7) $6) 3552 $5) $4) $3) $2) $1) $0)) ((\%55. (((%56 ((%4 $0) (%5 (%6 (%6 (%6 3553 %7)))))) (((%56 ((%4 $0) (%5 (%6 (%6 %7))))) (((%56 ((%4 $0) (%5 (%6 3554 %7)))) $16) (((%56 ((%17 $0) (%5 (%6 %7)))) $15) $14))) (((%56 ((%4 3555 $0) (%5 (%22 (%6 %7))))) $13) (((%56 ((%4 $0) (%5 (%6 (%22 %7))))) 3556 $12) (((%56 ((%17 $0) (%5 (%6 (%22 %7))))) $11) $10))))) (((%56 ((%4 3557 $0) (%5 (%22 (%22 (%6 %7)))))) (((%56 ((%4 $0) (%5 (%22 (%6 (%6 3558 %7)))))) $9) (((%56 ((%17 $0) (%5 (%22 (%6 (%6 %7)))))) $8) $7))) 3559 (((%56 ((%4 $0) (%5 (%22 (%6 (%22 %7)))))) (((%56 ((%17 $0) (%5 (%22 3560 (%22 (%6 %7)))))) $6) $5)) (((%56 ((%4 $0) (%5 (%6 (%22 (%22 3561 %7)))))) $4) (((%56 ((%17 $0) (%5 (%6 (%22 (%22 %7)))))) $3) 3562 $2)))))) (%13 $0)))))))))))))))))))))))))))))))))))`) 3563 val MEXP_TY_DEF = 3564 DT(["DISK_THM"], [], 3565 `(%57 (\%58. ((%59 (\%60. (%61 (\%62. ((%63 (%64 (\%60. ((%63 ((%65 3566 (%66 (\%10. ((%67 $1) ((\%10. (((%68 %19) ((%69 $0) ((%70 (%71 3567 (\%72. %73))) (%74 (\%75. %73))))) (\%3. %76))) $0))))) (%77 (\%78. 3568 (%79 (\%80. ((%67 $2) (((\%78. (\%80. (((%68 (%81 %19)) ((%69 (%82 3569 (\%83. %73))) ((%70 $1) $0))) (\%3. %76)))) $1) $0)))))))) ($1 3570 $0))))) ($0 $1)))))) $0)))`) 3571 val MEXP_repfns = 3572 DT(["DISK_THM"], [], 3573 `((%8 (%84 (\%85. ((%86 (%87 (%88 $0))) $0)))) (%64 (\%89. ((%16 3574 ((\%60. (%61 (\%62. ((%63 (%64 (\%60. ((%63 ((%65 (%66 (\%10. ((%67 3575 $1) ((\%10. (((%68 %19) ((%69 $0) ((%70 (%71 (\%72. %73))) (%74 3576 (\%75. %73))))) (\%3. %76))) $0))))) (%77 (\%78. (%79 (\%80. ((%67 3577 $2) (((\%78. (\%80. (((%68 (%81 %19)) ((%69 (%82 (\%83. %73))) ((%70 3578 $1) $0))) (\%3. %76)))) $1) $0)))))))) ($1 $0))))) ($0 $1))))) $0)) 3579 ((%67 (%88 (%87 $0))) $0)))))`) 3580 val IL0_def = 3581 DT([], [], 3582 `((%90 %91) (\%10. (%87 ((\%10. (((%68 %19) ((%69 $0) ((%70 (%71 3583 (\%72. %73))) (%74 (\%75. %73))))) (\%3. %76))) $0))))`) 3584 val IL1_def = 3585 DT([], [], 3586 `((%92 %93) (\%78. (\%80. (%87 (((\%78. (\%80. (((%68 (%81 %19)) 3587 ((%69 (%82 (\%83. %73))) ((%70 $1) $0))) (\%3. %76)))) $1) $0)))))`) 3588 val MR = DT([], [], `((%90 %94) %91)`) 3589 val MC = DT([], [], `((%92 %95) %93)`) 3590 val MEXP_case_def = 3591 DT(["DISK_THM"], [], 3592 `((%8 (%96 (\%97. (%98 (\%99. (%9 (\%10. ((%53 (((%100 $2) $1) (%94 3593 $0))) ($2 $0))))))))) (%96 (\%97. (%98 (\%99. (%101 (\%78. (%102 3594 (\%80. ((%53 (((%100 $3) $2) ((%95 $1) $0))) (($2 $1) 3595 $0)))))))))))`) 3596 val MEXP_size_def = 3597 DT(["DISK_THM"], [], 3598 `((%8 (%9 (\%10. ((%17 (%103 (%94 $0))) ((%104 (%5 (%6 %7))) (%36 3599 $0)))))) (%101 (\%78. (%102 (\%80. ((%17 (%103 ((%95 $1) $0))) (%5 3600 (%6 %7))))))))`) 3601 val index_of_reg_def = 3602 DT(["DISK_THM"], [], 3603 `((%8 ((%17 (%105 %18)) %19)) ((%8 ((%17 (%105 %20)) (%5 (%6 %7)))) 3604 ((%8 ((%17 (%105 %21)) (%5 (%22 %7)))) ((%8 ((%17 (%105 %23)) (%5 3605 (%6 (%6 %7))))) ((%8 ((%17 (%105 %24)) (%5 (%22 (%6 %7))))) ((%8 3606 ((%17 (%105 %25)) (%5 (%6 (%22 %7))))) ((%8 ((%17 (%105 %26)) (%5 3607 (%22 (%22 %7))))) ((%8 ((%17 (%105 %27)) (%5 (%6 (%6 (%6 %7)))))) 3608 ((%8 ((%17 (%105 %28)) (%5 (%22 (%6 (%6 %7)))))) ((%8 ((%17 (%105 3609 %29)) (%5 (%6 (%22 (%6 %7)))))) ((%8 ((%17 (%105 %30)) (%5 (%22 (%22 3610 (%6 %7)))))) ((%8 ((%17 (%105 %31)) (%5 (%6 (%6 (%22 %7)))))) ((%8 3611 ((%17 (%105 %32)) (%5 (%22 (%6 (%22 %7)))))) ((%8 ((%17 (%105 %33)) 3612 (%5 (%6 (%22 (%22 %7)))))) ((%17 (%105 %34)) (%5 (%22 (%22 (%22 3613 %7)))))))))))))))))))`) 3614 val from_reg_index_def = 3615 DT([], [], 3616 `(%14 (\%106. ((%11 (%107 $0)) (((%108 ((%17 $0) %19)) %18) (((%108 3617 ((%17 $0) (%5 (%6 %7)))) %20) (((%108 ((%17 $0) (%5 (%22 %7)))) %21) 3618 (((%108 ((%17 $0) (%5 (%6 (%6 %7))))) %23) (((%108 ((%17 $0) (%5 3619 (%22 (%6 %7))))) %24) (((%108 ((%17 $0) (%5 (%6 (%22 %7))))) %25) 3620 (((%108 ((%17 $0) (%5 (%22 (%22 %7))))) %26) (((%108 ((%17 $0) (%5 3621 (%6 (%6 (%6 %7)))))) %27) (((%108 ((%17 $0) (%5 (%22 (%6 (%6 3622 %7)))))) %28) (((%108 ((%17 $0) (%5 (%6 (%22 (%6 %7)))))) %29) 3623 (((%108 ((%17 $0) (%5 (%22 (%22 (%6 %7)))))) %30) (((%108 ((%17 $0) 3624 (%5 (%6 (%6 (%22 %7)))))) %31) (((%108 ((%17 $0) (%5 (%22 (%6 (%22 3625 %7)))))) %32) (((%108 ((%17 $0) (%5 (%6 (%22 (%22 %7)))))) %33) 3626 %34)))))))))))))))))`) 3627 val toREG_def = 3628 DT([], [], `(%9 (\%109. ((%110 (%111 $0)) (%112 (%105 $0)))))`) 3629 val toMEM_def = 3630 DT(["DISK_THM"], [], 3631 `(%14 (\%113. (%114 (\%115. ((%110 (%116 ((%117 $1) $0))) (%118 3632 ((%117 $1) $0)))))))`) 3633 val toEXP_def = 3634 DT(["DISK_THM"], [], 3635 `((%8 (%9 (\%109. ((%110 (%119 (%94 $0))) (%111 $0))))) (%101 3636 (\%120. (%102 (\%121. ((%110 (%119 ((%95 $1) $0))) (%122 ((%123 3637 (%124 $0)) ((%125 (%5 (%22 %7))) (%126 $1))))))))))`) 3638 val DOPER_TY_DEF = 3639 DT(["DISK_THM"], [], 3640 `(%127 (\%128. ((%129 (\%130. (%131 (\%132. ((%63 (%133 (\%130. 3641 ((%63 ((%65 (%66 (\%134. (%135 (\%136. ((%137 $2) (((\%134. (\%136. 3642 (((%138 %19) ((%139 $1) ((%140 $0) ((%141 (%142 (\%143. %73))) 3643 ((%144 (%82 (\%83. %73))) ((%145 (%82 (\%83. %73))) ((%146 (%147 3644 (\%148. %73))) ((%149 (%150 (\%151. %73))) (%152 (\%153. 3645 %73)))))))))) (\%3. %154)))) $1) $0))))))) ((%65 (%135 (\%155. (%66 3646 (\%156. ((%137 $2) (((\%155. (\%156. (((%138 (%81 %19)) ((%139 $0) 3647 ((%140 $1) ((%141 (%142 (\%143. %73))) ((%144 (%82 (\%83. %73))) 3648 ((%145 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) ((%149 (%150 3649 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. %154)))) $1) 3650 $0))))))) ((%65 (%66 (\%134. (%157 (\%158. ((%137 $2) (((\%134. 3651 (\%158. (((%138 (%81 (%81 %19))) ((%139 $1) ((%140 (%159 (\%160. 3652 %73))) ((%141 $0) ((%144 (%82 (\%83. %73))) ((%145 (%82 (\%83. 3653 %73))) ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. %73))) (%152 3654 (\%153. %73)))))))))) (\%3. %154)))) $1) $0))))))) ((%65 (%66 3655 (\%134. (%66 (\%156. (%157 (\%161. ((%137 $3) ((((\%134. (\%156. 3656 (\%161. (((%138 (%81 (%81 (%81 %19)))) ((%139 $2) ((%140 (%159 3657 (\%160. %73))) ((%141 $0) ((%144 $1) ((%145 (%82 (\%83. %73))) 3658 ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. %73))) (%152 3659 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) $0))))))))) ((%65 (%66 3660 (\%134. (%66 (\%156. (%157 (\%161. ((%137 $3) ((((\%134. (\%156. 3661 (\%161. (((%138 (%81 (%81 (%81 (%81 %19))))) ((%139 $2) ((%140 (%159 3662 (\%160. %73))) ((%141 $0) ((%144 $1) ((%145 (%82 (\%83. %73))) 3663 ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. %73))) (%152 3664 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) $0))))))))) ((%65 (%66 3665 (\%134. (%66 (\%156. (%157 (\%161. ((%137 $3) ((((\%134. (\%156. 3666 (\%161. (((%138 (%81 (%81 (%81 (%81 (%81 %19)))))) ((%139 $2) ((%140 3667 (%159 (\%160. %73))) ((%141 $0) ((%144 $1) ((%145 (%82 (\%83. %73))) 3668 ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. %73))) (%152 3669 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) $0))))))))) ((%65 (%66 3670 (\%134. (%66 (\%156. (%66 (\%162. ((%137 $3) ((((\%134. (\%156. 3671 (\%162. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 %19))))))) ((%139 $2) 3672 ((%140 (%159 (\%160. %73))) ((%141 (%142 (\%143. %73))) ((%144 $1) 3673 ((%145 $0) ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. %73))) 3674 (%152 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) $0))))))))) 3675 ((%65 (%66 (\%134. (%66 (\%156. (%157 (\%161. ((%137 $3) ((((\%134. 3676 (\%156. (\%161. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3677 %19)))))))) ((%139 $2) ((%140 (%159 (\%160. %73))) ((%141 $0) ((%144 3678 $1) ((%145 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) ((%149 3679 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. %154))))) $2) 3680 $1) $0))))))))) ((%65 (%66 (\%134. (%66 (\%156. (%157 (\%161. ((%137 3681 $3) ((((\%134. (\%156. (\%161. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 3682 (%81 (%81 %19))))))))) ((%139 $2) ((%140 (%159 (\%160. %73))) ((%141 3683 $0) ((%144 $1) ((%145 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) 3684 ((%149 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. 3685 %154))))) $2) $1) $0))))))))) ((%65 (%66 (\%134. (%66 (\%156. (%157 3686 (\%161. ((%137 $3) ((((\%134. (\%156. (\%161. (((%138 (%81 (%81 (%81 3687 (%81 (%81 (%81 (%81 (%81 (%81 %19)))))))))) ((%139 $2) ((%140 (%159 3688 (\%160. %73))) ((%141 $0) ((%144 $1) ((%145 (%82 (\%83. %73))) 3689 ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. %73))) (%152 3690 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) $0))))))))) ((%65 (%66 3691 (\%134. (%66 (\%156. (%163 (\%164. ((%137 $3) ((((\%134. (\%156. 3692 (\%164. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3693 %19))))))))))) ((%139 $2) ((%140 (%159 (\%160. %73))) ((%141 (%142 3694 (\%143. %73))) ((%144 $1) ((%145 (%82 (\%83. %73))) ((%146 $0) 3695 ((%149 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. 3696 %154))))) $2) $1) $0))))))))) ((%65 (%66 (\%134. (%66 (\%156. (%163 3697 (\%164. ((%137 $3) ((((\%134. (\%156. (\%164. (((%138 (%81 (%81 (%81 3698 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 %19)))))))))))) ((%139 $2) 3699 ((%140 (%159 (\%160. %73))) ((%141 (%142 (\%143. %73))) ((%144 $1) 3700 ((%145 (%82 (\%83. %73))) ((%146 $0) ((%149 (%150 (\%151. %73))) 3701 (%152 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) $0))))))))) 3702 ((%65 (%66 (\%134. (%66 (\%156. (%163 (\%164. ((%137 $3) ((((\%134. 3703 (\%156. (\%164. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3704 (%81 (%81 (%81 %19))))))))))))) ((%139 $2) ((%140 (%159 (\%160. 3705 %73))) ((%141 (%142 (\%143. %73))) ((%144 $1) ((%145 (%82 (\%83. 3706 %73))) ((%146 $0) ((%149 (%150 (\%151. %73))) (%152 (\%153. 3707 %73)))))))))) (\%3. %154))))) $2) $1) $0))))))))) ((%65 (%66 (\%134. 3708 (%66 (\%156. (%163 (\%164. ((%137 $3) ((((\%134. (\%156. (\%164. 3709 (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3710 (%81 %19)))))))))))))) ((%139 $2) ((%140 (%159 (\%160. %73))) ((%141 3711 (%142 (\%143. %73))) ((%144 $1) ((%145 (%82 (\%83. %73))) ((%146 $0) 3712 ((%149 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. 3713 %154))))) $2) $1) $0))))))))) ((%65 (%165 (\%166. (%167 (\%168. 3714 ((%137 $2) (((\%166. (\%168. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 3715 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 %19))))))))))))))) ((%139 3716 (%82 (\%83. %73))) ((%140 (%159 (\%160. %73))) ((%141 (%142 (\%143. 3717 %73))) ((%144 (%82 (\%83. %73))) ((%145 (%82 (\%83. %73))) ((%146 3718 (%147 (\%148. %73))) ((%149 $1) $0)))))))) (\%3. %154)))) $1) 3719 $0))))))) (%165 (\%166. (%167 (\%168. ((%137 $2) (((\%166. (\%168. 3720 (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3721 (%81 (%81 (%81 %19)))))))))))))))) ((%139 (%82 (\%83. %73))) ((%140 3722 (%159 (\%160. %73))) ((%141 (%142 (\%143. %73))) ((%144 (%82 (\%83. 3723 %73))) ((%145 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) ((%149 3724 $1) $0)))))))) (\%3. %154)))) $1) $0)))))))))))))))))))))) ($1 3725 $0))))) ($0 $1)))))) $0)))`) 3726 val DOPER_repfns = 3727 DT(["DISK_THM"], [], 3728 `((%8 (%169 (\%170. ((%171 (%172 (%173 $0))) $0)))) (%133 (\%174. 3729 ((%16 ((\%130. (%131 (\%132. ((%63 (%133 (\%130. ((%63 ((%65 (%66 3730 (\%134. (%135 (\%136. ((%137 $2) (((\%134. (\%136. (((%138 %19) 3731 ((%139 $1) ((%140 $0) ((%141 (%142 (\%143. %73))) ((%144 (%82 (\%83. 3732 %73))) ((%145 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) ((%149 3733 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. %154)))) $1) 3734 $0))))))) ((%65 (%135 (\%155. (%66 (\%156. ((%137 $2) (((\%155. 3735 (\%156. (((%138 (%81 %19)) ((%139 $0) ((%140 $1) ((%141 (%142 3736 (\%143. %73))) ((%144 (%82 (\%83. %73))) ((%145 (%82 (\%83. %73))) 3737 ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. %73))) (%152 3738 (\%153. %73)))))))))) (\%3. %154)))) $1) $0))))))) ((%65 (%66 3739 (\%134. (%157 (\%158. ((%137 $2) (((\%134. (\%158. (((%138 (%81 (%81 3740 %19))) ((%139 $1) ((%140 (%159 (\%160. %73))) ((%141 $0) ((%144 (%82 3741 (\%83. %73))) ((%145 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) 3742 ((%149 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. 3743 %154)))) $1) $0))))))) ((%65 (%66 (\%134. (%66 (\%156. (%157 (\%161. 3744 ((%137 $3) ((((\%134. (\%156. (\%161. (((%138 (%81 (%81 (%81 %19)))) 3745 ((%139 $2) ((%140 (%159 (\%160. %73))) ((%141 $0) ((%144 $1) ((%145 3746 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. 3747 %73))) (%152 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) 3748 $0))))))))) ((%65 (%66 (\%134. (%66 (\%156. (%157 (\%161. ((%137 $3) 3749 ((((\%134. (\%156. (\%161. (((%138 (%81 (%81 (%81 (%81 %19))))) 3750 ((%139 $2) ((%140 (%159 (\%160. %73))) ((%141 $0) ((%144 $1) ((%145 3751 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. 3752 %73))) (%152 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) 3753 $0))))))))) ((%65 (%66 (\%134. (%66 (\%156. (%157 (\%161. ((%137 $3) 3754 ((((\%134. (\%156. (\%161. (((%138 (%81 (%81 (%81 (%81 (%81 3755 %19)))))) ((%139 $2) ((%140 (%159 (\%160. %73))) ((%141 $0) ((%144 3756 $1) ((%145 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) ((%149 3757 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. %154))))) $2) 3758 $1) $0))))))))) ((%65 (%66 (\%134. (%66 (\%156. (%66 (\%162. ((%137 3759 $3) ((((\%134. (\%156. (\%162. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 3760 %19))))))) ((%139 $2) ((%140 (%159 (\%160. %73))) ((%141 (%142 3761 (\%143. %73))) ((%144 $1) ((%145 $0) ((%146 (%147 (\%148. %73))) 3762 ((%149 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. 3763 %154))))) $2) $1) $0))))))))) ((%65 (%66 (\%134. (%66 (\%156. (%157 3764 (\%161. ((%137 $3) ((((\%134. (\%156. (\%161. (((%138 (%81 (%81 (%81 3765 (%81 (%81 (%81 (%81 %19)))))))) ((%139 $2) ((%140 (%159 (\%160. 3766 %73))) ((%141 $0) ((%144 $1) ((%145 (%82 (\%83. %73))) ((%146 (%147 3767 (\%148. %73))) ((%149 (%150 (\%151. %73))) (%152 (\%153. 3768 %73)))))))))) (\%3. %154))))) $2) $1) $0))))))))) ((%65 (%66 (\%134. 3769 (%66 (\%156. (%157 (\%161. ((%137 $3) ((((\%134. (\%156. (\%161. 3770 (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 %19))))))))) ((%139 3771 $2) ((%140 (%159 (\%160. %73))) ((%141 $0) ((%144 $1) ((%145 (%82 3772 (\%83. %73))) ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. 3773 %73))) (%152 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) 3774 $0))))))))) ((%65 (%66 (\%134. (%66 (\%156. (%157 (\%161. ((%137 $3) 3775 ((((\%134. (\%156. (\%161. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 3776 (%81 (%81 (%81 %19)))))))))) ((%139 $2) ((%140 (%159 (\%160. %73))) 3777 ((%141 $0) ((%144 $1) ((%145 (%82 (\%83. %73))) ((%146 (%147 (\%148. 3778 %73))) ((%149 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. 3779 %154))))) $2) $1) $0))))))))) ((%65 (%66 (\%134. (%66 (\%156. (%163 3780 (\%164. ((%137 $3) ((((\%134. (\%156. (\%164. (((%138 (%81 (%81 (%81 3781 (%81 (%81 (%81 (%81 (%81 (%81 (%81 %19))))))))))) ((%139 $2) ((%140 3782 (%159 (\%160. %73))) ((%141 (%142 (\%143. %73))) ((%144 $1) ((%145 3783 (%82 (\%83. %73))) ((%146 $0) ((%149 (%150 (\%151. %73))) (%152 3784 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) $0))))))))) ((%65 (%66 3785 (\%134. (%66 (\%156. (%163 (\%164. ((%137 $3) ((((\%134. (\%156. 3786 (\%164. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3787 (%81 %19)))))))))))) ((%139 $2) ((%140 (%159 (\%160. %73))) ((%141 3788 (%142 (\%143. %73))) ((%144 $1) ((%145 (%82 (\%83. %73))) ((%146 $0) 3789 ((%149 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. 3790 %154))))) $2) $1) $0))))))))) ((%65 (%66 (\%134. (%66 (\%156. (%163 3791 (\%164. ((%137 $3) ((((\%134. (\%156. (\%164. (((%138 (%81 (%81 (%81 3792 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 %19))))))))))))) ((%139 3793 $2) ((%140 (%159 (\%160. %73))) ((%141 (%142 (\%143. %73))) ((%144 3794 $1) ((%145 (%82 (\%83. %73))) ((%146 $0) ((%149 (%150 (\%151. %73))) 3795 (%152 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) $0))))))))) 3796 ((%65 (%66 (\%134. (%66 (\%156. (%163 (\%164. ((%137 $3) ((((\%134. 3797 (\%156. (\%164. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3798 (%81 (%81 (%81 (%81 %19)))))))))))))) ((%139 $2) ((%140 (%159 3799 (\%160. %73))) ((%141 (%142 (\%143. %73))) ((%144 $1) ((%145 (%82 3800 (\%83. %73))) ((%146 $0) ((%149 (%150 (\%151. %73))) (%152 (\%153. 3801 %73)))))))))) (\%3. %154))))) $2) $1) $0))))))))) ((%65 (%165 3802 (\%166. (%167 (\%168. ((%137 $2) (((\%166. (\%168. (((%138 (%81 (%81 3803 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3804 %19))))))))))))))) ((%139 (%82 (\%83. %73))) ((%140 (%159 (\%160. 3805 %73))) ((%141 (%142 (\%143. %73))) ((%144 (%82 (\%83. %73))) ((%145 3806 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) ((%149 $1) $0)))))))) 3807 (\%3. %154)))) $1) $0))))))) (%165 (\%166. (%167 (\%168. ((%137 $2) 3808 (((\%166. (\%168. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3809 (%81 (%81 (%81 (%81 (%81 (%81 (%81 %19)))))))))))))))) ((%139 (%82 3810 (\%83. %73))) ((%140 (%159 (\%160. %73))) ((%141 (%142 (\%143. 3811 %73))) ((%144 (%82 (\%83. %73))) ((%145 (%82 (\%83. %73))) ((%146 3812 (%147 (\%148. %73))) ((%149 $1) $0)))))))) (\%3. %154)))) $1) 3813 $0)))))))))))))))))))))) ($1 $0))))) ($0 $1))))) $0)) ((%137 (%173 3814 (%172 $0))) $0)))))`) 3815 val IL2_def = 3816 DT([], [], 3817 `((%175 %176) (\%134. (\%136. (%172 (((\%134. (\%136. (((%138 %19) 3818 ((%139 $1) ((%140 $0) ((%141 (%142 (\%143. %73))) ((%144 (%82 (\%83. 3819 %73))) ((%145 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) ((%149 3820 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. %154)))) $1) 3821 $0)))))`) 3822 val IL3_def = 3823 DT([], [], 3824 `((%177 %178) (\%155. (\%156. (%172 (((\%155. (\%156. (((%138 (%81 3825 %19)) ((%139 $0) ((%140 $1) ((%141 (%142 (\%143. %73))) ((%144 (%82 3826 (\%83. %73))) ((%145 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) 3827 ((%149 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. 3828 %154)))) $1) $0)))))`) 3829 val IL4_def = 3830 DT([], [], 3831 `((%179 %180) (\%134. (\%158. (%172 (((\%134. (\%158. (((%138 (%81 3832 (%81 %19))) ((%139 $1) ((%140 (%159 (\%160. %73))) ((%141 $0) ((%144 3833 (%82 (\%83. %73))) ((%145 (%82 (\%83. %73))) ((%146 (%147 (\%148. 3834 %73))) ((%149 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. 3835 %154)))) $1) $0)))))`) 3836 val IL5_def = 3837 DT([], [], 3838 `((%181 %182) (\%134. (\%156. (\%161. (%172 ((((\%134. (\%156. 3839 (\%161. (((%138 (%81 (%81 (%81 %19)))) ((%139 $2) ((%140 (%159 3840 (\%160. %73))) ((%141 $0) ((%144 $1) ((%145 (%82 (\%83. %73))) 3841 ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. %73))) (%152 3842 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) $0))))))`) 3843 val IL6_def = 3844 DT([], [], 3845 `((%181 %183) (\%134. (\%156. (\%161. (%172 ((((\%134. (\%156. 3846 (\%161. (((%138 (%81 (%81 (%81 (%81 %19))))) ((%139 $2) ((%140 (%159 3847 (\%160. %73))) ((%141 $0) ((%144 $1) ((%145 (%82 (\%83. %73))) 3848 ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. %73))) (%152 3849 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) $0))))))`) 3850 val IL7_def = 3851 DT([], [], 3852 `((%181 %184) (\%134. (\%156. (\%161. (%172 ((((\%134. (\%156. 3853 (\%161. (((%138 (%81 (%81 (%81 (%81 (%81 %19)))))) ((%139 $2) ((%140 3854 (%159 (\%160. %73))) ((%141 $0) ((%144 $1) ((%145 (%82 (\%83. %73))) 3855 ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. %73))) (%152 3856 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) $0))))))`) 3857 val IL8_def = 3858 DT([], [], 3859 `((%185 %186) (\%134. (\%156. (\%162. (%172 ((((\%134. (\%156. 3860 (\%162. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 %19))))))) ((%139 $2) 3861 ((%140 (%159 (\%160. %73))) ((%141 (%142 (\%143. %73))) ((%144 $1) 3862 ((%145 $0) ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. %73))) 3863 (%152 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) $0))))))`) 3864 val IL9_def = 3865 DT([], [], 3866 `((%181 %187) (\%134. (\%156. (\%161. (%172 ((((\%134. (\%156. 3867 (\%161. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 %19)))))))) 3868 ((%139 $2) ((%140 (%159 (\%160. %73))) ((%141 $0) ((%144 $1) ((%145 3869 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. 3870 %73))) (%152 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) 3871 $0))))))`) 3872 val IL10_def = 3873 DT([], [], 3874 `((%181 %188) (\%134. (\%156. (\%161. (%172 ((((\%134. (\%156. 3875 (\%161. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 %19))))))))) 3876 ((%139 $2) ((%140 (%159 (\%160. %73))) ((%141 $0) ((%144 $1) ((%145 3877 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) ((%149 (%150 (\%151. 3878 %73))) (%152 (\%153. %73)))))))))) (\%3. %154))))) $2) $1) 3879 $0))))))`) 3880 val IL11_def = 3881 DT([], [], 3882 `((%181 %189) (\%134. (\%156. (\%161. (%172 ((((\%134. (\%156. 3883 (\%161. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3884 %19)))))))))) ((%139 $2) ((%140 (%159 (\%160. %73))) ((%141 $0) 3885 ((%144 $1) ((%145 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) 3886 ((%149 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. 3887 %154))))) $2) $1) $0))))))`) 3888 val IL12_def = 3889 DT([], [], 3890 `((%190 %191) (\%134. (\%156. (\%164. (%172 ((((\%134. (\%156. 3891 (\%164. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3892 %19))))))))))) ((%139 $2) ((%140 (%159 (\%160. %73))) ((%141 (%142 3893 (\%143. %73))) ((%144 $1) ((%145 (%82 (\%83. %73))) ((%146 $0) 3894 ((%149 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. 3895 %154))))) $2) $1) $0))))))`) 3896 val IL13_def = 3897 DT([], [], 3898 `((%190 %192) (\%134. (\%156. (\%164. (%172 ((((\%134. (\%156. 3899 (\%164. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3900 (%81 %19)))))))))))) ((%139 $2) ((%140 (%159 (\%160. %73))) ((%141 3901 (%142 (\%143. %73))) ((%144 $1) ((%145 (%82 (\%83. %73))) ((%146 $0) 3902 ((%149 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) (\%3. 3903 %154))))) $2) $1) $0))))))`) 3904 val IL14_def = 3905 DT([], [], 3906 `((%190 %193) (\%134. (\%156. (\%164. (%172 ((((\%134. (\%156. 3907 (\%164. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3908 (%81 (%81 %19))))))))))))) ((%139 $2) ((%140 (%159 (\%160. %73))) 3909 ((%141 (%142 (\%143. %73))) ((%144 $1) ((%145 (%82 (\%83. %73))) 3910 ((%146 $0) ((%149 (%150 (\%151. %73))) (%152 (\%153. %73)))))))))) 3911 (\%3. %154))))) $2) $1) $0))))))`) 3912 val IL15_def = 3913 DT([], [], 3914 `((%190 %194) (\%134. (\%156. (\%164. (%172 ((((\%134. (\%156. 3915 (\%164. (((%138 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3916 (%81 (%81 (%81 %19)))))))))))))) ((%139 $2) ((%140 (%159 (\%160. 3917 %73))) ((%141 (%142 (\%143. %73))) ((%144 $1) ((%145 (%82 (\%83. 3918 %73))) ((%146 $0) ((%149 (%150 (\%151. %73))) (%152 (\%153. 3919 %73)))))))))) (\%3. %154))))) $2) $1) $0))))))`) 3920 val IL16_def = 3921 DT([], [], 3922 `((%195 %196) (\%166. (\%168. (%172 (((\%166. (\%168. (((%138 (%81 3923 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3924 %19))))))))))))))) ((%139 (%82 (\%83. %73))) ((%140 (%159 (\%160. 3925 %73))) ((%141 (%142 (\%143. %73))) ((%144 (%82 (\%83. %73))) ((%145 3926 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) ((%149 $1) $0)))))))) 3927 (\%3. %154)))) $1) $0)))))`) 3928 val IL17_def = 3929 DT([], [], 3930 `((%195 %197) (\%166. (\%168. (%172 (((\%166. (\%168. (((%138 (%81 3931 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 (%81 3932 (%81 %19)))))))))))))))) ((%139 (%82 (\%83. %73))) ((%140 (%159 3933 (\%160. %73))) ((%141 (%142 (\%143. %73))) ((%144 (%82 (\%83. %73))) 3934 ((%145 (%82 (\%83. %73))) ((%146 (%147 (\%148. %73))) ((%149 $1) 3935 $0)))))))) (\%3. %154)))) $1) $0)))))`) 3936 val MLDR = DT([], [], `((%175 %198) %176)`) 3937 val MSTR = DT([], [], `((%177 %199) %178)`) 3938 val MMOV = DT([], [], `((%179 %200) %180)`) 3939 val MADD = DT([], [], `((%181 %201) %182)`) 3940 val MSUB = DT([], [], `((%181 %202) %183)`) 3941 val MRSB = DT([], [], `((%181 %203) %184)`) 3942 val MMUL = DT([], [], `((%185 %204) %186)`) 3943 val MAND = DT([], [], `((%181 %205) %187)`) 3944 val MORR = DT([], [], `((%181 %206) %188)`) 3945 val MEOR = DT([], [], `((%181 %207) %189)`) 3946 val MLSL = DT([], [], `((%190 %208) %191)`) 3947 val MLSR = DT([], [], `((%190 %209) %192)`) 3948 val MASR = DT([], [], `((%190 %210) %193)`) 3949 val MROR = DT([], [], `((%190 %211) %194)`) 3950 val MPUSH = DT([], [], `((%195 %212) %196)`) 3951 val MPOP = DT([], [], `((%195 %213) %197)`) 3952 val DOPER_case_def = 3953 DT(["DISK_THM"], [], 3954 `((%8 (%214 (\%215. (%216 (\%217. (%218 (\%219. (%220 (\%221. (%220 3955 (\%222. (%220 (\%223. (%224 (\%225. (%220 (\%226. (%220 (\%227. 3956 (%220 (\%228. (%229 (\%230. (%229 (\%231. (%229 (\%232. (%229 3957 (\%233. (%234 (\%235. (%234 (\%236. (%9 (\%134. (%237 (\%136. ((%53 3958 (((((((((((((((((%238 $17) $16) $15) $14) $13) $12) $11) $10) $9) 3959 $8) $7) $6) $5) $4) $3) $2) ((%198 $1) $0))) (($17 $1) 3960 $0))))))))))))))))))))))))))))))))))))))) ((%8 (%214 (\%215. (%216 3961 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 3962 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 3963 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 3964 (%234 (\%236. (%237 (\%155. (%9 (\%156. ((%53 (((((((((((((((((%238 3965 $17) $16) $15) $14) $13) $12) $11) $10) $9) $8) $7) $6) $5) $4) $3) 3966 $2) ((%199 $1) $0))) (($16 $1) 3967 $0))))))))))))))))))))))))))))))))))))))) ((%8 (%214 (\%215. (%216 3968 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 3969 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 3970 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 3971 (%234 (\%236. (%9 (\%134. (%84 (\%158. ((%53 (((((((((((((((((%238 3972 $17) $16) $15) $14) $13) $12) $11) $10) $9) $8) $7) $6) $5) $4) $3) 3973 $2) ((%200 $1) $0))) (($15 $1) 3974 $0))))))))))))))))))))))))))))))))))))))) ((%8 (%214 (\%215. (%216 3975 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 3976 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 3977 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 3978 (%234 (\%236. (%9 (\%134. (%9 (\%156. (%84 (\%161. ((%53 3979 (((((((((((((((((%238 $18) $17) $16) $15) $14) $13) $12) $11) $10) 3980 $9) $8) $7) $6) $5) $4) $3) (((%201 $2) $1) $0))) ((($15 $2) $1) 3981 $0))))))))))))))))))))))))))))))))))))))))) ((%8 (%214 (\%215. (%216 3982 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 3983 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 3984 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 3985 (%234 (\%236. (%9 (\%134. (%9 (\%156. (%84 (\%161. ((%53 3986 (((((((((((((((((%238 $18) $17) $16) $15) $14) $13) $12) $11) $10) 3987 $9) $8) $7) $6) $5) $4) $3) (((%202 $2) $1) $0))) ((($14 $2) $1) 3988 $0))))))))))))))))))))))))))))))))))))))))) ((%8 (%214 (\%215. (%216 3989 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 3990 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 3991 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 3992 (%234 (\%236. (%9 (\%134. (%9 (\%156. (%84 (\%161. ((%53 3993 (((((((((((((((((%238 $18) $17) $16) $15) $14) $13) $12) $11) $10) 3994 $9) $8) $7) $6) $5) $4) $3) (((%203 $2) $1) $0))) ((($13 $2) $1) 3995 $0))))))))))))))))))))))))))))))))))))))))) ((%8 (%214 (\%215. (%216 3996 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 3997 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 3998 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 3999 (%234 (\%236. (%9 (\%134. (%9 (\%156. (%9 (\%162. ((%53 4000 (((((((((((((((((%238 $18) $17) $16) $15) $14) $13) $12) $11) $10) 4001 $9) $8) $7) $6) $5) $4) $3) (((%204 $2) $1) $0))) ((($12 $2) $1) 4002 $0))))))))))))))))))))))))))))))))))))))))) ((%8 (%214 (\%215. (%216 4003 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 4004 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 4005 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 4006 (%234 (\%236. (%9 (\%134. (%9 (\%156. (%84 (\%161. ((%53 4007 (((((((((((((((((%238 $18) $17) $16) $15) $14) $13) $12) $11) $10) 4008 $9) $8) $7) $6) $5) $4) $3) (((%205 $2) $1) $0))) ((($11 $2) $1) 4009 $0))))))))))))))))))))))))))))))))))))))))) ((%8 (%214 (\%215. (%216 4010 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 4011 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 4012 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 4013 (%234 (\%236. (%9 (\%134. (%9 (\%156. (%84 (\%161. ((%53 4014 (((((((((((((((((%238 $18) $17) $16) $15) $14) $13) $12) $11) $10) 4015 $9) $8) $7) $6) $5) $4) $3) (((%206 $2) $1) $0))) ((($10 $2) $1) 4016 $0))))))))))))))))))))))))))))))))))))))))) ((%8 (%214 (\%215. (%216 4017 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 4018 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 4019 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 4020 (%234 (\%236. (%9 (\%134. (%9 (\%156. (%84 (\%161. ((%53 4021 (((((((((((((((((%238 $18) $17) $16) $15) $14) $13) $12) $11) $10) 4022 $9) $8) $7) $6) $5) $4) $3) (((%207 $2) $1) $0))) ((($9 $2) $1) 4023 $0))))))))))))))))))))))))))))))))))))))))) ((%8 (%214 (\%215. (%216 4024 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 4025 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 4026 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 4027 (%234 (\%236. (%9 (\%134. (%9 (\%156. (%239 (\%164. ((%53 4028 (((((((((((((((((%238 $18) $17) $16) $15) $14) $13) $12) $11) $10) 4029 $9) $8) $7) $6) $5) $4) $3) (((%208 $2) $1) $0))) ((($8 $2) $1) 4030 $0))))))))))))))))))))))))))))))))))))))))) ((%8 (%214 (\%215. (%216 4031 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 4032 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 4033 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 4034 (%234 (\%236. (%9 (\%134. (%9 (\%156. (%239 (\%164. ((%53 4035 (((((((((((((((((%238 $18) $17) $16) $15) $14) $13) $12) $11) $10) 4036 $9) $8) $7) $6) $5) $4) $3) (((%209 $2) $1) $0))) ((($7 $2) $1) 4037 $0))))))))))))))))))))))))))))))))))))))))) ((%8 (%214 (\%215. (%216 4038 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 4039 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 4040 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 4041 (%234 (\%236. (%9 (\%134. (%9 (\%156. (%239 (\%164. ((%53 4042 (((((((((((((((((%238 $18) $17) $16) $15) $14) $13) $12) $11) $10) 4043 $9) $8) $7) $6) $5) $4) $3) (((%210 $2) $1) $0))) ((($6 $2) $1) 4044 $0))))))))))))))))))))))))))))))))))))))))) ((%8 (%214 (\%215. (%216 4045 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 4046 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 4047 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 4048 (%234 (\%236. (%9 (\%134. (%9 (\%156. (%239 (\%164. ((%53 4049 (((((((((((((((((%238 $18) $17) $16) $15) $14) $13) $12) $11) $10) 4050 $9) $8) $7) $6) $5) $4) $3) (((%211 $2) $1) $0))) ((($5 $2) $1) 4051 $0))))))))))))))))))))))))))))))))))))))))) ((%8 (%214 (\%215. (%216 4052 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 4053 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 4054 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 4055 (%234 (\%236. (%14 (\%166. (%240 (\%168. ((%53 (((((((((((((((((%238 4056 $17) $16) $15) $14) $13) $12) $11) $10) $9) $8) $7) $6) $5) $4) $3) 4057 $2) ((%212 $1) $0))) (($3 $1) 4058 $0))))))))))))))))))))))))))))))))))))))) (%214 (\%215. (%216 4059 (\%217. (%218 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. 4060 (%224 (\%225. (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 4061 (\%230. (%229 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. 4062 (%234 (\%236. (%14 (\%166. (%240 (\%168. ((%53 (((((((((((((((((%238 4063 $17) $16) $15) $14) $13) $12) $11) $10) $9) $8) $7) $6) $5) $4) $3) 4064 $2) ((%213 $1) $0))) (($2 $1) 4065 $0)))))))))))))))))))))))))))))))))))))))))))))))))))))`) 4066 val DOPER_size_def = 4067 DT(["DISK_THM"], [], 4068 `((%8 (%9 (\%134. (%237 (\%136. ((%17 (%241 ((%198 $1) $0))) ((%104 4069 (%5 (%6 %7))) ((%104 (%36 $1)) ((%242 (\%243. (\%244. ((%104 4070 ((\%243. $0) $1)) (%245 $0))))) $0))))))))) ((%8 (%237 (\%155. (%9 4071 (\%156. ((%17 (%241 ((%199 $1) $0))) ((%104 (%5 (%6 %7))) ((%104 4072 ((%242 (\%243. (\%244. ((%104 ((\%243. $0) $1)) (%245 $0))))) $1)) 4073 (%36 $0))))))))) ((%8 (%9 (\%134. (%84 (\%158. ((%17 (%241 ((%200 4074 $1) $0))) ((%104 (%5 (%6 %7))) ((%104 (%36 $1)) (%103 $0))))))))) 4075 ((%8 (%9 (\%134. (%9 (\%156. (%84 (\%161. ((%17 (%241 (((%201 $2) 4076 $1) $0))) ((%104 (%5 (%6 %7))) ((%104 (%36 $2)) ((%104 (%36 $1)) 4077 (%103 $0)))))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 (\%161. ((%17 4078 (%241 (((%202 $2) $1) $0))) ((%104 (%5 (%6 %7))) ((%104 (%36 $2)) 4079 ((%104 (%36 $1)) (%103 $0)))))))))))) ((%8 (%9 (\%134. (%9 (\%156. 4080 (%84 (\%161. ((%17 (%241 (((%203 $2) $1) $0))) ((%104 (%5 (%6 %7))) 4081 ((%104 (%36 $2)) ((%104 (%36 $1)) (%103 $0)))))))))))) ((%8 (%9 4082 (\%134. (%9 (\%156. (%9 (\%162. ((%17 (%241 (((%204 $2) $1) $0))) 4083 ((%104 (%5 (%6 %7))) ((%104 (%36 $2)) ((%104 (%36 $1)) (%36 4084 $0)))))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 (\%161. ((%17 (%241 4085 (((%205 $2) $1) $0))) ((%104 (%5 (%6 %7))) ((%104 (%36 $2)) ((%104 4086 (%36 $1)) (%103 $0)))))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 4087 (\%161. ((%17 (%241 (((%206 $2) $1) $0))) ((%104 (%5 (%6 %7))) 4088 ((%104 (%36 $2)) ((%104 (%36 $1)) (%103 $0)))))))))))) ((%8 (%9 4089 (\%134. (%9 (\%156. (%84 (\%161. ((%17 (%241 (((%207 $2) $1) $0))) 4090 ((%104 (%5 (%6 %7))) ((%104 (%36 $2)) ((%104 (%36 $1)) (%103 4091 $0)))))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%239 (\%164. ((%17 4092 (%241 (((%208 $2) $1) $0))) ((%104 (%5 (%6 %7))) ((%104 (%36 $2)) 4093 (%36 $1))))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%239 (\%164. ((%17 4094 (%241 (((%209 $2) $1) $0))) ((%104 (%5 (%6 %7))) ((%104 (%36 $2)) 4095 (%36 $1))))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%239 (\%164. ((%17 4096 (%241 (((%210 $2) $1) $0))) ((%104 (%5 (%6 %7))) ((%104 (%36 $2)) 4097 (%36 $1))))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%239 (\%164. ((%17 4098 (%241 (((%211 $2) $1) $0))) ((%104 (%5 (%6 %7))) ((%104 (%36 $2)) 4099 (%36 $1))))))))))) ((%8 (%14 (\%166. (%240 (\%168. ((%17 (%241 4100 ((%212 $1) $0))) ((%104 (%5 (%6 %7))) ((%104 $1) ((%246 (\%243. $0)) 4101 $0))))))))) (%14 (\%166. (%240 (\%168. ((%17 (%241 ((%213 $1) $0))) 4102 ((%104 (%5 (%6 %7))) ((%104 $1) ((%246 (\%243. $0)) 4103 $0)))))))))))))))))))))))`) 4104 val CTL_STRUCTURE_TY_DEF = 4105 DT(["DISK_THM"], [], 4106 `(%247 (\%248. ((%249 (\%250. (%251 (\%252. ((%63 (%253 (\%250. 4107 ((%63 ((%65 (%254 (\%255. ((%256 $1) ((\%255. (((%257 %19) ((%258 4108 $0) (%259 (\%260. %73)))) (\%3. %261))) $0))))) ((%65 (%262 (\%263. 4109 (%262 (\%264. ((%8 ((%256 $2) (((\%263. (\%264. (((%257 (%81 %19)) 4110 ((%258 (%265 (\%266. %73))) (%259 (\%260. %73)))) ((%267 $1) ((%267 4111 $0) (\%3. %261)))))) $1) $0))) ((%8 ($3 $1)) ($3 $0)))))))) ((%65 4112 (%268 (\%269. (%262 (\%264. (%262 (\%270. ((%8 ((%256 $3) ((((\%269. 4113 (\%264. (\%270. (((%257 (%81 (%81 %19))) ((%258 (%265 (\%266. %73))) 4114 $2)) ((%267 $1) ((%267 $0) (\%3. %261))))))) $2) $1) $0))) ((%8 ($4 4115 $1)) ($4 $0)))))))))) (%268 (\%269. (%262 (\%264. ((%8 ((%256 $2) 4116 (((\%269. (\%264. (((%257 (%81 (%81 (%81 %19)))) ((%258 (%265 4117 (\%266. %73))) $1)) ((%267 $0) (\%3. %261))))) $1) $0))) ($3 4118 $0)))))))))) ($1 $0))))) ($0 $1)))))) $0)))`) 4119 val CTL_STRUCTURE_repfns = 4120 DT(["DISK_THM"], [], 4121 `((%8 (%271 (\%272. ((%273 (%274 (%275 $0))) $0)))) (%253 (\%276. 4122 ((%16 ((\%250. (%251 (\%252. ((%63 (%253 (\%250. ((%63 ((%65 (%254 4123 (\%255. ((%256 $1) ((\%255. (((%257 %19) ((%258 $0) (%259 (\%260. 4124 %73)))) (\%3. %261))) $0))))) ((%65 (%262 (\%263. (%262 (\%264. ((%8 4125 ((%256 $2) (((\%263. (\%264. (((%257 (%81 %19)) ((%258 (%265 (\%266. 4126 %73))) (%259 (\%260. %73)))) ((%267 $1) ((%267 $0) (\%3. %261)))))) 4127 $1) $0))) ((%8 ($3 $1)) ($3 $0)))))))) ((%65 (%268 (\%269. (%262 4128 (\%264. (%262 (\%270. ((%8 ((%256 $3) ((((\%269. (\%264. (\%270. 4129 (((%257 (%81 (%81 %19))) ((%258 (%265 (\%266. %73))) $2)) ((%267 $1) 4130 ((%267 $0) (\%3. %261))))))) $2) $1) $0))) ((%8 ($4 $1)) ($4 4131 $0)))))))))) (%268 (\%269. (%262 (\%264. ((%8 ((%256 $2) (((\%269. 4132 (\%264. (((%257 (%81 (%81 (%81 %19)))) ((%258 (%265 (\%266. %73))) 4133 $1)) ((%267 $0) (\%3. %261))))) $1) $0))) ($3 $0)))))))))) ($1 4134 $0))))) ($0 $1))))) $0)) ((%256 (%275 (%274 $0))) $0)))))`) 4135 val IL18_def = 4136 DT([], [], 4137 `((%277 %278) (\%255. (%274 ((\%255. (((%257 %19) ((%258 $0) (%259 4138 (\%260. %73)))) (\%3. %261))) $0))))`) 4139 val IL19_def = 4140 DT([], [], 4141 `((%279 %280) (\%281. (\%282. (%274 (((\%263. (\%264. (((%257 (%81 4142 %19)) ((%258 (%265 (\%266. %73))) (%259 (\%260. %73)))) ((%267 $1) 4143 ((%267 $0) (\%3. %261)))))) (%275 $1)) (%275 $0))))))`) 4144 val IL20_def = 4145 DT([], [], 4146 `((%283 %284) (\%269. (\%282. (\%285. (%274 ((((\%269. (\%264. 4147 (\%270. (((%257 (%81 (%81 %19))) ((%258 (%265 (\%266. %73))) $2)) 4148 ((%267 $1) ((%267 $0) (\%3. %261))))))) $2) (%275 $1)) (%275 4149 $0)))))))`) 4150 val IL21_def = 4151 DT([], [], 4152 `((%286 %287) (\%269. (\%282. (%274 (((\%269. (\%264. (((%257 (%81 4153 (%81 (%81 %19)))) ((%258 (%265 (\%266. %73))) $1)) ((%267 $0) (\%3. 4154 %261))))) $1) (%275 $0))))))`) 4155 val BLK = DT([], [], `((%277 %288) %278)`) 4156 val SC = DT([], [], `((%279 %289) %280)`) 4157 val CJ = DT([], [], `((%283 %290) %284)`) 4158 val TR = DT([], [], `((%286 %291) %287)`) 4159 val CTL_STRUCTURE_case_def = 4160 DT(["DISK_THM"], [], 4161 `((%8 (%292 (\%293. (%294 (\%295. (%296 (\%297. (%298 (\%299. (%300 4162 (\%255. ((%53 (((((%301 $4) $3) $2) $1) (%288 $0))) ($4 4163 $0))))))))))))) ((%8 (%292 (\%293. (%294 (\%295. (%296 (\%297. (%298 4164 (\%299. (%271 (\%281. (%271 (\%282. ((%53 (((((%301 $5) $4) $3) $2) 4165 ((%289 $1) $0))) (($4 $1) $0))))))))))))))) ((%8 (%292 (\%293. (%294 4166 (\%295. (%296 (\%297. (%298 (\%299. (%302 (\%269. (%271 (\%282. 4167 (%271 (\%285. ((%53 (((((%301 $6) $5) $4) $3) (((%290 $2) $1) $0))) 4168 ((($4 $2) $1) $0))))))))))))))))) (%292 (\%293. (%294 (\%295. (%296 4169 (\%297. (%298 (\%299. (%302 (\%269. (%271 (\%282. ((%53 (((((%301 4170 $5) $4) $3) $2) ((%291 $1) $0))) (($2 $1) $0)))))))))))))))))`) 4171 val CTL_STRUCTURE_size_def = 4172 DT(["DISK_THM"], [], 4173 `((%8 (%300 (\%255. ((%17 (%303 (%288 $0))) ((%104 (%5 (%6 %7))) 4174 ((%304 %241) $0)))))) ((%8 (%271 (\%281. (%271 (\%282. ((%17 (%303 4175 ((%289 $1) $0))) ((%104 (%5 (%6 %7))) ((%104 (%303 $1)) (%303 4176 $0))))))))) ((%8 (%302 (\%269. (%271 (\%282. (%271 (\%285. ((%17 4177 (%303 (((%290 $2) $1) $0))) ((%104 (%5 (%6 %7))) ((%104 ((%305 4178 (\%35. (\%306. ((%104 (%36 $1)) ((%307 (\%308. (\%309. ((%104 (%310 4179 $1)) (%103 $0))))) $0))))) $2)) ((%104 (%303 $1)) (%303 4180 $0)))))))))))) (%302 (\%269. (%271 (\%282. ((%17 (%303 ((%291 $1) 4181 $0))) ((%104 (%5 (%6 %7))) ((%104 ((%305 (\%35. (\%306. ((%104 (%36 4182 $1)) ((%307 (\%308. (\%309. ((%104 (%310 $1)) (%103 $0))))) $0))))) 4183 $1)) (%303 $0)))))))))))`) 4184 val pushL_def = 4185 DT([], [], 4186 `(%311 (\%312. (%14 (\%313. (%240 (\%314. ((%315 (((%316 $2) $1) 4187 $0)) (((%317 (%318 (((%319 (%320 (\%321. (\%106. (\%322. ((%323 4188 (((%317 $2) (%118 ((%117 $4) (%324 $1)))) ((%325 $5) $0))) ((%104 4189 $1) (%5 (%6 %7))))))))) ((%323 $2) %19)) (%326 ((%327 %112) $0))))) 4190 (%112 $1)) ((%328 ((%325 $2) (%112 $1))) (%329 (%330 $0)))))))))))`) 4191 val popL_def = 4192 DT([], [], 4193 `(%311 (\%312. (%14 (\%313. (%240 (\%314. ((%315 (((%331 $2) $1) 4194 $0)) (((%317 (%318 (((%319 (%320 (\%321. (\%106. (\%322. ((%323 4195 (((%317 $2) $0) ((%325 $5) (%118 ((%117 $4) (%332 ((%104 $1) (%5 (%6 4196 %7))))))))) ((%104 $1) (%5 (%6 %7))))))))) ((%323 $2) %19)) ((%327 4197 %112) $0)))) (%112 $1)) ((%333 ((%325 $2) (%112 $1))) (%329 (%330 4198 $0)))))))))))`) 4199 val mdecode_def = 4200 DT(["DISK_THM"], [], 4201 `((%8 (%311 (\%312. (%9 (\%334. (%237 (\%335. ((%315 ((%336 $2) 4202 ((%198 $1) $0))) (((%317 $2) (%111 $1)) ((%325 $2) (%116 4203 $0))))))))))) ((%8 (%311 (\%312. (%237 (\%337. (%9 (\%338. ((%315 4204 ((%336 $2) ((%199 $1) $0))) (((%317 $2) (%116 $1)) ((%325 $2) (%111 4205 $0))))))))))) ((%8 (%311 (\%312. (%9 (\%334. (%84 (\%339. ((%315 4206 ((%336 $2) ((%200 $1) $0))) (((%317 $2) (%111 $1)) ((%325 $2) (%119 4207 $0))))))))))) ((%8 (%311 (\%312. (%9 (\%334. (%9 (\%340. (%84 4208 (\%341. ((%315 ((%336 $3) (((%201 $2) $1) $0))) (((%317 $3) (%111 4209 $2)) ((%333 ((%325 $3) (%111 $1))) ((%325 $3) (%119 $0)))))))))))))) 4210 ((%8 (%311 (\%312. (%9 (\%334. (%9 (\%340. (%84 (\%341. ((%315 4211 ((%336 $3) (((%202 $2) $1) $0))) (((%317 $3) (%111 $2)) ((%328 4212 ((%325 $3) (%111 $1))) ((%325 $3) (%119 $0)))))))))))))) ((%8 (%311 4213 (\%312. (%9 (\%334. (%9 (\%340. (%84 (\%341. ((%315 ((%336 $3) 4214 (((%203 $2) $1) $0))) (((%317 $3) (%111 $2)) ((%328 ((%325 $3) (%119 4215 $0))) ((%325 $3) (%111 $1)))))))))))))) ((%8 (%311 (\%312. (%9 4216 (\%334. (%9 (\%340. (%9 (\%342. ((%315 ((%336 $3) (((%204 $2) $1) 4217 $0))) (((%317 $3) (%111 $2)) ((%343 ((%325 $3) (%111 $1))) ((%325 4218 $3) (%111 $0)))))))))))))) ((%8 (%311 (\%312. (%9 (\%334. (%9 4219 (\%340. (%84 (\%341. ((%315 ((%336 $3) (((%205 $2) $1) $0))) (((%317 4220 $3) (%111 $2)) ((%344 ((%325 $3) (%111 $1))) ((%325 $3) (%119 4221 $0)))))))))))))) ((%8 (%311 (\%312. (%9 (\%334. (%9 (\%340. (%84 4222 (\%341. ((%315 ((%336 $3) (((%206 $2) $1) $0))) (((%317 $3) (%111 4223 $2)) ((%345 ((%325 $3) (%111 $1))) ((%325 $3) (%119 $0)))))))))))))) 4224 ((%8 (%311 (\%312. (%9 (\%334. (%9 (\%340. (%84 (\%341. ((%315 4225 ((%336 $3) (((%207 $2) $1) $0))) (((%317 $3) (%111 $2)) ((%346 4226 ((%325 $3) (%111 $1))) ((%325 $3) (%119 $0)))))))))))))) ((%8 (%311 4227 (\%312. (%9 (\%334. (%9 (\%342. (%239 (\%347. ((%315 ((%336 $3) 4228 (((%208 $2) $1) $0))) (((%317 $3) (%111 $2)) ((%348 ((%325 $3) (%111 4229 $1))) (%349 $0))))))))))))) ((%8 (%311 (\%312. (%9 (\%334. (%9 4230 (\%342. (%239 (\%347. ((%315 ((%336 $3) (((%209 $2) $1) $0))) 4231 (((%317 $3) (%111 $2)) ((%350 ((%325 $3) (%111 $1))) (%349 4232 $0))))))))))))) ((%8 (%311 (\%312. (%9 (\%334. (%9 (\%342. (%239 4233 (\%347. ((%315 ((%336 $3) (((%210 $2) $1) $0))) (((%317 $3) (%111 4234 $2)) ((%351 ((%325 $3) (%111 $1))) (%349 $0))))))))))))) ((%8 (%311 4235 (\%312. (%9 (\%334. (%9 (\%342. (%239 (\%347. ((%315 ((%336 $3) 4236 (((%211 $2) $1) $0))) (((%317 $3) (%111 $2)) ((%123 ((%325 $3) (%111 4237 $1))) (%349 $0))))))))))))) ((%8 (%311 (\%312. (%14 (\%352. (%240 4238 (\%353. ((%315 ((%336 $2) ((%212 $1) $0))) (((%316 $2) $1) 4239 $0))))))))) (%311 (\%312. (%14 (\%352. (%240 (\%353. ((%315 ((%336 4240 $2) ((%213 $1) $0))) (((%331 $2) $1) $0)))))))))))))))))))))))`) 4241 val translate_assignment_def = 4242 DT(["DISK_THM"], [], 4243 `((%8 (%9 (\%334. (%84 (\%339. ((%354 (%355 ((%200 $1) $0))) ((%356 4244 ((%357 %358) ((%359 %360) %361))) ((%362 (%363 (%111 $1))) ((%364 4245 ((%365 (%119 $0)) %366)) %367))))))))) ((%8 (%9 (\%334. (%9 (\%340. 4246 (%84 (\%341. ((%354 (%355 (((%201 $2) $1) $0))) ((%356 ((%357 %368) 4247 ((%359 %360) %361))) ((%362 (%363 (%111 $2))) ((%364 ((%365 (%111 4248 $1)) ((%365 (%119 $0)) %366))) %367))))))))))) ((%8 (%9 (\%334. (%9 4249 (\%340. (%84 (\%341. ((%354 (%355 (((%202 $2) $1) $0))) ((%356 4250 ((%357 %369) ((%359 %360) %361))) ((%362 (%363 (%111 $2))) ((%364 4251 ((%365 (%111 $1)) ((%365 (%119 $0)) %366))) %367))))))))))) ((%8 (%9 4252 (\%334. (%9 (\%340. (%84 (\%341. ((%354 (%355 (((%203 $2) $1) $0))) 4253 ((%356 ((%357 %370) ((%359 %360) %361))) ((%362 (%363 (%111 $2))) 4254 ((%364 ((%365 (%111 $1)) ((%365 (%119 $0)) %366))) %367))))))))))) 4255 ((%8 (%9 (\%334. (%9 (\%340. (%9 (\%342. ((%354 (%355 (((%204 $2) 4256 $1) $0))) ((%356 ((%357 %371) ((%359 %360) %361))) ((%362 (%363 4257 (%111 $2))) ((%364 ((%365 (%111 $1)) ((%365 (%111 $0)) %366))) 4258 %367))))))))))) ((%8 (%9 (\%334. (%9 (\%340. (%84 (\%341. ((%354 4259 (%355 (((%205 $2) $1) $0))) ((%356 ((%357 %372) ((%359 %360) %361))) 4260 ((%362 (%363 (%111 $2))) ((%364 ((%365 (%111 $1)) ((%365 (%119 $0)) 4261 %366))) %367))))))))))) ((%8 (%9 (\%334. (%9 (\%340. (%84 (\%341. 4262 ((%354 (%355 (((%206 $2) $1) $0))) ((%356 ((%357 %373) ((%359 %360) 4263 %361))) ((%362 (%363 (%111 $2))) ((%364 ((%365 (%111 $1)) ((%365 4264 (%119 $0)) %366))) %367))))))))))) ((%8 (%9 (\%334. (%9 (\%340. (%84 4265 (\%341. ((%354 (%355 (((%207 $2) $1) $0))) ((%356 ((%357 %374) 4266 ((%359 %360) %361))) ((%362 (%363 (%111 $2))) ((%364 ((%365 (%111 4267 $1)) ((%365 (%119 $0)) %366))) %367))))))))))) ((%8 (%9 (\%334. (%9 4268 (\%342. (%239 (\%347. ((%354 (%355 (((%208 $2) $1) $0))) ((%356 4269 ((%357 %375) ((%359 %360) %361))) ((%362 (%363 (%111 $2))) ((%364 4270 ((%365 (%111 $1)) ((%365 (%122 (%376 $0))) %366))) %367))))))))))) 4271 ((%8 (%9 (\%334. (%9 (\%342. (%239 (\%347. ((%354 (%355 (((%209 $2) 4272 $1) $0))) ((%356 ((%357 %377) ((%359 %360) %361))) ((%362 (%363 4273 (%111 $2))) ((%364 ((%365 (%111 $1)) ((%365 (%122 (%376 $0))) 4274 %366))) %367))))))))))) ((%8 (%9 (\%334. (%9 (\%342. (%239 (\%347. 4275 ((%354 (%355 (((%210 $2) $1) $0))) ((%356 ((%357 %378) ((%359 %360) 4276 %361))) ((%362 (%363 (%111 $2))) ((%364 ((%365 (%111 $1)) ((%365 4277 (%122 (%376 $0))) %366))) %367))))))))))) ((%8 (%9 (\%334. (%9 4278 (\%342. (%239 (\%347. ((%354 (%355 (((%211 $2) $1) $0))) ((%356 4279 ((%357 %379) ((%359 %360) %361))) ((%362 (%363 (%111 $2))) ((%364 4280 ((%365 (%111 $1)) ((%365 (%122 (%376 $0))) %366))) %367))))))))))) 4281 ((%8 (%9 (\%334. (%237 (\%335. ((%354 (%355 ((%198 $1) $0))) ((%356 4282 ((%357 %380) ((%359 %360) %361))) ((%362 (%363 (%111 $1))) ((%364 4283 ((%365 (%116 $0)) %366)) %367))))))))) ((%8 (%237 (\%337. (%9 4284 (\%338. ((%354 (%355 ((%199 $1) $0))) ((%356 ((%357 %381) ((%359 4285 %360) %361))) ((%362 (%363 (%111 $0))) ((%364 ((%365 (%116 $1)) 4286 %366)) %367))))))))) ((%8 (%14 (\%382. (%240 (\%353. ((%354 (%355 4287 ((%212 $1) $0))) ((%356 ((%357 %383) ((%359 %360) %361))) ((%362 4288 (%363 (%384 $1))) ((%364 ((%327 %112) $0)) %367))))))))) (%14 4289 (\%382. (%240 (\%353. ((%354 (%355 ((%213 $1) $0))) ((%356 ((%357 4290 %385) ((%359 %360) %361))) ((%362 (%363 (%384 $1))) ((%364 ((%327 4291 %112) $0)) %367)))))))))))))))))))))))`) 4292 val translate_condition_def = 4293 DT(["DISK_THM"], [], 4294 `(%9 (\%109. (%37 (\%386. (%84 (\%387. ((%388 (%389 ((%390 $2) 4295 ((%391 $1) $0)))) ((%392 (%111 $2)) ((%393 $1) (%119 $0))))))))))`) 4296 val eval_il_cond_def = 4297 DT([], [], `(%302 (\%394. ((%395 (%396 $0)) (%397 (%398 $0)))))`) 4298 val translate_primitive_def = 4299 DT([], [], 4300 `((%399 %400) ((%401 (%402 (\%403. ((%8 (%404 $0)) ((%8 (%169 4301 (\%405. (%300 (\%406. (($2 (%288 $0)) (%288 ((%407 $1) $0)))))))) 4302 ((%8 (%271 (\%408. (%271 (\%409. (($2 $0) ((%289 $1) $0))))))) ((%8 4303 (%271 (\%409. (%271 (\%408. (($2 $0) ((%289 $0) $1))))))) ((%8 (%271 4304 (\%410. (%302 (\%394. (%271 (\%411. (($3 $0) (((%290 $1) $0) 4305 $2))))))))) ((%8 (%271 (\%411. (%302 (\%394. (%271 (\%410. (($3 $0) 4306 (((%290 $1) $2) $0))))))))) (%302 (\%394. (%271 (\%412. (($2 $0) 4307 ((%291 $1) $0))))))))))))))) (\%413. (\%272. (((((%414 (\%266. 4308 (((%415 (%416 %417)) (\%405. (\%406. (%416 ((%418 (%355 $1)) ($4 4309 (%288 $0))))))) $0))) (\%408. (\%409. (%416 ((%419 ($3 $1)) ($3 4310 $0)))))) (\%394. (\%411. (\%410. (%416 (((%420 (%398 $2)) ($4 $1)) 4311 ($4 $0))))))) (\%421. (\%412. (%416 ((%422 (%398 $1)) ($3 $0)))))) 4312 $0)))))`) 4313 val run_arm_def = 4314 DT(["DISK_THM"], [], 4315 `(%423 (\%424. (%14 (\%425. (%426 (\%427. (%311 (\%312. (%428 4316 (\%429. ((%430 ((%431 $4) ((%432 ((%433 $3) ((%434 $2) $1))) $0))) 4317 (((%435 (((%436 $4) (\%106. %437)) $3)) ((%104 $3) (%438 $4))) 4318 ((%432 ((%433 $3) ((%434 $2) $1))) $0)))))))))))))`) 4319 val run_ir_def = 4320 DT([], [], 4321 `(%271 (\%439. (%311 (\%312. ((%315 ((%440 $1) $0)) (%441 ((%431 4322 (%400 $1)) ((%432 ((%433 %19) ((%434 (%329 %19)) $0))) 4323 %442))))))))`) 4324 val WELL_FORMED_def = 4325 DT(["DISK_THM"], [], 4326 `((%8 (%300 (\%406. ((%16 (%443 (%288 $0))) (%444 (%400 (%288 4327 $0))))))) ((%8 (%271 (\%408. (%271 (\%409. ((%16 (%443 ((%289 $1) 4328 $0))) ((%8 (%444 (%400 ((%289 $1) $0)))) ((%8 (%443 $1)) (%443 4329 $0))))))))) ((%8 (%302 (\%394. (%271 (\%408. (%271 (\%409. ((%16 4330 (%443 (((%290 $2) $1) $0))) ((%8 (%444 (%400 (((%290 $2) $1) $0)))) 4331 ((%8 (%443 $1)) (%443 $0))))))))))) (%302 (\%394. (%271 (\%408. 4332 ((%16 (%443 ((%291 $1) $0))) ((%8 (%444 (%400 ((%291 $1) $0)))) ((%8 4333 (%443 $0)) (%445 ((%446 (%398 $1)) (%400 $0)))))))))))))`) 4334 val WELL_FORMED_SUB_def = 4335 DT(["DISK_THM"], [], 4336 `((%8 (%300 (\%406. ((%16 (%447 (%288 $0))) %73)))) ((%8 (%271 4337 (\%408. (%271 (\%409. ((%16 (%447 ((%289 $1) $0))) ((%8 (%443 $1)) 4338 (%443 $0)))))))) ((%8 (%302 (\%394. (%271 (\%408. (%271 (\%409. 4339 ((%16 (%447 (((%290 $2) $1) $0))) ((%8 (%443 $1)) (%443 $0)))))))))) 4340 (%302 (\%394. (%271 (\%408. ((%16 (%447 ((%291 $1) $0))) ((%8 (%443 4341 $0)) (%445 ((%446 (%398 $1)) (%400 $0))))))))))))`) 4342 val num2MREG_MREG2num = 4343 DT(["DISK_THM"], [], `(%9 (\%10. ((%11 (%12 (%13 $0))) $0)))`) 4344 val MREG2num_num2MREG = 4345 DT(["DISK_THM"], [], 4346 `(%14 (\%15. ((%16 ((%4 $0) (%5 (%6 (%6 (%6 (%6 %7))))))) ((%17 (%13 4347 (%12 $0))) $0))))`) 4348 val num2MREG_11 = 4349 DT(["DISK_THM"], [], 4350 `(%14 (\%15. (%14 (\%448. ((%63 ((%4 $1) (%5 (%6 (%6 (%6 (%6 4351 %7))))))) ((%63 ((%4 $0) (%5 (%6 (%6 (%6 (%6 %7))))))) ((%16 ((%11 4352 (%12 $1)) (%12 $0))) ((%17 $1) $0))))))))`) 4353 val MREG2num_11 = 4354 DT(["DISK_THM"], [], 4355 `(%9 (\%10. (%9 (\%449. ((%16 ((%17 (%13 $1)) (%13 $0))) ((%11 $1) 4356 $0))))))`) 4357 val num2MREG_ONTO = 4358 DT(["DISK_THM"], [], 4359 `(%9 (\%10. (%165 (\%15. ((%8 ((%11 $1) (%12 $0))) ((%4 $0) (%5 (%6 4360 (%6 (%6 (%6 %7)))))))))))`) 4361 val MREG2num_ONTO = 4362 DT(["DISK_THM"], [], 4363 `(%14 (\%15. ((%16 ((%4 $0) (%5 (%6 (%6 (%6 (%6 %7))))))) (%66 4364 (\%10. ((%17 $1) (%13 $0)))))))`) 4365 val num2MREG_thm = 4366 DT([], [], 4367 `((%8 ((%11 (%12 %19)) %18)) ((%8 ((%11 (%12 (%5 (%6 %7)))) %20)) 4368 ((%8 ((%11 (%12 (%5 (%22 %7)))) %21)) ((%8 ((%11 (%12 (%5 (%6 (%6 4369 %7))))) %23)) ((%8 ((%11 (%12 (%5 (%22 (%6 %7))))) %24)) ((%8 ((%11 4370 (%12 (%5 (%6 (%22 %7))))) %25)) ((%8 ((%11 (%12 (%5 (%22 (%22 4371 %7))))) %26)) ((%8 ((%11 (%12 (%5 (%6 (%6 (%6 %7)))))) %27)) ((%8 4372 ((%11 (%12 (%5 (%22 (%6 (%6 %7)))))) %28)) ((%8 ((%11 (%12 (%5 (%6 4373 (%22 (%6 %7)))))) %29)) ((%8 ((%11 (%12 (%5 (%22 (%22 (%6 %7)))))) 4374 %30)) ((%8 ((%11 (%12 (%5 (%6 (%6 (%22 %7)))))) %31)) ((%8 ((%11 4375 (%12 (%5 (%22 (%6 (%22 %7)))))) %32)) ((%8 ((%11 (%12 (%5 (%6 (%22 4376 (%22 %7)))))) %33)) ((%11 (%12 (%5 (%22 (%22 (%22 %7)))))) 4377 %34)))))))))))))))`) 4378 val MREG2num_thm = 4379 DT(["DISK_THM"], [], 4380 `((%8 ((%17 (%13 %18)) %19)) ((%8 ((%17 (%13 %20)) (%5 (%6 %7)))) 4381 ((%8 ((%17 (%13 %21)) (%5 (%22 %7)))) ((%8 ((%17 (%13 %23)) (%5 (%6 4382 (%6 %7))))) ((%8 ((%17 (%13 %24)) (%5 (%22 (%6 %7))))) ((%8 ((%17 4383 (%13 %25)) (%5 (%6 (%22 %7))))) ((%8 ((%17 (%13 %26)) (%5 (%22 (%22 4384 %7))))) ((%8 ((%17 (%13 %27)) (%5 (%6 (%6 (%6 %7)))))) ((%8 ((%17 4385 (%13 %28)) (%5 (%22 (%6 (%6 %7)))))) ((%8 ((%17 (%13 %29)) (%5 (%6 4386 (%22 (%6 %7)))))) ((%8 ((%17 (%13 %30)) (%5 (%22 (%22 (%6 %7)))))) 4387 ((%8 ((%17 (%13 %31)) (%5 (%6 (%6 (%22 %7)))))) ((%8 ((%17 (%13 4388 %32)) (%5 (%22 (%6 (%22 %7)))))) ((%8 ((%17 (%13 %33)) (%5 (%6 (%22 4389 (%22 %7)))))) ((%17 (%13 %34)) (%5 (%22 (%22 (%22 4390 %7)))))))))))))))))))`) 4391 val MREG_EQ_MREG = 4392 DT(["DISK_THM"], [], 4393 `(%9 (\%10. (%9 (\%449. ((%16 ((%11 $1) $0)) ((%17 (%13 $1)) (%13 4394 $0)))))))`) 4395 val MREG_case_def = 4396 DT(["DISK_THM"], [], 4397 `((%8 (%37 (\%38. (%37 (\%39. (%37 (\%40. (%37 (\%41. (%37 (\%42. 4398 (%37 (\%43. (%37 (\%44. (%37 (\%45. (%37 (\%46. (%37 (\%47. (%37 4399 (\%48. (%37 (\%49. (%37 (\%50. (%37 (\%51. (%37 (\%52. ((%53 4400 ((((((((((((((((%54 $14) $13) $12) $11) $10) $9) $8) $7) $6) $5) $4) 4401 $3) $2) $1) $0) %18)) $14)))))))))))))))))))))))))))))))) ((%8 (%37 4402 (\%38. (%37 (\%39. (%37 (\%40. (%37 (\%41. (%37 (\%42. (%37 (\%43. 4403 (%37 (\%44. (%37 (\%45. (%37 (\%46. (%37 (\%47. (%37 (\%48. (%37 4404 (\%49. (%37 (\%50. (%37 (\%51. (%37 (\%52. ((%53 ((((((((((((((((%54 4405 $14) $13) $12) $11) $10) $9) $8) $7) $6) $5) $4) $3) $2) $1) $0) 4406 %20)) $13)))))))))))))))))))))))))))))))) ((%8 (%37 (\%38. (%37 4407 (\%39. (%37 (\%40. (%37 (\%41. (%37 (\%42. (%37 (\%43. (%37 (\%44. 4408 (%37 (\%45. (%37 (\%46. (%37 (\%47. (%37 (\%48. (%37 (\%49. (%37 4409 (\%50. (%37 (\%51. (%37 (\%52. ((%53 ((((((((((((((((%54 $14) $13) 4410 $12) $11) $10) $9) $8) $7) $6) $5) $4) $3) $2) $1) $0) %21)) 4411 $12)))))))))))))))))))))))))))))))) ((%8 (%37 (\%38. (%37 (\%39. 4412 (%37 (\%40. (%37 (\%41. (%37 (\%42. (%37 (\%43. (%37 (\%44. (%37 4413 (\%45. (%37 (\%46. (%37 (\%47. (%37 (\%48. (%37 (\%49. (%37 (\%50. 4414 (%37 (\%51. (%37 (\%52. ((%53 ((((((((((((((((%54 $14) $13) $12) 4415 $11) $10) $9) $8) $7) $6) $5) $4) $3) $2) $1) $0) %23)) 4416 $11)))))))))))))))))))))))))))))))) ((%8 (%37 (\%38. (%37 (\%39. 4417 (%37 (\%40. (%37 (\%41. (%37 (\%42. (%37 (\%43. (%37 (\%44. (%37 4418 (\%45. (%37 (\%46. (%37 (\%47. (%37 (\%48. (%37 (\%49. (%37 (\%50. 4419 (%37 (\%51. (%37 (\%52. ((%53 ((((((((((((((((%54 $14) $13) $12) 4420 $11) $10) $9) $8) $7) $6) $5) $4) $3) $2) $1) $0) %24)) 4421 $10)))))))))))))))))))))))))))))))) ((%8 (%37 (\%38. (%37 (\%39. 4422 (%37 (\%40. (%37 (\%41. (%37 (\%42. (%37 (\%43. (%37 (\%44. (%37 4423 (\%45. (%37 (\%46. (%37 (\%47. (%37 (\%48. (%37 (\%49. (%37 (\%50. 4424 (%37 (\%51. (%37 (\%52. ((%53 ((((((((((((((((%54 $14) $13) $12) 4425 $11) $10) $9) $8) $7) $6) $5) $4) $3) $2) $1) $0) %25)) 4426 $9)))))))))))))))))))))))))))))))) ((%8 (%37 (\%38. (%37 (\%39. (%37 4427 (\%40. (%37 (\%41. (%37 (\%42. (%37 (\%43. (%37 (\%44. (%37 (\%45. 4428 (%37 (\%46. (%37 (\%47. (%37 (\%48. (%37 (\%49. (%37 (\%50. (%37 4429 (\%51. (%37 (\%52. ((%53 ((((((((((((((((%54 $14) $13) $12) $11) 4430 $10) $9) $8) $7) $6) $5) $4) $3) $2) $1) $0) %26)) 4431 $8)))))))))))))))))))))))))))))))) ((%8 (%37 (\%38. (%37 (\%39. (%37 4432 (\%40. (%37 (\%41. (%37 (\%42. (%37 (\%43. (%37 (\%44. (%37 (\%45. 4433 (%37 (\%46. (%37 (\%47. (%37 (\%48. (%37 (\%49. (%37 (\%50. (%37 4434 (\%51. (%37 (\%52. ((%53 ((((((((((((((((%54 $14) $13) $12) $11) 4435 $10) $9) $8) $7) $6) $5) $4) $3) $2) $1) $0) %27)) 4436 $7)))))))))))))))))))))))))))))))) ((%8 (%37 (\%38. (%37 (\%39. (%37 4437 (\%40. (%37 (\%41. (%37 (\%42. (%37 (\%43. (%37 (\%44. (%37 (\%45. 4438 (%37 (\%46. (%37 (\%47. (%37 (\%48. (%37 (\%49. (%37 (\%50. (%37 4439 (\%51. (%37 (\%52. ((%53 ((((((((((((((((%54 $14) $13) $12) $11) 4440 $10) $9) $8) $7) $6) $5) $4) $3) $2) $1) $0) %28)) 4441 $6)))))))))))))))))))))))))))))))) ((%8 (%37 (\%38. (%37 (\%39. (%37 4442 (\%40. (%37 (\%41. (%37 (\%42. (%37 (\%43. (%37 (\%44. (%37 (\%45. 4443 (%37 (\%46. (%37 (\%47. (%37 (\%48. (%37 (\%49. (%37 (\%50. (%37 4444 (\%51. (%37 (\%52. ((%53 ((((((((((((((((%54 $14) $13) $12) $11) 4445 $10) $9) $8) $7) $6) $5) $4) $3) $2) $1) $0) %29)) 4446 $5)))))))))))))))))))))))))))))))) ((%8 (%37 (\%38. (%37 (\%39. (%37 4447 (\%40. (%37 (\%41. (%37 (\%42. (%37 (\%43. (%37 (\%44. (%37 (\%45. 4448 (%37 (\%46. (%37 (\%47. (%37 (\%48. (%37 (\%49. (%37 (\%50. (%37 4449 (\%51. (%37 (\%52. ((%53 ((((((((((((((((%54 $14) $13) $12) $11) 4450 $10) $9) $8) $7) $6) $5) $4) $3) $2) $1) $0) %30)) 4451 $4)))))))))))))))))))))))))))))))) ((%8 (%37 (\%38. (%37 (\%39. (%37 4452 (\%40. (%37 (\%41. (%37 (\%42. (%37 (\%43. (%37 (\%44. (%37 (\%45. 4453 (%37 (\%46. (%37 (\%47. (%37 (\%48. (%37 (\%49. (%37 (\%50. (%37 4454 (\%51. (%37 (\%52. ((%53 ((((((((((((((((%54 $14) $13) $12) $11) 4455 $10) $9) $8) $7) $6) $5) $4) $3) $2) $1) $0) %31)) 4456 $3)))))))))))))))))))))))))))))))) ((%8 (%37 (\%38. (%37 (\%39. (%37 4457 (\%40. (%37 (\%41. (%37 (\%42. (%37 (\%43. (%37 (\%44. (%37 (\%45. 4458 (%37 (\%46. (%37 (\%47. (%37 (\%48. (%37 (\%49. (%37 (\%50. (%37 4459 (\%51. (%37 (\%52. ((%53 ((((((((((((((((%54 $14) $13) $12) $11) 4460 $10) $9) $8) $7) $6) $5) $4) $3) $2) $1) $0) %32)) 4461 $2)))))))))))))))))))))))))))))))) ((%8 (%37 (\%38. (%37 (\%39. (%37 4462 (\%40. (%37 (\%41. (%37 (\%42. (%37 (\%43. (%37 (\%44. (%37 (\%45. 4463 (%37 (\%46. (%37 (\%47. (%37 (\%48. (%37 (\%49. (%37 (\%50. (%37 4464 (\%51. (%37 (\%52. ((%53 ((((((((((((((((%54 $14) $13) $12) $11) 4465 $10) $9) $8) $7) $6) $5) $4) $3) $2) $1) $0) %33)) 4466 $1)))))))))))))))))))))))))))))))) (%37 (\%38. (%37 (\%39. (%37 4467 (\%40. (%37 (\%41. (%37 (\%42. (%37 (\%43. (%37 (\%44. (%37 (\%45. 4468 (%37 (\%46. (%37 (\%47. (%37 (\%48. (%37 (\%49. (%37 (\%50. (%37 4469 (\%51. (%37 (\%52. ((%53 ((((((((((((((((%54 $14) $13) $12) $11) 4470 $10) $9) $8) $7) $6) $5) $4) $3) $2) $1) $0) %34)) 4471 $0)))))))))))))))))))))))))))))))))))))))))))))`) 4472 val datatype_MREG = 4473 DT(["DISK_THM"], [], 4474 `(%450 (((((((((((((((%451 %18) %20) %21) %23) %24) %25) %26) %27) 4475 %28) %29) %30) %31) %32) %33) %34))`) 4476 val MREG_distinct = 4477 DT(["DISK_THM"], [], 4478 `((%8 (%452 ((%11 %18) %20))) ((%8 (%452 ((%11 %18) %21))) ((%8 4479 (%452 ((%11 %18) %23))) ((%8 (%452 ((%11 %18) %24))) ((%8 (%452 4480 ((%11 %18) %25))) ((%8 (%452 ((%11 %18) %26))) ((%8 (%452 ((%11 %18) 4481 %27))) ((%8 (%452 ((%11 %18) %28))) ((%8 (%452 ((%11 %18) %29))) 4482 ((%8 (%452 ((%11 %18) %30))) ((%8 (%452 ((%11 %18) %31))) ((%8 (%452 4483 ((%11 %18) %32))) ((%8 (%452 ((%11 %18) %33))) ((%8 (%452 ((%11 %18) 4484 %34))) ((%8 (%452 ((%11 %20) %21))) ((%8 (%452 ((%11 %20) %23))) 4485 ((%8 (%452 ((%11 %20) %24))) ((%8 (%452 ((%11 %20) %25))) ((%8 (%452 4486 ((%11 %20) %26))) ((%8 (%452 ((%11 %20) %27))) ((%8 (%452 ((%11 %20) 4487 %28))) ((%8 (%452 ((%11 %20) %29))) ((%8 (%452 ((%11 %20) %30))) 4488 ((%8 (%452 ((%11 %20) %31))) ((%8 (%452 ((%11 %20) %32))) ((%8 (%452 4489 ((%11 %20) %33))) ((%8 (%452 ((%11 %20) %34))) ((%8 (%452 ((%11 %21) 4490 %23))) ((%8 (%452 ((%11 %21) %24))) ((%8 (%452 ((%11 %21) %25))) 4491 ((%8 (%452 ((%11 %21) %26))) ((%8 (%452 ((%11 %21) %27))) ((%8 (%452 4492 ((%11 %21) %28))) ((%8 (%452 ((%11 %21) %29))) ((%8 (%452 ((%11 %21) 4493 %30))) ((%8 (%452 ((%11 %21) %31))) ((%8 (%452 ((%11 %21) %32))) 4494 ((%8 (%452 ((%11 %21) %33))) ((%8 (%452 ((%11 %21) %34))) ((%8 (%452 4495 ((%11 %23) %24))) ((%8 (%452 ((%11 %23) %25))) ((%8 (%452 ((%11 %23) 4496 %26))) ((%8 (%452 ((%11 %23) %27))) ((%8 (%452 ((%11 %23) %28))) 4497 ((%8 (%452 ((%11 %23) %29))) ((%8 (%452 ((%11 %23) %30))) ((%8 (%452 4498 ((%11 %23) %31))) ((%8 (%452 ((%11 %23) %32))) ((%8 (%452 ((%11 %23) 4499 %33))) ((%8 (%452 ((%11 %23) %34))) ((%8 (%452 ((%11 %24) %25))) 4500 ((%8 (%452 ((%11 %24) %26))) ((%8 (%452 ((%11 %24) %27))) ((%8 (%452 4501 ((%11 %24) %28))) ((%8 (%452 ((%11 %24) %29))) ((%8 (%452 ((%11 %24) 4502 %30))) ((%8 (%452 ((%11 %24) %31))) ((%8 (%452 ((%11 %24) %32))) 4503 ((%8 (%452 ((%11 %24) %33))) ((%8 (%452 ((%11 %24) %34))) ((%8 (%452 4504 ((%11 %25) %26))) ((%8 (%452 ((%11 %25) %27))) ((%8 (%452 ((%11 %25) 4505 %28))) ((%8 (%452 ((%11 %25) %29))) ((%8 (%452 ((%11 %25) %30))) 4506 ((%8 (%452 ((%11 %25) %31))) ((%8 (%452 ((%11 %25) %32))) ((%8 (%452 4507 ((%11 %25) %33))) ((%8 (%452 ((%11 %25) %34))) ((%8 (%452 ((%11 %26) 4508 %27))) ((%8 (%452 ((%11 %26) %28))) ((%8 (%452 ((%11 %26) %29))) 4509 ((%8 (%452 ((%11 %26) %30))) ((%8 (%452 ((%11 %26) %31))) ((%8 (%452 4510 ((%11 %26) %32))) ((%8 (%452 ((%11 %26) %33))) ((%8 (%452 ((%11 %26) 4511 %34))) ((%8 (%452 ((%11 %27) %28))) ((%8 (%452 ((%11 %27) %29))) 4512 ((%8 (%452 ((%11 %27) %30))) ((%8 (%452 ((%11 %27) %31))) ((%8 (%452 4513 ((%11 %27) %32))) ((%8 (%452 ((%11 %27) %33))) ((%8 (%452 ((%11 %27) 4514 %34))) ((%8 (%452 ((%11 %28) %29))) ((%8 (%452 ((%11 %28) %30))) 4515 ((%8 (%452 ((%11 %28) %31))) ((%8 (%452 ((%11 %28) %32))) ((%8 (%452 4516 ((%11 %28) %33))) ((%8 (%452 ((%11 %28) %34))) ((%8 (%452 ((%11 %29) 4517 %30))) ((%8 (%452 ((%11 %29) %31))) ((%8 (%452 ((%11 %29) %32))) 4518 ((%8 (%452 ((%11 %29) %33))) ((%8 (%452 ((%11 %29) %34))) ((%8 (%452 4519 ((%11 %30) %31))) ((%8 (%452 ((%11 %30) %32))) ((%8 (%452 ((%11 %30) 4520 %33))) ((%8 (%452 ((%11 %30) %34))) ((%8 (%452 ((%11 %31) %32))) 4521 ((%8 (%452 ((%11 %31) %33))) ((%8 (%452 ((%11 %31) %34))) ((%8 (%452 4522 ((%11 %32) %33))) ((%8 (%452 ((%11 %32) %34))) (%452 ((%11 %33) 4523 %34))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))`) 4524 val MREG_case_cong = 4525 DT(["DISK_THM"], [], 4526 `(%9 (\%453. (%9 (\%454. (%37 (\%38. (%37 (\%39. (%37 (\%40. (%37 4527 (\%41. (%37 (\%42. (%37 (\%43. (%37 (\%44. (%37 (\%45. (%37 (\%46. 4528 (%37 (\%47. (%37 (\%48. (%37 (\%49. (%37 (\%50. (%37 (\%51. (%37 4529 (\%52. ((%63 ((%8 ((%11 $16) $15)) ((%8 ((%63 ((%11 $15) %18)) ((%53 4530 $14) %455))) ((%8 ((%63 ((%11 $15) %20)) ((%53 $13) %456))) ((%8 4531 ((%63 ((%11 $15) %21)) ((%53 $12) %457))) ((%8 ((%63 ((%11 $15) 4532 %23)) ((%53 $11) %458))) ((%8 ((%63 ((%11 $15) %24)) ((%53 $10) 4533 %459))) ((%8 ((%63 ((%11 $15) %25)) ((%53 $9) %460))) ((%8 ((%63 4534 ((%11 $15) %26)) ((%53 $8) %461))) ((%8 ((%63 ((%11 $15) %27)) ((%53 4535 $7) %462))) ((%8 ((%63 ((%11 $15) %28)) ((%53 $6) %463))) ((%8 ((%63 4536 ((%11 $15) %29)) ((%53 $5) %464))) ((%8 ((%63 ((%11 $15) %30)) ((%53 4537 $4) %465))) ((%8 ((%63 ((%11 $15) %31)) ((%53 $3) %466))) ((%8 ((%63 4538 ((%11 $15) %32)) ((%53 $2) %467))) ((%8 ((%63 ((%11 $15) %33)) ((%53 4539 $1) %468))) ((%63 ((%11 $15) %34)) ((%53 $0) %469)))))))))))))))))) 4540 ((%53 ((((((((((((((((%54 $14) $13) $12) $11) $10) $9) $8) $7) $6) 4541 $5) $4) $3) $2) $1) $0) $16)) ((((((((((((((((%54 %455) %456) %457) 4542 %458) %459) %460) %461) %462) %463) %464) %465) %466) %467) %468) 4543 %469) $15)))))))))))))))))))))))))))))))))))))`) 4544 val MREG_nchotomy = 4545 DT(["DISK_THM"], [], 4546 `(%9 (\%10. ((%65 ((%11 $0) %18)) ((%65 ((%11 $0) %20)) ((%65 ((%11 4547 $0) %21)) ((%65 ((%11 $0) %23)) ((%65 ((%11 $0) %24)) ((%65 ((%11 4548 $0) %25)) ((%65 ((%11 $0) %26)) ((%65 ((%11 $0) %27)) ((%65 ((%11 4549 $0) %28)) ((%65 ((%11 $0) %29)) ((%65 ((%11 $0) %30)) ((%65 ((%11 4550 $0) %31)) ((%65 ((%11 $0) %32)) ((%65 ((%11 $0) %33)) ((%11 $0) 4551 %34)))))))))))))))))`) 4552 val MREG_Axiom = 4553 DT(["DISK_THM"], [], 4554 `(%37 (\%470. (%37 (\%471. (%37 (\%472. (%37 (\%473. (%37 (\%474. 4555 (%37 (\%475. (%37 (\%476. (%37 (\%477. (%37 (\%478. (%37 (\%479. 4556 (%37 (\%480. (%37 (\%481. (%37 (\%482. (%37 (\%483. (%37 (\%484. 4557 (%485 (\%97. ((%8 ((%53 ($0 %18)) $15)) ((%8 ((%53 ($0 %20)) $14)) 4558 ((%8 ((%53 ($0 %21)) $13)) ((%8 ((%53 ($0 %23)) $12)) ((%8 ((%53 ($0 4559 %24)) $11)) ((%8 ((%53 ($0 %25)) $10)) ((%8 ((%53 ($0 %26)) $9)) 4560 ((%8 ((%53 ($0 %27)) $8)) ((%8 ((%53 ($0 %28)) $7)) ((%8 ((%53 ($0 4561 %29)) $6)) ((%8 ((%53 ($0 %30)) $5)) ((%8 ((%53 ($0 %31)) $4)) ((%8 4562 ((%53 ($0 %32)) $3)) ((%8 ((%53 ($0 %33)) $2)) ((%53 ($0 %34)) 4563 $1)))))))))))))))))))))))))))))))))))))))))))))))`) 4564 val MREG_induction = 4565 DT(["DISK_THM"], [], 4566 `(%486 (\%487. ((%63 ((%8 ($0 %18)) ((%8 ($0 %20)) ((%8 ($0 %30)) 4567 ((%8 ($0 %31)) ((%8 ($0 %32)) ((%8 ($0 %33)) ((%8 ($0 %34)) ((%8 ($0 4568 %21)) ((%8 ($0 %23)) ((%8 ($0 %24)) ((%8 ($0 %25)) ((%8 ($0 %26)) 4569 ((%8 ($0 %27)) ((%8 ($0 %28)) ($0 %29)))))))))))))))) (%9 (\%10. ($1 4570 $0))))))`) 4571 val datatype_MEXP = DT(["DISK_THM"], [], `(%450 ((%488 %94) %95))`) 4572 val MEXP_11 = 4573 DT(["DISK_THM"], [], 4574 `((%8 (%9 (\%10. (%9 (\%449. ((%16 ((%86 (%94 $1)) (%94 $0))) ((%11 4575 $1) $0))))))) (%101 (\%78. (%102 (\%80. (%101 (\%489. (%102 (\%490. 4576 ((%16 ((%86 ((%95 $3) $2)) ((%95 $1) $0))) ((%8 ((%491 $3) $1)) 4577 ((%492 $2) $0))))))))))))`) 4578 val MEXP_distinct = 4579 DT(["DISK_THM"], [], 4580 `(%102 (\%80. (%101 (\%78. (%9 (\%10. (%452 ((%86 (%94 $0)) ((%95 4581 $1) $2)))))))))`) 4582 val MEXP_case_cong = 4583 DT(["DISK_THM"], [], 4584 `(%84 (\%493. (%84 (\%494. (%96 (\%97. (%98 (\%99. ((%63 ((%8 ((%86 4585 $3) $2)) ((%8 (%9 (\%10. ((%63 ((%86 $3) (%94 $0))) ((%53 ($2 $0)) 4586 (%495 $0)))))) (%101 (\%78. (%102 (\%80. ((%63 ((%86 $4) ((%95 $1) 4587 $0))) ((%53 (($2 $1) $0)) ((%496 $1) $0)))))))))) ((%53 (((%100 $1) 4588 $0) $3)) (((%100 %495) %496) $2)))))))))))`) 4589 val MEXP_nchotomy = 4590 DT(["DISK_THM"], [], 4591 `(%84 (\%493. ((%65 (%66 (\%453. ((%86 $1) (%94 $0))))) (%77 (\%497. 4592 (%79 (\%498. ((%86 $2) ((%95 $1) $0)))))))))`) 4593 val MEXP_Axiom = 4594 DT(["DISK_THM"], [], 4595 `(%96 (\%499. (%98 (\%99. (%500 (\%501. ((%8 (%9 (\%10. ((%53 ($1 4596 (%94 $0))) ($3 $0))))) (%101 (\%78. (%102 (\%80. ((%53 ($2 ((%95 $1) 4597 $0))) (($3 $1) $0)))))))))))))`) 4598 val MEXP_induction = 4599 DT(["DISK_THM"], [], 4600 `(%502 (\%503. ((%63 ((%8 (%9 (\%453. ($1 (%94 $0))))) (%101 (\%497. 4601 (%102 (\%498. ($2 ((%95 $1) $0)))))))) (%84 (\%493. ($1 $0))))))`) 4602 val from_reg_index_thm = 4603 DT(["DISK_THM"], [], 4604 `((%8 ((%11 (%107 %19)) %18)) ((%8 ((%11 (%107 (%5 (%6 %7)))) %20)) 4605 ((%8 ((%11 (%107 (%5 (%22 %7)))) %21)) ((%8 ((%11 (%107 (%5 (%6 (%6 4606 %7))))) %23)) ((%8 ((%11 (%107 (%5 (%22 (%6 %7))))) %24)) ((%8 ((%11 4607 (%107 (%5 (%6 (%22 %7))))) %25)) ((%8 ((%11 (%107 (%5 (%22 (%22 4608 %7))))) %26)) ((%8 ((%11 (%107 (%5 (%6 (%6 (%6 %7)))))) %27)) ((%8 4609 ((%11 (%107 (%5 (%22 (%6 (%6 %7)))))) %28)) ((%8 ((%11 (%107 (%5 (%6 4610 (%22 (%6 %7)))))) %29)) ((%8 ((%11 (%107 (%5 (%22 (%22 (%6 %7)))))) 4611 %30)) ((%8 ((%11 (%107 (%5 (%6 (%6 (%22 %7)))))) %31)) ((%8 ((%11 4612 (%107 (%5 (%22 (%6 (%22 %7)))))) %32)) ((%8 ((%11 (%107 (%5 (%6 (%22 4613 (%22 %7)))))) %33)) ((%11 (%107 (%5 (%22 (%22 (%22 %7)))))) 4614 %34)))))))))))))))`) 4615 val datatype_DOPER = 4616 DT(["DISK_THM"], [], 4617 `(%450 ((((((((((((((((%504 %198) %199) %200) %201) %202) %203) 4618 %204) %205) %206) %207) %208) %209) %210) %211) %212) %213))`) 4619 val DOPER_11 = 4620 DT(["DISK_THM"], [], 4621 `((%8 (%9 (\%134. (%237 (\%136. (%9 (\%505. (%237 (\%506. ((%16 4622 ((%171 ((%198 $3) $2)) ((%198 $1) $0))) ((%8 ((%11 $3) $1)) ((%507 4623 $2) $0)))))))))))) ((%8 (%237 (\%155. (%9 (\%156. (%237 (\%508. (%9 4624 (\%509. ((%16 ((%171 ((%199 $3) $2)) ((%199 $1) $0))) ((%8 ((%507 4625 $3) $1)) ((%11 $2) $0)))))))))))) ((%8 (%9 (\%134. (%84 (\%158. (%9 4626 (\%505. (%84 (\%510. ((%16 ((%171 ((%200 $3) $2)) ((%200 $1) $0))) 4627 ((%8 ((%11 $3) $1)) ((%86 $2) $0)))))))))))) ((%8 (%9 (\%134. (%9 4628 (\%156. (%84 (\%161. (%9 (\%505. (%9 (\%509. (%84 (\%511. ((%16 4629 ((%171 (((%201 $5) $4) $3)) (((%201 $2) $1) $0))) ((%8 ((%11 $5) 4630 $2)) ((%8 ((%11 $4) $1)) ((%86 $3) $0))))))))))))))))) ((%8 (%9 4631 (\%134. (%9 (\%156. (%84 (\%161. (%9 (\%505. (%9 (\%509. (%84 4632 (\%511. ((%16 ((%171 (((%202 $5) $4) $3)) (((%202 $2) $1) $0))) ((%8 4633 ((%11 $5) $2)) ((%8 ((%11 $4) $1)) ((%86 $3) $0))))))))))))))))) 4634 ((%8 (%9 (\%134. (%9 (\%156. (%84 (\%161. (%9 (\%505. (%9 (\%509. 4635 (%84 (\%511. ((%16 ((%171 (((%203 $5) $4) $3)) (((%203 $2) $1) $0))) 4636 ((%8 ((%11 $5) $2)) ((%8 ((%11 $4) $1)) ((%86 $3) 4637 $0))))))))))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%9 (\%162. (%9 4638 (\%505. (%9 (\%509. (%9 (\%512. ((%16 ((%171 (((%204 $5) $4) $3)) 4639 (((%204 $2) $1) $0))) ((%8 ((%11 $5) $2)) ((%8 ((%11 $4) $1)) ((%11 4640 $3) $0))))))))))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 (\%161. 4641 (%9 (\%505. (%9 (\%509. (%84 (\%511. ((%16 ((%171 (((%205 $5) $4) 4642 $3)) (((%205 $2) $1) $0))) ((%8 ((%11 $5) $2)) ((%8 ((%11 $4) $1)) 4643 ((%86 $3) $0))))))))))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 4644 (\%161. (%9 (\%505. (%9 (\%509. (%84 (\%511. ((%16 ((%171 (((%206 4645 $5) $4) $3)) (((%206 $2) $1) $0))) ((%8 ((%11 $5) $2)) ((%8 ((%11 4646 $4) $1)) ((%86 $3) $0))))))))))))))))) ((%8 (%9 (\%134. (%9 (\%156. 4647 (%84 (\%161. (%9 (\%505. (%9 (\%509. (%84 (\%511. ((%16 ((%171 4648 (((%207 $5) $4) $3)) (((%207 $2) $1) $0))) ((%8 ((%11 $5) $2)) ((%8 4649 ((%11 $4) $1)) ((%86 $3) $0))))))))))))))))) ((%8 (%9 (\%134. (%9 4650 (\%156. (%239 (\%164. (%9 (\%505. (%9 (\%509. (%239 (\%513. ((%16 4651 ((%171 (((%208 $5) $4) $3)) (((%208 $2) $1) $0))) ((%8 ((%11 $5) 4652 $2)) ((%8 ((%11 $4) $1)) ((%514 $3) $0))))))))))))))))) ((%8 (%9 4653 (\%134. (%9 (\%156. (%239 (\%164. (%9 (\%505. (%9 (\%509. (%239 4654 (\%513. ((%16 ((%171 (((%209 $5) $4) $3)) (((%209 $2) $1) $0))) ((%8 4655 ((%11 $5) $2)) ((%8 ((%11 $4) $1)) ((%514 $3) $0))))))))))))))))) 4656 ((%8 (%9 (\%134. (%9 (\%156. (%239 (\%164. (%9 (\%505. (%9 (\%509. 4657 (%239 (\%513. ((%16 ((%171 (((%210 $5) $4) $3)) (((%210 $2) $1) 4658 $0))) ((%8 ((%11 $5) $2)) ((%8 ((%11 $4) $1)) ((%514 $3) 4659 $0))))))))))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%239 (\%164. (%9 4660 (\%505. (%9 (\%509. (%239 (\%513. ((%16 ((%171 (((%211 $5) $4) $3)) 4661 (((%211 $2) $1) $0))) ((%8 ((%11 $5) $2)) ((%8 ((%11 $4) $1)) ((%514 4662 $3) $0))))))))))))))))) ((%8 (%14 (\%166. (%240 (\%168. (%14 (\%515. 4663 (%240 (\%516. ((%16 ((%171 ((%212 $3) $2)) ((%212 $1) $0))) ((%8 4664 ((%17 $3) $1)) ((%517 $2) $0)))))))))))) (%14 (\%166. (%240 (\%168. 4665 (%14 (\%515. (%240 (\%516. ((%16 ((%171 ((%213 $3) $2)) ((%213 $1) 4666 $0))) ((%8 ((%17 $3) $1)) ((%517 $2) $0))))))))))))))))))))))))))`) 4667 val DOPER_distinct = 4668 DT(["DISK_THM"], [], 4669 `((%8 (%9 (\%509. (%237 (\%136. (%237 (\%508. (%9 (\%134. (%452 4670 ((%171 ((%198 $0) $2)) ((%199 $1) $3)))))))))))) ((%8 (%84 (\%510. 4671 (%237 (\%136. (%9 (\%505. (%9 (\%134. (%452 ((%171 ((%198 $0) $2)) 4672 ((%200 $1) $3)))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%237 4673 (\%136. (%9 (\%505. (%9 (\%134. (%452 ((%171 ((%198 $0) $2)) (((%201 4674 $1) $3) $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%237 (\%136. 4675 (%9 (\%505. (%9 (\%134. (%452 ((%171 ((%198 $0) $2)) (((%202 $1) $3) 4676 $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%237 (\%136. (%9 4677 (\%505. (%9 (\%134. (%452 ((%171 ((%198 $0) $2)) (((%203 $1) $3) 4678 $4)))))))))))))) ((%8 (%9 (\%162. (%9 (\%509. (%237 (\%136. (%9 4679 (\%505. (%9 (\%134. (%452 ((%171 ((%198 $0) $2)) (((%204 $1) $3) 4680 $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%237 (\%136. (%9 4681 (\%505. (%9 (\%134. (%452 ((%171 ((%198 $0) $2)) (((%205 $1) $3) 4682 $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%237 (\%136. (%9 4683 (\%505. (%9 (\%134. (%452 ((%171 ((%198 $0) $2)) (((%206 $1) $3) 4684 $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%237 (\%136. (%9 4685 (\%505. (%9 (\%134. (%452 ((%171 ((%198 $0) $2)) (((%207 $1) $3) 4686 $4)))))))))))))) ((%8 (%239 (\%164. (%9 (\%509. (%237 (\%136. (%9 4687 (\%505. (%9 (\%134. (%452 ((%171 ((%198 $0) $2)) (((%208 $1) $3) 4688 $4)))))))))))))) ((%8 (%239 (\%164. (%9 (\%509. (%237 (\%136. (%9 4689 (\%505. (%9 (\%134. (%452 ((%171 ((%198 $0) $2)) (((%209 $1) $3) 4690 $4)))))))))))))) ((%8 (%239 (\%164. (%9 (\%509. (%237 (\%136. (%9 4691 (\%505. (%9 (\%134. (%452 ((%171 ((%198 $0) $2)) (((%210 $1) $3) 4692 $4)))))))))))))) ((%8 (%239 (\%164. (%9 (\%509. (%237 (\%136. (%9 4693 (\%505. (%9 (\%134. (%452 ((%171 ((%198 $0) $2)) (((%211 $1) $3) 4694 $4)))))))))))))) ((%8 (%240 (\%516. (%237 (\%136. (%14 (\%515. (%9 4695 (\%134. (%452 ((%171 ((%198 $0) $2)) ((%212 $1) $3)))))))))))) ((%8 4696 (%240 (\%516. (%237 (\%136. (%14 (\%515. (%9 (\%134. (%452 ((%171 4697 ((%198 $0) $2)) ((%213 $1) $3)))))))))))) ((%8 (%84 (\%510. (%9 4698 (\%156. (%9 (\%505. (%237 (\%155. (%452 ((%171 ((%199 $0) $2)) 4699 ((%200 $1) $3)))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%9 (\%156. 4700 (%9 (\%505. (%237 (\%155. (%452 ((%171 ((%199 $0) $2)) (((%201 $1) 4701 $3) $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 4702 (\%505. (%237 (\%155. (%452 ((%171 ((%199 $0) $2)) (((%202 $1) $3) 4703 $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 4704 (\%505. (%237 (\%155. (%452 ((%171 ((%199 $0) $2)) (((%203 $1) $3) 4705 $4)))))))))))))) ((%8 (%9 (\%162. (%9 (\%509. (%9 (\%156. (%9 4706 (\%505. (%237 (\%155. (%452 ((%171 ((%199 $0) $2)) (((%204 $1) $3) 4707 $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 4708 (\%505. (%237 (\%155. (%452 ((%171 ((%199 $0) $2)) (((%205 $1) $3) 4709 $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 4710 (\%505. (%237 (\%155. (%452 ((%171 ((%199 $0) $2)) (((%206 $1) $3) 4711 $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 4712 (\%505. (%237 (\%155. (%452 ((%171 ((%199 $0) $2)) (((%207 $1) $3) 4713 $4)))))))))))))) ((%8 (%239 (\%164. (%9 (\%509. (%9 (\%156. (%9 4714 (\%505. (%237 (\%155. (%452 ((%171 ((%199 $0) $2)) (((%208 $1) $3) 4715 $4)))))))))))))) ((%8 (%239 (\%164. (%9 (\%509. (%9 (\%156. (%9 4716 (\%505. (%237 (\%155. (%452 ((%171 ((%199 $0) $2)) (((%209 $1) $3) 4717 $4)))))))))))))) ((%8 (%239 (\%164. (%9 (\%509. (%9 (\%156. (%9 4718 (\%505. (%237 (\%155. (%452 ((%171 ((%199 $0) $2)) (((%210 $1) $3) 4719 $4)))))))))))))) ((%8 (%239 (\%164. (%9 (\%509. (%9 (\%156. (%9 4720 (\%505. (%237 (\%155. (%452 ((%171 ((%199 $0) $2)) (((%211 $1) $3) 4721 $4)))))))))))))) ((%8 (%240 (\%516. (%9 (\%156. (%14 (\%515. (%237 4722 (\%155. (%452 ((%171 ((%199 $0) $2)) ((%212 $1) $3)))))))))))) ((%8 4723 (%240 (\%516. (%9 (\%156. (%14 (\%515. (%237 (\%155. (%452 ((%171 4724 ((%199 $0) $2)) ((%213 $1) $3)))))))))))) ((%8 (%84 (\%161. (%9 4725 (\%509. (%84 (\%158. (%9 (\%505. (%9 (\%134. (%452 ((%171 ((%200 $0) 4726 $2)) (((%201 $1) $3) $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. 4727 (%84 (\%158. (%9 (\%505. (%9 (\%134. (%452 ((%171 ((%200 $0) $2)) 4728 (((%202 $1) $3) $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%84 4729 (\%158. (%9 (\%505. (%9 (\%134. (%452 ((%171 ((%200 $0) $2)) (((%203 4730 $1) $3) $4)))))))))))))) ((%8 (%9 (\%162. (%9 (\%509. (%84 (\%158. 4731 (%9 (\%505. (%9 (\%134. (%452 ((%171 ((%200 $0) $2)) (((%204 $1) $3) 4732 $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%84 (\%158. (%9 4733 (\%505. (%9 (\%134. (%452 ((%171 ((%200 $0) $2)) (((%205 $1) $3) 4734 $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%84 (\%158. (%9 4735 (\%505. (%9 (\%134. (%452 ((%171 ((%200 $0) $2)) (((%206 $1) $3) 4736 $4)))))))))))))) ((%8 (%84 (\%161. (%9 (\%509. (%84 (\%158. (%9 4737 (\%505. (%9 (\%134. (%452 ((%171 ((%200 $0) $2)) (((%207 $1) $3) 4738 $4)))))))))))))) ((%8 (%239 (\%164. (%9 (\%509. (%84 (\%158. (%9 4739 (\%505. (%9 (\%134. (%452 ((%171 ((%200 $0) $2)) (((%208 $1) $3) 4740 $4)))))))))))))) ((%8 (%239 (\%164. (%9 (\%509. (%84 (\%158. (%9 4741 (\%505. (%9 (\%134. (%452 ((%171 ((%200 $0) $2)) (((%209 $1) $3) 4742 $4)))))))))))))) ((%8 (%239 (\%164. (%9 (\%509. (%84 (\%158. (%9 4743 (\%505. (%9 (\%134. (%452 ((%171 ((%200 $0) $2)) (((%210 $1) $3) 4744 $4)))))))))))))) ((%8 (%239 (\%164. (%9 (\%509. (%84 (\%158. (%9 4745 (\%505. (%9 (\%134. (%452 ((%171 ((%200 $0) $2)) (((%211 $1) $3) 4746 $4)))))))))))))) ((%8 (%240 (\%516. (%84 (\%158. (%14 (\%515. (%9 4747 (\%134. (%452 ((%171 ((%200 $0) $2)) ((%212 $1) $3)))))))))))) ((%8 4748 (%240 (\%516. (%84 (\%158. (%14 (\%515. (%9 (\%134. (%452 ((%171 4749 ((%200 $0) $2)) ((%213 $1) $3)))))))))))) ((%8 (%84 (\%511. (%84 4750 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 4751 (((%201 $0) $2) $4)) (((%202 $1) $3) $5)))))))))))))))) ((%8 (%84 4752 (\%511. (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. 4753 (%452 ((%171 (((%201 $0) $2) $4)) (((%203 $1) $3) $5)))))))))))))))) 4754 ((%8 (%9 (\%512. (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. 4755 (%9 (\%134. (%452 ((%171 (((%201 $0) $2) $4)) (((%204 $1) $3) 4756 $5)))))))))))))))) ((%8 (%84 (\%511. (%84 (\%161. (%9 (\%509. (%9 4757 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%201 $0) $2) $4)) 4758 (((%205 $1) $3) $5)))))))))))))))) ((%8 (%84 (\%511. (%84 (\%161. 4759 (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%201 4760 $0) $2) $4)) (((%206 $1) $3) $5)))))))))))))))) ((%8 (%84 (\%511. 4761 (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 4762 ((%171 (((%201 $0) $2) $4)) (((%207 $1) $3) $5)))))))))))))))) ((%8 4763 (%239 (\%513. (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 4764 (\%134. (%452 ((%171 (((%201 $0) $2) $4)) (((%208 $1) $3) 4765 $5)))))))))))))))) ((%8 (%239 (\%513. (%84 (\%161. (%9 (\%509. (%9 4766 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%201 $0) $2) $4)) 4767 (((%209 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%513. (%84 (\%161. 4768 (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%201 4769 $0) $2) $4)) (((%210 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%513. 4770 (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 4771 ((%171 (((%201 $0) $2) $4)) (((%211 $1) $3) $5)))))))))))))))) ((%8 4772 (%84 (\%161. (%240 (\%516. (%9 (\%156. (%14 (\%515. (%9 (\%134. 4773 (%452 ((%171 (((%201 $0) $2) $4)) ((%212 $1) $3)))))))))))))) ((%8 4774 (%84 (\%161. (%240 (\%516. (%9 (\%156. (%14 (\%515. (%9 (\%134. 4775 (%452 ((%171 (((%201 $0) $2) $4)) ((%213 $1) $3)))))))))))))) ((%8 4776 (%84 (\%511. (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 4777 (\%134. (%452 ((%171 (((%202 $0) $2) $4)) (((%203 $1) $3) 4778 $5)))))))))))))))) ((%8 (%9 (\%512. (%84 (\%161. (%9 (\%509. (%9 4779 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%202 $0) $2) $4)) 4780 (((%204 $1) $3) $5)))))))))))))))) ((%8 (%84 (\%511. (%84 (\%161. 4781 (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%202 4782 $0) $2) $4)) (((%205 $1) $3) $5)))))))))))))))) ((%8 (%84 (\%511. 4783 (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 4784 ((%171 (((%202 $0) $2) $4)) (((%206 $1) $3) $5)))))))))))))))) ((%8 4785 (%84 (\%511. (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 4786 (\%134. (%452 ((%171 (((%202 $0) $2) $4)) (((%207 $1) $3) 4787 $5)))))))))))))))) ((%8 (%239 (\%513. (%84 (\%161. (%9 (\%509. (%9 4788 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%202 $0) $2) $4)) 4789 (((%208 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%513. (%84 (\%161. 4790 (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%202 4791 $0) $2) $4)) (((%209 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%513. 4792 (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 4793 ((%171 (((%202 $0) $2) $4)) (((%210 $1) $3) $5)))))))))))))))) ((%8 4794 (%239 (\%513. (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 4795 (\%134. (%452 ((%171 (((%202 $0) $2) $4)) (((%211 $1) $3) 4796 $5)))))))))))))))) ((%8 (%84 (\%161. (%240 (\%516. (%9 (\%156. (%14 4797 (\%515. (%9 (\%134. (%452 ((%171 (((%202 $0) $2) $4)) ((%212 $1) 4798 $3)))))))))))))) ((%8 (%84 (\%161. (%240 (\%516. (%9 (\%156. (%14 4799 (\%515. (%9 (\%134. (%452 ((%171 (((%202 $0) $2) $4)) ((%213 $1) 4800 $3)))))))))))))) ((%8 (%9 (\%512. (%84 (\%161. (%9 (\%509. (%9 4801 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%203 $0) $2) $4)) 4802 (((%204 $1) $3) $5)))))))))))))))) ((%8 (%84 (\%511. (%84 (\%161. 4803 (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%203 4804 $0) $2) $4)) (((%205 $1) $3) $5)))))))))))))))) ((%8 (%84 (\%511. 4805 (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 4806 ((%171 (((%203 $0) $2) $4)) (((%206 $1) $3) $5)))))))))))))))) ((%8 4807 (%84 (\%511. (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 4808 (\%134. (%452 ((%171 (((%203 $0) $2) $4)) (((%207 $1) $3) 4809 $5)))))))))))))))) ((%8 (%239 (\%513. (%84 (\%161. (%9 (\%509. (%9 4810 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%203 $0) $2) $4)) 4811 (((%208 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%513. (%84 (\%161. 4812 (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%203 4813 $0) $2) $4)) (((%209 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%513. 4814 (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 4815 ((%171 (((%203 $0) $2) $4)) (((%210 $1) $3) $5)))))))))))))))) ((%8 4816 (%239 (\%513. (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 4817 (\%134. (%452 ((%171 (((%203 $0) $2) $4)) (((%211 $1) $3) 4818 $5)))))))))))))))) ((%8 (%84 (\%161. (%240 (\%516. (%9 (\%156. (%14 4819 (\%515. (%9 (\%134. (%452 ((%171 (((%203 $0) $2) $4)) ((%212 $1) 4820 $3)))))))))))))) ((%8 (%84 (\%161. (%240 (\%516. (%9 (\%156. (%14 4821 (\%515. (%9 (\%134. (%452 ((%171 (((%203 $0) $2) $4)) ((%213 $1) 4822 $3)))))))))))))) ((%8 (%84 (\%511. (%9 (\%162. (%9 (\%509. (%9 4823 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%204 $0) $2) $4)) 4824 (((%205 $1) $3) $5)))))))))))))))) ((%8 (%84 (\%511. (%9 (\%162. (%9 4825 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%204 $0) 4826 $2) $4)) (((%206 $1) $3) $5)))))))))))))))) ((%8 (%84 (\%511. (%9 4827 (\%162. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 4828 (((%204 $0) $2) $4)) (((%207 $1) $3) $5)))))))))))))))) ((%8 (%239 4829 (\%513. (%9 (\%162. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. 4830 (%452 ((%171 (((%204 $0) $2) $4)) (((%208 $1) $3) $5)))))))))))))))) 4831 ((%8 (%239 (\%513. (%9 (\%162. (%9 (\%509. (%9 (\%156. (%9 (\%505. 4832 (%9 (\%134. (%452 ((%171 (((%204 $0) $2) $4)) (((%209 $1) $3) 4833 $5)))))))))))))))) ((%8 (%239 (\%513. (%9 (\%162. (%9 (\%509. (%9 4834 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%204 $0) $2) $4)) 4835 (((%210 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%513. (%9 (\%162. 4836 (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%204 4837 $0) $2) $4)) (((%211 $1) $3) $5)))))))))))))))) ((%8 (%9 (\%162. 4838 (%240 (\%516. (%9 (\%156. (%14 (\%515. (%9 (\%134. (%452 ((%171 4839 (((%204 $0) $2) $4)) ((%212 $1) $3)))))))))))))) ((%8 (%9 (\%162. 4840 (%240 (\%516. (%9 (\%156. (%14 (\%515. (%9 (\%134. (%452 ((%171 4841 (((%204 $0) $2) $4)) ((%213 $1) $3)))))))))))))) ((%8 (%84 (\%511. 4842 (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 4843 ((%171 (((%205 $0) $2) $4)) (((%206 $1) $3) $5)))))))))))))))) ((%8 4844 (%84 (\%511. (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 4845 (\%134. (%452 ((%171 (((%205 $0) $2) $4)) (((%207 $1) $3) 4846 $5)))))))))))))))) ((%8 (%239 (\%513. (%84 (\%161. (%9 (\%509. (%9 4847 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%205 $0) $2) $4)) 4848 (((%208 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%513. (%84 (\%161. 4849 (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%205 4850 $0) $2) $4)) (((%209 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%513. 4851 (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 4852 ((%171 (((%205 $0) $2) $4)) (((%210 $1) $3) $5)))))))))))))))) ((%8 4853 (%239 (\%513. (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 4854 (\%134. (%452 ((%171 (((%205 $0) $2) $4)) (((%211 $1) $3) 4855 $5)))))))))))))))) ((%8 (%84 (\%161. (%240 (\%516. (%9 (\%156. (%14 4856 (\%515. (%9 (\%134. (%452 ((%171 (((%205 $0) $2) $4)) ((%212 $1) 4857 $3)))))))))))))) ((%8 (%84 (\%161. (%240 (\%516. (%9 (\%156. (%14 4858 (\%515. (%9 (\%134. (%452 ((%171 (((%205 $0) $2) $4)) ((%213 $1) 4859 $3)))))))))))))) ((%8 (%84 (\%511. (%84 (\%161. (%9 (\%509. (%9 4860 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%206 $0) $2) $4)) 4861 (((%207 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%513. (%84 (\%161. 4862 (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%206 4863 $0) $2) $4)) (((%208 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%513. 4864 (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 4865 ((%171 (((%206 $0) $2) $4)) (((%209 $1) $3) $5)))))))))))))))) ((%8 4866 (%239 (\%513. (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 4867 (\%134. (%452 ((%171 (((%206 $0) $2) $4)) (((%210 $1) $3) 4868 $5)))))))))))))))) ((%8 (%239 (\%513. (%84 (\%161. (%9 (\%509. (%9 4869 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%206 $0) $2) $4)) 4870 (((%211 $1) $3) $5)))))))))))))))) ((%8 (%84 (\%161. (%240 (\%516. 4871 (%9 (\%156. (%14 (\%515. (%9 (\%134. (%452 ((%171 (((%206 $0) $2) 4872 $4)) ((%212 $1) $3)))))))))))))) ((%8 (%84 (\%161. (%240 (\%516. (%9 4873 (\%156. (%14 (\%515. (%9 (\%134. (%452 ((%171 (((%206 $0) $2) $4)) 4874 ((%213 $1) $3)))))))))))))) ((%8 (%239 (\%513. (%84 (\%161. (%9 4875 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%207 $0) 4876 $2) $4)) (((%208 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%513. (%84 4877 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 4878 (((%207 $0) $2) $4)) (((%209 $1) $3) $5)))))))))))))))) ((%8 (%239 4879 (\%513. (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. 4880 (%452 ((%171 (((%207 $0) $2) $4)) (((%210 $1) $3) $5)))))))))))))))) 4881 ((%8 (%239 (\%513. (%84 (\%161. (%9 (\%509. (%9 (\%156. (%9 (\%505. 4882 (%9 (\%134. (%452 ((%171 (((%207 $0) $2) $4)) (((%211 $1) $3) 4883 $5)))))))))))))))) ((%8 (%84 (\%161. (%240 (\%516. (%9 (\%156. (%14 4884 (\%515. (%9 (\%134. (%452 ((%171 (((%207 $0) $2) $4)) ((%212 $1) 4885 $3)))))))))))))) ((%8 (%84 (\%161. (%240 (\%516. (%9 (\%156. (%14 4886 (\%515. (%9 (\%134. (%452 ((%171 (((%207 $0) $2) $4)) ((%213 $1) 4887 $3)))))))))))))) ((%8 (%239 (\%513. (%239 (\%164. (%9 (\%509. (%9 4888 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%208 $0) $2) $4)) 4889 (((%209 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%513. (%239 (\%164. 4890 (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%208 4891 $0) $2) $4)) (((%210 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%513. 4892 (%239 (\%164. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 4893 ((%171 (((%208 $0) $2) $4)) (((%211 $1) $3) $5)))))))))))))))) ((%8 4894 (%239 (\%164. (%240 (\%516. (%9 (\%156. (%14 (\%515. (%9 (\%134. 4895 (%452 ((%171 (((%208 $0) $2) $4)) ((%212 $1) $3)))))))))))))) ((%8 4896 (%239 (\%164. (%240 (\%516. (%9 (\%156. (%14 (\%515. (%9 (\%134. 4897 (%452 ((%171 (((%208 $0) $2) $4)) ((%213 $1) $3)))))))))))))) ((%8 4898 (%239 (\%513. (%239 (\%164. (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 4899 (\%134. (%452 ((%171 (((%209 $0) $2) $4)) (((%210 $1) $3) 4900 $5)))))))))))))))) ((%8 (%239 (\%513. (%239 (\%164. (%9 (\%509. (%9 4901 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%209 $0) $2) $4)) 4902 (((%211 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%164. (%240 (\%516. 4903 (%9 (\%156. (%14 (\%515. (%9 (\%134. (%452 ((%171 (((%209 $0) $2) 4904 $4)) ((%212 $1) $3)))))))))))))) ((%8 (%239 (\%164. (%240 (\%516. 4905 (%9 (\%156. (%14 (\%515. (%9 (\%134. (%452 ((%171 (((%209 $0) $2) 4906 $4)) ((%213 $1) $3)))))))))))))) ((%8 (%239 (\%513. (%239 (\%164. 4907 (%9 (\%509. (%9 (\%156. (%9 (\%505. (%9 (\%134. (%452 ((%171 (((%210 4908 $0) $2) $4)) (((%211 $1) $3) $5)))))))))))))))) ((%8 (%239 (\%164. 4909 (%240 (\%516. (%9 (\%156. (%14 (\%515. (%9 (\%134. (%452 ((%171 4910 (((%210 $0) $2) $4)) ((%212 $1) $3)))))))))))))) ((%8 (%239 (\%164. 4911 (%240 (\%516. (%9 (\%156. (%14 (\%515. (%9 (\%134. (%452 ((%171 4912 (((%210 $0) $2) $4)) ((%213 $1) $3)))))))))))))) ((%8 (%239 (\%164. 4913 (%240 (\%516. (%9 (\%156. (%14 (\%515. (%9 (\%134. (%452 ((%171 4914 (((%211 $0) $2) $4)) ((%212 $1) $3)))))))))))))) ((%8 (%239 (\%164. 4915 (%240 (\%516. (%9 (\%156. (%14 (\%515. (%9 (\%134. (%452 ((%171 4916 (((%211 $0) $2) $4)) ((%213 $1) $3)))))))))))))) (%240 (\%516. (%240 4917 (\%168. (%14 (\%515. (%14 (\%166. (%452 ((%171 ((%212 $0) $2)) 4918 ((%213 $1) 4919 $3))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))`) 4920 val DOPER_case_cong = 4921 DT(["DISK_THM"], [], 4922 `(%169 (\%518. (%169 (\%519. (%214 (\%215. (%216 (\%217. (%218 4923 (\%219. (%220 (\%221. (%220 (\%222. (%220 (\%223. (%224 (\%225. 4924 (%220 (\%226. (%220 (\%227. (%220 (\%228. (%229 (\%230. (%229 4925 (\%231. (%229 (\%232. (%229 (\%233. (%234 (\%235. (%234 (\%236. 4926 ((%63 ((%8 ((%171 $17) $16)) ((%8 (%9 (\%134. (%237 (\%136. ((%63 4927 ((%171 $18) ((%198 $1) $0))) ((%53 (($17 $1) $0)) ((%520 $1) 4928 $0)))))))) ((%8 (%237 (\%155. (%9 (\%156. ((%63 ((%171 $18) ((%199 4929 $1) $0))) ((%53 (($16 $1) $0)) ((%521 $1) $0)))))))) ((%8 (%9 4930 (\%134. (%84 (\%158. ((%63 ((%171 $18) ((%200 $1) $0))) ((%53 (($15 4931 $1) $0)) ((%522 $1) $0)))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 4932 (\%161. ((%63 ((%171 $19) (((%201 $2) $1) $0))) ((%53 ((($15 $2) $1) 4933 $0)) (((%523 $2) $1) $0)))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 4934 (\%161. ((%63 ((%171 $19) (((%202 $2) $1) $0))) ((%53 ((($14 $2) $1) 4935 $0)) (((%524 $2) $1) $0)))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 4936 (\%161. ((%63 ((%171 $19) (((%203 $2) $1) $0))) ((%53 ((($13 $2) $1) 4937 $0)) (((%525 $2) $1) $0)))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%9 4938 (\%162. ((%63 ((%171 $19) (((%204 $2) $1) $0))) ((%53 ((($12 $2) $1) 4939 $0)) (((%526 $2) $1) $0)))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 4940 (\%161. ((%63 ((%171 $19) (((%205 $2) $1) $0))) ((%53 ((($11 $2) $1) 4941 $0)) (((%527 $2) $1) $0)))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 4942 (\%161. ((%63 ((%171 $19) (((%206 $2) $1) $0))) ((%53 ((($10 $2) $1) 4943 $0)) (((%528 $2) $1) $0)))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 4944 (\%161. ((%63 ((%171 $19) (((%207 $2) $1) $0))) ((%53 ((($9 $2) $1) 4945 $0)) (((%529 $2) $1) $0)))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%239 4946 (\%164. ((%63 ((%171 $19) (((%208 $2) $1) $0))) ((%53 ((($8 $2) $1) 4947 $0)) (((%530 $2) $1) $0)))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%239 4948 (\%164. ((%63 ((%171 $19) (((%209 $2) $1) $0))) ((%53 ((($7 $2) $1) 4949 $0)) (((%531 $2) $1) $0)))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%239 4950 (\%164. ((%63 ((%171 $19) (((%210 $2) $1) $0))) ((%53 ((($6 $2) $1) 4951 $0)) (((%532 $2) $1) $0)))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%239 4952 (\%164. ((%63 ((%171 $19) (((%211 $2) $1) $0))) ((%53 ((($5 $2) $1) 4953 $0)) (((%533 $2) $1) $0)))))))))) ((%8 (%14 (\%166. (%240 (\%168. 4954 ((%63 ((%171 $18) ((%212 $1) $0))) ((%53 (($3 $1) $0)) ((%534 $1) 4955 $0)))))))) (%14 (\%166. (%240 (\%168. ((%63 ((%171 $18) ((%213 $1) 4956 $0))) ((%53 (($2 $1) $0)) ((%535 $1) $0)))))))))))))))))))))))) 4957 ((%53 (((((((((((((((((%238 $15) $14) $13) $12) $11) $10) $9) $8) 4958 $7) $6) $5) $4) $3) $2) $1) $0) $17)) (((((((((((((((((%238 %520) 4959 %521) %522) %523) %524) %525) %526) %527) %528) %529) %530) %531) 4960 %532) %533) %534) %535) $16)))))))))))))))))))))))))))))))))))))))`) 4961 val DOPER_nchotomy = 4962 DT(["DISK_THM"], [], 4963 `(%169 (\%536. ((%65 (%66 (\%453. (%135 (\%537. ((%171 $2) ((%198 4964 $1) $0))))))) ((%65 (%135 (\%537. (%66 (\%453. ((%171 $2) ((%199 $1) 4965 $0))))))) ((%65 (%66 (\%453. (%157 (\%538. ((%171 $2) ((%200 $1) 4966 $0))))))) ((%65 (%66 (\%453. (%66 (\%539. (%157 (\%540. ((%171 $3) 4967 (((%201 $2) $1) $0))))))))) ((%65 (%66 (\%453. (%66 (\%539. (%157 4968 (\%540. ((%171 $3) (((%202 $2) $1) $0))))))))) ((%65 (%66 (\%453. 4969 (%66 (\%539. (%157 (\%540. ((%171 $3) (((%203 $2) $1) $0))))))))) 4970 ((%65 (%66 (\%453. (%66 (\%539. (%66 (\%541. ((%171 $3) (((%204 $2) 4971 $1) $0))))))))) ((%65 (%66 (\%453. (%66 (\%539. (%157 (\%540. ((%171 4972 $3) (((%205 $2) $1) $0))))))))) ((%65 (%66 (\%453. (%66 (\%539. 4973 (%157 (\%540. ((%171 $3) (((%206 $2) $1) $0))))))))) ((%65 (%66 4974 (\%453. (%66 (\%539. (%157 (\%540. ((%171 $3) (((%207 $2) $1) 4975 $0))))))))) ((%65 (%66 (\%453. (%66 (\%539. (%163 (\%542. ((%171 $3) 4976 (((%208 $2) $1) $0))))))))) ((%65 (%66 (\%453. (%66 (\%539. (%163 4977 (\%542. ((%171 $3) (((%209 $2) $1) $0))))))))) ((%65 (%66 (\%453. 4978 (%66 (\%539. (%163 (\%542. ((%171 $3) (((%210 $2) $1) $0))))))))) 4979 ((%65 (%66 (\%453. (%66 (\%539. (%163 (\%542. ((%171 $3) (((%211 $2) 4980 $1) $0))))))))) ((%65 (%165 (\%3. (%167 (\%543. ((%171 $2) ((%212 4981 $1) $0))))))) (%165 (\%3. (%167 (\%543. ((%171 $2) ((%213 $1) 4982 $0)))))))))))))))))))))))`) 4983 val DOPER_Axiom = 4984 DT(["DISK_THM"], [], 4985 `(%214 (\%544. (%216 (\%217. (%218 (\%219. (%220 (\%221. (%220 4986 (\%222. (%220 (\%223. (%224 (\%225. (%220 (\%226. (%220 (\%227. 4987 (%220 (\%228. (%229 (\%230. (%229 (\%231. (%229 (\%232. (%229 4988 (\%233. (%234 (\%235. (%234 (\%236. (%545 (\%546. ((%8 (%9 (\%134. 4989 (%237 (\%136. ((%53 ($2 ((%198 $1) $0))) (($18 $1) $0))))))) ((%8 4990 (%237 (\%155. (%9 (\%156. ((%53 ($2 ((%199 $1) $0))) (($17 $1) 4991 $0))))))) ((%8 (%9 (\%134. (%84 (\%158. ((%53 ($2 ((%200 $1) $0))) 4992 (($16 $1) $0))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 (\%161. ((%53 4993 ($3 (((%201 $2) $1) $0))) ((($16 $2) $1) $0))))))))) ((%8 (%9 4994 (\%134. (%9 (\%156. (%84 (\%161. ((%53 ($3 (((%202 $2) $1) $0))) 4995 ((($15 $2) $1) $0))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 (\%161. 4996 ((%53 ($3 (((%203 $2) $1) $0))) ((($14 $2) $1) $0))))))))) ((%8 (%9 4997 (\%134. (%9 (\%156. (%9 (\%162. ((%53 ($3 (((%204 $2) $1) $0))) 4998 ((($13 $2) $1) $0))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 (\%161. 4999 ((%53 ($3 (((%205 $2) $1) $0))) ((($12 $2) $1) $0))))))))) ((%8 (%9 5000 (\%134. (%9 (\%156. (%84 (\%161. ((%53 ($3 (((%206 $2) $1) $0))) 5001 ((($11 $2) $1) $0))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%84 (\%161. 5002 ((%53 ($3 (((%207 $2) $1) $0))) ((($10 $2) $1) $0))))))))) ((%8 (%9 5003 (\%134. (%9 (\%156. (%239 (\%164. ((%53 ($3 (((%208 $2) $1) $0))) 5004 ((($9 $2) $1) $0))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%239 (\%164. 5005 ((%53 ($3 (((%209 $2) $1) $0))) ((($8 $2) $1) $0))))))))) ((%8 (%9 5006 (\%134. (%9 (\%156. (%239 (\%164. ((%53 ($3 (((%210 $2) $1) $0))) 5007 ((($7 $2) $1) $0))))))))) ((%8 (%9 (\%134. (%9 (\%156. (%239 (\%164. 5008 ((%53 ($3 (((%211 $2) $1) $0))) ((($6 $2) $1) $0))))))))) ((%8 (%14 5009 (\%166. (%240 (\%168. ((%53 ($2 ((%212 $1) $0))) (($4 $1) $0))))))) 5010 (%14 (\%166. (%240 (\%168. ((%53 ($2 ((%213 $1) $0))) (($3 $1) 5011 $0)))))))))))))))))))))))))))))))))))))))))))))))))))))))`) 5012 val DOPER_induction = 5013 DT(["DISK_THM"], [], 5014 `(%547 (\%548. ((%63 ((%8 (%9 (\%453. (%237 (\%537. ($2 ((%198 $1) 5015 $0))))))) ((%8 (%237 (\%537. (%9 (\%453. ($2 ((%199 $1) $0))))))) 5016 ((%8 (%9 (\%453. (%84 (\%538. ($2 ((%200 $1) $0))))))) ((%8 (%9 5017 (\%453. (%9 (\%539. (%84 (\%540. ($3 (((%201 $2) $1) $0))))))))) 5018 ((%8 (%9 (\%453. (%9 (\%539. (%84 (\%540. ($3 (((%202 $2) $1) 5019 $0))))))))) ((%8 (%9 (\%453. (%9 (\%539. (%84 (\%540. ($3 (((%203 5020 $2) $1) $0))))))))) ((%8 (%9 (\%453. (%9 (\%539. (%9 (\%541. ($3 5021 (((%204 $2) $1) $0))))))))) ((%8 (%9 (\%453. (%9 (\%539. (%84 5022 (\%540. ($3 (((%205 $2) $1) $0))))))))) ((%8 (%9 (\%453. (%9 (\%539. 5023 (%84 (\%540. ($3 (((%206 $2) $1) $0))))))))) ((%8 (%9 (\%453. (%9 5024 (\%539. (%84 (\%540. ($3 (((%207 $2) $1) $0))))))))) ((%8 (%9 5025 (\%453. (%9 (\%539. (%239 (\%542. ($3 (((%208 $2) $1) $0))))))))) 5026 ((%8 (%9 (\%453. (%9 (\%539. (%239 (\%542. ($3 (((%209 $2) $1) 5027 $0))))))))) ((%8 (%9 (\%453. (%9 (\%539. (%239 (\%542. ($3 (((%210 5028 $2) $1) $0))))))))) ((%8 (%9 (\%453. (%9 (\%539. (%239 (\%542. ($3 5029 (((%211 $2) $1) $0))))))))) ((%8 (%14 (\%3. (%240 (\%543. ($2 ((%212 5030 $1) $0))))))) (%14 (\%3. (%240 (\%543. ($2 ((%213 $1) 5031 $0)))))))))))))))))))))) (%169 (\%536. ($1 $0))))))`) 5032 val datatype_CTL_STRUCTURE = 5033 DT(["DISK_THM"], [], `(%450 ((((%549 %288) %289) %290) %291))`) 5034 val CTL_STRUCTURE_11 = 5035 DT(["DISK_THM"], [], 5036 `((%8 (%300 (\%255. (%300 (\%550. ((%16 ((%273 (%288 $1)) (%288 5037 $0))) ((%551 $1) $0))))))) ((%8 (%271 (\%281. (%271 (\%282. (%271 5038 (\%552. (%271 (\%553. ((%16 ((%273 ((%289 $3) $2)) ((%289 $1) $0))) 5039 ((%8 ((%273 $3) $1)) ((%273 $2) $0)))))))))))) ((%8 (%302 (\%269. 5040 (%271 (\%282. (%271 (\%285. (%302 (\%554. (%271 (\%553. (%271 5041 (\%555. ((%16 ((%273 (((%290 $5) $4) $3)) (((%290 $2) $1) $0))) ((%8 5042 ((%556 $5) $2)) ((%8 ((%273 $4) $1)) ((%273 $3) $0))))))))))))))))) 5043 (%302 (\%269. (%271 (\%282. (%302 (\%554. (%271 (\%553. ((%16 ((%273 5044 ((%291 $3) $2)) ((%291 $1) $0))) ((%8 ((%556 $3) $1)) ((%273 $2) 5045 $0))))))))))))))`) 5046 val CTL_STRUCTURE_distinct = 5047 DT(["DISK_THM"], [], 5048 `((%8 (%271 (\%282. (%271 (\%281. (%300 (\%255. (%452 ((%273 (%288 5049 $0)) ((%289 $1) $2)))))))))) ((%8 (%271 (\%285. (%271 (\%282. (%302 5050 (\%269. (%300 (\%255. (%452 ((%273 (%288 $0)) (((%290 $1) $2) 5051 $3)))))))))))) ((%8 (%271 (\%282. (%302 (\%269. (%300 (\%255. (%452 5052 ((%273 (%288 $0)) ((%291 $1) $2)))))))))) ((%8 (%271 (\%285. (%271 5053 (\%553. (%271 (\%282. (%302 (\%554. (%271 (\%281. (%452 ((%273 5054 ((%289 $0) $2)) (((%290 $1) $3) $4)))))))))))))) ((%8 (%271 (\%553. 5055 (%271 (\%282. (%302 (\%554. (%271 (\%281. (%452 ((%273 ((%289 $0) 5056 $2)) ((%291 $1) $3)))))))))))) (%271 (\%285. (%271 (\%553. (%271 5057 (\%282. (%302 (\%554. (%302 (\%269. (%452 ((%273 (((%290 $0) $2) 5058 $4)) ((%291 $1) $3))))))))))))))))))`) 5059 val CTL_STRUCTURE_case_cong = 5060 DT(["DISK_THM"], [], 5061 `(%271 (\%557. (%271 (\%558. (%292 (\%293. (%294 (\%295. (%296 5062 (\%297. (%298 (\%299. ((%63 ((%8 ((%273 $5) $4)) ((%8 (%300 (\%255. 5063 ((%63 ((%273 $5) (%288 $0))) ((%53 ($4 $0)) (%559 $0)))))) ((%8 5064 (%271 (\%281. (%271 (\%282. ((%63 ((%273 $6) ((%289 $1) $0))) ((%53 5065 (($4 $1) $0)) ((%560 $1) $0)))))))) ((%8 (%302 (\%269. (%271 (\%282. 5066 (%271 (\%285. ((%63 ((%273 $7) (((%290 $2) $1) $0))) ((%53 ((($4 $2) 5067 $1) $0)) (((%561 $2) $1) $0)))))))))) (%302 (\%269. (%271 (\%282. 5068 ((%63 ((%273 $6) ((%291 $1) $0))) ((%53 (($2 $1) $0)) ((%562 $1) 5069 $0)))))))))))) ((%53 (((((%301 $3) $2) $1) $0) $5)) (((((%301 %559) 5070 %560) %561) %562) $4)))))))))))))))`) 5071 val CTL_STRUCTURE_nchotomy = 5072 DT(["DISK_THM"], [], 5073 `(%271 (\%563. ((%65 (%254 (\%564. ((%273 $1) (%288 $0))))) ((%65 5074 (%565 (\%563. (%565 (\%566. ((%273 $2) ((%289 $1) $0))))))) ((%65 5075 (%268 (\%567. (%565 (\%563. (%565 (\%566. ((%273 $3) (((%290 $2) $1) 5076 $0))))))))) (%268 (\%567. (%565 (\%563. ((%273 $2) ((%291 $1) 5077 $0)))))))))))`) 5078 val CTL_STRUCTURE_Axiom = 5079 DT(["DISK_THM"], [], 5080 `(%292 (\%568. (%569 (\%570. (%571 (\%572. (%573 (\%574. (%575 5081 (\%576. ((%8 (%300 (\%255. ((%53 ($1 (%288 $0))) ($5 $0))))) ((%8 5082 (%271 (\%281. (%271 (\%282. ((%53 ($2 ((%289 $1) $0))) (((($5 $1) 5083 $0) ($2 $1)) ($2 $0)))))))) ((%8 (%302 (\%269. (%271 (\%282. (%271 5084 (\%285. ((%53 ($3 (((%290 $2) $1) $0))) ((((($5 $2) $1) $0) ($3 $1)) 5085 ($3 $0)))))))))) (%302 (\%269. (%271 (\%282. ((%53 ($2 ((%291 $1) 5086 $0))) ((($3 $1) $0) ($2 $0))))))))))))))))))))`) 5087 val CTL_STRUCTURE_induction = 5088 DT(["DISK_THM"], [], 5089 `(%577 (\%578. ((%63 ((%8 (%300 (\%564. ($1 (%288 $0))))) ((%8 (%271 5090 (\%563. (%271 (\%566. ((%63 ((%8 ($2 $1)) ($2 $0))) ($2 ((%289 $1) 5091 $0)))))))) ((%8 (%271 (\%563. (%271 (\%566. ((%63 ((%8 ($2 $1)) ($2 5092 $0))) (%302 (\%567. ($3 (((%290 $0) $2) $1)))))))))) (%271 (\%563. 5093 ((%63 ($1 $0)) (%302 (\%567. ($2 ((%291 $0) $1))))))))))) (%271 5094 (\%563. ($1 $0))))))`) 5095 val TRANSLATE_ASSIGMENT_CORRECT = 5096 DT(["DISK_THM"], [], 5097 `(%169 (\%405. (%14 (\%425. (%426 (\%427. (%311 (\%312. ((%579 5098 ((%433 (%81 $2)) ((%434 $1) ((%336 $0) $3)))) ((%580 ((%433 $2) 5099 ((%434 $1) $0))) (%355 $3)))))))))))`) 5100 val TRANSLATE_ASSIGMENT_CORRECT_2 = 5101 DT(["DISK_THM"], [], 5102 `(%169 (\%405. (%581 (\%582. ((%579 ((%580 $0) (%355 $1))) ((%433 5103 (%81 (%583 $0))) ((%434 (%584 (%585 $0))) ((%336 (%586 (%585 $0))) 5104 $1))))))))`) 5105 val translate_ind = 5106 DT(["DISK_THM"], [], 5107 `(%577 (\%578. ((%63 ((%8 (%169 (\%405. (%300 (\%406. ((%63 ($2 5108 (%288 $0))) ($2 (%288 ((%407 $1) $0))))))))) ((%8 ($0 (%288 %587))) 5109 ((%8 (%271 (\%408. (%271 (\%409. ((%63 ((%8 ($2 $1)) ($2 $0))) ($2 5110 ((%289 $1) $0)))))))) ((%8 (%302 (\%394. (%271 (\%411. (%271 (\%410. 5111 ((%63 ((%8 ($3 $0)) ($3 $1))) ($3 (((%290 $2) $1) $0)))))))))) (%302 5112 (\%394. (%271 (\%412. ((%63 ($2 $0)) ($2 ((%291 $1) $0)))))))))))) 5113 (%271 (\%588. ($1 $0))))))`) 5114 val translate_def = 5115 DT(["DISK_THM"], [], 5116 `((%8 ((%589 (%400 (%288 ((%407 %405) %406)))) ((%418 (%355 %405)) 5117 (%400 (%288 %406))))) ((%8 ((%589 (%400 (%288 %587))) %417)) ((%8 5118 ((%589 (%400 ((%289 %408) %409))) ((%419 (%400 %408)) (%400 %409)))) 5119 ((%8 ((%589 (%400 (((%290 %394) %411) %410))) (((%420 (%398 %394)) 5120 (%400 %411)) (%400 %410)))) ((%589 (%400 ((%291 %394) %412))) ((%422 5121 (%398 %394)) (%400 %412)))))))`) 5122 val WELL_FORMED_SUB_thm = 5123 DT(["DISK_THM"], [], 5124 `(%271 (\%439. ((%16 (%443 $0)) ((%8 (%447 $0)) (%444 (%400 5125 $0))))))`) 5126 val HOARE_SC_IR = 5127 DT(["DISK_THM"], [], 5128 `(%271 (\%590. (%271 (\%591. (%592 (\%593. (%592 (\%594. (%592 5129 (\%595. (%592 (\%596. ((%63 ((%8 (%443 $5)) ((%8 (%443 $4)) ((%8 5130 (%311 (\%312. ((%63 ($4 $0)) ($3 ((%440 $6) $0)))))) ((%8 (%311 5131 (\%312. ((%63 ($2 $0)) ($1 ((%440 $5) $0)))))) (%311 (\%312. ((%63 5132 ($3 $0)) ($2 $0))))))))) (%311 (\%312. ((%63 ($4 $0)) ($1 ((%440 5133 ((%289 $6) $5)) $0))))))))))))))))))`) 5134 val HOARE_CJ_IR = 5135 DT(["DISK_THM"], [], 5136 `(%302 (\%394. (%271 (\%597. (%271 (\%598. (%592 (\%593. (%592 5137 (\%594. (%592 (\%595. ((%63 ((%8 (%443 $4)) ((%8 (%443 $3)) ((%8 5138 (%311 (\%312. ((%63 ($3 $0)) ($2 ((%440 $5) $0)))))) (%311 (\%312. 5139 ((%63 ($3 $0)) ($1 ((%440 $4) $0))))))))) (%311 (\%312. ((%63 ($3 5140 $0)) (((%599 ((%396 $6) $0)) ($2 ((%440 (((%290 $6) $5) $4)) $0))) 5141 ($1 ((%440 (((%290 $6) $5) $4)) $0)))))))))))))))))))`) 5142 val HOARE_TR_IR = 5143 DT(["DISK_THM"], [], 5144 `(%302 (\%394. (%271 (\%439. (%592 (\%593. ((%63 ((%8 (%443 $1)) 5145 ((%8 (%445 ((%446 (%398 $2)) (%400 $1)))) (%311 (\%312. ((%63 ($1 5146 $0)) ($1 ((%440 $2) $0)))))))) (%311 (\%312. ((%63 ($1 $0)) ((%8 ($1 5147 ((%440 ((%291 $3) $2)) $0))) ((%396 $3) ((%440 ((%291 $3) $2)) 5148 $0)))))))))))))`) 5149 val UPLOAD_LEM_2 = 5150 DT(["DISK_THM"], [], 5151 `(%600 (\%601. (%602 (\%603. (%604 (\%605. ((%606 ((((%607 ((%608 5152 $1) %609)) $0) (%610 $2)) (%610 $2))) $1)))))))`) 5153 val STATEMENT_IS_WELL_FORMED = 5154 DT(["DISK_THM"], [], `(%169 (\%405. (%444 ((%418 (%355 $0)) %417))))`) 5155 val BLOCK_IS_WELL_FORMED = 5156 DT(["DISK_THM"], [], `(%300 (\%406. (%443 (%288 $0))))`) 5157 val IR_SC_IS_WELL_FORMED = 5158 DT(["DISK_THM"], [], 5159 `(%271 (\%590. (%271 (\%591. ((%16 ((%8 (%443 $1)) (%443 $0))) (%443 5160 ((%289 $1) $0)))))))`) 5161 val IR_CJ_IS_WELL_FORMED = 5162 DT(["DISK_THM"], [], 5163 `(%302 (\%394. (%271 (\%597. (%271 (\%598. ((%16 ((%8 (%443 $1)) 5164 (%443 $0))) (%443 (((%290 $2) $1) $0)))))))))`) 5165 val IR_TR_IS_WELL_FORMED = 5166 DT(["DISK_THM"], [], 5167 `(%271 (\%439. (%302 (\%394. ((%16 ((%8 (%443 $1)) (%445 ((%446 5168 (%398 $0)) (%400 $1))))) (%443 ((%291 $0) $1)))))))`) 5169 val WELL_FORMED_thm = 5170 DT(["DISK_THM"], [], 5171 `((%8 ((%16 (%443 (%288 %406))) %73)) ((%8 ((%16 (%443 ((%289 %408) 5172 %409))) ((%8 (%443 %408)) (%443 %409)))) ((%8 ((%16 (%443 (((%290 5173 %394) %408) %409))) ((%8 (%443 %408)) (%443 %409)))) ((%16 (%443 5174 ((%291 %394) %408))) ((%8 (%443 %408)) (%445 ((%446 (%398 %394)) 5175 (%400 %408))))))))`) 5176 val IR_SEMANTICS_SC = 5177 DT(["DISK_THM"], [], 5178 `((%63 ((%8 (%443 %590)) (%443 %591))) ((%315 ((%440 ((%289 %590) 5179 %591)) %312)) ((%440 %591) ((%440 %590) %312))))`) 5180 val IR_SEMANTICS_BLK = 5181 DT(["DISK_THM"], [], 5182 `((%8 ((%315 ((%440 (%288 ((%407 %405) %406))) %312)) ((%440 (%288 5183 %406)) ((%336 %312) %405)))) ((%315 ((%440 (%288 %587)) %312)) 5184 %312))`) 5185 val IR_SEMANTICS_CJ = 5186 DT(["DISK_THM"], [], 5187 `((%63 ((%8 (%443 %597)) (%443 %598))) ((%315 ((%440 (((%290 %394) 5188 %597) %598)) %312)) (((%611 ((%396 %394) %312)) ((%440 %597) %312)) 5189 ((%440 %598) %312))))`) 5190 val IR_SEMANTICS_TR = 5191 DT(["DISK_THM"], [], 5192 `((%63 ((%8 (%443 %439)) (%445 ((%446 (%398 %394)) (%400 %439))))) 5193 ((%315 ((%440 ((%291 %394) %439)) %312)) (((%612 (\%613. (%452 5194 ((%396 %394) $0)))) (%440 %439)) %312)))`) 5195 val SEMANTICS_OF_IR = 5196 DT(["DISK_THM"], [], 5197 `((%63 ((%8 (%443 %590)) (%443 %591))) ((%8 ((%315 ((%440 (%288 5198 ((%407 %405) %406))) %312)) ((%440 (%288 %406)) ((%336 %312) 5199 %405)))) ((%8 ((%315 ((%440 (%288 %587)) %312)) %312)) ((%8 ((%315 5200 ((%440 ((%289 %590) %591)) %312)) ((%440 %591) ((%440 %590) %312)))) 5201 ((%8 ((%315 ((%440 (((%290 %394) %590) %591)) %312)) (((%611 ((%396 5202 %394) %312)) ((%440 %590) %312)) ((%440 %591) %312)))) ((%63 (%445 5203 ((%446 (%398 %394)) (%400 %590)))) ((%315 ((%440 ((%291 %394) %590)) 5204 %312)) (((%612 (\%613. (%452 ((%396 %394) $0)))) (%440 %590)) 5205 %312))))))))`) 5206 end 5207 val _ = DB.bindl "IL" 5208 [("MREG_TY_DEF",MREG_TY_DEF,DB.Def), ("MREG_BIJ",MREG_BIJ,DB.Def), 5209 ("R0",R0,DB.Def), ("R1",R1,DB.Def), ("R2",R2,DB.Def), ("R3",R3,DB.Def), 5210 ("R4",R4,DB.Def), ("R5",R5,DB.Def), ("R6",R6,DB.Def), ("R7",R7,DB.Def), 5211 ("R8",R8,DB.Def), ("R9",R9,DB.Def), ("R10",R10,DB.Def), 5212 ("R11",R11,DB.Def), ("R12",R12,DB.Def), ("R13",R13,DB.Def), 5213 ("R14",R14,DB.Def), ("MREG_size_def",MREG_size_def,DB.Def), 5214 ("MREG_case",MREG_case,DB.Def), ("MEXP_TY_DEF",MEXP_TY_DEF,DB.Def), 5215 ("MEXP_repfns",MEXP_repfns,DB.Def), ("IL0_def",IL0_def,DB.Def), 5216 ("IL1_def",IL1_def,DB.Def), ("MR",MR,DB.Def), ("MC",MC,DB.Def), 5217 ("MEXP_case_def",MEXP_case_def,DB.Def), 5218 ("MEXP_size_def",MEXP_size_def,DB.Def), 5219 ("index_of_reg_def",index_of_reg_def,DB.Def), 5220 ("from_reg_index_def",from_reg_index_def,DB.Def), 5221 ("toREG_def",toREG_def,DB.Def), ("toMEM_def",toMEM_def,DB.Def), 5222 ("toEXP_def",toEXP_def,DB.Def), ("DOPER_TY_DEF",DOPER_TY_DEF,DB.Def), 5223 ("DOPER_repfns",DOPER_repfns,DB.Def), ("IL2_def",IL2_def,DB.Def), 5224 ("IL3_def",IL3_def,DB.Def), ("IL4_def",IL4_def,DB.Def), 5225 ("IL5_def",IL5_def,DB.Def), ("IL6_def",IL6_def,DB.Def), 5226 ("IL7_def",IL7_def,DB.Def), ("IL8_def",IL8_def,DB.Def), 5227 ("IL9_def",IL9_def,DB.Def), ("IL10_def",IL10_def,DB.Def), 5228 ("IL11_def",IL11_def,DB.Def), ("IL12_def",IL12_def,DB.Def), 5229 ("IL13_def",IL13_def,DB.Def), ("IL14_def",IL14_def,DB.Def), 5230 ("IL15_def",IL15_def,DB.Def), ("IL16_def",IL16_def,DB.Def), 5231 ("IL17_def",IL17_def,DB.Def), ("MLDR",MLDR,DB.Def), 5232 ("MSTR",MSTR,DB.Def), ("MMOV",MMOV,DB.Def), ("MADD",MADD,DB.Def), 5233 ("MSUB",MSUB,DB.Def), ("MRSB",MRSB,DB.Def), ("MMUL",MMUL,DB.Def), 5234 ("MAND",MAND,DB.Def), ("MORR",MORR,DB.Def), ("MEOR",MEOR,DB.Def), 5235 ("MLSL",MLSL,DB.Def), ("MLSR",MLSR,DB.Def), ("MASR",MASR,DB.Def), 5236 ("MROR",MROR,DB.Def), ("MPUSH",MPUSH,DB.Def), ("MPOP",MPOP,DB.Def), 5237 ("DOPER_case_def",DOPER_case_def,DB.Def), 5238 ("DOPER_size_def",DOPER_size_def,DB.Def), 5239 ("CTL_STRUCTURE_TY_DEF",CTL_STRUCTURE_TY_DEF,DB.Def), 5240 ("CTL_STRUCTURE_repfns",CTL_STRUCTURE_repfns,DB.Def), 5241 ("IL18_def",IL18_def,DB.Def), ("IL19_def",IL19_def,DB.Def), 5242 ("IL20_def",IL20_def,DB.Def), ("IL21_def",IL21_def,DB.Def), 5243 ("BLK",BLK,DB.Def), ("SC",SC,DB.Def), ("CJ",CJ,DB.Def), 5244 ("TR",TR,DB.Def), 5245 ("CTL_STRUCTURE_case_def",CTL_STRUCTURE_case_def,DB.Def), 5246 ("CTL_STRUCTURE_size_def",CTL_STRUCTURE_size_def,DB.Def), 5247 ("pushL_def",pushL_def,DB.Def), ("popL_def",popL_def,DB.Def), 5248 ("mdecode_def",mdecode_def,DB.Def), 5249 ("translate_assignment_def",translate_assignment_def,DB.Def), 5250 ("translate_condition_def",translate_condition_def,DB.Def), 5251 ("eval_il_cond_def",eval_il_cond_def,DB.Def), 5252 ("translate_primitive_def",translate_primitive_def,DB.Def), 5253 ("run_arm_def",run_arm_def,DB.Def), ("run_ir_def",run_ir_def,DB.Def), 5254 ("WELL_FORMED_def",WELL_FORMED_def,DB.Def), 5255 ("WELL_FORMED_SUB_def",WELL_FORMED_SUB_def,DB.Def), 5256 ("num2MREG_MREG2num",num2MREG_MREG2num,DB.Thm), 5257 ("MREG2num_num2MREG",MREG2num_num2MREG,DB.Thm), 5258 ("num2MREG_11",num2MREG_11,DB.Thm), ("MREG2num_11",MREG2num_11,DB.Thm), 5259 ("num2MREG_ONTO",num2MREG_ONTO,DB.Thm), 5260 ("MREG2num_ONTO",MREG2num_ONTO,DB.Thm), 5261 ("num2MREG_thm",num2MREG_thm,DB.Thm), 5262 ("MREG2num_thm",MREG2num_thm,DB.Thm), 5263 ("MREG_EQ_MREG",MREG_EQ_MREG,DB.Thm), 5264 ("MREG_case_def",MREG_case_def,DB.Thm), 5265 ("datatype_MREG",datatype_MREG,DB.Thm), 5266 ("MREG_distinct",MREG_distinct,DB.Thm), 5267 ("MREG_case_cong",MREG_case_cong,DB.Thm), 5268 ("MREG_nchotomy",MREG_nchotomy,DB.Thm), 5269 ("MREG_Axiom",MREG_Axiom,DB.Thm), 5270 ("MREG_induction",MREG_induction,DB.Thm), 5271 ("datatype_MEXP",datatype_MEXP,DB.Thm), ("MEXP_11",MEXP_11,DB.Thm), 5272 ("MEXP_distinct",MEXP_distinct,DB.Thm), 5273 ("MEXP_case_cong",MEXP_case_cong,DB.Thm), 5274 ("MEXP_nchotomy",MEXP_nchotomy,DB.Thm), 5275 ("MEXP_Axiom",MEXP_Axiom,DB.Thm), 5276 ("MEXP_induction",MEXP_induction,DB.Thm), 5277 ("from_reg_index_thm",from_reg_index_thm,DB.Thm), 5278 ("datatype_DOPER",datatype_DOPER,DB.Thm), ("DOPER_11",DOPER_11,DB.Thm), 5279 ("DOPER_distinct",DOPER_distinct,DB.Thm), 5280 ("DOPER_case_cong",DOPER_case_cong,DB.Thm), 5281 ("DOPER_nchotomy",DOPER_nchotomy,DB.Thm), 5282 ("DOPER_Axiom",DOPER_Axiom,DB.Thm), 5283 ("DOPER_induction",DOPER_induction,DB.Thm), 5284 ("datatype_CTL_STRUCTURE",datatype_CTL_STRUCTURE,DB.Thm), 5285 ("CTL_STRUCTURE_11",CTL_STRUCTURE_11,DB.Thm), 5286 ("CTL_STRUCTURE_distinct",CTL_STRUCTURE_distinct,DB.Thm), 5287 ("CTL_STRUCTURE_case_cong",CTL_STRUCTURE_case_cong,DB.Thm), 5288 ("CTL_STRUCTURE_nchotomy",CTL_STRUCTURE_nchotomy,DB.Thm), 5289 ("CTL_STRUCTURE_Axiom",CTL_STRUCTURE_Axiom,DB.Thm), 5290 ("CTL_STRUCTURE_induction",CTL_STRUCTURE_induction,DB.Thm), 5291 ("TRANSLATE_ASSIGMENT_CORRECT",TRANSLATE_ASSIGMENT_CORRECT,DB.Thm), 5292 ("TRANSLATE_ASSIGMENT_CORRECT_2",TRANSLATE_ASSIGMENT_CORRECT_2,DB.Thm), 5293 ("translate_ind",translate_ind,DB.Thm), 5294 ("translate_def",translate_def,DB.Thm), 5295 ("WELL_FORMED_SUB_thm",WELL_FORMED_SUB_thm,DB.Thm), 5296 ("HOARE_SC_IR",HOARE_SC_IR,DB.Thm), ("HOARE_CJ_IR",HOARE_CJ_IR,DB.Thm), 5297 ("HOARE_TR_IR",HOARE_TR_IR,DB.Thm), 5298 ("UPLOAD_LEM_2",UPLOAD_LEM_2,DB.Thm), 5299 ("STATEMENT_IS_WELL_FORMED",STATEMENT_IS_WELL_FORMED,DB.Thm), 5300 ("BLOCK_IS_WELL_FORMED",BLOCK_IS_WELL_FORMED,DB.Thm), 5301 ("IR_SC_IS_WELL_FORMED",IR_SC_IS_WELL_FORMED,DB.Thm), 5302 ("IR_CJ_IS_WELL_FORMED",IR_CJ_IS_WELL_FORMED,DB.Thm), 5303 ("IR_TR_IS_WELL_FORMED",IR_TR_IS_WELL_FORMED,DB.Thm), 5304 ("WELL_FORMED_thm",WELL_FORMED_thm,DB.Thm), 5305 ("IR_SEMANTICS_SC",IR_SEMANTICS_SC,DB.Thm), 5306 ("IR_SEMANTICS_BLK",IR_SEMANTICS_BLK,DB.Thm), 5307 ("IR_SEMANTICS_CJ",IR_SEMANTICS_CJ,DB.Thm), 5308 ("IR_SEMANTICS_TR",IR_SEMANTICS_TR,DB.Thm), 5309 ("SEMANTICS_OF_IR",SEMANTICS_OF_IR,DB.Thm)] 5310 5311 local open Portable GrammarSpecials Parse 5312 in 5313 val _ = mk_local_grms [("ARMCompositionTheory.ARMComposition_grammars", 5314 ARMCompositionTheory.ARMComposition_grammars)] 5315 val _ = List.app (update_grms reveal) [] 5316 val _ = update_grms temp_add_type "MREG" 5317 val _ = update_grms 5318 (temp_overload_on_by_nametype "MREG2num") 5319 {Name = "MREG2num", Thy = "IL"} 5320 val _ = update_grms 5321 (temp_overload_on_by_nametype "num2MREG") 5322 {Name = "num2MREG", Thy = "IL"} 5323 val _ = update_grms 5324 (temp_overload_on_by_nametype "R0") 5325 {Name = "R0", Thy = "IL"} 5326 val _ = update_grms 5327 (temp_overload_on_by_nametype "R1") 5328 {Name = "R1", Thy = "IL"} 5329 val _ = update_grms 5330 (temp_overload_on_by_nametype "R2") 5331 {Name = "R2", Thy = "IL"} 5332 val _ = update_grms 5333 (temp_overload_on_by_nametype "R3") 5334 {Name = "R3", Thy = "IL"} 5335 val _ = update_grms 5336 (temp_overload_on_by_nametype "R4") 5337 {Name = "R4", Thy = "IL"} 5338 val _ = update_grms 5339 (temp_overload_on_by_nametype "R5") 5340 {Name = "R5", Thy = "IL"} 5341 val _ = update_grms 5342 (temp_overload_on_by_nametype "R6") 5343 {Name = "R6", Thy = "IL"} 5344 val _ = update_grms 5345 (temp_overload_on_by_nametype "R7") 5346 {Name = "R7", Thy = "IL"} 5347 val _ = update_grms 5348 (temp_overload_on_by_nametype "R8") 5349 {Name = "R8", Thy = "IL"} 5350 val _ = update_grms 5351 (temp_overload_on_by_nametype "R9") 5352 {Name = "R9", Thy = "IL"} 5353 val _ = update_grms 5354 (temp_overload_on_by_nametype "R10") 5355 {Name = "R10", Thy = "IL"} 5356 val _ = update_grms 5357 (temp_overload_on_by_nametype "R11") 5358 {Name = "R11", Thy = "IL"} 5359 val _ = update_grms 5360 (temp_overload_on_by_nametype "R12") 5361 {Name = "R12", Thy = "IL"} 5362 val _ = update_grms 5363 (temp_overload_on_by_nametype "R13") 5364 {Name = "R13", Thy = "IL"} 5365 val _ = update_grms 5366 (temp_overload_on_by_nametype "R14") 5367 {Name = "R14", Thy = "IL"} 5368 val _ = update_grms 5369 (temp_overload_on_by_nametype "MREG_size") 5370 {Name = "MREG_size", Thy = "IL"} 5371 val _ = update_grms 5372 (temp_overload_on_by_nametype "MREG_case") 5373 {Name = "MREG_case", Thy = "IL"} 5374 val _ = update_grms 5375 temp_type_abbrev 5376 ("MMEM", T"prod" "pair" [T"num" "num" [], T"OFFSET" "preARM" []]) 5377 val _ = update_grms temp_add_type "MEXP" 5378 val _ = update_grms 5379 (temp_overload_on_by_nametype "dest_MEXP") 5380 {Name = "dest_MEXP", Thy = "IL"} 5381 val _ = update_grms 5382 (temp_overload_on_by_nametype "mk_MEXP") 5383 {Name = "mk_MEXP", Thy = "IL"} 5384 val _ = update_grms 5385 (temp_overload_on_by_nametype "IL0") 5386 {Name = "IL0", Thy = "IL"} 5387 val _ = update_grms 5388 (temp_overload_on_by_nametype "IL1") 5389 {Name = "IL1", Thy = "IL"} 5390 val _ = update_grms 5391 (temp_overload_on_by_nametype "MR") 5392 {Name = "MR", Thy = "IL"} 5393 val _ = update_grms 5394 (temp_overload_on_by_nametype "MC") 5395 {Name = "MC", Thy = "IL"} 5396 val _ = update_grms 5397 (temp_overload_on_by_nametype "MEXP_case") 5398 {Name = "MEXP_case", Thy = "IL"} 5399 val _ = update_grms 5400 (temp_overload_on_by_nametype "MEXP_size") 5401 {Name = "MEXP_size", Thy = "IL"} 5402 val _ = update_grms 5403 (temp_overload_on_by_nametype "index_of_reg") 5404 {Name = "index_of_reg", Thy = "IL"} 5405 val _ = update_grms 5406 (temp_overload_on_by_nametype "from_reg_index") 5407 {Name = "from_reg_index", Thy = "IL"} 5408 val _ = update_grms 5409 (temp_overload_on_by_nametype "toREG") 5410 {Name = "toREG", Thy = "IL"} 5411 val _ = update_grms 5412 (temp_overload_on_by_nametype "toMEM") 5413 {Name = "toMEM", Thy = "IL"} 5414 val _ = update_grms 5415 (temp_overload_on_by_nametype "toEXP") 5416 {Name = "toEXP", Thy = "IL"} 5417 val _ = update_grms temp_add_type "DOPER" 5418 val _ = update_grms 5419 (temp_overload_on_by_nametype "dest_DOPER") 5420 {Name = "dest_DOPER", Thy = "IL"} 5421 val _ = update_grms 5422 (temp_overload_on_by_nametype "mk_DOPER") 5423 {Name = "mk_DOPER", Thy = "IL"} 5424 val _ = update_grms 5425 (temp_overload_on_by_nametype "IL2") 5426 {Name = "IL2", Thy = "IL"} 5427 val _ = update_grms 5428 (temp_overload_on_by_nametype "IL3") 5429 {Name = "IL3", Thy = "IL"} 5430 val _ = update_grms 5431 (temp_overload_on_by_nametype "IL4") 5432 {Name = "IL4", Thy = "IL"} 5433 val _ = update_grms 5434 (temp_overload_on_by_nametype "IL5") 5435 {Name = "IL5", Thy = "IL"} 5436 val _ = update_grms 5437 (temp_overload_on_by_nametype "IL6") 5438 {Name = "IL6", Thy = "IL"} 5439 val _ = update_grms 5440 (temp_overload_on_by_nametype "IL7") 5441 {Name = "IL7", Thy = "IL"} 5442 val _ = update_grms 5443 (temp_overload_on_by_nametype "IL8") 5444 {Name = "IL8", Thy = "IL"} 5445 val _ = update_grms 5446 (temp_overload_on_by_nametype "IL9") 5447 {Name = "IL9", Thy = "IL"} 5448 val _ = update_grms 5449 (temp_overload_on_by_nametype "IL10") 5450 {Name = "IL10", Thy = "IL"} 5451 val _ = update_grms 5452 (temp_overload_on_by_nametype "IL11") 5453 {Name = "IL11", Thy = "IL"} 5454 val _ = update_grms 5455 (temp_overload_on_by_nametype "IL12") 5456 {Name = "IL12", Thy = "IL"} 5457 val _ = update_grms 5458 (temp_overload_on_by_nametype "IL13") 5459 {Name = "IL13", Thy = "IL"} 5460 val _ = update_grms 5461 (temp_overload_on_by_nametype "IL14") 5462 {Name = "IL14", Thy = "IL"} 5463 val _ = update_grms 5464 (temp_overload_on_by_nametype "IL15") 5465 {Name = "IL15", Thy = "IL"} 5466 val _ = update_grms 5467 (temp_overload_on_by_nametype "IL16") 5468 {Name = "IL16", Thy = "IL"} 5469 val _ = update_grms 5470 (temp_overload_on_by_nametype "IL17") 5471 {Name = "IL17", Thy = "IL"} 5472 val _ = update_grms 5473 (temp_overload_on_by_nametype "MLDR") 5474 {Name = "MLDR", Thy = "IL"} 5475 val _ = update_grms 5476 (temp_overload_on_by_nametype "MSTR") 5477 {Name = "MSTR", Thy = "IL"} 5478 val _ = update_grms 5479 (temp_overload_on_by_nametype "MMOV") 5480 {Name = "MMOV", Thy = "IL"} 5481 val _ = update_grms 5482 (temp_overload_on_by_nametype "MADD") 5483 {Name = "MADD", Thy = "IL"} 5484 val _ = update_grms 5485 (temp_overload_on_by_nametype "MSUB") 5486 {Name = "MSUB", Thy = "IL"} 5487 val _ = update_grms 5488 (temp_overload_on_by_nametype "MRSB") 5489 {Name = "MRSB", Thy = "IL"} 5490 val _ = update_grms 5491 (temp_overload_on_by_nametype "MMUL") 5492 {Name = "MMUL", Thy = "IL"} 5493 val _ = update_grms 5494 (temp_overload_on_by_nametype "MAND") 5495 {Name = "MAND", Thy = "IL"} 5496 val _ = update_grms 5497 (temp_overload_on_by_nametype "MORR") 5498 {Name = "MORR", Thy = "IL"} 5499 val _ = update_grms 5500 (temp_overload_on_by_nametype "MEOR") 5501 {Name = "MEOR", Thy = "IL"} 5502 val _ = update_grms 5503 (temp_overload_on_by_nametype "MLSL") 5504 {Name = "MLSL", Thy = "IL"} 5505 val _ = update_grms 5506 (temp_overload_on_by_nametype "MLSR") 5507 {Name = "MLSR", Thy = "IL"} 5508 val _ = update_grms 5509 (temp_overload_on_by_nametype "MASR") 5510 {Name = "MASR", Thy = "IL"} 5511 val _ = update_grms 5512 (temp_overload_on_by_nametype "MROR") 5513 {Name = "MROR", Thy = "IL"} 5514 val _ = update_grms 5515 (temp_overload_on_by_nametype "MPUSH") 5516 {Name = "MPUSH", Thy = "IL"} 5517 val _ = update_grms 5518 (temp_overload_on_by_nametype "MPOP") 5519 {Name = "MPOP", Thy = "IL"} 5520 val _ = update_grms 5521 (temp_overload_on_by_nametype "DOPER_case") 5522 {Name = "DOPER_case", Thy = "IL"} 5523 val _ = update_grms 5524 (temp_overload_on_by_nametype "DOPER_size") 5525 {Name = "DOPER_size", Thy = "IL"} 5526 val _ = update_grms 5527 temp_type_abbrev 5528 ("CEXP", T"prod" "pair" 5529 [T"MREG" "IL" [], 5530 T"prod" "pair" [T"COND" "preARM" [], T"MEXP" "IL" []]]) 5531 val _ = update_grms temp_add_type "CTL_STRUCTURE" 5532 val _ = update_grms 5533 (temp_overload_on_by_nametype "dest_CTL_STRUCTURE") 5534 {Name = "dest_CTL_STRUCTURE", Thy = "IL"} 5535 val _ = update_grms 5536 (temp_overload_on_by_nametype "mk_CTL_STRUCTURE") 5537 {Name = "mk_CTL_STRUCTURE", Thy = "IL"} 5538 val _ = update_grms 5539 (temp_overload_on_by_nametype "IL18") 5540 {Name = "IL18", Thy = "IL"} 5541 val _ = update_grms 5542 (temp_overload_on_by_nametype "IL19") 5543 {Name = "IL19", Thy = "IL"} 5544 val _ = update_grms 5545 (temp_overload_on_by_nametype "IL20") 5546 {Name = "IL20", Thy = "IL"} 5547 val _ = update_grms 5548 (temp_overload_on_by_nametype "IL21") 5549 {Name = "IL21", Thy = "IL"} 5550 val _ = update_grms 5551 (temp_overload_on_by_nametype "BLK") 5552 {Name = "BLK", Thy = "IL"} 5553 val _ = update_grms 5554 (temp_overload_on_by_nametype "SC") 5555 {Name = "SC", Thy = "IL"} 5556 val _ = update_grms 5557 (temp_overload_on_by_nametype "CJ") 5558 {Name = "CJ", Thy = "IL"} 5559 val _ = update_grms 5560 (temp_overload_on_by_nametype "TR") 5561 {Name = "TR", Thy = "IL"} 5562 val _ = update_grms 5563 (temp_overload_on_by_nametype "CTL_STRUCTURE_case") 5564 {Name = "CTL_STRUCTURE_case", Thy = "IL"} 5565 val _ = update_grms 5566 (temp_overload_on_by_nametype "CTL_STRUCTURE_size") 5567 {Name = "CTL_STRUCTURE_size", Thy = "IL"} 5568 val _ = update_grms 5569 (temp_overload_on_by_nametype "pushL") 5570 {Name = "pushL", Thy = "IL"} 5571 val _ = update_grms 5572 (temp_overload_on_by_nametype "popL") 5573 {Name = "popL", Thy = "IL"} 5574 val _ = update_grms 5575 (temp_overload_on_by_nametype "mdecode") 5576 {Name = "mdecode", Thy = "IL"} 5577 val _ = update_grms 5578 (temp_overload_on_by_nametype "translate_assignment") 5579 {Name = "translate_assignment", Thy = "IL"} 5580 val _ = update_grms 5581 (temp_overload_on_by_nametype "translate_condition") 5582 {Name = "translate_condition", Thy = "IL"} 5583 val _ = update_grms 5584 (temp_overload_on_by_nametype "eval_il_cond") 5585 {Name = "eval_il_cond", Thy = "IL"} 5586 val _ = update_grms 5587 (temp_overload_on_by_nametype "translate") 5588 {Name = "translate", Thy = "IL"} 5589 val _ = update_grms 5590 (temp_overload_on_by_nametype "run_arm") 5591 {Name = "run_arm", Thy = "IL"} 5592 val _ = update_grms 5593 (temp_overload_on_by_nametype "run_ir") 5594 {Name = "run_ir", Thy = "IL"} 5595 val _ = update_grms 5596 (temp_overload_on_by_nametype "WELL_FORMED") 5597 {Name = "WELL_FORMED", Thy = "IL"} 5598 val _ = update_grms 5599 (temp_overload_on_by_nametype "WELL_FORMED_SUB") 5600 {Name = "WELL_FORMED_SUB", Thy = "IL"} 5601 val IL_grammars = Parse.current_lgrms() 5602 end 5603 5604 5605 5606 5607 val _ = 5608 TypeBase.write [ 5609 let 5610 open TypeBasePure 5611 val tyinfo0 = mk_datatype_info 5612 {ax=ORIG MREG_Axiom, 5613 case_def=MREG_case_def, 5614 case_cong=MREG_case_cong, 5615 induction=ORIG MREG_induction, 5616 nchotomy=MREG_nchotomy, 5617 size=SOME(Parse.Term`(IL$MREG_size) :(IL$MREG) -> (num$num)`, 5618 ORIG MREG_size_def), 5619 encode = NONE, 5620 lift=NONE, 5621 one_one=NONE, 5622 distinct=SOME MREG_distinct, 5623 fields=let fun T t s A = mk_thy_type{Thy=t,Tyop=s,Args=A} 5624 val U = mk_vartype 5625in 5626[] end, 5627 accessors=[], 5628 updates=[]} 5629 val tyinfo0 = tyinfo0 5630 val () = computeLib.write_datatype_info tyinfo0 5631 in 5632 tyinfo0 5633 end 5634 ]; 5635 5636 5637 val _ = 5638 TypeBase.write [ 5639 let 5640 open TypeBasePure 5641 val tyinfo0 = mk_datatype_info 5642 {ax=ORIG MEXP_Axiom, 5643 case_def=MEXP_case_def, 5644 case_cong=MEXP_case_cong, 5645 induction=ORIG MEXP_induction, 5646 nchotomy=MEXP_nchotomy, 5647 size=SOME(Parse.Term`(IL$MEXP_size) :(IL$MEXP) -> (num$num)`, 5648 ORIG MEXP_size_def), 5649 encode = NONE, 5650 lift=NONE, 5651 one_one=SOME MEXP_11, 5652 distinct=SOME MEXP_distinct, 5653 fields=let fun T t s A = mk_thy_type{Thy=t,Tyop=s,Args=A} 5654 val U = mk_vartype 5655in 5656[] end, 5657 accessors=[], 5658 updates=[]} 5659 val tyinfo0 = tyinfo0 5660 val () = computeLib.write_datatype_info tyinfo0 5661 in 5662 tyinfo0 5663 end 5664 ]; 5665 5666 5667 val _ = computeLib.add_funs [index_of_reg_def]; 5668 5669 val _ = computeLib.add_funs [from_reg_index_def]; 5670 5671 val _ = computeLib.add_funs [toREG_def]; 5672 5673 val _ = computeLib.add_funs [toMEM_def]; 5674 5675 val _ = computeLib.add_funs [toEXP_def]; 5676 5677 val _ = 5678 TypeBase.write [ 5679 let 5680 open TypeBasePure 5681 val tyinfo0 = mk_datatype_info 5682 {ax=ORIG DOPER_Axiom, 5683 case_def=DOPER_case_def, 5684 case_cong=DOPER_case_cong, 5685 induction=ORIG DOPER_induction, 5686 nchotomy=DOPER_nchotomy, 5687 size=SOME(Parse.Term`(IL$DOPER_size) :(IL$DOPER) -> (num$num)`, 5688 ORIG DOPER_size_def), 5689 encode = NONE, 5690 lift=NONE, 5691 one_one=SOME DOPER_11, 5692 distinct=SOME DOPER_distinct, 5693 fields=let fun T t s A = mk_thy_type{Thy=t,Tyop=s,Args=A} 5694 val U = mk_vartype 5695in 5696[] end, 5697 accessors=[], 5698 updates=[]} 5699 val tyinfo0 = tyinfo0 5700 val () = computeLib.write_datatype_info tyinfo0 5701 in 5702 tyinfo0 5703 end 5704 ]; 5705 5706 5707 val _ = 5708 TypeBase.write [ 5709 let 5710 open TypeBasePure 5711 val tyinfo0 = mk_datatype_info 5712 {ax=ORIG CTL_STRUCTURE_Axiom, 5713 case_def=CTL_STRUCTURE_case_def, 5714 case_cong=CTL_STRUCTURE_case_cong, 5715 induction=ORIG CTL_STRUCTURE_induction, 5716 nchotomy=CTL_STRUCTURE_nchotomy, 5717 size=SOME(Parse.Term`(IL$CTL_STRUCTURE_size) :(IL$CTL_STRUCTURE) -> (num$num)`, 5718 ORIG CTL_STRUCTURE_size_def), 5719 encode = NONE, 5720 lift=NONE, 5721 one_one=SOME CTL_STRUCTURE_11, 5722 distinct=SOME CTL_STRUCTURE_distinct, 5723 fields=let fun T t s A = mk_thy_type{Thy=t,Tyop=s,Args=A} 5724 val U = mk_vartype 5725in 5726[] end, 5727 accessors=[], 5728 updates=[]} 5729 val tyinfo0 = tyinfo0 5730 val () = computeLib.write_datatype_info tyinfo0 5731 in 5732 tyinfo0 5733 end 5734 ]; 5735 5736 5737 val _ = computeLib.add_funs [pushL_def]; 5738 5739 val _ = computeLib.add_funs [popL_def]; 5740 5741 val _ = computeLib.add_funs [mdecode_def]; 5742 5743 val _ = computeLib.add_funs [translate_assignment_def]; 5744 5745 val _ = computeLib.add_funs [translate_condition_def]; 5746 5747 val _ = computeLib.add_funs [eval_il_cond_def]; 5748 5749 val _ = computeLib.add_funs [translate_def]; 5750 5751 val _ = computeLib.add_funs [run_arm_def]; 5752 5753 val _ = computeLib.add_funs [run_ir_def]; 5754 5755 val _ = computeLib.add_funs [WELL_FORMED_def]; 5756 5757 val _ = computeLib.add_funs [WELL_FORMED_SUB_def]; 5758 val _ = if !Globals.print_thy_loads then print "done\n" else () 5759 5760end 5761