Changeset 3001


Ignore:
Timestamp:
Mar 28, 2013, 1:02:48 PM (4 years ago)
Author:
sacerdot
Message:

New extraction.

Location:
extracted
Files:
47 edited

Legend:

Unmodified
Added
Removed
  • extracted/backEndOps.ml

    r2977 r3001  
    402402    -> (BitVector.bit -> op2 -> BitVector.byte -> BitVector.byte ->
    403403    (BitVector.byte, BitVector.bit) Types.prod) -> 'a1) -> eval -> 'a1 **)
    404 let rec eval_rect_Type4 h_mk_Eval x_185 =
    405   let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_185 in
     404let rec eval_rect_Type4 h_mk_Eval x_3714 =
     405  let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_3714 in
    406406  h_mk_Eval opaccs0 op4 op5
    407407
     
    411411    -> (BitVector.bit -> op2 -> BitVector.byte -> BitVector.byte ->
    412412    (BitVector.byte, BitVector.bit) Types.prod) -> 'a1) -> eval -> 'a1 **)
    413 let rec eval_rect_Type5 h_mk_Eval x_187 =
    414   let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_187 in
     413let rec eval_rect_Type5 h_mk_Eval x_3716 =
     414  let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_3716 in
    415415  h_mk_Eval opaccs0 op4 op5
    416416
     
    420420    -> (BitVector.bit -> op2 -> BitVector.byte -> BitVector.byte ->
    421421    (BitVector.byte, BitVector.bit) Types.prod) -> 'a1) -> eval -> 'a1 **)
    422 let rec eval_rect_Type3 h_mk_Eval x_189 =
    423   let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_189 in
     422let rec eval_rect_Type3 h_mk_Eval x_3718 =
     423  let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_3718 in
    424424  h_mk_Eval opaccs0 op4 op5
    425425
     
    429429    -> (BitVector.bit -> op2 -> BitVector.byte -> BitVector.byte ->
    430430    (BitVector.byte, BitVector.bit) Types.prod) -> 'a1) -> eval -> 'a1 **)
    431 let rec eval_rect_Type2 h_mk_Eval x_191 =
    432   let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_191 in
     431let rec eval_rect_Type2 h_mk_Eval x_3720 =
     432  let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_3720 in
    433433  h_mk_Eval opaccs0 op4 op5
    434434
     
    438438    -> (BitVector.bit -> op2 -> BitVector.byte -> BitVector.byte ->
    439439    (BitVector.byte, BitVector.bit) Types.prod) -> 'a1) -> eval -> 'a1 **)
    440 let rec eval_rect_Type1 h_mk_Eval x_193 =
    441   let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_193 in
     440let rec eval_rect_Type1 h_mk_Eval x_3722 =
     441  let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_3722 in
    442442  h_mk_Eval opaccs0 op4 op5
    443443
     
    447447    -> (BitVector.bit -> op2 -> BitVector.byte -> BitVector.byte ->
    448448    (BitVector.byte, BitVector.bit) Types.prod) -> 'a1) -> eval -> 'a1 **)
    449 let rec eval_rect_Type0 h_mk_Eval x_195 =
    450   let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_195 in
     449let rec eval_rect_Type0 h_mk_Eval x_3724 =
     450  let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_3724 in
    451451  h_mk_Eval opaccs0 op4 op5
    452452
     
    702702                     (Nat.S (Nat.S Nat.O)))))))) (Nat.S (Nat.S (Nat.S (Nat.S
    703703                     (Nat.S (Nat.S (Nat.S (Nat.S Nat.O))))))))
    704                      (Pointers.offv ptr.Pointers.poff)
     704                     (Pointers.offv (Pointers.poff ptr))
    705705                 in
    706706                 let { Types.fst = rslt; Types.snd = carry0 } =
     
    708708                 in
    709709                 let p0 = Nat.O in
    710                  let ptr' = { Pointers.pblock = ptr.Pointers.pblock;
     710                 let ptr' = { Pointers.pblock = (Pointers.pblock ptr);
    711711                   Pointers.poff =
    712712                   (Vector.append (Nat.S (Nat.S (Nat.S (Nat.S (Nat.S (Nat.S
     
    729729              (match Bool.andb
    730730                       (Bool.andb (ByteValues.eq_add_or_sub is_add is_add')
    731                          (Pointers.eq_block ptr.Pointers.pblock
    732                            ptr'.Pointers.pblock))
     731                         (Pointers.eq_block (Pointers.pblock ptr)
     732                           (Pointers.pblock ptr')))
    733733                       (ByteValues.eq_bv_suffix (Nat.S (Nat.S (Nat.S (Nat.S
    734734                         (Nat.S (Nat.S (Nat.S (Nat.S Nat.O)))))))) (Nat.S
     
    736736                         Nat.O)))))))) (Nat.S (Nat.S (Nat.S (Nat.S (Nat.S
    737737                         (Nat.S (Nat.S (Nat.S Nat.O))))))))
    738                          (Pointers.offv ptr.Pointers.poff)
    739                          (Pointers.offv ptr'.Pointers.poff)) with
     738                         (Pointers.offv (Pointers.poff ptr))
     739                         (Pointers.offv (Pointers.poff ptr'))) with
    740740               | Bool.True ->
    741741                 Util.if_then_else_safe
     
    746746                       (Nat.S (Nat.S Nat.O)))))))) (Nat.S (Nat.S (Nat.S
    747747                       (Nat.S (Nat.S (Nat.S (Nat.S (Nat.S Nat.O))))))))
    748                        (Pointers.offv ptr.Pointers.poff)
     748                       (Pointers.offv (Pointers.poff ptr))
    749749                   in
    750750                   let o1o1 = Vector.VCons ((Nat.S Nat.O), o1o0.Types.fst,
     
    757757                   in
    758758                   let part1 = Nat.S Nat.O in
    759                    let ptr'' = { Pointers.pblock = ptr.Pointers.pblock;
     759                   let ptr'' = { Pointers.pblock = (Pointers.pblock ptr);
    760760                     Pointers.poff =
    761761                     (Vector.vflatten (Nat.S (Nat.S Nat.O)) (Nat.S (Nat.S
     
    939939           | AST.XData ->
    940940             (match Bool.andb
    941                       (Pointers.eq_block ptr1.Pointers.pblock
    942                         ptr2.Pointers.pblock)
     941                      (Pointers.eq_block (Pointers.pblock ptr1)
     942                        (Pointers.pblock ptr2))
    943943                      (Nat.eqb (ByteValues.part_no p1)
    944944                        (ByteValues.part_no p2)) with
     
    951951                    let by1 =
    952952                      byte_at AST.size_pointer
    953                         (Pointers.offv ptr1.Pointers.poff)
     953                        (Pointers.offv (Pointers.poff ptr1))
    954954                        (ByteValues.part_no p1)
    955955                    in
    956956                    let by2 =
    957957                      byte_at AST.size_pointer
    958                         (Pointers.offv ptr2.Pointers.poff)
     958                        (Pointers.offv (Pointers.poff ptr2))
    959959                        (ByteValues.part_no p1)
    960960                    in
     
    10371037             let eq_at = fun p ptr1 ptr2 ->
    10381038               Bool.andb
    1039                  (Pointers.eq_block ptr1.Pointers.pblock
    1040                    ptr2.Pointers.pblock)
     1039                 (Pointers.eq_block (Pointers.pblock ptr1)
     1040                   (Pointers.pblock ptr2))
    10411041                 (BitVector.eq_bv (Nat.S (Nat.S (Nat.S (Nat.S (Nat.S (Nat.S
    10421042                   (Nat.S (Nat.S Nat.O))))))))
    10431043                   (byte_at AST.size_pointer
    1044                      (Pointers.offv ptr1.Pointers.poff)
     1044                     (Pointers.offv (Pointers.poff ptr1))
    10451045                     (ByteValues.part_no p))
    10461046                   (byte_at AST.size_pointer
    1047                      (Pointers.offv ptr2.Pointers.poff)
     1047                     (Pointers.offv (Pointers.poff ptr2))
    10481048                     (ByteValues.part_no p)))
    10491049             in
  • extracted/byteValues.ml

    r2997 r3001  
    8989    (Pointers.block Types.sig0 -> Positive.pos -> 'a1) -> program_counter ->
    9090    'a1 **)
    91 let rec program_counter_rect_Type4 h_mk_program_counter x_6088 =
    92   let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_6088 in
     91let rec program_counter_rect_Type4 h_mk_program_counter x_2980 =
     92  let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_2980 in
    9393  h_mk_program_counter pc_block0 pc_offset0
    9494
     
    9696    (Pointers.block Types.sig0 -> Positive.pos -> 'a1) -> program_counter ->
    9797    'a1 **)
    98 let rec program_counter_rect_Type5 h_mk_program_counter x_6090 =
    99   let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_6090 in
     98let rec program_counter_rect_Type5 h_mk_program_counter x_2982 =
     99  let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_2982 in
    100100  h_mk_program_counter pc_block0 pc_offset0
    101101
     
    103103    (Pointers.block Types.sig0 -> Positive.pos -> 'a1) -> program_counter ->
    104104    'a1 **)
    105 let rec program_counter_rect_Type3 h_mk_program_counter x_6092 =
    106   let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_6092 in
     105let rec program_counter_rect_Type3 h_mk_program_counter x_2984 =
     106  let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_2984 in
    107107  h_mk_program_counter pc_block0 pc_offset0
    108108
     
    110110    (Pointers.block Types.sig0 -> Positive.pos -> 'a1) -> program_counter ->
    111111    'a1 **)
    112 let rec program_counter_rect_Type2 h_mk_program_counter x_6094 =
    113   let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_6094 in
     112let rec program_counter_rect_Type2 h_mk_program_counter x_2986 =
     113  let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_2986 in
    114114  h_mk_program_counter pc_block0 pc_offset0
    115115
     
    117117    (Pointers.block Types.sig0 -> Positive.pos -> 'a1) -> program_counter ->
    118118    'a1 **)
    119 let rec program_counter_rect_Type1 h_mk_program_counter x_6096 =
    120   let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_6096 in
     119let rec program_counter_rect_Type1 h_mk_program_counter x_2988 =
     120  let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_2988 in
    121121  h_mk_program_counter pc_block0 pc_offset0
    122122
     
    124124    (Pointers.block Types.sig0 -> Positive.pos -> 'a1) -> program_counter ->
    125125    'a1 **)
    126 let rec program_counter_rect_Type0 h_mk_program_counter x_6098 =
    127   let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_6098 in
     126let rec program_counter_rect_Type0 h_mk_program_counter x_2990 =
     127  let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_2990 in
    128128  h_mk_program_counter pc_block0 pc_offset0
    129129
     
    215215
    216216(** val part_rect_Type4 : (Nat.nat -> __ -> 'a1) -> part -> 'a1 **)
    217 let rec part_rect_Type4 h_mk_part x_6114 =
    218   let part_no = x_6114 in h_mk_part part_no __
     217let rec part_rect_Type4 h_mk_part x_3006 =
     218  let part_no = x_3006 in h_mk_part part_no __
    219219
    220220(** val part_rect_Type5 : (Nat.nat -> __ -> 'a1) -> part -> 'a1 **)
    221 let rec part_rect_Type5 h_mk_part x_6116 =
    222   let part_no = x_6116 in h_mk_part part_no __
     221let rec part_rect_Type5 h_mk_part x_3008 =
     222  let part_no = x_3008 in h_mk_part part_no __
    223223
    224224(** val part_rect_Type3 : (Nat.nat -> __ -> 'a1) -> part -> 'a1 **)
    225 let rec part_rect_Type3 h_mk_part x_6118 =
    226   let part_no = x_6118 in h_mk_part part_no __
     225let rec part_rect_Type3 h_mk_part x_3010 =
     226  let part_no = x_3010 in h_mk_part part_no __
    227227
    228228(** val part_rect_Type2 : (Nat.nat -> __ -> 'a1) -> part -> 'a1 **)
    229 let rec part_rect_Type2 h_mk_part x_6120 =
    230   let part_no = x_6120 in h_mk_part part_no __
     229let rec part_rect_Type2 h_mk_part x_3012 =
     230  let part_no = x_3012 in h_mk_part part_no __
    231231
    232232(** val part_rect_Type1 : (Nat.nat -> __ -> 'a1) -> part -> 'a1 **)
    233 let rec part_rect_Type1 h_mk_part x_6122 =
    234   let part_no = x_6122 in h_mk_part part_no __
     233let rec part_rect_Type1 h_mk_part x_3014 =
     234  let part_no = x_3014 in h_mk_part part_no __
    235235
    236236(** val part_rect_Type0 : (Nat.nat -> __ -> 'a1) -> part -> 'a1 **)
    237 let rec part_rect_Type0 h_mk_part x_6124 =
    238   let part_no = x_6124 in h_mk_part part_no __
     237let rec part_rect_Type0 h_mk_part x_3016 =
     238  let part_no = x_3016 in h_mk_part part_no __
    239239
    240240(** val part_no : part -> Nat.nat **)
     
    486486| BVundef -> h_BVundef
    487487| BVnonzero -> h_BVnonzero
    488 | BVXor (x_6158, x_6157, x_6156) -> h_BVXor x_6158 x_6157 x_6156
    489 | BVByte x_6159 -> h_BVByte x_6159
    490 | BVnull x_6160 -> h_BVnull x_6160
    491 | BVptr (x_6162, x_6161) -> h_BVptr x_6162 x_6161
    492 | BVpc (x_6164, x_6163) -> h_BVpc x_6164 x_6163
     488| BVXor (x_3050, x_3049, x_3048) -> h_BVXor x_3050 x_3049 x_3048
     489| BVByte x_3051 -> h_BVByte x_3051
     490| BVnull x_3052 -> h_BVnull x_3052
     491| BVptr (x_3054, x_3053) -> h_BVptr x_3054 x_3053
     492| BVpc (x_3056, x_3055) -> h_BVpc x_3056 x_3055
    493493
    494494(** val beval_rect_Type5 :
     
    500500| BVundef -> h_BVundef
    501501| BVnonzero -> h_BVnonzero
    502 | BVXor (x_6175, x_6174, x_6173) -> h_BVXor x_6175 x_6174 x_6173
    503 | BVByte x_6176 -> h_BVByte x_6176
    504 | BVnull x_6177 -> h_BVnull x_6177
    505 | BVptr (x_6179, x_6178) -> h_BVptr x_6179 x_6178
    506 | BVpc (x_6181, x_6180) -> h_BVpc x_6181 x_6180
     502| BVXor (x_3067, x_3066, x_3065) -> h_BVXor x_3067 x_3066 x_3065
     503| BVByte x_3068 -> h_BVByte x_3068
     504| BVnull x_3069 -> h_BVnull x_3069
     505| BVptr (x_3071, x_3070) -> h_BVptr x_3071 x_3070
     506| BVpc (x_3073, x_3072) -> h_BVpc x_3073 x_3072
    507507
    508508(** val beval_rect_Type3 :
     
    514514| BVundef -> h_BVundef
    515515| BVnonzero -> h_BVnonzero
    516 | BVXor (x_6192, x_6191, x_6190) -> h_BVXor x_6192 x_6191 x_6190
    517 | BVByte x_6193 -> h_BVByte x_6193
    518 | BVnull x_6194 -> h_BVnull x_6194
    519 | BVptr (x_6196, x_6195) -> h_BVptr x_6196 x_6195
    520 | BVpc (x_6198, x_6197) -> h_BVpc x_6198 x_6197
     516| BVXor (x_3084, x_3083, x_3082) -> h_BVXor x_3084 x_3083 x_3082
     517| BVByte x_3085 -> h_BVByte x_3085
     518| BVnull x_3086 -> h_BVnull x_3086
     519| BVptr (x_3088, x_3087) -> h_BVptr x_3088 x_3087
     520| BVpc (x_3090, x_3089) -> h_BVpc x_3090 x_3089
    521521
    522522(** val beval_rect_Type2 :
     
    528528| BVundef -> h_BVundef
    529529| BVnonzero -> h_BVnonzero
    530 | BVXor (x_6209, x_6208, x_6207) -> h_BVXor x_6209 x_6208 x_6207
    531 | BVByte x_6210 -> h_BVByte x_6210
    532 | BVnull x_6211 -> h_BVnull x_6211
    533 | BVptr (x_6213, x_6212) -> h_BVptr x_6213 x_6212
    534 | BVpc (x_6215, x_6214) -> h_BVpc x_6215 x_6214
     530| BVXor (x_3101, x_3100, x_3099) -> h_BVXor x_3101 x_3100 x_3099
     531| BVByte x_3102 -> h_BVByte x_3102
     532| BVnull x_3103 -> h_BVnull x_3103
     533| BVptr (x_3105, x_3104) -> h_BVptr x_3105 x_3104
     534| BVpc (x_3107, x_3106) -> h_BVpc x_3107 x_3106
    535535
    536536(** val beval_rect_Type1 :
     
    542542| BVundef -> h_BVundef
    543543| BVnonzero -> h_BVnonzero
    544 | BVXor (x_6226, x_6225, x_6224) -> h_BVXor x_6226 x_6225 x_6224
    545 | BVByte x_6227 -> h_BVByte x_6227
    546 | BVnull x_6228 -> h_BVnull x_6228
    547 | BVptr (x_6230, x_6229) -> h_BVptr x_6230 x_6229
    548 | BVpc (x_6232, x_6231) -> h_BVpc x_6232 x_6231
     544| BVXor (x_3118, x_3117, x_3116) -> h_BVXor x_3118 x_3117 x_3116
     545| BVByte x_3119 -> h_BVByte x_3119
     546| BVnull x_3120 -> h_BVnull x_3120
     547| BVptr (x_3122, x_3121) -> h_BVptr x_3122 x_3121
     548| BVpc (x_3124, x_3123) -> h_BVpc x_3124 x_3123
    549549
    550550(** val beval_rect_Type0 :
     
    556556| BVundef -> h_BVundef
    557557| BVnonzero -> h_BVnonzero
    558 | BVXor (x_6243, x_6242, x_6241) -> h_BVXor x_6243 x_6242 x_6241
    559 | BVByte x_6244 -> h_BVByte x_6244
    560 | BVnull x_6245 -> h_BVnull x_6245
    561 | BVptr (x_6247, x_6246) -> h_BVptr x_6247 x_6246
    562 | BVpc (x_6249, x_6248) -> h_BVpc x_6249 x_6248
     558| BVXor (x_3135, x_3134, x_3133) -> h_BVXor x_3135 x_3134 x_3133
     559| BVByte x_3136 -> h_BVByte x_3136
     560| BVnull x_3137 -> h_BVnull x_3137
     561| BVptr (x_3139, x_3138) -> h_BVptr x_3139 x_3138
     562| BVpc (x_3141, x_3140) -> h_BVpc x_3141 x_3140
    563563
    564564(** val beval_inv_rect_Type4 :
     
    685685                         (Bool.andb (Nat.eqb (part_no p1) Nat.O)
    686686                           (Nat.eqb (part_no p2) (Nat.S Nat.O)))
    687                          (Pointers.eq_block ptr1.Pointers.pblock
    688                            ptr2.Pointers.pblock))
     687                         (Pointers.eq_block (Pointers.pblock ptr1)
     688                           (Pointers.pblock ptr2)))
    689689                       (eq_bv_suffix (Nat.S (Nat.S (Nat.S (Nat.S (Nat.S
    690690                         (Nat.S (Nat.S (Nat.S Nat.O)))))))) (Nat.S (Nat.S
     
    692692                         Nat.O)))))))) (Nat.S (Nat.S (Nat.S (Nat.S (Nat.S
    693693                         (Nat.S (Nat.S (Nat.S Nat.O))))))))
    694                          (Pointers.offv ptr1.Pointers.poff)
    695                          (Pointers.offv ptr2.Pointers.poff)) with
     694                         (Pointers.offv (Pointers.poff ptr1))
     695                         (Pointers.offv (Pointers.poff ptr2))) with
    696696               | Bool.True ->
    697697                 Obj.magic (Monad.m_return0 (Monad.max_def Errors.res0) ptr2)
     
    985985    BitVector.bitVector -> 'a1) -> bebit -> 'a1 **)
    986986let rec bebit_rect_Type4 h_BBbit h_BBundef h_BBptrcarry = function
    987 | BBbit x_6407 -> h_BBbit x_6407
     987| BBbit x_3299 -> h_BBbit x_3299
    988988| BBundef -> h_BBundef
    989 | BBptrcarry (x_6410, x_6409, p, x_6408) ->
    990   h_BBptrcarry x_6410 x_6409 p x_6408
     989| BBptrcarry (x_3302, x_3301, p, x_3300) ->
     990  h_BBptrcarry x_3302 x_3301 p x_3300
    991991
    992992(** val bebit_rect_Type5 :
     
    994994    BitVector.bitVector -> 'a1) -> bebit -> 'a1 **)
    995995let rec bebit_rect_Type5 h_BBbit h_BBundef h_BBptrcarry = function
    996 | BBbit x_6415 -> h_BBbit x_6415
     996| BBbit x_3307 -> h_BBbit x_3307
    997997| BBundef -> h_BBundef
    998 | BBptrcarry (x_6418, x_6417, p, x_6416) ->
    999   h_BBptrcarry x_6418 x_6417 p x_6416
     998| BBptrcarry (x_3310, x_3309, p, x_3308) ->
     999  h_BBptrcarry x_3310 x_3309 p x_3308
    10001000
    10011001(** val bebit_rect_Type3 :
     
    10031003    BitVector.bitVector -> 'a1) -> bebit -> 'a1 **)
    10041004let rec bebit_rect_Type3 h_BBbit h_BBundef h_BBptrcarry = function
    1005 | BBbit x_6423 -> h_BBbit x_6423
     1005| BBbit x_3315 -> h_BBbit x_3315
    10061006| BBundef -> h_BBundef
    1007 | BBptrcarry (x_6426, x_6425, p, x_6424) ->
    1008   h_BBptrcarry x_6426 x_6425 p x_6424
     1007| BBptrcarry (x_3318, x_3317, p, x_3316) ->
     1008  h_BBptrcarry x_3318 x_3317 p x_3316
    10091009
    10101010(** val bebit_rect_Type2 :
     
    10121012    BitVector.bitVector -> 'a1) -> bebit -> 'a1 **)
    10131013let rec bebit_rect_Type2 h_BBbit h_BBundef h_BBptrcarry = function
    1014 | BBbit x_6431 -> h_BBbit x_6431
     1014| BBbit x_3323 -> h_BBbit x_3323
    10151015| BBundef -> h_BBundef
    1016 | BBptrcarry (x_6434, x_6433, p, x_6432) ->
    1017   h_BBptrcarry x_6434 x_6433 p x_6432
     1016| BBptrcarry (x_3326, x_3325, p, x_3324) ->
     1017  h_BBptrcarry x_3326 x_3325 p x_3324
    10181018
    10191019(** val bebit_rect_Type1 :
     
    10211021    BitVector.bitVector -> 'a1) -> bebit -> 'a1 **)
    10221022let rec bebit_rect_Type1 h_BBbit h_BBundef h_BBptrcarry = function
    1023 | BBbit x_6439 -> h_BBbit x_6439
     1023| BBbit x_3331 -> h_BBbit x_3331
    10241024| BBundef -> h_BBundef
    1025 | BBptrcarry (x_6442, x_6441, p, x_6440) ->
    1026   h_BBptrcarry x_6442 x_6441 p x_6440
     1025| BBptrcarry (x_3334, x_3333, p, x_3332) ->
     1026  h_BBptrcarry x_3334 x_3333 p x_3332
    10271027
    10281028(** val bebit_rect_Type0 :
     
    10301030    BitVector.bitVector -> 'a1) -> bebit -> 'a1 **)
    10311031let rec bebit_rect_Type0 h_BBbit h_BBundef h_BBptrcarry = function
    1032 | BBbit x_6447 -> h_BBbit x_6447
     1032| BBbit x_3339 -> h_BBbit x_3339
    10331033| BBundef -> h_BBundef
    1034 | BBptrcarry (x_6450, x_6449, p, x_6448) ->
    1035   h_BBptrcarry x_6450 x_6449 p x_6448
     1034| BBptrcarry (x_3342, x_3341, p, x_3340) ->
     1035  h_BBptrcarry x_3342 x_3341 p x_3340
    10361036
    10371037(** val bebit_inv_rect_Type4 :
  • extracted/cexec.ml

    r2773 r3001  
    537537        | Values.Vptr ptr ->
    538538          Obj.magic (Errors.OK { Types.fst = { Types.fst =
    539             ptr.Pointers.pblock; Types.snd = ptr.Pointers.poff }; Types.snd =
    540             tr })))
     539            (Pointers.pblock ptr); Types.snd = (Pointers.poff ptr) };
     540            Types.snd = tr })))
    541541  | Csyntax.Eaddrof x ->
    542542    Errors.Error (Errors.msg ErrorMessages.BadLvalueTerm)
     
    11381138        (Obj.magic
    11391139          (Errors.opt_to_res (Errors.msg ErrorMessages.MainMissing)
    1140             (Globalenvs.find_symbol ge p.AST.prog_main))) (fun b ->
     1140            (Globalenvs.find_symbol ge (AST.prog_main p)))) (fun b ->
    11411141        Monad.m_bind0 (Monad.max_def Errors.res0)
    11421142          (Obj.magic
    11431143            (Errors.opt_to_res (Errors.msg ErrorMessages.MainMissing)
    11441144              (Globalenvs.find_funct_ptr ge b))) (fun f ->
    1145           Obj.magic (Errors.OK (Csem.Callstate (p.AST.prog_main, f, List.Nil,
    1146             Csem.Kstop, m0)))))))
     1145          Obj.magic (Errors.OK (Csem.Callstate ((AST.prog_main p), f,
     1146            List.Nil, Csem.Kstop, m0)))))))
    11471147
    11481148(** val is_final : Csem.state -> Integers.int Types.option **)
  • extracted/classifyOp.ml

    r2997 r3001  
    9696    (Csyntax.type0 -> Csyntax.type0 -> 'a1) -> Csyntax.type0 -> Csyntax.type0
    9797    -> classify_add_cases -> 'a1 **)
    98 let rec classify_add_cases_rect_Type4 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_12331 x_12330 = function
     98let rec classify_add_cases_rect_Type4 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_9258 x_9257 = function
    9999| Add_case_ii (sz, sg) -> h_add_case_ii sz sg
    100100| Add_case_pi (n, ty, sz, sg) -> h_add_case_pi n ty sz sg
     
    108108    (Csyntax.type0 -> Csyntax.type0 -> 'a1) -> Csyntax.type0 -> Csyntax.type0
    109109    -> classify_add_cases -> 'a1 **)
    110 let rec classify_add_cases_rect_Type5 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_12338 x_12337 = function
     110let rec classify_add_cases_rect_Type5 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_9265 x_9264 = function
    111111| Add_case_ii (sz, sg) -> h_add_case_ii sz sg
    112112| Add_case_pi (n, ty, sz, sg) -> h_add_case_pi n ty sz sg
     
    120120    (Csyntax.type0 -> Csyntax.type0 -> 'a1) -> Csyntax.type0 -> Csyntax.type0
    121121    -> classify_add_cases -> 'a1 **)
    122 let rec classify_add_cases_rect_Type3 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_12345 x_12344 = function
     122let rec classify_add_cases_rect_Type3 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_9272 x_9271 = function
    123123| Add_case_ii (sz, sg) -> h_add_case_ii sz sg
    124124| Add_case_pi (n, ty, sz, sg) -> h_add_case_pi n ty sz sg
     
    132132    (Csyntax.type0 -> Csyntax.type0 -> 'a1) -> Csyntax.type0 -> Csyntax.type0
    133133    -> classify_add_cases -> 'a1 **)
    134 let rec classify_add_cases_rect_Type2 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_12352 x_12351 = function
     134let rec classify_add_cases_rect_Type2 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_9279 x_9278 = function
    135135| Add_case_ii (sz, sg) -> h_add_case_ii sz sg
    136136| Add_case_pi (n, ty, sz, sg) -> h_add_case_pi n ty sz sg
     
    144144    (Csyntax.type0 -> Csyntax.type0 -> 'a1) -> Csyntax.type0 -> Csyntax.type0
    145145    -> classify_add_cases -> 'a1 **)
    146 let rec classify_add_cases_rect_Type1 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_12359 x_12358 = function
     146let rec classify_add_cases_rect_Type1 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_9286 x_9285 = function
    147147| Add_case_ii (sz, sg) -> h_add_case_ii sz sg
    148148| Add_case_pi (n, ty, sz, sg) -> h_add_case_pi n ty sz sg
     
    156156    (Csyntax.type0 -> Csyntax.type0 -> 'a1) -> Csyntax.type0 -> Csyntax.type0
    157157    -> classify_add_cases -> 'a1 **)
    158 let rec classify_add_cases_rect_Type0 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_12366 x_12365 = function
     158let rec classify_add_cases_rect_Type0 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_9293 x_9292 = function
    159159| Add_case_ii (sz, sg) -> h_add_case_ii sz sg
    160160| Add_case_pi (n, ty, sz, sg) -> h_add_case_pi n ty sz sg
     
    319319    'a1) -> (Csyntax.type0 -> Csyntax.type0 -> 'a1) -> Csyntax.type0 ->
    320320    Csyntax.type0 -> classify_sub_cases -> 'a1 **)
    321 let rec classify_sub_cases_rect_Type4 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_12422 x_12421 = function
     321let rec classify_sub_cases_rect_Type4 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_9349 x_9348 = function
    322322| Sub_case_ii (sz, sg) -> h_sub_case_ii sz sg
    323323| Sub_case_pi (n, ty, sz, sg) -> h_sub_case_pi n ty sz sg
     
    331331    'a1) -> (Csyntax.type0 -> Csyntax.type0 -> 'a1) -> Csyntax.type0 ->
    332332    Csyntax.type0 -> classify_sub_cases -> 'a1 **)
    333 let rec classify_sub_cases_rect_Type5 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_12429 x_12428 = function
     333let rec classify_sub_cases_rect_Type5 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_9356 x_9355 = function
    334334| Sub_case_ii (sz, sg) -> h_sub_case_ii sz sg
    335335| Sub_case_pi (n, ty, sz, sg) -> h_sub_case_pi n ty sz sg
     
    343343    'a1) -> (Csyntax.type0 -> Csyntax.type0 -> 'a1) -> Csyntax.type0 ->
    344344    Csyntax.type0 -> classify_sub_cases -> 'a1 **)
    345 let rec classify_sub_cases_rect_Type3 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_12436 x_12435 = function
     345let rec classify_sub_cases_rect_Type3 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_9363 x_9362 = function
    346346| Sub_case_ii (sz, sg) -> h_sub_case_ii sz sg
    347347| Sub_case_pi (n, ty, sz, sg) -> h_sub_case_pi n ty sz sg
     
    355355    'a1) -> (Csyntax.type0 -> Csyntax.type0 -> 'a1) -> Csyntax.type0 ->
    356356    Csyntax.type0 -> classify_sub_cases -> 'a1 **)
    357 let rec classify_sub_cases_rect_Type2 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_12443 x_12442 = function
     357let rec classify_sub_cases_rect_Type2 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_9370 x_9369 = function
    358358| Sub_case_ii (sz, sg) -> h_sub_case_ii sz sg
    359359| Sub_case_pi (n, ty, sz, sg) -> h_sub_case_pi n ty sz sg
     
    367367    'a1) -> (Csyntax.type0 -> Csyntax.type0 -> 'a1) -> Csyntax.type0 ->
    368368    Csyntax.type0 -> classify_sub_cases -> 'a1 **)
    369 let rec classify_sub_cases_rect_Type1 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_12450 x_12449 = function
     369let rec classify_sub_cases_rect_Type1 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_9377 x_9376 = function
    370370| Sub_case_ii (sz, sg) -> h_sub_case_ii sz sg
    371371| Sub_case_pi (n, ty, sz, sg) -> h_sub_case_pi n ty sz sg
     
    379379    'a1) -> (Csyntax.type0 -> Csyntax.type0 -> 'a1) -> Csyntax.type0 ->
    380380    Csyntax.type0 -> classify_sub_cases -> 'a1 **)
    381 let rec classify_sub_cases_rect_Type0 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_12457 x_12456 = function
     381let rec classify_sub_cases_rect_Type0 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_9384 x_9383 = function
    382382| Sub_case_ii (sz, sg) -> h_sub_case_ii sz sg
    383383| Sub_case_pi (n, ty, sz, sg) -> h_sub_case_pi n ty sz sg
     
    519519    (AST.intsize -> AST.signedness -> 'a1) -> (Csyntax.type0 -> Csyntax.type0
    520520    -> 'a1) -> Csyntax.type0 -> Csyntax.type0 -> classify_aop_cases -> 'a1 **)
    521 let rec classify_aop_cases_rect_Type4 h_aop_case_ii h_aop_default x_12511 x_12510 = function
     521let rec classify_aop_cases_rect_Type4 h_aop_case_ii h_aop_default x_9438 x_9437 = function
    522522| Aop_case_ii (sz, sg) -> h_aop_case_ii sz sg
    523523| Aop_default (ty, ty') -> h_aop_default ty ty'
     
    526526    (AST.intsize -> AST.signedness -> 'a1) -> (Csyntax.type0 -> Csyntax.type0
    527527    -> 'a1) -> Csyntax.type0 -> Csyntax.type0 -> classify_aop_cases -> 'a1 **)
    528 let rec classify_aop_cases_rect_Type5 h_aop_case_ii h_aop_default x_12516 x_12515 = function
     528let rec classify_aop_cases_rect_Type5 h_aop_case_ii h_aop_default x_9443 x_9442 = function
    529529| Aop_case_ii (sz, sg) -> h_aop_case_ii sz sg
    530530| Aop_default (ty, ty') -> h_aop_default ty ty'
     
    533533    (AST.intsize -> AST.signedness -> 'a1) -> (Csyntax.type0 -> Csyntax.type0
    534534    -> 'a1) -> Csyntax.type0 -> Csyntax.type0 -> classify_aop_cases -> 'a1 **)
    535 let rec classify_aop_cases_rect_Type3 h_aop_case_ii h_aop_default x_12521 x_12520 = function
     535let rec classify_aop_cases_rect_Type3 h_aop_case_ii h_aop_default x_9448 x_9447 = function
    536536| Aop_case_ii (sz, sg) -> h_aop_case_ii sz sg
    537537| Aop_default (ty, ty') -> h_aop_default ty ty'
     
    540540    (AST.intsize -> AST.signedness -> 'a1) -> (Csyntax.type0 -> Csyntax.type0
    541541    -> 'a1) -> Csyntax.type0 -> Csyntax.type0 -> classify_aop_cases -> 'a1 **)
    542 let rec classify_aop_cases_rect_Type2 h_aop_case_ii h_aop_default x_12526 x_12525 = function
     542let rec classify_aop_cases_rect_Type2 h_aop_case_ii h_aop_default x_9453 x_9452 = function
    543543| Aop_case_ii (sz, sg) -> h_aop_case_ii sz sg
    544544| Aop_default (ty, ty') -> h_aop_default ty ty'
     
    547547    (AST.intsize -> AST.signedness -> 'a1) -> (Csyntax.type0 -> Csyntax.type0
    548548    -> 'a1) -> Csyntax.type0 -> Csyntax.type0 -> classify_aop_cases -> 'a1 **)
    549 let rec classify_aop_cases_rect_Type1 h_aop_case_ii h_aop_default x_12531 x_12530 = function
     549let rec classify_aop_cases_rect_Type1 h_aop_case_ii h_aop_default x_9458 x_9457 = function
    550550| Aop_case_ii (sz, sg) -> h_aop_case_ii sz sg
    551551| Aop_default (ty, ty') -> h_aop_default ty ty'
     
    554554    (AST.intsize -> AST.signedness -> 'a1) -> (Csyntax.type0 -> Csyntax.type0
    555555    -> 'a1) -> Csyntax.type0 -> Csyntax.type0 -> classify_aop_cases -> 'a1 **)
    556 let rec classify_aop_cases_rect_Type0 h_aop_case_ii h_aop_default x_12536 x_12535 = function
     556let rec classify_aop_cases_rect_Type0 h_aop_case_ii h_aop_default x_9463 x_9462 = function
    557557| Aop_case_ii (sz, sg) -> h_aop_case_ii sz sg
    558558| Aop_default (ty, ty') -> h_aop_default ty ty'
     
    636636    Csyntax.type0 -> 'a1) -> (Csyntax.type0 -> Csyntax.type0 -> 'a1) ->
    637637    Csyntax.type0 -> Csyntax.type0 -> classify_cmp_cases -> 'a1 **)
    638 let rec classify_cmp_cases_rect_Type4 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_12577 x_12576 = function
     638let rec classify_cmp_cases_rect_Type4 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_9504 x_9503 = function
    639639| Cmp_case_ii (sz, sg) -> h_cmp_case_ii sz sg
    640640| Cmp_case_pp (n, ty) -> h_cmp_case_pp n ty
     
    645645    Csyntax.type0 -> 'a1) -> (Csyntax.type0 -> Csyntax.type0 -> 'a1) ->
    646646    Csyntax.type0 -> Csyntax.type0 -> classify_cmp_cases -> 'a1 **)
    647 let rec classify_cmp_cases_rect_Type5 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_12583 x_12582 = function
     647let rec classify_cmp_cases_rect_Type5 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_9510 x_9509 = function
    648648| Cmp_case_ii (sz, sg) -> h_cmp_case_ii sz sg
    649649| Cmp_case_pp (n, ty) -> h_cmp_case_pp n ty
     
    654654    Csyntax.type0 -> 'a1) -> (Csyntax.type0 -> Csyntax.type0 -> 'a1) ->
    655655    Csyntax.type0 -> Csyntax.type0 -> classify_cmp_cases -> 'a1 **)
    656 let rec classify_cmp_cases_rect_Type3 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_12589 x_12588 = function
     656let rec classify_cmp_cases_rect_Type3 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_9516 x_9515 = function
    657657| Cmp_case_ii (sz, sg) -> h_cmp_case_ii sz sg
    658658| Cmp_case_pp (n, ty) -> h_cmp_case_pp n ty
     
    663663    Csyntax.type0 -> 'a1) -> (Csyntax.type0 -> Csyntax.type0 -> 'a1) ->
    664664    Csyntax.type0 -> Csyntax.type0 -> classify_cmp_cases -> 'a1 **)
    665 let rec classify_cmp_cases_rect_Type2 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_12595 x_12594 = function
     665let rec classify_cmp_cases_rect_Type2 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_9522 x_9521 = function
    666666| Cmp_case_ii (sz, sg) -> h_cmp_case_ii sz sg
    667667| Cmp_case_pp (n, ty) -> h_cmp_case_pp n ty
     
    672672    Csyntax.type0 -> 'a1) -> (Csyntax.type0 -> Csyntax.type0 -> 'a1) ->
    673673    Csyntax.type0 -> Csyntax.type0 -> classify_cmp_cases -> 'a1 **)
    674 let rec classify_cmp_cases_rect_Type1 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_12601 x_12600 = function
     674let rec classify_cmp_cases_rect_Type1 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_9528 x_9527 = function
    675675| Cmp_case_ii (sz, sg) -> h_cmp_case_ii sz sg
    676676| Cmp_case_pp (n, ty) -> h_cmp_case_pp n ty
     
    681681    Csyntax.type0 -> 'a1) -> (Csyntax.type0 -> Csyntax.type0 -> 'a1) ->
    682682    Csyntax.type0 -> Csyntax.type0 -> classify_cmp_cases -> 'a1 **)
    683 let rec classify_cmp_cases_rect_Type0 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_12607 x_12606 = function
     683let rec classify_cmp_cases_rect_Type0 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_9534 x_9533 = function
    684684| Cmp_case_ii (sz, sg) -> h_cmp_case_ii sz sg
    685685| Cmp_case_pp (n, ty) -> h_cmp_case_pp n ty
     
    780780    -> 'a1 **)
    781781let rec classify_fun_cases_rect_Type4 h_fun_case_f h_fun_default = function
    782 | Fun_case_f (x_12655, x_12654) -> h_fun_case_f x_12655 x_12654
     782| Fun_case_f (x_9582, x_9581) -> h_fun_case_f x_9582 x_9581
    783783| Fun_default -> h_fun_default
    784784
     
    787787    -> 'a1 **)
    788788let rec classify_fun_cases_rect_Type5 h_fun_case_f h_fun_default = function
    789 | Fun_case_f (x_12660, x_12659) -> h_fun_case_f x_12660 x_12659
     789| Fun_case_f (x_9587, x_9586) -> h_fun_case_f x_9587 x_9586
    790790| Fun_default -> h_fun_default
    791791
     
    794794    -> 'a1 **)
    795795let rec classify_fun_cases_rect_Type3 h_fun_case_f h_fun_default = function
    796 | Fun_case_f (x_12665, x_12664) -> h_fun_case_f x_12665 x_12664
     796| Fun_case_f (x_9592, x_9591) -> h_fun_case_f x_9592 x_9591
    797797| Fun_default -> h_fun_default
    798798
     
    801801    -> 'a1 **)
    802802let rec classify_fun_cases_rect_Type2 h_fun_case_f h_fun_default = function
    803 | Fun_case_f (x_12670, x_12669) -> h_fun_case_f x_12670 x_12669
     803| Fun_case_f (x_9597, x_9596) -> h_fun_case_f x_9597 x_9596
    804804| Fun_default -> h_fun_default
    805805
     
    808808    -> 'a1 **)
    809809let rec classify_fun_cases_rect_Type1 h_fun_case_f h_fun_default = function
    810 | Fun_case_f (x_12675, x_12674) -> h_fun_case_f x_12675 x_12674
     810| Fun_case_f (x_9602, x_9601) -> h_fun_case_f x_9602 x_9601
    811811| Fun_default -> h_fun_default
    812812
     
    815815    -> 'a1 **)
    816816let rec classify_fun_cases_rect_Type0 h_fun_case_f h_fun_default = function
    817 | Fun_case_f (x_12680, x_12679) -> h_fun_case_f x_12680 x_12679
     817| Fun_case_f (x_9607, x_9606) -> h_fun_case_f x_9607 x_9606
    818818| Fun_default -> h_fun_default
    819819
  • extracted/cminor_semantics.ml

    r2997 r3001  
    123123let rec cont_rect_Type4 h_Kend h_Kseq h_Kblock = function
    124124| Kend -> h_Kend
    125 | Kseq (x_20078, x_20077) ->
    126   h_Kseq x_20078 x_20077 (cont_rect_Type4 h_Kend h_Kseq h_Kblock x_20077)
    127 | Kblock x_20079 ->
    128   h_Kblock x_20079 (cont_rect_Type4 h_Kend h_Kseq h_Kblock x_20079)
     125| Kseq (x_16523, x_16522) ->
     126  h_Kseq x_16523 x_16522 (cont_rect_Type4 h_Kend h_Kseq h_Kblock x_16522)
     127| Kblock x_16524 ->
     128  h_Kblock x_16524 (cont_rect_Type4 h_Kend h_Kseq h_Kblock x_16524)
    129129
    130130(** val cont_rect_Type3 :
     
    133133let rec cont_rect_Type3 h_Kend h_Kseq h_Kblock = function
    134134| Kend -> h_Kend
    135 | Kseq (x_20092, x_20091) ->
    136   h_Kseq x_20092 x_20091 (cont_rect_Type3 h_Kend h_Kseq h_Kblock x_20091)
    137 | Kblock x_20093 ->
    138   h_Kblock x_20093 (cont_rect_Type3 h_Kend h_Kseq h_Kblock x_20093)
     135| Kseq (x_16537, x_16536) ->
     136  h_Kseq x_16537 x_16536 (cont_rect_Type3 h_Kend h_Kseq h_Kblock x_16536)
     137| Kblock x_16538 ->
     138  h_Kblock x_16538 (cont_rect_Type3 h_Kend h_Kseq h_Kblock x_16538)
    139139
    140140(** val cont_rect_Type2 :
     
    143143let rec cont_rect_Type2 h_Kend h_Kseq h_Kblock = function
    144144| Kend -> h_Kend
    145 | Kseq (x_20099, x_20098) ->
    146   h_Kseq x_20099 x_20098 (cont_rect_Type2 h_Kend h_Kseq h_Kblock x_20098)
    147 | Kblock x_20100 ->
    148   h_Kblock x_20100 (cont_rect_Type2 h_Kend h_Kseq h_Kblock x_20100)
     145| Kseq (x_16544, x_16543) ->
     146  h_Kseq x_16544 x_16543 (cont_rect_Type2 h_Kend h_Kseq h_Kblock x_16543)
     147| Kblock x_16545 ->
     148  h_Kblock x_16545 (cont_rect_Type2 h_Kend h_Kseq h_Kblock x_16545)
    149149
    150150(** val cont_rect_Type1 :
     
    153153let rec cont_rect_Type1 h_Kend h_Kseq h_Kblock = function
    154154| Kend -> h_Kend
    155 | Kseq (x_20106, x_20105) ->
    156   h_Kseq x_20106 x_20105 (cont_rect_Type1 h_Kend h_Kseq h_Kblock x_20105)
    157 | Kblock x_20107 ->
    158   h_Kblock x_20107 (cont_rect_Type1 h_Kend h_Kseq h_Kblock x_20107)
     155| Kseq (x_16551, x_16550) ->
     156  h_Kseq x_16551 x_16550 (cont_rect_Type1 h_Kend h_Kseq h_Kblock x_16550)
     157| Kblock x_16552 ->
     158  h_Kblock x_16552 (cont_rect_Type1 h_Kend h_Kseq h_Kblock x_16552)
    159159
    160160(** val cont_rect_Type0 :
     
    163163let rec cont_rect_Type0 h_Kend h_Kseq h_Kblock = function
    164164| Kend -> h_Kend
    165 | Kseq (x_20113, x_20112) ->
    166   h_Kseq x_20113 x_20112 (cont_rect_Type0 h_Kend h_Kseq h_Kblock x_20112)
    167 | Kblock x_20114 ->
    168   h_Kblock x_20114 (cont_rect_Type0 h_Kend h_Kseq h_Kblock x_20114)
     165| Kseq (x_16558, x_16557) ->
     166  h_Kseq x_16558 x_16557 (cont_rect_Type0 h_Kend h_Kseq h_Kblock x_16557)
     167| Kblock x_16559 ->
     168  h_Kblock x_16559 (cont_rect_Type0 h_Kend h_Kseq h_Kblock x_16559)
    169169
    170170(** val cont_inv_rect_Type4 :
     
    226226let rec stack_rect_Type4 h_SStop h_Scall = function
    227227| SStop -> h_SStop
    228 | Scall (dest, f, x_20173, en, k, x_20169) ->
    229   h_Scall dest f x_20173 en __ __ k __ x_20169
    230     (stack_rect_Type4 h_SStop h_Scall x_20169)
     228| Scall (dest, f, x_16618, en, k, x_16614) ->
     229  h_Scall dest f x_16618 en __ __ k __ x_16614
     230    (stack_rect_Type4 h_SStop h_Scall x_16614)
    231231
    232232(** val stack_rect_Type3 :
     
    236236let rec stack_rect_Type3 h_SStop h_Scall = function
    237237| SStop -> h_SStop
    238 | Scall (dest, f, x_20189, en, k, x_20185) ->
    239   h_Scall dest f x_20189 en __ __ k __ x_20185
    240     (stack_rect_Type3 h_SStop h_Scall x_20185)
     238| Scall (dest, f, x_16634, en, k, x_16630) ->
     239  h_Scall dest f x_16634 en __ __ k __ x_16630
     240    (stack_rect_Type3 h_SStop h_Scall x_16630)
    241241
    242242(** val stack_rect_Type2 :
     
    246246let rec stack_rect_Type2 h_SStop h_Scall = function
    247247| SStop -> h_SStop
    248 | Scall (dest, f, x_20197, en, k, x_20193) ->
    249   h_Scall dest f x_20197 en __ __ k __ x_20193
    250     (stack_rect_Type2 h_SStop h_Scall x_20193)
     248| Scall (dest, f, x_16642, en, k, x_16638) ->
     249  h_Scall dest f x_16642 en __ __ k __ x_16638
     250    (stack_rect_Type2 h_SStop h_Scall x_16638)
    251251
    252252(** val stack_rect_Type1 :
     
    256256let rec stack_rect_Type1 h_SStop h_Scall = function
    257257| SStop -> h_SStop
    258 | Scall (dest, f, x_20205, en, k, x_20201) ->
    259   h_Scall dest f x_20205 en __ __ k __ x_20201
    260     (stack_rect_Type1 h_SStop h_Scall x_20201)
     258| Scall (dest, f, x_16650, en, k, x_16646) ->
     259  h_Scall dest f x_16650 en __ __ k __ x_16646
     260    (stack_rect_Type1 h_SStop h_Scall x_16646)
    261261
    262262(** val stack_rect_Type0 :
     
    266266let rec stack_rect_Type0 h_SStop h_Scall = function
    267267| SStop -> h_SStop
    268 | Scall (dest, f, x_20213, en, k, x_20209) ->
    269   h_Scall dest f x_20213 en __ __ k __ x_20209
    270     (stack_rect_Type0 h_SStop h_Scall x_20209)
     268| Scall (dest, f, x_16658, en, k, x_16654) ->
     269  h_Scall dest f x_16658 en __ __ k __ x_16654
     270    (stack_rect_Type0 h_SStop h_Scall x_16654)
    271271
    272272(** val stack_inv_rect_Type4 :
     
    706706                  (Obj.magic
    707707                    (trace_map_inv (fun e ->
    708                       let { Types.dpi1 = ty; Types.dpi2 = e0 } = e in
    709                       (fun _ -> eval_expr ge ty e0 en sp m)) args))
     708                      let { Types.dpi1 = ty; Types.dpi2 = e1 } = e in
     709                      (fun _ -> eval_expr ge ty e1 en sp m)) args))
    710710                  (fun tr' vargs ->
    711711                  Monad.m_return0 (Monad.max_def Errors.res0) { Types.fst =
     
    740740                 (GenMem.free m sp), st0)) }))
    741741         | Types.Some e ->
    742            let { Types.dpi1 = ty; Types.dpi2 = e0 } = e in
     742           let { Types.dpi1 = ty; Types.dpi2 = e1 } = e in
    743743           (fun _ ->
    744744           Obj.magic
    745745             (Monad.m_bind2 (Monad.max_def Errors.res0)
    746                (Obj.magic (eval_expr ge ty e0 en sp m)) (fun tr v ->
     746               (Obj.magic (eval_expr ge ty e1 en sp m)) (fun tr v ->
    747747               Monad.m_return0 (Monad.max_def Errors.res0) { Types.fst = tr;
    748748                 Types.snd = (Returnstate ((Types.Some v),
     
    786786         (Obj.magic
    787787           (IOMonad.err_to_io
    788              (IO.check_eventval_list args fn.AST.ef_sig.AST.sig_args)))
     788             (IO.check_eventval_list args (AST.sig_args (AST.ef_sig fn)))))
    789789         (fun evargs ->
    790790         Monad.m_bind0 (Monad.max_def IOMonad.iOMonad)
    791791           (Obj.magic
    792              (IO.do_io fn.AST.ef_id evargs (AST.proj_sig_res fn.AST.ef_sig)))
    793            (fun evres ->
     792             (IO.do_io (AST.ef_id fn) evargs
     793               (AST.proj_sig_res (AST.ef_sig fn)))) (fun evres ->
    794794           let res =
    795              match fn.AST.ef_sig.AST.sig_res with
     795             match AST.sig_res (AST.ef_sig fn) with
    796796             | Types.None -> Types.None
    797797             | Types.Some x0 ->
    798                Types.Some (IO.mk_val (AST.proj_sig_res fn.AST.ef_sig) evres)
     798               Types.Some
     799                 (IO.mk_val (AST.proj_sig_res (AST.ef_sig fn)) evres)
    799800           in
    800801           Monad.m_return0 (Monad.max_def IOMonad.iOMonad) { Types.fst =
    801              (Events.eextcall fn.AST.ef_id evargs
    802                (IO.mk_eventval (AST.proj_sig_res fn.AST.ef_sig) evres));
     802             (Events.eextcall (AST.ef_id fn) evargs
     803               (IO.mk_eventval (AST.proj_sig_res (AST.ef_sig fn)) evres));
    803804             Types.snd = (Returnstate (res, m, st0)) }))))
    804805| Returnstate (result, m, st0) ->
     
    883884        (Obj.magic
    884885          (Errors.opt_to_res (Errors.msg ErrorMessages.MainMissing)
    885             (Globalenvs.find_symbol ge p.AST.prog_main))) (fun b ->
     886            (Globalenvs.find_symbol ge (AST.prog_main p)))) (fun b ->
    886887        Monad.m_bind0 (Monad.max_def Errors.res0)
    887888          (Obj.magic
    888889            (Errors.opt_to_res (Errors.msg ErrorMessages.MainMissing)
    889890              (Globalenvs.find_funct_ptr ge b))) (fun f ->
    890           Obj.magic (Errors.OK (Callstate (p.AST.prog_main, f, List.Nil, m,
     891          Obj.magic (Errors.OK (Callstate ((AST.prog_main p), f, List.Nil, m,
    891892            SStop)))))))
    892893
     
    913914        (Obj.magic
    914915          (Errors.opt_to_res (Errors.msg ErrorMessages.MainMissing)
    915             (Globalenvs.find_symbol ge p.AST.prog_main))) (fun b ->
     916            (Globalenvs.find_symbol ge (AST.prog_main p)))) (fun b ->
    916917        Monad.m_bind0 (Monad.max_def Errors.res0)
    917918          (Obj.magic
    918919            (Errors.opt_to_res (Errors.msg ErrorMessages.MainMissing)
    919920              (Globalenvs.find_funct_ptr ge b))) (fun f ->
    920           Obj.magic (Errors.OK (Callstate (p.AST.prog_main, f, List.Nil, m,
     921          Obj.magic (Errors.OK (Callstate ((AST.prog_main p), f, List.Nil, m,
    921922            SStop)))))))
    922923
  • extracted/cminor_syntax.ml

    r2997 r3001  
    113113    -> 'a1 -> 'a1 -> 'a1) -> (AST.typ -> CostLabel.costlabel -> expr -> 'a1
    114114    -> 'a1) -> AST.typ -> expr -> 'a1 **)
    115 let rec expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_10841 = function
    116 | Id (t, x_10843) -> h_Id t x_10843
    117 | Cst (t, x_10844) -> h_Cst t x_10844
    118 | Op1 (t, t', x_10846, x_10845) ->
    119   h_Op1 t t' x_10846 x_10845
    120     (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10845)
    121 | Op2 (t1, t2, t', x_10849, x_10848, x_10847) ->
    122   h_Op2 t1 t2 t' x_10849 x_10848 x_10847
    123     (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_10848)
    124     (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_10847)
    125 | Mem (t, x_10850) ->
    126   h_Mem t x_10850
     115let rec expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_7767 = function
     116| Id (t, x_7769) -> h_Id t x_7769
     117| Cst (t, x_7770) -> h_Cst t x_7770
     118| Op1 (t, t', x_7772, x_7771) ->
     119  h_Op1 t t' x_7772 x_7771
     120    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7771)
     121| Op2 (t1, t2, t', x_7775, x_7774, x_7773) ->
     122  h_Op2 t1 t2 t' x_7775 x_7774 x_7773
     123    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_7774)
     124    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_7773)
     125| Mem (t, x_7776) ->
     126  h_Mem t x_7776
    127127    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost AST.ASTptr
    128       x_10850)
    129 | Cond (sz, sg, t, x_10853, x_10852, x_10851) ->
    130   h_Cond sz sg t x_10853 x_10852 x_10851
     128      x_7776)
     129| Cond (sz, sg, t, x_7779, x_7778, x_7777) ->
     130  h_Cond sz sg t x_7779 x_7778 x_7777
    131131    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost (AST.ASTint
    132       (sz, sg)) x_10853)
    133     (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10852)
    134     (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10851)
    135 | Ecost (t, x_10855, x_10854) ->
    136   h_Ecost t x_10855 x_10854
    137     (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10854)
     132      (sz, sg)) x_7779)
     133    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7778)
     134    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7777)
     135| Ecost (t, x_7781, x_7780) ->
     136  h_Ecost t x_7781 x_7780
     137    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7780)
    138138
    139139(** val expr_rect_Type3 :
     
    145145    -> 'a1 -> 'a1 -> 'a1) -> (AST.typ -> CostLabel.costlabel -> expr -> 'a1
    146146    -> 'a1) -> AST.typ -> expr -> 'a1 **)
    147 let rec expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_10885 = function
    148 | Id (t, x_10887) -> h_Id t x_10887
    149 | Cst (t, x_10888) -> h_Cst t x_10888
    150 | Op1 (t, t', x_10890, x_10889) ->
    151   h_Op1 t t' x_10890 x_10889
    152     (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10889)
    153 | Op2 (t1, t2, t', x_10893, x_10892, x_10891) ->
    154   h_Op2 t1 t2 t' x_10893 x_10892 x_10891
    155     (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_10892)
    156     (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_10891)
    157 | Mem (t, x_10894) ->
    158   h_Mem t x_10894
     147let rec expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_7811 = function
     148| Id (t, x_7813) -> h_Id t x_7813
     149| Cst (t, x_7814) -> h_Cst t x_7814
     150| Op1 (t, t', x_7816, x_7815) ->
     151  h_Op1 t t' x_7816 x_7815
     152    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7815)
     153| Op2 (t1, t2, t', x_7819, x_7818, x_7817) ->
     154  h_Op2 t1 t2 t' x_7819 x_7818 x_7817
     155    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_7818)
     156    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_7817)
     157| Mem (t, x_7820) ->
     158  h_Mem t x_7820
    159159    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost AST.ASTptr
    160       x_10894)
    161 | Cond (sz, sg, t, x_10897, x_10896, x_10895) ->
    162   h_Cond sz sg t x_10897 x_10896 x_10895
     160      x_7820)
     161| Cond (sz, sg, t, x_7823, x_7822, x_7821) ->
     162  h_Cond sz sg t x_7823 x_7822 x_7821
    163163    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost (AST.ASTint
    164       (sz, sg)) x_10897)
    165     (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10896)
    166     (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10895)
    167 | Ecost (t, x_10899, x_10898) ->
    168   h_Ecost t x_10899 x_10898
    169     (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10898)
     164      (sz, sg)) x_7823)
     165    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7822)
     166    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7821)
     167| Ecost (t, x_7825, x_7824) ->
     168  h_Ecost t x_7825 x_7824
     169    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7824)
    170170
    171171(** val expr_rect_Type2 :
     
    177177    -> 'a1 -> 'a1 -> 'a1) -> (AST.typ -> CostLabel.costlabel -> expr -> 'a1
    178178    -> 'a1) -> AST.typ -> expr -> 'a1 **)
    179 let rec expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_10907 = function
    180 | Id (t, x_10909) -> h_Id t x_10909
    181 | Cst (t, x_10910) -> h_Cst t x_10910
    182 | Op1 (t, t', x_10912, x_10911) ->
    183   h_Op1 t t' x_10912 x_10911
    184     (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10911)
    185 | Op2 (t1, t2, t', x_10915, x_10914, x_10913) ->
    186   h_Op2 t1 t2 t' x_10915 x_10914 x_10913
    187     (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_10914)
    188     (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_10913)
    189 | Mem (t, x_10916) ->
    190   h_Mem t x_10916
     179let rec expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_7833 = function
     180| Id (t, x_7835) -> h_Id t x_7835
     181| Cst (t, x_7836) -> h_Cst t x_7836
     182| Op1 (t, t', x_7838, x_7837) ->
     183  h_Op1 t t' x_7838 x_7837
     184    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7837)
     185| Op2 (t1, t2, t', x_7841, x_7840, x_7839) ->
     186  h_Op2 t1 t2 t' x_7841 x_7840 x_7839
     187    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_7840)
     188    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_7839)
     189| Mem (t, x_7842) ->
     190  h_Mem t x_7842
    191191    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost AST.ASTptr
    192       x_10916)
    193 | Cond (sz, sg, t, x_10919, x_10918, x_10917) ->
    194   h_Cond sz sg t x_10919 x_10918 x_10917
     192      x_7842)
     193| Cond (sz, sg, t, x_7845, x_7844, x_7843) ->
     194  h_Cond sz sg t x_7845 x_7844 x_7843
    195195    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost (AST.ASTint
    196       (sz, sg)) x_10919)
    197     (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10918)
    198     (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10917)
    199 | Ecost (t, x_10921, x_10920) ->
    200   h_Ecost t x_10921 x_10920
    201     (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10920)
     196      (sz, sg)) x_7845)
     197    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7844)
     198    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7843)
     199| Ecost (t, x_7847, x_7846) ->
     200  h_Ecost t x_7847 x_7846
     201    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7846)
    202202
    203203(** val expr_rect_Type1 :
     
    209209    -> 'a1 -> 'a1 -> 'a1) -> (AST.typ -> CostLabel.costlabel -> expr -> 'a1
    210210    -> 'a1) -> AST.typ -> expr -> 'a1 **)
    211 let rec expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_10929 = function
    212 | Id (t, x_10931) -> h_Id t x_10931
    213 | Cst (t, x_10932) -> h_Cst t x_10932
    214 | Op1 (t, t', x_10934, x_10933) ->
    215   h_Op1 t t' x_10934 x_10933
    216     (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10933)
    217 | Op2 (t1, t2, t', x_10937, x_10936, x_10935) ->
    218   h_Op2 t1 t2 t' x_10937 x_10936 x_10935
    219     (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_10936)
    220     (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_10935)
    221 | Mem (t, x_10938) ->
    222   h_Mem t x_10938
     211let rec expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_7855 = function
     212| Id (t, x_7857) -> h_Id t x_7857
     213| Cst (t, x_7858) -> h_Cst t x_7858
     214| Op1 (t, t', x_7860, x_7859) ->
     215  h_Op1 t t' x_7860 x_7859
     216    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7859)
     217| Op2 (t1, t2, t', x_7863, x_7862, x_7861) ->
     218  h_Op2 t1 t2 t' x_7863 x_7862 x_7861
     219    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_7862)
     220    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_7861)
     221| Mem (t, x_7864) ->
     222  h_Mem t x_7864
    223223    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost AST.ASTptr
    224       x_10938)
    225 | Cond (sz, sg, t, x_10941, x_10940, x_10939) ->
    226   h_Cond sz sg t x_10941 x_10940 x_10939
     224      x_7864)
     225| Cond (sz, sg, t, x_7867, x_7866, x_7865) ->
     226  h_Cond sz sg t x_7867 x_7866 x_7865
    227227    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost (AST.ASTint
    228       (sz, sg)) x_10941)
    229     (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10940)
    230     (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10939)
    231 | Ecost (t, x_10943, x_10942) ->
    232   h_Ecost t x_10943 x_10942
    233     (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10942)
     228      (sz, sg)) x_7867)
     229    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7866)
     230    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7865)
     231| Ecost (t, x_7869, x_7868) ->
     232  h_Ecost t x_7869 x_7868
     233    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7868)
    234234
    235235(** val expr_rect_Type0 :
     
    241241    -> 'a1 -> 'a1 -> 'a1) -> (AST.typ -> CostLabel.costlabel -> expr -> 'a1
    242242    -> 'a1) -> AST.typ -> expr -> 'a1 **)
    243 let rec expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_10951 = function
    244 | Id (t, x_10953) -> h_Id t x_10953
    245 | Cst (t, x_10954) -> h_Cst t x_10954
    246 | Op1 (t, t', x_10956, x_10955) ->
    247   h_Op1 t t' x_10956 x_10955
    248     (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10955)
    249 | Op2 (t1, t2, t', x_10959, x_10958, x_10957) ->
    250   h_Op2 t1 t2 t' x_10959 x_10958 x_10957
    251     (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_10958)
    252     (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_10957)
    253 | Mem (t, x_10960) ->
    254   h_Mem t x_10960
     243let rec expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_7877 = function
     244| Id (t, x_7879) -> h_Id t x_7879
     245| Cst (t, x_7880) -> h_Cst t x_7880
     246| Op1 (t, t', x_7882, x_7881) ->
     247  h_Op1 t t' x_7882 x_7881
     248    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7881)
     249| Op2 (t1, t2, t', x_7885, x_7884, x_7883) ->
     250  h_Op2 t1 t2 t' x_7885 x_7884 x_7883
     251    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_7884)
     252    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_7883)
     253| Mem (t, x_7886) ->
     254  h_Mem t x_7886
    255255    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost AST.ASTptr
    256       x_10960)
    257 | Cond (sz, sg, t, x_10963, x_10962, x_10961) ->
    258   h_Cond sz sg t x_10963 x_10962 x_10961
     256      x_7886)
     257| Cond (sz, sg, t, x_7889, x_7888, x_7887) ->
     258  h_Cond sz sg t x_7889 x_7888 x_7887
    259259    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost (AST.ASTint
    260       (sz, sg)) x_10963)
    261     (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10962)
    262     (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10961)
    263 | Ecost (t, x_10965, x_10964) ->
    264   h_Ecost t x_10965 x_10964
    265     (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_10964)
     260      (sz, sg)) x_7889)
     261    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7888)
     262    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7887)
     263| Ecost (t, x_7891, x_7890) ->
     264  h_Ecost t x_7891 x_7890
     265    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_7890)
    266266
    267267(** val expr_inv_rect_Type4 :
     
    373373let rec stmt_rect_Type4 h_St_skip h_St_assign h_St_store h_St_call h_St_seq h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost = function
    374374| St_skip -> h_St_skip
    375 | St_assign (t, x_11136, x_11135) -> h_St_assign t x_11136 x_11135
    376 | St_store (t, x_11138, x_11137) -> h_St_store t x_11138 x_11137
    377 | St_call (x_11141, x_11140, x_11139) -> h_St_call x_11141 x_11140 x_11139
    378 | St_seq (x_11143, x_11142) ->
    379   h_St_seq x_11143 x_11142
     375| St_assign (t, x_8062, x_8061) -> h_St_assign t x_8062 x_8061
     376| St_store (t, x_8064, x_8063) -> h_St_store t x_8064 x_8063
     377| St_call (x_8067, x_8066, x_8065) -> h_St_call x_8067 x_8066 x_8065
     378| St_seq (x_8069, x_8068) ->
     379  h_St_seq x_8069 x_8068
    380380    (stmt_rect_Type4 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    381       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11143)
     381      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8069)
    382382    (stmt_rect_Type4 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    383       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11142)
    384 | St_ifthenelse (sz, sg, x_11146, x_11145, x_11144) ->
    385   h_St_ifthenelse sz sg x_11146 x_11145 x_11144
     383      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8068)
     384| St_ifthenelse (sz, sg, x_8072, x_8071, x_8070) ->
     385  h_St_ifthenelse sz sg x_8072 x_8071 x_8070
    386386    (stmt_rect_Type4 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    387       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11145)
     387      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8071)
    388388    (stmt_rect_Type4 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    389       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11144)
    390 | St_return x_11147 -> h_St_return x_11147
    391 | St_label (x_11149, x_11148) ->
    392   h_St_label x_11149 x_11148
     389      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8070)
     390| St_return x_8073 -> h_St_return x_8073
     391| St_label (x_8075, x_8074) ->
     392  h_St_label x_8075 x_8074
    393393    (stmt_rect_Type4 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    394       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11148)
    395 | St_goto x_11150 -> h_St_goto x_11150
    396 | St_cost (x_11152, x_11151) ->
    397   h_St_cost x_11152 x_11151
     394      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8074)
     395| St_goto x_8076 -> h_St_goto x_8076
     396| St_cost (x_8078, x_8077) ->
     397  h_St_cost x_8078 x_8077
    398398    (stmt_rect_Type4 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    399       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11151)
     399      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8077)
    400400
    401401(** val stmt_rect_Type3 :
     
    410410let rec stmt_rect_Type3 h_St_skip h_St_assign h_St_store h_St_call h_St_seq h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost = function
    411411| St_skip -> h_St_skip
    412 | St_assign (t, x_11194, x_11193) -> h_St_assign t x_11194 x_11193
    413 | St_store (t, x_11196, x_11195) -> h_St_store t x_11196 x_11195
    414 | St_call (x_11199, x_11198, x_11197) -> h_St_call x_11199 x_11198 x_11197
    415 | St_seq (x_11201, x_11200) ->
    416   h_St_seq x_11201 x_11200
     412| St_assign (t, x_8120, x_8119) -> h_St_assign t x_8120 x_8119
     413| St_store (t, x_8122, x_8121) -> h_St_store t x_8122 x_8121
     414| St_call (x_8125, x_8124, x_8123) -> h_St_call x_8125 x_8124 x_8123
     415| St_seq (x_8127, x_8126) ->
     416  h_St_seq x_8127 x_8126
    417417    (stmt_rect_Type3 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    418       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11201)
     418      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8127)
    419419    (stmt_rect_Type3 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    420       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11200)
    421 | St_ifthenelse (sz, sg, x_11204, x_11203, x_11202) ->
    422   h_St_ifthenelse sz sg x_11204 x_11203 x_11202
     420      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8126)
     421| St_ifthenelse (sz, sg, x_8130, x_8129, x_8128) ->
     422  h_St_ifthenelse sz sg x_8130 x_8129 x_8128
    423423    (stmt_rect_Type3 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    424       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11203)
     424      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8129)
    425425    (stmt_rect_Type3 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    426       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11202)
    427 | St_return x_11205 -> h_St_return x_11205
    428 | St_label (x_11207, x_11206) ->
    429   h_St_label x_11207 x_11206
     426      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8128)
     427| St_return x_8131 -> h_St_return x_8131
     428| St_label (x_8133, x_8132) ->
     429  h_St_label x_8133 x_8132
    430430    (stmt_rect_Type3 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    431       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11206)
    432 | St_goto x_11208 -> h_St_goto x_11208
    433 | St_cost (x_11210, x_11209) ->
    434   h_St_cost x_11210 x_11209
     431      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8132)
     432| St_goto x_8134 -> h_St_goto x_8134
     433| St_cost (x_8136, x_8135) ->
     434  h_St_cost x_8136 x_8135
    435435    (stmt_rect_Type3 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    436       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11209)
     436      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8135)
    437437
    438438(** val stmt_rect_Type2 :
     
    447447let rec stmt_rect_Type2 h_St_skip h_St_assign h_St_store h_St_call h_St_seq h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost = function
    448448| St_skip -> h_St_skip
    449 | St_assign (t, x_11223, x_11222) -> h_St_assign t x_11223 x_11222
    450 | St_store (t, x_11225, x_11224) -> h_St_store t x_11225 x_11224
    451 | St_call (x_11228, x_11227, x_11226) -> h_St_call x_11228 x_11227 x_11226
    452 | St_seq (x_11230, x_11229) ->
    453   h_St_seq x_11230 x_11229
     449| St_assign (t, x_8149, x_8148) -> h_St_assign t x_8149 x_8148
     450| St_store (t, x_8151, x_8150) -> h_St_store t x_8151 x_8150
     451| St_call (x_8154, x_8153, x_8152) -> h_St_call x_8154 x_8153 x_8152
     452| St_seq (x_8156, x_8155) ->
     453  h_St_seq x_8156 x_8155
    454454    (stmt_rect_Type2 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    455       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11230)
     455      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8156)
    456456    (stmt_rect_Type2 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    457       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11229)
    458 | St_ifthenelse (sz, sg, x_11233, x_11232, x_11231) ->
    459   h_St_ifthenelse sz sg x_11233 x_11232 x_11231
     457      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8155)
     458| St_ifthenelse (sz, sg, x_8159, x_8158, x_8157) ->
     459  h_St_ifthenelse sz sg x_8159 x_8158 x_8157
    460460    (stmt_rect_Type2 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    461       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11232)
     461      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8158)
    462462    (stmt_rect_Type2 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    463       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11231)
    464 | St_return x_11234 -> h_St_return x_11234
    465 | St_label (x_11236, x_11235) ->
    466   h_St_label x_11236 x_11235
     463      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8157)
     464| St_return x_8160 -> h_St_return x_8160
     465| St_label (x_8162, x_8161) ->
     466  h_St_label x_8162 x_8161
    467467    (stmt_rect_Type2 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    468       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11235)
    469 | St_goto x_11237 -> h_St_goto x_11237
    470 | St_cost (x_11239, x_11238) ->
    471   h_St_cost x_11239 x_11238
     468      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8161)
     469| St_goto x_8163 -> h_St_goto x_8163
     470| St_cost (x_8165, x_8164) ->
     471  h_St_cost x_8165 x_8164
    472472    (stmt_rect_Type2 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    473       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11238)
     473      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8164)
    474474
    475475(** val stmt_rect_Type1 :
     
    484484let rec stmt_rect_Type1 h_St_skip h_St_assign h_St_store h_St_call h_St_seq h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost = function
    485485| St_skip -> h_St_skip
    486 | St_assign (t, x_11252, x_11251) -> h_St_assign t x_11252 x_11251
    487 | St_store (t, x_11254, x_11253) -> h_St_store t x_11254 x_11253
    488 | St_call (x_11257, x_11256, x_11255) -> h_St_call x_11257 x_11256 x_11255
    489 | St_seq (x_11259, x_11258) ->
    490   h_St_seq x_11259 x_11258
     486| St_assign (t, x_8178, x_8177) -> h_St_assign t x_8178 x_8177
     487| St_store (t, x_8180, x_8179) -> h_St_store t x_8180 x_8179
     488| St_call (x_8183, x_8182, x_8181) -> h_St_call x_8183 x_8182 x_8181
     489| St_seq (x_8185, x_8184) ->
     490  h_St_seq x_8185 x_8184
    491491    (stmt_rect_Type1 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    492       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11259)
     492      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8185)
    493493    (stmt_rect_Type1 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    494       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11258)
    495 | St_ifthenelse (sz, sg, x_11262, x_11261, x_11260) ->
    496   h_St_ifthenelse sz sg x_11262 x_11261 x_11260
     494      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8184)
     495| St_ifthenelse (sz, sg, x_8188, x_8187, x_8186) ->
     496  h_St_ifthenelse sz sg x_8188 x_8187 x_8186
    497497    (stmt_rect_Type1 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    498       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11261)
     498      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8187)
    499499    (stmt_rect_Type1 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    500       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11260)
    501 | St_return x_11263 -> h_St_return x_11263
    502 | St_label (x_11265, x_11264) ->
    503   h_St_label x_11265 x_11264
     500      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8186)
     501| St_return x_8189 -> h_St_return x_8189
     502| St_label (x_8191, x_8190) ->
     503  h_St_label x_8191 x_8190
    504504    (stmt_rect_Type1 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    505       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11264)
    506 | St_goto x_11266 -> h_St_goto x_11266
    507 | St_cost (x_11268, x_11267) ->
    508   h_St_cost x_11268 x_11267
     505      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8190)
     506| St_goto x_8192 -> h_St_goto x_8192
     507| St_cost (x_8194, x_8193) ->
     508  h_St_cost x_8194 x_8193
    509509    (stmt_rect_Type1 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    510       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11267)
     510      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8193)
    511511
    512512(** val stmt_rect_Type0 :
     
    521521let rec stmt_rect_Type0 h_St_skip h_St_assign h_St_store h_St_call h_St_seq h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost = function
    522522| St_skip -> h_St_skip
    523 | St_assign (t, x_11281, x_11280) -> h_St_assign t x_11281 x_11280
    524 | St_store (t, x_11283, x_11282) -> h_St_store t x_11283 x_11282
    525 | St_call (x_11286, x_11285, x_11284) -> h_St_call x_11286 x_11285 x_11284
    526 | St_seq (x_11288, x_11287) ->
    527   h_St_seq x_11288 x_11287
     523| St_assign (t, x_8207, x_8206) -> h_St_assign t x_8207 x_8206
     524| St_store (t, x_8209, x_8208) -> h_St_store t x_8209 x_8208
     525| St_call (x_8212, x_8211, x_8210) -> h_St_call x_8212 x_8211 x_8210
     526| St_seq (x_8214, x_8213) ->
     527  h_St_seq x_8214 x_8213
    528528    (stmt_rect_Type0 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    529       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11288)
     529      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8214)
    530530    (stmt_rect_Type0 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    531       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11287)
    532 | St_ifthenelse (sz, sg, x_11291, x_11290, x_11289) ->
    533   h_St_ifthenelse sz sg x_11291 x_11290 x_11289
     531      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8213)
     532| St_ifthenelse (sz, sg, x_8217, x_8216, x_8215) ->
     533  h_St_ifthenelse sz sg x_8217 x_8216 x_8215
    534534    (stmt_rect_Type0 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    535       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11290)
     535      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8216)
    536536    (stmt_rect_Type0 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    537       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11289)
    538 | St_return x_11292 -> h_St_return x_11292
    539 | St_label (x_11294, x_11293) ->
    540   h_St_label x_11294 x_11293
     537      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8215)
     538| St_return x_8218 -> h_St_return x_8218
     539| St_label (x_8220, x_8219) ->
     540  h_St_label x_8220 x_8219
    541541    (stmt_rect_Type0 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    542       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11293)
    543 | St_goto x_11295 -> h_St_goto x_11295
    544 | St_cost (x_11297, x_11296) ->
    545   h_St_cost x_11297 x_11296
     542      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8219)
     543| St_goto x_8221 -> h_St_goto x_8221
     544| St_cost (x_8223, x_8222) ->
     545  h_St_cost x_8223 x_8222
    546546    (stmt_rect_Type0 h_St_skip h_St_assign h_St_store h_St_call h_St_seq
    547       h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_11296)
     547      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_8222)
    548548
    549549(** val stmt_inv_rect_Type4 :
     
    757757    (AST.ident, AST.typ) Types.prod List.list -> __ -> Nat.nat -> stmt -> __
    758758    -> 'a1) -> internal_function -> 'a1 **)
    759 let rec internal_function_rect_Type4 h_mk_internal_function x_11592 =
     759let rec internal_function_rect_Type4 h_mk_internal_function x_8518 =
    760760  let { f_return = f_return0; f_params = f_params0; f_vars = f_vars0;
    761     f_stacksize = f_stacksize0; f_body = f_body0 } = x_11592
     761    f_stacksize = f_stacksize0; f_body = f_body0 } = x_8518
    762762  in
    763763  h_mk_internal_function f_return0 f_params0 f_vars0 __ f_stacksize0 f_body0
     
    768768    (AST.ident, AST.typ) Types.prod List.list -> __ -> Nat.nat -> stmt -> __
    769769    -> 'a1) -> internal_function -> 'a1 **)
    770 let rec internal_function_rect_Type5 h_mk_internal_function x_11594 =
     770let rec internal_function_rect_Type5 h_mk_internal_function x_8520 =
    771771  let { f_return = f_return0; f_params = f_params0; f_vars = f_vars0;
    772     f_stacksize = f_stacksize0; f_body = f_body0 } = x_11594
     772    f_stacksize = f_stacksize0; f_body = f_body0 } = x_8520
    773773  in
    774774  h_mk_internal_function f_return0 f_params0 f_vars0 __ f_stacksize0 f_body0
     
    779779    (AST.ident, AST.typ) Types.prod List.list -> __ -> Nat.nat -> stmt -> __
    780780    -> 'a1) -> internal_function -> 'a1 **)
    781 let rec internal_function_rect_Type3 h_mk_internal_function x_11596 =
     781let rec internal_function_rect_Type3 h_mk_internal_function x_8522 =
    782782  let { f_return = f_return0; f_params = f_params0; f_vars = f_vars0;
    783     f_stacksize = f_stacksize0; f_body = f_body0 } = x_11596
     783    f_stacksize = f_stacksize0; f_body = f_body0 } = x_8522
    784784  in
    785785  h_mk_internal_function f_return0 f_params0 f_vars0 __ f_stacksize0 f_body0
     
    790790    (AST.ident, AST.typ) Types.prod List.list -> __ -> Nat.nat -> stmt -> __
    791791    -> 'a1) -> internal_function -> 'a1 **)
    792 let rec internal_function_rect_Type2 h_mk_internal_function x_11598 =
     792let rec internal_function_rect_Type2 h_mk_internal_function x_8524 =
    793793  let { f_return = f_return0; f_params = f_params0; f_vars = f_vars0;
    794     f_stacksize = f_stacksize0; f_body = f_body0 } = x_11598
     794    f_stacksize = f_stacksize0; f_body = f_body0 } = x_8524
    795795  in
    796796  h_mk_internal_function f_return0 f_params0 f_vars0 __ f_stacksize0 f_body0
     
    801801    (AST.ident, AST.typ) Types.prod List.list -> __ -> Nat.nat -> stmt -> __
    802802    -> 'a1) -> internal_function -> 'a1 **)
    803 let rec internal_function_rect_Type1 h_mk_internal_function x_11600 =
     803let rec internal_function_rect_Type1 h_mk_internal_function x_8526 =
    804804  let { f_return = f_return0; f_params = f_params0; f_vars = f_vars0;
    805     f_stacksize = f_stacksize0; f_body = f_body0 } = x_11600
     805    f_stacksize = f_stacksize0; f_body = f_body0 } = x_8526
    806806  in
    807807  h_mk_internal_function f_return0 f_params0 f_vars0 __ f_stacksize0 f_body0
     
    812812    (AST.ident, AST.typ) Types.prod List.list -> __ -> Nat.nat -> stmt -> __
    813813    -> 'a1) -> internal_function -> 'a1 **)
    814 let rec internal_function_rect_Type0 h_mk_internal_function x_11602 =
     814let rec internal_function_rect_Type0 h_mk_internal_function x_8528 =
    815815  let { f_return = f_return0; f_params = f_params0; f_vars = f_vars0;
    816     f_stacksize = f_stacksize0; f_body = f_body0 } = x_11602
     816    f_stacksize = f_stacksize0; f_body = f_body0 } = x_8528
    817817  in
    818818  h_mk_internal_function f_return0 f_params0 f_vars0 __ f_stacksize0 f_body0
  • extracted/compiler.ml

    r2960 r3001  
    531531  let i2 = Obj.magic observe Ertlptr_pass { Types.fst = p2; Types.snd = st1 }
    532532  in
    533   let { Types.fst = eta665; Types.snd = max_stack } =
     533  let { Types.fst = eta29478; Types.snd = max_stack } =
    534534    ERTLptrToLTL.ertlptr_to_ltl compute_fixpoint colour_graph p2
    535535  in
    536   let { Types.fst = p3; Types.snd = stack_cost } = eta665 in
     536  let { Types.fst = p3; Types.snd = stack_cost } = eta29478 in
    537537  let st2 = lookup_stack_cost (Joint.graph_params_to_params LTL.lTL) p3 in
    538538  let i3 = Obj.magic observe Ltl_pass { Types.fst = p3; Types.snd = st2 } in
     
    615615    Csyntax.clight_program -> Label.clight_cost_map -> 'a1) ->
    616616    compiler_output -> 'a1 **)
    617 let rec compiler_output_rect_Type4 h_mk_compiler_output x_589 =
     617let rec compiler_output_rect_Type4 h_mk_compiler_output x_15313 =
    618618  let { c_labelled_object_code = c_labelled_object_code0; c_stack_cost =
    619619    c_stack_cost0; c_max_stack = c_max_stack0; c_labelled_clight =
    620     c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_589
     620    c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_15313
    621621  in
    622622  h_mk_compiler_output c_labelled_object_code0 c_stack_cost0 c_max_stack0
     
    627627    Csyntax.clight_program -> Label.clight_cost_map -> 'a1) ->
    628628    compiler_output -> 'a1 **)
    629 let rec compiler_output_rect_Type5 h_mk_compiler_output x_591 =
     629let rec compiler_output_rect_Type5 h_mk_compiler_output x_15315 =
    630630  let { c_labelled_object_code = c_labelled_object_code0; c_stack_cost =
    631631    c_stack_cost0; c_max_stack = c_max_stack0; c_labelled_clight =
    632     c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_591
     632    c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_15315
    633633  in
    634634  h_mk_compiler_output c_labelled_object_code0 c_stack_cost0 c_max_stack0
     
    639639    Csyntax.clight_program -> Label.clight_cost_map -> 'a1) ->
    640640    compiler_output -> 'a1 **)
    641 let rec compiler_output_rect_Type3 h_mk_compiler_output x_593 =
     641let rec compiler_output_rect_Type3 h_mk_compiler_output x_15317 =
    642642  let { c_labelled_object_code = c_labelled_object_code0; c_stack_cost =
    643643    c_stack_cost0; c_max_stack = c_max_stack0; c_labelled_clight =
    644     c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_593
     644    c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_15317
    645645  in
    646646  h_mk_compiler_output c_labelled_object_code0 c_stack_cost0 c_max_stack0
     
    651651    Csyntax.clight_program -> Label.clight_cost_map -> 'a1) ->
    652652    compiler_output -> 'a1 **)
    653 let rec compiler_output_rect_Type2 h_mk_compiler_output x_595 =
     653let rec compiler_output_rect_Type2 h_mk_compiler_output x_15319 =
    654654  let { c_labelled_object_code = c_labelled_object_code0; c_stack_cost =
    655655    c_stack_cost0; c_max_stack = c_max_stack0; c_labelled_clight =
    656     c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_595
     656    c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_15319
    657657  in
    658658  h_mk_compiler_output c_labelled_object_code0 c_stack_cost0 c_max_stack0
     
    663663    Csyntax.clight_program -> Label.clight_cost_map -> 'a1) ->
    664664    compiler_output -> 'a1 **)
    665 let rec compiler_output_rect_Type1 h_mk_compiler_output x_597 =
     665let rec compiler_output_rect_Type1 h_mk_compiler_output x_15321 =
    666666  let { c_labelled_object_code = c_labelled_object_code0; c_stack_cost =
    667667    c_stack_cost0; c_max_stack = c_max_stack0; c_labelled_clight =
    668     c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_597
     668    c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_15321
    669669  in
    670670  h_mk_compiler_output c_labelled_object_code0 c_stack_cost0 c_max_stack0
     
    675675    Csyntax.clight_program -> Label.clight_cost_map -> 'a1) ->
    676676    compiler_output -> 'a1 **)
    677 let rec compiler_output_rect_Type0 h_mk_compiler_output x_599 =
     677let rec compiler_output_rect_Type0 h_mk_compiler_output x_15323 =
    678678  let { c_labelled_object_code = c_labelled_object_code0; c_stack_cost =
    679679    c_stack_cost0; c_max_stack = c_max_stack0; c_labelled_clight =
    680     c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_599
     680    c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_15323
    681681  in
    682682  h_mk_compiler_output c_labelled_object_code0 c_stack_cost0 c_max_stack0
  • extracted/costCheck.ml

    r2773 r3001  
    216216    | AST.Internal fn0 ->
    217217      Bool.andb (check_well_cost_fn fn0) (check_sound_cost_fn fn0)
    218     | AST.External x -> Bool.True) p.AST.prog_funct
    219 
     218    | AST.External x -> Bool.True) (AST.prog_funct p)
     219
  • extracted/costInj.ml

    r2951 r3001  
    136136    match x.Types.snd with
    137137    | AST.Internal f -> check_fun_inj f
    138     | AST.External x0 -> Bool.True) p.AST.prog_funct
     138    | AST.External x0 -> Bool.True) (AST.prog_funct p)
    139139
  • extracted/csem.ml

    r2997 r3001  
    301301        | Values.Vnull -> Types.None
    302302        | Values.Vptr ptr2 ->
    303           (match Pointers.eq_block ptr1.Pointers.pblock ptr2.Pointers.pblock with
     303          (match Pointers.eq_block (Pointers.pblock ptr1)
     304                   (Pointers.pblock ptr2) with
    304305           | Bool.True ->
    305306             (match Nat.eqb (Csyntax.sizeof ty) Nat.O with
     
    322323                              (Nat.S (Nat.S (Nat.S (Nat.S
    323324                              Nat.O))))))))))))))))))))))))))))))))
    324                               ptr1.Pointers.poff ptr2.Pointers.poff)
     325                              (Pointers.poff ptr1) (Pointers.poff ptr2))
    325326                            (Integers.repr (Csyntax.sizeof ty)) with
    326327                    | Types.None -> Types.None
     
    626627                   (FrontEndMem.valid_pointer m ptr2) with
    627628           | Bool.True ->
    628              (match Pointers.eq_block ptr1.Pointers.pblock
    629                       ptr2.Pointers.pblock with
     629             (match Pointers.eq_block (Pointers.pblock ptr1)
     630                      (Pointers.pblock ptr2) with
    630631              | Bool.True ->
    631632                Types.Some
    632633                  (Values.of_bool
    633                     (Values.cmp_offset c ptr1.Pointers.poff
    634                       ptr2.Pointers.poff))
     634                    (Values.cmp_offset c (Pointers.poff ptr1)
     635                      (Pointers.poff ptr2)))
    635636              | Bool.False -> sem_cmp_mismatch c)
    636637           | Bool.False -> Types.None)))
     
    778779let rec cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3 h_Kswitch h_Kcall = function
    779780| Kstop -> h_Kstop
    780 | Kseq (x_14621, x_14620) ->
    781   h_Kseq x_14621 x_14620
     781| Kseq (x_11548, x_11547) ->
     782  h_Kseq x_11548 x_11547
    782783    (cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    783       h_Kswitch h_Kcall x_14620)
    784 | Kwhile (x_14624, x_14623, x_14622) ->
    785   h_Kwhile x_14624 x_14623 x_14622
     784      h_Kswitch h_Kcall x_11547)
     785| Kwhile (x_11551, x_11550, x_11549) ->
     786  h_Kwhile x_11551 x_11550 x_11549
    786787    (cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    787       h_Kswitch h_Kcall x_14622)
    788 | Kdowhile (x_14627, x_14626, x_14625) ->
    789   h_Kdowhile x_14627 x_14626 x_14625
     788      h_Kswitch h_Kcall x_11549)
     789| Kdowhile (x_11554, x_11553, x_11552) ->
     790  h_Kdowhile x_11554 x_11553 x_11552
    790791    (cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    791       h_Kswitch h_Kcall x_14625)
    792 | Kfor2 (x_14631, x_14630, x_14629, x_14628) ->
    793   h_Kfor2 x_14631 x_14630 x_14629 x_14628
     792      h_Kswitch h_Kcall x_11552)
     793| Kfor2 (x_11558, x_11557, x_11556, x_11555) ->
     794  h_Kfor2 x_11558 x_11557 x_11556 x_11555
    794795    (cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    795       h_Kswitch h_Kcall x_14628)
    796 | Kfor3 (x_14635, x_14634, x_14633, x_14632) ->
    797   h_Kfor3 x_14635 x_14634 x_14633 x_14632
     796      h_Kswitch h_Kcall x_11555)
     797| Kfor3 (x_11562, x_11561, x_11560, x_11559) ->
     798  h_Kfor3 x_11562 x_11561 x_11560 x_11559
    798799    (cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    799       h_Kswitch h_Kcall x_14632)
    800 | Kswitch x_14636 ->
    801   h_Kswitch x_14636
     800      h_Kswitch h_Kcall x_11559)
     801| Kswitch x_11563 ->
     802  h_Kswitch x_11563
    802803    (cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    803       h_Kswitch h_Kcall x_14636)
    804 | Kcall (x_14640, x_14639, x_14638, x_14637) ->
    805   h_Kcall x_14640 x_14639 x_14638 x_14637
     804      h_Kswitch h_Kcall x_11563)
     805| Kcall (x_11567, x_11566, x_11565, x_11564) ->
     806  h_Kcall x_11567 x_11566 x_11565 x_11564
    806807    (cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    807       h_Kswitch h_Kcall x_14637)
     808      h_Kswitch h_Kcall x_11564)
    808809
    809810(** val cont_rect_Type3 :
     
    818819let rec cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3 h_Kswitch h_Kcall = function
    819820| Kstop -> h_Kstop
    820 | Kseq (x_14681, x_14680) ->
    821   h_Kseq x_14681 x_14680
     821| Kseq (x_11608, x_11607) ->
     822  h_Kseq x_11608 x_11607
    822823    (cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    823       h_Kswitch h_Kcall x_14680)
    824 | Kwhile (x_14684, x_14683, x_14682) ->
    825   h_Kwhile x_14684 x_14683 x_14682
     824      h_Kswitch h_Kcall x_11607)
     825| Kwhile (x_11611, x_11610, x_11609) ->
     826  h_Kwhile x_11611 x_11610 x_11609
    826827    (cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    827       h_Kswitch h_Kcall x_14682)
    828 | Kdowhile (x_14687, x_14686, x_14685) ->
    829   h_Kdowhile x_14687 x_14686 x_14685
     828      h_Kswitch h_Kcall x_11609)
     829| Kdowhile (x_11614, x_11613, x_11612) ->
     830  h_Kdowhile x_11614 x_11613 x_11612
    830831    (cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    831       h_Kswitch h_Kcall x_14685)
    832 | Kfor2 (x_14691, x_14690, x_14689, x_14688) ->
    833   h_Kfor2 x_14691 x_14690 x_14689 x_14688
     832      h_Kswitch h_Kcall x_11612)
     833| Kfor2 (x_11618, x_11617, x_11616, x_11615) ->
     834  h_Kfor2 x_11618 x_11617 x_11616 x_11615
    834835    (cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    835       h_Kswitch h_Kcall x_14688)
    836 | Kfor3 (x_14695, x_14694, x_14693, x_14692) ->
    837   h_Kfor3 x_14695 x_14694 x_14693 x_14692
     836      h_Kswitch h_Kcall x_11615)
     837| Kfor3 (x_11622, x_11621, x_11620, x_11619) ->
     838  h_Kfor3 x_11622 x_11621 x_11620 x_11619
    838839    (cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    839       h_Kswitch h_Kcall x_14692)
    840 | Kswitch x_14696 ->
    841   h_Kswitch x_14696
     840      h_Kswitch h_Kcall x_11619)
     841| Kswitch x_11623 ->
     842  h_Kswitch x_11623
    842843    (cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    843       h_Kswitch h_Kcall x_14696)
    844 | Kcall (x_14700, x_14699, x_14698, x_14697) ->
    845   h_Kcall x_14700 x_14699 x_14698 x_14697
     844      h_Kswitch h_Kcall x_11623)
     845| Kcall (x_11627, x_11626, x_11625, x_11624) ->
     846  h_Kcall x_11627 x_11626 x_11625 x_11624
    846847    (cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    847       h_Kswitch h_Kcall x_14697)
     848      h_Kswitch h_Kcall x_11624)
    848849
    849850(** val cont_rect_Type2 :
     
    858859let rec cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3 h_Kswitch h_Kcall = function
    859860| Kstop -> h_Kstop
    860 | Kseq (x_14711, x_14710) ->
    861   h_Kseq x_14711 x_14710
     861| Kseq (x_11638, x_11637) ->
     862  h_Kseq x_11638 x_11637
    862863    (cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    863       h_Kswitch h_Kcall x_14710)
    864 | Kwhile (x_14714, x_14713, x_14712) ->
    865   h_Kwhile x_14714 x_14713 x_14712
     864      h_Kswitch h_Kcall x_11637)
     865| Kwhile (x_11641, x_11640, x_11639) ->
     866  h_Kwhile x_11641 x_11640 x_11639
    866867    (cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    867       h_Kswitch h_Kcall x_14712)
    868 | Kdowhile (x_14717, x_14716, x_14715) ->
    869   h_Kdowhile x_14717 x_14716 x_14715
     868      h_Kswitch h_Kcall x_11639)
     869| Kdowhile (x_11644, x_11643, x_11642) ->
     870  h_Kdowhile x_11644 x_11643 x_11642
    870871    (cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    871       h_Kswitch h_Kcall x_14715)
    872 | Kfor2 (x_14721, x_14720, x_14719, x_14718) ->
    873   h_Kfor2 x_14721 x_14720 x_14719 x_14718
     872      h_Kswitch h_Kcall x_11642)
     873| Kfor2 (x_11648, x_11647, x_11646, x_11645) ->
     874  h_Kfor2 x_11648 x_11647 x_11646 x_11645
    874875    (cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    875       h_Kswitch h_Kcall x_14718)
    876 | Kfor3 (x_14725, x_14724, x_14723, x_14722) ->
    877   h_Kfor3 x_14725 x_14724 x_14723 x_14722
     876      h_Kswitch h_Kcall x_11645)
     877| Kfor3 (x_11652, x_11651, x_11650, x_11649) ->
     878  h_Kfor3 x_11652 x_11651 x_11650 x_11649
    878879    (cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    879       h_Kswitch h_Kcall x_14722)
    880 | Kswitch x_14726 ->
    881   h_Kswitch x_14726
     880      h_Kswitch h_Kcall x_11649)
     881| Kswitch x_11653 ->
     882  h_Kswitch x_11653
    882883    (cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    883       h_Kswitch h_Kcall x_14726)
    884 | Kcall (x_14730, x_14729, x_14728, x_14727) ->
    885   h_Kcall x_14730 x_14729 x_14728 x_14727
     884      h_Kswitch h_Kcall x_11653)
     885| Kcall (x_11657, x_11656, x_11655, x_11654) ->
     886  h_Kcall x_11657 x_11656 x_11655 x_11654
    886887    (cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    887       h_Kswitch h_Kcall x_14727)
     888      h_Kswitch h_Kcall x_11654)
    888889
    889890(** val cont_rect_Type1 :
     
    898899let rec cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3 h_Kswitch h_Kcall = function
    899900| Kstop -> h_Kstop
    900 | Kseq (x_14741, x_14740) ->
    901   h_Kseq x_14741 x_14740
     901| Kseq (x_11668, x_11667) ->
     902  h_Kseq x_11668 x_11667
    902903    (cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    903       h_Kswitch h_Kcall x_14740)
    904 | Kwhile (x_14744, x_14743, x_14742) ->
    905   h_Kwhile x_14744 x_14743 x_14742
     904      h_Kswitch h_Kcall x_11667)
     905| Kwhile (x_11671, x_11670, x_11669) ->
     906  h_Kwhile x_11671 x_11670 x_11669
    906907    (cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    907       h_Kswitch h_Kcall x_14742)
    908 | Kdowhile (x_14747, x_14746, x_14745) ->
    909   h_Kdowhile x_14747 x_14746 x_14745
     908      h_Kswitch h_Kcall x_11669)
     909| Kdowhile (x_11674, x_11673, x_11672) ->
     910  h_Kdowhile x_11674 x_11673 x_11672
    910911    (cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    911       h_Kswitch h_Kcall x_14745)
    912 | Kfor2 (x_14751, x_14750, x_14749, x_14748) ->
    913   h_Kfor2 x_14751 x_14750 x_14749 x_14748
     912      h_Kswitch h_Kcall x_11672)
     913| Kfor2 (x_11678, x_11677, x_11676, x_11675) ->
     914  h_Kfor2 x_11678 x_11677 x_11676 x_11675
    914915    (cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    915       h_Kswitch h_Kcall x_14748)
    916 | Kfor3 (x_14755, x_14754, x_14753, x_14752) ->
    917   h_Kfor3 x_14755 x_14754 x_14753 x_14752
     916      h_Kswitch h_Kcall x_11675)
     917| Kfor3 (x_11682, x_11681, x_11680, x_11679) ->
     918  h_Kfor3 x_11682 x_11681 x_11680 x_11679
    918919    (cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    919       h_Kswitch h_Kcall x_14752)
    920 | Kswitch x_14756 ->
    921   h_Kswitch x_14756
     920      h_Kswitch h_Kcall x_11679)
     921| Kswitch x_11683 ->
     922  h_Kswitch x_11683
    922923    (cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    923       h_Kswitch h_Kcall x_14756)
    924 | Kcall (x_14760, x_14759, x_14758, x_14757) ->
    925   h_Kcall x_14760 x_14759 x_14758 x_14757
     924      h_Kswitch h_Kcall x_11683)
     925| Kcall (x_11687, x_11686, x_11685, x_11684) ->
     926  h_Kcall x_11687 x_11686 x_11685 x_11684
    926927    (cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    927       h_Kswitch h_Kcall x_14757)
     928      h_Kswitch h_Kcall x_11684)
    928929
    929930(** val cont_rect_Type0 :
     
    938939let rec cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3 h_Kswitch h_Kcall = function
    939940| Kstop -> h_Kstop
    940 | Kseq (x_14771, x_14770) ->
    941   h_Kseq x_14771 x_14770
     941| Kseq (x_11698, x_11697) ->
     942  h_Kseq x_11698 x_11697
    942943    (cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    943       h_Kswitch h_Kcall x_14770)
    944 | Kwhile (x_14774, x_14773, x_14772) ->
    945   h_Kwhile x_14774 x_14773 x_14772
     944      h_Kswitch h_Kcall x_11697)
     945| Kwhile (x_11701, x_11700, x_11699) ->
     946  h_Kwhile x_11701 x_11700 x_11699
    946947    (cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    947       h_Kswitch h_Kcall x_14772)
    948 | Kdowhile (x_14777, x_14776, x_14775) ->
    949   h_Kdowhile x_14777 x_14776 x_14775
     948      h_Kswitch h_Kcall x_11699)
     949| Kdowhile (x_11704, x_11703, x_11702) ->
     950  h_Kdowhile x_11704 x_11703 x_11702
    950951    (cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    951       h_Kswitch h_Kcall x_14775)
    952 | Kfor2 (x_14781, x_14780, x_14779, x_14778) ->
    953   h_Kfor2 x_14781 x_14780 x_14779 x_14778
     952      h_Kswitch h_Kcall x_11702)
     953| Kfor2 (x_11708, x_11707, x_11706, x_11705) ->
     954  h_Kfor2 x_11708 x_11707 x_11706 x_11705
    954955    (cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    955       h_Kswitch h_Kcall x_14778)
    956 | Kfor3 (x_14785, x_14784, x_14783, x_14782) ->
    957   h_Kfor3 x_14785 x_14784 x_14783 x_14782
     956      h_Kswitch h_Kcall x_11705)
     957| Kfor3 (x_11712, x_11711, x_11710, x_11709) ->
     958  h_Kfor3 x_11712 x_11711 x_11710 x_11709
    958959    (cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    959       h_Kswitch h_Kcall x_14782)
    960 | Kswitch x_14786 ->
    961   h_Kswitch x_14786
     960      h_Kswitch h_Kcall x_11709)
     961| Kswitch x_11713 ->
     962  h_Kswitch x_11713
    962963    (cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    963       h_Kswitch h_Kcall x_14786)
    964 | Kcall (x_14790, x_14789, x_14788, x_14787) ->
    965   h_Kcall x_14790 x_14789 x_14788 x_14787
     964      h_Kswitch h_Kcall x_11713)
     965| Kcall (x_11717, x_11716, x_11715, x_11714) ->
     966  h_Kcall x_11717 x_11716 x_11715 x_11714
    966967    (cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    967       h_Kswitch h_Kcall x_14787)
     968      h_Kswitch h_Kcall x_11714)
    968969
    969970(** val cont_inv_rect_Type4 :
  • extracted/csyntax.ml

    r2997 r3001  
    12031203    (type0 -> (AST.ident, type0) Types.prod List.list -> (AST.ident, type0)
    12041204    Types.prod List.list -> statement -> 'a1) -> function0 -> 'a1 **)
    1205 let rec function_rect_Type4 h_mk_function x_12143 =
     1205let rec function_rect_Type4 h_mk_function x_9070 =
    12061206  let { fn_return = fn_return0; fn_params = fn_params0; fn_vars = fn_vars0;
    1207     fn_body = fn_body0 } = x_12143
     1207    fn_body = fn_body0 } = x_9070
    12081208  in
    12091209  h_mk_function fn_return0 fn_params0 fn_vars0 fn_body0
     
    12121212    (type0 -> (AST.ident, type0) Types.prod List.list -> (AST.ident, type0)
    12131213    Types.prod List.list -> statement -> 'a1) -> function0 -> 'a1 **)
    1214 let rec function_rect_Type5 h_mk_function x_12145 =
     1214let rec function_rect_Type5 h_mk_function x_9072 =
    12151215  let { fn_return = fn_return0; fn_params = fn_params0; fn_vars = fn_vars0;
    1216     fn_body = fn_body0 } = x_12145
     1216    fn_body = fn_body0 } = x_9072
    12171217  in
    12181218  h_mk_function fn_return0 fn_params0 fn_vars0 fn_body0
     
    12211221    (type0 -> (AST.ident, type0) Types.prod List.list -> (AST.ident, type0)
    12221222    Types.prod List.list -> statement -> 'a1) -> function0 -> 'a1 **)
    1223 let rec function_rect_Type3 h_mk_function x_12147 =
     1223let rec function_rect_Type3 h_mk_function x_9074 =
    12241224  let { fn_return = fn_return0; fn_params = fn_params0; fn_vars = fn_vars0;
    1225     fn_body = fn_body0 } = x_12147
     1225    fn_body = fn_body0 } = x_9074
    12261226  in
    12271227  h_mk_function fn_return0 fn_params0 fn_vars0 fn_body0
     
    12301230    (type0 -> (AST.ident, type0) Types.prod List.list -> (AST.ident, type0)
    12311231    Types.prod List.list -> statement -> 'a1) -> function0 -> 'a1 **)
    1232 let rec function_rect_Type2 h_mk_function x_12149 =
     1232let rec function_rect_Type2 h_mk_function x_9076 =
    12331233  let { fn_return = fn_return0; fn_params = fn_params0; fn_vars = fn_vars0;
    1234     fn_body = fn_body0 } = x_12149
     1234    fn_body = fn_body0 } = x_9076
    12351235  in
    12361236  h_mk_function fn_return0 fn_params0 fn_vars0 fn_body0
     
    12391239    (type0 -> (AST.ident, type0) Types.prod List.list -> (AST.ident, type0)
    12401240    Types.prod List.list -> statement -> 'a1) -> function0 -> 'a1 **)
    1241 let rec function_rect_Type1 h_mk_function x_12151 =
     1241let rec function_rect_Type1 h_mk_function x_9078 =
    12421242  let { fn_return = fn_return0; fn_params = fn_params0; fn_vars = fn_vars0;
    1243     fn_body = fn_body0 } = x_12151
     1243    fn_body = fn_body0 } = x_9078
    12441244  in
    12451245  h_mk_function fn_return0 fn_params0 fn_vars0 fn_body0
     
    12481248    (type0 -> (AST.ident, type0) Types.prod List.list -> (AST.ident, type0)
    12491249    Types.prod List.list -> statement -> 'a1) -> function0 -> 'a1 **)
    1250 let rec function_rect_Type0 h_mk_function x_12153 =
     1250let rec function_rect_Type0 h_mk_function x_9080 =
    12511251  let { fn_return = fn_return0; fn_params = fn_params0; fn_vars = fn_vars0;
    1252     fn_body = fn_body0 } = x_12153
     1252    fn_body = fn_body0 } = x_9080
    12531253  in
    12541254  h_mk_function fn_return0 fn_params0 fn_vars0 fn_body0
     
    13221322    clight_fundef -> 'a1 **)
    13231323let rec clight_fundef_rect_Type4 h_CL_Internal h_CL_External = function
    1324 | CL_Internal x_12175 -> h_CL_Internal x_12175
    1325 | CL_External (x_12178, x_12177, x_12176) ->
    1326   h_CL_External x_12178 x_12177 x_12176
     1324| CL_Internal x_9102 -> h_CL_Internal x_9102
     1325| CL_External (x_9105, x_9104, x_9103) -> h_CL_External x_9105 x_9104 x_9103
    13271326
    13281327(** val clight_fundef_rect_Type5 :
     
    13301329    clight_fundef -> 'a1 **)
    13311330let rec clight_fundef_rect_Type5 h_CL_Internal h_CL_External = function
    1332 | CL_Internal x_12182 -> h_CL_Internal x_12182
    1333 | CL_External (x_12185, x_12184, x_12183) ->
    1334   h_CL_External x_12185 x_12184 x_12183
     1331| CL_Internal x_9109 -> h_CL_Internal x_9109
     1332| CL_External (x_9112, x_9111, x_9110) -> h_CL_External x_9112 x_9111 x_9110
    13351333
    13361334(** val clight_fundef_rect_Type3 :
     
    13381336    clight_fundef -> 'a1 **)
    13391337let rec clight_fundef_rect_Type3 h_CL_Internal h_CL_External = function
    1340 | CL_Internal x_12189 -> h_CL_Internal x_12189
    1341 | CL_External (x_12192, x_12191, x_12190) ->
    1342   h_CL_External x_12192 x_12191 x_12190
     1338| CL_Internal x_9116 -> h_CL_Internal x_9116
     1339| CL_External (x_9119, x_9118, x_9117) -> h_CL_External x_9119 x_9118 x_9117
    13431340
    13441341(** val clight_fundef_rect_Type2 :
     
    13461343    clight_fundef -> 'a1 **)
    13471344let rec clight_fundef_rect_Type2 h_CL_Internal h_CL_External = function
    1348 | CL_Internal x_12196 -> h_CL_Internal x_12196
    1349 | CL_External (x_12199, x_12198, x_12197) ->
    1350   h_CL_External x_12199 x_12198 x_12197
     1345| CL_Internal x_9123 -> h_CL_Internal x_9123
     1346| CL_External (x_9126, x_9125, x_9124) -> h_CL_External x_9126 x_9125 x_9124
    13511347
    13521348(** val clight_fundef_rect_Type1 :
     
    13541350    clight_fundef -> 'a1 **)
    13551351let rec clight_fundef_rect_Type1 h_CL_Internal h_CL_External = function
    1356 | CL_Internal x_12203 -> h_CL_Internal x_12203
    1357 | CL_External (x_12206, x_12205, x_12204) ->
    1358   h_CL_External x_12206 x_12205 x_12204
     1352| CL_Internal x_9130 -> h_CL_Internal x_9130
     1353| CL_External (x_9133, x_9132, x_9131) -> h_CL_External x_9133 x_9132 x_9131
    13591354
    13601355(** val clight_fundef_rect_Type0 :
     
    13621357    clight_fundef -> 'a1 **)
    13631358let rec clight_fundef_rect_Type0 h_CL_Internal h_CL_External = function
    1364 | CL_Internal x_12210 -> h_CL_Internal x_12210
    1365 | CL_External (x_12213, x_12212, x_12211) ->
    1366   h_CL_External x_12213 x_12212 x_12211
     1359| CL_Internal x_9137 -> h_CL_Internal x_9137
     1360| CL_External (x_9140, x_9139, x_9138) -> h_CL_External x_9140 x_9139 x_9138
    13671361
    13681362(** val clight_fundef_inv_rect_Type4 :
     
    15381532(** val mode_rect_Type4 :
    15391533    (AST.typ -> 'a1) -> 'a1 -> (AST.typ -> 'a1) -> AST.typ -> mode -> 'a1 **)
    1540 let rec mode_rect_Type4 h_By_value h_By_reference h_By_nothing x_12263 = function
     1534let rec mode_rect_Type4 h_By_value h_By_reference h_By_nothing x_9190 = function
    15411535| By_value t -> h_By_value t
    15421536| By_reference -> h_By_reference
     
    15451539(** val mode_rect_Type5 :
    15461540    (AST.typ -> 'a1) -> 'a1 -> (AST.typ -> 'a1) -> AST.typ -> mode -> 'a1 **)
    1547 let rec mode_rect_Type5 h_By_value h_By_reference h_By_nothing x_12268 = function
     1541let rec mode_rect_Type5 h_By_value h_By_reference h_By_nothing x_9195 = function
    15481542| By_value t -> h_By_value t
    15491543| By_reference -> h_By_reference
     
    15521546(** val mode_rect_Type3 :
    15531547    (AST.typ -> 'a1) -> 'a1 -> (AST.typ -> 'a1) -> AST.typ -> mode -> 'a1 **)
    1554 let rec mode_rect_Type3 h_By_value h_By_reference h_By_nothing x_12273 = function
     1548let rec mode_rect_Type3 h_By_value h_By_reference h_By_nothing x_9200 = function
    15551549| By_value t -> h_By_value t
    15561550| By_reference -> h_By_reference
     
    15591553(** val mode_rect_Type2 :
    15601554    (AST.typ -> 'a1) -> 'a1 -> (AST.typ -> 'a1) -> AST.typ -> mode -> 'a1 **)
    1561 let rec mode_rect_Type2 h_By_value h_By_reference h_By_nothing x_12278 = function
     1555let rec mode_rect_Type2 h_By_value h_By_reference h_By_nothing x_9205 = function
    15621556| By_value t -> h_By_value t
    15631557| By_reference -> h_By_reference
     
    15661560(** val mode_rect_Type1 :
    15671561    (AST.typ -> 'a1) -> 'a1 -> (AST.typ -> 'a1) -> AST.typ -> mode -> 'a1 **)
    1568 let rec mode_rect_Type1 h_By_value h_By_reference h_By_nothing x_12283 = function
     1562let rec mode_rect_Type1 h_By_value h_By_reference h_By_nothing x_9210 = function
    15691563| By_value t -> h_By_value t
    15701564| By_reference -> h_By_reference
     
    15731567(** val mode_rect_Type0 :
    15741568    (AST.typ -> 'a1) -> 'a1 -> (AST.typ -> 'a1) -> AST.typ -> mode -> 'a1 **)
    1575 let rec mode_rect_Type0 h_By_value h_By_reference h_By_nothing x_12288 = function
     1569let rec mode_rect_Type0 h_By_value h_By_reference h_By_nothing x_9215 = function
    15761570| By_value t -> h_By_value t
    15771571| By_reference -> h_By_reference
     
    16361630
    16371631(** val signature_of_type : typelist -> type0 -> AST.signature **)
    1638 let signature_of_type args res =
     1632let signature_of_type args res0 =
    16391633  { AST.sig_args = (typlist_of_typelist args); AST.sig_res =
    1640     (opttyp_of_type res) }
    1641 
    1642 (** val external_function :
     1634    (opttyp_of_type res0) }
     1635
     1636(** val external_function0 :
    16431637    AST.ident -> typelist -> type0 -> AST.external_function **)
    1644 let external_function id targs tres =
     1638let external_function0 id targs tres =
    16451639  { AST.ef_id = id; AST.ef_sig = (signature_of_type targs tres) }
    16461640
  • extracted/csyntax.mli

    r2773 r3001  
    662662val signature_of_type : typelist -> type0 -> AST.signature
    663663
    664 val external_function :
     664val external_function0 :
    665665  AST.ident -> typelist -> type0 -> AST.external_function
    666666
  • extracted/eRTL.ml

    r2997 r3001  
    126126    (Registers.register -> 'a1) -> (I8051.register -> 'a1) -> move_dst -> 'a1 **)
    127127let rec move_dst_rect_Type4 h_PSD h_HDW = function
    128 | PSD x_8132 -> h_PSD x_8132
    129 | HDW x_8133 -> h_HDW x_8133
     128| PSD x_5024 -> h_PSD x_5024
     129| HDW x_5025 -> h_HDW x_5025
    130130
    131131(** val move_dst_rect_Type5 :
    132132    (Registers.register -> 'a1) -> (I8051.register -> 'a1) -> move_dst -> 'a1 **)
    133133let rec move_dst_rect_Type5 h_PSD h_HDW = function
    134 | PSD x_8137 -> h_PSD x_8137
    135 | HDW x_8138 -> h_HDW x_8138
     134| PSD x_5029 -> h_PSD x_5029
     135| HDW x_5030 -> h_HDW x_5030
    136136
    137137(** val move_dst_rect_Type3 :
    138138    (Registers.register -> 'a1) -> (I8051.register -> 'a1) -> move_dst -> 'a1 **)
    139139let rec move_dst_rect_Type3 h_PSD h_HDW = function
    140 | PSD x_8142 -> h_PSD x_8142
    141 | HDW x_8143 -> h_HDW x_8143
     140| PSD x_5034 -> h_PSD x_5034
     141| HDW x_5035 -> h_HDW x_5035
    142142
    143143(** val move_dst_rect_Type2 :
    144144    (Registers.register -> 'a1) -> (I8051.register -> 'a1) -> move_dst -> 'a1 **)
    145145let rec move_dst_rect_Type2 h_PSD h_HDW = function
    146 | PSD x_8147 -> h_PSD x_8147
    147 | HDW x_8148 -> h_HDW x_8148
     146| PSD x_5039 -> h_PSD x_5039
     147| HDW x_5040 -> h_HDW x_5040
    148148
    149149(** val move_dst_rect_Type1 :
    150150    (Registers.register -> 'a1) -> (I8051.register -> 'a1) -> move_dst -> 'a1 **)
    151151let rec move_dst_rect_Type1 h_PSD h_HDW = function
    152 | PSD x_8152 -> h_PSD x_8152
    153 | HDW x_8153 -> h_HDW x_8153
     152| PSD x_5044 -> h_PSD x_5044
     153| HDW x_5045 -> h_HDW x_5045
    154154
    155155(** val move_dst_rect_Type0 :
    156156    (Registers.register -> 'a1) -> (I8051.register -> 'a1) -> move_dst -> 'a1 **)
    157157let rec move_dst_rect_Type0 h_PSD h_HDW = function
    158 | PSD x_8157 -> h_PSD x_8157
    159 | HDW x_8158 -> h_HDW x_8158
     158| PSD x_5049 -> h_PSD x_5049
     159| HDW x_5050 -> h_HDW x_5050
    160160
    161161(** val move_dst_inv_rect_Type4 :
     
    352352| Ertl_new_frame -> h_ertl_new_frame
    353353| Ertl_del_frame -> h_ertl_del_frame
    354 | Ertl_frame_size x_8197 -> h_ertl_frame_size x_8197
     354| Ertl_frame_size x_5089 -> h_ertl_frame_size x_5089
    355355
    356356(** val ertl_seq_rect_Type5 :
     
    359359| Ertl_new_frame -> h_ertl_new_frame
    360360| Ertl_del_frame -> h_ertl_del_frame
    361 | Ertl_frame_size x_8202 -> h_ertl_frame_size x_8202
     361| Ertl_frame_size x_5094 -> h_ertl_frame_size x_5094
    362362
    363363(** val ertl_seq_rect_Type3 :
     
    366366| Ertl_new_frame -> h_ertl_new_frame
    367367| Ertl_del_frame -> h_ertl_del_frame
    368 | Ertl_frame_size x_8207 -> h_ertl_frame_size x_8207
     368| Ertl_frame_size x_5099 -> h_ertl_frame_size x_5099
    369369
    370370(** val ertl_seq_rect_Type2 :
     
    373373| Ertl_new_frame -> h_ertl_new_frame
    374374| Ertl_del_frame -> h_ertl_del_frame
    375 | Ertl_frame_size x_8212 -> h_ertl_frame_size x_8212
     375| Ertl_frame_size x_5104 -> h_ertl_frame_size x_5104
    376376
    377377(** val ertl_seq_rect_Type1 :
     
    380380| Ertl_new_frame -> h_ertl_new_frame
    381381| Ertl_del_frame -> h_ertl_del_frame
    382 | Ertl_frame_size x_8217 -> h_ertl_frame_size x_8217
     382| Ertl_frame_size x_5109 -> h_ertl_frame_size x_5109
    383383
    384384(** val ertl_seq_rect_Type0 :
     
    387387| Ertl_new_frame -> h_ertl_new_frame
    388388| Ertl_del_frame -> h_ertl_del_frame
    389 | Ertl_frame_size x_8222 -> h_ertl_frame_size x_8222
     389| Ertl_frame_size x_5114 -> h_ertl_frame_size x_5114
    390390
    391391(** val ertl_seq_inv_rect_Type4 :
     
    697697    Joint.add_graph eRTL (AST.prog_var_names p.Joint.joint_prog) l2
    698698      (Joint.Sequential ((Joint.CALL ((Types.Inl
    699       p.Joint.joint_prog.AST.prog_main), (Obj.magic Nat.O),
     699      (AST.prog_main p.Joint.joint_prog)), (Obj.magic Nat.O),
    700700      (Obj.magic Types.It))), (Obj.magic l3))) res0
    701701  in
  • extracted/eRTLptr.ml

    r2997 r3001  
    130130    (Registers.register -> Graphs.label -> 'a1) -> ertlptr_seq -> 'a1 **)
    131131let rec ertlptr_seq_rect_Type4 h_ertlptr_ertl h_LOW_ADDRESS h_HIGH_ADDRESS = function
    132 | Ertlptr_ertl x_8266 -> h_ertlptr_ertl x_8266
    133 | LOW_ADDRESS (x_8268, x_8267) -> h_LOW_ADDRESS x_8268 x_8267
    134 | HIGH_ADDRESS (x_8270, x_8269) -> h_HIGH_ADDRESS x_8270 x_8269
     132| Ertlptr_ertl x_5158 -> h_ertlptr_ertl x_5158
     133| LOW_ADDRESS (x_5160, x_5159) -> h_LOW_ADDRESS x_5160 x_5159
     134| HIGH_ADDRESS (x_5162, x_5161) -> h_HIGH_ADDRESS x_5162 x_5161
    135135
    136136(** val ertlptr_seq_rect_Type5 :
     
    138138    (Registers.register -> Graphs.label -> 'a1) -> ertlptr_seq -> 'a1 **)
    139139let rec ertlptr_seq_rect_Type5 h_ertlptr_ertl h_LOW_ADDRESS h_HIGH_ADDRESS = function
    140 | Ertlptr_ertl x_8275 -> h_ertlptr_ertl x_8275
    141 | LOW_ADDRESS (x_8277, x_8276) -> h_LOW_ADDRESS x_8277 x_8276
    142 | HIGH_ADDRESS (x_8279, x_8278) -> h_HIGH_ADDRESS x_8279 x_8278
     140| Ertlptr_ertl x_5167 -> h_ertlptr_ertl x_5167
     141| LOW_ADDRESS (x_5169, x_5168) -> h_LOW_ADDRESS x_5169 x_5168
     142| HIGH_ADDRESS (x_5171, x_5170) -> h_HIGH_ADDRESS x_5171 x_5170
    143143
    144144(** val ertlptr_seq_rect_Type3 :
     
    146146    (Registers.register -> Graphs.label -> 'a1) -> ertlptr_seq -> 'a1 **)
    147147let rec ertlptr_seq_rect_Type3 h_ertlptr_ertl h_LOW_ADDRESS h_HIGH_ADDRESS = function
    148 | Ertlptr_ertl x_8284 -> h_ertlptr_ertl x_8284
    149 | LOW_ADDRESS (x_8286, x_8285) -> h_LOW_ADDRESS x_8286 x_8285
    150 | HIGH_ADDRESS (x_8288, x_8287) -> h_HIGH_ADDRESS x_8288 x_8287
     148| Ertlptr_ertl x_5176 -> h_ertlptr_ertl x_5176
     149| LOW_ADDRESS (x_5178, x_5177) -> h_LOW_ADDRESS x_5178 x_5177
     150| HIGH_ADDRESS (x_5180, x_5179) -> h_HIGH_ADDRESS x_5180 x_5179
    151151
    152152(** val ertlptr_seq_rect_Type2 :
     
    154154    (Registers.register -> Graphs.label -> 'a1) -> ertlptr_seq -> 'a1 **)
    155155let rec ertlptr_seq_rect_Type2 h_ertlptr_ertl h_LOW_ADDRESS h_HIGH_ADDRESS = function
    156 | Ertlptr_ertl x_8293 -> h_ertlptr_ertl x_8293
    157 | LOW_ADDRESS (x_8295, x_8294) -> h_LOW_ADDRESS x_8295 x_8294
    158 | HIGH_ADDRESS (x_8297, x_8296) -> h_HIGH_ADDRESS x_8297 x_8296
     156| Ertlptr_ertl x_5185 -> h_ertlptr_ertl x_5185
     157| LOW_ADDRESS (x_5187, x_5186) -> h_LOW_ADDRESS x_5187 x_5186
     158| HIGH_ADDRESS (x_5189, x_5188) -> h_HIGH_ADDRESS x_5189 x_5188
    159159
    160160(** val ertlptr_seq_rect_Type1 :
     
    162162    (Registers.register -> Graphs.label -> 'a1) -> ertlptr_seq -> 'a1 **)
    163163let rec ertlptr_seq_rect_Type1 h_ertlptr_ertl h_LOW_ADDRESS h_HIGH_ADDRESS = function
    164 | Ertlptr_ertl x_8302 -> h_ertlptr_ertl x_8302
    165 | LOW_ADDRESS (x_8304, x_8303) -> h_LOW_ADDRESS x_8304 x_8303
    166 | HIGH_ADDRESS (x_8306, x_8305) -> h_HIGH_ADDRESS x_8306 x_8305
     164| Ertlptr_ertl x_5194 -> h_ertlptr_ertl x_5194
     165| LOW_ADDRESS (x_5196, x_5195) -> h_LOW_ADDRESS x_5196 x_5195
     166| HIGH_ADDRESS (x_5198, x_5197) -> h_HIGH_ADDRESS x_5198 x_5197
    167167
    168168(** val ertlptr_seq_rect_Type0 :
     
    170170    (Registers.register -> Graphs.label -> 'a1) -> ertlptr_seq -> 'a1 **)
    171171let rec ertlptr_seq_rect_Type0 h_ertlptr_ertl h_LOW_ADDRESS h_HIGH_ADDRESS = function
    172 | Ertlptr_ertl x_8311 -> h_ertlptr_ertl x_8311
    173 | LOW_ADDRESS (x_8313, x_8312) -> h_LOW_ADDRESS x_8313 x_8312
    174 | HIGH_ADDRESS (x_8315, x_8314) -> h_HIGH_ADDRESS x_8315 x_8314
     172| Ertlptr_ertl x_5203 -> h_ertlptr_ertl x_5203
     173| LOW_ADDRESS (x_5205, x_5204) -> h_LOW_ADDRESS x_5205 x_5204
     174| HIGH_ADDRESS (x_5207, x_5206) -> h_HIGH_ADDRESS x_5207 x_5206
    175175
    176176(** val ertlptr_seq_inv_rect_Type4 :
     
    362362    Joint.add_graph eRTLptr (AST.prog_var_names p.Joint.joint_prog) l2
    363363      (Joint.Sequential ((Joint.CALL ((Types.Inl
    364       p.Joint.joint_prog.AST.prog_main), (Obj.magic Nat.O),
     364      (AST.prog_main p.Joint.joint_prog)), (Obj.magic Nat.O),
    365365      (Obj.magic Types.It))), (Obj.magic l3))) res0
    366366  in
  • extracted/eRTLptrToLTL.ml

    r2997 r3001  
    181181    arg_decision -> 'a1 **)
    182182let rec arg_decision_rect_Type4 h_arg_decision_colour h_arg_decision_spill h_arg_decision_imm = function
    183 | Arg_decision_colour x_106 -> h_arg_decision_colour x_106
    184 | Arg_decision_spill x_107 -> h_arg_decision_spill x_107
    185 | Arg_decision_imm x_108 -> h_arg_decision_imm x_108
     183| Arg_decision_colour x_5864 -> h_arg_decision_colour x_5864
     184| Arg_decision_spill x_5865 -> h_arg_decision_spill x_5865
     185| Arg_decision_imm x_5866 -> h_arg_decision_imm x_5866
    186186
    187187(** val arg_decision_rect_Type5 :
     
    189189    arg_decision -> 'a1 **)
    190190let rec arg_decision_rect_Type5 h_arg_decision_colour h_arg_decision_spill h_arg_decision_imm = function
    191 | Arg_decision_colour x_113 -> h_arg_decision_colour x_113
    192 | Arg_decision_spill x_114 -> h_arg_decision_spill x_114
    193 | Arg_decision_imm x_115 -> h_arg_decision_imm x_115
     191| Arg_decision_colour x_5871 -> h_arg_decision_colour x_5871
     192| Arg_decision_spill x_5872 -> h_arg_decision_spill x_5872
     193| Arg_decision_imm x_5873 -> h_arg_decision_imm x_5873
    194194
    195195(** val arg_decision_rect_Type3 :
     
    197197    arg_decision -> 'a1 **)
    198198let rec arg_decision_rect_Type3 h_arg_decision_colour h_arg_decision_spill h_arg_decision_imm = function
    199 | Arg_decision_colour x_120 -> h_arg_decision_colour x_120
    200 | Arg_decision_spill x_121 -> h_arg_decision_spill x_121
    201 | Arg_decision_imm x_122 -> h_arg_decision_imm x_122
     199| Arg_decision_colour x_5878 -> h_arg_decision_colour x_5878
     200| Arg_decision_spill x_5879 -> h_arg_decision_spill x_5879
     201| Arg_decision_imm x_5880 -> h_arg_decision_imm x_5880
    202202
    203203(** val arg_decision_rect_Type2 :
     
    205205    arg_decision -> 'a1 **)
    206206let rec arg_decision_rect_Type2 h_arg_decision_colour h_arg_decision_spill h_arg_decision_imm = function
    207 | Arg_decision_colour x_127 -> h_arg_decision_colour x_127
    208 | Arg_decision_spill x_128 -> h_arg_decision_spill x_128
    209 | Arg_decision_imm x_129 -> h_arg_decision_imm x_129
     207| Arg_decision_colour x_5885 -> h_arg_decision_colour x_5885
     208| Arg_decision_spill x_5886 -> h_arg_decision_spill x_5886
     209| Arg_decision_imm x_5887 -> h_arg_decision_imm x_5887
    210210
    211211(** val arg_decision_rect_Type1 :
     
    213213    arg_decision -> 'a1 **)
    214214let rec arg_decision_rect_Type1 h_arg_decision_colour h_arg_decision_spill h_arg_decision_imm = function
    215 | Arg_decision_colour x_134 -> h_arg_decision_colour x_134
    216 | Arg_decision_spill x_135 -> h_arg_decision_spill x_135
    217 | Arg_decision_imm x_136 -> h_arg_decision_imm x_136
     215| Arg_decision_colour x_5892 -> h_arg_decision_colour x_5892
     216| Arg_decision_spill x_5893 -> h_arg_decision_spill x_5893
     217| Arg_decision_imm x_5894 -> h_arg_decision_imm x_5894
    218218
    219219(** val arg_decision_rect_Type0 :
     
    221221    arg_decision -> 'a1 **)
    222222let rec arg_decision_rect_Type0 h_arg_decision_colour h_arg_decision_spill h_arg_decision_imm = function
    223 | Arg_decision_colour x_141 -> h_arg_decision_colour x_141
    224 | Arg_decision_spill x_142 -> h_arg_decision_spill x_142
    225 | Arg_decision_imm x_143 -> h_arg_decision_imm x_143
     223| Arg_decision_colour x_5899 -> h_arg_decision_colour x_5899
     224| Arg_decision_spill x_5900 -> h_arg_decision_spill x_5900
     225| Arg_decision_imm x_5901 -> h_arg_decision_imm x_5901
    226226
    227227(** val arg_decision_inv_rect_Type4 :
  • extracted/fixpoints.ml

    r2997 r3001  
    8080    (__ -> __ -> (__ -> __ -> Bool.bool) -> (__ -> __ -> Bool.bool) -> (__ ->
    8181    Bool.bool) -> 'a1) -> property_lattice -> 'a1 **)
    82 let rec property_lattice_rect_Type4 h_mk_property_lattice x_8779 =
    83   let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
    84     l_is_maximal = l_is_maximal0 } = x_8779
     82let rec property_lattice_rect_Type4 h_mk_property_lattice x_5704 =
     83  let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
     84    l_is_maximal = l_is_maximal0 } = x_5704
    8585  in
    8686  h_mk_property_lattice __ l_bottom0 l_equal0 l_included0 l_is_maximal0
     
    8989    (__ -> __ -> (__ -> __ -> Bool.bool) -> (__ -> __ -> Bool.bool) -> (__ ->
    9090    Bool.bool) -> 'a1) -> property_lattice -> 'a1 **)
    91 let rec property_lattice_rect_Type5 h_mk_property_lattice x_8781 =
    92   let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
    93     l_is_maximal = l_is_maximal0 } = x_8781
     91let rec property_lattice_rect_Type5 h_mk_property_lattice x_5706 =
     92  let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
     93    l_is_maximal = l_is_maximal0 } = x_5706
    9494  in
    9595  h_mk_property_lattice __ l_bottom0 l_equal0 l_included0 l_is_maximal0
     
    9898    (__ -> __ -> (__ -> __ -> Bool.bool) -> (__ -> __ -> Bool.bool) -> (__ ->
    9999    Bool.bool) -> 'a1) -> property_lattice -> 'a1 **)
    100 let rec property_lattice_rect_Type3 h_mk_property_lattice x_8783 =
    101   let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
    102     l_is_maximal = l_is_maximal0 } = x_8783
     100let rec property_lattice_rect_Type3 h_mk_property_lattice x_5708 =
     101  let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
     102    l_is_maximal = l_is_maximal0 } = x_5708
    103103  in
    104104  h_mk_property_lattice __ l_bottom0 l_equal0 l_included0 l_is_maximal0
     
    107107    (__ -> __ -> (__ -> __ -> Bool.bool) -> (__ -> __ -> Bool.bool) -> (__ ->
    108108    Bool.bool) -> 'a1) -> property_lattice -> 'a1 **)
    109 let rec property_lattice_rect_Type2 h_mk_property_lattice x_8785 =
    110   let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
    111     l_is_maximal = l_is_maximal0 } = x_8785
     109let rec property_lattice_rect_Type2 h_mk_property_lattice x_5710 =
     110  let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
     111    l_is_maximal = l_is_maximal0 } = x_5710
    112112  in
    113113  h_mk_property_lattice __ l_bottom0 l_equal0 l_included0 l_is_maximal0
     
    116116    (__ -> __ -> (__ -> __ -> Bool.bool) -> (__ -> __ -> Bool.bool) -> (__ ->
    117117    Bool.bool) -> 'a1) -> property_lattice -> 'a1 **)
    118 let rec property_lattice_rect_Type1 h_mk_property_lattice x_8787 =
    119   let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
    120     l_is_maximal = l_is_maximal0 } = x_8787
     118let rec property_lattice_rect_Type1 h_mk_property_lattice x_5712 =
     119  let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
     120    l_is_maximal = l_is_maximal0 } = x_5712
    121121  in
    122122  h_mk_property_lattice __ l_bottom0 l_equal0 l_included0 l_is_maximal0
     
    125125    (__ -> __ -> (__ -> __ -> Bool.bool) -> (__ -> __ -> Bool.bool) -> (__ ->
    126126    Bool.bool) -> 'a1) -> property_lattice -> 'a1 **)
    127 let rec property_lattice_rect_Type0 h_mk_property_lattice x_8789 =
    128   let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
    129     l_is_maximal = l_is_maximal0 } = x_8789
     127let rec property_lattice_rect_Type0 h_mk_property_lattice x_5714 =
     128  let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
     129    l_is_maximal = l_is_maximal0 } = x_5714
    130130  in
    131131  h_mk_property_lattice __ l_bottom0 l_equal0 l_included0 l_is_maximal0
     
    201201    property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
    202202    'a1 **)
    203 let rec fixpoint_rect_Type4 latt eqs h_mk_fixpoint x_8810 =
    204   let fix_lfp = x_8810 in h_mk_fixpoint fix_lfp __
     203let rec fixpoint_rect_Type4 latt eqs h_mk_fixpoint x_5735 =
     204  let fix_lfp = x_5735 in h_mk_fixpoint fix_lfp __
    205205
    206206(** val fixpoint_rect_Type5 :
    207207    property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
    208208    'a1 **)
    209 let rec fixpoint_rect_Type5 latt eqs h_mk_fixpoint x_8812 =
    210   let fix_lfp = x_8812 in h_mk_fixpoint fix_lfp __
     209let rec fixpoint_rect_Type5 latt eqs h_mk_fixpoint x_5737 =
     210  let fix_lfp = x_5737 in h_mk_fixpoint fix_lfp __
    211211
    212212(** val fixpoint_rect_Type3 :
    213213    property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
    214214    'a1 **)
    215 let rec fixpoint_rect_Type3 latt eqs h_mk_fixpoint x_8814 =
    216   let fix_lfp = x_8814 in h_mk_fixpoint fix_lfp __
     215let rec fixpoint_rect_Type3 latt eqs h_mk_fixpoint x_5739 =
     216  let fix_lfp = x_5739 in h_mk_fixpoint fix_lfp __
    217217
    218218(** val fixpoint_rect_Type2 :
    219219    property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
    220220    'a1 **)
    221 let rec fixpoint_rect_Type2 latt eqs h_mk_fixpoint x_8816 =
    222   let fix_lfp = x_8816 in h_mk_fixpoint fix_lfp __
     221let rec fixpoint_rect_Type2 latt eqs h_mk_fixpoint x_5741 =
     222  let fix_lfp = x_5741 in h_mk_fixpoint fix_lfp __
    223223
    224224(** val fixpoint_rect_Type1 :
    225225    property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
    226226    'a1 **)
    227 let rec fixpoint_rect_Type1 latt eqs h_mk_fixpoint x_8818 =
    228   let fix_lfp = x_8818 in h_mk_fixpoint fix_lfp __
     227let rec fixpoint_rect_Type1 latt eqs h_mk_fixpoint x_5743 =
     228  let fix_lfp = x_5743 in h_mk_fixpoint fix_lfp __
    229229
    230230(** val fixpoint_rect_Type0 :
    231231    property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
    232232    'a1 **)
    233 let rec fixpoint_rect_Type0 latt eqs h_mk_fixpoint x_8820 =
    234   let fix_lfp = x_8820 in h_mk_fixpoint fix_lfp __
     233let rec fixpoint_rect_Type0 latt eqs h_mk_fixpoint x_5745 =
     234  let fix_lfp = x_5745 in h_mk_fixpoint fix_lfp __
    235235
    236236(** val fix_lfp : property_lattice -> equations -> fixpoint -> valuation **)
  • extracted/fresh.ml

    r2773 r3001  
    108108(** val max_id_of_program : Csyntax.clight_program -> AST.ident **)
    109109let max_id_of_program p =
    110   max_id (max_id (max_id_of_functs p.AST.prog_funct) p.AST.prog_main)
    111     (max_id_of_globvars p.AST.prog_vars)
     110  max_id (max_id (max_id_of_functs (AST.prog_funct p)) (AST.prog_main p))
     111    (max_id_of_globvars (AST.prog_vars p))
    112112
    113113(** val universe_of_max : AST.ident -> Identifiers.universe **)
  • extracted/frontEndMem.ml

    r2773 r3001  
    154154  let off =
    155155    BitVectorZ.z_of_unsigned_bitvector Pointers.offset_size
    156       (Pointers.offv ptr.Pointers.poff)
     156      (Pointers.offv (Pointers.poff ptr))
    157157  in
    158158  Bool.andb
    159159    (Bool.andb
    160       (Z.zltb (Pointers.block_id ptr.Pointers.pblock) m.GenMem.nextblock)
    161       (Z.zleb (GenMem.low_bound m ptr.Pointers.pblock) off))
    162     (Z.zltb off (GenMem.high_bound m ptr.Pointers.pblock))
     160      (Z.zltb (Pointers.block_id (Pointers.pblock ptr)) m.GenMem.nextblock)
     161      (Z.zleb (GenMem.low_bound m (Pointers.pblock ptr)) off))
     162    (Z.zltb off (GenMem.high_bound m (Pointers.pblock ptr)))
    163163
  • extracted/frontEndOps.ml

    r2997 r3001  
    9999    (AST.intsize -> AST.signedness -> AST.bvint -> 'a1) -> (AST.ident ->
    100100    Nat.nat -> 'a1) -> (Nat.nat -> 'a1) -> AST.typ -> constant -> 'a1 **)
    101 let rec constant_rect_Type4 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_9125 = function
    102 | Ointconst (sz, sg, x_9127) -> h_Ointconst sz sg x_9127
    103 | Oaddrsymbol (x_9129, x_9128) -> h_Oaddrsymbol x_9129 x_9128
    104 | Oaddrstack x_9130 -> h_Oaddrstack x_9130
     101let rec constant_rect_Type4 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_6050 = function
     102| Ointconst (sz, sg, x_6052) -> h_Ointconst sz sg x_6052
     103| Oaddrsymbol (x_6054, x_6053) -> h_Oaddrsymbol x_6054 x_6053
     104| Oaddrstack x_6055 -> h_Oaddrstack x_6055
    105105
    106106(** val constant_rect_Type5 :
    107107    (AST.intsize -> AST.signedness -> AST.bvint -> 'a1) -> (AST.ident ->
    108108    Nat.nat -> 'a1) -> (Nat.nat -> 'a1) -> AST.typ -> constant -> 'a1 **)
    109 let rec constant_rect_Type5 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_9134 = function
    110 | Ointconst (sz, sg, x_9136) -> h_Ointconst sz sg x_9136
    111 | Oaddrsymbol (x_9138, x_9137) -> h_Oaddrsymbol x_9138 x_9137
    112 | Oaddrstack x_9139 -> h_Oaddrstack x_9139
     109let rec constant_rect_Type5 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_6059 = function
     110| Ointconst (sz, sg, x_6061) -> h_Ointconst sz sg x_6061
     111| Oaddrsymbol (x_6063, x_6062) -> h_Oaddrsymbol x_6063 x_6062
     112| Oaddrstack x_6064 -> h_Oaddrstack x_6064
    113113
    114114(** val constant_rect_Type3 :
    115115    (AST.intsize -> AST.signedness -> AST.bvint -> 'a1) -> (AST.ident ->
    116116    Nat.nat -> 'a1) -> (Nat.nat -> 'a1) -> AST.typ -> constant -> 'a1 **)
    117 let rec constant_rect_Type3 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_9143 = function
    118 | Ointconst (sz, sg, x_9145) -> h_Ointconst sz sg x_9145
    119 | Oaddrsymbol (x_9147, x_9146) -> h_Oaddrsymbol x_9147 x_9146
    120 | Oaddrstack x_9148 -> h_Oaddrstack x_9148
     117let rec constant_rect_Type3 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_6068 = function
     118| Ointconst (sz, sg, x_6070) -> h_Ointconst sz sg x_6070
     119| Oaddrsymbol (x_6072, x_6071) -> h_Oaddrsymbol x_6072 x_6071
     120| Oaddrstack x_6073 -> h_Oaddrstack x_6073
    121121
    122122(** val constant_rect_Type2 :
    123123    (AST.intsize -> AST.signedness -> AST.bvint -> 'a1) -> (AST.ident ->
    124124    Nat.nat -> 'a1) -> (Nat.nat -> 'a1) -> AST.typ -> constant -> 'a1 **)
    125 let rec constant_rect_Type2 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_9152 = function
    126 | Ointconst (sz, sg, x_9154) -> h_Ointconst sz sg x_9154
    127 | Oaddrsymbol (x_9156, x_9155) -> h_Oaddrsymbol x_9156 x_9155
    128 | Oaddrstack x_9157 -> h_Oaddrstack x_9157
     125let rec constant_rect_Type2 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_6077 = function
     126| Ointconst (sz, sg, x_6079) -> h_Ointconst sz sg x_6079
     127| Oaddrsymbol (x_6081, x_6080) -> h_Oaddrsymbol x_6081 x_6080
     128| Oaddrstack x_6082 -> h_Oaddrstack x_6082
    129129
    130130(** val constant_rect_Type1 :
    131131    (AST.intsize -> AST.signedness -> AST.bvint -> 'a1) -> (AST.ident ->
    132132    Nat.nat -> 'a1) -> (Nat.nat -> 'a1) -> AST.typ -> constant -> 'a1 **)
    133 let rec constant_rect_Type1 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_9161 = function
    134 | Ointconst (sz, sg, x_9163) -> h_Ointconst sz sg x_9163
    135 | Oaddrsymbol (x_9165, x_9164) -> h_Oaddrsymbol x_9165 x_9164
    136 | Oaddrstack x_9166 -> h_Oaddrstack x_9166
     133let rec constant_rect_Type1 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_6086 = function
     134| Ointconst (sz, sg, x_6088) -> h_Ointconst sz sg x_6088
     135| Oaddrsymbol (x_6090, x_6089) -> h_Oaddrsymbol x_6090 x_6089
     136| Oaddrstack x_6091 -> h_Oaddrstack x_6091
    137137
    138138(** val constant_rect_Type0 :
    139139    (AST.intsize -> AST.signedness -> AST.bvint -> 'a1) -> (AST.ident ->
    140140    Nat.nat -> 'a1) -> (Nat.nat -> 'a1) -> AST.typ -> constant -> 'a1 **)
    141 let rec constant_rect_Type0 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_9170 = function
    142 | Ointconst (sz, sg, x_9172) -> h_Ointconst sz sg x_9172
    143 | Oaddrsymbol (x_9174, x_9173) -> h_Oaddrsymbol x_9174 x_9173
    144 | Oaddrstack x_9175 -> h_Oaddrstack x_9175
     141let rec constant_rect_Type0 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_6095 = function
     142| Ointconst (sz, sg, x_6097) -> h_Ointconst sz sg x_6097
     143| Oaddrsymbol (x_6099, x_6098) -> h_Oaddrsymbol x_6099 x_6098
     144| Oaddrstack x_6100 -> h_Oaddrstack x_6100
    145145
    146146(** val constant_inv_rect_Type4 :
     
    211211    (AST.intsize -> AST.signedness -> 'a1) -> AST.typ -> AST.typ ->
    212212    unary_operation -> 'a1 **)
    213 let rec unary_operation_rect_Type4 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_9245 x_9244 = function
     213let rec unary_operation_rect_Type4 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_6170 x_6169 = function
    214214| Ocastint (sz, sg, sz', sg') -> h_Ocastint sz sg sz' sg'
    215215| Onegint (sz, sg) -> h_Onegint sz sg
     
    227227    (AST.intsize -> AST.signedness -> 'a1) -> AST.typ -> AST.typ ->
    228228    unary_operation -> 'a1 **)
    229 let rec unary_operation_rect_Type5 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_9256 x_9255 = function
     229let rec unary_operation_rect_Type5 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_6181 x_6180 = function
    230230| Ocastint (sz, sg, sz', sg') -> h_Ocastint sz sg sz' sg'
    231231| Onegint (sz, sg) -> h_Onegint sz sg
     
    243243    (AST.intsize -> AST.signedness -> 'a1) -> AST.typ -> AST.typ ->
    244244    unary_operation -> 'a1 **)
    245 let rec unary_operation_rect_Type3 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_9267 x_9266 = function
     245let rec unary_operation_rect_Type3 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_6192 x_6191 = function
    246246| Ocastint (sz, sg, sz', sg') -> h_Ocastint sz sg sz' sg'
    247247| Onegint (sz, sg) -> h_Onegint sz sg
     
    259259    (AST.intsize -> AST.signedness -> 'a1) -> AST.typ -> AST.typ ->
    260260    unary_operation -> 'a1 **)
    261 let rec unary_operation_rect_Type2 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_9278 x_9277 = function
     261let rec unary_operation_rect_Type2 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_6203 x_6202 = function
    262262| Ocastint (sz, sg, sz', sg') -> h_Ocastint sz sg sz' sg'
    263263| Onegint (sz, sg) -> h_Onegint sz sg
     
    275275    (AST.intsize -> AST.signedness -> 'a1) -> AST.typ -> AST.typ ->
    276276    unary_operation -> 'a1 **)
    277 let rec unary_operation_rect_Type1 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_9289 x_9288 = function
     277let rec unary_operation_rect_Type1 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_6214 x_6213 = function
    278278| Ocastint (sz, sg, sz', sg') -> h_Ocastint sz sg sz' sg'
    279279| Onegint (sz, sg) -> h_Onegint sz sg
     
    291291    (AST.intsize -> AST.signedness -> 'a1) -> AST.typ -> AST.typ ->
    292292    unary_operation -> 'a1 **)
    293 let rec unary_operation_rect_Type0 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_9300 x_9299 = function
     293let rec unary_operation_rect_Type0 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_6225 x_6224 = function
    294294| Ocastint (sz, sg, sz', sg') -> h_Ocastint sz sg sz' sg'
    295295| Onegint (sz, sg) -> h_Onegint sz sg
     
    426426    (AST.intsize -> 'a1) -> (AST.signedness -> Integers.comparison -> 'a1) ->
    427427    AST.typ -> AST.typ -> AST.typ -> binary_operation -> 'a1 **)
    428 let rec binary_operation_rect_Type4 h_Oadd h_Osub h_Omul h_Odiv h_Odivu h_Omod h_Omodu h_Oand h_Oor h_Oxor h_Oshl h_Oshr h_Oshru h_Ocmp h_Ocmpu h_Oaddpi h_Oaddip h_Osubpi h_Osubpp h_Ocmpp x_9405 x_9404 x_9403 = function
     428let rec binary_operation_rect_Type4 h_Oadd h_Osub h_Omul h_Odiv h_Odivu h_Omod h_Omodu h_Oand h_Oor h_Oxor h_Oshl h_Oshr h_Oshru h_Ocmp h_Ocmpu h_Oaddpi h_Oaddip h_Osubpi h_Osubpp h_Ocmpp x_6330 x_6329 x_6328 = function
    429429| Oadd (sz, sg) -> h_Oadd sz sg
    430430| Osub (sz, sg) -> h_Osub sz sg
     
    440440| Oshr (sz, sg) -> h_Oshr sz sg
    441441| Oshru (sz, sg) -> h_Oshru sz sg
    442 | Ocmp (sz, sg, sg', x_9407) -> h_Ocmp sz sg sg' x_9407
    443 | Ocmpu (sz, sg', x_9408) -> h_Ocmpu sz sg' x_9408
     442| Ocmp (sz, sg, sg', x_6332) -> h_Ocmp sz sg sg' x_6332
     443| Ocmpu (sz, sg', x_6333) -> h_Ocmpu sz sg' x_6333
    444444| Oaddpi sz -> h_Oaddpi sz
    445445| Oaddip sz -> h_Oaddip sz
    446446| Osubpi sz -> h_Osubpi sz
    447447| Osubpp sz -> h_Osubpp sz
    448 | Ocmpp (sg', x_9409) -> h_Ocmpp sg' x_9409
     448| Ocmpp (sg', x_6334) -> h_Ocmpp sg' x_6334
    449449
    450450(** val binary_operation_rect_Type5 :
     
    461461    (AST.intsize -> 'a1) -> (AST.signedness -> Integers.comparison -> 'a1) ->
    462462    AST.typ -> AST.typ -> AST.typ -> binary_operation -> 'a1 **)
    463 let rec binary_operation_rect_Type5 h_Oadd h_Osub h_Omul h_Odiv h_Odivu h_Omod h_Omodu h_Oand h_Oor h_Oxor h_Oshl h_Oshr h_Oshru h_Ocmp h_Ocmpu h_Oaddpi h_Oaddip h_Osubpi h_Osubpp h_Ocmpp x_9432 x_9431 x_9430 = function
     463let rec binary_operation_rect_Type5 h_Oadd h_Osub h_Omul h_Odiv h_Odivu h_Omod h_Omodu h_Oand h_Oor h_Oxor h_Oshl h_Oshr h_Oshru h_Ocmp h_Ocmpu h_Oaddpi h_Oaddip h_Osubpi h_Osubpp h_Ocmpp x_6357 x_6356 x_6355 = function
    464464| Oadd (sz, sg) -> h_Oadd sz sg
    465465| Osub (sz, sg) -> h_Osub sz sg
     
    475475| Oshr (sz, sg) -> h_Oshr sz sg
    476476| Oshru (sz, sg) -> h_Oshru sz sg
    477 | Ocmp (sz, sg, sg', x_9434) -> h_Ocmp sz sg sg' x_9434
    478 | Ocmpu (sz, sg', x_9435) -> h_Ocmpu sz sg' x_9435
     477| Ocmp (sz, sg, sg', x_6359) -> h_Ocmp sz sg sg' x_6359
     478| Ocmpu (sz, sg', x_6360) -> h_Ocmpu sz sg' x_6360
    479479| Oaddpi sz -> h_Oaddpi sz
    480480| Oaddip sz -> h_Oaddip sz
    481481| Osubpi sz -> h_Osubpi sz
    482482| Osubpp sz -> h_Osubpp sz
    483 | Ocmpp (sg', x_9436) -> h_Ocmpp sg' x_9436
     483| Ocmpp (sg', x_6361) -> h_Ocmpp sg' x_6361
    484484
    485485(** val binary_operation_rect_Type3 :
     
    496496    (AST.intsize -> 'a1) -> (AST.signedness -> Integers.comparison -> 'a1) ->
    497497    AST.typ -> AST.typ -> AST.typ -> binary_operation -> 'a1 **)
    498 let rec binary_operation_rect_Type3 h_Oadd h_Osub h_Omul h_Odiv h_Odivu h_Omod h_Omodu h_Oand h_Oor h_Oxor h_Oshl h_Oshr h_Oshru h_Ocmp h_Ocmpu h_Oaddpi h_Oaddip h_Osubpi h_Osubpp h_Ocmpp x_9459 x_9458 x_9457 = function
     498let rec binary_operation_rect_Type3 h_Oadd h_Osub h_Omul h_Odiv h_Odivu h_Omod h_Omodu h_Oand h_Oor h_Oxor h_Oshl h_Oshr h_Oshru h_Ocmp h_Ocmpu h_Oaddpi h_Oaddip h_Osubpi h_Osubpp h_Ocmpp x_6384 x_6383 x_6382 = function
    499499| Oadd (sz, sg) -> h_Oadd sz sg
    500500| Osub (sz, sg) -> h_Osub sz sg
     
    510510| Oshr (sz, sg) -> h_Oshr sz sg
    511511| Oshru (sz, sg) -> h_Oshru sz sg
    512 | Ocmp (sz, sg, sg', x_9461) -> h_Ocmp sz sg sg' x_9461
    513 | Ocmpu (sz, sg', x_9462) -> h_Ocmpu sz sg' x_9462
     512| Ocmp (sz, sg, sg', x_6386) -> h_Ocmp sz sg sg' x_6386
     513| Ocmpu (sz, sg', x_6387) -> h_Ocmpu sz sg' x_6387
    514514| Oaddpi sz -> h_Oaddpi sz
    515515| Oaddip sz -> h_Oaddip sz
    516516| Osubpi sz -> h_Osubpi sz
    517517| Osubpp sz -> h_Osubpp sz
    518 | Ocmpp (sg', x_9463) -> h_Ocmpp sg' x_9463
     518| Ocmpp (sg', x_6388) -> h_Ocmpp sg' x_6388
    519519
    520520(** val binary_operation_rect_Type2 :
     
    531531    (AST.intsize -> 'a1) -> (AST.signedness -> Integers.comparison -> 'a1) ->
    532532    AST.typ -> AST.typ -> AST.typ -> binary_operation -> 'a1 **)
    533 let rec binary_operation_rect_Type2 h_Oadd h_Osub h_Omul h_Odiv h_Odivu h_Omod h_Omodu h_Oand h_Oor h_Oxor h_Oshl h_Oshr h_Oshru h_Ocmp h_Ocmpu h_Oaddpi h_Oaddip h_Osubpi h_Osubpp h_Ocmpp x_9486 x_9485 x_9484 = function
     533let rec binary_operation_rect_Type2 h_Oadd h_Osub h_Omul h_Odiv h_Odivu h_Omod h_Omodu h_Oand h_Oor h_Oxor h_Oshl h_Oshr h_Oshru h_Ocmp h_Ocmpu h_Oaddpi h_Oaddip h_Osubpi h_Osubpp h_Ocmpp x_6411 x_6410 x_6409 = function
    534534| Oadd (sz, sg) -> h_Oadd sz sg
    535535| Osub (sz, sg) -> h_Osub sz sg
     
    545545| Oshr (sz, sg) -> h_Oshr sz sg
    546546| Oshru (sz, sg) -> h_Oshru sz sg
    547 | Ocmp (sz, sg, sg', x_9488) -> h_Ocmp sz sg sg' x_9488
    548 | Ocmpu (sz, sg', x_9489) -> h_Ocmpu sz sg' x_9489
     547| Ocmp (sz, sg, sg', x_6413) -> h_Ocmp sz sg sg' x_6413
     548| Ocmpu (sz, sg', x_6414) -> h_Ocmpu sz sg' x_6414
    549549| Oaddpi sz -> h_Oaddpi sz
    550550| Oaddip sz -> h_Oaddip sz
    551551| Osubpi sz -> h_Osubpi sz
    552552| Osubpp sz -> h_Osubpp sz
    553 | Ocmpp (sg', x_9490) -> h_Ocmpp sg' x_9490
     553| Ocmpp (sg', x_6415) -> h_Ocmpp sg' x_6415
    554554
    555555(** val binary_operation_rect_Type1 :
     
    566566    (AST.intsize -> 'a1) -> (AST.signedness -> Integers.comparison -> 'a1) ->
    567567    AST.typ -> AST.typ -> AST.typ -> binary_operation -> 'a1 **)
    568 let rec binary_operation_rect_Type1 h_Oadd h_Osub h_Omul h_Odiv h_Odivu h_Omod h_Omodu h_Oand h_Oor h_Oxor h_Oshl h_Oshr h_Oshru h_Ocmp h_Ocmpu h_Oaddpi h_Oaddip h_Osubpi h_Osubpp h_Ocmpp x_9513 x_9512 x_9511 = function
     568let rec binary_operation_rect_Type1 h_Oadd h_Osub h_Omul h_Odiv h_Odivu h_Omod h_Omodu h_Oand h_Oor h_Oxor h_Oshl h_Oshr h_Oshru h_Ocmp h_Ocmpu h_Oaddpi h_Oaddip h_Osubpi h_Osubpp h_Ocmpp x_6438 x_6437 x_6436 = function
    569569| Oadd (sz, sg) -> h_Oadd sz sg
    570570| Osub (sz, sg) -> h_Osub sz sg
     
    580580| Oshr (sz, sg) -> h_Oshr sz sg
    581581| Oshru (sz, sg) -> h_Oshru sz sg
    582 | Ocmp (sz, sg, sg', x_9515) -> h_Ocmp sz sg sg' x_9515
    583 | Ocmpu (sz, sg', x_9516) -> h_Ocmpu sz sg' x_9516
     582| Ocmp (sz, sg, sg', x_6440) -> h_Ocmp sz sg sg' x_6440
     583| Ocmpu (sz, sg', x_6441) -> h_Ocmpu sz sg' x_6441
    584584| Oaddpi sz -> h_Oaddpi sz
    585585| Oaddip sz -> h_Oaddip sz
    586586| Osubpi sz -> h_Osubpi sz
    587587| Osubpp sz -> h_Osubpp sz
    588 | Ocmpp (sg', x_9517) -> h_Ocmpp sg' x_9517
     588| Ocmpp (sg', x_6442) -> h_Ocmpp sg' x_6442
    589589
    590590(** val binary_operation_rect_Type0 :
     
    601601    (AST.intsize -> 'a1) -> (AST.signedness -> Integers.comparison -> 'a1) ->
    602602    AST.typ -> AST.typ -> AST.typ -> binary_operation -> 'a1 **)
    603 let rec binary_operation_rect_Type0 h_Oadd h_Osub h_Omul h_Odiv h_Odivu h_Omod h_Omodu h_Oand h_Oor h_Oxor h_Oshl h_Oshr h_Oshru h_Ocmp h_Ocmpu h_Oaddpi h_Oaddip h_Osubpi h_Osubpp h_Ocmpp x_9540 x_9539 x_9538 = function
     603let rec binary_operation_rect_Type0 h_Oadd h_Osub h_Omul h_Odiv h_Odivu h_Omod h_Omodu h_Oand h_Oor h_Oxor h_Oshl h_Oshr h_Oshru h_Ocmp h_Ocmpu h_Oaddpi h_Oaddip h_Osubpi h_Osubpp h_Ocmpp x_6465 x_6464 x_6463 = function
    604604| Oadd (sz, sg) -> h_Oadd sz sg
    605605| Osub (sz, sg) -> h_Osub sz sg
     
    615615| Oshr (sz, sg) -> h_Oshr sz sg
    616616| Oshru (sz, sg) -> h_Oshru sz sg
    617 | Ocmp (sz, sg, sg', x_9542) -> h_Ocmp sz sg sg' x_9542
    618 | Ocmpu (sz, sg', x_9543) -> h_Ocmpu sz sg' x_9543
     617| Ocmp (sz, sg, sg', x_6467) -> h_Ocmp sz sg sg' x_6467
     618| Ocmpu (sz, sg', x_6468) -> h_Ocmpu sz sg' x_6468
    619619| Oaddpi sz -> h_Oaddpi sz
    620620| Oaddip sz -> h_Oaddip sz
    621621| Osubpi sz -> h_Osubpi sz
    622622| Osubpp sz -> h_Osubpp sz
    623 | Ocmpp (sg', x_9544) -> h_Ocmpp sg' x_9544
     623| Ocmpp (sg', x_6469) -> h_Ocmpp sg' x_6469
    624624
    625625(** val binary_operation_inv_rect_Type4 :
     
    10001000     | Values.Vnull -> Types.None
    10011001     | Values.Vptr ptr2 ->
    1002        (match Pointers.eq_block ptr1.Pointers.pblock ptr2.Pointers.pblock with
     1002       (match Pointers.eq_block (Pointers.pblock ptr1)
     1003                (Pointers.pblock ptr2) with
    10031004        | Bool.True ->
    10041005          Types.Some (Values.Vint (sz,
    10051006            (Pointers.sub_offset (AST.bitsize_of_intsize sz)
    1006               ptr1.Pointers.poff ptr2.Pointers.poff)))
     1007              (Pointers.poff ptr1) (Pointers.poff ptr2))))
    10071008        | Bool.False -> Types.None))
    10081009
     
    13011302                (FrontEndMem.valid_pointer m ptr2) with
    13021303        | Bool.True ->
    1303           (match Pointers.eq_block ptr1.Pointers.pblock ptr2.Pointers.pblock with
     1304          (match Pointers.eq_block (Pointers.pblock ptr1)
     1305                   (Pointers.pblock ptr2) with
    13041306           | Bool.True ->
    13051307             Types.Some
    13061308               (fE_of_bool
    1307                  (Values.cmp_offset c ptr1.Pointers.poff ptr2.Pointers.poff))
     1309                 (Values.cmp_offset c (Pointers.poff ptr1)
     1310                   (Pointers.poff ptr2)))
    13081311           | Bool.False -> ev_cmp_mismatch c)
    13091312        | Bool.False -> Types.None))
  • extracted/genMem.ml

    r2997 r3001  
    100100(** val block_contents_rect_Type4 :
    101101    (Z.z -> Z.z -> contentmap -> 'a1) -> block_contents -> 'a1 **)
    102 let rec block_contents_rect_Type4 h_mk_block_contents x_6504 =
    103   let { low = low0; high = high0; contents = contents0 } = x_6504 in
     102let rec block_contents_rect_Type4 h_mk_block_contents x_3396 =
     103  let { low = low0; high = high0; contents = contents0 } = x_3396 in
    104104  h_mk_block_contents low0 high0 contents0
    105105
    106106(** val block_contents_rect_Type5 :
    107107    (Z.z -> Z.z -> contentmap -> 'a1) -> block_contents -> 'a1 **)
    108 let rec block_contents_rect_Type5 h_mk_block_contents x_6506 =
    109   let { low = low0; high = high0; contents = contents0 } = x_6506 in
     108let rec block_contents_rect_Type5 h_mk_block_contents x_3398 =
     109  let { low = low0; high = high0; contents = contents0 } = x_3398 in
    110110  h_mk_block_contents low0 high0 contents0
    111111
    112112(** val block_contents_rect_Type3 :
    113113    (Z.z -> Z.z -> contentmap -> 'a1) -> block_contents -> 'a1 **)
    114 let rec block_contents_rect_Type3 h_mk_block_contents x_6508 =
    115   let { low = low0; high = high0; contents = contents0 } = x_6508 in
     114let rec block_contents_rect_Type3 h_mk_block_contents x_3400 =
     115  let { low = low0; high = high0; contents = contents0 } = x_3400 in
    116116  h_mk_block_contents low0 high0 contents0
    117117
    118118(** val block_contents_rect_Type2 :
    119119    (Z.z -> Z.z -> contentmap -> 'a1) -> block_contents -> 'a1 **)
    120 let rec block_contents_rect_Type2 h_mk_block_contents x_6510 =
    121   let { low = low0; high = high0; contents = contents0 } = x_6510 in
     120let rec block_contents_rect_Type2 h_mk_block_contents x_3402 =
     121  let { low = low0; high = high0; contents = contents0 } = x_3402 in
    122122  h_mk_block_contents low0 high0 contents0
    123123
    124124(** val block_contents_rect_Type1 :
    125125    (Z.z -> Z.z -> contentmap -> 'a1) -> block_contents -> 'a1 **)
    126 let rec block_contents_rect_Type1 h_mk_block_contents x_6512 =
    127   let { low = low0; high = high0; contents = contents0 } = x_6512 in
     126let rec block_contents_rect_Type1 h_mk_block_contents x_3404 =
     127  let { low = low0; high = high0; contents = contents0 } = x_3404 in
    128128  h_mk_block_contents low0 high0 contents0
    129129
    130130(** val block_contents_rect_Type0 :
    131131    (Z.z -> Z.z -> contentmap -> 'a1) -> block_contents -> 'a1 **)
    132 let rec block_contents_rect_Type0 h_mk_block_contents x_6514 =
    133   let { low = low0; high = high0; contents = contents0 } = x_6514 in
     132let rec block_contents_rect_Type0 h_mk_block_contents x_3406 =
     133  let { low = low0; high = high0; contents = contents0 } = x_3406 in
    134134  h_mk_block_contents low0 high0 contents0
    135135
     
    187187(** val mem_rect_Type4 :
    188188    ((Pointers.block -> block_contents) -> Z.z -> __ -> 'a1) -> mem -> 'a1 **)
    189 let rec mem_rect_Type4 h_mk_mem x_6530 =
    190   let { blocks = blocks0; nextblock = nextblock0 } = x_6530 in
     189let rec mem_rect_Type4 h_mk_mem x_3422 =
     190  let { blocks = blocks0; nextblock = nextblock0 } = x_3422 in
    191191  h_mk_mem blocks0 nextblock0 __
    192192
    193193(** val mem_rect_Type5 :
    194194    ((Pointers.block -> block_contents) -> Z.z -> __ -> 'a1) -> mem -> 'a1 **)
    195 let rec mem_rect_Type5 h_mk_mem x_6532 =
    196   let { blocks = blocks0; nextblock = nextblock0 } = x_6532 in
     195let rec mem_rect_Type5 h_mk_mem x_3424 =
     196  let { blocks = blocks0; nextblock = nextblock0 } = x_3424 in
    197197  h_mk_mem blocks0 nextblock0 __
    198198
    199199(** val mem_rect_Type3 :
    200200    ((Pointers.block -> block_contents) -> Z.z -> __ -> 'a1) -> mem -> 'a1 **)
    201 let rec mem_rect_Type3 h_mk_mem x_6534 =
    202   let { blocks = blocks0; nextblock = nextblock0 } = x_6534 in
     201let rec mem_rect_Type3 h_mk_mem x_3426 =
     202  let { blocks = blocks0; nextblock = nextblock0 } = x_3426 in
    203203  h_mk_mem blocks0 nextblock0 __
    204204
    205205(** val mem_rect_Type2 :
    206206    ((Pointers.block -> block_contents) -> Z.z -> __ -> 'a1) -> mem -> 'a1 **)
    207 let rec mem_rect_Type2 h_mk_mem x_6536 =
    208   let { blocks = blocks0; nextblock = nextblock0 } = x_6536 in
     207let rec mem_rect_Type2 h_mk_mem x_3428 =
     208  let { blocks = blocks0; nextblock = nextblock0 } = x_3428 in
    209209  h_mk_mem blocks0 nextblock0 __
    210210
    211211(** val mem_rect_Type1 :
    212212    ((Pointers.block -> block_contents) -> Z.z -> __ -> 'a1) -> mem -> 'a1 **)
    213 let rec mem_rect_Type1 h_mk_mem x_6538 =
    214   let { blocks = blocks0; nextblock = nextblock0 } = x_6538 in
     213let rec mem_rect_Type1 h_mk_mem x_3430 =
     214  let { blocks = blocks0; nextblock = nextblock0 } = x_3430 in
    215215  h_mk_mem blocks0 nextblock0 __
    216216
    217217(** val mem_rect_Type0 :
    218218    ((Pointers.block -> block_contents) -> Z.z -> __ -> 'a1) -> mem -> 'a1 **)
    219 let rec mem_rect_Type0 h_mk_mem x_6540 =
    220   let { blocks = blocks0; nextblock = nextblock0 } = x_6540 in
     219let rec mem_rect_Type0 h_mk_mem x_3432 =
     220  let { blocks = blocks0; nextblock = nextblock0 } = x_3432 in
    221221  h_mk_mem blocks0 nextblock0 __
    222222
     
    316316    'a1) -> 'a1 Types.option **)
    317317let do_if_in_bounds m ptr f =
    318   let b = ptr.Pointers.pblock in
     318  let b = Pointers.pblock ptr in
    319319  (match Z.zltb (Pointers.block_id b) m.nextblock with
    320320   | Bool.True ->
     
    322322     let off =
    323323       BitVectorZ.z_of_unsigned_bitvector Pointers.offset_size
    324          (Pointers.offv ptr.Pointers.poff)
     324         (Pointers.offv (Pointers.poff ptr))
    325325     in
    326326     (match Bool.andb (Z.zleb content.low off) (Z.zltb off content.high) with
  • extracted/globalenvs.ml

    r2997 r3001  
    9898    ('a1 PositiveMap.positive_map -> Positive.pos -> Pointers.block
    9999    Identifiers.identifier_map -> __ -> 'a2) -> 'a1 genv_t -> 'a2 **)
    100 let rec genv_t_rect_Type4 h_mk_genv_t x_6557 =
     100let rec genv_t_rect_Type4 h_mk_genv_t x_3449 =
    101101  let { functions = functions0; nextfunction = nextfunction0; symbols =
    102     symbols0 } = x_6557
     102    symbols0 } = x_3449
    103103  in
    104104  h_mk_genv_t functions0 nextfunction0 symbols0 __
     
    107107    ('a1 PositiveMap.positive_map -> Positive.pos -> Pointers.block
    108108    Identifiers.identifier_map -> __ -> 'a2) -> 'a1 genv_t -> 'a2 **)
    109 let rec genv_t_rect_Type5 h_mk_genv_t x_6559 =
     109let rec genv_t_rect_Type5 h_mk_genv_t x_3451 =
    110110  let { functions = functions0; nextfunction = nextfunction0; symbols =
    111     symbols0 } = x_6559
     111    symbols0 } = x_3451
    112112  in
    113113  h_mk_genv_t functions0 nextfunction0 symbols0 __
     
    116116    ('a1 PositiveMap.positive_map -> Positive.pos -> Pointers.block
    117117    Identifiers.identifier_map -> __ -> 'a2) -> 'a1 genv_t -> 'a2 **)
    118 let rec genv_t_rect_Type3 h_mk_genv_t x_6561 =
     118let rec genv_t_rect_Type3 h_mk_genv_t x_3453 =
    119119  let { functions = functions0; nextfunction = nextfunction0; symbols =
    120     symbols0 } = x_6561
     120    symbols0 } = x_3453
    121121  in
    122122  h_mk_genv_t functions0 nextfunction0 symbols0 __
     
    125125    ('a1 PositiveMap.positive_map -> Positive.pos -> Pointers.block
    126126    Identifiers.identifier_map -> __ -> 'a2) -> 'a1 genv_t -> 'a2 **)
    127 let rec genv_t_rect_Type2 h_mk_genv_t x_6563 =
     127let rec genv_t_rect_Type2 h_mk_genv_t x_3455 =
    128128  let { functions = functions0; nextfunction = nextfunction0; symbols =
    129     symbols0 } = x_6563
     129    symbols0 } = x_3455
    130130  in
    131131  h_mk_genv_t functions0 nextfunction0 symbols0 __
     
    134134    ('a1 PositiveMap.positive_map -> Positive.pos -> Pointers.block
    135135    Identifiers.identifier_map -> __ -> 'a2) -> 'a1 genv_t -> 'a2 **)
    136 let rec genv_t_rect_Type1 h_mk_genv_t x_6565 =
     136let rec genv_t_rect_Type1 h_mk_genv_t x_3457 =
    137137  let { functions = functions0; nextfunction = nextfunction0; symbols =
    138     symbols0 } = x_6565
     138    symbols0 } = x_3457
    139139  in
    140140  h_mk_genv_t functions0 nextfunction0 symbols0 __
     
    143143    ('a1 PositiveMap.positive_map -> Positive.pos -> Pointers.block
    144144    Identifiers.identifier_map -> __ -> 'a2) -> 'a1 genv_t -> 'a2 **)
    145 let rec genv_t_rect_Type0 h_mk_genv_t x_6567 =
     145let rec genv_t_rect_Type0 h_mk_genv_t x_3459 =
    146146  let { functions = functions0; nextfunction = nextfunction0; symbols =
    147     symbols0 } = x_6567
     147    symbols0 } = x_3459
    148148  in
    149149  h_mk_genv_t functions0 nextfunction0 symbols0 __
     
    314314let add_globals extract_init init_env vars =
    315315  Util.foldl (fun g_st id_init ->
    316     let { Types.fst = eta27696; Types.snd = init_info } = id_init in
    317     let { Types.fst = id; Types.snd = r } = eta27696 in
     316    let { Types.fst = eta27285; Types.snd = init_info } = id_init in
     317    let { Types.fst = id; Types.snd = r } = eta27285 in
    318318    let init = extract_init init_info in
    319319    let { Types.fst = g; Types.snd = st } = g_st in
     
    330330let init_globals extract_init g m vars =
    331331  Util.foldl (fun st id_init ->
    332     let { Types.fst = eta27697; Types.snd = init_info } = id_init in
    333     let { Types.fst = id; Types.snd = r } = eta27697 in
     332    let { Types.fst = eta27286; Types.snd = init_info } = id_init in
     333    let { Types.fst = id; Types.snd = r } = eta27286 in
    334334    let init = extract_init init_info in
    335335    Obj.magic
     
    348348    genv_t, GenMem.mem) Types.prod **)
    349349let globalenv_allocmem init_info p =
    350   add_globals init_info { Types.fst = (add_functs empty p.AST.prog_funct);
    351     Types.snd = empty_mem } p.AST.prog_vars
     350  add_globals init_info { Types.fst = (add_functs empty (AST.prog_funct p));
     351    Types.snd = empty_mem } (AST.prog_vars p)
    352352
    353353(** val globalenv :
     
    365365let init_mem i p =
    366366  let { Types.fst = g; Types.snd = m } = globalenv_allocmem i p in
    367   init_globals i g m p.AST.prog_vars
     367  init_globals i g m (AST.prog_vars p)
    368368
    369369(** val alloc_mem : ('a1, Nat.nat) AST.program -> GenMem.mem **)
     
    387387| Values.Vnull -> Types.None
    388388| Values.Vptr ptr ->
    389   (match Pointers.eq_offset ptr.Pointers.poff Pointers.zero_offset with
    390    | Bool.True -> find_funct_ptr ge ptr.Pointers.pblock
     389  (match Pointers.eq_offset (Pointers.poff ptr) Pointers.zero_offset with
     390   | Bool.True -> find_funct_ptr ge (Pointers.pblock ptr)
    391391   | Bool.False -> Types.None)
    392392
     
    472472   | Values.Vnull -> (fun _ -> assert false (* absurd case *))
    473473   | Values.Vptr p ->
    474      (fun _ -> symbol_of_function_block ge p.Pointers.pblock)) __
     474     (fun _ -> symbol_of_function_block ge (Pointers.pblock p))) __
    475475
    476476(** val symbol_of_function_val' :
  • extracted/interference.ml

    r2997 r3001  
    136136    (Nat.nat -> 'a1) -> (I8051.register -> 'a1) -> decision -> 'a1 **)
    137137let rec decision_rect_Type4 h_decision_spill h_decision_colour = function
    138 | Decision_spill x_7 -> h_decision_spill x_7
    139 | Decision_colour x_8 -> h_decision_colour x_8
     138| Decision_spill x_5765 -> h_decision_spill x_5765
     139| Decision_colour x_5766 -> h_decision_colour x_5766
    140140
    141141(** val decision_rect_Type5 :
    142142    (Nat.nat -> 'a1) -> (I8051.register -> 'a1) -> decision -> 'a1 **)
    143143let rec decision_rect_Type5 h_decision_spill h_decision_colour = function
    144 | Decision_spill x_12 -> h_decision_spill x_12
    145 | Decision_colour x_13 -> h_decision_colour x_13
     144| Decision_spill x_5770 -> h_decision_spill x_5770
     145| Decision_colour x_5771 -> h_decision_colour x_5771
    146146
    147147(** val decision_rect_Type3 :
    148148    (Nat.nat -> 'a1) -> (I8051.register -> 'a1) -> decision -> 'a1 **)
    149149let rec decision_rect_Type3 h_decision_spill h_decision_colour = function
    150 | Decision_spill x_17 -> h_decision_spill x_17
    151 | Decision_colour x_18 -> h_decision_colour x_18
     150| Decision_spill x_5775 -> h_decision_spill x_5775
     151| Decision_colour x_5776 -> h_decision_colour x_5776
    152152
    153153(** val decision_rect_Type2 :
    154154    (Nat.nat -> 'a1) -> (I8051.register -> 'a1) -> decision -> 'a1 **)
    155155let rec decision_rect_Type2 h_decision_spill h_decision_colour = function
    156 | Decision_spill x_22 -> h_decision_spill x_22
    157 | Decision_colour x_23 -> h_decision_colour x_23
     156| Decision_spill x_5780 -> h_decision_spill x_5780
     157| Decision_colour x_5781 -> h_decision_colour x_5781
    158158
    159159(** val decision_rect_Type1 :
    160160    (Nat.nat -> 'a1) -> (I8051.register -> 'a1) -> decision -> 'a1 **)
    161161let rec decision_rect_Type1 h_decision_spill h_decision_colour = function
    162 | Decision_spill x_27 -> h_decision_spill x_27
    163 | Decision_colour x_28 -> h_decision_colour x_28
     162| Decision_spill x_5785 -> h_decision_spill x_5785
     163| Decision_colour x_5786 -> h_decision_colour x_5786
    164164
    165165(** val decision_rect_Type0 :
    166166    (Nat.nat -> 'a1) -> (I8051.register -> 'a1) -> decision -> 'a1 **)
    167167let rec decision_rect_Type0 h_decision_spill h_decision_colour = function
    168 | Decision_spill x_32 -> h_decision_spill x_32
    169 | Decision_colour x_33 -> h_decision_colour x_33
     168| Decision_spill x_5790 -> h_decision_spill x_5790
     169| Decision_colour x_5791 -> h_decision_colour x_5791
    170170
    171171(** val decision_inv_rect_Type4 :
     
    219219    Fixpoints.valuation -> ((Liveness.vertex -> decision) -> Nat.nat -> __ ->
    220220    __ -> 'a1) -> coloured_graph -> 'a1 **)
    221 let rec coloured_graph_rect_Type4 before h_mk_coloured_graph x_68 =
    222   let { colouring = colouring0; spilled_no = spilled_no0 } = x_68 in
     221let rec coloured_graph_rect_Type4 before h_mk_coloured_graph x_5826 =
     222  let { colouring = colouring0; spilled_no = spilled_no0 } = x_5826 in
    223223  h_mk_coloured_graph colouring0 spilled_no0 __ __
    224224
     
    226226    Fixpoints.valuation -> ((Liveness.vertex -> decision) -> Nat.nat -> __ ->
    227227    __ -> 'a1) -> coloured_graph -> 'a1 **)
    228 let rec coloured_graph_rect_Type5 before h_mk_coloured_graph x_70 =
    229   let { colouring = colouring0; spilled_no = spilled_no0 } = x_70 in
     228let rec coloured_graph_rect_Type5 before h_mk_coloured_graph x_5828 =
     229  let { colouring = colouring0; spilled_no = spilled_no0 } = x_5828 in
    230230  h_mk_coloured_graph colouring0 spilled_no0 __ __
    231231
     
    233233    Fixpoints.valuation -> ((Liveness.vertex -> decision) -> Nat.nat -> __ ->
    234234    __ -> 'a1) -> coloured_graph -> 'a1 **)
    235 let rec coloured_graph_rect_Type3 before h_mk_coloured_graph x_72 =
    236   let { colouring = colouring0; spilled_no = spilled_no0 } = x_72 in
     235let rec coloured_graph_rect_Type3 before h_mk_coloured_graph x_5830 =
     236  let { colouring = colouring0; spilled_no = spilled_no0 } = x_5830 in
    237237  h_mk_coloured_graph colouring0 spilled_no0 __ __
    238238
     
    240240    Fixpoints.valuation -> ((Liveness.vertex -> decision) -> Nat.nat -> __ ->
    241241    __ -> 'a1) -> coloured_graph -> 'a1 **)
    242 let rec coloured_graph_rect_Type2 before h_mk_coloured_graph x_74 =
    243   let { colouring = colouring0; spilled_no = spilled_no0 } = x_74 in
     242let rec coloured_graph_rect_Type2 before h_mk_coloured_graph x_5832 =
     243  let { colouring = colouring0; spilled_no = spilled_no0 } = x_5832 in
    244244  h_mk_coloured_graph colouring0 spilled_no0 __ __
    245245
     
    247247    Fixpoints.valuation -> ((Liveness.vertex -> decision) -> Nat.nat -> __ ->
    248248    __ -> 'a1) -> coloured_graph -> 'a1 **)
    249 let rec coloured_graph_rect_Type1 before h_mk_coloured_graph x_76 =
    250   let { colouring = colouring0; spilled_no = spilled_no0 } = x_76 in
     249let rec coloured_graph_rect_Type1 before h_mk_coloured_graph x_5834 =
     250  let { colouring = colouring0; spilled_no = spilled_no0 } = x_5834 in
    251251  h_mk_coloured_graph colouring0 spilled_no0 __ __
    252252
     
    254254    Fixpoints.valuation -> ((Liveness.vertex -> decision) -> Nat.nat -> __ ->
    255255    __ -> 'a1) -> coloured_graph -> 'a1 **)
    256 let rec coloured_graph_rect_Type0 before h_mk_coloured_graph x_78 =
    257   let { colouring = colouring0; spilled_no = spilled_no0 } = x_78 in
     256let rec coloured_graph_rect_Type0 before h_mk_coloured_graph x_5836 =
     257  let { colouring = colouring0; spilled_no = spilled_no0 } = x_5836 in
    258258  h_mk_coloured_graph colouring0 spilled_no0 __ __
    259259
  • extracted/joint.ml

    r2997 r3001  
    110110    ('a1 -> 'a2) -> (BitVector.byte -> 'a2) -> 'a1 argument -> 'a2 **)
    111111let rec argument_rect_Type4 h_Reg h_Imm = function
    112 | Reg x_224 -> h_Reg x_224
    113 | Imm x_225 -> h_Imm x_225
     112| Reg x_3753 -> h_Reg x_3753
     113| Imm x_3754 -> h_Imm x_3754
    114114
    115115(** val argument_rect_Type5 :
    116116    ('a1 -> 'a2) -> (BitVector.byte -> 'a2) -> 'a1 argument -> 'a2 **)
    117117let rec argument_rect_Type5 h_Reg h_Imm = function
    118 | Reg x_229 -> h_Reg x_229
    119 | Imm x_230 -> h_Imm x_230
     118| Reg x_3758 -> h_Reg x_3758
     119| Imm x_3759 -> h_Imm x_3759
    120120
    121121(** val argument_rect_Type3 :
    122122    ('a1 -> 'a2) -> (BitVector.byte -> 'a2) -> 'a1 argument -> 'a2 **)
    123123let rec argument_rect_Type3 h_Reg h_Imm = function
    124 | Reg x_234 -> h_Reg x_234
    125 | Imm x_235 -> h_Imm x_235
     124| Reg x_3763 -> h_Reg x_3763
     125| Imm x_3764 -> h_Imm x_3764
    126126
    127127(** val argument_rect_Type2 :
    128128    ('a1 -> 'a2) -> (BitVector.byte -> 'a2) -> 'a1 argument -> 'a2 **)
    129129let rec argument_rect_Type2 h_Reg h_Imm = function
    130 | Reg x_239 -> h_Reg x_239
    131 | Imm x_240 -> h_Imm x_240
     130| Reg x_3768 -> h_Reg x_3768
     131| Imm x_3769 -> h_Imm x_3769
    132132
    133133(** val argument_rect_Type1 :
    134134    ('a1 -> 'a2) -> (BitVector.byte -> 'a2) -> 'a1 argument -> 'a2 **)
    135135let rec argument_rect_Type1 h_Reg h_Imm = function
    136 | Reg x_244 -> h_Reg x_244
    137 | Imm x_245 -> h_Imm x_245
     136| Reg x_3773 -> h_Reg x_3773
     137| Imm x_3774 -> h_Imm x_3774
    138138
    139139(** val argument_rect_Type0 :
    140140    ('a1 -> 'a2) -> (BitVector.byte -> 'a2) -> 'a1 argument -> 'a2 **)
    141141let rec argument_rect_Type0 h_Reg h_Imm = function
    142 | Reg x_249 -> h_Reg x_249
    143 | Imm x_250 -> h_Imm x_250
     142| Reg x_3778 -> h_Reg x_3778
     143| Imm x_3779 -> h_Imm x_3779
    144144
    145145(** val argument_inv_rect_Type4 :
     
    324324    __ -> (__ -> Graphs.label List.list) -> Bool.bool -> __ -> 'a1) ->
    325325    unserialized_params -> 'a1 **)
    326 let rec unserialized_params_rect_Type4 h_mk_unserialized_params x_285 =
     326let rec unserialized_params_rect_Type4 h_mk_unserialized_params x_3814 =
    327327  let { ext_seq_labels = ext_seq_labels0; has_tailcalls = has_tailcalls0 } =
    328     x_285
     328    x_3814
    329329  in
    330330  h_mk_unserialized_params __ __ __ __ __ __ __ __ __ __ __ __ __
     
    335335    __ -> (__ -> Graphs.label List.list) -> Bool.bool -> __ -> 'a1) ->
    336336    unserialized_params -> 'a1 **)
    337 let rec unserialized_params_rect_Type5 h_mk_unserialized_params x_287 =
     337let rec unserialized_params_rect_Type5 h_mk_unserialized_params x_3816 =
    338338  let { ext_seq_labels = ext_seq_labels0; has_tailcalls = has_tailcalls0 } =
    339     x_287
     339    x_3816
    340340  in
    341341  h_mk_unserialized_params __ __ __ __ __ __ __ __ __ __ __ __ __
     
    346346    __ -> (__ -> Graphs.label List.list) -> Bool.bool -> __ -> 'a1) ->
    347347    unserialized_params -> 'a1 **)
    348 let rec unserialized_params_rect_Type3 h_mk_unserialized_params x_289 =
     348let rec unserialized_params_rect_Type3 h_mk_unserialized_params x_3818 =
    349349  let { ext_seq_labels = ext_seq_labels0; has_tailcalls = has_tailcalls0 } =
    350     x_289
     350    x_3818
    351351  in
    352352  h_mk_unserialized_params __ __ __ __ __ __ __ __ __ __ __ __ __
     
    357357    __ -> (__ -> Graphs.label List.list) -> Bool.bool -> __ -> 'a1) ->
    358358    unserialized_params -> 'a1 **)
    359 let rec unserialized_params_rect_Type2 h_mk_unserialized_params x_291 =
     359let rec unserialized_params_rect_Type2 h_mk_unserialized_params x_3820 =
    360360  let { ext_seq_labels = ext_seq_labels0; has_tailcalls = has_tailcalls0 } =
    361     x_291
     361    x_3820
    362362  in
    363363  h_mk_unserialized_params __ __ __ __ __ __ __ __ __ __ __ __ __
     
    368368    __ -> (__ -> Graphs.label List.list) -> Bool.bool -> __ -> 'a1) ->
    369369    unserialized_params -> 'a1 **)
    370 let rec unserialized_params_rect_Type1 h_mk_unserialized_params x_293 =
     370let rec unserialized_params_rect_Type1 h_mk_unserialized_params x_3822 =
    371371  let { ext_seq_labels = ext_seq_labels0; has_tailcalls = has_tailcalls0 } =
    372     x_293
     372    x_3822
    373373  in
    374374  h_mk_unserialized_params __ __ __ __ __ __ __ __ __ __ __ __ __
     
    379379    __ -> (__ -> Graphs.label List.list) -> Bool.bool -> __ -> 'a1) ->
    380380    unserialized_params -> 'a1 **)
    381 let rec unserialized_params_rect_Type0 h_mk_unserialized_params x_295 =
     381let rec unserialized_params_rect_Type0 h_mk_unserialized_params x_3824 =
    382382  let { ext_seq_labels = ext_seq_labels0; has_tailcalls = has_tailcalls0 } =
    383     x_295
     383    x_3824
    384384  in
    385385  h_mk_unserialized_params __ __ __ __ __ __ __ __ __ __ __ __ __
     
    506506    (__ -> Registers.register List.list) -> 'a1) -> get_pseudo_reg_functs ->
    507507    'a1 **)
    508 let rec get_pseudo_reg_functs_rect_Type4 p h_mk_get_pseudo_reg_functs x_312 =
     508let rec get_pseudo_reg_functs_rect_Type4 p h_mk_get_pseudo_reg_functs x_3841 =
    509509  let { acc_a_regs = acc_a_regs0; acc_b_regs = acc_b_regs0; acc_a_args =
    510510    acc_a_args0; acc_b_args = acc_b_args0; dpl_regs = dpl_regs0; dph_regs =
     
    512512    snd_args0; pair_move_regs = pair_move_regs0; f_call_args = f_call_args0;
    513513    f_call_dest = f_call_dest0; ext_seq_regs = ext_seq_regs0; params_regs =
    514     params_regs0 } = x_312
     514    params_regs0 } = x_3841
    515515  in
    516516  h_mk_get_pseudo_reg_functs acc_a_regs0 acc_b_regs0 acc_a_args0 acc_b_args0
     
    529529    (__ -> Registers.register List.list) -> 'a1) -> get_pseudo_reg_functs ->
    530530    'a1 **)
    531 let rec get_pseudo_reg_functs_rect_Type5 p h_mk_get_pseudo_reg_functs x_314 =
     531let rec get_pseudo_reg_functs_rect_Type5 p h_mk_get_pseudo_reg_functs x_3843 =
    532532  let { acc_a_regs = acc_a_regs0; acc_b_regs = acc_b_regs0; acc_a_args =
    533533    acc_a_args0; acc_b_args = acc_b_args0; dpl_regs = dpl_regs0; dph_regs =
     
    535535    snd_args0; pair_move_regs = pair_move_regs0; f_call_args = f_call_args0;
    536536    f_call_dest = f_call_dest0; ext_seq_regs = ext_seq_regs0; params_regs =
    537     params_regs0 } = x_314
     537    params_regs0 } = x_3843
    538538  in
    539539  h_mk_get_pseudo_reg_functs acc_a_regs0 acc_b_regs0 acc_a_args0 acc_b_args0
     
    552552    (__ -> Registers.register List.list) -> 'a1) -> get_pseudo_reg_functs ->
    553553    'a1 **)
    554 let rec get_pseudo_reg_functs_rect_Type3 p h_mk_get_pseudo_reg_functs x_316 =
     554let rec get_pseudo_reg_functs_rect_Type3 p h_mk_get_pseudo_reg_functs x_3845 =
    555555  let { acc_a_regs = acc_a_regs0; acc_b_regs = acc_b_regs0; acc_a_args =
    556556    acc_a_args0; acc_b_args = acc_b_args0; dpl_regs = dpl_regs0; dph_regs =
     
    558558    snd_args0; pair_move_regs = pair_move_regs0; f_call_args = f_call_args0;
    559559    f_call_dest = f_call_dest0; ext_seq_regs = ext_seq_regs0; params_regs =
    560     params_regs0 } = x_316
     560    params_regs0 } = x_3845
    561561  in
    562562  h_mk_get_pseudo_reg_functs acc_a_regs0 acc_b_regs0 acc_a_args0 acc_b_args0
     
    575575    (__ -> Registers.register List.list) -> 'a1) -> get_pseudo_reg_functs ->
    576576    'a1 **)
    577 let rec get_pseudo_reg_functs_rect_Type2 p h_mk_get_pseudo_reg_functs x_318 =
     577let rec get_pseudo_reg_functs_rect_Type2 p h_mk_get_pseudo_reg_functs x_3847 =
    578578  let { acc_a_regs = acc_a_regs0; acc_b_regs = acc_b_regs0; acc_a_args =
    579579    acc_a_args0; acc_b_args = acc_b_args0; dpl_regs = dpl_regs0; dph_regs =
     
    581581    snd_args0; pair_move_regs = pair_move_regs0; f_call_args = f_call_args0;
    582582    f_call_dest = f_call_dest0; ext_seq_regs = ext_seq_regs0; params_regs =
    583     params_regs0 } = x_318
     583    params_regs0 } = x_3847
    584584  in
    585585  h_mk_get_pseudo_reg_functs acc_a_regs0 acc_b_regs0 acc_a_args0 acc_b_args0
     
    598598    (__ -> Registers.register List.list) -> 'a1) -> get_pseudo_reg_functs ->
    599599    'a1 **)
    600 let rec get_pseudo_reg_functs_rect_Type1 p h_mk_get_pseudo_reg_functs x_320 =
     600let rec get_pseudo_reg_functs_rect_Type1 p h_mk_get_pseudo_reg_functs x_3849 =
    601601  let { acc_a_regs = acc_a_regs0; acc_b_regs = acc_b_regs0; acc_a_args =
    602602    acc_a_args0; acc_b_args = acc_b_args0; dpl_regs = dpl_regs0; dph_regs =
     
    604604    snd_args0; pair_move_regs = pair_move_regs0; f_call_args = f_call_args0;
    605605    f_call_dest = f_call_dest0; ext_seq_regs = ext_seq_regs0; params_regs =
    606     params_regs0 } = x_320
     606    params_regs0 } = x_3849
    607607  in
    608608  h_mk_get_pseudo_reg_functs acc_a_regs0 acc_b_regs0 acc_a_args0 acc_b_args0
     
    621621    (__ -> Registers.register List.list) -> 'a1) -> get_pseudo_reg_functs ->
    622622    'a1 **)
    623 let rec get_pseudo_reg_functs_rect_Type0 p h_mk_get_pseudo_reg_functs x_322 =
     623let rec get_pseudo_reg_functs_rect_Type0 p h_mk_get_pseudo_reg_functs x_3851 =
    624624  let { acc_a_regs = acc_a_regs0; acc_b_regs = acc_b_regs0; acc_a_args =
    625625    acc_a_args0; acc_b_args = acc_b_args0; dpl_regs = dpl_regs0; dph_regs =
     
    627627    snd_args0; pair_move_regs = pair_move_regs0; f_call_args = f_call_args0;
    628628    f_call_dest = f_call_dest0; ext_seq_regs = ext_seq_regs0; params_regs =
    629     params_regs0 } = x_322
     629    params_regs0 } = x_3851
    630630  in
    631631  h_mk_get_pseudo_reg_functs acc_a_regs0 acc_b_regs0 acc_a_args0 acc_b_args0
     
    805805    (unserialized_params -> get_pseudo_reg_functs -> 'a1) -> uns_params ->
    806806    'a1 **)
    807 let rec uns_params_rect_Type4 h_mk_uns_params x_352 =
    808   let { u_pars = u_pars0; functs = functs0 } = x_352 in
     807let rec uns_params_rect_Type4 h_mk_uns_params x_3881 =
     808  let { u_pars = u_pars0; functs = functs0 } = x_3881 in
    809809  h_mk_uns_params u_pars0 functs0
    810810
     
    812812    (unserialized_params -> get_pseudo_reg_functs -> 'a1) -> uns_params ->
    813813    'a1 **)
    814 let rec uns_params_rect_Type5 h_mk_uns_params x_354 =
    815   let { u_pars = u_pars0; functs = functs0 } = x_354 in
     814let rec uns_params_rect_Type5 h_mk_uns_params x_3883 =
     815  let { u_pars = u_pars0; functs = functs0 } = x_3883 in
    816816  h_mk_uns_params u_pars0 functs0
    817817
     
    819819    (unserialized_params -> get_pseudo_reg_functs -> 'a1) -> uns_params ->
    820820    'a1 **)
    821 let rec uns_params_rect_Type3 h_mk_uns_params x_356 =
    822   let { u_pars = u_pars0; functs = functs0 } = x_356 in
     821let rec uns_params_rect_Type3 h_mk_uns_params x_3885 =
     822  let { u_pars = u_pars0; functs = functs0 } = x_3885 in
    823823  h_mk_uns_params u_pars0 functs0
    824824
     
    826826    (unserialized_params -> get_pseudo_reg_functs -> 'a1) -> uns_params ->
    827827    'a1 **)
    828 let rec uns_params_rect_Type2 h_mk_uns_params x_358 =
    829   let { u_pars = u_pars0; functs = functs0 } = x_358 in
     828let rec uns_params_rect_Type2 h_mk_uns_params x_3887 =
     829  let { u_pars = u_pars0; functs = functs0 } = x_3887 in
    830830  h_mk_uns_params u_pars0 functs0
    831831
     
    833833    (unserialized_params -> get_pseudo_reg_functs -> 'a1) -> uns_params ->
    834834    'a1 **)
    835 let rec uns_params_rect_Type1 h_mk_uns_params x_360 =
    836   let { u_pars = u_pars0; functs = functs0 } = x_360 in
     835let rec uns_params_rect_Type1 h_mk_uns_params x_3889 =
     836  let { u_pars = u_pars0; functs = functs0 } = x_3889 in
    837837  h_mk_uns_params u_pars0 functs0
    838838
     
    840840    (unserialized_params -> get_pseudo_reg_functs -> 'a1) -> uns_params ->
    841841    'a1 **)
    842 let rec uns_params_rect_Type0 h_mk_uns_params x_362 =
    843   let { u_pars = u_pars0; functs = functs0 } = x_362 in
     842let rec uns_params_rect_Type0 h_mk_uns_params x_3891 =
     843  let { u_pars = u_pars0; functs = functs0 } = x_3891 in
    844844  h_mk_uns_params u_pars0 functs0
    845845
     
    911911    'a1) -> (__ -> 'a1) -> joint_seq -> 'a1 **)
    912912let rec joint_seq_rect_Type4 p globals h_COMMENT h_MOVE h_POP h_PUSH h_ADDRESS h_OPACCS h_OP1 h_OP2 h_CLEAR_CARRY h_SET_CARRY h_LOAD h_STORE h_extension_seq = function
    913 | COMMENT x_417 -> h_COMMENT x_417
    914 | MOVE x_418 -> h_MOVE x_418
    915 | POP x_419 -> h_POP x_419
    916 | PUSH x_420 -> h_PUSH x_420
    917 | ADDRESS (i, x_422, x_421) -> h_ADDRESS i __ x_422 x_421
    918 | OPACCS (x_428, x_427, x_426, x_425, x_424) ->
    919   h_OPACCS x_428 x_427 x_426 x_425 x_424
    920 | OP1 (x_431, x_430, x_429) -> h_OP1 x_431 x_430 x_429
    921 | OP2 (x_435, x_434, x_433, x_432) -> h_OP2 x_435 x_434 x_433 x_432
     913| COMMENT x_3946 -> h_COMMENT x_3946
     914| MOVE x_3947 -> h_MOVE x_3947
     915| POP x_3948 -> h_POP x_3948
     916| PUSH x_3949 -> h_PUSH x_3949
     917| ADDRESS (i, x_3951, x_3950) -> h_ADDRESS i __ x_3951 x_3950
     918| OPACCS (x_3957, x_3956, x_3955, x_3954, x_3953) ->
     919  h_OPACCS x_3957 x_3956 x_3955 x_3954 x_3953
     920| OP1 (x_3960, x_3959, x_3958) -> h_OP1 x_3960 x_3959 x_3958
     921| OP2 (x_3964, x_3963, x_3962, x_3961) -> h_OP2 x_3964 x_3963 x_3962 x_3961
    922922| CLEAR_CARRY -> h_CLEAR_CARRY
    923923| SET_CARRY -> h_SET_CARRY
    924 | LOAD (x_438, x_437, x_436) -> h_LOAD x_438 x_437 x_436
    925 | STORE (x_441, x_440, x_439) -> h_STORE x_441 x_440 x_439
    926 | Extension_seq x_442 -> h_extension_seq x_442
     924| LOAD (x_3967, x_3966, x_3965) -> h_LOAD x_3967 x_3966 x_3965
     925| STORE (x_3970, x_3969, x_3968) -> h_STORE x_3970 x_3969 x_3968
     926| Extension_seq x_3971 -> h_extension_seq x_3971
    927927
    928928(** val joint_seq_rect_Type5 :
     
    934934    'a1) -> (__ -> 'a1) -> joint_seq -> 'a1 **)
    935935let rec joint_seq_rect_Type5 p globals h_COMMENT h_MOVE h_POP h_PUSH h_ADDRESS h_OPACCS h_OP1 h_OP2 h_CLEAR_CARRY h_SET_CARRY h_LOAD h_STORE h_extension_seq = function
    936 | COMMENT x_457 -> h_COMMENT x_457
    937 | MOVE x_458 -> h_MOVE x_458
    938 | POP x_459 -> h_POP x_459
    939 | PUSH x_460 -> h_PUSH x_460
    940 | ADDRESS (i, x_462, x_461) -> h_ADDRESS i __ x_462 x_461
    941 | OPACCS (x_468, x_467, x_466, x_465, x_464) ->
    942   h_OPACCS x_468 x_467 x_466 x_465 x_464
    943 | OP1 (x_471, x_470, x_469) -> h_OP1 x_471 x_470 x_469
    944 | OP2 (x_475, x_474, x_473, x_472) -> h_OP2 x_475 x_474 x_473 x_472
     936| COMMENT x_3986 -> h_COMMENT x_3986
     937| MOVE x_3987 -> h_MOVE x_3987
     938| POP x_3988 -> h_POP x_3988
     939| PUSH x_3989 -> h_PUSH x_3989
     940| ADDRESS (i, x_3991, x_3990) -> h_ADDRESS i __ x_3991 x_3990
     941| OPACCS (x_3997, x_3996, x_3995, x_3994, x_3993) ->
     942  h_OPACCS x_3997 x_3996 x_3995 x_3994 x_3993
     943| OP1 (x_4000, x_3999, x_3998) -> h_OP1 x_4000 x_3999 x_3998
     944| OP2 (x_4004, x_4003, x_4002, x_4001) -> h_OP2 x_4004 x_4003 x_4002 x_4001
    945945| CLEAR_CARRY -> h_CLEAR_CARRY
    946946| SET_CARRY -> h_SET_CARRY
    947 | LOAD (x_478, x_477, x_476) -> h_LOAD x_478 x_477 x_476
    948 | STORE (x_481, x_480, x_479) -> h_STORE x_481 x_480 x_479
    949 | Extension_seq x_482 -> h_extension_seq x_482
     947| LOAD (x_4007, x_4006, x_4005) -> h_LOAD x_4007 x_4006 x_4005
     948| STORE (x_4010, x_4009, x_4008) -> h_STORE x_4010 x_4009 x_4008
     949| Extension_seq x_4011 -> h_extension_seq x_4011
    950950
    951951(** val joint_seq_rect_Type3 :
     
    957957    'a1) -> (__ -> 'a1) -> joint_seq -> 'a1 **)
    958958let rec joint_seq_rect_Type3 p globals h_COMMENT h_MOVE h_POP h_PUSH h_ADDRESS h_OPACCS h_OP1 h_OP2 h_CLEAR_CARRY h_SET_CARRY h_LOAD h_STORE h_extension_seq = function
    959 | COMMENT x_497 -> h_COMMENT x_497
    960 | MOVE x_498 -> h_MOVE x_498
    961 | POP x_499 -> h_POP x_499
    962 | PUSH x_500 -> h_PUSH x_500
    963 | ADDRESS (i, x_502, x_501) -> h_ADDRESS i __ x_502 x_501
    964 | OPACCS (x_508, x_507, x_506, x_505, x_504) ->
    965   h_OPACCS x_508 x_507 x_506 x_505 x_504
    966 | OP1 (x_511, x_510, x_509) -> h_OP1 x_511 x_510 x_509
    967 | OP2 (x_515, x_514, x_513, x_512) -> h_OP2 x_515 x_514 x_513 x_512
     959| COMMENT x_4026 -> h_COMMENT x_4026
     960| MOVE x_4027 -> h_MOVE x_4027
     961| POP x_4028 -> h_POP x_4028
     962| PUSH x_4029 -> h_PUSH x_4029
     963| ADDRESS (i, x_4031, x_4030) -> h_ADDRESS i __ x_4031 x_4030
     964| OPACCS (x_4037, x_4036, x_4035, x_4034, x_4033) ->
     965  h_OPACCS x_4037 x_4036 x_4035 x_4034 x_4033
     966| OP1 (x_4040, x_4039, x_4038) -> h_OP1 x_4040 x_4039 x_4038
     967| OP2 (x_4044, x_4043, x_4042, x_4041) -> h_OP2 x_4044 x_4043 x_4042 x_4041
    968968| CLEAR_CARRY -> h_CLEAR_CARRY
    969969| SET_CARRY -> h_SET_CARRY
    970 | LOAD (x_518, x_517, x_516) -> h_LOAD x_518 x_517 x_516
    971 | STORE (x_521, x_520, x_519) -> h_STORE x_521 x_520 x_519
    972 | Extension_seq x_522 -> h_extension_seq x_522
     970| LOAD (x_4047, x_4046, x_4045) -> h_LOAD x_4047 x_4046 x_4045
     971| STORE (x_4050, x_4049, x_4048) -> h_STORE x_4050 x_4049 x_4048
     972| Extension_seq x_4051 -> h_extension_seq x_4051
    973973
    974974(** val joint_seq_rect_Type2 :
     
    980980    'a1) -> (__ -> 'a1) -> joint_seq -> 'a1 **)
    981981let rec joint_seq_rect_Type2 p globals h_COMMENT h_MOVE h_POP h_PUSH h_ADDRESS h_OPACCS h_OP1 h_OP2 h_CLEAR_CARRY h_SET_CARRY h_LOAD h_STORE h_extension_seq = function
    982 | COMMENT x_537 -> h_COMMENT x_537
    983 | MOVE x_538 -> h_MOVE x_538
    984 | POP x_539 -> h_POP x_539
    985 | PUSH x_540 -> h_PUSH x_540
    986 | ADDRESS (i, x_542, x_541) -> h_ADDRESS i __ x_542 x_541
    987 | OPACCS (x_548, x_547, x_546, x_545, x_544) ->
    988   h_OPACCS x_548 x_547 x_546 x_545 x_544
    989 | OP1 (x_551, x_550, x_549) -> h_OP1 x_551 x_550 x_549
    990 | OP2 (x_555, x_554, x_553, x_552) -> h_OP2 x_555 x_554 x_553 x_552
     982| COMMENT x_4066 -> h_COMMENT x_4066
     983| MOVE x_4067 -> h_MOVE x_4067
     984| POP x_4068 -> h_POP x_4068
     985| PUSH x_4069 -> h_PUSH x_4069
     986| ADDRESS (i, x_4071, x_4070) -> h_ADDRESS i __ x_4071 x_4070
     987| OPACCS (x_4077, x_4076, x_4075, x_4074, x_4073) ->
     988  h_OPACCS x_4077 x_4076 x_4075 x_4074 x_4073
     989| OP1 (x_4080, x_4079, x_4078) -> h_OP1 x_4080 x_4079 x_4078
     990| OP2 (x_4084, x_4083, x_4082, x_4081) -> h_OP2 x_4084 x_4083 x_4082 x_4081
    991991| CLEAR_CARRY -> h_CLEAR_CARRY
    992992| SET_CARRY -> h_SET_CARRY
    993 | LOAD (x_558, x_557, x_556) -> h_LOAD x_558 x_557 x_556
    994 | STORE (x_561, x_560, x_559) -> h_STORE x_561 x_560 x_559
    995 | Extension_seq x_562 -> h_extension_seq x_562
     993| LOAD (x_4087, x_4086, x_4085) -> h_LOAD x_4087 x_4086 x_4085
     994| STORE (x_4090, x_4089, x_4088) -> h_STORE x_4090 x_4089 x_4088
     995| Extension_seq x_4091 -> h_extension_seq x_4091
    996996
    997997(** val joint_seq_rect_Type1 :
     
    10031003    'a1) -> (__ -> 'a1) -> joint_seq -> 'a1 **)
    10041004let rec joint_seq_rect_Type1 p globals h_COMMENT h_MOVE h_POP h_PUSH h_ADDRESS h_OPACCS h_OP1 h_OP2 h_CLEAR_CARRY h_SET_CARRY h_LOAD h_STORE h_extension_seq = function
    1005 | COMMENT x_577 -> h_COMMENT x_577
    1006 | MOVE x_578 -> h_MOVE x_578
    1007 | POP x_579 -> h_POP x_579
    1008 | PUSH x_580 -> h_PUSH x_580
    1009 | ADDRESS (i, x_582, x_581) -> h_ADDRESS i __ x_582 x_581
    1010 | OPACCS (x_588, x_587, x_586, x_585, x_584) ->
    1011   h_OPACCS x_588 x_587 x_586 x_585 x_584
    1012 | OP1 (x_591, x_590, x_589) -> h_OP1 x_591 x_590 x_589
    1013 | OP2 (x_595, x_594, x_593, x_592) -> h_OP2 x_595 x_594 x_593 x_592
     1005| COMMENT x_4106 -> h_COMMENT x_4106
     1006| MOVE x_4107 -> h_MOVE x_4107
     1007| POP x_4108 -> h_POP x_4108
     1008| PUSH x_4109 -> h_PUSH x_4109
     1009| ADDRESS (i, x_4111, x_4110) -> h_ADDRESS i __ x_4111 x_4110
     1010| OPACCS (x_4117, x_4116, x_4115, x_4114, x_4113) ->
     1011  h_OPACCS x_4117 x_4116 x_4115 x_4114 x_4113
     1012| OP1 (x_4120, x_4119, x_4118) -> h_OP1 x_4120 x_4119 x_4118
     1013| OP2 (x_4124, x_4123, x_4122, x_4121) -> h_OP2 x_4124 x_4123 x_4122 x_4121
    10141014| CLEAR_CARRY -> h_CLEAR_CARRY
    10151015| SET_CARRY -> h_SET_CARRY
    1016 | LOAD (x_598, x_597, x_596) -> h_LOAD x_598 x_597 x_596
    1017 | STORE (x_601, x_600, x_599) -> h_STORE x_601 x_600 x_599
    1018 | Extension_seq x_602 -> h_extension_seq x_602
     1016| LOAD (x_4127, x_4126, x_4125) -> h_LOAD x_4127 x_4126 x_4125
     1017| STORE (x_4130, x_4129, x_4128) -> h_STORE x_4130 x_4129 x_4128
     1018| Extension_seq x_4131 -> h_extension_seq x_4131
    10191019
    10201020(** val joint_seq_rect_Type0 :
     
    10261026    'a1) -> (__ -> 'a1) -> joint_seq -> 'a1 **)
    10271027let rec joint_seq_rect_Type0 p globals h_COMMENT h_MOVE h_POP h_PUSH h_ADDRESS h_OPACCS h_OP1 h_OP2 h_CLEAR_CARRY h_SET_CARRY h_LOAD h_STORE h_extension_seq = function
    1028 | COMMENT x_617 -> h_COMMENT x_617
    1029 | MOVE x_618 -> h_MOVE x_618
    1030 | POP x_619 -> h_POP x_619
    1031 | PUSH x_620 -> h_PUSH x_620
    1032 | ADDRESS (i, x_622, x_621) -> h_ADDRESS i __ x_622 x_621
    1033 | OPACCS (x_628, x_627, x_626, x_625, x_624) ->
    1034   h_OPACCS x_628 x_627 x_626 x_625 x_624
    1035 | OP1 (x_631, x_630, x_629) -> h_OP1 x_631 x_630 x_629
    1036 | OP2 (x_635, x_634, x_633, x_632) -> h_OP2 x_635 x_634 x_633 x_632
     1028| COMMENT x_4146 -> h_COMMENT x_4146
     1029| MOVE x_4147 -> h_MOVE x_4147
     1030| POP x_4148 -> h_POP x_4148
     1031| PUSH x_4149 -> h_PUSH x_4149
     1032| ADDRESS (i, x_4151, x_4150) -> h_ADDRESS i __ x_4151 x_4150
     1033| OPACCS (x_4157, x_4156, x_4155, x_4154, x_4153) ->
     1034  h_OPACCS x_4157 x_4156 x_4155 x_4154 x_4153
     1035| OP1 (x_4160, x_4159, x_4158) -> h_OP1 x_4160 x_4159 x_4158
     1036| OP2 (x_4164, x_4163, x_4162, x_4161) -> h_OP2 x_4164 x_4163 x_4162 x_4161
    10371037| CLEAR_CARRY -> h_CLEAR_CARRY
    10381038| SET_CARRY -> h_SET_CARRY
    1039 | LOAD (x_638, x_637, x_636) -> h_LOAD x_638 x_637 x_636
    1040 | STORE (x_641, x_640, x_639) -> h_STORE x_641 x_640 x_639
    1041 | Extension_seq x_642 -> h_extension_seq x_642
     1039| LOAD (x_4167, x_4166, x_4165) -> h_LOAD x_4167 x_4166 x_4165
     1040| STORE (x_4170, x_4169, x_4168) -> h_STORE x_4170 x_4169 x_4168
     1041| Extension_seq x_4171 -> h_extension_seq x_4171
    10421042
    10431043(** val joint_seq_inv_rect_Type4 :
     
    12301230    -> (__ -> Graphs.label -> 'a1) -> (joint_seq -> 'a1) -> joint_step -> 'a1 **)
    12311231let rec joint_step_rect_Type4 p globals h_COST_LABEL h_CALL h_COND h_step_seq = function
    1232 | COST_LABEL x_909 -> h_COST_LABEL x_909
    1233 | CALL (x_912, x_911, x_910) -> h_CALL x_912 x_911 x_910
    1234 | COND (x_914, x_913) -> h_COND x_914 x_913
    1235 | Step_seq x_915 -> h_step_seq x_915
     1232| COST_LABEL x_4438 -> h_COST_LABEL x_4438
     1233| CALL (x_4441, x_4440, x_4439) -> h_CALL x_4441 x_4440 x_4439
     1234| COND (x_4443, x_4442) -> h_COND x_4443 x_4442
     1235| Step_seq x_4444 -> h_step_seq x_4444
    12361236
    12371237(** val joint_step_rect_Type5 :
     
    12401240    -> (__ -> Graphs.label -> 'a1) -> (joint_seq -> 'a1) -> joint_step -> 'a1 **)
    12411241let rec joint_step_rect_Type5 p globals h_COST_LABEL h_CALL h_COND h_step_seq = function
    1242 | COST_LABEL x_921 -> h_COST_LABEL x_921
    1243 | CALL (x_924, x_923, x_922) -> h_CALL x_924 x_923 x_922
    1244 | COND (x_926, x_925) -> h_COND x_926 x_925
    1245 | Step_seq x_927 -> h_step_seq x_927
     1242| COST_LABEL x_4450 -> h_COST_LABEL x_4450
     1243| CALL (x_4453, x_4452, x_4451) -> h_CALL x_4453 x_4452 x_4451
     1244| COND (x_4455, x_4454) -> h_COND x_4455 x_4454
     1245| Step_seq x_4456 -> h_step_seq x_4456
    12461246
    12471247(** val joint_step_rect_Type3 :
     
    12501250    -> (__ -> Graphs.label -> 'a1) -> (joint_seq -> 'a1) -> joint_step -> 'a1 **)
    12511251let rec joint_step_rect_Type3 p globals h_COST_LABEL h_CALL h_COND h_step_seq = function
    1252 | COST_LABEL x_933 -> h_COST_LABEL x_933
    1253 | CALL (x_936, x_935, x_934) -> h_CALL x_936 x_935 x_934
    1254 | COND (x_938, x_937) -> h_COND x_938 x_937
    1255 | Step_seq x_939 -> h_step_seq x_939
     1252| COST_LABEL x_4462 -> h_COST_LABEL x_4462
     1253| CALL (x_4465, x_4464, x_4463) -> h_CALL x_4465 x_4464 x_4463
     1254| COND (x_4467, x_4466) -> h_COND x_4467 x_4466
     1255| Step_seq x_4468 -> h_step_seq x_4468
    12561256
    12571257(** val joint_step_rect_Type2 :
     
    12601260    -> (__ -> Graphs.label -> 'a1) -> (joint_seq -> 'a1) -> joint_step -> 'a1 **)
    12611261let rec joint_step_rect_Type2 p globals h_COST_LABEL h_CALL h_COND h_step_seq = function
    1262 | COST_LABEL x_945 -> h_COST_LABEL x_945
    1263 | CALL (x_948, x_947, x_946) -> h_CALL x_948 x_947 x_946
    1264 | COND (x_950, x_949) -> h_COND x_950 x_949
    1265 | Step_seq x_951 -> h_step_seq x_951
     1262| COST_LABEL x_4474 -> h_COST_LABEL x_4474
     1263| CALL (x_4477, x_4476, x_4475) -> h_CALL x_4477 x_4476 x_4475
     1264| COND (x_4479, x_4478) -> h_COND x_4479 x_4478
     1265| Step_seq x_4480 -> h_step_seq x_4480
    12661266
    12671267(** val joint_step_rect_Type1 :
     
    12701270    -> (__ -> Graphs.label -> 'a1) -> (joint_seq -> 'a1) -> joint_step -> 'a1 **)
    12711271let rec joint_step_rect_Type1 p globals h_COST_LABEL h_CALL h_COND h_step_seq = function
    1272 | COST_LABEL x_957 -> h_COST_LABEL x_957
    1273 | CALL (x_960, x_959, x_958) -> h_CALL x_960 x_959 x_958
    1274 | COND (x_962, x_961) -> h_COND x_962 x_961
    1275 | Step_seq x_963 -> h_step_seq x_963
     1272| COST_LABEL x_4486 -> h_COST_LABEL x_4486
     1273| CALL (x_4489, x_4488, x_4487) -> h_CALL x_4489 x_4488 x_4487
     1274| COND (x_4491, x_4490) -> h_COND x_4491 x_4490
     1275| Step_seq x_4492 -> h_step_seq x_4492
    12761276
    12771277(** val joint_step_rect_Type0 :
     
    12801280    -> (__ -> Graphs.label -> 'a1) -> (joint_seq -> 'a1) -> joint_step -> 'a1 **)
    12811281let rec joint_step_rect_Type0 p globals h_COST_LABEL h_CALL h_COND h_step_seq = function
    1282 | COST_LABEL x_969 -> h_COST_LABEL x_969
    1283 | CALL (x_972, x_971, x_970) -> h_CALL x_972 x_971 x_970
    1284 | COND (x_974, x_973) -> h_COND x_974 x_973
    1285 | Step_seq x_975 -> h_step_seq x_975
     1282| COST_LABEL x_4498 -> h_COST_LABEL x_4498
     1283| CALL (x_4501, x_4500, x_4499) -> h_CALL x_4501 x_4500 x_4499
     1284| COND (x_4503, x_4502) -> h_COND x_4503 x_4502
     1285| Step_seq x_4504 -> h_step_seq x_4504
    12861286
    12871287(** val joint_step_inv_rect_Type4 :
     
    14581458    (uns_params -> __ -> (__ -> Graphs.label Types.option) -> Bool.bool ->
    14591459    'a1) -> stmt_params -> 'a1 **)
    1460 let rec stmt_params_rect_Type4 h_mk_stmt_params x_1054 =
     1460let rec stmt_params_rect_Type4 h_mk_stmt_params x_4583 =
    14611461  let { uns_pars = uns_pars0; succ_label = succ_label0; has_fcond =
    1462     has_fcond0 } = x_1054
     1462    has_fcond0 } = x_4583
    14631463  in
    14641464  h_mk_stmt_params uns_pars0 __ succ_label0 has_fcond0
     
    14671467    (uns_params -> __ -> (__ -> Graphs.label Types.option) -> Bool.bool ->
    14681468    'a1) -> stmt_params -> 'a1 **)
    1469 let rec stmt_params_rect_Type5 h_mk_stmt_params x_1056 =
     1469let rec stmt_params_rect_Type5 h_mk_stmt_params x_4585 =
    14701470  let { uns_pars = uns_pars0; succ_label = succ_label0; has_fcond =
    1471     has_fcond0 } = x_1056
     1471    has_fcond0 } = x_4585
    14721472  in
    14731473  h_mk_stmt_params uns_pars0 __ succ_label0 has_fcond0
     
    14761476    (uns_params -> __ -> (__ -> Graphs.label Types.option) -> Bool.bool ->
    14771477    'a1) -> stmt_params -> 'a1 **)
    1478 let rec stmt_params_rect_Type3 h_mk_stmt_params x_1058 =
     1478let rec stmt_params_rect_Type3 h_mk_stmt_params x_4587 =
    14791479  let { uns_pars = uns_pars0; succ_label = succ_label0; has_fcond =
    1480     has_fcond0 } = x_1058
     1480    has_fcond0 } = x_4587
    14811481  in
    14821482  h_mk_stmt_params uns_pars0 __ succ_label0 has_fcond0
     
    14851485    (uns_params -> __ -> (__ -> Graphs.label Types.option) -> Bool.bool ->
    14861486    'a1) -> stmt_params -> 'a1 **)
    1487 let rec stmt_params_rect_Type2 h_mk_stmt_params x_1060 =
     1487let rec stmt_params_rect_Type2 h_mk_stmt_params x_4589 =
    14881488  let { uns_pars = uns_pars0; succ_label = succ_label0; has_fcond =
    1489     has_fcond0 } = x_1060
     1489    has_fcond0 } = x_4589
    14901490  in
    14911491  h_mk_stmt_params uns_pars0 __ succ_label0 has_fcond0
     
    14941494    (uns_params -> __ -> (__ -> Graphs.label Types.option) -> Bool.bool ->
    14951495    'a1) -> stmt_params -> 'a1 **)
    1496 let rec stmt_params_rect_Type1 h_mk_stmt_params x_1062 =
     1496let rec stmt_params_rect_Type1 h_mk_stmt_params x_4591 =
    14971497  let { uns_pars = uns_pars0; succ_label = succ_label0; has_fcond =
    1498     has_fcond0 } = x_1062
     1498    has_fcond0 } = x_4591
    14991499  in
    15001500  h_mk_stmt_params uns_pars0 __ succ_label0 has_fcond0
     
    15031503    (uns_params -> __ -> (__ -> Graphs.label Types.option) -> Bool.bool ->
    15041504    'a1) -> stmt_params -> 'a1 **)
    1505 let rec stmt_params_rect_Type0 h_mk_stmt_params x_1064 =
     1505let rec stmt_params_rect_Type0 h_mk_stmt_params x_4593 =
    15061506  let { uns_pars = uns_pars0; succ_label = succ_label0; has_fcond =
    1507     has_fcond0 } = x_1064
     1507    has_fcond0 } = x_4593
    15081508  in
    15091509  h_mk_stmt_params uns_pars0 __ succ_label0 has_fcond0
     
    15721572    (__, __) Types.prod) Types.sum -> __ -> 'a1) -> joint_fin_step -> 'a1 **)
    15731573let rec joint_fin_step_rect_Type4 p h_GOTO h_RETURN h_TAILCALL = function
    1574 | GOTO x_1088 -> h_GOTO x_1088
     1574| GOTO x_4617 -> h_GOTO x_4617
    15751575| RETURN -> h_RETURN
    1576 | TAILCALL (x_1090, x_1089) -> h_TAILCALL __ x_1090 x_1089
     1576| TAILCALL (x_4619, x_4618) -> h_TAILCALL __ x_4619 x_4618
    15771577
    15781578(** val joint_fin_step_rect_Type5 :
     
    15801580    (__, __) Types.prod) Types.sum -> __ -> 'a1) -> joint_fin_step -> 'a1 **)
    15811581let rec joint_fin_step_rect_Type5 p h_GOTO h_RETURN h_TAILCALL = function
    1582 | GOTO x_1096 -> h_GOTO x_1096
     1582| GOTO x_4625 -> h_GOTO x_4625
    15831583| RETURN -> h_RETURN
    1584 | TAILCALL (x_1098, x_1097) -> h_TAILCALL __ x_1098 x_1097
     1584| TAILCALL (x_4627, x_4626) -> h_TAILCALL __ x_4627 x_4626
    15851585
    15861586(** val joint_fin_step_rect_Type3 :
     
    15881588    (__, __) Types.prod) Types.sum -> __ -> 'a1) -> joint_fin_step -> 'a1 **)
    15891589let rec joint_fin_step_rect_Type3 p h_GOTO h_RETURN h_TAILCALL = function
    1590 | GOTO x_1104 -> h_GOTO x_1104
     1590| GOTO x_4633 -> h_GOTO x_4633
    15911591| RETURN -> h_RETURN
    1592 | TAILCALL (x_1106, x_1105) -> h_TAILCALL __ x_1106 x_1105
     1592| TAILCALL (x_4635, x_4634) -> h_TAILCALL __ x_4635 x_4634
    15931593
    15941594(** val joint_fin_step_rect_Type2 :
     
    15961596    (__, __) Types.prod) Types.sum -> __ -> 'a1) -> joint_fin_step -> 'a1 **)
    15971597let rec joint_fin_step_rect_Type2 p h_GOTO h_RETURN h_TAILCALL = function
    1598 | GOTO x_1112 -> h_GOTO x_1112
     1598| GOTO x_4641 -> h_GOTO x_4641
    15991599| RETURN -> h_RETURN
    1600 | TAILCALL (x_1114, x_1113) -> h_TAILCALL __ x_1114 x_1113
     1600| TAILCALL (x_4643, x_4642) -> h_TAILCALL __ x_4643 x_4642
    16011601
    16021602(** val joint_fin_step_rect_Type1 :
     
    16041604    (__, __) Types.prod) Types.sum -> __ -> 'a1) -> joint_fin_step -> 'a1 **)
    16051605let rec joint_fin_step_rect_Type1 p h_GOTO h_RETURN h_TAILCALL = function
    1606 | GOTO x_1120 -> h_GOTO x_1120
     1606| GOTO x_4649 -> h_GOTO x_4649
    16071607| RETURN -> h_RETURN
    1608 | TAILCALL (x_1122, x_1121) -> h_TAILCALL __ x_1122 x_1121
     1608| TAILCALL (x_4651, x_4650) -> h_TAILCALL __ x_4651 x_4650
    16091609
    16101610(** val joint_fin_step_rect_Type0 :
     
    16121612    (__, __) Types.prod) Types.sum -> __ -> 'a1) -> joint_fin_step -> 'a1 **)
    16131613let rec joint_fin_step_rect_Type0 p h_GOTO h_RETURN h_TAILCALL = function
    1614 | GOTO x_1128 -> h_GOTO x_1128
     1614| GOTO x_4657 -> h_GOTO x_4657
    16151615| RETURN -> h_RETURN
    1616 | TAILCALL (x_1130, x_1129) -> h_TAILCALL __ x_1130 x_1129
     1616| TAILCALL (x_4659, x_4658) -> h_TAILCALL __ x_4659 x_4658
    16171617
    16181618(** val joint_fin_step_inv_rect_Type4 :
     
    16861686    'a1) -> joint_statement -> 'a1 **)
    16871687let rec joint_statement_rect_Type4 p globals h_sequential h_final h_FCOND = function
    1688 | Sequential (x_1196, x_1195) -> h_sequential x_1196 x_1195
    1689 | Final x_1197 -> h_final x_1197
    1690 | FCOND (x_1200, x_1199, x_1198) -> h_FCOND __ x_1200 x_1199 x_1198
     1688| Sequential (x_4725, x_4724) -> h_sequential x_4725 x_4724
     1689| Final x_4726 -> h_final x_4726
     1690| FCOND (x_4729, x_4728, x_4727) -> h_FCOND __ x_4729 x_4728 x_4727
    16911691
    16921692(** val joint_statement_rect_Type5 :
     
    16951695    'a1) -> joint_statement -> 'a1 **)
    16961696let rec joint_statement_rect_Type5 p globals h_sequential h_final h_FCOND = function
    1697 | Sequential (x_1207, x_1206) -> h_sequential x_1207 x_1206
    1698 | Final x_1208 -> h_final x_1208
    1699 | FCOND (x_1211, x_1210, x_1209) -> h_FCOND __ x_1211 x_1210 x_1209
     1697| Sequential (x_4736, x_4735) -> h_sequential x_4736 x_4735
     1698| Final x_4737 -> h_final x_4737
     1699| FCOND (x_4740, x_4739, x_4738) -> h_FCOND __ x_4740 x_4739 x_4738
    17001700
    17011701(** val joint_statement_rect_Type3 :
     
    17041704    'a1) -> joint_statement -> 'a1 **)
    17051705let rec joint_statement_rect_Type3 p globals h_sequential h_final h_FCOND = function
    1706 | Sequential (x_1218, x_1217) -> h_sequential x_1218 x_1217
    1707 | Final x_1219 -> h_final x_1219
    1708 | FCOND (x_1222, x_1221, x_1220) -> h_FCOND __ x_1222 x_1221 x_1220
     1706| Sequential (x_4747, x_4746) -> h_sequential x_4747 x_4746
     1707| Final x_4748 -> h_final x_4748
     1708| FCOND (x_4751, x_4750, x_4749) -> h_FCOND __ x_4751 x_4750 x_4749
    17091709
    17101710(** val joint_statement_rect_Type2 :
     
    17131713    'a1) -> joint_statement -> 'a1 **)
    17141714let rec joint_statement_rect_Type2 p globals h_sequential h_final h_FCOND = function
    1715 | Sequential (x_1229, x_1228) -> h_sequential x_1229 x_1228
    1716 | Final x_1230 -> h_final x_1230
    1717 | FCOND (x_1233, x_1232, x_1231) -> h_FCOND __ x_1233 x_1232 x_1231
     1715| Sequential (x_4758, x_4757) -> h_sequential x_4758 x_4757
     1716| Final x_4759 -> h_final x_4759
     1717| FCOND (x_4762, x_4761, x_4760) -> h_FCOND __ x_4762 x_4761 x_4760
    17181718
    17191719(** val joint_statement_rect_Type1 :
     
    17221722    'a1) -> joint_statement -> 'a1 **)
    17231723let rec joint_statement_rect_Type1 p globals h_sequential h_final h_FCOND = function
    1724 | Sequential (x_1240, x_1239) -> h_sequential x_1240 x_1239
    1725 | Final x_1241 -> h_final x_1241
    1726 | FCOND (x_1244, x_1243, x_1242) -> h_FCOND __ x_1244 x_1243 x_1242
     1724| Sequential (x_4769, x_4768) -> h_sequential x_4769 x_4768
     1725| Final x_4770 -> h_final x_4770
     1726| FCOND (x_4773, x_4772, x_4771) -> h_FCOND __ x_4773 x_4772 x_4771
    17271727
    17281728(** val joint_statement_rect_Type0 :
     
    17311731    'a1) -> joint_statement -> 'a1 **)
    17321732let rec joint_statement_rect_Type0 p globals h_sequential h_final h_FCOND = function
    1733 | Sequential (x_1251, x_1250) -> h_sequential x_1251 x_1250
    1734 | Final x_1252 -> h_final x_1252
    1735 | FCOND (x_1255, x_1254, x_1253) -> h_FCOND __ x_1255 x_1254 x_1253
     1733| Sequential (x_4780, x_4779) -> h_sequential x_4780 x_4779
     1734| Final x_4781 -> h_final x_4781
     1735| FCOND (x_4784, x_4783, x_4782) -> h_FCOND __ x_4784 x_4783 x_4782
    17361736
    17371737(** val joint_statement_inv_rect_Type4 :
     
    18321832    Graphs.label -> __ Types.option) -> (__ -> __ -> __) -> 'a1) -> params ->
    18331833    'a1 **)
    1834 let rec params_rect_Type4 h_mk_params x_1328 =
     1834let rec params_rect_Type4 h_mk_params x_4857 =
    18351835  let { stmt_pars = stmt_pars0; stmt_at = stmt_at0; point_of_label =
    1836     point_of_label0; point_of_succ = point_of_succ0 } = x_1328
     1836    point_of_label0; point_of_succ = point_of_succ0 } = x_4857
    18371837  in
    18381838  h_mk_params stmt_pars0 __ __ stmt_at0 point_of_label0 point_of_succ0
     
    18431843    Graphs.label -> __ Types.option) -> (__ -> __ -> __) -> 'a1) -> params ->
    18441844    'a1 **)
    1845 let rec params_rect_Type5 h_mk_params x_1330 =
     1845let rec params_rect_Type5 h_mk_params x_4859 =
    18461846  let { stmt_pars = stmt_pars0; stmt_at = stmt_at0; point_of_label =
    1847     point_of_label0; point_of_succ = point_of_succ0 } = x_1330
     1847    point_of_label0; point_of_succ = point_of_succ0 } = x_4859
    18481848  in
    18491849  h_mk_params stmt_pars0 __ __ stmt_at0 point_of_label0 point_of_succ0
     
    18541854    Graphs.label -> __ Types.option) -> (__ -> __ -> __) -> 'a1) -> params ->
    18551855    'a1 **)
    1856 let rec params_rect_Type3 h_mk_params x_1332 =
     1856let rec params_rect_Type3 h_mk_params x_4861 =
    18571857  let { stmt_pars = stmt_pars0; stmt_at = stmt_at0; point_of_label =
    1858     point_of_label0; point_of_succ = point_of_succ0 } = x_1332
     1858    point_of_label0; point_of_succ = point_of_succ0 } = x_4861
    18591859  in
    18601860  h_mk_params stmt_pars0 __ __ stmt_at0 point_of_label0 point_of_succ0
     
    18651865    Graphs.label -> __ Types.option) -> (__ -> __ -> __) -> 'a1) -> params ->
    18661866    'a1 **)
    1867 let rec params_rect_Type2 h_mk_params x_1334 =
     1867let rec params_rect_Type2 h_mk_params x_4863 =
    18681868  let { stmt_pars = stmt_pars0; stmt_at = stmt_at0; point_of_label =
    1869     point_of_label0; point_of_succ = point_of_succ0 } = x_1334
     1869    point_of_label0; point_of_succ = point_of_succ0 } = x_4863
    18701870  in
    18711871  h_mk_params stmt_pars0 __ __ stmt_at0 point_of_label0 point_of_succ0
     
    18761876    Graphs.label -> __ Types.option) -> (__ -> __ -> __) -> 'a1) -> params ->
    18771877    'a1 **)
    1878 let rec params_rect_Type1 h_mk_params x_1336 =
     1878let rec params_rect_Type1 h_mk_params x_4865 =
    18791879  let { stmt_pars = stmt_pars0; stmt_at = stmt_at0; point_of_label =
    1880     point_of_label0; point_of_succ = point_of_succ0 } = x_1336
     1880    point_of_label0; point_of_succ = point_of_succ0 } = x_4865
    18811881  in
    18821882  h_mk_params stmt_pars0 __ __ stmt_at0 point_of_label0 point_of_succ0
     
    18871887    Graphs.label -> __ Types.option) -> (__ -> __ -> __) -> 'a1) -> params ->
    18881888    'a1 **)
    1889 let rec params_rect_Type0 h_mk_params x_1338 =
     1889let rec params_rect_Type0 h_mk_params x_4867 =
    18901890  let { stmt_pars = stmt_pars0; stmt_at = stmt_at0; point_of_label =
    1891     point_of_label0; point_of_succ = point_of_succ0 } = x_1338
     1891    point_of_label0; point_of_succ = point_of_succ0 } = x_4867
    18921892  in
    18931893  h_mk_params stmt_pars0 __ __ stmt_at0 point_of_label0 point_of_succ0
     
    20242024
    20252025(** val lin_params_rect_Type4 : (uns_params -> 'a1) -> lin_params -> 'a1 **)
    2026 let rec lin_params_rect_Type4 h_mk_lin_params x_1361 =
    2027   let l_u_pars = x_1361 in h_mk_lin_params l_u_pars
     2026let rec lin_params_rect_Type4 h_mk_lin_params x_4890 =
     2027  let l_u_pars = x_4890 in h_mk_lin_params l_u_pars
    20282028
    20292029(** val lin_params_rect_Type5 : (uns_params -> 'a1) -> lin_params -> 'a1 **)
    2030 let rec lin_params_rect_Type5 h_mk_lin_params x_1363 =
    2031   let l_u_pars = x_1363 in h_mk_lin_params l_u_pars
     2030let rec lin_params_rect_Type5 h_mk_lin_params x_4892 =
     2031  let l_u_pars = x_4892 in h_mk_lin_params l_u_pars
    20322032
    20332033(** val lin_params_rect_Type3 : (uns_params -> 'a1) -> lin_params -> 'a1 **)
    2034 let rec lin_params_rect_Type3 h_mk_lin_params x_1365 =
    2035   let l_u_pars = x_1365 in h_mk_lin_params l_u_pars
     2034let rec lin_params_rect_Type3 h_mk_lin_params x_4894 =
     2035  let l_u_pars = x_4894 in h_mk_lin_params l_u_pars
    20362036
    20372037(** val lin_params_rect_Type2 : (uns_params -> 'a1) -> lin_params -> 'a1 **)
    2038 let rec lin_params_rect_Type2 h_mk_lin_params x_1367 =
    2039   let l_u_pars = x_1367 in h_mk_lin_params l_u_pars
     2038let rec lin_params_rect_Type2 h_mk_lin_params x_4896 =
     2039  let l_u_pars = x_4896 in h_mk_lin_params l_u_pars
    20402040
    20412041(** val lin_params_rect_Type1 : (uns_params -> 'a1) -> lin_params -> 'a1 **)
    2042 let rec lin_params_rect_Type1 h_mk_lin_params x_1369 =
    2043   let l_u_pars = x_1369 in h_mk_lin_params l_u_pars
     2042let rec lin_params_rect_Type1 h_mk_lin_params x_4898 =
     2043  let l_u_pars = x_4898 in h_mk_lin_params l_u_pars
    20442044
    20452045(** val lin_params_rect_Type0 : (uns_params -> 'a1) -> lin_params -> 'a1 **)
    2046 let rec lin_params_rect_Type0 h_mk_lin_params x_1371 =
    2047   let l_u_pars = x_1371 in h_mk_lin_params l_u_pars
     2046let rec lin_params_rect_Type0 h_mk_lin_params x_4900 =
     2047  let l_u_pars = x_4900 in h_mk_lin_params l_u_pars
    20482048
    20492049(** val l_u_pars : lin_params -> uns_params **)
     
    21192119(** val graph_params_rect_Type4 :
    21202120    (uns_params -> 'a1) -> graph_params -> 'a1 **)
    2121 let rec graph_params_rect_Type4 h_mk_graph_params x_1387 =
    2122   let g_u_pars = x_1387 in h_mk_graph_params g_u_pars
     2121let rec graph_params_rect_Type4 h_mk_graph_params x_4916 =
     2122  let g_u_pars = x_4916 in h_mk_graph_params g_u_pars
    21232123
    21242124(** val graph_params_rect_Type5 :
    21252125    (uns_params -> 'a1) -> graph_params -> 'a1 **)
    2126 let rec graph_params_rect_Type5 h_mk_graph_params x_1389 =
    2127   let g_u_pars = x_1389 in h_mk_graph_params g_u_pars
     2126let rec graph_params_rect_Type5 h_mk_graph_params x_4918 =
     2127  let g_u_pars = x_4918 in h_mk_graph_params g_u_pars
    21282128
    21292129(** val graph_params_rect_Type3 :
    21302130    (uns_params -> 'a1) -> graph_params -> 'a1 **)
    2131 let rec graph_params_rect_Type3 h_mk_graph_params x_1391 =
    2132   let g_u_pars = x_1391 in h_mk_graph_params g_u_pars
     2131let rec graph_params_rect_Type3 h_mk_graph_params x_4920 =
     2132  let g_u_pars = x_4920 in h_mk_graph_params g_u_pars
    21332133
    21342134(** val graph_params_rect_Type2 :
    21352135    (uns_params -> 'a1) -> graph_params -> 'a1 **)
    2136 let rec graph_params_rect_Type2 h_mk_graph_params x_1393 =
    2137   let g_u_pars = x_1393 in h_mk_graph_params g_u_pars
     2136let rec graph_params_rect_Type2 h_mk_graph_params x_4922 =
     2137  let g_u_pars = x_4922 in h_mk_graph_params g_u_pars
    21382138
    21392139(** val graph_params_rect_Type1 :
    21402140    (uns_params -> 'a1) -> graph_params -> 'a1 **)
    2141 let rec graph_params_rect_Type1 h_mk_graph_params x_1395 =
    2142   let g_u_pars = x_1395 in h_mk_graph_params g_u_pars
     2141let rec graph_params_rect_Type1 h_mk_graph_params x_4924 =
     2142  let g_u_pars = x_4924 in h_mk_graph_params g_u_pars
    21432143
    21442144(** val graph_params_rect_Type0 :
    21452145    (uns_params -> 'a1) -> graph_params -> 'a1 **)
    2146 let rec graph_params_rect_Type0 h_mk_graph_params x_1397 =
    2147   let g_u_pars = x_1397 in h_mk_graph_params g_u_pars
     2146let rec graph_params_rect_Type0 h_mk_graph_params x_4926 =
     2147  let g_u_pars = x_4926 in h_mk_graph_params g_u_pars
    21482148
    21492149(** val g_u_pars : graph_params -> uns_params **)
     
    22152215    Identifiers.universe -> __ -> __ -> Nat.nat -> Nat.nat -> __ -> __ ->
    22162216    'a1) -> joint_internal_function -> 'a1 **)
    2217 let rec joint_internal_function_rect_Type4 p globals h_mk_joint_internal_function x_1413 =
     2217let rec joint_internal_function_rect_Type4 p globals h_mk_joint_internal_function x_4942 =
    22182218  let { joint_if_luniverse = joint_if_luniverse0; joint_if_runiverse =
    22192219    joint_if_runiverse0; joint_if_result = joint_if_result0;
     
    22212221    joint_if_stacksize0; joint_if_local_stacksize =
    22222222    joint_if_local_stacksize0; joint_if_code = joint_if_code0;
    2223     joint_if_entry = joint_if_entry0 } = x_1413
     2223    joint_if_entry = joint_if_entry0 } = x_4942
    22242224  in
    22252225  h_mk_joint_internal_function joint_if_luniverse0 joint_if_runiverse0
     
    22312231    Identifiers.universe -> __ -> __ -> Nat.nat -> Nat.nat -> __ -> __ ->
    22322232    'a1) -> joint_internal_function -> 'a1 **)
    2233 let rec joint_internal_function_rect_Type5 p globals h_mk_joint_internal_function x_1415 =
     2233let rec joint_internal_function_rect_Type5 p globals h_mk_joint_internal_function x_4944 =
    22342234  let { joint_if_luniverse = joint_if_luniverse0; joint_if_runiverse =
    22352235    joint_if_runiverse0; joint_if_result = joint_if_result0;
     
    22372237    joint_if_stacksize0; joint_if_local_stacksize =
    22382238    joint_if_local_stacksize0; joint_if_code = joint_if_code0;
    2239     joint_if_entry = joint_if_entry0 } = x_1415
     2239    joint_if_entry = joint_if_entry0 } = x_4944
    22402240  in
    22412241  h_mk_joint_internal_function joint_if_luniverse0 joint_if_runiverse0
     
    22472247    Identifiers.universe -> __ -> __ -> Nat.nat -> Nat.nat -> __ -> __ ->
    22482248    'a1) -> joint_internal_function -> 'a1 **)
    2249 let rec joint_internal_function_rect_Type3 p globals h_mk_joint_internal_function x_1417 =
     2249let rec joint_internal_function_rect_Type3 p globals h_mk_joint_internal_function x_4946 =
    22502250  let { joint_if_luniverse = joint_if_luniverse0; joint_if_runiverse =
    22512251    joint_if_runiverse0; joint_if_result = joint_if_result0;
     
    22532253    joint_if_stacksize0; joint_if_local_stacksize =
    22542254    joint_if_local_stacksize0; joint_if_code = joint_if_code0;
    2255     joint_if_entry = joint_if_entry0 } = x_1417
     2255    joint_if_entry = joint_if_entry0 } = x_4946
    22562256  in
    22572257  h_mk_joint_internal_function joint_if_luniverse0 joint_if_runiverse0
     
    22632263    Identifiers.universe -> __ -> __ -> Nat.nat -> Nat.nat -> __ -> __ ->
    22642264    'a1) -> joint_internal_function -> 'a1 **)
    2265 let rec joint_internal_function_rect_Type2 p globals h_mk_joint_internal_function x_1419 =
     2265let rec joint_internal_function_rect_Type2 p globals h_mk_joint_internal_function x_4948 =
    22662266  let { joint_if_luniverse = joint_if_luniverse0; joint_if_runiverse =
    22672267    joint_if_runiverse0; joint_if_result = joint_if_result0;
     
    22692269    joint_if_stacksize0; joint_if_local_stacksize =
    22702270    joint_if_local_stacksize0; joint_if_code = joint_if_code0;
    2271     joint_if_entry = joint_if_entry0 } = x_1419
     2271    joint_if_entry = joint_if_entry0 } = x_4948
    22722272  in
    22732273  h_mk_joint_internal_function joint_if_luniverse0 joint_if_runiverse0
     
    22792279    Identifiers.universe -> __ -> __ -> Nat.nat -> Nat.nat -> __ -> __ ->
    22802280    'a1) -> joint_internal_function -> 'a1 **)
    2281 let rec joint_internal_function_rect_Type1 p globals h_mk_joint_internal_function x_1421 =
     2281let rec joint_internal_function_rect_Type1 p globals h_mk_joint_internal_function x_4950 =
    22822282  let { joint_if_luniverse = joint_if_luniverse0; joint_if_runiverse =
    22832283    joint_if_runiverse0; joint_if_result = joint_if_result0;
     
    22852285    joint_if_stacksize0; joint_if_local_stacksize =
    22862286    joint_if_local_stacksize0; joint_if_code = joint_if_code0;
    2287     joint_if_entry = joint_if_entry0 } = x_1421
     2287    joint_if_entry = joint_if_entry0 } = x_4950
    22882288  in
    22892289  h_mk_joint_internal_function joint_if_luniverse0 joint_if_runiverse0
     
    22952295    Identifiers.universe -> __ -> __ -> Nat.nat -> Nat.nat -> __ -> __ ->
    22962296    'a1) -> joint_internal_function -> 'a1 **)
    2297 let rec joint_internal_function_rect_Type0 p globals h_mk_joint_internal_function x_1423 =
     2297let rec joint_internal_function_rect_Type0 p globals h_mk_joint_internal_function x_4952 =
    22982298  let { joint_if_luniverse = joint_if_luniverse0; joint_if_runiverse =
    22992299    joint_if_runiverse0; joint_if_result = joint_if_result0;
     
    23012301    joint_if_stacksize0; joint_if_local_stacksize =
    23022302    joint_if_local_stacksize0; joint_if_code = joint_if_code0;
    2303     joint_if_entry = joint_if_entry0 } = x_1423
     2303    joint_if_entry = joint_if_entry0 } = x_4952
    23042304  in
    23052305  h_mk_joint_internal_function joint_if_luniverse0 joint_if_runiverse0
     
    25302530    params -> ((joint_function, AST.init_data List.list) AST.program ->
    25312531    CostLabel.costlabel -> 'a1) -> joint_program -> 'a1 **)
    2532 let rec joint_program_rect_Type4 p h_mk_joint_program x_1465 =
     2532let rec joint_program_rect_Type4 p h_mk_joint_program x_4994 =
    25332533  let { joint_prog = joint_prog0; init_cost_label = init_cost_label0 } =
    2534     x_1465
     2534    x_4994
    25352535  in
    25362536  h_mk_joint_program joint_prog0 init_cost_label0
     
    25392539    params -> ((joint_function, AST.init_data List.list) AST.program ->
    25402540    CostLabel.costlabel -> 'a1) -> joint_program -> 'a1 **)
    2541 let rec joint_program_rect_Type5 p h_mk_joint_program x_1467 =
     2541let rec joint_program_rect_Type5 p h_mk_joint_program x_4996 =
    25422542  let { joint_prog = joint_prog0; init_cost_label = init_cost_label0 } =
    2543     x_1467
     2543    x_4996
    25442544  in
    25452545  h_mk_joint_program joint_prog0 init_cost_label0
     
    25482548    params -> ((joint_function, AST.init_data List.list) AST.program ->
    25492549    CostLabel.costlabel -> 'a1) -> joint_program -> 'a1 **)
    2550 let rec joint_program_rect_Type3 p h_mk_joint_program x_1469 =
     2550let rec joint_program_rect_Type3 p h_mk_joint_program x_4998 =
    25512551  let { joint_prog = joint_prog0; init_cost_label = init_cost_label0 } =
    2552     x_1469
     2552    x_4998
    25532553  in
    25542554  h_mk_joint_program joint_prog0 init_cost_label0
     
    25572557    params -> ((joint_function, AST.init_data List.list) AST.program ->
    25582558    CostLabel.costlabel -> 'a1) -> joint_program -> 'a1 **)
    2559 let rec joint_program_rect_Type2 p h_mk_joint_program x_1471 =
     2559let rec joint_program_rect_Type2 p h_mk_joint_program x_5000 =
    25602560  let { joint_prog = joint_prog0; init_cost_label = init_cost_label0 } =
    2561     x_1471
     2561    x_5000
    25622562  in
    25632563  h_mk_joint_program joint_prog0 init_cost_label0
     
    25662566    params -> ((joint_function, AST.init_data List.list) AST.program ->
    25672567    CostLabel.costlabel -> 'a1) -> joint_program -> 'a1 **)
    2568 let rec joint_program_rect_Type1 p h_mk_joint_program x_1473 =
     2568let rec joint_program_rect_Type1 p h_mk_joint_program x_5002 =
    25692569  let { joint_prog = joint_prog0; init_cost_label = init_cost_label0 } =
    2570     x_1473
     2570    x_5002
    25712571  in
    25722572  h_mk_joint_program joint_prog0 init_cost_label0
     
    25752575    params -> ((joint_function, AST.init_data List.list) AST.program ->
    25762576    CostLabel.costlabel -> 'a1) -> joint_program -> 'a1 **)
    2577 let rec joint_program_rect_Type0 p h_mk_joint_program x_1475 =
     2577let rec joint_program_rect_Type0 p h_mk_joint_program x_5004 =
    25782578  let { joint_prog = joint_prog0; init_cost_label = init_cost_label0 } =
    2579     x_1475
     2579    x_5004
    25802580  in
    25812581  h_mk_joint_program joint_prog0 init_cost_label0
     
    26752675       List.Cons ({ Types.fst = id; Types.snd =
    26762676         (Types.pi1 jif).joint_if_stacksize }, acc)
    2677      | AST.External x -> acc)) List.Nil pr.joint_prog.AST.prog_funct
     2677     | AST.External x -> acc)) List.Nil (AST.prog_funct pr.joint_prog)
    26782678
    26792679open Extra_bool
     
    26952695  List.fold Nat.plus Nat.O (fun entry -> Bool.True) (fun entry ->
    26962696    Globalenvs.size_init_data_list entry.Types.snd)
    2697     p.joint_prog.AST.prog_vars
    2698 
     2697    (AST.prog_vars p.joint_prog)
     2698
  • extracted/joint_LTL_LIN.ml

    r2997 r3001  
    130130    BitVector.byte -> 'a1) -> registers_move -> 'a1 **)
    131131let rec registers_move_rect_Type4 h_from_acc h_to_acc h_int_to_reg h_int_to_acc = function
    132 | From_acc (x_1556, x_1555) -> h_from_acc x_1556 x_1555
    133 | To_acc (x_1558, x_1557) -> h_to_acc x_1558 x_1557
    134 | Int_to_reg (x_1560, x_1559) -> h_int_to_reg x_1560 x_1559
    135 | Int_to_acc (x_1562, x_1561) -> h_int_to_acc x_1562 x_1561
     132| From_acc (x_5280, x_5279) -> h_from_acc x_5280 x_5279
     133| To_acc (x_5282, x_5281) -> h_to_acc x_5282 x_5281
     134| Int_to_reg (x_5284, x_5283) -> h_int_to_reg x_5284 x_5283
     135| Int_to_acc (x_5286, x_5285) -> h_int_to_acc x_5286 x_5285
    136136
    137137(** val registers_move_rect_Type5 :
     
    140140    BitVector.byte -> 'a1) -> registers_move -> 'a1 **)
    141141let rec registers_move_rect_Type5 h_from_acc h_to_acc h_int_to_reg h_int_to_acc = function
    142 | From_acc (x_1569, x_1568) -> h_from_acc x_1569 x_1568
    143 | To_acc (x_1571, x_1570) -> h_to_acc x_1571 x_1570
    144 | Int_to_reg (x_1573, x_1572) -> h_int_to_reg x_1573 x_1572
    145 | Int_to_acc (x_1575, x_1574) -> h_int_to_acc x_1575 x_1574
     142| From_acc (x_5293, x_5292) -> h_from_acc x_5293 x_5292
     143| To_acc (x_5295, x_5294) -> h_to_acc x_5295 x_5294
     144| Int_to_reg (x_5297, x_5296) -> h_int_to_reg x_5297 x_5296
     145| Int_to_acc (x_5299, x_5298) -> h_int_to_acc x_5299 x_5298
    146146
    147147(** val registers_move_rect_Type3 :
     
    150150    BitVector.byte -> 'a1) -> registers_move -> 'a1 **)
    151151let rec registers_move_rect_Type3 h_from_acc h_to_acc h_int_to_reg h_int_to_acc = function
    152 | From_acc (x_1582, x_1581) -> h_from_acc x_1582 x_1581
    153 | To_acc (x_1584, x_1583) -> h_to_acc x_1584 x_1583
    154 | Int_to_reg (x_1586, x_1585) -> h_int_to_reg x_1586 x_1585
    155 | Int_to_acc (x_1588, x_1587) -> h_int_to_acc x_1588 x_1587
     152| From_acc (x_5306, x_5305) -> h_from_acc x_5306 x_5305
     153| To_acc (x_5308, x_5307) -> h_to_acc x_5308 x_5307
     154| Int_to_reg (x_5310, x_5309) -> h_int_to_reg x_5310 x_5309
     155| Int_to_acc (x_5312, x_5311) -> h_int_to_acc x_5312 x_5311
    156156
    157157(** val registers_move_rect_Type2 :
     
    160160    BitVector.byte -> 'a1) -> registers_move -> 'a1 **)
    161161let rec registers_move_rect_Type2 h_from_acc h_to_acc h_int_to_reg h_int_to_acc = function
    162 | From_acc (x_1595, x_1594) -> h_from_acc x_1595 x_1594
    163 | To_acc (x_1597, x_1596) -> h_to_acc x_1597 x_1596
    164 | Int_to_reg (x_1599, x_1598) -> h_int_to_reg x_1599 x_1598
    165 | Int_to_acc (x_1601, x_1600) -> h_int_to_acc x_1601 x_1600
     162| From_acc (x_5319, x_5318) -> h_from_acc x_5319 x_5318
     163| To_acc (x_5321, x_5320) -> h_to_acc x_5321 x_5320
     164| Int_to_reg (x_5323, x_5322) -> h_int_to_reg x_5323 x_5322
     165| Int_to_acc (x_5325, x_5324) -> h_int_to_acc x_5325 x_5324
    166166
    167167(** val registers_move_rect_Type1 :
     
    170170    BitVector.byte -> 'a1) -> registers_move -> 'a1 **)
    171171let rec registers_move_rect_Type1 h_from_acc h_to_acc h_int_to_reg h_int_to_acc = function
    172 | From_acc (x_1608, x_1607) -> h_from_acc x_1608 x_1607
    173 | To_acc (x_1610, x_1609) -> h_to_acc x_1610 x_1609
    174 | Int_to_reg (x_1612, x_1611) -> h_int_to_reg x_1612 x_1611
    175 | Int_to_acc (x_1614, x_1613) -> h_int_to_acc x_1614 x_1613
     172| From_acc (x_5332, x_5331) -> h_from_acc x_5332 x_5331
     173| To_acc (x_5334, x_5333) -> h_to_acc x_5334 x_5333
     174| Int_to_reg (x_5336, x_5335) -> h_int_to_reg x_5336 x_5335
     175| Int_to_acc (x_5338, x_5337) -> h_int_to_acc x_5338 x_5337
    176176
    177177(** val registers_move_rect_Type0 :
     
    180180    BitVector.byte -> 'a1) -> registers_move -> 'a1 **)
    181181let rec registers_move_rect_Type0 h_from_acc h_to_acc h_int_to_reg h_int_to_acc = function
    182 | From_acc (x_1621, x_1620) -> h_from_acc x_1621 x_1620
    183 | To_acc (x_1623, x_1622) -> h_to_acc x_1623 x_1622
    184 | Int_to_reg (x_1625, x_1624) -> h_int_to_reg x_1625 x_1624
    185 | Int_to_acc (x_1627, x_1626) -> h_int_to_acc x_1627 x_1626
     182| From_acc (x_5345, x_5344) -> h_from_acc x_5345 x_5344
     183| To_acc (x_5347, x_5346) -> h_to_acc x_5347 x_5346
     184| Int_to_reg (x_5349, x_5348) -> h_int_to_reg x_5349 x_5348
     185| Int_to_acc (x_5351, x_5350) -> h_int_to_acc x_5351 x_5350
    186186
    187187(** val registers_move_inv_rect_Type4 :
     
    255255| SAVE_CARRY -> h_SAVE_CARRY
    256256| RESTORE_CARRY -> h_RESTORE_CARRY
    257 | LOW_ADDRESS (x_1721, x_1720) -> h_LOW_ADDRESS x_1721 x_1720
    258 | HIGH_ADDRESS (x_1723, x_1722) -> h_HIGH_ADDRESS x_1723 x_1722
     257| LOW_ADDRESS (x_5445, x_5444) -> h_LOW_ADDRESS x_5445 x_5444
     258| HIGH_ADDRESS (x_5447, x_5446) -> h_HIGH_ADDRESS x_5447 x_5446
    259259
    260260(** val ltl_lin_seq_rect_Type5 :
     
    264264| SAVE_CARRY -> h_SAVE_CARRY
    265265| RESTORE_CARRY -> h_RESTORE_CARRY
    266 | LOW_ADDRESS (x_1730, x_1729) -> h_LOW_ADDRESS x_1730 x_1729
    267 | HIGH_ADDRESS (x_1732, x_1731) -> h_HIGH_ADDRESS x_1732 x_1731
     266| LOW_ADDRESS (x_5454, x_5453) -> h_LOW_ADDRESS x_5454 x_5453
     267| HIGH_ADDRESS (x_5456, x_5455) -> h_HIGH_ADDRESS x_5456 x_5455
    268268
    269269(** val ltl_lin_seq_rect_Type3 :
     
    273273| SAVE_CARRY -> h_SAVE_CARRY
    274274| RESTORE_CARRY -> h_RESTORE_CARRY
    275 | LOW_ADDRESS (x_1739, x_1738) -> h_LOW_ADDRESS x_1739 x_1738
    276 | HIGH_ADDRESS (x_1741, x_1740) -> h_HIGH_ADDRESS x_1741 x_1740
     275| LOW_ADDRESS (x_5463, x_5462) -> h_LOW_ADDRESS x_5463 x_5462
     276| HIGH_ADDRESS (x_5465, x_5464) -> h_HIGH_ADDRESS x_5465 x_5464
    277277
    278278(** val ltl_lin_seq_rect_Type2 :
     
    282282| SAVE_CARRY -> h_SAVE_CARRY
    283283| RESTORE_CARRY -> h_RESTORE_CARRY
    284 | LOW_ADDRESS (x_1748, x_1747) -> h_LOW_ADDRESS x_1748 x_1747
    285 | HIGH_ADDRESS (x_1750, x_1749) -> h_HIGH_ADDRESS x_1750 x_1749
     284| LOW_ADDRESS (x_5472, x_5471) -> h_LOW_ADDRESS x_5472 x_5471
     285| HIGH_ADDRESS (x_5474, x_5473) -> h_HIGH_ADDRESS x_5474 x_5473
    286286
    287287(** val ltl_lin_seq_rect_Type1 :
     
    291291| SAVE_CARRY -> h_SAVE_CARRY
    292292| RESTORE_CARRY -> h_RESTORE_CARRY
    293 | LOW_ADDRESS (x_1757, x_1756) -> h_LOW_ADDRESS x_1757 x_1756
    294 | HIGH_ADDRESS (x_1759, x_1758) -> h_HIGH_ADDRESS x_1759 x_1758
     293| LOW_ADDRESS (x_5481, x_5480) -> h_LOW_ADDRESS x_5481 x_5480
     294| HIGH_ADDRESS (x_5483, x_5482) -> h_HIGH_ADDRESS x_5483 x_5482
    295295
    296296(** val ltl_lin_seq_rect_Type0 :
     
    300300| SAVE_CARRY -> h_SAVE_CARRY
    301301| RESTORE_CARRY -> h_RESTORE_CARRY
    302 | LOW_ADDRESS (x_1766, x_1765) -> h_LOW_ADDRESS x_1766 x_1765
    303 | HIGH_ADDRESS (x_1768, x_1767) -> h_HIGH_ADDRESS x_1768 x_1767
     302| LOW_ADDRESS (x_5490, x_5489) -> h_LOW_ADDRESS x_5490 x_5489
     303| HIGH_ADDRESS (x_5492, x_5491) -> h_HIGH_ADDRESS x_5492 x_5491
    304304
    305305(** val ltl_lin_seq_inv_rect_Type4 :
  • extracted/joint_semantics.ml

    r2997 r3001  
    143143    -> 'a1 -> Graphs.label -> ByteValues.program_counter Types.option) ->
    144144    'a2) -> 'a1 genv_gen -> 'a2 **)
    145 let rec genv_gen_rect_Type4 globals h_mk_genv_gen x_1570 =
     145let rec genv_gen_rect_Type4 globals h_mk_genv_gen x_15434 =
    146146  let { ge = ge0; stack_sizes = stack_sizes0; premain = premain0;
    147     pc_from_label = pc_from_label0 } = x_1570
     147    pc_from_label = pc_from_label0 } = x_15434
    148148  in
    149149  h_mk_genv_gen ge0 __ stack_sizes0 premain0 pc_from_label0
     
    154154    -> 'a1 -> Graphs.label -> ByteValues.program_counter Types.option) ->
    155155    'a2) -> 'a1 genv_gen -> 'a2 **)
    156 let rec genv_gen_rect_Type5 globals h_mk_genv_gen x_1572 =
     156let rec genv_gen_rect_Type5 globals h_mk_genv_gen x_15436 =
    157157  let { ge = ge0; stack_sizes = stack_sizes0; premain = premain0;
    158     pc_from_label = pc_from_label0 } = x_1572
     158    pc_from_label = pc_from_label0 } = x_15436
    159159  in
    160160  h_mk_genv_gen ge0 __ stack_sizes0 premain0 pc_from_label0
     
    165165    -> 'a1 -> Graphs.label -> ByteValues.program_counter Types.option) ->
    166166    'a2) -> 'a1 genv_gen -> 'a2 **)
    167 let rec genv_gen_rect_Type3 globals h_mk_genv_gen x_1574 =
     167let rec genv_gen_rect_Type3 globals h_mk_genv_gen x_15438 =
    168168  let { ge = ge0; stack_sizes = stack_sizes0; premain = premain0;
    169     pc_from_label = pc_from_label0 } = x_1574
     169    pc_from_label = pc_from_label0 } = x_15438
    170170  in
    171171  h_mk_genv_gen ge0 __ stack_sizes0 premain0 pc_from_label0
     
    176176    -> 'a1 -> Graphs.label -> ByteValues.program_counter Types.option) ->
    177177    'a2) -> 'a1 genv_gen -> 'a2 **)
    178 let rec genv_gen_rect_Type2 globals h_mk_genv_gen x_1576 =
     178let rec genv_gen_rect_Type2 globals h_mk_genv_gen x_15440 =
    179179  let { ge = ge0; stack_sizes = stack_sizes0; premain = premain0;
    180     pc_from_label = pc_from_label0 } = x_1576
     180    pc_from_label = pc_from_label0 } = x_15440
    181181  in
    182182  h_mk_genv_gen ge0 __ stack_sizes0 premain0 pc_from_label0
     
    187187    -> 'a1 -> Graphs.label -> ByteValues.program_counter Types.option) ->
    188188    'a2) -> 'a1 genv_gen -> 'a2 **)
    189 let rec genv_gen_rect_Type1 globals h_mk_genv_gen x_1578 =
     189let rec genv_gen_rect_Type1 globals h_mk_genv_gen x_15442 =
    190190  let { ge = ge0; stack_sizes = stack_sizes0; premain = premain0;
    191     pc_from_label = pc_from_label0 } = x_1578
     191    pc_from_label = pc_from_label0 } = x_15442
    192192  in
    193193  h_mk_genv_gen ge0 __ stack_sizes0 premain0 pc_from_label0
     
    198198    -> 'a1 -> Graphs.label -> ByteValues.program_counter Types.option) ->
    199199    'a2) -> 'a1 genv_gen -> 'a2 **)
    200 let rec genv_gen_rect_Type0 globals h_mk_genv_gen x_1580 =
     200let rec genv_gen_rect_Type0 globals h_mk_genv_gen x_15444 =
    201201  let { ge = ge0; stack_sizes = stack_sizes0; premain = premain0;
    202     pc_from_label = pc_from_label0 } = x_1580
     202    pc_from_label = pc_from_label0 } = x_15444
    203203  in
    204204  h_mk_genv_gen ge0 __ stack_sizes0 premain0 pc_from_label0
     
    429429    ByteValues.xpointer Errors.res) -> (__ -> ByteValues.xpointer -> __) ->
    430430    'a1) -> sem_state_params -> 'a1 **)
    431 let rec sem_state_params_rect_Type4 h_mk_sem_state_params x_1601 =
     431let rec sem_state_params_rect_Type4 h_mk_sem_state_params x_15465 =
    432432  let { empty_framesT = empty_framesT0; empty_regsT = empty_regsT0; load_sp =
    433     load_sp0; save_sp = save_sp0 } = x_1601
     433    load_sp0; save_sp = save_sp0 } = x_15465
    434434  in
    435435  h_mk_sem_state_params __ empty_framesT0 __ empty_regsT0 load_sp0 save_sp0
     
    439439    ByteValues.xpointer Errors.res) -> (__ -> ByteValues.xpointer -> __) ->
    440440    'a1) -> sem_state_params -> 'a1 **)
    441 let rec sem_state_params_rect_Type5 h_mk_sem_state_params x_1603 =
     441let rec sem_state_params_rect_Type5 h_mk_sem_state_params x_15467 =
    442442  let { empty_framesT = empty_framesT0; empty_regsT = empty_regsT0; load_sp =
    443     load_sp0; save_sp = save_sp0 } = x_1603
     443    load_sp0; save_sp = save_sp0 } = x_15467
    444444  in
    445445  h_mk_sem_state_params __ empty_framesT0 __ empty_regsT0 load_sp0 save_sp0
     
    449449    ByteValues.xpointer Errors.res) -> (__ -> ByteValues.xpointer -> __) ->
    450450    'a1) -> sem_state_params -> 'a1 **)
    451 let rec sem_state_params_rect_Type3 h_mk_sem_state_params x_1605 =
     451let rec sem_state_params_rect_Type3 h_mk_sem_state_params x_15469 =
    452452  let { empty_framesT = empty_framesT0; empty_regsT = empty_regsT0; load_sp =
    453     load_sp0; save_sp = save_sp0 } = x_1605
     453    load_sp0; save_sp = save_sp0 } = x_15469
    454454  in
    455455  h_mk_sem_state_params __ empty_framesT0 __ empty_regsT0 load_sp0 save_sp0
     
    459459    ByteValues.xpointer Errors.res) -> (__ -> ByteValues.xpointer -> __) ->
    460460    'a1) -> sem_state_params -> 'a1 **)
    461 let rec sem_state_params_rect_Type2 h_mk_sem_state_params x_1607 =
     461let rec sem_state_params_rect_Type2 h_mk_sem_state_params x_15471 =
    462462  let { empty_framesT = empty_framesT0; empty_regsT = empty_regsT0; load_sp =
    463     load_sp0; save_sp = save_sp0 } = x_1607
     463    load_sp0; save_sp = save_sp0 } = x_15471
    464464  in
    465465  h_mk_sem_state_params __ empty_framesT0 __ empty_regsT0 load_sp0 save_sp0
     
    469469    ByteValues.xpointer Errors.res) -> (__ -> ByteValues.xpointer -> __) ->
    470470    'a1) -> sem_state_params -> 'a1 **)
    471 let rec sem_state_params_rect_Type1 h_mk_sem_state_params x_1609 =
     471let rec sem_state_params_rect_Type1 h_mk_sem_state_params x_15473 =
    472472  let { empty_framesT = empty_framesT0; empty_regsT = empty_regsT0; load_sp =
    473     load_sp0; save_sp = save_sp0 } = x_1609
     473    load_sp0; save_sp = save_sp0 } = x_15473
    474474  in
    475475  h_mk_sem_state_params __ empty_framesT0 __ empty_regsT0 load_sp0 save_sp0
     
    479479    ByteValues.xpointer Errors.res) -> (__ -> ByteValues.xpointer -> __) ->
    480480    'a1) -> sem_state_params -> 'a1 **)
    481 let rec sem_state_params_rect_Type0 h_mk_sem_state_params x_1611 =
     481let rec sem_state_params_rect_Type0 h_mk_sem_state_params x_15475 =
    482482  let { empty_framesT = empty_framesT0; empty_regsT = empty_regsT0; load_sp =
    483     load_sp0; save_sp = save_sp0 } = x_1611
     483    load_sp0; save_sp = save_sp0 } = x_15475
    484484  in
    485485  h_mk_sem_state_params __ empty_framesT0 __ empty_regsT0 load_sp0 save_sp0
     
    560560let rec internal_stack_rect_Type4 h_empty_is h_one_is h_both_is = function
    561561| Empty_is -> h_empty_is
    562 | One_is x_1637 -> h_one_is x_1637
    563 | Both_is (x_1639, x_1638) -> h_both_is x_1639 x_1638
     562| One_is x_15501 -> h_one_is x_15501
     563| Both_is (x_15503, x_15502) -> h_both_is x_15503 x_15502
    564564
    565565(** val internal_stack_rect_Type5 :
     
    568568let rec internal_stack_rect_Type5 h_empty_is h_one_is h_both_is = function
    569569| Empty_is -> h_empty_is
    570 | One_is x_1644 -> h_one_is x_1644
    571 | Both_is (x_1646, x_1645) -> h_both_is x_1646 x_1645
     570| One_is x_15508 -> h_one_is x_15508
     571| Both_is (x_15510, x_15509) -> h_both_is x_15510 x_15509
    572572
    573573(** val internal_stack_rect_Type3 :
     
    576576let rec internal_stack_rect_Type3 h_empty_is h_one_is h_both_is = function
    577577| Empty_is -> h_empty_is
    578 | One_is x_1651 -> h_one_is x_1651
    579 | Both_is (x_1653, x_1652) -> h_both_is x_1653 x_1652
     578| One_is x_15515 -> h_one_is x_15515
     579| Both_is (x_15517, x_15516) -> h_both_is x_15517 x_15516
    580580
    581581(** val internal_stack_rect_Type2 :
     
    584584let rec internal_stack_rect_Type2 h_empty_is h_one_is h_both_is = function
    585585| Empty_is -> h_empty_is
    586 | One_is x_1658 -> h_one_is x_1658
    587 | Both_is (x_1660, x_1659) -> h_both_is x_1660 x_1659
     586| One_is x_15522 -> h_one_is x_15522
     587| Both_is (x_15524, x_15523) -> h_both_is x_15524 x_15523
    588588
    589589(** val internal_stack_rect_Type1 :
     
    592592let rec internal_stack_rect_Type1 h_empty_is h_one_is h_both_is = function
    593593| Empty_is -> h_empty_is
    594 | One_is x_1665 -> h_one_is x_1665
    595 | Both_is (x_1667, x_1666) -> h_both_is x_1667 x_1666
     594| One_is x_15529 -> h_one_is x_15529
     595| Both_is (x_15531, x_15530) -> h_both_is x_15531 x_15530
    596596
    597597(** val internal_stack_rect_Type0 :
     
    600600let rec internal_stack_rect_Type0 h_empty_is h_one_is h_both_is = function
    601601| Empty_is -> h_empty_is
    602 | One_is x_1672 -> h_one_is x_1672
    603 | Both_is (x_1674, x_1673) -> h_both_is x_1674 x_1673
     602| One_is x_15536 -> h_one_is x_15536
     603| Both_is (x_15538, x_15537) -> h_both_is x_15538 x_15537
    604604
    605605(** val internal_stack_inv_rect_Type4 :
     
    685685    sem_state_params -> (__ Types.option -> internal_stack ->
    686686    ByteValues.bebit -> __ -> BEMem.bemem -> Nat.nat -> 'a1) -> state -> 'a1 **)
    687 let rec state_rect_Type4 semp h_mk_state x_1722 =
     687let rec state_rect_Type4 semp h_mk_state x_15586 =
    688688  let { st_frms = st_frms0; istack = istack0; carry = carry0; regs = regs0;
    689     m = m0; stack_usage = stack_usage0 } = x_1722
     689    m = m0; stack_usage = stack_usage0 } = x_15586
    690690  in
    691691  h_mk_state st_frms0 istack0 carry0 regs0 m0 stack_usage0
     
    694694    sem_state_params -> (__ Types.option -> internal_stack ->
    695695    ByteValues.bebit -> __ -> BEMem.bemem -> Nat.nat -> 'a1) -> state -> 'a1 **)
    696 let rec state_rect_Type5 semp h_mk_state x_1724 =
     696let rec state_rect_Type5 semp h_mk_state x_15588 =
    697697  let { st_frms = st_frms0; istack = istack0; carry = carry0; regs = regs0;
    698     m = m0; stack_usage = stack_usage0 } = x_1724
     698    m = m0; stack_usage = stack_usage0 } = x_15588
    699699  in
    700700  h_mk_state st_frms0 istack0 carry0 regs0 m0 stack_usage0
     
    703703    sem_state_params -> (__ Types.option -> internal_stack ->
    704704    ByteValues.bebit -> __ -> BEMem.bemem -> Nat.nat -> 'a1) -> state -> 'a1 **)
    705 let rec state_rect_Type3 semp h_mk_state x_1726 =
     705let rec state_rect_Type3 semp h_mk_state x_15590 =
    706706  let { st_frms = st_frms0; istack = istack0; carry = carry0; regs = regs0;
    707     m = m0; stack_usage = stack_usage0 } = x_1726
     707    m = m0; stack_usage = stack_usage0 } = x_15590
    708708  in
    709709  h_mk_state st_frms0 istack0 carry0 regs0 m0 stack_usage0
     
    712712    sem_state_params -> (__ Types.option -> internal_stack ->
    713713    ByteValues.bebit -> __ -> BEMem.bemem -> Nat.nat -> 'a1) -> state -> 'a1 **)
    714 let rec state_rect_Type2 semp h_mk_state x_1728 =
     714let rec state_rect_Type2 semp h_mk_state x_15592 =
    715715  let { st_frms = st_frms0; istack = istack0; carry = carry0; regs = regs0;
    716     m = m0; stack_usage = stack_usage0 } = x_1728
     716    m = m0; stack_usage = stack_usage0 } = x_15592
    717717  in
    718718  h_mk_state st_frms0 istack0 carry0 regs0 m0 stack_usage0
     
    721721    sem_state_params -> (__ Types.option -> internal_stack ->
    722722    ByteValues.bebit -> __ -> BEMem.bemem -> Nat.nat -> 'a1) -> state -> 'a1 **)
    723 let rec state_rect_Type1 semp h_mk_state x_1730 =
     723let rec state_rect_Type1 semp h_mk_state x_15594 =
    724724  let { st_frms = st_frms0; istack = istack0; carry = carry0; regs = regs0;
    725     m = m0; stack_usage = stack_usage0 } = x_1730
     725    m = m0; stack_usage = stack_usage0 } = x_15594
    726726  in
    727727  h_mk_state st_frms0 istack0 carry0 regs0 m0 stack_usage0
     
    730730    sem_state_params -> (__ Types.option -> internal_stack ->
    731731    ByteValues.bebit -> __ -> BEMem.bemem -> Nat.nat -> 'a1) -> state -> 'a1 **)
    732 let rec state_rect_Type0 semp h_mk_state x_1732 =
     732let rec state_rect_Type0 semp h_mk_state x_15596 =
    733733  let { st_frms = st_frms0; istack = istack0; carry = carry0; regs = regs0;
    734     m = m0; stack_usage = stack_usage0 } = x_1732
     734    m = m0; stack_usage = stack_usage0 } = x_15596
    735735  in
    736736  h_mk_state st_frms0 istack0 carry0 regs0 m0 stack_usage0
     
    808808    sem_state_params -> (state -> ByteValues.program_counter ->
    809809    ByteValues.program_counter -> 'a1) -> state_pc -> 'a1 **)
    810 let rec state_pc_rect_Type4 semp h_mk_state_pc x_1748 =
    811   let { st_no_pc = st_no_pc0; pc = pc0; last_pop = last_pop0 } = x_1748 in
     810let rec state_pc_rect_Type4 semp h_mk_state_pc x_15612 =
     811  let { st_no_pc = st_no_pc0; pc = pc0; last_pop = last_pop0 } = x_15612 in
    812812  h_mk_state_pc st_no_pc0 pc0 last_pop0
    813813
     
    815815    sem_state_params -> (state -> ByteValues.program_counter ->
    816816    ByteValues.program_counter -> 'a1) -> state_pc -> 'a1 **)
    817 let rec state_pc_rect_Type5 semp h_mk_state_pc x_1750 =
    818   let { st_no_pc = st_no_pc0; pc = pc0; last_pop = last_pop0 } = x_1750 in
     817let rec state_pc_rect_Type5 semp h_mk_state_pc x_15614 =
     818  let { st_no_pc = st_no_pc0; pc = pc0; last_pop = last_pop0 } = x_15614 in
    819819  h_mk_state_pc st_no_pc0 pc0 last_pop0
    820820
     
    822822    sem_state_params -> (state -> ByteValues.program_counter ->
    823823    ByteValues.program_counter -> 'a1) -> state_pc -> 'a1 **)
    824 let rec state_pc_rect_Type3 semp h_mk_state_pc x_1752 =
    825   let { st_no_pc = st_no_pc0; pc = pc0; last_pop = last_pop0 } = x_1752 in
     824let rec state_pc_rect_Type3 semp h_mk_state_pc x_15616 =
     825  let { st_no_pc = st_no_pc0; pc = pc0; last_pop = last_pop0 } = x_15616 in
    826826  h_mk_state_pc st_no_pc0 pc0 last_pop0
    827827
     
    829829    sem_state_params -> (state -> ByteValues.program_counter ->
    830830    ByteValues.program_counter -> 'a1) -> state_pc -> 'a1 **)
    831 let rec state_pc_rect_Type2 semp h_mk_state_pc x_1754 =
    832   let { st_no_pc = st_no_pc0; pc = pc0; last_pop = last_pop0 } = x_1754 in
     831let rec state_pc_rect_Type2 semp h_mk_state_pc x_15618 =
     832  let { st_no_pc = st_no_pc0; pc = pc0; last_pop = last_pop0 } = x_15618 in
    833833  h_mk_state_pc st_no_pc0 pc0 last_pop0
    834834
     
    836836    sem_state_params -> (state -> ByteValues.program_counter ->
    837837    ByteValues.program_counter -> 'a1) -> state_pc -> 'a1 **)
    838 let rec state_pc_rect_Type1 semp h_mk_state_pc x_1756 =
    839   let { st_no_pc = st_no_pc0; pc = pc0; last_pop = last_pop0 } = x_1756 in
     838let rec state_pc_rect_Type1 semp h_mk_state_pc x_15620 =
     839  let { st_no_pc = st_no_pc0; pc = pc0; last_pop = last_pop0 } = x_15620 in
    840840  h_mk_state_pc st_no_pc0 pc0 last_pop0
    841841
     
    843843    sem_state_params -> (state -> ByteValues.program_counter ->
    844844    ByteValues.program_counter -> 'a1) -> state_pc -> 'a1 **)
    845 let rec state_pc_rect_Type0 semp h_mk_state_pc x_1758 =
    846   let { st_no_pc = st_no_pc0; pc = pc0; last_pop = last_pop0 } = x_1758 in
     845let rec state_pc_rect_Type0 semp h_mk_state_pc x_15622 =
     846  let { st_no_pc = st_no_pc0; pc = pc0; last_pop = last_pop0 } = x_15622 in
    847847  h_mk_state_pc st_no_pc0 pc0 last_pop0
    848848
     
    11511151    state -> (state, ByteValues.program_counter) Types.prod Errors.res) ->
    11521152    'a2) -> 'a1 sem_unserialized_params -> 'a2 **)
    1153 let rec sem_unserialized_params_rect_Type4 uns_pars h_mk_sem_unserialized_params x_1813 =
     1153let rec sem_unserialized_params_rect_Type4 uns_pars h_mk_sem_unserialized_params x_15677 =
    11541154  let { st_pars = st_pars0; acca_store_ = acca_store_0; acca_retrieve_ =
    11551155    acca_retrieve_0; acca_arg_retrieve_ = acca_arg_retrieve_0; accb_store_ =
     
    11631163    set_result0; call_args_for_main = call_args_for_main0;
    11641164    call_dest_for_main = call_dest_for_main0; read_result = read_result0;
    1165     eval_ext_seq = eval_ext_seq0; pop_frame = pop_frame0 } = x_1813
     1165    eval_ext_seq = eval_ext_seq0; pop_frame = pop_frame0 } = x_15677
    11661166  in
    11671167  h_mk_sem_unserialized_params st_pars0 acca_store_0 acca_retrieve_0
     
    11921192    state -> (state, ByteValues.program_counter) Types.prod Errors.res) ->
    11931193    'a2) -> 'a1 sem_unserialized_params -> 'a2 **)
    1194 let rec sem_unserialized_params_rect_Type5 uns_pars h_mk_sem_unserialized_params x_1815 =
     1194let rec sem_unserialized_params_rect_Type5 uns_pars h_mk_sem_unserialized_params x_15679 =
    11951195  let { st_pars = st_pars0; acca_store_ = acca_store_0; acca_retrieve_ =
    11961196    acca_retrieve_0; acca_arg_retrieve_ = acca_arg_retrieve_0; accb_store_ =
     
    12041204    set_result0; call_args_for_main = call_args_for_main0;
    12051205    call_dest_for_main = call_dest_for_main0; read_result = read_result0;
    1206     eval_ext_seq = eval_ext_seq0; pop_frame = pop_frame0 } = x_1815
     1206    eval_ext_seq = eval_ext_seq0; pop_frame = pop_frame0 } = x_15679
    12071207  in
    12081208  h_mk_sem_unserialized_params st_pars0 acca_store_0 acca_retrieve_0
     
    12331233    state -> (state, ByteValues.program_counter) Types.prod Errors.res) ->
    12341234    'a2) -> 'a1 sem_unserialized_params -> 'a2 **)
    1235 let rec sem_unserialized_params_rect_Type3 uns_pars h_mk_sem_unserialized_params x_1817 =
     1235let rec sem_unserialized_params_rect_Type3 uns_pars h_mk_sem_unserialized_params x_15681 =
    12361236  let { st_pars = st_pars0; acca_store_ = acca_store_0; acca_retrieve_ =
    12371237    acca_retrieve_0; acca_arg_retrieve_ = acca_arg_retrieve_0; accb_store_ =
     
    12451245    set_result0; call_args_for_main = call_args_for_main0;
    12461246    call_dest_for_main = call_dest_for_main0; read_result = read_result0;
    1247     eval_ext_seq = eval_ext_seq0; pop_frame = pop_frame0 } = x_1817
     1247    eval_ext_seq = eval_ext_seq0; pop_frame = pop_frame0 } = x_15681
    12481248  in
    12491249  h_mk_sem_unserialized_params st_pars0 acca_store_0 acca_retrieve_0
     
    12741274    state -> (state, ByteValues.program_counter) Types.prod Errors.res) ->
    12751275    'a2) -> 'a1 sem_unserialized_params -> 'a2 **)
    1276 let rec sem_unserialized_params_rect_Type2 uns_pars h_mk_sem_unserialized_params x_1819 =
     1276let rec sem_unserialized_params_rect_Type2 uns_pars h_mk_sem_unserialized_params x_15683 =
    12771277  let { st_pars = st_pars0; acca_store_ = acca_store_0; acca_retrieve_ =
    12781278    acca_retrieve_0; acca_arg_retrieve_ = acca_arg_retrieve_0; accb_store_ =
     
    12861286    set_result0; call_args_for_main = call_args_for_main0;
    12871287    call_dest_for_main = call_dest_for_main0; read_result = read_result0;
    1288     eval_ext_seq = eval_ext_seq0; pop_frame = pop_frame0 } = x_1819
     1288    eval_ext_seq = eval_ext_seq0; pop_frame = pop_frame0 } = x_15683
    12891289  in
    12901290  h_mk_sem_unserialized_params st_pars0 acca_store_0 acca_retrieve_0
     
    13151315    state -> (state, ByteValues.program_counter) Types.prod Errors.res) ->
    13161316    'a2) -> 'a1 sem_unserialized_params -> 'a2 **)
    1317 let rec sem_unserialized_params_rect_Type1 uns_pars h_mk_sem_unserialized_params x_1821 =
     1317let rec sem_unserialized_params_rect_Type1 uns_pars h_mk_sem_unserialized_params x_15685 =
    13181318  let { st_pars = st_pars0; acca_store_ = acca_store_0; acca_retrieve_ =
    13191319    acca_retrieve_0; acca_arg_retrieve_ = acca_arg_retrieve_0; accb_store_ =
     
    13271327    set_result0; call_args_for_main = call_args_for_main0;
    13281328    call_dest_for_main = call_dest_for_main0; read_result = read_result0;
    1329     eval_ext_seq = eval_ext_seq0; pop_frame = pop_frame0 } = x_1821
     1329    eval_ext_seq = eval_ext_seq0; pop_frame = pop_frame0 } = x_15685
    13301330  in
    13311331  h_mk_sem_unserialized_params st_pars0 acca_store_0 acca_retrieve_0
     
    13561356    state -> (state, ByteValues.program_counter) Types.prod Errors.res) ->
    13571357    'a2) -> 'a1 sem_unserialized_params -> 'a2 **)
    1358 let rec sem_unserialized_params_rect_Type0 uns_pars h_mk_sem_unserialized_params x_1823 =
     1358let rec sem_unserialized_params_rect_Type0 uns_pars h_mk_sem_unserialized_params x_15687 =
    13591359  let { st_pars = st_pars0; acca_store_ = acca_store_0; acca_retrieve_ =
    13601360    acca_retrieve_0; acca_arg_retrieve_ = acca_arg_retrieve_0; accb_store_ =
     
    13681368    set_result0; call_args_for_main = call_args_for_main0;
    13691369    call_dest_for_main = call_dest_for_main0; read_result = read_result0;
    1370     eval_ext_seq = eval_ext_seq0; pop_frame = pop_frame0 } = x_1823
     1370    eval_ext_seq = eval_ext_seq0; pop_frame = pop_frame0 } = x_15687
    13711371  in
    13721372  h_mk_sem_unserialized_params st_pars0 acca_store_0 acca_retrieve_0
     
    18181818    sem_unserialized_params -> (__ -> Positive.pos) -> (Positive.pos -> __)
    18191819    -> __ -> __ -> 'a1) -> serialized_params -> 'a1 **)
    1820 let rec serialized_params_rect_Type4 h_mk_serialized_params x_1893 =
     1820let rec serialized_params_rect_Type4 h_mk_serialized_params x_15757 =
    18211821  let { spp = spp0; msu_pars = msu_pars0; offset_of_point = offset_of_point0;
    1822     point_of_offset = point_of_offset0 } = x_1893
     1822    point_of_offset = point_of_offset0 } = x_15757
    18231823  in
    18241824  h_mk_serialized_params spp0 msu_pars0 offset_of_point0 point_of_offset0 __
     
    18291829    sem_unserialized_params -> (__ -> Positive.pos) -> (Positive.pos -> __)
    18301830    -> __ -> __ -> 'a1) -> serialized_params -> 'a1 **)
    1831 let rec serialized_params_rect_Type5 h_mk_serialized_params x_1895 =
     1831let rec serialized_params_rect_Type5 h_mk_serialized_params x_15759 =
    18321832  let { spp = spp0; msu_pars = msu_pars0; offset_of_point = offset_of_point0;
    1833     point_of_offset = point_of_offset0 } = x_1895
     1833    point_of_offset = point_of_offset0 } = x_15759
    18341834  in
    18351835  h_mk_serialized_params spp0 msu_pars0 offset_of_point0 point_of_offset0 __
     
    18401840    sem_unserialized_params -> (__ -> Positive.pos) -> (Positive.pos -> __)
    18411841    -> __ -> __ -> 'a1) -> serialized_params -> 'a1 **)
    1842 let rec serialized_params_rect_Type3 h_mk_serialized_params x_1897 =
     1842let rec serialized_params_rect_Type3 h_mk_serialized_params x_15761 =
    18431843  let { spp = spp0; msu_pars = msu_pars0; offset_of_point = offset_of_point0;
    1844     point_of_offset = point_of_offset0 } = x_1897
     1844    point_of_offset = point_of_offset0 } = x_15761
    18451845  in
    18461846  h_mk_serialized_params spp0 msu_pars0 offset_of_point0 point_of_offset0 __
     
    18511851    sem_unserialized_params -> (__ -> Positive.pos) -> (Positive.pos -> __)
    18521852    -> __ -> __ -> 'a1) -> serialized_params -> 'a1 **)
    1853 let rec serialized_params_rect_Type2 h_mk_serialized_params x_1899 =
     1853let rec serialized_params_rect_Type2 h_mk_serialized_params x_15763 =
    18541854  let { spp = spp0; msu_pars = msu_pars0; offset_of_point = offset_of_point0;
    1855     point_of_offset = point_of_offset0 } = x_1899
     1855    point_of_offset = point_of_offset0 } = x_15763
    18561856  in
    18571857  h_mk_serialized_params spp0 msu_pars0 offset_of_point0 point_of_offset0 __
     
    18621862    sem_unserialized_params -> (__ -> Positive.pos) -> (Positive.pos -> __)
    18631863    -> __ -> __ -> 'a1) -> serialized_params -> 'a1 **)
    1864 let rec serialized_params_rect_Type1 h_mk_serialized_params x_1901 =
     1864let rec serialized_params_rect_Type1 h_mk_serialized_params x_15765 =
    18651865  let { spp = spp0; msu_pars = msu_pars0; offset_of_point = offset_of_point0;
    1866     point_of_offset = point_of_offset0 } = x_1901
     1866    point_of_offset = point_of_offset0 } = x_15765
    18671867  in
    18681868  h_mk_serialized_params spp0 msu_pars0 offset_of_point0 point_of_offset0 __
     
    18731873    sem_unserialized_params -> (__ -> Positive.pos) -> (Positive.pos -> __)
    18741874    -> __ -> __ -> 'a1) -> serialized_params -> 'a1 **)
    1875 let rec serialized_params_rect_Type0 h_mk_serialized_params x_1903 =
     1875let rec serialized_params_rect_Type0 h_mk_serialized_params x_15767 =
    18761876  let { spp = spp0; msu_pars = msu_pars0; offset_of_point = offset_of_point0;
    1877     point_of_offset = point_of_offset0 } = x_1903
     1877    point_of_offset = point_of_offset0 } = x_15767
    18781878  in
    18791879  h_mk_serialized_params spp0 msu_pars0 offset_of_point0 point_of_offset0 __
     
    19671967    (serialized_params -> (Joint.joint_program ->
    19681968    Joint.joint_closed_internal_function) -> 'a1) -> sem_params -> 'a1 **)
    1969 let rec sem_params_rect_Type4 h_mk_sem_params x_1921 =
    1970   let { spp' = spp'0; pre_main_generator = pre_main_generator0 } = x_1921 in
     1969let rec sem_params_rect_Type4 h_mk_sem_params x_15785 =
     1970  let { spp' = spp'0; pre_main_generator = pre_main_generator0 } = x_15785 in
    19711971  h_mk_sem_params spp'0 pre_main_generator0
    19721972
     
    19741974    (serialized_params -> (Joint.joint_program ->
    19751975    Joint.joint_closed_internal_function) -> 'a1) -> sem_params -> 'a1 **)
    1976 let rec sem_params_rect_Type5 h_mk_sem_params x_1923 =
    1977   let { spp' = spp'0; pre_main_generator = pre_main_generator0 } = x_1923 in
     1976let rec sem_params_rect_Type5 h_mk_sem_params x_15787 =
     1977  let { spp' = spp'0; pre_main_generator = pre_main_generator0 } = x_15787 in
    19781978  h_mk_sem_params spp'0 pre_main_generator0
    19791979
     
    19811981    (serialized_params -> (Joint.joint_program ->
    19821982    Joint.joint_closed_internal_function) -> 'a1) -> sem_params -> 'a1 **)
    1983 let rec sem_params_rect_Type3 h_mk_sem_params x_1925 =
    1984   let { spp' = spp'0; pre_main_generator = pre_main_generator0 } = x_1925 in
     1983let rec sem_params_rect_Type3 h_mk_sem_params x_15789 =
     1984  let { spp' = spp'0; pre_main_generator = pre_main_generator0 } = x_15789 in
    19851985  h_mk_sem_params spp'0 pre_main_generator0
    19861986
     
    19881988    (serialized_params -> (Joint.joint_program ->
    19891989    Joint.joint_closed_internal_function) -> 'a1) -> sem_params -> 'a1 **)
    1990 let rec sem_params_rect_Type2 h_mk_sem_params x_1927 =
    1991   let { spp' = spp'0; pre_main_generator = pre_main_generator0 } = x_1927 in
     1990let rec sem_params_rect_Type2 h_mk_sem_params x_15791 =
     1991  let { spp' = spp'0; pre_main_generator = pre_main_generator0 } = x_15791 in
    19921992  h_mk_sem_params spp'0 pre_main_generator0
    19931993
     
    19951995    (serialized_params -> (Joint.joint_program ->
    19961996    Joint.joint_closed_internal_function) -> 'a1) -> sem_params -> 'a1 **)
    1997 let rec sem_params_rect_Type1 h_mk_sem_params x_1929 =
    1998   let { spp' = spp'0; pre_main_generator = pre_main_generator0 } = x_1929 in
     1997let rec sem_params_rect_Type1 h_mk_sem_params x_15793 =
     1998  let { spp' = spp'0; pre_main_generator = pre_main_generator0 } = x_15793 in
    19991999  h_mk_sem_params spp'0 pre_main_generator0
    20002000
     
    20022002    (serialized_params -> (Joint.joint_program ->
    20032003    Joint.joint_closed_internal_function) -> 'a1) -> sem_params -> 'a1 **)
    2004 let rec sem_params_rect_Type0 h_mk_sem_params x_1931 =
    2005   let { spp' = spp'0; pre_main_generator = pre_main_generator0 } = x_1931 in
     2004let rec sem_params_rect_Type0 h_mk_sem_params x_15795 =
     2005  let { spp' = spp'0; pre_main_generator = pre_main_generator0 } = x_15795 in
    20062006  h_mk_sem_params spp'0 pre_main_generator0
    20072007
     
    23752375             match BitVector.eq_bv Pointers.offset_size
    23762376                     (BitVector.zero Pointers.offset_size)
    2377                      (Pointers.offv ptr.Pointers.poff) with
     2377                     (Pointers.offv (Pointers.poff ptr)) with
    23782378             | Bool.True ->
    23792379               Monad.m_return0 (Monad.max_def Errors.res0)
    2380                  ptr.Pointers.pblock
     2380                 (Pointers.pblock ptr)
    23812381             | Bool.False ->
    23822382               Obj.magic (Errors.Error (List.Cons ((Errors.MSG
     
    24002400      (let x =
    24012401         IOMonad.err_to_io
    2402            (IO.check_eventval_list params fn.AST.ef_sig.AST.sig_args)
     2402           (IO.check_eventval_list params (AST.sig_args (AST.ef_sig fn)))
    24032403       in
    24042404      Obj.magic x) (fun evargs ->
    24052405      Monad.m_bind0 (Monad.max_def IOMonad.iOMonad)
    24062406        (Obj.magic
    2407           (IO.do_io fn.AST.ef_id evargs (AST.proj_sig_res fn.AST.ef_sig)))
     2407          (IO.do_io (AST.ef_id fn) evargs (AST.proj_sig_res (AST.ef_sig fn))))
    24082408        (fun evres ->
    24092409        let vs = List.Cons
    2410           ((IO.mk_val (AST.proj_sig_res fn.AST.ef_sig) evres), List.Nil)
     2410          ((IO.mk_val (AST.proj_sig_res (AST.ef_sig fn)) evres), List.Nil)
    24112411        in
    24122412        Obj.magic
  • extracted/lIN.ml

    r2960 r3001  
    134134    (Obj.magic Types.It))) }, (List.Cons ({ Types.fst = Types.None;
    135135    Types.snd = (Joint.Sequential ((Joint.CALL ((Types.Inl
    136     p.Joint.joint_prog.AST.prog_main), (Obj.magic Nat.O),
     136    (AST.prog_main p.Joint.joint_prog)), (Obj.magic Nat.O),
    137137    (Obj.magic Types.It))), (Obj.magic Types.It))) }, (List.Cons
    138138    ({ Types.fst = (Types.Some l3); Types.snd = (Joint.Final (Joint.GOTO
  • extracted/lINToASM.ml

    r2986 r3001  
    143143    Identifiers.identifier_map -> __ -> Positive.pos -> 'a1) -> aSM_universe
    144144    -> 'a1 **)
    145 let rec aSM_universe_rect_Type4 globals h_mk_ASM_universe x_3 =
     145let rec aSM_universe_rect_Type4 globals h_mk_ASM_universe x_5553 =
    146146  let { id_univ = id_univ0; current_funct = current_funct0; ident_map =
    147147    ident_map0; label_map = label_map0; address_map = address_map0;
    148     fresh_cost_label = fresh_cost_label0 } = x_3
     148    fresh_cost_label = fresh_cost_label0 } = x_5553
    149149  in
    150150  h_mk_ASM_universe id_univ0 current_funct0 ident_map0 label_map0
     
    157157    Identifiers.identifier_map -> __ -> Positive.pos -> 'a1) -> aSM_universe
    158158    -> 'a1 **)
    159 let rec aSM_universe_rect_Type5 globals h_mk_ASM_universe x_5 =
     159let rec aSM_universe_rect_Type5 globals h_mk_ASM_universe x_5555 =
    160160  let { id_univ = id_univ0; current_funct = current_funct0; ident_map =
    161161    ident_map0; label_map = label_map0; address_map = address_map0;
    162     fresh_cost_label = fresh_cost_label0 } = x_5
     162    fresh_cost_label = fresh_cost_label0 } = x_5555
    163163  in
    164164  h_mk_ASM_universe id_univ0 current_funct0 ident_map0 label_map0
     
    171171    Identifiers.identifier_map -> __ -> Positive.pos -> 'a1) -> aSM_universe
    172172    -> 'a1 **)
    173 let rec aSM_universe_rect_Type3 globals h_mk_ASM_universe x_7 =
     173let rec aSM_universe_rect_Type3 globals h_mk_ASM_universe x_5557 =
    174174  let { id_univ = id_univ0; current_funct = current_funct0; ident_map =
    175175    ident_map0; label_map = label_map0; address_map = address_map0;
    176     fresh_cost_label = fresh_cost_label0 } = x_7
     176    fresh_cost_label = fresh_cost_label0 } = x_5557
    177177  in
    178178  h_mk_ASM_universe id_univ0 current_funct0 ident_map0 label_map0
     
    185185    Identifiers.identifier_map -> __ -> Positive.pos -> 'a1) -> aSM_universe
    186186    -> 'a1 **)
    187 let rec aSM_universe_rect_Type2 globals h_mk_ASM_universe x_9 =
     187let rec aSM_universe_rect_Type2 globals h_mk_ASM_universe x_5559 =
    188188  let { id_univ = id_univ0; current_funct = current_funct0; ident_map =
    189189    ident_map0; label_map = label_map0; address_map = address_map0;
    190     fresh_cost_label = fresh_cost_label0 } = x_9
     190    fresh_cost_label = fresh_cost_label0 } = x_5559
    191191  in
    192192  h_mk_ASM_universe id_univ0 current_funct0 ident_map0 label_map0
     
    199199    Identifiers.identifier_map -> __ -> Positive.pos -> 'a1) -> aSM_universe
    200200    -> 'a1 **)
    201 let rec aSM_universe_rect_Type1 globals h_mk_ASM_universe x_11 =
     201let rec aSM_universe_rect_Type1 globals h_mk_ASM_universe x_5561 =
    202202  let { id_univ = id_univ0; current_funct = current_funct0; ident_map =
    203203    ident_map0; label_map = label_map0; address_map = address_map0;
    204     fresh_cost_label = fresh_cost_label0 } = x_11
     204    fresh_cost_label = fresh_cost_label0 } = x_5561
    205205  in
    206206  h_mk_ASM_universe id_univ0 current_funct0 ident_map0 label_map0
     
    213213    Identifiers.identifier_map -> __ -> Positive.pos -> 'a1) -> aSM_universe
    214214    -> 'a1 **)
    215 let rec aSM_universe_rect_Type0 globals h_mk_ASM_universe x_13 =
     215let rec aSM_universe_rect_Type0 globals h_mk_ASM_universe x_5563 =
    216216  let { id_univ = id_univ0; current_funct = current_funct0; ident_map =
    217217    ident_map0; label_map = label_map0; address_map = address_map0;
    218     fresh_cost_label = fresh_cost_label0 } = x_13
     218    fresh_cost_label = fresh_cost_label0 } = x_5563
    219219  in
    220220  h_mk_ASM_universe id_univ0 current_funct0 ident_map0 label_map0
     
    320320  let globals_addr_internal = fun res_offset x_size ->
    321321    let { Types.fst = res; Types.snd = offset } = res_offset in
    322     let { Types.fst = eta6; Types.snd = data } = x_size in
    323     let { Types.fst = x; Types.snd = region } = eta6 in
     322    let { Types.fst = eta27394; Types.snd = data } = x_size in
     323    let { Types.fst = x; Types.snd = region } = eta27394 in
    324324    { Types.fst =
    325325    (Identifiers.add PreIdentifiers.SymbolTag res x
     
    335335        (Z.z_of_nat
    336336          (Joint.globals_stacksize (Joint.lin_params_to_params LIN.lIN) p))) }
    337       p.Joint.joint_prog.AST.prog_vars
     337      (AST.prog_vars p.Joint.joint_prog)
    338338  in
    339339  { id_univ = Positive.One; current_funct = Positive.One; ident_map =
     
    352352        (Identifiers.empty_map PreIdentifiers.LabelTag)
    353353    in
    354     let { Types.fst = eta7; Types.snd = lmap0 } =
     354    let { Types.fst = eta27395; Types.snd = lmap0 } =