Changeset 2951


Ignore:
Timestamp:
Mar 25, 2013, 11:30:01 PM (6 years ago)
Author:
sacerdot
Message:

New extraction. Novely: a pre-main is used in the back-end. Initialization
of global data is performed in LINToASM.

Note: the cost-emission of the initialization costlabel in the front-end is
virtual, but not performed in the traces I generate and print. To be fixed
(how?)

Location:
extracted
Files:
2 added
110 edited

Legend:

Unmodified
Added
Removed
  • extracted/aSM.ml

    r2873 r2951  
    113113    -> 'a1) -> addressing_mode -> 'a1 **)
    114114let rec addressing_mode_rect_Type4 h_DIRECT h_INDIRECT h_EXT_INDIRECT h_REGISTER h_ACC_A h_ACC_B h_DPTR h_DATA h_DATA16 h_ACC_DPTR h_ACC_PC h_EXT_INDIRECT_DPTR h_INDIRECT_DPTR h_CARRY h_BIT_ADDR h_N_BIT_ADDR h_RELATIVE h_ADDR11 h_ADDR16 = function
    115 | DIRECT x_22221 -> h_DIRECT x_22221
    116 | INDIRECT x_22222 -> h_INDIRECT x_22222
    117 | EXT_INDIRECT x_22223 -> h_EXT_INDIRECT x_22223
    118 | REGISTER x_22224 -> h_REGISTER x_22224
     115| DIRECT x_33 -> h_DIRECT x_33
     116| INDIRECT x_34 -> h_INDIRECT x_34
     117| EXT_INDIRECT x_35 -> h_EXT_INDIRECT x_35
     118| REGISTER x_36 -> h_REGISTER x_36
    119119| ACC_A -> h_ACC_A
    120120| ACC_B -> h_ACC_B
    121121| DPTR -> h_DPTR
    122 | DATA x_22225 -> h_DATA x_22225
    123 | DATA16 x_22226 -> h_DATA16 x_22226
     122| DATA x_37 -> h_DATA x_37
     123| DATA16 x_38 -> h_DATA16 x_38
    124124| ACC_DPTR -> h_ACC_DPTR
    125125| ACC_PC -> h_ACC_PC
     
    127127| INDIRECT_DPTR -> h_INDIRECT_DPTR
    128128| CARRY -> h_CARRY
    129 | BIT_ADDR x_22227 -> h_BIT_ADDR x_22227
    130 | N_BIT_ADDR x_22228 -> h_N_BIT_ADDR x_22228
    131 | RELATIVE x_22229 -> h_RELATIVE x_22229
    132 | ADDR11 x_22230 -> h_ADDR11 x_22230
    133 | ADDR16 x_22231 -> h_ADDR16 x_22231
     129| BIT_ADDR x_39 -> h_BIT_ADDR x_39
     130| N_BIT_ADDR x_40 -> h_N_BIT_ADDR x_40
     131| RELATIVE x_41 -> h_RELATIVE x_41
     132| ADDR11 x_42 -> h_ADDR11 x_42
     133| ADDR16 x_43 -> h_ADDR16 x_43
    134134
    135135(** val addressing_mode_rect_Type5 :
     
    141141    -> 'a1) -> addressing_mode -> 'a1 **)
    142142let rec addressing_mode_rect_Type5 h_DIRECT h_INDIRECT h_EXT_INDIRECT h_REGISTER h_ACC_A h_ACC_B h_DPTR h_DATA h_DATA16 h_ACC_DPTR h_ACC_PC h_EXT_INDIRECT_DPTR h_INDIRECT_DPTR h_CARRY h_BIT_ADDR h_N_BIT_ADDR h_RELATIVE h_ADDR11 h_ADDR16 = function
    143 | DIRECT x_22252 -> h_DIRECT x_22252
    144 | INDIRECT x_22253 -> h_INDIRECT x_22253
    145 | EXT_INDIRECT x_22254 -> h_EXT_INDIRECT x_22254
    146 | REGISTER x_22255 -> h_REGISTER x_22255
     143| DIRECT x_64 -> h_DIRECT x_64
     144| INDIRECT x_65 -> h_INDIRECT x_65
     145| EXT_INDIRECT x_66 -> h_EXT_INDIRECT x_66
     146| REGISTER x_67 -> h_REGISTER x_67
    147147| ACC_A -> h_ACC_A
    148148| ACC_B -> h_ACC_B
    149149| DPTR -> h_DPTR
    150 | DATA x_22256 -> h_DATA x_22256
    151 | DATA16 x_22257 -> h_DATA16 x_22257
     150| DATA x_68 -> h_DATA x_68
     151| DATA16 x_69 -> h_DATA16 x_69
    152152| ACC_DPTR -> h_ACC_DPTR
    153153| ACC_PC -> h_ACC_PC
     
    155155| INDIRECT_DPTR -> h_INDIRECT_DPTR
    156156| CARRY -> h_CARRY
    157 | BIT_ADDR x_22258 -> h_BIT_ADDR x_22258
    158 | N_BIT_ADDR x_22259 -> h_N_BIT_ADDR x_22259
    159 | RELATIVE x_22260 -> h_RELATIVE x_22260
    160 | ADDR11 x_22261 -> h_ADDR11 x_22261
    161 | ADDR16 x_22262 -> h_ADDR16 x_22262
     157| BIT_ADDR x_70 -> h_BIT_ADDR x_70
     158| N_BIT_ADDR x_71 -> h_N_BIT_ADDR x_71
     159| RELATIVE x_72 -> h_RELATIVE x_72
     160| ADDR11 x_73 -> h_ADDR11 x_73
     161| ADDR16 x_74 -> h_ADDR16 x_74
    162162
    163163(** val addressing_mode_rect_Type3 :
     
    169169    -> 'a1) -> addressing_mode -> 'a1 **)
    170170let rec addressing_mode_rect_Type3 h_DIRECT h_INDIRECT h_EXT_INDIRECT h_REGISTER h_ACC_A h_ACC_B h_DPTR h_DATA h_DATA16 h_ACC_DPTR h_ACC_PC h_EXT_INDIRECT_DPTR h_INDIRECT_DPTR h_CARRY h_BIT_ADDR h_N_BIT_ADDR h_RELATIVE h_ADDR11 h_ADDR16 = function
    171 | DIRECT x_22283 -> h_DIRECT x_22283
    172 | INDIRECT x_22284 -> h_INDIRECT x_22284
    173 | EXT_INDIRECT x_22285 -> h_EXT_INDIRECT x_22285
    174 | REGISTER x_22286 -> h_REGISTER x_22286
     171| DIRECT x_95 -> h_DIRECT x_95
     172| INDIRECT x_96 -> h_INDIRECT x_96
     173| EXT_INDIRECT x_97 -> h_EXT_INDIRECT x_97
     174| REGISTER x_98 -> h_REGISTER x_98
    175175| ACC_A -> h_ACC_A
    176176| ACC_B -> h_ACC_B
    177177| DPTR -> h_DPTR
    178 | DATA x_22287 -> h_DATA x_22287
    179 | DATA16 x_22288 -> h_DATA16 x_22288
     178| DATA x_99 -> h_DATA x_99
     179| DATA16 x_100 -> h_DATA16 x_100
    180180| ACC_DPTR -> h_ACC_DPTR
    181181| ACC_PC -> h_ACC_PC
     
    183183| INDIRECT_DPTR -> h_INDIRECT_DPTR
    184184| CARRY -> h_CARRY
    185 | BIT_ADDR x_22289 -> h_BIT_ADDR x_22289
    186 | N_BIT_ADDR x_22290 -> h_N_BIT_ADDR x_22290
    187 | RELATIVE x_22291 -> h_RELATIVE x_22291
    188 | ADDR11 x_22292 -> h_ADDR11 x_22292
    189 | ADDR16 x_22293 -> h_ADDR16 x_22293
     185| BIT_ADDR x_101 -> h_BIT_ADDR x_101
     186| N_BIT_ADDR x_102 -> h_N_BIT_ADDR x_102
     187| RELATIVE x_103 -> h_RELATIVE x_103
     188| ADDR11 x_104 -> h_ADDR11 x_104
     189| ADDR16 x_105 -> h_ADDR16 x_105
    190190
    191191(** val addressing_mode_rect_Type2 :
     
    197197    -> 'a1) -> addressing_mode -> 'a1 **)
    198198let rec addressing_mode_rect_Type2 h_DIRECT h_INDIRECT h_EXT_INDIRECT h_REGISTER h_ACC_A h_ACC_B h_DPTR h_DATA h_DATA16 h_ACC_DPTR h_ACC_PC h_EXT_INDIRECT_DPTR h_INDIRECT_DPTR h_CARRY h_BIT_ADDR h_N_BIT_ADDR h_RELATIVE h_ADDR11 h_ADDR16 = function
    199 | DIRECT x_22314 -> h_DIRECT x_22314
    200 | INDIRECT x_22315 -> h_INDIRECT x_22315
    201 | EXT_INDIRECT x_22316 -> h_EXT_INDIRECT x_22316
    202 | REGISTER x_22317 -> h_REGISTER x_22317
     199| DIRECT x_126 -> h_DIRECT x_126
     200| INDIRECT x_127 -> h_INDIRECT x_127
     201| EXT_INDIRECT x_128 -> h_EXT_INDIRECT x_128
     202| REGISTER x_129 -> h_REGISTER x_129
    203203| ACC_A -> h_ACC_A
    204204| ACC_B -> h_ACC_B
    205205| DPTR -> h_DPTR
    206 | DATA x_22318 -> h_DATA x_22318
    207 | DATA16 x_22319 -> h_DATA16 x_22319
     206| DATA x_130 -> h_DATA x_130
     207| DATA16 x_131 -> h_DATA16 x_131
    208208| ACC_DPTR -> h_ACC_DPTR
    209209| ACC_PC -> h_ACC_PC
     
    211211| INDIRECT_DPTR -> h_INDIRECT_DPTR
    212212| CARRY -> h_CARRY
    213 | BIT_ADDR x_22320 -> h_BIT_ADDR x_22320
    214 | N_BIT_ADDR x_22321 -> h_N_BIT_ADDR x_22321
    215 | RELATIVE x_22322 -> h_RELATIVE x_22322
    216 | ADDR11 x_22323 -> h_ADDR11 x_22323
    217 | ADDR16 x_22324 -> h_ADDR16 x_22324
     213| BIT_ADDR x_132 -> h_BIT_ADDR x_132
     214| N_BIT_ADDR x_133 -> h_N_BIT_ADDR x_133
     215| RELATIVE x_134 -> h_RELATIVE x_134
     216| ADDR11 x_135 -> h_ADDR11 x_135
     217| ADDR16 x_136 -> h_ADDR16 x_136
    218218
    219219(** val addressing_mode_rect_Type1 :
     
    225225    -> 'a1) -> addressing_mode -> 'a1 **)
    226226let rec addressing_mode_rect_Type1 h_DIRECT h_INDIRECT h_EXT_INDIRECT h_REGISTER h_ACC_A h_ACC_B h_DPTR h_DATA h_DATA16 h_ACC_DPTR h_ACC_PC h_EXT_INDIRECT_DPTR h_INDIRECT_DPTR h_CARRY h_BIT_ADDR h_N_BIT_ADDR h_RELATIVE h_ADDR11 h_ADDR16 = function
    227 | DIRECT x_22345 -> h_DIRECT x_22345
    228 | INDIRECT x_22346 -> h_INDIRECT x_22346
    229 | EXT_INDIRECT x_22347 -> h_EXT_INDIRECT x_22347
    230 | REGISTER x_22348 -> h_REGISTER x_22348
     227| DIRECT x_157 -> h_DIRECT x_157
     228| INDIRECT x_158 -> h_INDIRECT x_158
     229| EXT_INDIRECT x_159 -> h_EXT_INDIRECT x_159
     230| REGISTER x_160 -> h_REGISTER x_160
    231231| ACC_A -> h_ACC_A
    232232| ACC_B -> h_ACC_B
    233233| DPTR -> h_DPTR
    234 | DATA x_22349 -> h_DATA x_22349
    235 | DATA16 x_22350 -> h_DATA16 x_22350
     234| DATA x_161 -> h_DATA x_161
     235| DATA16 x_162 -> h_DATA16 x_162
    236236| ACC_DPTR -> h_ACC_DPTR
    237237| ACC_PC -> h_ACC_PC
     
    239239| INDIRECT_DPTR -> h_INDIRECT_DPTR
    240240| CARRY -> h_CARRY
    241 | BIT_ADDR x_22351 -> h_BIT_ADDR x_22351
    242 | N_BIT_ADDR x_22352 -> h_N_BIT_ADDR x_22352
    243 | RELATIVE x_22353 -> h_RELATIVE x_22353
    244 | ADDR11 x_22354 -> h_ADDR11 x_22354
    245 | ADDR16 x_22355 -> h_ADDR16 x_22355
     241| BIT_ADDR x_163 -> h_BIT_ADDR x_163
     242| N_BIT_ADDR x_164 -> h_N_BIT_ADDR x_164
     243| RELATIVE x_165 -> h_RELATIVE x_165
     244| ADDR11 x_166 -> h_ADDR11 x_166
     245| ADDR16 x_167 -> h_ADDR16 x_167
    246246
    247247(** val addressing_mode_rect_Type0 :
     
    253253    -> 'a1) -> addressing_mode -> 'a1 **)
    254254let rec addressing_mode_rect_Type0 h_DIRECT h_INDIRECT h_EXT_INDIRECT h_REGISTER h_ACC_A h_ACC_B h_DPTR h_DATA h_DATA16 h_ACC_DPTR h_ACC_PC h_EXT_INDIRECT_DPTR h_INDIRECT_DPTR h_CARRY h_BIT_ADDR h_N_BIT_ADDR h_RELATIVE h_ADDR11 h_ADDR16 = function
    255 | DIRECT x_22376 -> h_DIRECT x_22376
    256 | INDIRECT x_22377 -> h_INDIRECT x_22377
    257 | EXT_INDIRECT x_22378 -> h_EXT_INDIRECT x_22378
    258 | REGISTER x_22379 -> h_REGISTER x_22379
     255| DIRECT x_188 -> h_DIRECT x_188
     256| INDIRECT x_189 -> h_INDIRECT x_189
     257| EXT_INDIRECT x_190 -> h_EXT_INDIRECT x_190
     258| REGISTER x_191 -> h_REGISTER x_191
    259259| ACC_A -> h_ACC_A
    260260| ACC_B -> h_ACC_B
    261261| DPTR -> h_DPTR
    262 | DATA x_22380 -> h_DATA x_22380
    263 | DATA16 x_22381 -> h_DATA16 x_22381
     262| DATA x_192 -> h_DATA x_192
     263| DATA16 x_193 -> h_DATA16 x_193
    264264| ACC_DPTR -> h_ACC_DPTR
    265265| ACC_PC -> h_ACC_PC
     
    267267| INDIRECT_DPTR -> h_INDIRECT_DPTR
    268268| CARRY -> h_CARRY
    269 | BIT_ADDR x_22382 -> h_BIT_ADDR x_22382
    270 | N_BIT_ADDR x_22383 -> h_N_BIT_ADDR x_22383
    271 | RELATIVE x_22384 -> h_RELATIVE x_22384
    272 | ADDR11 x_22385 -> h_ADDR11 x_22385
    273 | ADDR16 x_22386 -> h_ADDR16 x_22386
     269| BIT_ADDR x_194 -> h_BIT_ADDR x_194
     270| N_BIT_ADDR x_195 -> h_N_BIT_ADDR x_195
     271| RELATIVE x_196 -> h_RELATIVE x_196
     272| ADDR11 x_197 -> h_ADDR11 x_197
     273| ADDR16 x_198 -> h_ADDR16 x_198
    274274
    275275(** val addressing_mode_inv_rect_Type4 :
     
    19261926    Nat.nat -> addressing_mode_tag Vector.vector -> (addressing_mode -> __ ->
    19271927    'a1) -> subaddressing_mode -> 'a1 **)
    1928 let rec subaddressing_mode_rect_Type4 n l h_mk_subaddressing_mode x_22854 =
    1929   let subaddressing_modeel = x_22854 in
     1928let rec subaddressing_mode_rect_Type4 n l h_mk_subaddressing_mode x_666 =
     1929  let subaddressing_modeel = x_666 in
    19301930  h_mk_subaddressing_mode subaddressing_modeel __
    19311931
     
    19331933    Nat.nat -> addressing_mode_tag Vector.vector -> (addressing_mode -> __ ->
    19341934    'a1) -> subaddressing_mode -> 'a1 **)
    1935 let rec subaddressing_mode_rect_Type5 n l h_mk_subaddressing_mode x_22856 =
    1936   let subaddressing_modeel = x_22856 in
     1935let rec subaddressing_mode_rect_Type5 n l h_mk_subaddressing_mode x_668 =
     1936  let subaddressing_modeel = x_668 in
    19371937  h_mk_subaddressing_mode subaddressing_modeel __
    19381938
     
    19401940    Nat.nat -> addressing_mode_tag Vector.vector -> (addressing_mode -> __ ->
    19411941    'a1) -> subaddressing_mode -> 'a1 **)
    1942 let rec subaddressing_mode_rect_Type3 n l h_mk_subaddressing_mode x_22858 =
    1943   let subaddressing_modeel = x_22858 in
     1942let rec subaddressing_mode_rect_Type3 n l h_mk_subaddressing_mode x_670 =
     1943  let subaddressing_modeel = x_670 in
    19441944  h_mk_subaddressing_mode subaddressing_modeel __
    19451945
     
    19471947    Nat.nat -> addressing_mode_tag Vector.vector -> (addressing_mode -> __ ->
    19481948    'a1) -> subaddressing_mode -> 'a1 **)
    1949 let rec subaddressing_mode_rect_Type2 n l h_mk_subaddressing_mode x_22860 =
    1950   let subaddressing_modeel = x_22860 in
     1949let rec subaddressing_mode_rect_Type2 n l h_mk_subaddressing_mode x_672 =
     1950  let subaddressing_modeel = x_672 in
    19511951  h_mk_subaddressing_mode subaddressing_modeel __
    19521952
     
    19541954    Nat.nat -> addressing_mode_tag Vector.vector -> (addressing_mode -> __ ->
    19551955    'a1) -> subaddressing_mode -> 'a1 **)
    1956 let rec subaddressing_mode_rect_Type1 n l h_mk_subaddressing_mode x_22862 =
    1957   let subaddressing_modeel = x_22862 in
     1956let rec subaddressing_mode_rect_Type1 n l h_mk_subaddressing_mode x_674 =
     1957  let subaddressing_modeel = x_674 in
    19581958  h_mk_subaddressing_mode subaddressing_modeel __
    19591959
     
    19611961    Nat.nat -> addressing_mode_tag Vector.vector -> (addressing_mode -> __ ->
    19621962    'a1) -> subaddressing_mode -> 'a1 **)
    1963 let rec subaddressing_mode_rect_Type0 n l h_mk_subaddressing_mode x_22864 =
    1964   let subaddressing_modeel = x_22864 in
     1963let rec subaddressing_mode_rect_Type0 n l h_mk_subaddressing_mode x_676 =
     1964  let subaddressing_modeel = x_676 in
    19651965  h_mk_subaddressing_mode subaddressing_modeel __
    19661966
     
    22882288    'a2 -> 'a2 -> (subaddressing_mode -> 'a2) -> 'a1 preinstruction -> 'a2 **)
    22892289let rec preinstruction_rect_Type4 h_ADD h_ADDC h_SUBB h_INC h_DEC h_MUL h_DIV h_DA h_JC h_JNC h_JB h_JNB h_JBC h_JZ h_JNZ h_CJNE h_DJNZ h_ANL h_ORL h_XRL h_CLR h_CPL h_RL h_RLC h_RR h_RRC h_SWAP h_MOV h_MOVX h_SETB h_PUSH h_POP h_XCH h_XCHD h_RET h_RETI h_NOP h_JMP = function
    2290 | ADD (x_22966, x_22965) -> h_ADD x_22966 x_22965
    2291 | ADDC (x_22968, x_22967) -> h_ADDC x_22968 x_22967
    2292 | SUBB (x_22970, x_22969) -> h_SUBB x_22970 x_22969
    2293 | INC x_22971 -> h_INC x_22971
    2294 | DEC x_22972 -> h_DEC x_22972
    2295 | MUL (x_22974, x_22973) -> h_MUL x_22974 x_22973
    2296 | DIV (x_22976, x_22975) -> h_DIV x_22976 x_22975
    2297 | DA x_22977 -> h_DA x_22977
    2298 | JC x_22978 -> h_JC x_22978
    2299 | JNC x_22979 -> h_JNC x_22979
    2300 | JB (x_22981, x_22980) -> h_JB x_22981 x_22980
    2301 | JNB (x_22983, x_22982) -> h_JNB x_22983 x_22982
    2302 | JBC (x_22985, x_22984) -> h_JBC x_22985 x_22984
    2303 | JZ x_22986 -> h_JZ x_22986
    2304 | JNZ x_22987 -> h_JNZ x_22987
    2305 | CJNE (x_22989, x_22988) -> h_CJNE x_22989 x_22988
    2306 | DJNZ (x_22991, x_22990) -> h_DJNZ x_22991 x_22990
    2307 | ANL x_22992 -> h_ANL x_22992
    2308 | ORL x_22993 -> h_ORL x_22993
    2309 | XRL x_22994 -> h_XRL x_22994
    2310 | CLR x_22995 -> h_CLR x_22995
    2311 | CPL x_22996 -> h_CPL x_22996
    2312 | RL x_22997 -> h_RL x_22997
    2313 | RLC x_22998 -> h_RLC x_22998
    2314 | RR x_22999 -> h_RR x_22999
    2315 | RRC x_23000 -> h_RRC x_23000
    2316 | SWAP x_23001 -> h_SWAP x_23001
    2317 | MOV x_23002 -> h_MOV x_23002
    2318 | MOVX x_23003 -> h_MOVX x_23003
    2319 | SETB x_23004 -> h_SETB x_23004
    2320 | PUSH x_23005 -> h_PUSH x_23005
    2321 | POP x_23006 -> h_POP x_23006
    2322 | XCH (x_23008, x_23007) -> h_XCH x_23008 x_23007
    2323 | XCHD (x_23010, x_23009) -> h_XCHD x_23010 x_23009
     2290| ADD (x_778, x_777) -> h_ADD x_778 x_777
     2291| ADDC (x_780, x_779) -> h_ADDC x_780 x_779
     2292| SUBB (x_782, x_781) -> h_SUBB x_782 x_781
     2293| INC x_783 -> h_INC x_783
     2294| DEC x_784 -> h_DEC x_784
     2295| MUL (x_786, x_785) -> h_MUL x_786 x_785
     2296| DIV (x_788, x_787) -> h_DIV x_788 x_787
     2297| DA x_789 -> h_DA x_789
     2298| JC x_790 -> h_JC x_790
     2299| JNC x_791 -> h_JNC x_791
     2300| JB (x_793, x_792) -> h_JB x_793 x_792
     2301| JNB (x_795, x_794) -> h_JNB x_795 x_794
     2302| JBC (x_797, x_796) -> h_JBC x_797 x_796
     2303| JZ x_798 -> h_JZ x_798
     2304| JNZ x_799 -> h_JNZ x_799
     2305| CJNE (x_801, x_800) -> h_CJNE x_801 x_800
     2306| DJNZ (x_803, x_802) -> h_DJNZ x_803 x_802
     2307| ANL x_804 -> h_ANL x_804
     2308| ORL x_805 -> h_ORL x_805
     2309| XRL x_806 -> h_XRL x_806
     2310| CLR x_807 -> h_CLR x_807
     2311| CPL x_808 -> h_CPL x_808
     2312| RL x_809 -> h_RL x_809
     2313| RLC x_810 -> h_RLC x_810
     2314| RR x_811 -> h_RR x_811
     2315| RRC x_812 -> h_RRC x_812
     2316| SWAP x_813 -> h_SWAP x_813
     2317| MOV x_814 -> h_MOV x_814
     2318| MOVX x_815 -> h_MOVX x_815
     2319| SETB x_816 -> h_SETB x_816
     2320| PUSH x_817 -> h_PUSH x_817
     2321| POP x_818 -> h_POP x_818
     2322| XCH (x_820, x_819) -> h_XCH x_820 x_819
     2323| XCHD (x_822, x_821) -> h_XCHD x_822 x_821
    23242324| RET -> h_RET
    23252325| RETI -> h_RETI
    23262326| NOP -> h_NOP
    2327 | JMP x_23011 -> h_JMP x_23011
     2327| JMP x_823 -> h_JMP x_823
    23282328
    23292329(** val preinstruction_rect_Type5 :
     
    23632363    'a2 -> 'a2 -> (subaddressing_mode -> 'a2) -> 'a1 preinstruction -> 'a2 **)
    23642364let rec preinstruction_rect_Type5 h_ADD h_ADDC h_SUBB h_INC h_DEC h_MUL h_DIV h_DA h_JC h_JNC h_JB h_JNB h_JBC h_JZ h_JNZ h_CJNE h_DJNZ h_ANL h_ORL h_XRL h_CLR h_CPL h_RL h_RLC h_RR h_RRC h_SWAP h_MOV h_MOVX h_SETB h_PUSH h_POP h_XCH h_XCHD h_RET h_RETI h_NOP h_JMP = function
    2365 | ADD (x_23052, x_23051) -> h_ADD x_23052 x_23051
    2366 | ADDC (x_23054, x_23053) -> h_ADDC x_23054 x_23053
    2367 | SUBB (x_23056, x_23055) -> h_SUBB x_23056 x_23055
    2368 | INC x_23057 -> h_INC x_23057
    2369 | DEC x_23058 -> h_DEC x_23058
    2370 | MUL (x_23060, x_23059) -> h_MUL x_23060 x_23059
    2371 | DIV (x_23062, x_23061) -> h_DIV x_23062 x_23061
    2372 | DA x_23063 -> h_DA x_23063
    2373 | JC x_23064 -> h_JC x_23064
    2374 | JNC x_23065 -> h_JNC x_23065
    2375 | JB (x_23067, x_23066) -> h_JB x_23067 x_23066
    2376 | JNB (x_23069, x_23068) -> h_JNB x_23069 x_23068
    2377 | JBC (x_23071, x_23070) -> h_JBC x_23071 x_23070
    2378 | JZ x_23072 -> h_JZ x_23072
    2379 | JNZ x_23073 -> h_JNZ x_23073
    2380 | CJNE (x_23075, x_23074) -> h_CJNE x_23075 x_23074
    2381 | DJNZ (x_23077, x_23076) -> h_DJNZ x_23077 x_23076
    2382 | ANL x_23078 -> h_ANL x_23078
    2383 | ORL x_23079 -> h_ORL x_23079
    2384 | XRL x_23080 -> h_XRL x_23080
    2385 | CLR x_23081 -> h_CLR x_23081
    2386 | CPL x_23082 -> h_CPL x_23082
    2387 | RL x_23083 -> h_RL x_23083
    2388 | RLC x_23084 -> h_RLC x_23084
    2389 | RR x_23085 -> h_RR x_23085
    2390 | RRC x_23086 -> h_RRC x_23086
    2391 | SWAP x_23087 -> h_SWAP x_23087
    2392 | MOV x_23088 -> h_MOV x_23088
    2393 | MOVX x_23089 -> h_MOVX x_23089
    2394 | SETB x_23090 -> h_SETB x_23090
    2395 | PUSH x_23091 -> h_PUSH x_23091
    2396 | POP x_23092 -> h_POP x_23092
    2397 | XCH (x_23094, x_23093) -> h_XCH x_23094 x_23093
    2398 | XCHD (x_23096, x_23095) -> h_XCHD x_23096 x_23095
     2365| ADD (x_864, x_863) -> h_ADD x_864 x_863
     2366| ADDC (x_866, x_865) -> h_ADDC x_866 x_865
     2367| SUBB (x_868, x_867) -> h_SUBB x_868 x_867
     2368| INC x_869 -> h_INC x_869
     2369| DEC x_870 -> h_DEC x_870
     2370| MUL (x_872, x_871) -> h_MUL x_872 x_871
     2371| DIV (x_874, x_873) -> h_DIV x_874 x_873
     2372| DA x_875 -> h_DA x_875
     2373| JC x_876 -> h_JC x_876
     2374| JNC x_877 -> h_JNC x_877
     2375| JB (x_879, x_878) -> h_JB x_879 x_878
     2376| JNB (x_881, x_880) -> h_JNB x_881 x_880
     2377| JBC (x_883, x_882) -> h_JBC x_883 x_882
     2378| JZ x_884 -> h_JZ x_884
     2379| JNZ x_885 -> h_JNZ x_885
     2380| CJNE (x_887, x_886) -> h_CJNE x_887 x_886
     2381| DJNZ (x_889, x_888) -> h_DJNZ x_889 x_888
     2382| ANL x_890 -> h_ANL x_890
     2383| ORL x_891 -> h_ORL x_891
     2384| XRL x_892 -> h_XRL x_892
     2385| CLR x_893 -> h_CLR x_893
     2386| CPL x_894 -> h_CPL x_894
     2387| RL x_895 -> h_RL x_895
     2388| RLC x_896 -> h_RLC x_896
     2389| RR x_897 -> h_RR x_897
     2390| RRC x_898 -> h_RRC x_898
     2391| SWAP x_899 -> h_SWAP x_899
     2392| MOV x_900 -> h_MOV x_900
     2393| MOVX x_901 -> h_MOVX x_901
     2394| SETB x_902 -> h_SETB x_902
     2395| PUSH x_903 -> h_PUSH x_903
     2396| POP x_904 -> h_POP x_904
     2397| XCH (x_906, x_905) -> h_XCH x_906 x_905
     2398| XCHD (x_908, x_907) -> h_XCHD x_908 x_907
    23992399| RET -> h_RET
    24002400| RETI -> h_RETI
    24012401| NOP -> h_NOP
    2402 | JMP x_23097 -> h_JMP x_23097
     2402| JMP x_909 -> h_JMP x_909
    24032403
    24042404(** val preinstruction_rect_Type3 :
     
    24382438    'a2 -> 'a2 -> (subaddressing_mode -> 'a2) -> 'a1 preinstruction -> 'a2 **)
    24392439let rec preinstruction_rect_Type3 h_ADD h_ADDC h_SUBB h_INC h_DEC h_MUL h_DIV h_DA h_JC h_JNC h_JB h_JNB h_JBC h_JZ h_JNZ h_CJNE h_DJNZ h_ANL h_ORL h_XRL h_CLR h_CPL h_RL h_RLC h_RR h_RRC h_SWAP h_MOV h_MOVX h_SETB h_PUSH h_POP h_XCH h_XCHD h_RET h_RETI h_NOP h_JMP = function
    2440 | ADD (x_23138, x_23137) -> h_ADD x_23138 x_23137
    2441 | ADDC (x_23140, x_23139) -> h_ADDC x_23140 x_23139
    2442 | SUBB (x_23142, x_23141) -> h_SUBB x_23142 x_23141
    2443 | INC x_23143 -> h_INC x_23143
    2444 | DEC x_23144 -> h_DEC x_23144
    2445 | MUL (x_23146, x_23145) -> h_MUL x_23146 x_23145
    2446 | DIV (x_23148, x_23147) -> h_DIV x_23148 x_23147
    2447 | DA x_23149 -> h_DA x_23149
    2448 | JC x_23150 -> h_JC x_23150
    2449 | JNC x_23151 -> h_JNC x_23151
    2450 | JB (x_23153, x_23152) -> h_JB x_23153 x_23152
    2451 | JNB (x_23155, x_23154) -> h_JNB x_23155 x_23154
    2452 | JBC (x_23157, x_23156) -> h_JBC x_23157 x_23156
    2453 | JZ x_23158 -> h_JZ x_23158
    2454 | JNZ x_23159 -> h_JNZ x_23159
    2455 | CJNE (x_23161, x_23160) -> h_CJNE x_23161 x_23160
    2456 | DJNZ (x_23163, x_23162) -> h_DJNZ x_23163 x_23162
    2457 | ANL x_23164 -> h_ANL x_23164
    2458 | ORL x_23165 -> h_ORL x_23165
    2459 | XRL x_23166 -> h_XRL x_23166
    2460 | CLR x_23167 -> h_CLR x_23167
    2461 | CPL x_23168 -> h_CPL x_23168
    2462 | RL x_23169 -> h_RL x_23169
    2463 | RLC x_23170 -> h_RLC x_23170
    2464 | RR x_23171 -> h_RR x_23171
    2465 | RRC x_23172 -> h_RRC x_23172
    2466 | SWAP x_23173 -> h_SWAP x_23173
    2467 | MOV x_23174 -> h_MOV x_23174
    2468 | MOVX x_23175 -> h_MOVX x_23175
    2469 | SETB x_23176 -> h_SETB x_23176
    2470 | PUSH x_23177 -> h_PUSH x_23177
    2471 | POP x_23178 -> h_POP x_23178
    2472 | XCH (x_23180, x_23179) -> h_XCH x_23180 x_23179
    2473 | XCHD (x_23182, x_23181) -> h_XCHD x_23182 x_23181
     2440| ADD (x_950, x_949) -> h_ADD x_950 x_949
     2441| ADDC (x_952, x_951) -> h_ADDC x_952 x_951
     2442| SUBB (x_954, x_953) -> h_SUBB x_954 x_953
     2443| INC x_955 -> h_INC x_955
     2444| DEC x_956 -> h_DEC x_956
     2445| MUL (x_958, x_957) -> h_MUL x_958 x_957
     2446| DIV (x_960, x_959) -> h_DIV x_960 x_959
     2447| DA x_961 -> h_DA x_961
     2448| JC x_962 -> h_JC x_962
     2449| JNC x_963 -> h_JNC x_963
     2450| JB (x_965, x_964) -> h_JB x_965 x_964
     2451| JNB (x_967, x_966) -> h_JNB x_967 x_966
     2452| JBC (x_969, x_968) -> h_JBC x_969 x_968
     2453| JZ x_970 -> h_JZ x_970
     2454| JNZ x_971 -> h_JNZ x_971
     2455| CJNE (x_973, x_972) -> h_CJNE x_973 x_972
     2456| DJNZ (x_975, x_974) -> h_DJNZ x_975 x_974
     2457| ANL x_976 -> h_ANL x_976
     2458| ORL x_977 -> h_ORL x_977
     2459| XRL x_978 -> h_XRL x_978
     2460| CLR x_979 -> h_CLR x_979
     2461| CPL x_980 -> h_CPL x_980
     2462| RL x_981 -> h_RL x_981
     2463| RLC x_982 -> h_RLC x_982
     2464| RR x_983 -> h_RR x_983
     2465| RRC x_984 -> h_RRC x_984
     2466| SWAP x_985 -> h_SWAP x_985
     2467| MOV x_986 -> h_MOV x_986
     2468| MOVX x_987 -> h_MOVX x_987
     2469| SETB x_988 -> h_SETB x_988
     2470| PUSH x_989 -> h_PUSH x_989
     2471| POP x_990 -> h_POP x_990
     2472| XCH (x_992, x_991) -> h_XCH x_992 x_991
     2473| XCHD (x_994, x_993) -> h_XCHD x_994 x_993
    24742474| RET -> h_RET
    24752475| RETI -> h_RETI
    24762476| NOP -> h_NOP
    2477 | JMP x_23183 -> h_JMP x_23183
     2477| JMP x_995 -> h_JMP x_995
    24782478
    24792479(** val preinstruction_rect_Type2 :
     
    25132513    'a2 -> 'a2 -> (subaddressing_mode -> 'a2) -> 'a1 preinstruction -> 'a2 **)
    25142514let rec preinstruction_rect_Type2 h_ADD h_ADDC h_SUBB h_INC h_DEC h_MUL h_DIV h_DA h_JC h_JNC h_JB h_JNB h_JBC h_JZ h_JNZ h_CJNE h_DJNZ h_ANL h_ORL h_XRL h_CLR h_CPL h_RL h_RLC h_RR h_RRC h_SWAP h_MOV h_MOVX h_SETB h_PUSH h_POP h_XCH h_XCHD h_RET h_RETI h_NOP h_JMP = function
    2515 | ADD (x_23224, x_23223) -> h_ADD x_23224 x_23223
    2516 | ADDC (x_23226, x_23225) -> h_ADDC x_23226 x_23225
    2517 | SUBB (x_23228, x_23227) -> h_SUBB x_23228 x_23227
    2518 | INC x_23229 -> h_INC x_23229
    2519 | DEC x_23230 -> h_DEC x_23230
    2520 | MUL (x_23232, x_23231) -> h_MUL x_23232 x_23231
    2521 | DIV (x_23234, x_23233) -> h_DIV x_23234 x_23233
    2522 | DA x_23235 -> h_DA x_23235
    2523 | JC x_23236 -> h_JC x_23236
    2524 | JNC x_23237 -> h_JNC x_23237
    2525 | JB (x_23239, x_23238) -> h_JB x_23239 x_23238
    2526 | JNB (x_23241, x_23240) -> h_JNB x_23241 x_23240
    2527 | JBC (x_23243, x_23242) -> h_JBC x_23243 x_23242
    2528 | JZ x_23244 -> h_JZ x_23244
    2529 | JNZ x_23245 -> h_JNZ x_23245
    2530 | CJNE (x_23247, x_23246) -> h_CJNE x_23247 x_23246
    2531 | DJNZ (x_23249, x_23248) -> h_DJNZ x_23249 x_23248
    2532 | ANL x_23250 -> h_ANL x_23250
    2533 | ORL x_23251 -> h_ORL x_23251
    2534 | XRL x_23252 -> h_XRL x_23252
    2535 | CLR x_23253 -> h_CLR x_23253
    2536 | CPL x_23254 -> h_CPL x_23254
    2537 | RL x_23255 -> h_RL x_23255
    2538 | RLC x_23256 -> h_RLC x_23256
    2539 | RR x_23257 -> h_RR x_23257
    2540 | RRC x_23258 -> h_RRC x_23258
    2541 | SWAP x_23259 -> h_SWAP x_23259
    2542 | MOV x_23260 -> h_MOV x_23260
    2543 | MOVX x_23261 -> h_MOVX x_23261
    2544 | SETB x_23262 -> h_SETB x_23262
    2545 | PUSH x_23263 -> h_PUSH x_23263
    2546 | POP x_23264 -> h_POP x_23264
    2547 | XCH (x_23266, x_23265) -> h_XCH x_23266 x_23265
    2548 | XCHD (x_23268, x_23267) -> h_XCHD x_23268 x_23267
     2515| ADD (x_1036, x_1035) -> h_ADD x_1036 x_1035
     2516| ADDC (x_1038, x_1037) -> h_ADDC x_1038 x_1037
     2517| SUBB (x_1040, x_1039) -> h_SUBB x_1040 x_1039
     2518| INC x_1041 -> h_INC x_1041
     2519| DEC x_1042 -> h_DEC x_1042
     2520| MUL (x_1044, x_1043) -> h_MUL x_1044 x_1043
     2521| DIV (x_1046, x_1045) -> h_DIV x_1046 x_1045
     2522| DA x_1047 -> h_DA x_1047
     2523| JC x_1048 -> h_JC x_1048
     2524| JNC x_1049 -> h_JNC x_1049
     2525| JB (x_1051, x_1050) -> h_JB x_1051 x_1050
     2526| JNB (x_1053, x_1052) -> h_JNB x_1053 x_1052
     2527| JBC (x_1055, x_1054) -> h_JBC x_1055 x_1054
     2528| JZ x_1056 -> h_JZ x_1056
     2529| JNZ x_1057 -> h_JNZ x_1057
     2530| CJNE (x_1059, x_1058) -> h_CJNE x_1059 x_1058
     2531| DJNZ (x_1061, x_1060) -> h_DJNZ x_1061 x_1060
     2532| ANL x_1062 -> h_ANL x_1062
     2533| ORL x_1063 -> h_ORL x_1063
     2534| XRL x_1064 -> h_XRL x_1064
     2535| CLR x_1065 -> h_CLR x_1065
     2536| CPL x_1066 -> h_CPL x_1066
     2537| RL x_1067 -> h_RL x_1067
     2538| RLC x_1068 -> h_RLC x_1068
     2539| RR x_1069 -> h_RR x_1069
     2540| RRC x_1070 -> h_RRC x_1070
     2541| SWAP x_1071 -> h_SWAP x_1071
     2542| MOV x_1072 -> h_MOV x_1072
     2543| MOVX x_1073 -> h_MOVX x_1073
     2544| SETB x_1074 -> h_SETB x_1074
     2545| PUSH x_1075 -> h_PUSH x_1075
     2546| POP x_1076 -> h_POP x_1076
     2547| XCH (x_1078, x_1077) -> h_XCH x_1078 x_1077
     2548| XCHD (x_1080, x_1079) -> h_XCHD x_1080 x_1079
    25492549| RET -> h_RET
    25502550| RETI -> h_RETI
    25512551| NOP -> h_NOP
    2552 | JMP x_23269 -> h_JMP x_23269
     2552| JMP x_1081 -> h_JMP x_1081
    25532553
    25542554(** val preinstruction_rect_Type1 :
     
    25882588    'a2 -> 'a2 -> (subaddressing_mode -> 'a2) -> 'a1 preinstruction -> 'a2 **)
    25892589let rec preinstruction_rect_Type1 h_ADD h_ADDC h_SUBB h_INC h_DEC h_MUL h_DIV h_DA h_JC h_JNC h_JB h_JNB h_JBC h_JZ h_JNZ h_CJNE h_DJNZ h_ANL h_ORL h_XRL h_CLR h_CPL h_RL h_RLC h_RR h_RRC h_SWAP h_MOV h_MOVX h_SETB h_PUSH h_POP h_XCH h_XCHD h_RET h_RETI h_NOP h_JMP = function
    2590 | ADD (x_23310, x_23309) -> h_ADD x_23310 x_23309
    2591 | ADDC (x_23312, x_23311) -> h_ADDC x_23312 x_23311
    2592 | SUBB (x_23314, x_23313) -> h_SUBB x_23314 x_23313
    2593 | INC x_23315 -> h_INC x_23315
    2594 | DEC x_23316 -> h_DEC x_23316
    2595 | MUL (x_23318, x_23317) -> h_MUL x_23318 x_23317
    2596 | DIV (x_23320, x_23319) -> h_DIV x_23320 x_23319
    2597 | DA x_23321 -> h_DA x_23321
    2598 | JC x_23322 -> h_JC x_23322
    2599 | JNC x_23323 -> h_JNC x_23323
    2600 | JB (x_23325, x_23324) -> h_JB x_23325 x_23324
    2601 | JNB (x_23327, x_23326) -> h_JNB x_23327 x_23326
    2602 | JBC (x_23329, x_23328) -> h_JBC x_23329 x_23328
    2603 | JZ x_23330 -> h_JZ x_23330
    2604 | JNZ x_23331 -> h_JNZ x_23331
    2605 | CJNE (x_23333, x_23332) -> h_CJNE x_23333 x_23332
    2606 | DJNZ (x_23335, x_23334) -> h_DJNZ x_23335 x_23334
    2607 | ANL x_23336 -> h_ANL x_23336
    2608 | ORL x_23337 -> h_ORL x_23337
    2609 | XRL x_23338 -> h_XRL x_23338
    2610 | CLR x_23339 -> h_CLR x_23339
    2611 | CPL x_23340 -> h_CPL x_23340
    2612 | RL x_23341 -> h_RL x_23341
    2613 | RLC x_23342 -> h_RLC x_23342
    2614 | RR x_23343 -> h_RR x_23343
    2615 | RRC x_23344 -> h_RRC x_23344
    2616 | SWAP x_23345 -> h_SWAP x_23345
    2617 | MOV x_23346 -> h_MOV x_23346
    2618 | MOVX x_23347 -> h_MOVX x_23347
    2619 | SETB x_23348 -> h_SETB x_23348
    2620 | PUSH x_23349 -> h_PUSH x_23349
    2621 | POP x_23350 -> h_POP x_23350
    2622 | XCH (x_23352, x_23351) -> h_XCH x_23352 x_23351
    2623 | XCHD (x_23354, x_23353) -> h_XCHD x_23354 x_23353
     2590| ADD (x_1122, x_1121) -> h_ADD x_1122 x_1121
     2591| ADDC (x_1124, x_1123) -> h_ADDC x_1124 x_1123
     2592| SUBB (x_1126, x_1125) -> h_SUBB x_1126 x_1125
     2593| INC x_1127 -> h_INC x_1127
     2594| DEC x_1128 -> h_DEC x_1128
     2595| MUL (x_1130, x_1129) -> h_MUL x_1130 x_1129
     2596| DIV (x_1132, x_1131) -> h_DIV x_1132 x_1131
     2597| DA x_1133 -> h_DA x_1133
     2598| JC x_1134 -> h_JC x_1134
     2599| JNC x_1135 -> h_JNC x_1135
     2600| JB (x_1137, x_1136) -> h_JB x_1137 x_1136
     2601| JNB (x_1139, x_1138) -> h_JNB x_1139 x_1138
     2602| JBC (x_1141, x_1140) -> h_JBC x_1141 x_1140
     2603| JZ x_1142 -> h_JZ x_1142
     2604| JNZ x_1143 -> h_JNZ x_1143
     2605| CJNE (x_1145, x_1144) -> h_CJNE x_1145 x_1144
     2606| DJNZ (x_1147, x_1146) -> h_DJNZ x_1147 x_1146
     2607| ANL x_1148 -> h_ANL x_1148
     2608| ORL x_1149 -> h_ORL x_1149
     2609| XRL x_1150 -> h_XRL x_1150
     2610| CLR x_1151 -> h_CLR x_1151
     2611| CPL x_1152 -> h_CPL x_1152
     2612| RL x_1153 -> h_RL x_1153
     2613| RLC x_1154 -> h_RLC x_1154
     2614| RR x_1155 -> h_RR x_1155
     2615| RRC x_1156 -> h_RRC x_1156
     2616| SWAP x_1157 -> h_SWAP x_1157
     2617| MOV x_1158 -> h_MOV x_1158
     2618| MOVX x_1159 -> h_MOVX x_1159
     2619| SETB x_1160 -> h_SETB x_1160
     2620| PUSH x_1161 -> h_PUSH x_1161
     2621| POP x_1162 -> h_POP x_1162
     2622| XCH (x_1164, x_1163) -> h_XCH x_1164 x_1163
     2623| XCHD (x_1166, x_1165) -> h_XCHD x_1166 x_1165
    26242624| RET -> h_RET
    26252625| RETI -> h_RETI
    26262626| NOP -> h_NOP
    2627 | JMP x_23355 -> h_JMP x_23355
     2627| JMP x_1167 -> h_JMP x_1167
    26282628
    26292629(** val preinstruction_rect_Type0 :
     
    26632663    'a2 -> 'a2 -> (subaddressing_mode -> 'a2) -> 'a1 preinstruction -> 'a2 **)
    26642664let rec preinstruction_rect_Type0 h_ADD h_ADDC h_SUBB h_INC h_DEC h_MUL h_DIV h_DA h_JC h_JNC h_JB h_JNB h_JBC h_JZ h_JNZ h_CJNE h_DJNZ h_ANL h_ORL h_XRL h_CLR h_CPL h_RL h_RLC h_RR h_RRC h_SWAP h_MOV h_MOVX h_SETB h_PUSH h_POP h_XCH h_XCHD h_RET h_RETI h_NOP h_JMP = function
    2665 | ADD (x_23396, x_23395) -> h_ADD x_23396 x_23395
    2666 | ADDC (x_23398, x_23397) -> h_ADDC x_23398 x_23397
    2667 | SUBB (x_23400, x_23399) -> h_SUBB x_23400 x_23399
    2668 | INC x_23401 -> h_INC x_23401
    2669 | DEC x_23402 -> h_DEC x_23402
    2670 | MUL (x_23404, x_23403) -> h_MUL x_23404 x_23403
    2671 | DIV (x_23406, x_23405) -> h_DIV x_23406 x_23405
    2672 | DA x_23407 -> h_DA x_23407
    2673 | JC x_23408 -> h_JC x_23408
    2674 | JNC x_23409 -> h_JNC x_23409
    2675 | JB (x_23411, x_23410) -> h_JB x_23411 x_23410
    2676 | JNB (x_23413, x_23412) -> h_JNB x_23413 x_23412
    2677 | JBC (x_23415, x_23414) -> h_JBC x_23415 x_23414
    2678 | JZ x_23416 -> h_JZ x_23416
    2679 | JNZ x_23417 -> h_JNZ x_23417
    2680 | CJNE (x_23419, x_23418) -> h_CJNE x_23419 x_23418
    2681 | DJNZ (x_23421, x_23420) -> h_DJNZ x_23421 x_23420
    2682 | ANL x_23422 -> h_ANL x_23422
    2683 | ORL x_23423 -> h_ORL x_23423
    2684 | XRL x_23424 -> h_XRL x_23424
    2685 | CLR x_23425 -> h_CLR x_23425
    2686 | CPL x_23426 -> h_CPL x_23426
    2687 | RL x_23427 -> h_RL x_23427
    2688 | RLC x_23428 -> h_RLC x_23428
    2689 | RR x_23429 -> h_RR x_23429
    2690 | RRC x_23430 -> h_RRC x_23430
    2691 | SWAP x_23431 -> h_SWAP x_23431
    2692 | MOV x_23432 -> h_MOV x_23432
    2693 | MOVX x_23433 -> h_MOVX x_23433
    2694 | SETB x_23434 -> h_SETB x_23434
    2695 | PUSH x_23435 -> h_PUSH x_23435
    2696 | POP x_23436 -> h_POP x_23436
    2697 | XCH (x_23438, x_23437) -> h_XCH x_23438 x_23437
    2698 | XCHD (x_23440, x_23439) -> h_XCHD x_23440 x_23439
     2665| ADD (x_1208, x_1207) -> h_ADD x_1208 x_1207
     2666| ADDC (x_1210, x_1209) -> h_ADDC x_1210 x_1209
     2667| SUBB (x_1212, x_1211) -> h_SUBB x_1212 x_1211
     2668| INC x_1213 -> h_INC x_1213
     2669| DEC x_1214 -> h_DEC x_1214
     2670| MUL (x_1216, x_1215) -> h_MUL x_1216 x_1215
     2671| DIV (x_1218, x_1217) -> h_DIV x_1218 x_1217
     2672| DA x_1219 -> h_DA x_1219
     2673| JC x_1220 -> h_JC x_1220
     2674| JNC x_1221 -> h_JNC x_1221
     2675| JB (x_1223, x_1222) -> h_JB x_1223 x_1222
     2676| JNB (x_1225, x_1224) -> h_JNB x_1225 x_1224
     2677| JBC (x_1227, x_1226) -> h_JBC x_1227 x_1226
     2678| JZ x_1228 -> h_JZ x_1228
     2679| JNZ x_1229 -> h_JNZ x_1229
     2680| CJNE (x_1231, x_1230) -> h_CJNE x_1231 x_1230
     2681| DJNZ (x_1233, x_1232) -> h_DJNZ x_1233 x_1232
     2682| ANL x_1234 -> h_ANL x_1234
     2683| ORL x_1235 -> h_ORL x_1235
     2684| XRL x_1236 -> h_XRL x_1236
     2685| CLR x_1237 -> h_CLR x_1237
     2686| CPL x_1238 -> h_CPL x_1238
     2687| RL x_1239 -> h_RL x_1239
     2688| RLC x_1240 -> h_RLC x_1240
     2689| RR x_1241 -> h_RR x_1241
     2690| RRC x_1242 -> h_RRC x_1242
     2691| SWAP x_1243 -> h_SWAP x_1243
     2692| MOV x_1244 -> h_MOV x_1244
     2693| MOVX x_1245 -> h_MOVX x_1245
     2694| SETB x_1246 -> h_SETB x_1246
     2695| PUSH x_1247 -> h_PUSH x_1247
     2696| POP x_1248 -> h_POP x_1248
     2697| XCH (x_1250, x_1249) -> h_XCH x_1250 x_1249
     2698| XCHD (x_1252, x_1251) -> h_XCHD x_1252 x_1251
    26992699| RET -> h_RET
    27002700| RETI -> h_RETI
    27012701| NOP -> h_NOP
    2702 | JMP x_23441 -> h_JMP x_23441
     2702| JMP x_1253 -> h_JMP x_1253
    27032703
    27042704(** val preinstruction_inv_rect_Type4 :
     
    51045104    'a1 **)
    51055105let rec instruction_rect_Type4 h_ACALL h_LCALL h_AJMP h_LJMP h_SJMP h_MOVC h_RealInstruction = function
    5106 | ACALL x_24013 -> h_ACALL x_24013
    5107 | LCALL x_24014 -> h_LCALL x_24014
    5108 | AJMP x_24015 -> h_AJMP x_24015
    5109 | LJMP x_24016 -> h_LJMP x_24016
    5110 | SJMP x_24017 -> h_SJMP x_24017
    5111 | MOVC (x_24019, x_24018) -> h_MOVC x_24019 x_24018
    5112 | RealInstruction x_24020 -> h_RealInstruction x_24020
     5106| ACALL x_1825 -> h_ACALL x_1825
     5107| LCALL x_1826 -> h_LCALL x_1826
     5108| AJMP x_1827 -> h_AJMP x_1827
     5109| LJMP x_1828 -> h_LJMP x_1828
     5110| SJMP x_1829 -> h_SJMP x_1829
     5111| MOVC (x_1831, x_1830) -> h_MOVC x_1831 x_1830
     5112| RealInstruction x_1832 -> h_RealInstruction x_1832
    51135113
    51145114(** val instruction_rect_Type5 :
     
    51195119    'a1 **)
    51205120let rec instruction_rect_Type5 h_ACALL h_LCALL h_AJMP h_LJMP h_SJMP h_MOVC h_RealInstruction = function
    5121 | ACALL x_24029 -> h_ACALL x_24029
    5122 | LCALL x_24030 -> h_LCALL x_24030
    5123 | AJMP x_24031 -> h_AJMP x_24031
    5124 | LJMP x_24032 -> h_LJMP x_24032
    5125 | SJMP x_24033 -> h_SJMP x_24033
    5126 | MOVC (x_24035, x_24034) -> h_MOVC x_24035 x_24034
    5127 | RealInstruction x_24036 -> h_RealInstruction x_24036
     5121| ACALL x_1841 -> h_ACALL x_1841
     5122| LCALL x_1842 -> h_LCALL x_1842
     5123| AJMP x_1843 -> h_AJMP x_1843
     5124| LJMP x_1844 -> h_LJMP x_1844
     5125| SJMP x_1845 -> h_SJMP x_1845
     5126| MOVC (x_1847, x_1846) -> h_MOVC x_1847 x_1846
     5127| RealInstruction x_1848 -> h_RealInstruction x_1848
    51285128
    51295129(** val instruction_rect_Type3 :
     
    51345134    'a1 **)
    51355135let rec instruction_rect_Type3 h_ACALL h_LCALL h_AJMP h_LJMP h_SJMP h_MOVC h_RealInstruction = function
    5136 | ACALL x_24045 -> h_ACALL x_24045
    5137 | LCALL x_24046 -> h_LCALL x_24046
    5138 | AJMP x_24047 -> h_AJMP x_24047
    5139 | LJMP x_24048 -> h_LJMP x_24048
    5140 | SJMP x_24049 -> h_SJMP x_24049
    5141 | MOVC (x_24051, x_24050) -> h_MOVC x_24051 x_24050
    5142 | RealInstruction x_24052 -> h_RealInstruction x_24052
     5136| ACALL x_1857 -> h_ACALL x_1857
     5137| LCALL x_1858 -> h_LCALL x_1858
     5138| AJMP x_1859 -> h_AJMP x_1859
     5139| LJMP x_1860 -> h_LJMP x_1860
     5140| SJMP x_1861 -> h_SJMP x_1861
     5141| MOVC (x_1863, x_1862) -> h_MOVC x_1863 x_1862
     5142| RealInstruction x_1864 -> h_RealInstruction x_1864
    51435143
    51445144(** val instruction_rect_Type2 :
     
    51495149    'a1 **)
    51505150let rec instruction_rect_Type2 h_ACALL h_LCALL h_AJMP h_LJMP h_SJMP h_MOVC h_RealInstruction = function
    5151 | ACALL x_24061 -> h_ACALL x_24061
    5152 | LCALL x_24062 -> h_LCALL x_24062
    5153 | AJMP x_24063 -> h_AJMP x_24063
    5154 | LJMP x_24064 -> h_LJMP x_24064
    5155 | SJMP x_24065 -> h_SJMP x_24065
    5156 | MOVC (x_24067, x_24066) -> h_MOVC x_24067 x_24066
    5157 | RealInstruction x_24068 -> h_RealInstruction x_24068
     5151| ACALL x_1873 -> h_ACALL x_1873
     5152| LCALL x_1874 -> h_LCALL x_1874
     5153| AJMP x_1875 -> h_AJMP x_1875
     5154| LJMP x_1876 -> h_LJMP x_1876
     5155| SJMP x_1877 -> h_SJMP x_1877
     5156| MOVC (x_1879, x_1878) -> h_MOVC x_1879 x_1878
     5157| RealInstruction x_1880 -> h_RealInstruction x_1880
    51585158
    51595159(** val instruction_rect_Type1 :
     
    51645164    'a1 **)
    51655165let rec instruction_rect_Type1 h_ACALL h_LCALL h_AJMP h_LJMP h_SJMP h_MOVC h_RealInstruction = function
    5166 | ACALL x_24077 -> h_ACALL x_24077
    5167 | LCALL x_24078 -> h_LCALL x_24078
    5168 | AJMP x_24079 -> h_AJMP x_24079
    5169 | LJMP x_24080 -> h_LJMP x_24080
    5170 | SJMP x_24081 -> h_SJMP x_24081
    5171 | MOVC (x_24083, x_24082) -> h_MOVC x_24083 x_24082
    5172 | RealInstruction x_24084 -> h_RealInstruction x_24084
     5166| ACALL x_1889 -> h_ACALL x_1889
     5167| LCALL x_1890 -> h_LCALL x_1890
     5168| AJMP x_1891 -> h_AJMP x_1891
     5169| LJMP x_1892 -> h_LJMP x_1892
     5170| SJMP x_1893 -> h_SJMP x_1893
     5171| MOVC (x_1895, x_1894) -> h_MOVC x_1895 x_1894
     5172| RealInstruction x_1896 -> h_RealInstruction x_1896
    51735173
    51745174(** val instruction_rect_Type0 :
     
    51795179    'a1 **)
    51805180let rec instruction_rect_Type0 h_ACALL h_LCALL h_AJMP h_LJMP h_SJMP h_MOVC h_RealInstruction = function
    5181 | ACALL x_24093 -> h_ACALL x_24093
    5182 | LCALL x_24094 -> h_LCALL x_24094
    5183 | AJMP x_24095 -> h_AJMP x_24095
    5184 | LJMP x_24096 -> h_LJMP x_24096
    5185 | SJMP x_24097 -> h_SJMP x_24097
    5186 | MOVC (x_24099, x_24098) -> h_MOVC x_24099 x_24098
    5187 | RealInstruction x_24100 -> h_RealInstruction x_24100
     5181| ACALL x_1905 -> h_ACALL x_1905
     5182| LCALL x_1906 -> h_LCALL x_1906
     5183| AJMP x_1907 -> h_AJMP x_1907
     5184| LJMP x_1908 -> h_LJMP x_1908
     5185| SJMP x_1909 -> h_SJMP x_1909
     5186| MOVC (x_1911, x_1910) -> h_MOVC x_1911 x_1910
     5187| RealInstruction x_1912 -> h_RealInstruction x_1912
    51885188
    51895189(** val instruction_inv_rect_Type4 :
     
    54765476    -> 'a1 **)
    54775477let rec pseudo_instruction_rect_Type4 h_Instruction h_Comment h_Cost h_Jmp h_Jnz h_MovSuccessor h_Call h_Mov = function
    5478 | Instruction x_24266 -> h_Instruction x_24266
    5479 | Comment x_24267 -> h_Comment x_24267
    5480 | Cost x_24268 -> h_Cost x_24268
    5481 | Jmp x_24269 -> h_Jmp x_24269
    5482 | Jnz (x_24272, x_24271, x_24270) -> h_Jnz x_24272 x_24271 x_24270
    5483 | MovSuccessor (x_24275, x_24274, x_24273) ->
    5484   h_MovSuccessor x_24275 x_24274 x_24273
    5485 | Call x_24276 -> h_Call x_24276
    5486 | Mov (x_24278, x_24277) -> h_Mov x_24278 x_24277
     5478| Instruction x_2078 -> h_Instruction x_2078
     5479| Comment x_2079 -> h_Comment x_2079
     5480| Cost x_2080 -> h_Cost x_2080
     5481| Jmp x_2081 -> h_Jmp x_2081
     5482| Jnz (x_2084, x_2083, x_2082) -> h_Jnz x_2084 x_2083 x_2082
     5483| MovSuccessor (x_2087, x_2086, x_2085) ->
     5484  h_MovSuccessor x_2087 x_2086 x_2085
     5485| Call x_2088 -> h_Call x_2088
     5486| Mov (x_2090, x_2089) -> h_Mov x_2090 x_2089
    54875487
    54885488(** val pseudo_instruction_rect_Type5 :
     
    54945494    -> 'a1 **)
    54955495let rec pseudo_instruction_rect_Type5 h_Instruction h_Comment h_Cost h_Jmp h_Jnz h_MovSuccessor h_Call h_Mov = function
    5496 | Instruction x_24288 -> h_Instruction x_24288
    5497 | Comment x_24289 -> h_Comment x_24289
    5498 | Cost x_24290 -> h_Cost x_24290
    5499 | Jmp x_24291 -> h_Jmp x_24291
    5500 | Jnz (x_24294, x_24293, x_24292) -> h_Jnz x_24294 x_24293 x_24292
    5501 | MovSuccessor (x_24297, x_24296, x_24295) ->
    5502   h_MovSuccessor x_24297 x_24296 x_24295
    5503 | Call x_24298 -> h_Call x_24298
    5504 | Mov (x_24300, x_24299) -> h_Mov x_24300 x_24299
     5496| Instruction x_2100 -> h_Instruction x_2100
     5497| Comment x_2101 -> h_Comment x_2101
     5498| Cost x_2102 -> h_Cost x_2102
     5499| Jmp x_2103 -> h_Jmp x_2103
     5500| Jnz (x_2106, x_2105, x_2104) -> h_Jnz x_2106 x_2105 x_2104
     5501| MovSuccessor (x_2109, x_2108, x_2107) ->
     5502  h_MovSuccessor x_2109 x_2108 x_2107
     5503| Call x_2110 -> h_Call x_2110
     5504| Mov (x_2112, x_2111) -> h_Mov x_2112 x_2111
    55055505
    55065506(** val pseudo_instruction_rect_Type3 :
     
    55125512    -> 'a1 **)
    55135513let rec pseudo_instruction_rect_Type3 h_Instruction h_Comment h_Cost h_Jmp h_Jnz h_MovSuccessor h_Call h_Mov = function
    5514 | Instruction x_24310 -> h_Instruction x_24310
    5515 | Comment x_24311 -> h_Comment x_24311
    5516 | Cost x_24312 -> h_Cost x_24312
    5517 | Jmp x_24313 -> h_Jmp x_24313
    5518 | Jnz (x_24316, x_24315, x_24314) -> h_Jnz x_24316 x_24315 x_24314
    5519 | MovSuccessor (x_24319, x_24318, x_24317) ->
    5520   h_MovSuccessor x_24319 x_24318 x_24317
    5521 | Call x_24320 -> h_Call x_24320
    5522 | Mov (x_24322, x_24321) -> h_Mov x_24322 x_24321
     5514| Instruction x_2122 -> h_Instruction x_2122
     5515| Comment x_2123 -> h_Comment x_2123
     5516| Cost x_2124 -> h_Cost x_2124
     5517| Jmp x_2125 -> h_Jmp x_2125
     5518| Jnz (x_2128, x_2127, x_2126) -> h_Jnz x_2128 x_2127 x_2126
     5519| MovSuccessor (x_2131, x_2130, x_2129) ->
     5520  h_MovSuccessor x_2131 x_2130 x_2129
     5521| Call x_2132 -> h_Call x_2132
     5522| Mov (x_2134, x_2133) -> h_Mov x_2134 x_2133
    55235523
    55245524(** val pseudo_instruction_rect_Type2 :
     
    55305530    -> 'a1 **)
    55315531let rec pseudo_instruction_rect_Type2 h_Instruction h_Comment h_Cost h_Jmp h_Jnz h_MovSuccessor h_Call h_Mov = function
    5532 | Instruction x_24332 -> h_Instruction x_24332
    5533 | Comment x_24333 -> h_Comment x_24333
    5534 | Cost x_24334 -> h_Cost x_24334
    5535 | Jmp x_24335 -> h_Jmp x_24335
    5536 | Jnz (x_24338, x_24337, x_24336) -> h_Jnz x_24338 x_24337 x_24336
    5537 | MovSuccessor (x_24341, x_24340, x_24339) ->
    5538   h_MovSuccessor x_24341 x_24340 x_24339
    5539 | Call x_24342 -> h_Call x_24342
    5540 | Mov (x_24344, x_24343) -> h_Mov x_24344 x_24343
     5532| Instruction x_2144 -> h_Instruction x_2144
     5533| Comment x_2145 -> h_Comment x_2145
     5534| Cost x_2146 -> h_Cost x_2146
     5535| Jmp x_2147 -> h_Jmp x_2147
     5536| Jnz (x_2150, x_2149, x_2148) -> h_Jnz x_2150 x_2149 x_2148
     5537| MovSuccessor (x_2153, x_2152, x_2151) ->
     5538  h_MovSuccessor x_2153 x_2152 x_2151
     5539| Call x_2154 -> h_Call x_2154
     5540| Mov (x_2156, x_2155) -> h_Mov x_2156 x_2155
    55415541
    55425542(** val pseudo_instruction_rect_Type1 :
     
    55485548    -> 'a1 **)
    55495549let rec pseudo_instruction_rect_Type1 h_Instruction h_Comment h_Cost h_Jmp h_Jnz h_MovSuccessor h_Call h_Mov = function
    5550 | Instruction x_24354 -> h_Instruction x_24354
    5551 | Comment x_24355 -> h_Comment x_24355
    5552 | Cost x_24356 -> h_Cost x_24356
    5553 | Jmp x_24357 -> h_Jmp x_24357
    5554 | Jnz (x_24360, x_24359, x_24358) -> h_Jnz x_24360 x_24359 x_24358
    5555 | MovSuccessor (x_24363, x_24362, x_24361) ->
    5556   h_MovSuccessor x_24363 x_24362 x_24361
    5557 | Call x_24364 -> h_Call x_24364
    5558 | Mov (x_24366, x_24365) -> h_Mov x_24366 x_24365
     5550| Instruction x_2166 -> h_Instruction x_2166
     5551| Comment x_2167 -> h_Comment x_2167
     5552| Cost x_2168 -> h_Cost x_2168
     5553| Jmp x_2169 -> h_Jmp x_2169
     5554| Jnz (x_2172, x_2171, x_2170) -> h_Jnz x_2172 x_2171 x_2170
     5555| MovSuccessor (x_2175, x_2174, x_2173) ->
     5556  h_MovSuccessor x_2175 x_2174 x_2173
     5557| Call x_2176 -> h_Call x_2176
     5558| Mov (x_2178, x_2177) -> h_Mov x_2178 x_2177
    55595559
    55605560(** val pseudo_instruction_rect_Type0 :
     
    55665566    -> 'a1 **)
    55675567let rec pseudo_instruction_rect_Type0 h_Instruction h_Comment h_Cost h_Jmp h_Jnz h_MovSuccessor h_Call h_Mov = function
    5568 | Instruction x_24376 -> h_Instruction x_24376
    5569 | Comment x_24377 -> h_Comment x_24377
    5570 | Cost x_24378 -> h_Cost x_24378
    5571 | Jmp x_24379 -> h_Jmp x_24379
    5572 | Jnz (x_24382, x_24381, x_24380) -> h_Jnz x_24382 x_24381 x_24380
    5573 | MovSuccessor (x_24385, x_24384, x_24383) ->
    5574   h_MovSuccessor x_24385 x_24384 x_24383
    5575 | Call x_24386 -> h_Call x_24386
    5576 | Mov (x_24388, x_24387) -> h_Mov x_24388 x_24387
     5568| Instruction x_2188 -> h_Instruction x_2188
     5569| Comment x_2189 -> h_Comment x_2189
     5570| Cost x_2190 -> h_Cost x_2190
     5571| Jmp x_2191 -> h_Jmp x_2191
     5572| Jnz (x_2194, x_2193, x_2192) -> h_Jnz x_2194 x_2193 x_2192
     5573| MovSuccessor (x_2197, x_2196, x_2195) ->
     5574  h_MovSuccessor x_2197 x_2196 x_2195
     5575| Call x_2198 -> h_Call x_2198
     5576| Mov (x_2200, x_2199) -> h_Mov x_2200 x_2199
    55775577
    55785578(** val pseudo_instruction_inv_rect_Type4 :
     
    57965796    Types.prod List.list -> identifier -> __ -> __ -> 'a1) ->
    57975797    pseudo_assembly_program -> 'a1 **)
    5798 let rec pseudo_assembly_program_rect_Type4 h_mk_pseudo_assembly_program x_24531 =
     5798let rec pseudo_assembly_program_rect_Type4 h_mk_pseudo_assembly_program x_2343 =
    57995799  let { preamble = preamble0; code = code0; renamed_symbols =
    5800     renamed_symbols0; final_label = final_label0 } = x_24531
     5800    renamed_symbols0; final_label = final_label0 } = x_2343
    58015801  in
    58025802  h_mk_pseudo_assembly_program preamble0 code0 __ renamed_symbols0
     
    58085808    Types.prod List.list -> identifier -> __ -> __ -> 'a1) ->
    58095809    pseudo_assembly_program -> 'a1 **)
    5810 let rec pseudo_assembly_program_rect_Type5 h_mk_pseudo_assembly_program x_24533 =
     5810let rec pseudo_assembly_program_rect_Type5 h_mk_pseudo_assembly_program x_2345 =
    58115811  let { preamble = preamble0; code = code0; renamed_symbols =
    5812     renamed_symbols0; final_label = final_label0 } = x_24533
     5812    renamed_symbols0; final_label = final_label0 } = x_2345
    58135813  in
    58145814  h_mk_pseudo_assembly_program preamble0 code0 __ renamed_symbols0
     
    58205820    Types.prod List.list -> identifier -> __ -> __ -> 'a1) ->
    58215821    pseudo_assembly_program -> 'a1 **)
    5822 let rec pseudo_assembly_program_rect_Type3 h_mk_pseudo_assembly_program x_24535 =
     5822let rec pseudo_assembly_program_rect_Type3 h_mk_pseudo_assembly_program x_2347 =
    58235823  let { preamble = preamble0; code = code0; renamed_symbols =
    5824     renamed_symbols0; final_label = final_label0 } = x_24535
     5824    renamed_symbols0; final_label = final_label0 } = x_2347
    58255825  in
    58265826  h_mk_pseudo_assembly_program preamble0 code0 __ renamed_symbols0
     
    58325832    Types.prod List.list -> identifier -> __ -> __ -> 'a1) ->
    58335833    pseudo_assembly_program -> 'a1 **)
    5834 let rec pseudo_assembly_program_rect_Type2 h_mk_pseudo_assembly_program x_24537 =
     5834let rec pseudo_assembly_program_rect_Type2 h_mk_pseudo_assembly_program x_2349 =
    58355835  let { preamble = preamble0; code = code0; renamed_symbols =
    5836     renamed_symbols0; final_label = final_label0 } = x_24537
     5836    renamed_symbols0; final_label = final_label0 } = x_2349
    58375837  in
    58385838  h_mk_pseudo_assembly_program preamble0 code0 __ renamed_symbols0
     
    58445844    Types.prod List.list -> identifier -> __ -> __ -> 'a1) ->
    58455845    pseudo_assembly_program -> 'a1 **)
    5846 let rec pseudo_assembly_program_rect_Type1 h_mk_pseudo_assembly_program x_24539 =
     5846let rec pseudo_assembly_program_rect_Type1 h_mk_pseudo_assembly_program x_2351 =
    58475847  let { preamble = preamble0; code = code0; renamed_symbols =
    5848     renamed_symbols0; final_label = final_label0 } = x_24539
     5848    renamed_symbols0; final_label = final_label0 } = x_2351
    58495849  in
    58505850  h_mk_pseudo_assembly_program preamble0 code0 __ renamed_symbols0
     
    58565856    Types.prod List.list -> identifier -> __ -> __ -> 'a1) ->
    58575857    pseudo_assembly_program -> 'a1 **)
    5858 let rec pseudo_assembly_program_rect_Type0 h_mk_pseudo_assembly_program x_24541 =
     5858let rec pseudo_assembly_program_rect_Type0 h_mk_pseudo_assembly_program x_2353 =
    58595859  let { preamble = preamble0; code = code0; renamed_symbols =
    5860     renamed_symbols0; final_label = final_label0 } = x_24541
     5860    renamed_symbols0; final_label = final_label0 } = x_2353
    58615861  in
    58625862  h_mk_pseudo_assembly_program preamble0 code0 __ renamed_symbols0
     
    59445944    (object_code -> costlabel_map -> symboltable_type -> BitVector.word -> __
    59455945    -> 'a1) -> labelled_object_code -> 'a1 **)
    5946 let rec labelled_object_code_rect_Type4 h_mk_labelled_object_code x_24557 =
     5946let rec labelled_object_code_rect_Type4 h_mk_labelled_object_code x_2369 =
    59475947  let { oc = oc0; costlabels = costlabels0; symboltable = symboltable0;
    5948     final_pc = final_pc0 } = x_24557
     5948    final_pc = final_pc0 } = x_2369
    59495949  in
    59505950  h_mk_labelled_object_code oc0 costlabels0 symboltable0 final_pc0 __
     
    59535953    (object_code -> costlabel_map -> symboltable_type -> BitVector.word -> __
    59545954    -> 'a1) -> labelled_object_code -> 'a1 **)
    5955 let rec labelled_object_code_rect_Type5 h_mk_labelled_object_code x_24559 =
     5955let rec labelled_object_code_rect_Type5 h_mk_labelled_object_code x_2371 =
    59565956  let { oc = oc0; costlabels = costlabels0; symboltable = symboltable0;
    5957     final_pc = final_pc0 } = x_24559
     5957    final_pc = final_pc0 } = x_2371
    59585958  in
    59595959  h_mk_labelled_object_code oc0 costlabels0 symboltable0 final_pc0 __
     
    59625962    (object_code -> costlabel_map -> symboltable_type -> BitVector.word -> __
    59635963    -> 'a1) -> labelled_object_code -> 'a1 **)
    5964 let rec labelled_object_code_rect_Type3 h_mk_labelled_object_code x_24561 =
     5964let rec labelled_object_code_rect_Type3 h_mk_labelled_object_code x_2373 =
    59655965  let { oc = oc0; costlabels = costlabels0; symboltable = symboltable0;
    5966     final_pc = final_pc0 } = x_24561
     5966    final_pc = final_pc0 } = x_2373
    59675967  in
    59685968  h_mk_labelled_object_code oc0 costlabels0 symboltable0 final_pc0 __
     
    59715971    (object_code -> costlabel_map -> symboltable_type -> BitVector.word -> __
    59725972    -> 'a1) -> labelled_object_code -> 'a1 **)
    5973 let rec labelled_object_code_rect_Type2 h_mk_labelled_object_code x_24563 =
     5973let rec labelled_object_code_rect_Type2 h_mk_labelled_object_code x_2375 =
    59745974  let { oc = oc0; costlabels = costlabels0; symboltable = symboltable0;
    5975     final_pc = final_pc0 } = x_24563
     5975    final_pc = final_pc0 } = x_2375
    59765976  in
    59775977  h_mk_labelled_object_code oc0 costlabels0 symboltable0 final_pc0 __
     
    59805980    (object_code -> costlabel_map -> symboltable_type -> BitVector.word -> __
    59815981    -> 'a1) -> labelled_object_code -> 'a1 **)
    5982 let rec labelled_object_code_rect_Type1 h_mk_labelled_object_code x_24565 =
     5982let rec labelled_object_code_rect_Type1 h_mk_labelled_object_code x_2377 =
    59835983  let { oc = oc0; costlabels = costlabels0; symboltable = symboltable0;
    5984     final_pc = final_pc0 } = x_24565
     5984    final_pc = final_pc0 } = x_2377
    59855985  in
    59865986  h_mk_labelled_object_code oc0 costlabels0 symboltable0 final_pc0 __
     
    59895989    (object_code -> costlabel_map -> symboltable_type -> BitVector.word -> __
    59905990    -> 'a1) -> labelled_object_code -> 'a1 **)
    5991 let rec labelled_object_code_rect_Type0 h_mk_labelled_object_code x_24567 =
     5991let rec labelled_object_code_rect_Type0 h_mk_labelled_object_code x_2379 =
    59925992  let { oc = oc0; costlabels = costlabels0; symboltable = symboltable0;
    5993     final_pc = final_pc0 } = x_24567
     5993    final_pc = final_pc0 } = x_2379
    59945994  in
    59955995  h_mk_labelled_object_code oc0 costlabels0 symboltable0 final_pc0 __
  • extracted/aSMCosts.ml

    r2910 r2951  
    506506   | Nat.S program_size' ->
    507507     (fun _ ->
    508        (let { Types.fst = eta16; Types.snd = ticks } =
     508       (let { Types.fst = eta27505; Types.snd = ticks } =
    509509          Fetch.fetch (Fetch.load_code_memory prog.ASM.oc) program_counter'
    510510        in
    511        let { Types.fst = instruction; Types.snd = program_counter'' } = eta16
     511       let { Types.fst = instruction; Types.snd = program_counter'' } =
     512         eta27505
    512513       in
    513514       (fun _ ->
  • extracted/backEndOps.ml

    r2933 r2951  
    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_601 =
    405   let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_601 in
     404let rec eval_rect_Type4 h_mk_Eval x_16349 =
     405  let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_16349 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_603 =
    414   let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_603 in
     413let rec eval_rect_Type5 h_mk_Eval x_16351 =
     414  let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_16351 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_605 =
    423   let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_605 in
     422let rec eval_rect_Type3 h_mk_Eval x_16353 =
     423  let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_16353 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_607 =
    432   let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_607 in
     431let rec eval_rect_Type2 h_mk_Eval x_16355 =
     432  let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_16355 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_609 =
    441   let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_609 in
     440let rec eval_rect_Type1 h_mk_Eval x_16357 =
     441  let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_16357 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_611 =
    450   let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_611 in
     449let rec eval_rect_Type0 h_mk_Eval x_16359 =
     450  let { opaccs = opaccs0; op0 = op4; op3 = op5 } = x_16359 in
    451451  h_mk_Eval opaccs0 op4 op5
    452452
  • extracted/bind_new.ml

    r2873 r2951  
    3535    ('a1, 'a2) bind_new -> 'a3 **)
    3636let rec bind_new_rect_Type4 h_bret h_bnew = function
    37 | Bret x_21128 -> h_bret x_21128
    38 | Bnew x_21130 ->
    39   h_bnew x_21130 (fun x_21129 ->
    40     bind_new_rect_Type4 h_bret h_bnew (x_21130 x_21129))
     37| Bret x_18232 -> h_bret x_18232
     38| Bnew x_18234 ->
     39  h_bnew x_18234 (fun x_18233 ->
     40    bind_new_rect_Type4 h_bret h_bnew (x_18234 x_18233))
    4141
    4242(** val bind_new_rect_Type3 :
     
    4444    ('a1, 'a2) bind_new -> 'a3 **)
    4545let rec bind_new_rect_Type3 h_bret h_bnew = function
    46 | Bret x_21140 -> h_bret x_21140
    47 | Bnew x_21142 ->
    48   h_bnew x_21142 (fun x_21141 ->
    49     bind_new_rect_Type3 h_bret h_bnew (x_21142 x_21141))
     46| Bret x_18244 -> h_bret x_18244
     47| Bnew x_18246 ->
     48  h_bnew x_18246 (fun x_18245 ->
     49    bind_new_rect_Type3 h_bret h_bnew (x_18246 x_18245))
    5050
    5151(** val bind_new_rect_Type2 :
     
    5353    ('a1, 'a2) bind_new -> 'a3 **)
    5454let rec bind_new_rect_Type2 h_bret h_bnew = function
    55 | Bret x_21146 -> h_bret x_21146
    56 | Bnew x_21148 ->
    57   h_bnew x_21148 (fun x_21147 ->
    58     bind_new_rect_Type2 h_bret h_bnew (x_21148 x_21147))
     55| Bret x_18250 -> h_bret x_18250
     56| Bnew x_18252 ->
     57  h_bnew x_18252 (fun x_18251 ->
     58    bind_new_rect_Type2 h_bret h_bnew (x_18252 x_18251))
    5959
    6060(** val bind_new_rect_Type1 :
     
    6262    ('a1, 'a2) bind_new -> 'a3 **)
    6363let rec bind_new_rect_Type1 h_bret h_bnew = function
    64 | Bret x_21152 -> h_bret x_21152
    65 | Bnew x_21154 ->
    66   h_bnew x_21154 (fun x_21153 ->
    67     bind_new_rect_Type1 h_bret h_bnew (x_21154 x_21153))
     64| Bret x_18256 -> h_bret x_18256
     65| Bnew x_18258 ->
     66  h_bnew x_18258 (fun x_18257 ->
     67    bind_new_rect_Type1 h_bret h_bnew (x_18258 x_18257))
    6868
    6969(** val bind_new_rect_Type0 :
     
    7171    ('a1, 'a2) bind_new -> 'a3 **)
    7272let rec bind_new_rect_Type0 h_bret h_bnew = function
    73 | Bret x_21158 -> h_bret x_21158
    74 | Bnew x_21160 ->
    75   h_bnew x_21160 (fun x_21159 ->
    76     bind_new_rect_Type0 h_bret h_bnew (x_21160 x_21159))
     73| Bret x_18262 -> h_bret x_18262
     74| Bnew x_18264 ->
     75  h_bnew x_18264 (fun x_18263 ->
     76    bind_new_rect_Type0 h_bret h_bnew (x_18264 x_18263))
    7777
    7878(** val bind_new_inv_rect_Type4 :
  • extracted/bitVectorTrie.ml

    r2827 r2951  
    4949    ('a1 -> 'a2) -> (Nat.nat -> 'a1 bitVectorTrie -> 'a1 bitVectorTrie -> 'a2
    5050    -> 'a2 -> 'a2) -> (Nat.nat -> 'a2) -> Nat.nat -> 'a1 bitVectorTrie -> 'a2 **)
    51 let rec bitVectorTrie_rect_Type4 h_Leaf h_Node h_Stub x_14764 = function
    52 | Leaf x_14766 -> h_Leaf x_14766
    53 | Node (n, x_14768, x_14767) ->
    54   h_Node n x_14768 x_14767
    55     (bitVectorTrie_rect_Type4 h_Leaf h_Node h_Stub n x_14768)
    56     (bitVectorTrie_rect_Type4 h_Leaf h_Node h_Stub n x_14767)
     51let rec bitVectorTrie_rect_Type4 h_Leaf h_Node h_Stub x_14803 = function
     52| Leaf x_14805 -> h_Leaf x_14805
     53| Node (n, x_14807, x_14806) ->
     54  h_Node n x_14807 x_14806
     55    (bitVectorTrie_rect_Type4 h_Leaf h_Node h_Stub n x_14807)
     56    (bitVectorTrie_rect_Type4 h_Leaf h_Node h_Stub n x_14806)
    5757| Stub n -> h_Stub n
    5858
     
    6060    ('a1 -> 'a2) -> (Nat.nat -> 'a1 bitVectorTrie -> 'a1 bitVectorTrie -> 'a2
    6161    -> 'a2 -> 'a2) -> (Nat.nat -> 'a2) -> Nat.nat -> 'a1 bitVectorTrie -> 'a2 **)
    62 let rec bitVectorTrie_rect_Type3 h_Leaf h_Node h_Stub x_14780 = function
    63 | Leaf x_14782 -> h_Leaf x_14782
    64 | Node (n, x_14784, x_14783) ->
    65   h_Node n x_14784 x_14783
    66     (bitVectorTrie_rect_Type3 h_Leaf h_Node h_Stub n x_14784)
    67     (bitVectorTrie_rect_Type3 h_Leaf h_Node h_Stub n x_14783)
     62let rec bitVectorTrie_rect_Type3 h_Leaf h_Node h_Stub x_14819 = function
     63| Leaf x_14821 -> h_Leaf x_14821
     64| Node (n, x_14823, x_14822) ->
     65  h_Node n x_14823 x_14822
     66    (bitVectorTrie_rect_Type3 h_Leaf h_Node h_Stub n x_14823)
     67    (bitVectorTrie_rect_Type3 h_Leaf h_Node h_Stub n x_14822)
    6868| Stub n -> h_Stub n
    6969
     
    7171    ('a1 -> 'a2) -> (Nat.nat -> 'a1 bitVectorTrie -> 'a1 bitVectorTrie -> 'a2
    7272    -> 'a2 -> 'a2) -> (Nat.nat -> 'a2) -> Nat.nat -> 'a1 bitVectorTrie -> 'a2 **)
    73 let rec bitVectorTrie_rect_Type2 h_Leaf h_Node h_Stub x_14788 = function
    74 | Leaf x_14790 -> h_Leaf x_14790
    75 | Node (n, x_14792, x_14791) ->
    76   h_Node n x_14792 x_14791
    77     (bitVectorTrie_rect_Type2 h_Leaf h_Node h_Stub n x_14792)
    78     (bitVectorTrie_rect_Type2 h_Leaf h_Node h_Stub n x_14791)
     73let rec bitVectorTrie_rect_Type2 h_Leaf h_Node h_Stub x_14827 = function
     74| Leaf x_14829 -> h_Leaf x_14829
     75| Node (n, x_14831, x_14830) ->
     76  h_Node n x_14831 x_14830
     77    (bitVectorTrie_rect_Type2 h_Leaf h_Node h_Stub n x_14831)
     78    (bitVectorTrie_rect_Type2 h_Leaf h_Node h_Stub n x_14830)
    7979| Stub n -> h_Stub n
    8080
     
    8282    ('a1 -> 'a2) -> (Nat.nat -> 'a1 bitVectorTrie -> 'a1 bitVectorTrie -> 'a2
    8383    -> 'a2 -> 'a2) -> (Nat.nat -> 'a2) -> Nat.nat -> 'a1 bitVectorTrie -> 'a2 **)
    84 let rec bitVectorTrie_rect_Type1 h_Leaf h_Node h_Stub x_14796 = function
    85 | Leaf x_14798 -> h_Leaf x_14798
    86 | Node (n, x_14800, x_14799) ->
    87   h_Node n x_14800 x_14799
    88     (bitVectorTrie_rect_Type1 h_Leaf h_Node h_Stub n x_14800)
    89     (bitVectorTrie_rect_Type1 h_Leaf h_Node h_Stub n x_14799)
     84let rec bitVectorTrie_rect_Type1 h_Leaf h_Node h_Stub x_14835 = function
     85| Leaf x_14837 -> h_Leaf x_14837
     86| Node (n, x_14839, x_14838) ->
     87  h_Node n x_14839 x_14838
     88    (bitVectorTrie_rect_Type1 h_Leaf h_Node h_Stub n x_14839)
     89    (bitVectorTrie_rect_Type1 h_Leaf h_Node h_Stub n x_14838)
    9090| Stub n -> h_Stub n
    9191
     
    9393    ('a1 -> 'a2) -> (Nat.nat -> 'a1 bitVectorTrie -> 'a1 bitVectorTrie -> 'a2
    9494    -> 'a2 -> 'a2) -> (Nat.nat -> 'a2) -> Nat.nat -> 'a1 bitVectorTrie -> 'a2 **)
    95 let rec bitVectorTrie_rect_Type0 h_Leaf h_Node h_Stub x_14804 = function
    96 | Leaf x_14806 -> h_Leaf x_14806
    97 | Node (n, x_14808, x_14807) ->
    98   h_Node n x_14808 x_14807
    99     (bitVectorTrie_rect_Type0 h_Leaf h_Node h_Stub n x_14808)
    100     (bitVectorTrie_rect_Type0 h_Leaf h_Node h_Stub n x_14807)
     95let rec bitVectorTrie_rect_Type0 h_Leaf h_Node h_Stub x_14843 = function
     96| Leaf x_14845 -> h_Leaf x_14845
     97| Node (n, x_14847, x_14846) ->
     98  h_Node n x_14847 x_14846
     99    (bitVectorTrie_rect_Type0 h_Leaf h_Node h_Stub n x_14847)
     100    (bitVectorTrie_rect_Type0 h_Leaf h_Node h_Stub n x_14846)
    101101| Stub n -> h_Stub n
    102102
  • extracted/blocks.ml

    r2882 r2951  
    11open Preamble
     2
     3open Extra_bool
     4
     5open Coqlib
     6
     7open Values
     8
     9open FrontEndVal
     10
     11open GenMem
     12
     13open FrontEndMem
     14
     15open Globalenvs
    216
    317open String
  • extracted/blocks.mli

    r2773 r2951  
    11open Preamble
     2
     3open Extra_bool
     4
     5open Coqlib
     6
     7open Values
     8
     9open FrontEndVal
     10
     11open GenMem
     12
     13open FrontEndMem
     14
     15open Globalenvs
    216
    317open String
  • extracted/byteValues.ml

    r2933 r2951  
    8989    (Pointers.block Types.sig0 -> Positive.pos -> 'a1) -> program_counter ->
    9090    'a1 **)
    91 let rec program_counter_rect_Type4 h_mk_program_counter x_3 =
    92   let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_3 in
     91let rec program_counter_rect_Type4 h_mk_program_counter x_6139 =
     92  let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_6139 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_5 =
    99   let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_5 in
     98let rec program_counter_rect_Type5 h_mk_program_counter x_6141 =
     99  let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_6141 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_7 =
    106   let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_7 in
     105let rec program_counter_rect_Type3 h_mk_program_counter x_6143 =
     106  let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_6143 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_9 =
    113   let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_9 in
     112let rec program_counter_rect_Type2 h_mk_program_counter x_6145 =
     113  let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_6145 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_11 =
    120   let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_11 in
     119let rec program_counter_rect_Type1 h_mk_program_counter x_6147 =
     120  let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_6147 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_13 =
    127   let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_13 in
     126let rec program_counter_rect_Type0 h_mk_program_counter x_6149 =
     127  let { pc_block = pc_block0; pc_offset = pc_offset0 } = x_6149 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_29 =
    218   let part_no = x_29 in h_mk_part part_no __
     217let rec part_rect_Type4 h_mk_part x_6165 =
     218  let part_no = x_6165 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_31 =
    222   let part_no = x_31 in h_mk_part part_no __
     221let rec part_rect_Type5 h_mk_part x_6167 =
     222  let part_no = x_6167 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_33 =
    226   let part_no = x_33 in h_mk_part part_no __
     225let rec part_rect_Type3 h_mk_part x_6169 =
     226  let part_no = x_6169 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_35 =
    230   let part_no = x_35 in h_mk_part part_no __
     229let rec part_rect_Type2 h_mk_part x_6171 =
     230  let part_no = x_6171 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_37 =
    234   let part_no = x_37 in h_mk_part part_no __
     233let rec part_rect_Type1 h_mk_part x_6173 =
     234  let part_no = x_6173 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_39 =
    238   let part_no = x_39 in h_mk_part part_no __
     237let rec part_rect_Type0 h_mk_part x_6175 =
     238  let part_no = x_6175 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_73, x_72, x_71) -> h_BVXor x_73 x_72 x_71
    489 | BVByte x_74 -> h_BVByte x_74
    490 | BVnull x_75 -> h_BVnull x_75
    491 | BVptr (x_77, x_76) -> h_BVptr x_77 x_76
    492 | BVpc (x_79, x_78) -> h_BVpc x_79 x_78
     488| BVXor (x_6209, x_6208, x_6207) -> h_BVXor x_6209 x_6208 x_6207
     489| BVByte x_6210 -> h_BVByte x_6210
     490| BVnull x_6211 -> h_BVnull x_6211
     491| BVptr (x_6213, x_6212) -> h_BVptr x_6213 x_6212
     492| BVpc (x_6215, x_6214) -> h_BVpc x_6215 x_6214
    493493
    494494(** val beval_rect_Type5 :
     
    500500| BVundef -> h_BVundef
    501501| BVnonzero -> h_BVnonzero
    502 | BVXor (x_90, x_89, x_88) -> h_BVXor x_90 x_89 x_88
    503 | BVByte x_91 -> h_BVByte x_91
    504 | BVnull x_92 -> h_BVnull x_92
    505 | BVptr (x_94, x_93) -> h_BVptr x_94 x_93
    506 | BVpc (x_96, x_95) -> h_BVpc x_96 x_95
     502| BVXor (x_6226, x_6225, x_6224) -> h_BVXor x_6226 x_6225 x_6224
     503| BVByte x_6227 -> h_BVByte x_6227
     504| BVnull x_6228 -> h_BVnull x_6228
     505| BVptr (x_6230, x_6229) -> h_BVptr x_6230 x_6229
     506| BVpc (x_6232, x_6231) -> h_BVpc x_6232 x_6231
    507507
    508508(** val beval_rect_Type3 :
     
    514514| BVundef -> h_BVundef
    515515| BVnonzero -> h_BVnonzero
    516 | BVXor (x_107, x_106, x_105) -> h_BVXor x_107 x_106 x_105
    517 | BVByte x_108 -> h_BVByte x_108
    518 | BVnull x_109 -> h_BVnull x_109
    519 | BVptr (x_111, x_110) -> h_BVptr x_111 x_110
    520 | BVpc (x_113, x_112) -> h_BVpc x_113 x_112
     516| BVXor (x_6243, x_6242, x_6241) -> h_BVXor x_6243 x_6242 x_6241
     517| BVByte x_6244 -> h_BVByte x_6244
     518| BVnull x_6245 -> h_BVnull x_6245
     519| BVptr (x_6247, x_6246) -> h_BVptr x_6247 x_6246
     520| BVpc (x_6249, x_6248) -> h_BVpc x_6249 x_6248
    521521
    522522(** val beval_rect_Type2 :
     
    528528| BVundef -> h_BVundef
    529529| BVnonzero -> h_BVnonzero
    530 | BVXor (x_124, x_123, x_122) -> h_BVXor x_124 x_123 x_122
    531 | BVByte x_125 -> h_BVByte x_125
    532 | BVnull x_126 -> h_BVnull x_126
    533 | BVptr (x_128, x_127) -> h_BVptr x_128 x_127
    534 | BVpc (x_130, x_129) -> h_BVpc x_130 x_129
     530| BVXor (x_6260, x_6259, x_6258) -> h_BVXor x_6260 x_6259 x_6258
     531| BVByte x_6261 -> h_BVByte x_6261
     532| BVnull x_6262 -> h_BVnull x_6262
     533| BVptr (x_6264, x_6263) -> h_BVptr x_6264 x_6263
     534| BVpc (x_6266, x_6265) -> h_BVpc x_6266 x_6265
    535535
    536536(** val beval_rect_Type1 :
     
    542542| BVundef -> h_BVundef
    543543| BVnonzero -> h_BVnonzero
    544 | BVXor (x_141, x_140, x_139) -> h_BVXor x_141 x_140 x_139
    545 | BVByte x_142 -> h_BVByte x_142
    546 | BVnull x_143 -> h_BVnull x_143
    547 | BVptr (x_145, x_144) -> h_BVptr x_145 x_144
    548 | BVpc (x_147, x_146) -> h_BVpc x_147 x_146
     544| BVXor (x_6277, x_6276, x_6275) -> h_BVXor x_6277 x_6276 x_6275
     545| BVByte x_6278 -> h_BVByte x_6278
     546| BVnull x_6279 -> h_BVnull x_6279
     547| BVptr (x_6281, x_6280) -> h_BVptr x_6281 x_6280
     548| BVpc (x_6283, x_6282) -> h_BVpc x_6283 x_6282
    549549
    550550(** val beval_rect_Type0 :
     
    556556| BVundef -> h_BVundef
    557557| BVnonzero -> h_BVnonzero
    558 | BVXor (x_158, x_157, x_156) -> h_BVXor x_158 x_157 x_156
    559 | BVByte x_159 -> h_BVByte x_159
    560 | BVnull x_160 -> h_BVnull x_160
    561 | BVptr (x_162, x_161) -> h_BVptr x_162 x_161
    562 | BVpc (x_164, x_163) -> h_BVpc x_164 x_163
     558| BVXor (x_6294, x_6293, x_6292) -> h_BVXor x_6294 x_6293 x_6292
     559| BVByte x_6295 -> h_BVByte x_6295
     560| BVnull x_6296 -> h_BVnull x_6296
     561| BVptr (x_6298, x_6297) -> h_BVptr x_6298 x_6297
     562| BVpc (x_6300, x_6299) -> h_BVpc x_6300 x_6299
    563563
    564564(** val beval_inv_rect_Type4 :
     
    985985    BitVector.bitVector -> 'a1) -> bebit -> 'a1 **)
    986986let rec bebit_rect_Type4 h_BBbit h_BBundef h_BBptrcarry = function
    987 | BBbit x_322 -> h_BBbit x_322
     987| BBbit x_6458 -> h_BBbit x_6458
    988988| BBundef -> h_BBundef
    989 | BBptrcarry (x_325, x_324, p, x_323) -> h_BBptrcarry x_325 x_324 p x_323
     989| BBptrcarry (x_6461, x_6460, p, x_6459) ->
     990  h_BBptrcarry x_6461 x_6460 p x_6459
    990991
    991992(** val bebit_rect_Type5 :
     
    993994    BitVector.bitVector -> 'a1) -> bebit -> 'a1 **)
    994995let rec bebit_rect_Type5 h_BBbit h_BBundef h_BBptrcarry = function
    995 | BBbit x_330 -> h_BBbit x_330
     996| BBbit x_6466 -> h_BBbit x_6466
    996997| BBundef -> h_BBundef
    997 | BBptrcarry (x_333, x_332, p, x_331) -> h_BBptrcarry x_333 x_332 p x_331
     998| BBptrcarry (x_6469, x_6468, p, x_6467) ->
     999  h_BBptrcarry x_6469 x_6468 p x_6467
    9981000
    9991001(** val bebit_rect_Type3 :
     
    10011003    BitVector.bitVector -> 'a1) -> bebit -> 'a1 **)
    10021004let rec bebit_rect_Type3 h_BBbit h_BBundef h_BBptrcarry = function
    1003 | BBbit x_338 -> h_BBbit x_338
     1005| BBbit x_6474 -> h_BBbit x_6474
    10041006| BBundef -> h_BBundef
    1005 | BBptrcarry (x_341, x_340, p, x_339) -> h_BBptrcarry x_341 x_340 p x_339
     1007| BBptrcarry (x_6477, x_6476, p, x_6475) ->
     1008  h_BBptrcarry x_6477 x_6476 p x_6475
    10061009
    10071010(** val bebit_rect_Type2 :
     
    10091012    BitVector.bitVector -> 'a1) -> bebit -> 'a1 **)
    10101013let rec bebit_rect_Type2 h_BBbit h_BBundef h_BBptrcarry = function
    1011 | BBbit x_346 -> h_BBbit x_346
     1014| BBbit x_6482 -> h_BBbit x_6482
    10121015| BBundef -> h_BBundef
    1013 | BBptrcarry (x_349, x_348, p, x_347) -> h_BBptrcarry x_349 x_348 p x_347
     1016| BBptrcarry (x_6485, x_6484, p, x_6483) ->
     1017  h_BBptrcarry x_6485 x_6484 p x_6483
    10141018
    10151019(** val bebit_rect_Type1 :
     
    10171021    BitVector.bitVector -> 'a1) -> bebit -> 'a1 **)
    10181022let rec bebit_rect_Type1 h_BBbit h_BBundef h_BBptrcarry = function
    1019 | BBbit x_354 -> h_BBbit x_354
     1023| BBbit x_6490 -> h_BBbit x_6490
    10201024| BBundef -> h_BBundef
    1021 | BBptrcarry (x_357, x_356, p, x_355) -> h_BBptrcarry x_357 x_356 p x_355
     1025| BBptrcarry (x_6493, x_6492, p, x_6491) ->
     1026  h_BBptrcarry x_6493 x_6492 p x_6491
    10221027
    10231028(** val bebit_rect_Type0 :
     
    10251030    BitVector.bitVector -> 'a1) -> bebit -> 'a1 **)
    10261031let rec bebit_rect_Type0 h_BBbit h_BBundef h_BBptrcarry = function
    1027 | BBbit x_362 -> h_BBbit x_362
     1032| BBbit x_6498 -> h_BBbit x_6498
    10281033| BBundef -> h_BBundef
    1029 | BBptrcarry (x_365, x_364, p, x_363) -> h_BBptrcarry x_365 x_364 p x_363
     1034| BBptrcarry (x_6501, x_6500, p, x_6499) ->
     1035  h_BBptrcarry x_6501 x_6500 p x_6499
    10301036
    10311037(** val bebit_inv_rect_Type4 :
  • extracted/classifyOp.ml

    r2827 r2951  
    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_7389 x_7388 = function
     98let rec classify_add_cases_rect_Type4 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_7428 x_7427 = 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_7396 x_7395 = function
     110let rec classify_add_cases_rect_Type5 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_7435 x_7434 = 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_7403 x_7402 = function
     122let rec classify_add_cases_rect_Type3 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_7442 x_7441 = 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_7410 x_7409 = function
     134let rec classify_add_cases_rect_Type2 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_7449 x_7448 = 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_7417 x_7416 = function
     146let rec classify_add_cases_rect_Type1 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_7456 x_7455 = 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_7424 x_7423 = function
     158let rec classify_add_cases_rect_Type0 h_add_case_ii h_add_case_pi h_add_case_ip h_add_default x_7463 x_7462 = 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_7480 x_7479 = function
     321let rec classify_sub_cases_rect_Type4 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_7519 x_7518 = 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_7487 x_7486 = function
     333let rec classify_sub_cases_rect_Type5 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_7526 x_7525 = 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_7494 x_7493 = function
     345let rec classify_sub_cases_rect_Type3 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_7533 x_7532 = 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_7501 x_7500 = function
     357let rec classify_sub_cases_rect_Type2 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_7540 x_7539 = 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_7508 x_7507 = function
     369let rec classify_sub_cases_rect_Type1 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_7547 x_7546 = 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_7515 x_7514 = function
     381let rec classify_sub_cases_rect_Type0 h_sub_case_ii h_sub_case_pi h_sub_case_pp h_sub_default x_7554 x_7553 = 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_7569 x_7568 = function
     521let rec classify_aop_cases_rect_Type4 h_aop_case_ii h_aop_default x_7608 x_7607 = 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_7574 x_7573 = function
     528let rec classify_aop_cases_rect_Type5 h_aop_case_ii h_aop_default x_7613 x_7612 = 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_7579 x_7578 = function
     535let rec classify_aop_cases_rect_Type3 h_aop_case_ii h_aop_default x_7618 x_7617 = 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_7584 x_7583 = function
     542let rec classify_aop_cases_rect_Type2 h_aop_case_ii h_aop_default x_7623 x_7622 = 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_7589 x_7588 = function
     549let rec classify_aop_cases_rect_Type1 h_aop_case_ii h_aop_default x_7628 x_7627 = 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_7594 x_7593 = function
     556let rec classify_aop_cases_rect_Type0 h_aop_case_ii h_aop_default x_7633 x_7632 = 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_7635 x_7634 = function
     638let rec classify_cmp_cases_rect_Type4 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_7674 x_7673 = 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_7641 x_7640 = function
     647let rec classify_cmp_cases_rect_Type5 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_7680 x_7679 = 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_7647 x_7646 = function
     656let rec classify_cmp_cases_rect_Type3 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_7686 x_7685 = 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_7653 x_7652 = function
     665let rec classify_cmp_cases_rect_Type2 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_7692 x_7691 = 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_7659 x_7658 = function
     674let rec classify_cmp_cases_rect_Type1 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_7698 x_7697 = 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_7665 x_7664 = function
     683let rec classify_cmp_cases_rect_Type0 h_cmp_case_ii h_cmp_case_pp h_cmp_default x_7704 x_7703 = 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_7713, x_7712) -> h_fun_case_f x_7713 x_7712
     782| Fun_case_f (x_7752, x_7751) -> h_fun_case_f x_7752 x_7751
    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_7718, x_7717) -> h_fun_case_f x_7718 x_7717
     789| Fun_case_f (x_7757, x_7756) -> h_fun_case_f x_7757 x_7756
    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_7723, x_7722) -> h_fun_case_f x_7723 x_7722
     796| Fun_case_f (x_7762, x_7761) -> h_fun_case_f x_7762 x_7761
    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_7728, x_7727) -> h_fun_case_f x_7728 x_7727
     803| Fun_case_f (x_7767, x_7766) -> h_fun_case_f x_7767 x_7766
    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_7733, x_7732) -> h_fun_case_f x_7733 x_7732
     810| Fun_case_f (x_7772, x_7771) -> h_fun_case_f x_7772 x_7771
    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_7738, x_7737) -> h_fun_case_f x_7738 x_7737
     817| Fun_case_f (x_7777, x_7776) -> h_fun_case_f x_7777 x_7776
    818818| Fun_default -> h_fun_default
    819819
  • extracted/clight_classified_system.ml

    r2803 r2951  
    125125open Cexec
    126126
     127open Stacksize
     128
    127129open Executions
    128130
  • extracted/clight_classified_system.mli

    r2803 r2951  
    125125open Cexec
    126126
     127open Stacksize
     128
    127129open Executions
    128130
  • extracted/cminor_classified_system.ml

    r2810 r2951  
    119119open Cminor_abstract
    120120
     121open Stacksize
     122
    121123open Executions
    122124
  • extracted/cminor_classified_system.mli

    r2810 r2951  
    119119open Cminor_abstract
    120120
     121open Stacksize
     122
    121123open Executions
    122124
  • extracted/cminor_semantics.ml

    r2890 r2951  
    123123let rec cont_rect_Type4 h_Kend h_Kseq h_Kblock = function
    124124| Kend -> h_Kend
    125 | Kseq (x_25483, x_25482) ->
    126   h_Kseq x_25483 x_25482 (cont_rect_Type4 h_Kend h_Kseq h_Kblock x_25482)
    127 | Kblock x_25484 ->
    128   h_Kblock x_25484 (cont_rect_Type4 h_Kend h_Kseq h_Kblock x_25484)
     125| Kseq (x_4629, x_4628) ->
     126  h_Kseq x_4629 x_4628 (cont_rect_Type4 h_Kend h_Kseq h_Kblock x_4628)
     127| Kblock x_4630 ->
     128  h_Kblock x_4630 (cont_rect_Type4 h_Kend h_Kseq h_Kblock x_4630)
    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_25497, x_25496) ->
    136   h_Kseq x_25497 x_25496 (cont_rect_Type3 h_Kend h_Kseq h_Kblock x_25496)
    137 | Kblock x_25498 ->
    138   h_Kblock x_25498 (cont_rect_Type3 h_Kend h_Kseq h_Kblock x_25498)
     135| Kseq (x_4643, x_4642) ->
     136  h_Kseq x_4643 x_4642 (cont_rect_Type3 h_Kend h_Kseq h_Kblock x_4642)
     137| Kblock x_4644 ->
     138  h_Kblock x_4644 (cont_rect_Type3 h_Kend h_Kseq h_Kblock x_4644)
    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_25504, x_25503) ->
    146   h_Kseq x_25504 x_25503 (cont_rect_Type2 h_Kend h_Kseq h_Kblock x_25503)
    147 | Kblock x_25505 ->
    148   h_Kblock x_25505 (cont_rect_Type2 h_Kend h_Kseq h_Kblock x_25505)
     145| Kseq (x_4650, x_4649) ->
     146  h_Kseq x_4650 x_4649 (cont_rect_Type2 h_Kend h_Kseq h_Kblock x_4649)
     147| Kblock x_4651 ->
     148  h_Kblock x_4651 (cont_rect_Type2 h_Kend h_Kseq h_Kblock x_4651)
    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_25511, x_25510) ->
    156   h_Kseq x_25511 x_25510 (cont_rect_Type1 h_Kend h_Kseq h_Kblock x_25510)
    157 | Kblock x_25512 ->
    158   h_Kblock x_25512 (cont_rect_Type1 h_Kend h_Kseq h_Kblock x_25512)
     155| Kseq (x_4657, x_4656) ->
     156  h_Kseq x_4657 x_4656 (cont_rect_Type1 h_Kend h_Kseq h_Kblock x_4656)
     157| Kblock x_4658 ->
     158  h_Kblock x_4658 (cont_rect_Type1 h_Kend h_Kseq h_Kblock x_4658)
    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_25518, x_25517) ->
    166   h_Kseq x_25518 x_25517 (cont_rect_Type0 h_Kend h_Kseq h_Kblock x_25517)
    167 | Kblock x_25519 ->
    168   h_Kblock x_25519 (cont_rect_Type0 h_Kend h_Kseq h_Kblock x_25519)
     165| Kseq (x_4664, x_4663) ->
     166  h_Kseq x_4664 x_4663 (cont_rect_Type0 h_Kend h_Kseq h_Kblock x_4663)
     167| Kblock x_4665 ->
     168  h_Kblock x_4665 (cont_rect_Type0 h_Kend h_Kseq h_Kblock x_4665)
    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_25578, en, k, x_25574) ->
    229   h_Scall dest f x_25578 en __ __ k __ x_25574
    230     (stack_rect_Type4 h_SStop h_Scall x_25574)
     228| Scall (dest, f, x_4724, en, k, x_4720) ->
     229  h_Scall dest f x_4724 en __ __ k __ x_4720
     230    (stack_rect_Type4 h_SStop h_Scall x_4720)
    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_25594, en, k, x_25590) ->
    239   h_Scall dest f x_25594 en __ __ k __ x_25590
    240     (stack_rect_Type3 h_SStop h_Scall x_25590)
     238| Scall (dest, f, x_4740, en, k, x_4736) ->
     239  h_Scall dest f x_4740 en __ __ k __ x_4736
     240    (stack_rect_Type3 h_SStop h_Scall x_4736)
    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_25602, en, k, x_25598) ->
    249   h_Scall dest f x_25602 en __ __ k __ x_25598
    250     (stack_rect_Type2 h_SStop h_Scall x_25598)
     248| Scall (dest, f, x_4748, en, k, x_4744) ->
     249  h_Scall dest f x_4748 en __ __ k __ x_4744
     250    (stack_rect_Type2 h_SStop h_Scall x_4744)
    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_25610, en, k, x_25606) ->
    259   h_Scall dest f x_25610 en __ __ k __ x_25606
    260     (stack_rect_Type1 h_SStop h_Scall x_25606)
     258| Scall (dest, f, x_4756, en, k, x_4752) ->
     259  h_Scall dest f x_4756 en __ __ k __ x_4752
     260    (stack_rect_Type1 h_SStop h_Scall x_4752)
    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_25618, en, k, x_25614) ->
    269   h_Scall dest f x_25618 en __ __ k __ x_25614
    270     (stack_rect_Type0 h_SStop h_Scall x_25614)
     268| Scall (dest, f, x_4764, en, k, x_4760) ->
     269  h_Scall dest f x_4764 en __ __ k __ x_4760
     270    (stack_rect_Type0 h_SStop h_Scall x_4760)
    271271
    272272(** val stack_inv_rect_Type4 :
  • extracted/cminor_syntax.ml

    r2827 r2951  
    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_13746 = function
    116 | Id (t, x_13748) -> h_Id t x_13748
    117 | Cst (t, x_13749) -> h_Cst t x_13749
    118 | Op1 (t, t', x_13751, x_13750) ->
    119   h_Op1 t t' x_13751 x_13750
    120     (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13750)
    121 | Op2 (t1, t2, t', x_13754, x_13753, x_13752) ->
    122   h_Op2 t1 t2 t' x_13754 x_13753 x_13752
    123     (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_13753)
    124     (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_13752)
    125 | Mem (t, x_13755) ->
    126   h_Mem t x_13755
     115let rec expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_13785 = function
     116| Id (t, x_13787) -> h_Id t x_13787
     117| Cst (t, x_13788) -> h_Cst t x_13788
     118| Op1 (t, t', x_13790, x_13789) ->
     119  h_Op1 t t' x_13790 x_13789
     120    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13789)
     121| Op2 (t1, t2, t', x_13793, x_13792, x_13791) ->
     122  h_Op2 t1 t2 t' x_13793 x_13792 x_13791
     123    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_13792)
     124    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_13791)
     125| Mem (t, x_13794) ->
     126  h_Mem t x_13794
    127127    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost AST.ASTptr
    128       x_13755)
    129 | Cond (sz, sg, t, x_13758, x_13757, x_13756) ->
    130   h_Cond sz sg t x_13758 x_13757 x_13756
     128      x_13794)
     129| Cond (sz, sg, t, x_13797, x_13796, x_13795) ->
     130  h_Cond sz sg t x_13797 x_13796 x_13795
    131131    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost (AST.ASTint
    132       (sz, sg)) x_13758)
    133     (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13757)
    134     (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13756)
    135 | Ecost (t, x_13760, x_13759) ->
    136   h_Ecost t x_13760 x_13759
    137     (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13759)
     132      (sz, sg)) x_13797)
     133    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13796)
     134    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13795)
     135| Ecost (t, x_13799, x_13798) ->
     136  h_Ecost t x_13799 x_13798
     137    (expr_rect_Type4 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13798)
    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_13790 = function
    148 | Id (t, x_13792) -> h_Id t x_13792
    149 | Cst (t, x_13793) -> h_Cst t x_13793
    150 | Op1 (t, t', x_13795, x_13794) ->
    151   h_Op1 t t' x_13795 x_13794
    152     (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13794)
    153 | Op2 (t1, t2, t', x_13798, x_13797, x_13796) ->
    154   h_Op2 t1 t2 t' x_13798 x_13797 x_13796
    155     (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_13797)
    156     (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_13796)
    157 | Mem (t, x_13799) ->
    158   h_Mem t x_13799
     147let rec expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_13829 = function
     148| Id (t, x_13831) -> h_Id t x_13831
     149| Cst (t, x_13832) -> h_Cst t x_13832
     150| Op1 (t, t', x_13834, x_13833) ->
     151  h_Op1 t t' x_13834 x_13833
     152    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13833)
     153| Op2 (t1, t2, t', x_13837, x_13836, x_13835) ->
     154  h_Op2 t1 t2 t' x_13837 x_13836 x_13835
     155    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_13836)
     156    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_13835)
     157| Mem (t, x_13838) ->
     158  h_Mem t x_13838
    159159    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost AST.ASTptr
    160       x_13799)
    161 | Cond (sz, sg, t, x_13802, x_13801, x_13800) ->
    162   h_Cond sz sg t x_13802 x_13801 x_13800
     160      x_13838)
     161| Cond (sz, sg, t, x_13841, x_13840, x_13839) ->
     162  h_Cond sz sg t x_13841 x_13840 x_13839
    163163    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost (AST.ASTint
    164       (sz, sg)) x_13802)
    165     (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13801)
    166     (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13800)
    167 | Ecost (t, x_13804, x_13803) ->
    168   h_Ecost t x_13804 x_13803
    169     (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13803)
     164      (sz, sg)) x_13841)
     165    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13840)
     166    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13839)
     167| Ecost (t, x_13843, x_13842) ->
     168  h_Ecost t x_13843 x_13842
     169    (expr_rect_Type3 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13842)
    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_13812 = function
    180 | Id (t, x_13814) -> h_Id t x_13814
    181 | Cst (t, x_13815) -> h_Cst t x_13815
    182 | Op1 (t, t', x_13817, x_13816) ->
    183   h_Op1 t t' x_13817 x_13816
    184     (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13816)
    185 | Op2 (t1, t2, t', x_13820, x_13819, x_13818) ->
    186   h_Op2 t1 t2 t' x_13820 x_13819 x_13818
    187     (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_13819)
    188     (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_13818)
    189 | Mem (t, x_13821) ->
    190   h_Mem t x_13821
     179let rec expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_13851 = function
     180| Id (t, x_13853) -> h_Id t x_13853
     181| Cst (t, x_13854) -> h_Cst t x_13854
     182| Op1 (t, t', x_13856, x_13855) ->
     183  h_Op1 t t' x_13856 x_13855
     184    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13855)
     185| Op2 (t1, t2, t', x_13859, x_13858, x_13857) ->
     186  h_Op2 t1 t2 t' x_13859 x_13858 x_13857
     187    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_13858)
     188    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_13857)
     189| Mem (t, x_13860) ->
     190  h_Mem t x_13860
    191191    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost AST.ASTptr
    192       x_13821)
    193 | Cond (sz, sg, t, x_13824, x_13823, x_13822) ->
    194   h_Cond sz sg t x_13824 x_13823 x_13822
     192      x_13860)
     193| Cond (sz, sg, t, x_13863, x_13862, x_13861) ->
     194  h_Cond sz sg t x_13863 x_13862 x_13861
    195195    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost (AST.ASTint
    196       (sz, sg)) x_13824)
    197     (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13823)
    198     (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13822)
    199 | Ecost (t, x_13826, x_13825) ->
    200   h_Ecost t x_13826 x_13825
    201     (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13825)
     196      (sz, sg)) x_13863)
     197    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13862)
     198    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13861)
     199| Ecost (t, x_13865, x_13864) ->
     200  h_Ecost t x_13865 x_13864
     201    (expr_rect_Type2 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13864)
    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_13834 = function
    212 | Id (t, x_13836) -> h_Id t x_13836
    213 | Cst (t, x_13837) -> h_Cst t x_13837
    214 | Op1 (t, t', x_13839, x_13838) ->
    215   h_Op1 t t' x_13839 x_13838
    216     (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13838)
    217 | Op2 (t1, t2, t', x_13842, x_13841, x_13840) ->
    218   h_Op2 t1 t2 t' x_13842 x_13841 x_13840
    219     (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_13841)
    220     (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_13840)
    221 | Mem (t, x_13843) ->
    222   h_Mem t x_13843
     211let rec expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_13873 = function
     212| Id (t, x_13875) -> h_Id t x_13875
     213| Cst (t, x_13876) -> h_Cst t x_13876
     214| Op1 (t, t', x_13878, x_13877) ->
     215  h_Op1 t t' x_13878 x_13877
     216    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13877)
     217| Op2 (t1, t2, t', x_13881, x_13880, x_13879) ->
     218  h_Op2 t1 t2 t' x_13881 x_13880 x_13879
     219    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_13880)
     220    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_13879)
     221| Mem (t, x_13882) ->
     222  h_Mem t x_13882
    223223    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost AST.ASTptr
    224       x_13843)
    225 | Cond (sz, sg, t, x_13846, x_13845, x_13844) ->
    226   h_Cond sz sg t x_13846 x_13845 x_13844
     224      x_13882)
     225| Cond (sz, sg, t, x_13885, x_13884, x_13883) ->
     226  h_Cond sz sg t x_13885 x_13884 x_13883
    227227    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost (AST.ASTint
    228       (sz, sg)) x_13846)
    229     (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13845)
    230     (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13844)
    231 | Ecost (t, x_13848, x_13847) ->
    232   h_Ecost t x_13848 x_13847
    233     (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13847)
     228      (sz, sg)) x_13885)
     229    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13884)
     230    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13883)
     231| Ecost (t, x_13887, x_13886) ->
     232  h_Ecost t x_13887 x_13886
     233    (expr_rect_Type1 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13886)
    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_13856 = function
    244 | Id (t, x_13858) -> h_Id t x_13858
    245 | Cst (t, x_13859) -> h_Cst t x_13859
    246 | Op1 (t, t', x_13861, x_13860) ->
    247   h_Op1 t t' x_13861 x_13860
    248     (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13860)
    249 | Op2 (t1, t2, t', x_13864, x_13863, x_13862) ->
    250   h_Op2 t1 t2 t' x_13864 x_13863 x_13862
    251     (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_13863)
    252     (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_13862)
    253 | Mem (t, x_13865) ->
    254   h_Mem t x_13865
     243let rec expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost x_13895 = function
     244| Id (t, x_13897) -> h_Id t x_13897
     245| Cst (t, x_13898) -> h_Cst t x_13898
     246| Op1 (t, t', x_13900, x_13899) ->
     247  h_Op1 t t' x_13900 x_13899
     248    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13899)
     249| Op2 (t1, t2, t', x_13903, x_13902, x_13901) ->
     250  h_Op2 t1 t2 t' x_13903 x_13902 x_13901
     251    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t1 x_13902)
     252    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t2 x_13901)
     253| Mem (t, x_13904) ->
     254  h_Mem t x_13904
    255255    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost AST.ASTptr
    256       x_13865)
    257 | Cond (sz, sg, t, x_13868, x_13867, x_13866) ->
    258   h_Cond sz sg t x_13868 x_13867 x_13866
     256      x_13904)
     257| Cond (sz, sg, t, x_13907, x_13906, x_13905) ->
     258  h_Cond sz sg t x_13907 x_13906 x_13905
    259259    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost (AST.ASTint
    260       (sz, sg)) x_13868)
    261     (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13867)
    262     (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13866)
    263 | Ecost (t, x_13870, x_13869) ->
    264   h_Ecost t x_13870 x_13869
    265     (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13869)
     260      (sz, sg)) x_13907)
     261    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13906)
     262    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13905)
     263| Ecost (t, x_13909, x_13908) ->
     264  h_Ecost t x_13909 x_13908
     265    (expr_rect_Type0 h_Id h_Cst h_Op1 h_Op2 h_Mem h_Cond h_Ecost t x_13908)
    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_14041, x_14040) -> h_St_assign t x_14041 x_14040
    376 | St_store (t, x_14043, x_14042) -> h_St_store t x_14043 x_14042
    377 | St_call (x_14046, x_14045, x_14044) -> h_St_call x_14046 x_14045 x_14044
    378 | St_seq (x_14048, x_14047) ->
    379   h_St_seq x_14048 x_14047
     375| St_assign (t, x_14080, x_14079) -> h_St_assign t x_14080 x_14079
     376| St_store (t, x_14082, x_14081) -> h_St_store t x_14082 x_14081
     377| St_call (x_14085, x_14084, x_14083) -> h_St_call x_14085 x_14084 x_14083
     378| St_seq (x_14087, x_14086) ->
     379  h_St_seq x_14087 x_14086
    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_14048)
     381      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14087)
    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_14047)
    384 | St_ifthenelse (sz, sg, x_14051, x_14050, x_14049) ->
    385   h_St_ifthenelse sz sg x_14051 x_14050 x_14049
     383      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14086)
     384| St_ifthenelse (sz, sg, x_14090, x_14089, x_14088) ->
     385  h_St_ifthenelse sz sg x_14090 x_14089 x_14088
    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_14050)
     387      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14089)
    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_14049)
    390 | St_return x_14052 -> h_St_return x_14052
    391 | St_label (x_14054, x_14053) ->
    392   h_St_label x_14054 x_14053
     389      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14088)
     390| St_return x_14091 -> h_St_return x_14091
     391| St_label (x_14093, x_14092) ->
     392  h_St_label x_14093 x_14092
    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_14053)
    395 | St_goto x_14055 -> h_St_goto x_14055
    396 | St_cost (x_14057, x_14056) ->
    397   h_St_cost x_14057 x_14056
     394      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14092)
     395| St_goto x_14094 -> h_St_goto x_14094
     396| St_cost (x_14096, x_14095) ->
     397  h_St_cost x_14096 x_14095
    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_14056)
     399      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14095)
    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_14099, x_14098) -> h_St_assign t x_14099 x_14098
    413 | St_store (t, x_14101, x_14100) -> h_St_store t x_14101 x_14100
    414 | St_call (x_14104, x_14103, x_14102) -> h_St_call x_14104 x_14103 x_14102
    415 | St_seq (x_14106, x_14105) ->
    416   h_St_seq x_14106 x_14105
     412| St_assign (t, x_14138, x_14137) -> h_St_assign t x_14138 x_14137
     413| St_store (t, x_14140, x_14139) -> h_St_store t x_14140 x_14139
     414| St_call (x_14143, x_14142, x_14141) -> h_St_call x_14143 x_14142 x_14141
     415| St_seq (x_14145, x_14144) ->
     416  h_St_seq x_14145 x_14144
    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_14106)
     418      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14145)
    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_14105)
    421 | St_ifthenelse (sz, sg, x_14109, x_14108, x_14107) ->
    422   h_St_ifthenelse sz sg x_14109 x_14108 x_14107
     420      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14144)
     421| St_ifthenelse (sz, sg, x_14148, x_14147, x_14146) ->
     422  h_St_ifthenelse sz sg x_14148 x_14147 x_14146
    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_14108)
     424      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14147)
    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_14107)
    427 | St_return x_14110 -> h_St_return x_14110
    428 | St_label (x_14112, x_14111) ->
    429   h_St_label x_14112 x_14111
     426      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14146)
     427| St_return x_14149 -> h_St_return x_14149
     428| St_label (x_14151, x_14150) ->
     429  h_St_label x_14151 x_14150
    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_14111)
    432 | St_goto x_14113 -> h_St_goto x_14113
    433 | St_cost (x_14115, x_14114) ->
    434   h_St_cost x_14115 x_14114
     431      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14150)
     432| St_goto x_14152 -> h_St_goto x_14152
     433| St_cost (x_14154, x_14153) ->
     434  h_St_cost x_14154 x_14153
    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_14114)
     436      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14153)
    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_14128, x_14127) -> h_St_assign t x_14128 x_14127
    450 | St_store (t, x_14130, x_14129) -> h_St_store t x_14130 x_14129
    451 | St_call (x_14133, x_14132, x_14131) -> h_St_call x_14133 x_14132 x_14131
    452 | St_seq (x_14135, x_14134) ->
    453   h_St_seq x_14135 x_14134
     449| St_assign (t, x_14167, x_14166) -> h_St_assign t x_14167 x_14166
     450| St_store (t, x_14169, x_14168) -> h_St_store t x_14169 x_14168
     451| St_call (x_14172, x_14171, x_14170) -> h_St_call x_14172 x_14171 x_14170
     452| St_seq (x_14174, x_14173) ->
     453  h_St_seq x_14174 x_14173
    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_14135)
     455      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14174)
    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_14134)
    458 | St_ifthenelse (sz, sg, x_14138, x_14137, x_14136) ->
    459   h_St_ifthenelse sz sg x_14138 x_14137 x_14136
     457      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14173)
     458| St_ifthenelse (sz, sg, x_14177, x_14176, x_14175) ->
     459  h_St_ifthenelse sz sg x_14177 x_14176 x_14175
    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_14137)
     461      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14176)
    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_14136)
    464 | St_return x_14139 -> h_St_return x_14139
    465 | St_label (x_14141, x_14140) ->
    466   h_St_label x_14141 x_14140
     463      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14175)
     464| St_return x_14178 -> h_St_return x_14178
     465| St_label (x_14180, x_14179) ->
     466  h_St_label x_14180 x_14179
    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_14140)
    469 | St_goto x_14142 -> h_St_goto x_14142
    470 | St_cost (x_14144, x_14143) ->
    471   h_St_cost x_14144 x_14143
     468      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14179)
     469| St_goto x_14181 -> h_St_goto x_14181
     470| St_cost (x_14183, x_14182) ->
     471  h_St_cost x_14183 x_14182
    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_14143)
     473      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14182)
    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_14157, x_14156) -> h_St_assign t x_14157 x_14156
    487 | St_store (t, x_14159, x_14158) -> h_St_store t x_14159 x_14158
    488 | St_call (x_14162, x_14161, x_14160) -> h_St_call x_14162 x_14161 x_14160
    489 | St_seq (x_14164, x_14163) ->
    490   h_St_seq x_14164 x_14163
     486| St_assign (t, x_14196, x_14195) -> h_St_assign t x_14196 x_14195
     487| St_store (t, x_14198, x_14197) -> h_St_store t x_14198 x_14197
     488| St_call (x_14201, x_14200, x_14199) -> h_St_call x_14201 x_14200 x_14199
     489| St_seq (x_14203, x_14202) ->
     490  h_St_seq x_14203 x_14202
    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_14164)
     492      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14203)
    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_14163)
    495 | St_ifthenelse (sz, sg, x_14167, x_14166, x_14165) ->
    496   h_St_ifthenelse sz sg x_14167 x_14166 x_14165
     494      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14202)
     495| St_ifthenelse (sz, sg, x_14206, x_14205, x_14204) ->
     496  h_St_ifthenelse sz sg x_14206 x_14205 x_14204
    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_14166)
     498      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14205)
    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_14165)
    501 | St_return x_14168 -> h_St_return x_14168
    502 | St_label (x_14170, x_14169) ->
    503   h_St_label x_14170 x_14169
     500      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14204)
     501| St_return x_14207 -> h_St_return x_14207
     502| St_label (x_14209, x_14208) ->
     503  h_St_label x_14209 x_14208
    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_14169)
    506 | St_goto x_14171 -> h_St_goto x_14171
    507 | St_cost (x_14173, x_14172) ->
    508   h_St_cost x_14173 x_14172
     505      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14208)
     506| St_goto x_14210 -> h_St_goto x_14210
     507| St_cost (x_14212, x_14211) ->
     508  h_St_cost x_14212 x_14211
    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_14172)
     510      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14211)
    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_14186, x_14185) -> h_St_assign t x_14186 x_14185
    524 | St_store (t, x_14188, x_14187) -> h_St_store t x_14188 x_14187
    525 | St_call (x_14191, x_14190, x_14189) -> h_St_call x_14191 x_14190 x_14189
    526 | St_seq (x_14193, x_14192) ->
    527   h_St_seq x_14193 x_14192
     523| St_assign (t, x_14225, x_14224) -> h_St_assign t x_14225 x_14224
     524| St_store (t, x_14227, x_14226) -> h_St_store t x_14227 x_14226
     525| St_call (x_14230, x_14229, x_14228) -> h_St_call x_14230 x_14229 x_14228
     526| St_seq (x_14232, x_14231) ->
     527  h_St_seq x_14232 x_14231
    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_14193)
     529      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14232)
    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_14192)
    532 | St_ifthenelse (sz, sg, x_14196, x_14195, x_14194) ->
    533   h_St_ifthenelse sz sg x_14196 x_14195 x_14194
     531      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14231)
     532| St_ifthenelse (sz, sg, x_14235, x_14234, x_14233) ->
     533  h_St_ifthenelse sz sg x_14235 x_14234 x_14233
    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_14195)
     535      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14234)
    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_14194)
    538 | St_return x_14197 -> h_St_return x_14197
    539 | St_label (x_14199, x_14198) ->
    540   h_St_label x_14199 x_14198
     537      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14233)
     538| St_return x_14236 -> h_St_return x_14236
     539| St_label (x_14238, x_14237) ->
     540  h_St_label x_14238 x_14237
    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_14198)
    543 | St_goto x_14200 -> h_St_goto x_14200
    544 | St_cost (x_14202, x_14201) ->
    545   h_St_cost x_14202 x_14201
     542      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14237)
     543| St_goto x_14239 -> h_St_goto x_14239
     544| St_cost (x_14241, x_14240) ->
     545  h_St_cost x_14241 x_14240
    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_14201)
     547      h_St_ifthenelse h_St_return h_St_label h_St_goto h_St_cost x_14240)
    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_14497 =
     759let rec internal_function_rect_Type4 h_mk_internal_function x_14536 =
    760760  let { f_return = f_return0; f_params = f_params0; f_vars = f_vars0;
    761     f_stacksize = f_stacksize0; f_body = f_body0 } = x_14497
     761    f_stacksize = f_stacksize0; f_body = f_body0 } = x_14536
    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_14499 =
     770let rec internal_function_rect_Type5 h_mk_internal_function x_14538 =
    771771  let { f_return = f_return0; f_params = f_params0; f_vars = f_vars0;
    772     f_stacksize = f_stacksize0; f_body = f_body0 } = x_14499
     772    f_stacksize = f_stacksize0; f_body = f_body0 } = x_14538
    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_14501 =
     781let rec internal_function_rect_Type3 h_mk_internal_function x_14540 =
    782782  let { f_return = f_return0; f_params = f_params0; f_vars = f_vars0;
    783     f_stacksize = f_stacksize0; f_body = f_body0 } = x_14501
     783    f_stacksize = f_stacksize0; f_body = f_body0 } = x_14540
    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_14503 =
     792let rec internal_function_rect_Type2 h_mk_internal_function x_14542 =
    793793  let { f_return = f_return0; f_params = f_params0; f_vars = f_vars0;
    794     f_stacksize = f_stacksize0; f_body = f_body0 } = x_14503
     794    f_stacksize = f_stacksize0; f_body = f_body0 } = x_14542
    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_14505 =
     803let rec internal_function_rect_Type1 h_mk_internal_function x_14544 =
    804804  let { f_return = f_return0; f_params = f_params0; f_vars = f_vars0;
    805     f_stacksize = f_stacksize0; f_body = f_body0 } = x_14505
     805    f_stacksize = f_stacksize0; f_body = f_body0 } = x_14544
    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_14507 =
     814let rec internal_function_rect_Type0 h_mk_internal_function x_14546 =
    815815  let { f_return = f_return0; f_params = f_params0; f_vars = f_vars0;
    816     f_stacksize = f_stacksize0; f_body = f_body0 } = x_14507
     816    f_stacksize = f_stacksize0; f_body = f_body0 } = x_14546
    817817  in
    818818  h_mk_internal_function f_return0 f_params0 f_vars0 __ f_stacksize0 f_body0
  • extracted/compiler.ml

    r2909 r2951  
    149149open ToCminor
    150150
    151 open Initialisation
    152 
    153151open BitVectorTrie
    154152
     
    172170
    173171open CostCheck
    174 
    175 open Executions
    176 
    177 open StructuredTraces
    178 
    179 open RTLabs_semantics
    180 
    181 open RTLabs_abstract
    182 
    183 open RTLabs_traces
    184172
    185173open CostInj
     
    490478      (Obj.magic (ToCminor.clight_to_cminor p1)) (fun p2 ->
    491479      let i3 = observe Cminor_pass p2 in
    492       let p3 = ToRTLabs.cminor_to_rtlabs init_cost (Obj.magic p2) in
     480      let p3 = ToRTLabs.cminor_to_rtlabs (Obj.magic p2) in
    493481      let i4 = Obj.magic observe Rtlabs_pass p3 in
    494482      (match CostCheck.check_cost_program p3 with
     
    523511
    524512(** val back_end :
    525     observe_pass -> RTLabs_syntax.rTLabs_program ->
     513    observe_pass -> CostLabel.costlabel -> RTLabs_syntax.rTLabs_program ->
    526514    ((ASM.pseudo_assembly_program, Joint.stack_cost_model) Types.prod,
    527515    Nat.nat) Types.prod Errors.res **)
    528 let back_end observe p =
    529   let p0 = RTLabsToRTL.rtlabs_to_rtl p in
     516let back_end observe init_cost p =
     517  let p0 = RTLabsToRTL.rtlabs_to_rtl init_cost p in
    530518  let st = lookup_stack_cost (Joint.graph_params_to_params RTL.rTL) p0 in
    531519  let i =
     
    543531  let i2 = Obj.magic observe Ertlptr_pass { Types.fst = p2; Types.snd = st1 }
    544532  in
    545   let { Types.fst = eta29116; Types.snd = max_stack } =
     533  let { Types.fst = eta24710; Types.snd = max_stack } =
    546534    ERTLptrToLTL.ertlptr_to_ltl compute_fixpoint colour_graph p2
    547535  in
    548   let { Types.fst = p3; Types.snd = stack_cost } = eta29116 in
     536  let { Types.fst = p3; Types.snd = stack_cost } = eta24710 in
    549537  let st2 = lookup_stack_cost (Joint.graph_params_to_params LTL.lTL) p3 in
    550538  let i3 = Obj.magic observe Ltl_pass { Types.fst = p3; Types.snd = st2 } in
     
    592580      Obj.magic (Errors.OK (Types.pi1 p0))))
    593581
     582open StructuredTraces
     583
    594584open AbstractStatus
    595585
     
    625615    Csyntax.clight_program -> Label.clight_cost_map -> 'a1) ->
    626616    compiler_output -> 'a1 **)
    627 let rec compiler_output_rect_Type4 h_mk_compiler_output x_25390 =
     617let rec compiler_output_rect_Type4 h_mk_compiler_output x_4341 =
    628618  let { c_labelled_object_code = c_labelled_object_code0; c_stack_cost =
    629619    c_stack_cost0; c_max_stack = c_max_stack0; c_labelled_clight =
    630     c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_25390
     620    c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_4341
    631621  in
    632622  h_mk_compiler_output c_labelled_object_code0 c_stack_cost0 c_max_stack0
     
    637627    Csyntax.clight_program -> Label.clight_cost_map -> 'a1) ->
    638628    compiler_output -> 'a1 **)
    639 let rec compiler_output_rect_Type5 h_mk_compiler_output x_25392 =
     629let rec compiler_output_rect_Type5 h_mk_compiler_output x_4343 =
    640630  let { c_labelled_object_code = c_labelled_object_code0; c_stack_cost =
    641631    c_stack_cost0; c_max_stack = c_max_stack0; c_labelled_clight =
    642     c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_25392
     632    c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_4343
    643633  in
    644634  h_mk_compiler_output c_labelled_object_code0 c_stack_cost0 c_max_stack0
     
    649639    Csyntax.clight_program -> Label.clight_cost_map -> 'a1) ->
    650640    compiler_output -> 'a1 **)
    651 let rec compiler_output_rect_Type3 h_mk_compiler_output x_25394 =
     641let rec compiler_output_rect_Type3 h_mk_compiler_output x_4345 =
    652642  let { c_labelled_object_code = c_labelled_object_code0; c_stack_cost =
    653643    c_stack_cost0; c_max_stack = c_max_stack0; c_labelled_clight =
    654     c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_25394
     644    c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_4345
    655645  in
    656646  h_mk_compiler_output c_labelled_object_code0 c_stack_cost0 c_max_stack0
     
    661651    Csyntax.clight_program -> Label.clight_cost_map -> 'a1) ->
    662652    compiler_output -> 'a1 **)
    663 let rec compiler_output_rect_Type2 h_mk_compiler_output x_25396 =
     653let rec compiler_output_rect_Type2 h_mk_compiler_output x_4347 =
    664654  let { c_labelled_object_code = c_labelled_object_code0; c_stack_cost =
    665655    c_stack_cost0; c_max_stack = c_max_stack0; c_labelled_clight =
    666     c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_25396
     656    c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_4347
    667657  in
    668658  h_mk_compiler_output c_labelled_object_code0 c_stack_cost0 c_max_stack0
     
    673663    Csyntax.clight_program -> Label.clight_cost_map -> 'a1) ->
    674664    compiler_output -> 'a1 **)
    675 let rec compiler_output_rect_Type1 h_mk_compiler_output x_25398 =
     665let rec compiler_output_rect_Type1 h_mk_compiler_output x_4349 =
    676666  let { c_labelled_object_code = c_labelled_object_code0; c_stack_cost =
    677667    c_stack_cost0; c_max_stack = c_max_stack0; c_labelled_clight =
    678     c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_25398
     668    c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_4349
    679669  in
    680670  h_mk_compiler_output c_labelled_object_code0 c_stack_cost0 c_max_stack0
     
    685675    Csyntax.clight_program -> Label.clight_cost_map -> 'a1) ->
    686676    compiler_output -> 'a1 **)
    687 let rec compiler_output_rect_Type0 h_mk_compiler_output x_25400 =
     677let rec compiler_output_rect_Type0 h_mk_compiler_output x_4351 =
    688678  let { c_labelled_object_code = c_labelled_object_code0; c_stack_cost =
    689679    c_stack_cost0; c_max_stack = c_max_stack0; c_labelled_clight =
    690     c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_25400
     680    c_labelled_clight0; c_clight_cost_map = c_clight_cost_map0 } = x_4351
    691681  in
    692682  h_mk_compiler_output c_labelled_object_code0 c_stack_cost0 c_max_stack0
     
    773763      (Obj.magic (front_end observe p)) (fun init_cost p' p0 ->
    774764      Monad.m_bind3 (Monad.max_def Errors.res0)
    775         (Obj.magic (back_end observe p0)) (fun p1 stack_cost max_stack ->
     765        (Obj.magic (back_end observe init_cost p0))
     766        (fun p1 stack_cost max_stack ->
    776767        Monad.m_bind0 (Monad.max_def Errors.res0)
    777768          (Obj.magic (assembler observe p1)) (fun p2 ->
  • extracted/compiler.mli

    r2909 r2951  
    149149open ToCminor
    150150
    151 open Initialisation
    152 
    153151open BitVectorTrie
    154152
     
    172170
    173171open CostCheck
    174 
    175 open Executions
    176 
    177 open StructuredTraces
    178 
    179 open RTLabs_semantics
    180 
    181 open RTLabs_abstract
    182 
    183 open RTLabs_traces
    184172
    185173open CostInj
     
    338326
    339327val back_end :
    340   observe_pass -> RTLabs_syntax.rTLabs_program ->
     328  observe_pass -> CostLabel.costlabel -> RTLabs_syntax.rTLabs_program ->
    341329  ((ASM.pseudo_assembly_program, Joint.stack_cost_model) Types.prod, Nat.nat)
    342330  Types.prod Errors.res
     
    357345  observe_pass -> ASM.pseudo_assembly_program -> ASM.labelled_object_code
    358346  Errors.res
     347
     348open StructuredTraces
    359349
    360350open AbstractStatus
  • extracted/costInj.ml

    r2773 r2951  
    11open Preamble
    2 
    3 open Listb_extra
    4 
    5 open Executions
    6 
    7 open CostMisc
    8 
    9 open Deqsets_extra
    10 
    11 open CostSpec
    12 
    13 open Sets
    14 
    15 open Listb
    16 
    17 open StructuredTraces
    182
    193open BitVectorTrie
     
    259open Registers
    2610
    27 open FrontEndOps
    28 
    29 open RTLabs_syntax
    30 
    31 open SmallstepExec
    32 
    33 open CostLabel
    34 
    35 open Events
    36 
    37 open IOMonad
    38 
    39 open IO
    40 
    41 open Extra_bool
    42 
    43 open Coqlib
    44 
    45 open Values
    46 
    4711open FrontEndVal
    4812
     
    5014
    5115open ByteValues
     16
     17open GenMem
     18
     19open FrontEndMem
    5220
    5321open Division
     
    5927open Pointers
    6028
    61 open GenMem
     29open Coqlib
    6230
    63 open FrontEndMem
     31open Values
     32
     33open FrontEndOps
     34
     35open CostLabel
    6436
    6537open Proper
     
    6941open Deqsets
    7042
     43open ErrorMessages
     44
     45open PreIdentifiers
     46
     47open Errors
     48
    7149open Extralib
    7250
    7351open Lists
     52
     53open Positive
    7454
    7555open Identifiers
     
    8969open BitVector
    9070
    91 open Extranat
     71open Jmeq
    9272
    93 open Integers
     73open Russell
    9474
    95 open AST
    96 
    97 open Globalenvs
    98 
    99 open ErrorMessages
    100 
    101 open Option
     75open List
    10276
    10377open Setoids
     
    10579open Monad
    10680
    107 open Jmeq
     81open Option
    10882
    109 open Russell
    110 
    111 open Positive
    112 
    113 open PreIdentifiers
    114 
    115 open Errors
     83open Extranat
    11684
    11785open Bool
     
    12088
    12189open Nat
     90
     91open Integers
     92
     93open Types
     94
     95open AST
    12296
    12397open Hints_declaration
     
    129103open Logic
    130104
    131 open Types
     105open RTLabs_syntax
    132106
    133 open List
    134 
    135 open RTLabs_semantics
    136 
    137 open RTLabs_abstract
    138 
    139 open RTLabs_traces
     107open CostSpec
    140108
    141109(** val reverse_label_map :
  • extracted/costInj.mli

    r2773 r2951  
    11open Preamble
    2 
    3 open Listb_extra
    4 
    5 open Executions
    6 
    7 open CostMisc
    8 
    9 open Deqsets_extra
    10 
    11 open CostSpec
    12 
    13 open Sets
    14 
    15 open Listb
    16 
    17 open StructuredTraces
    182
    193open BitVectorTrie
     
    259open Registers
    2610
    27 open FrontEndOps
    28 
    29 open RTLabs_syntax
    30 
    31 open SmallstepExec
    32 
    33 open CostLabel
    34 
    35 open Events
    36 
    37 open IOMonad
    38 
    39 open IO
    40 
    41 open Extra_bool
    42 
    43 open Coqlib
    44 
    45 open Values
    46 
    4711open FrontEndVal
    4812
     
    5014
    5115open ByteValues
     16
     17open GenMem
     18
     19open FrontEndMem
    5220
    5321open Division
     
    5927open Pointers
    6028
    61 open GenMem
     29open Coqlib
    6230
    63 open FrontEndMem
     31open Values
     32
     33open FrontEndOps
     34
     35open CostLabel
    6436
    6537open Proper
     
    6941open Deqsets
    7042
     43open ErrorMessages
     44
     45open PreIdentifiers
     46
     47open Errors
     48
    7149open Extralib
    7250
    7351open Lists
     52
     53open Positive
    7454
    7555open Identifiers
     
    8969open BitVector
    9070
    91 open Extranat
     71open Jmeq
    9272
    93 open Integers
     73open Russell
    9474
    95 open AST
    96 
    97 open Globalenvs
    98 
    99 open ErrorMessages
    100 
    101 open Option
     75open List
    10276
    10377open Setoids
     
    10579open Monad
    10680
    107 open Jmeq
     81open Option
    10882
    109 open Russell
    110 
    111 open Positive
    112 
    113 open PreIdentifiers
    114 
    115 open Errors
     83open Extranat
    11684
    11785open Bool
     
    12088
    12189open Nat
     90
     91open Integers
     92
     93open Types
     94
     95open AST
    12296
    12397open Hints_declaration
     
    129103open Logic
    130104
    131 open Types
     105open RTLabs_syntax
    132106
    133 open List
    134 
    135 open RTLabs_semantics
    136 
    137 open RTLabs_abstract
    138 
    139 open RTLabs_traces
     107open CostSpec
    140108
    141109val reverse_label_map :
  • extracted/csem.ml

    r2827 r2951  
    778778let rec cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3 h_Kswitch h_Kcall = function
    779779| Kstop -> h_Kstop
    780 | Kseq (x_8687, x_8686) ->
    781   h_Kseq x_8687 x_8686
     780| Kseq (x_8726, x_8725) ->
     781  h_Kseq x_8726 x_8725
    782782    (cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    783       h_Kswitch h_Kcall x_8686)
    784 | Kwhile (x_8690, x_8689, x_8688) ->
    785   h_Kwhile x_8690 x_8689 x_8688
     783      h_Kswitch h_Kcall x_8725)
     784| Kwhile (x_8729, x_8728, x_8727) ->
     785  h_Kwhile x_8729 x_8728 x_8727
    786786    (cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    787       h_Kswitch h_Kcall x_8688)
    788 | Kdowhile (x_8693, x_8692, x_8691) ->
    789   h_Kdowhile x_8693 x_8692 x_8691
     787      h_Kswitch h_Kcall x_8727)
     788| Kdowhile (x_8732, x_8731, x_8730) ->
     789  h_Kdowhile x_8732 x_8731 x_8730
    790790    (cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    791       h_Kswitch h_Kcall x_8691)
    792 | Kfor2 (x_8697, x_8696, x_8695, x_8694) ->
    793   h_Kfor2 x_8697 x_8696 x_8695 x_8694
     791      h_Kswitch h_Kcall x_8730)
     792| Kfor2 (x_8736, x_8735, x_8734, x_8733) ->
     793  h_Kfor2 x_8736 x_8735 x_8734 x_8733
    794794    (cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    795       h_Kswitch h_Kcall x_8694)
    796 | Kfor3 (x_8701, x_8700, x_8699, x_8698) ->
    797   h_Kfor3 x_8701 x_8700 x_8699 x_8698
     795      h_Kswitch h_Kcall x_8733)
     796| Kfor3 (x_8740, x_8739, x_8738, x_8737) ->
     797  h_Kfor3 x_8740 x_8739 x_8738 x_8737
    798798    (cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    799       h_Kswitch h_Kcall x_8698)
    800 | Kswitch x_8702 ->
    801   h_Kswitch x_8702
     799      h_Kswitch h_Kcall x_8737)
     800| Kswitch x_8741 ->
     801  h_Kswitch x_8741
    802802    (cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    803       h_Kswitch h_Kcall x_8702)
    804 | Kcall (x_8706, x_8705, x_8704, x_8703) ->
    805   h_Kcall x_8706 x_8705 x_8704 x_8703
     803      h_Kswitch h_Kcall x_8741)
     804| Kcall (x_8745, x_8744, x_8743, x_8742) ->
     805  h_Kcall x_8745 x_8744 x_8743 x_8742
    806806    (cont_rect_Type4 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    807       h_Kswitch h_Kcall x_8703)
     807      h_Kswitch h_Kcall x_8742)
    808808
    809809(** val cont_rect_Type3 :
     
    818818let rec cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3 h_Kswitch h_Kcall = function
    819819| Kstop -> h_Kstop
    820 | Kseq (x_8747, x_8746) ->
    821   h_Kseq x_8747 x_8746
     820| Kseq (x_8786, x_8785) ->
     821  h_Kseq x_8786 x_8785
    822822    (cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    823       h_Kswitch h_Kcall x_8746)
    824 | Kwhile (x_8750, x_8749, x_8748) ->
    825   h_Kwhile x_8750 x_8749 x_8748
     823      h_Kswitch h_Kcall x_8785)
     824| Kwhile (x_8789, x_8788, x_8787) ->
     825  h_Kwhile x_8789 x_8788 x_8787
    826826    (cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    827       h_Kswitch h_Kcall x_8748)
    828 | Kdowhile (x_8753, x_8752, x_8751) ->
    829   h_Kdowhile x_8753 x_8752 x_8751
     827      h_Kswitch h_Kcall x_8787)
     828| Kdowhile (x_8792, x_8791, x_8790) ->
     829  h_Kdowhile x_8792 x_8791 x_8790
    830830    (cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    831       h_Kswitch h_Kcall x_8751)
    832 | Kfor2 (x_8757, x_8756, x_8755, x_8754) ->
    833   h_Kfor2 x_8757 x_8756 x_8755 x_8754
     831      h_Kswitch h_Kcall x_8790)
     832| Kfor2 (x_8796, x_8795, x_8794, x_8793) ->
     833  h_Kfor2 x_8796 x_8795 x_8794 x_8793
    834834    (cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    835       h_Kswitch h_Kcall x_8754)
    836 | Kfor3 (x_8761, x_8760, x_8759, x_8758) ->
    837   h_Kfor3 x_8761 x_8760 x_8759 x_8758
     835      h_Kswitch h_Kcall x_8793)
     836| Kfor3 (x_8800, x_8799, x_8798, x_8797) ->
     837  h_Kfor3 x_8800 x_8799 x_8798 x_8797
    838838    (cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    839       h_Kswitch h_Kcall x_8758)
    840 | Kswitch x_8762 ->
    841   h_Kswitch x_8762
     839      h_Kswitch h_Kcall x_8797)
     840| Kswitch x_8801 ->
     841  h_Kswitch x_8801
    842842    (cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    843       h_Kswitch h_Kcall x_8762)
    844 | Kcall (x_8766, x_8765, x_8764, x_8763) ->
    845   h_Kcall x_8766 x_8765 x_8764 x_8763
     843      h_Kswitch h_Kcall x_8801)
     844| Kcall (x_8805, x_8804, x_8803, x_8802) ->
     845  h_Kcall x_8805 x_8804 x_8803 x_8802
    846846    (cont_rect_Type3 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    847       h_Kswitch h_Kcall x_8763)
     847      h_Kswitch h_Kcall x_8802)
    848848
    849849(** val cont_rect_Type2 :
     
    858858let rec cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3 h_Kswitch h_Kcall = function
    859859| Kstop -> h_Kstop
    860 | Kseq (x_8777, x_8776) ->
    861   h_Kseq x_8777 x_8776
     860| Kseq (x_8816, x_8815) ->
     861  h_Kseq x_8816 x_8815
    862862    (cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    863       h_Kswitch h_Kcall x_8776)
    864 | Kwhile (x_8780, x_8779, x_8778) ->
    865   h_Kwhile x_8780 x_8779 x_8778
     863      h_Kswitch h_Kcall x_8815)
     864| Kwhile (x_8819, x_8818, x_8817) ->
     865  h_Kwhile x_8819 x_8818 x_8817
    866866    (cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    867       h_Kswitch h_Kcall x_8778)
    868 | Kdowhile (x_8783, x_8782, x_8781) ->
    869   h_Kdowhile x_8783 x_8782 x_8781
     867      h_Kswitch h_Kcall x_8817)
     868| Kdowhile (x_8822, x_8821, x_8820) ->
     869  h_Kdowhile x_8822 x_8821 x_8820
    870870    (cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    871       h_Kswitch h_Kcall x_8781)
    872 | Kfor2 (x_8787, x_8786, x_8785, x_8784) ->
    873   h_Kfor2 x_8787 x_8786 x_8785 x_8784
     871      h_Kswitch h_Kcall x_8820)
     872| Kfor2 (x_8826, x_8825, x_8824, x_8823) ->
     873  h_Kfor2 x_8826 x_8825 x_8824 x_8823
    874874    (cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    875       h_Kswitch h_Kcall x_8784)
    876 | Kfor3 (x_8791, x_8790, x_8789, x_8788) ->
    877   h_Kfor3 x_8791 x_8790 x_8789 x_8788
     875      h_Kswitch h_Kcall x_8823)
     876| Kfor3 (x_8830, x_8829, x_8828, x_8827) ->
     877  h_Kfor3 x_8830 x_8829 x_8828 x_8827
    878878    (cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    879       h_Kswitch h_Kcall x_8788)
    880 | Kswitch x_8792 ->
    881   h_Kswitch x_8792
     879      h_Kswitch h_Kcall x_8827)
     880| Kswitch x_8831 ->
     881  h_Kswitch x_8831
    882882    (cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    883       h_Kswitch h_Kcall x_8792)
    884 | Kcall (x_8796, x_8795, x_8794, x_8793) ->
    885   h_Kcall x_8796 x_8795 x_8794 x_8793
     883      h_Kswitch h_Kcall x_8831)
     884| Kcall (x_8835, x_8834, x_8833, x_8832) ->
     885  h_Kcall x_8835 x_8834 x_8833 x_8832
    886886    (cont_rect_Type2 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    887       h_Kswitch h_Kcall x_8793)
     887      h_Kswitch h_Kcall x_8832)
    888888
    889889(** val cont_rect_Type1 :
     
    898898let rec cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3 h_Kswitch h_Kcall = function
    899899| Kstop -> h_Kstop
    900 | Kseq (x_8807, x_8806) ->
    901   h_Kseq x_8807 x_8806
     900| Kseq (x_8846, x_8845) ->
     901  h_Kseq x_8846 x_8845
    902902    (cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    903       h_Kswitch h_Kcall x_8806)
    904 | Kwhile (x_8810, x_8809, x_8808) ->
    905   h_Kwhile x_8810 x_8809 x_8808
     903      h_Kswitch h_Kcall x_8845)
     904| Kwhile (x_8849, x_8848, x_8847) ->
     905  h_Kwhile x_8849 x_8848 x_8847
    906906    (cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    907       h_Kswitch h_Kcall x_8808)
    908 | Kdowhile (x_8813, x_8812, x_8811) ->
    909   h_Kdowhile x_8813 x_8812 x_8811
     907      h_Kswitch h_Kcall x_8847)
     908| Kdowhile (x_8852, x_8851, x_8850) ->
     909  h_Kdowhile x_8852 x_8851 x_8850
    910910    (cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    911       h_Kswitch h_Kcall x_8811)
    912 | Kfor2 (x_8817, x_8816, x_8815, x_8814) ->
    913   h_Kfor2 x_8817 x_8816 x_8815 x_8814
     911      h_Kswitch h_Kcall x_8850)
     912| Kfor2 (x_8856, x_8855, x_8854, x_8853) ->
     913  h_Kfor2 x_8856 x_8855 x_8854 x_8853
    914914    (cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    915       h_Kswitch h_Kcall x_8814)
    916 | Kfor3 (x_8821, x_8820, x_8819, x_8818) ->
    917   h_Kfor3 x_8821 x_8820 x_8819 x_8818
     915      h_Kswitch h_Kcall x_8853)
     916| Kfor3 (x_8860, x_8859, x_8858, x_8857) ->
     917  h_Kfor3 x_8860 x_8859 x_8858 x_8857
    918918    (cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    919       h_Kswitch h_Kcall x_8818)
    920 | Kswitch x_8822 ->
    921   h_Kswitch x_8822
     919      h_Kswitch h_Kcall x_8857)
     920| Kswitch x_8861 ->
     921  h_Kswitch x_8861
    922922    (cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    923       h_Kswitch h_Kcall x_8822)
    924 | Kcall (x_8826, x_8825, x_8824, x_8823) ->
    925   h_Kcall x_8826 x_8825 x_8824 x_8823
     923      h_Kswitch h_Kcall x_8861)
     924| Kcall (x_8865, x_8864, x_8863, x_8862) ->
     925  h_Kcall x_8865 x_8864 x_8863 x_8862
    926926    (cont_rect_Type1 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    927       h_Kswitch h_Kcall x_8823)
     927      h_Kswitch h_Kcall x_8862)
    928928
    929929(** val cont_rect_Type0 :
     
    938938let rec cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3 h_Kswitch h_Kcall = function
    939939| Kstop -> h_Kstop
    940 | Kseq (x_8837, x_8836) ->
    941   h_Kseq x_8837 x_8836
     940| Kseq (x_8876, x_8875) ->
     941  h_Kseq x_8876 x_8875
    942942    (cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    943       h_Kswitch h_Kcall x_8836)
    944 | Kwhile (x_8840, x_8839, x_8838) ->
    945   h_Kwhile x_8840 x_8839 x_8838
     943      h_Kswitch h_Kcall x_8875)
     944| Kwhile (x_8879, x_8878, x_8877) ->
     945  h_Kwhile x_8879 x_8878 x_8877
    946946    (cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    947       h_Kswitch h_Kcall x_8838)
    948 | Kdowhile (x_8843, x_8842, x_8841) ->
    949   h_Kdowhile x_8843 x_8842 x_8841
     947      h_Kswitch h_Kcall x_8877)
     948| Kdowhile (x_8882, x_8881, x_8880) ->
     949  h_Kdowhile x_8882 x_8881 x_8880
    950950    (cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    951       h_Kswitch h_Kcall x_8841)
    952 | Kfor2 (x_8847, x_8846, x_8845, x_8844) ->
    953   h_Kfor2 x_8847 x_8846 x_8845 x_8844
     951      h_Kswitch h_Kcall x_8880)
     952| Kfor2 (x_8886, x_8885, x_8884, x_8883) ->
     953  h_Kfor2 x_8886 x_8885 x_8884 x_8883
    954954    (cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    955       h_Kswitch h_Kcall x_8844)
    956 | Kfor3 (x_8851, x_8850, x_8849, x_8848) ->
    957   h_Kfor3 x_8851 x_8850 x_8849 x_8848
     955      h_Kswitch h_Kcall x_8883)
     956| Kfor3 (x_8890, x_8889, x_8888, x_8887) ->
     957  h_Kfor3 x_8890 x_8889 x_8888 x_8887
    958958    (cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    959       h_Kswitch h_Kcall x_8848)
    960 | Kswitch x_8852 ->
    961   h_Kswitch x_8852
     959      h_Kswitch h_Kcall x_8887)
     960| Kswitch x_8891 ->
     961  h_Kswitch x_8891
    962962    (cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    963       h_Kswitch h_Kcall x_8852)
    964 | Kcall (x_8856, x_8855, x_8854, x_8853) ->
    965   h_Kcall x_8856 x_8855 x_8854 x_8853
     963      h_Kswitch h_Kcall x_8891)
     964| Kcall (x_8895, x_8894, x_8893, x_8892) ->
     965  h_Kcall x_8895 x_8894 x_8893 x_8892
    966966    (cont_rect_Type0 h_Kstop h_Kseq h_Kwhile h_Kdowhile h_Kfor2 h_Kfor3
    967       h_Kswitch h_Kcall x_8853)
     967      h_Kswitch h_Kcall x_8892)
    968968
    969969(** val cont_inv_rect_Type4 :
  • extracted/eRTL.ml

    r2873 r2951  
    11open Preamble
     2
     3open Extra_bool
     4
     5open Coqlib
     6
     7open Values
     8
     9open FrontEndVal
     10
     11open GenMem
     12
     13open FrontEndMem
     14
     15open Globalenvs
    216
    317open String
     
    112126    (Registers.register -> 'a1) -> (I8051.register -> 'a1) -> move_dst -> 'a1 **)
    113127let rec move_dst_rect_Type4 h_PSD h_HDW = function
    114 | PSD x_21416 -> h_PSD x_21416
    115 | HDW x_21417 -> h_HDW x_21417
     128| PSD x_18520 -> h_PSD x_18520
     129| HDW x_18521 -> h_HDW x_18521
    116130
    117131(** val move_dst_rect_Type5 :
    118132    (Registers.register -> 'a1) -> (I8051.register -> 'a1) -> move_dst -> 'a1 **)
    119133let rec move_dst_rect_Type5 h_PSD h_HDW = function
    120 | PSD x_21421 -> h_PSD x_21421
    121 | HDW x_21422 -> h_HDW x_21422
     134| PSD x_18525 -> h_PSD x_18525
     135| HDW x_18526 -> h_HDW x_18526
    122136
    123137(** val move_dst_rect_Type3 :
    124138    (Registers.register -> 'a1) -> (I8051.register -> 'a1) -> move_dst -> 'a1 **)
    125139let rec move_dst_rect_Type3 h_PSD h_HDW = function
    126 | PSD x_21426 -> h_PSD x_21426
    127 | HDW x_21427 -> h_HDW x_21427
     140| PSD x_18530 -> h_PSD x_18530
     141| HDW x_18531 -> h_HDW x_18531
    128142
    129143(** val move_dst_rect_Type2 :
    130144    (Registers.register -> 'a1) -> (I8051.register -> 'a1) -> move_dst -> 'a1 **)
    131145let rec move_dst_rect_Type2 h_PSD h_HDW = function
    132 | PSD x_21431 -> h_PSD x_21431
    133 | HDW x_21432 -> h_HDW x_21432
     146| PSD x_18535 -> h_PSD x_18535
     147| HDW x_18536 -> h_HDW x_18536
    134148
    135149(** val move_dst_rect_Type1 :
    136150    (Registers.register -> 'a1) -> (I8051.register -> 'a1) -> move_dst -> 'a1 **)
    137151let rec move_dst_rect_Type1 h_PSD h_HDW = function
    138 | PSD x_21436 -> h_PSD x_21436
    139 | HDW x_21437 -> h_HDW x_21437
     152| PSD x_18540 -> h_PSD x_18540
     153| HDW x_18541 -> h_HDW x_18541
    140154
    141155(** val move_dst_rect_Type0 :
    142156    (Registers.register -> 'a1) -> (I8051.register -> 'a1) -> move_dst -> 'a1 **)
    143157let rec move_dst_rect_Type0 h_PSD h_HDW = function
    144 | PSD x_21441 -> h_PSD x_21441
    145 | HDW x_21442 -> h_HDW x_21442
     158| PSD x_18545 -> h_PSD x_18545
     159| HDW x_18546 -> h_HDW x_18546
    146160
    147161(** val move_dst_inv_rect_Type4 :
     
    338352| Ertl_new_frame -> h_ertl_new_frame
    339353| Ertl_del_frame -> h_ertl_del_frame
    340 | Ertl_frame_size x_21481 -> h_ertl_frame_size x_21481
     354| Ertl_frame_size x_18585 -> h_ertl_frame_size x_18585
    341355
    342356(** val ertl_seq_rect_Type5 :
     
    345359| Ertl_new_frame -> h_ertl_new_frame
    346360| Ertl_del_frame -> h_ertl_del_frame
    347 | Ertl_frame_size x_21486 -> h_ertl_frame_size x_21486
     361| Ertl_frame_size x_18590 -> h_ertl_frame_size x_18590
    348362
    349363(** val ertl_seq_rect_Type3 :
     
    352366| Ertl_new_frame -> h_ertl_new_frame
    353367| Ertl_del_frame -> h_ertl_del_frame
    354 | Ertl_frame_size x_21491 -> h_ertl_frame_size x_21491
     368| Ertl_frame_size x_18595 -> h_ertl_frame_size x_18595
    355369
    356370(** val ertl_seq_rect_Type2 :
     
    359373| Ertl_new_frame -> h_ertl_new_frame
    360374| Ertl_del_frame -> h_ertl_del_frame
    361 | Ertl_frame_size x_21496 -> h_ertl_frame_size x_21496
     375| Ertl_frame_size x_18600 -> h_ertl_frame_size x_18600
    362376
    363377(** val ertl_seq_rect_Type1 :
     
    366380| Ertl_new_frame -> h_ertl_new_frame
    367381| Ertl_del_frame -> h_ertl_del_frame
    368 | Ertl_frame_size x_21501 -> h_ertl_frame_size x_21501
     382| Ertl_frame_size x_18605 -> h_ertl_frame_size x_18605
    369383
    370384(** val ertl_seq_rect_Type0 :
     
    373387| Ertl_new_frame -> h_ertl_new_frame
    374388| Ertl_del_frame -> h_ertl_del_frame
    375 | Ertl_frame_size x_21506 -> h_ertl_frame_size x_21506
     389| Ertl_frame_size x_18610 -> h_ertl_frame_size x_18610
    376390
    377391(** val ertl_seq_inv_rect_Type4 :
     
    660674  ertl_seq_joint x1 (Types.pi1 x2)
    661675
     676(** val eRTL_premain :
     677    ertl_program -> Joint.joint_closed_internal_function **)
     678let eRTL_premain p =
     679  let l1 = Positive.One in
     680  let l2 = Positive.P0 Positive.One in
     681  let l3 = Positive.P1 Positive.One in
     682  let res = { Joint.joint_if_luniverse = (Positive.P0 (Positive.P0
     683    Positive.One)); Joint.joint_if_runiverse = Positive.One;
     684    Joint.joint_if_result = (Obj.magic Types.It); Joint.joint_if_params =
     685    (Obj.magic (Nat.S (Nat.S (Nat.S (Nat.S Nat.O)))));
     686    Joint.joint_if_stacksize = Nat.O; Joint.joint_if_local_stacksize = Nat.O;
     687    Joint.joint_if_code =
     688    (Obj.magic (Identifiers.empty_map PreIdentifiers.LabelTag));
     689    Joint.joint_if_entry = (Obj.magic l1) }
     690  in
     691  let res0 =
     692    Joint.add_graph eRTL (AST.prog_var_names p.Joint.joint_prog) l1
     693      (Joint.Sequential ((Joint.COST_LABEL p.Joint.init_cost_label),
     694      (Obj.magic l2))) res
     695  in
     696  let res1 =
     697    Joint.add_graph eRTL (AST.prog_var_names p.Joint.joint_prog) l2
     698      (Joint.Sequential ((Joint.CALL ((Types.Inl
     699      p.Joint.joint_prog.AST.prog_main),
     700      (Obj.magic (Nat.S (Nat.S (Nat.S (Nat.S Nat.O))))),
     701      (Obj.magic Types.It))), (Obj.magic l3))) res0
     702  in
     703  let res2 =
     704    Joint.add_graph eRTL (AST.prog_var_names p.Joint.joint_prog) l3
     705      (Joint.Final (Joint.GOTO l3)) res1
     706  in
     707  res2
     708
  • extracted/eRTL.mli

    r2797 r2951  
    11open Preamble
     2
     3open Extra_bool
     4
     5open Coqlib
     6
     7open Values
     8
     9open FrontEndVal
     10
     11open GenMem
     12
     13open FrontEndMem
     14
     15open Globalenvs
    216
    317open String
     
    394408  AST.ident List.list -> __ Types.sig0 -> Joint.joint_seq
    395409
     410val eRTL_premain : ertl_program -> Joint.joint_closed_internal_function
     411
  • extracted/eRTLToERTLptr.ml

    r2827 r2951  
    11open Preamble
     2
     3open Extra_bool
     4
     5open Coqlib
     6
     7open Values
     8
     9open FrontEndVal
     10
     11open GenMem
     12
     13open FrontEndMem
     14
     15open Globalenvs
    216
    317open String
  • extracted/eRTLToERTLptr.mli

    r2773 r2951  
    11open Preamble
     2
     3open Extra_bool
     4
     5open Coqlib
     6
     7open Values
     8
     9open FrontEndVal
     10
     11open GenMem
     12
     13open FrontEndMem
     14
     15open Globalenvs
    216
    317open String
  • extracted/eRTL_printer.ml

    r2868 r2951  
    11open Preamble
     2
     3open Extra_bool
     4
     5open Coqlib
     6
     7open Values
     8
     9open FrontEndVal
     10
     11open GenMem
     12
     13open FrontEndMem
     14
     15open Globalenvs
    216
    317open String
     
    116130    pp prog
    117131    (Joint_printer.graph_code_iteration_params ERTL.eRTL
    118       (List.map (fun x -> x.Types.fst.Types.fst) prog.AST.prog_vars) pp)
     132      (List.map (fun x -> x.Types.fst.Types.fst)
     133        prog.Joint.joint_prog.AST.prog_vars) pp)
    119134
  • extracted/eRTL_printer.mli

    r2868 r2951  
    11open Preamble
     2
     3open Extra_bool
     4
     5open Coqlib
     6
     7open Values
     8
     9open FrontEndVal
     10
     11open GenMem
     12
     13open FrontEndMem
     14
     15open Globalenvs
    216
    317open String
  • extracted/eRTL_semantics.ml

    r2829 r2951  
    387387  { SemanticsUtils.sgp_pars =
    388388    (Joint.gp_to_p__o__stmt_pars__o__uns_pars ERTL.eRTL);
    389     SemanticsUtils.sgp_sup = (fun _ -> eRTL_sem_uns) }
    390 
     389    SemanticsUtils.sgp_sup = (fun _ -> eRTL_sem_uns);
     390    SemanticsUtils.graph_pre_main_generator = ERTL.eRTL_premain }
     391
  • extracted/eRTLptr.ml

    r2873 r2951  
    11open Preamble
     2
     3open Extra_bool
     4
     5open Coqlib
     6
     7open Values
     8
     9open FrontEndVal
     10
     11open GenMem
     12
     13open FrontEndMem
     14
     15open Globalenvs
    216
    317open String
     
    116130    (Registers.register -> Graphs.label -> 'a1) -> ertlptr_seq -> 'a1 **)
    117131let rec ertlptr_seq_rect_Type4 h_ertlptr_ertl h_LOW_ADDRESS h_HIGH_ADDRESS = function
    118 | Ertlptr_ertl x_21550 -> h_ertlptr_ertl x_21550
    119 | LOW_ADDRESS (x_21552, x_21551) -> h_LOW_ADDRESS x_21552 x_21551
    120 | HIGH_ADDRESS (x_21554, x_21553) -> h_HIGH_ADDRESS x_21554 x_21553
     132| Ertlptr_ertl x_18654 -> h_ertlptr_ertl x_18654
     133| LOW_ADDRESS (x_18656, x_18655) -> h_LOW_ADDRESS x_18656 x_18655
     134| HIGH_ADDRESS (x_18658, x_18657) -> h_HIGH_ADDRESS x_18658 x_18657
    121135
    122136(** val ertlptr_seq_rect_Type5 :
     
    124138    (Registers.register -> Graphs.label -> 'a1) -> ertlptr_seq -> 'a1 **)
    125139let rec ertlptr_seq_rect_Type5 h_ertlptr_ertl h_LOW_ADDRESS h_HIGH_ADDRESS = function
    126 | Ertlptr_ertl x_21559 -> h_ertlptr_ertl x_21559
    127 | LOW_ADDRESS (x_21561, x_21560) -> h_LOW_ADDRESS x_21561 x_21560
    128 | HIGH_ADDRESS (x_21563, x_21562) -> h_HIGH_ADDRESS x_21563 x_21562
     140| Ertlptr_ertl x_18663 -> h_ertlptr_ertl x_18663
     141| LOW_ADDRESS (x_18665, x_18664) -> h_LOW_ADDRESS x_18665 x_18664
     142| HIGH_ADDRESS (x_18667, x_18666) -> h_HIGH_ADDRESS x_18667 x_18666
    129143
    130144(** val ertlptr_seq_rect_Type3 :
     
    132146    (Registers.register -> Graphs.label -> 'a1) -> ertlptr_seq -> 'a1 **)
    133147let rec ertlptr_seq_rect_Type3 h_ertlptr_ertl h_LOW_ADDRESS h_HIGH_ADDRESS = function
    134 | Ertlptr_ertl x_21568 -> h_ertlptr_ertl x_21568
    135 | LOW_ADDRESS (x_21570, x_21569) -> h_LOW_ADDRESS x_21570 x_21569
    136 | HIGH_ADDRESS (x_21572, x_21571) -> h_HIGH_ADDRESS x_21572 x_21571
     148| Ertlptr_ertl x_18672 -> h_ertlptr_ertl x_18672
     149| LOW_ADDRESS (x_18674, x_18673) -> h_LOW_ADDRESS x_18674 x_18673
     150| HIGH_ADDRESS (x_18676, x_18675) -> h_HIGH_ADDRESS x_18676 x_18675
    137151
    138152(** val ertlptr_seq_rect_Type2 :
     
    140154    (Registers.register -> Graphs.label -> 'a1) -> ertlptr_seq -> 'a1 **)
    141155let rec ertlptr_seq_rect_Type2 h_ertlptr_ertl h_LOW_ADDRESS h_HIGH_ADDRESS = function
    142 | Ertlptr_ertl x_21577 -> h_ertlptr_ertl x_21577
    143 | LOW_ADDRESS (x_21579, x_21578) -> h_LOW_ADDRESS x_21579 x_21578
    144 | HIGH_ADDRESS (x_21581, x_21580) -> h_HIGH_ADDRESS x_21581 x_21580
     156| Ertlptr_ertl x_18681 -> h_ertlptr_ertl x_18681
     157| LOW_ADDRESS (x_18683, x_18682) -> h_LOW_ADDRESS x_18683 x_18682
     158| HIGH_ADDRESS (x_18685, x_18684) -> h_HIGH_ADDRESS x_18685 x_18684
    145159
    146160(** val ertlptr_seq_rect_Type1 :
     
    148162    (Registers.register -> Graphs.label -> 'a1) -> ertlptr_seq -> 'a1 **)
    149163let rec ertlptr_seq_rect_Type1 h_ertlptr_ertl h_LOW_ADDRESS h_HIGH_ADDRESS = function
    150 | Ertlptr_ertl x_21586 -> h_ertlptr_ertl x_21586
    151 | LOW_ADDRESS (x_21588, x_21587) -> h_LOW_ADDRESS x_21588 x_21587
    152 | HIGH_ADDRESS (x_21590, x_21589) -> h_HIGH_ADDRESS x_21590 x_21589
     164| Ertlptr_ertl x_18690 -> h_ertlptr_ertl x_18690
     165| LOW_ADDRESS (x_18692, x_18691) -> h_LOW_ADDRESS x_18692 x_18691
     166| HIGH_ADDRESS (x_18694, x_18693) -> h_HIGH_ADDRESS x_18694 x_18693
    153167
    154168(** val ertlptr_seq_rect_Type0 :
     
    156170    (Registers.register -> Graphs.label -> 'a1) -> ertlptr_seq -> 'a1 **)
    157171let rec ertlptr_seq_rect_Type0 h_ertlptr_ertl h_LOW_ADDRESS h_HIGH_ADDRESS = function
    158 | Ertlptr_ertl x_21595 -> h_ertlptr_ertl x_21595
    159 | LOW_ADDRESS (x_21597, x_21596) -> h_LOW_ADDRESS x_21597 x_21596
    160 | HIGH_ADDRESS (x_21599, x_21598) -> h_HIGH_ADDRESS x_21599 x_21598
     172| Ertlptr_ertl x_18699 -> h_ertlptr_ertl x_18699
     173| LOW_ADDRESS (x_18701, x_18700) -> h_LOW_ADDRESS x_18701 x_18700
     174| HIGH_ADDRESS (x_18703, x_18702) -> h_HIGH_ADDRESS x_18703 x_18702
    161175
    162176(** val ertlptr_seq_inv_rect_Type4 :
     
    325339  ertlptr_seq_joint x1 (Types.pi1 x2)
    326340
     341(** val eRTLptr_premain :
     342    ertlptr_program -> Joint.joint_closed_internal_function **)
     343let eRTLptr_premain p =
     344  let l1 = Positive.One in
     345  let l2 = Positive.P0 Positive.One in
     346  let l3 = Positive.P1 Positive.One in
     347  let res = { Joint.joint_if_luniverse = (Positive.P0 (Positive.P0
     348    Positive.One)); Joint.joint_if_runiverse = Positive.One;
     349    Joint.joint_if_result = (Obj.magic Types.It); Joint.joint_if_params =
     350    (Obj.magic (Nat.S (Nat.S (Nat.S (Nat.S Nat.O)))));
     351    Joint.joint_if_stacksize = Nat.O; Joint.joint_if_local_stacksize = Nat.O;
     352    Joint.joint_if_code =
     353    (Obj.magic (Identifiers.empty_map PreIdentifiers.LabelTag));
     354    Joint.joint_if_entry = (Obj.magic l1) }
     355  in
     356  let res0 =
     357    Joint.add_graph eRTLptr (AST.prog_var_names p.Joint.joint_prog) l1
     358      (Joint.Sequential ((Joint.COST_LABEL p.Joint.init_cost_label),
     359      (Obj.magic l2))) res
     360  in
     361  let res1 =
     362    Joint.add_graph eRTLptr (AST.prog_var_names p.Joint.joint_prog) l2
     363      (Joint.Sequential ((Joint.CALL ((Types.Inl
     364      p.Joint.joint_prog.AST.prog_main),
     365      (Obj.magic (Nat.S (Nat.S (Nat.S (Nat.S Nat.O))))),
     366      (Obj.magic Types.It))), (Obj.magic l3))) res0
     367  in
     368  let res2 =
     369    Joint.add_graph eRTLptr (AST.prog_var_names p.Joint.joint_prog) l3
     370      (Joint.Final (Joint.GOTO l3)) res1
     371  in
     372  res2
     373
  • extracted/eRTLptr.mli

    r2797 r2951  
    11open Preamble
     2
     3open Extra_bool
     4
     5open Coqlib
     6
     7open Values
     8
     9open FrontEndVal
     10
     11open GenMem
     12
     13open FrontEndMem
     14
     15open Globalenvs
    216
    317open String
     
    208222  AST.ident List.list -> __ Types.sig0 -> Joint.joint_seq
    209223
     224val eRTLptr_premain : ertlptr_program -> Joint.joint_closed_internal_function
     225
  • extracted/eRTLptrToLTL.ml

    r2890 r2951  
    11open Preamble
     2
     3open Extra_bool
     4
     5open Coqlib
     6
     7open Values
     8
     9open FrontEndVal
     10
     11open GenMem
     12
     13open FrontEndMem
     14
     15open Globalenvs
    216
    317open String
     
    167181    arg_decision -> 'a1 **)
    168182let rec arg_decision_rect_Type4 h_arg_decision_colour h_arg_decision_spill h_arg_decision_imm = function
    169 | Arg_decision_colour x_22106 -> h_arg_decision_colour x_22106
    170 | Arg_decision_spill x_22107 -> h_arg_decision_spill x_22107
    171 | Arg_decision_imm x_22108 -> h_arg_decision_imm x_22108
     183| Arg_decision_colour x_19209 -> h_arg_decision_colour x_19209
     184| Arg_decision_spill x_19210 -> h_arg_decision_spill x_19210
     185| Arg_decision_imm x_19211 -> h_arg_decision_imm x_19211
    172186
    173187(** val arg_decision_rect_Type5 :
     
    175189    arg_decision -> 'a1 **)
    176190let rec arg_decision_rect_Type5 h_arg_decision_colour h_arg_decision_spill h_arg_decision_imm = function
    177 | Arg_decision_colour x_22113 -> h_arg_decision_colour x_22113
    178 | Arg_decision_spill x_22114 -> h_arg_decision_spill x_22114
    179 | Arg_decision_imm x_22115 -> h_arg_decision_imm x_22115
     191| Arg_decision_colour x_19216 -> h_arg_decision_colour x_19216
     192| Arg_decision_spill x_19217 -> h_arg_decision_spill x_19217
     193| Arg_decision_imm x_19218 -> h_arg_decision_imm x_19218
    180194
    181195(** val arg_decision_rect_Type3 :
     
    183197    arg_decision -> 'a1 **)
    184198let rec arg_decision_rect_Type3 h_arg_decision_colour h_arg_decision_spill h_arg_decision_imm = function
    185 | Arg_decision_colour x_22120 -> h_arg_decision_colour x_22120
    186 | Arg_decision_spill x_22121 -> h_arg_decision_spill x_22121
    187 | Arg_decision_imm x_22122 -> h_arg_decision_imm x_22122
     199| Arg_decision_colour x_19223 -> h_arg_decision_colour x_19223
     200| Arg_decision_spill x_19224 -> h_arg_decision_spill x_19224
     201| Arg_decision_imm x_19225 -> h_arg_decision_imm x_19225
    188202
    189203(** val arg_decision_rect_Type2 :
     
    191205    arg_decision -> 'a1 **)
    192206let rec arg_decision_rect_Type2 h_arg_decision_colour h_arg_decision_spill h_arg_decision_imm = function
    193 | Arg_decision_colour x_22127 -> h_arg_decision_colour x_22127
    194 | Arg_decision_spill x_22128 -> h_arg_decision_spill x_22128
    195 | Arg_decision_imm x_22129 -> h_arg_decision_imm x_22129
     207| Arg_decision_colour x_19230 -> h_arg_decision_colour x_19230
     208| Arg_decision_spill x_19231 -> h_arg_decision_spill x_19231
     209| Arg_decision_imm x_19232 -> h_arg_decision_imm x_19232
    196210
    197211(** val arg_decision_rect_Type1 :
     
    199213    arg_decision -> 'a1 **)
    200214let rec arg_decision_rect_Type1 h_arg_decision_colour h_arg_decision_spill h_arg_decision_imm = function
    201 | Arg_decision_colour x_22134 -> h_arg_decision_colour x_22134
    202 | Arg_decision_spill x_22135 -> h_arg_decision_spill x_22135
    203 | Arg_decision_imm x_22136 -> h_arg_decision_imm x_22136
     215| Arg_decision_colour x_19237 -> h_arg_decision_colour x_19237
     216| Arg_decision_spill x_19238 -> h_arg_decision_spill x_19238
     217| Arg_decision_imm x_19239 -> h_arg_decision_imm x_19239
    204218
    205219(** val arg_decision_rect_Type0 :
     
    207221    arg_decision -> 'a1 **)
    208222let rec arg_decision_rect_Type0 h_arg_decision_colour h_arg_decision_spill h_arg_decision_imm = function
    209 | Arg_decision_colour x_22141 -> h_arg_decision_colour x_22141
    210 | Arg_decision_spill x_22142 -> h_arg_decision_spill x_22142
    211 | Arg_decision_imm x_22143 -> h_arg_decision_imm x_22143
     223| Arg_decision_colour x_19244 -> h_arg_decision_colour x_19244
     224| Arg_decision_spill x_19245 -> h_arg_decision_spill x_19245
     225| Arg_decision_imm x_19246 -> h_arg_decision_imm x_19246
    212226
    213227(** val arg_decision_inv_rect_Type4 :
     
    799813
    800814(** val translate_step :
    801     AST.ident List.list -> Nat.nat -> Fixpoints.valuation ->
    802     Interference.coloured_graph -> Nat.nat -> Graphs.label ->
    803     Joint.joint_step -> Blocks.bind_step_block **)
    804 let translate_step globals localss after grph stack_sz lbl s =
     815    AST.ident List.list -> Joint.joint_internal_function -> Nat.nat ->
     816    Fixpoints.valuation -> Interference.coloured_graph -> Nat.nat ->
     817    Graphs.label -> Joint.joint_step -> Blocks.bind_step_block **)
     818let translate_step globals fn localss after grph stack_sz lbl s =
    805819  Bind_new.Bret
    806820    (let lookup = fun r -> grph.Interference.colouring (Types.Inl r) in
     
    956970    Liveness.analyse_liveness the_fixpoint globals (Types.pi1 int_fun)
    957971  in
    958   let coloured_graph = build globals (Types.pi1 int_fun) after in
     972  let coloured_graph =
     973    build globals (Types.pi1 int_fun)
     974      (Fixpoints.fix_lfp Liveness.register_lattice
     975        (Liveness.liveafter globals (Types.pi1 int_fun)) after)
     976  in
    959977  let stack_sz =
    960978    Nat.plus coloured_graph.Interference.spilled_no
     
    965983  TranslateUtils.init_stack_size = stack_sz; TranslateUtils.added_prologue =
    966984  List.Nil; TranslateUtils.new_regs = List.Nil; TranslateUtils.f_step =
    967   (translate_step globals (Types.pi1 int_fun).Joint.joint_if_local_stacksize
    968     after coloured_graph stack_sz); TranslateUtils.f_fin =
    969   (translate_fin_step globals) }
     985  (translate_step globals (Types.pi1 int_fun)
     986    (Types.pi1 int_fun).Joint.joint_if_local_stacksize
     987    (Fixpoints.fix_lfp Liveness.register_lattice
     988      (Liveness.liveafter globals (Types.pi1 int_fun)) after) coloured_graph
     989    stack_sz); TranslateUtils.f_fin = (translate_fin_step globals) }
    970990
    971991(** val ertlptr_to_ltl :
  • extracted/eRTLptrToLTL.mli

    r2827 r2951  
    11open Preamble
     2
     3open Extra_bool
     4
     5open Coqlib
     6
     7open Values
     8
     9open FrontEndVal
     10
     11open GenMem
     12
     13open FrontEndMem
     14
     15open Globalenvs
    216
    317open String
     
    348362
    349363val translate_step :
    350   AST.ident List.list -> Nat.nat -> Fixpoints.valuation ->
    351   Interference.coloured_graph -> Nat.nat -> Graphs.label -> Joint.joint_step
    352   -> Blocks.bind_step_block
     364  AST.ident List.list -> Joint.joint_internal_function -> Nat.nat ->
     365  Fixpoints.valuation -> Interference.coloured_graph -> Nat.nat ->
     366  Graphs.label -> Joint.joint_step -> Blocks.bind_step_block
    353367
    354368val translate_fin_step :
  • extracted/eRTLptr_printer.ml

    r2868 r2951  
    11open Preamble
     2
     3open Extra_bool
     4
     5open Coqlib
     6
     7open Values
     8
     9open FrontEndVal
     10
     11open GenMem
     12
     13open FrontEndMem
     14
     15open Globalenvs
    216
    317open String
     
    118132    (Joint.graph_params_to_params ERTLptr.eRTLptr) pp prog
    119133    (Joint_printer.graph_code_iteration_params ERTLptr.eRTLptr
    120       (List.map (fun x -> x.Types.fst.Types.fst) prog.AST.prog_vars) pp)
     134      (List.map (fun x -> x.Types.fst.Types.fst)
     135        prog.Joint.joint_prog.AST.prog_vars) pp)
    121136
  • extracted/eRTLptr_printer.mli

    r2868 r2951  
    11open Preamble
     2
     3open Extra_bool
     4
     5open Coqlib
     6
     7open Values
     8
     9open FrontEndVal
     10
     11open GenMem
     12
     13open FrontEndMem
     14
     15open Globalenvs
    216
    317open String
  • extracted/eRTLptr_semantics.ml

    r2829 r2951  
    259259  { SemanticsUtils.sgp_pars =
    260260    (Joint.gp_to_p__o__stmt_pars__o__uns_pars ERTLptr.eRTLptr);
    261     SemanticsUtils.sgp_sup = (fun _ -> eRTLptr_sem_uns) }
    262 
     261    SemanticsUtils.sgp_sup = (fun _ -> eRTLptr_sem_uns);
     262    SemanticsUtils.graph_pre_main_generator = ERTLptr.eRTLptr_premain }
     263
  • extracted/fetch.ml

    r2890 r2951  
    9898  (Types.pi1
    9999    (FoldStuff.foldl_strong program (fun prefix x tl _ labels_costs_ppc ->
    100       (let { Types.fst = eta29136; Types.snd = ppc } =
     100      (let { Types.fst = eta24730; Types.snd = ppc } =
    101101         Types.pi1 labels_costs_ppc
    102102       in
    103103      (fun _ ->
    104       (let { Types.fst = labels; Types.snd = costs } = eta29136 in
     104      (let { Types.fst = labels; Types.snd = costs } = eta24730 in
    105105      (fun _ ->
    106106      (let { Types.fst = label; Types.snd = instr } = x in
  • extracted/fixpoints.ml

    r2873 r2951  
    8080    (__ -> __ -> (__ -> __ -> Bool.bool) -> (__ -> __ -> Bool.bool) -> (__ ->
    8181    Bool.bool) -> 'a1) -> property_lattice -> 'a1 **)
    82 let rec property_lattice_rect_Type4 h_mk_property_lattice x_21945 =
    83   let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
    84     l_is_maximal = l_is_maximal0 } = x_21945
     82let rec property_lattice_rect_Type4 h_mk_property_lattice x_19049 =
     83  let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
     84    l_is_maximal = l_is_maximal0 } = x_19049
    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_21947 =
    92   let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
    93     l_is_maximal = l_is_maximal0 } = x_21947
     91let rec property_lattice_rect_Type5 h_mk_property_lattice x_19051 =
     92  let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
     93    l_is_maximal = l_is_maximal0 } = x_19051
    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_21949 =
    101   let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
    102     l_is_maximal = l_is_maximal0 } = x_21949
     100let rec property_lattice_rect_Type3 h_mk_property_lattice x_19053 =
     101  let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
     102    l_is_maximal = l_is_maximal0 } = x_19053
    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_21951 =
    110   let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
    111     l_is_maximal = l_is_maximal0 } = x_21951
     109let rec property_lattice_rect_Type2 h_mk_property_lattice x_19055 =
     110  let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
     111    l_is_maximal = l_is_maximal0 } = x_19055
    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_21953 =
    119   let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
    120     l_is_maximal = l_is_maximal0 } = x_21953
     118let rec property_lattice_rect_Type1 h_mk_property_lattice x_19057 =
     119  let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
     120    l_is_maximal = l_is_maximal0 } = x_19057
    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_21955 =
    128   let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
    129     l_is_maximal = l_is_maximal0 } = x_21955
     127let rec property_lattice_rect_Type0 h_mk_property_lattice x_19059 =
     128  let { l_bottom = l_bottom0; l_equal = l_equal0; l_included = l_included0;
     129    l_is_maximal = l_is_maximal0 } = x_19059
    130130  in
    131131  h_mk_property_lattice __ l_bottom0 l_equal0 l_included0 l_is_maximal0
     
    195195
    196196type fixpoint =
    197   equations -> valuation
     197  valuation
    198198  (* singleton inductive, whose constructor was mk_fixpoint *)
    199199
    200200(** val fixpoint_rect_Type4 :
    201     property_lattice -> ((equations -> valuation) -> __ -> 'a1) -> fixpoint
    202     -> 'a1 **)
    203 let rec fixpoint_rect_Type4 latt h_mk_fixpoint x_21976 =
    204   let fix_lfp = x_21976 in h_mk_fixpoint fix_lfp __
     201    property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
     202    'a1 **)
     203let rec fixpoint_rect_Type4 latt eqs h_mk_fixpoint x_19080 =
     204  let fix_lfp = x_19080 in h_mk_fixpoint fix_lfp __
    205205
    206206(** val fixpoint_rect_Type5 :
    207     property_lattice -> ((equations -> valuation) -> __ -> 'a1) -> fixpoint
    208     -> 'a1 **)
    209 let rec fixpoint_rect_Type5 latt h_mk_fixpoint x_21978 =
    210   let fix_lfp = x_21978 in h_mk_fixpoint fix_lfp __
     207    property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
     208    'a1 **)
     209let rec fixpoint_rect_Type5 latt eqs h_mk_fixpoint x_19082 =
     210  let fix_lfp = x_19082 in h_mk_fixpoint fix_lfp __
    211211
    212212(** val fixpoint_rect_Type3 :
    213     property_lattice -> ((equations -> valuation) -> __ -> 'a1) -> fixpoint
    214     -> 'a1 **)
    215 let rec fixpoint_rect_Type3 latt h_mk_fixpoint x_21980 =
    216   let fix_lfp = x_21980 in h_mk_fixpoint fix_lfp __
     213    property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
     214    'a1 **)
     215let rec fixpoint_rect_Type3 latt eqs h_mk_fixpoint x_19084 =
     216  let fix_lfp = x_19084 in h_mk_fixpoint fix_lfp __
    217217
    218218(** val fixpoint_rect_Type2 :
    219     property_lattice -> ((equations -> valuation) -> __ -> 'a1) -> fixpoint
    220     -> 'a1 **)
    221 let rec fixpoint_rect_Type2 latt h_mk_fixpoint x_21982 =
    222   let fix_lfp = x_21982 in h_mk_fixpoint fix_lfp __
     219    property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
     220    'a1 **)
     221let rec fixpoint_rect_Type2 latt eqs h_mk_fixpoint x_19086 =
     222  let fix_lfp = x_19086 in h_mk_fixpoint fix_lfp __
    223223
    224224(** val fixpoint_rect_Type1 :
    225     property_lattice -> ((equations -> valuation) -> __ -> 'a1) -> fixpoint
    226     -> 'a1 **)
    227 let rec fixpoint_rect_Type1 latt h_mk_fixpoint x_21984 =
    228   let fix_lfp = x_21984 in h_mk_fixpoint fix_lfp __
     225    property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
     226    'a1 **)
     227let rec fixpoint_rect_Type1 latt eqs h_mk_fixpoint x_19088 =
     228  let fix_lfp = x_19088 in h_mk_fixpoint fix_lfp __
    229229
    230230(** val fixpoint_rect_Type0 :
    231     property_lattice -> ((equations -> valuation) -> __ -> 'a1) -> fixpoint
    232     -> 'a1 **)
    233 let rec fixpoint_rect_Type0 latt h_mk_fixpoint x_21986 =
    234   let fix_lfp = x_21986 in h_mk_fixpoint fix_lfp __
    235 
    236 (** val fix_lfp : property_lattice -> fixpoint -> equations -> valuation **)
    237 let rec fix_lfp latt xxx =
     231    property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
     232    'a1 **)
     233let rec fixpoint_rect_Type0 latt eqs h_mk_fixpoint x_19090 =
     234  let fix_lfp = x_19090 in h_mk_fixpoint fix_lfp __
     235
     236(** val fix_lfp : property_lattice -> equations -> fixpoint -> valuation **)
     237let rec fix_lfp latt eqs xxx =
    238238  let yyy = xxx in yyy
    239239
    240240(** val fixpoint_inv_rect_Type4 :
    241     property_lattice -> fixpoint -> ((equations -> valuation) -> __ -> __ ->
    242     'a1) -> 'a1 **)
    243 let fixpoint_inv_rect_Type4 x1 hterm h1 =
    244   let hcut = fixpoint_rect_Type4 x1 h1 hterm in hcut __
     241    property_lattice -> equations -> fixpoint -> (valuation -> __ -> __ ->
     242    'a1) -> 'a1 **)
     243let fixpoint_inv_rect_Type4 x1 x2 hterm h1 =
     244  let hcut = fixpoint_rect_Type4 x1 x2 h1 hterm in hcut __
    245245
    246246(** val fixpoint_inv_rect_Type3 :
    247     property_lattice -> fixpoint -> ((equations -> valuation) -> __ -> __ ->
    248     'a1) -> 'a1 **)
    249 let fixpoint_inv_rect_Type3 x1 hterm h1 =
    250   let hcut = fixpoint_rect_Type3 x1 h1 hterm in hcut __
     247    property_lattice -> equations -> fixpoint -> (valuation -> __ -> __ ->
     248    'a1) -> 'a1 **)
     249let fixpoint_inv_rect_Type3 x1 x2 hterm h1 =
     250  let hcut = fixpoint_rect_Type3 x1 x2 h1 hterm in hcut __
    251251
    252252(** val fixpoint_inv_rect_Type2 :
    253     property_lattice -> fixpoint -> ((equations -> valuation) -> __ -> __ ->
    254     'a1) -> 'a1 **)
    255 let fixpoint_inv_rect_Type2 x1 hterm h1 =
    256   let hcut = fixpoint_rect_Type2 x1 h1 hterm in hcut __
     253    property_lattice -> equations -> fixpoint -> (valuation -> __ -> __ ->
     254    'a1) -> 'a1 **)
     255let fixpoint_inv_rect_Type2 x1 x2 hterm h1 =
     256  let hcut = fixpoint_rect_Type2 x1 x2 h1 hterm in hcut __
    257257
    258258(** val fixpoint_inv_rect_Type1 :
    259     property_lattice -> fixpoint -> ((equations -> valuation) -> __ -> __ ->
    260     'a1) -> 'a1 **)
    261 let fixpoint_inv_rect_Type1 x1 hterm h1 =
    262   let hcut = fixpoint_rect_Type1 x1 h1 hterm in hcut __
     259    property_lattice -> equations -> fixpoint -> (valuation -> __ -> __ ->
     260    'a1) -> 'a1 **)
     261let fixpoint_inv_rect_Type1 x1 x2 hterm h1 =
     262  let hcut = fixpoint_rect_Type1 x1 x2 h1 hterm in hcut __
    263263
    264264(** val fixpoint_inv_rect_Type0 :
    265     property_lattice -> fixpoint -> ((equations -> valuation) -> __ -> __ ->
    266     'a1) -> 'a1 **)
    267 let fixpoint_inv_rect_Type0 x1 hterm h1 =
    268   let hcut = fixpoint_rect_Type0 x1 h1 hterm in hcut __
    269 
    270 (** val fixpoint_discr : property_lattice -> fixpoint -> fixpoint -> __ **)
    271 let fixpoint_discr a1 x y =
     265    property_lattice -> equations -> fixpoint -> (valuation -> __ -> __ ->
     266    'a1) -> 'a1 **)
     267let fixpoint_inv_rect_Type0 x1 x2 hterm h1 =
     268  let hcut = fixpoint_rect_Type0 x1 x2 h1 hterm in hcut __
     269
     270(** val fixpoint_discr :
     271    property_lattice -> equations -> fixpoint -> fixpoint -> __ **)
     272let fixpoint_discr a1 a2 x y =
    272273  Logic.eq_rect_Type2 x (let a0 = x in Obj.magic (fun _ dH -> dH __ __)) y
    273274
    274 (** val fixpoint_jmdiscr : property_lattice -> fixpoint -> fixpoint -> __ **)
    275 let fixpoint_jmdiscr a1 x y =
     275(** val fixpoint_jmdiscr :
     276    property_lattice -> equations -> fixpoint -> fixpoint -> __ **)
     277let fixpoint_jmdiscr a1 a2 x y =
    276278  Logic.eq_rect_Type2 x (let a0 = x in Obj.magic (fun _ dH -> dH __ __)) y
    277279
     280(** val dpi1__o__fix_lfp__o__inject :
     281    property_lattice -> equations -> (fixpoint, 'a1) Types.dPair -> valuation
     282    Types.sig0 **)
     283let dpi1__o__fix_lfp__o__inject x0 x2 x4 =
     284  fix_lfp x0 x2 x4.Types.dpi1
     285
     286(** val eject__o__fix_lfp__o__inject :
     287    property_lattice -> equations -> fixpoint Types.sig0 -> valuation
     288    Types.sig0 **)
     289let eject__o__fix_lfp__o__inject x0 x2 x4 =
     290  fix_lfp x0 x2 (Types.pi1 x4)
     291
     292(** val fix_lfp__o__inject :
     293    property_lattice -> equations -> fixpoint -> valuation Types.sig0 **)
     294let fix_lfp__o__inject x0 x2 x3 =
     295  fix_lfp x0 x2 x3
     296
    278297(** val dpi1__o__fix_lfp :
    279     property_lattice -> (fixpoint, 'a1) Types.dPair -> equations -> valuation **)
    280 let dpi1__o__fix_lfp x0 x2 =
    281   fix_lfp x0 x2.Types.dpi1
     298    property_lattice -> equations -> (fixpoint, 'a1) Types.dPair -> valuation **)
     299let dpi1__o__fix_lfp x0 x1 x3 =
     300  fix_lfp x0 x1 x3.Types.dpi1
    282301
    283302(** val eject__o__fix_lfp :
    284     property_lattice -> fixpoint Types.sig0 -> equations -> valuation **)
    285 let eject__o__fix_lfp x0 x2 =
    286   fix_lfp x0 (Types.pi1 x2)
    287 
    288 type fixpoint_computer = property_lattice -> fixpoint
    289 
     303    property_lattice -> equations -> fixpoint Types.sig0 -> valuation **)
     304let eject__o__fix_lfp x0 x1 x3 =
     305  fix_lfp x0 x1 (Types.pi1 x3)
     306
     307type fixpoint_computer = property_lattice -> equations -> fixpoint
     308
     309(** val dpi1__o__apply_fixpoint :
     310    property_lattice -> equations -> (fixpoint, 'a1) Types.dPair ->
     311    Graphs.label -> __ **)
     312let dpi1__o__apply_fixpoint x0 x1 x3 =
     313  let latt = x0 in
     314  let eqs = x1 in let f = x3.Types.dpi1 in (fun l -> fix_lfp latt eqs f l)
     315
     316(** val eject__o__apply_fixpoint :
     317    property_lattice -> equations -> fixpoint Types.sig0 -> Graphs.label ->
     318    __ **)
     319let eject__o__apply_fixpoint x0 x1 x3 =
     320  let latt = x0 in
     321  let eqs = x1 in let f = Types.pi1 x3 in (fun l -> fix_lfp latt eqs f l)
     322
  • extracted/fixpoints.mli

    r2773 r2951  
    140140
    141141type fixpoint =
    142   equations -> valuation
     142  valuation
    143143  (* singleton inductive, whose constructor was mk_fixpoint *)
    144144
    145145val fixpoint_rect_Type4 :
    146   property_lattice -> ((equations -> valuation) -> __ -> 'a1) -> fixpoint ->
     146  property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
    147147  'a1
    148148
    149149val fixpoint_rect_Type5 :
    150   property_lattice -> ((equations -> valuation) -> __ -> 'a1) -> fixpoint ->
     150  property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
    151151  'a1
    152152
    153153val fixpoint_rect_Type3 :
    154   property_lattice -> ((equations -> valuation) -> __ -> 'a1) -> fixpoint ->
     154  property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
    155155  'a1
    156156
    157157val fixpoint_rect_Type2 :
    158   property_lattice -> ((equations -> valuation) -> __ -> 'a1) -> fixpoint ->
     158  property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
    159159  'a1
    160160
    161161val fixpoint_rect_Type1 :
    162   property_lattice -> ((equations -> valuation) -> __ -> 'a1) -> fixpoint ->
     162  property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
    163163  'a1
    164164
    165165val fixpoint_rect_Type0 :
    166   property_lattice -> ((equations -> valuation) -> __ -> 'a1) -> fixpoint ->
    167   'a1
    168 
    169 val fix_lfp : property_lattice -> fixpoint -> equations -> valuation
     166  property_lattice -> equations -> (valuation -> __ -> 'a1) -> fixpoint ->
     167  'a1
     168
     169val fix_lfp : property_lattice -> equations -> fixpoint -> valuation
    170170
    171171val fixpoint_inv_rect_Type4 :
    172   property_lattice -> fixpoint -> ((equations -> valuation) -> __ -> __ ->
    173   'a1) -> 'a1
     172  property_lattice -> equations -> fixpoint -> (valuation -> __ -> __ -> 'a1)
     173  -> 'a1
    174174
    175175val fixpoint_inv_rect_Type3 :
    176   property_lattice -> fixpoint -> ((equations -> valuation) -> __ -> __ ->
    177   'a1) -> 'a1
     176  property_lattice -> equations -> fixpoint -> (valuation -> __ -> __ -> 'a1)
     177  -> 'a1
    178178
    179179val fixpoint_inv_rect_Type2 :
    180   property_lattice -> fixpoint -> ((equations -> valuation) -> __ -> __ ->
    181   'a1) -> 'a1
     180  property_lattice -> equations -> fixpoint -> (valuation -> __ -> __ -> 'a1)
     181  -> 'a1
    182182
    183183val fixpoint_inv_rect_Type1 :
    184   property_lattice -> fixpoint -> ((equations -> valuation) -> __ -> __ ->
    185   'a1) -> 'a1
     184  property_lattice -> equations -> fixpoint -> (valuation -> __ -> __ -> 'a1)
     185  -> 'a1
    186186
    187187val fixpoint_inv_rect_Type0 :
    188   property_lattice -> fixpoint -> ((equations -> valuation) -> __ -> __ ->
    189   'a1) -> 'a1
    190 
    191 val fixpoint_discr : property_lattice -> fixpoint -> fixpoint -> __
    192 
    193 val fixpoint_jmdiscr : property_lattice -> fixpoint -> fixpoint -> __
     188  property_lattice -> equations -> fixpoint -> (valuation -> __ -> __ -> 'a1)
     189  -> 'a1
     190
     191val fixpoint_discr :
     192  property_lattice -> equations -> fixpoint -> fixpoint -> __
     193
     194val fixpoint_jmdiscr :
     195  property_lattice -> equations -> fixpoint -> fixpoint -> __
     196
     197val dpi1__o__fix_lfp__o__inject :
     198  property_lattice -> equations -> (fixpoint, 'a1) Types.dPair -> valuation
     199  Types.sig0
     200
     201val eject__o__fix_lfp__o__inject :
     202  property_lattice -> equations -> fixpoint Types.sig0 -> valuation
     203  Types.sig0
     204
     205val fix_lfp__o__inject :
     206  property_lattice -> equations -> fixpoint -> valuation Types.sig0
    194207
    195208val dpi1__o__fix_lfp :
    196   property_lattice -> (fixpoint, 'a1) Types.dPair -> equations -> valuation
     209  property_lattice -> equations -> (fixpoint, 'a1) Types.dPair -> valuation
    197210
    198211val eject__o__fix_lfp :
    199   property_lattice -> fixpoint Types.sig0 -> equations -> valuation
    200 
    201 type fixpoint_computer = property_lattice -> fixpoint
    202 
     212  property_lattice -> equations -> fixpoint Types.sig0 -> valuation
     213
     214type fixpoint_computer = property_lattice -> equations -> fixpoint
     215
     216val dpi1__o__apply_fixpoint :
     217  property_lattice -> equations -> (fixpoint, 'a1) Types.dPair ->
     218  Graphs.label -> __
     219
     220val eject__o__apply_fixpoint :
     221  property_lattice -> equations -> fixpoint Types.sig0 -> Graphs.label -> __
     222
  • extracted/frontEndOps.ml

    r2827 r2951  
    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_13122 = function
    102 | Ointconst (sz, sg, x_13124) -> h_Ointconst sz sg x_13124
    103 | Oaddrsymbol (x_13126, x_13125) -> h_Oaddrsymbol x_13126 x_13125
    104 | Oaddrstack x_13127 -> h_Oaddrstack x_13127
     101let rec constant_rect_Type4 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_13161 = function
     102| Ointconst (sz, sg, x_13163) -> h_Ointconst sz sg x_13163
     103| Oaddrsymbol (x_13165, x_13164) -> h_Oaddrsymbol x_13165 x_13164
     104| Oaddrstack x_13166 -> h_Oaddrstack x_13166
    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_13131 = function
    110 | Ointconst (sz, sg, x_13133) -> h_Ointconst sz sg x_13133
    111 | Oaddrsymbol (x_13135, x_13134) -> h_Oaddrsymbol x_13135 x_13134
    112 | Oaddrstack x_13136 -> h_Oaddrstack x_13136
     109let rec constant_rect_Type5 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_13170 = function
     110| Ointconst (sz, sg, x_13172) -> h_Ointconst sz sg x_13172
     111| Oaddrsymbol (x_13174, x_13173) -> h_Oaddrsymbol x_13174 x_13173
     112| Oaddrstack x_13175 -> h_Oaddrstack x_13175
    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_13140 = function
    118 | Ointconst (sz, sg, x_13142) -> h_Ointconst sz sg x_13142
    119 | Oaddrsymbol (x_13144, x_13143) -> h_Oaddrsymbol x_13144 x_13143
    120 | Oaddrstack x_13145 -> h_Oaddrstack x_13145
     117let rec constant_rect_Type3 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_13179 = function
     118| Ointconst (sz, sg, x_13181) -> h_Ointconst sz sg x_13181
     119| Oaddrsymbol (x_13183, x_13182) -> h_Oaddrsymbol x_13183 x_13182
     120| Oaddrstack x_13184 -> h_Oaddrstack x_13184
    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_13149 = function
    126 | Ointconst (sz, sg, x_13151) -> h_Ointconst sz sg x_13151
    127 | Oaddrsymbol (x_13153, x_13152) -> h_Oaddrsymbol x_13153 x_13152
    128 | Oaddrstack x_13154 -> h_Oaddrstack x_13154
     125let rec constant_rect_Type2 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_13188 = function
     126| Ointconst (sz, sg, x_13190) -> h_Ointconst sz sg x_13190
     127| Oaddrsymbol (x_13192, x_13191) -> h_Oaddrsymbol x_13192 x_13191
     128| Oaddrstack x_13193 -> h_Oaddrstack x_13193
    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_13158 = function
    134 | Ointconst (sz, sg, x_13160) -> h_Ointconst sz sg x_13160
    135 | Oaddrsymbol (x_13162, x_13161) -> h_Oaddrsymbol x_13162 x_13161
    136 | Oaddrstack x_13163 -> h_Oaddrstack x_13163
     133let rec constant_rect_Type1 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_13197 = function
     134| Ointconst (sz, sg, x_13199) -> h_Ointconst sz sg x_13199
     135| Oaddrsymbol (x_13201, x_13200) -> h_Oaddrsymbol x_13201 x_13200
     136| Oaddrstack x_13202 -> h_Oaddrstack x_13202
    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_13167 = function
    142 | Ointconst (sz, sg, x_13169) -> h_Ointconst sz sg x_13169
    143 | Oaddrsymbol (x_13171, x_13170) -> h_Oaddrsymbol x_13171 x_13170
    144 | Oaddrstack x_13172 -> h_Oaddrstack x_13172
     141let rec constant_rect_Type0 h_Ointconst h_Oaddrsymbol h_Oaddrstack x_13206 = function
     142| Ointconst (sz, sg, x_13208) -> h_Ointconst sz sg x_13208
     143| Oaddrsymbol (x_13210, x_13209) -> h_Oaddrsymbol x_13210 x_13209
     144| Oaddrstack x_13211 -> h_Oaddrstack x_13211
    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_13242 x_13241 = function
     213let rec unary_operation_rect_Type4 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_13281 x_13280 = 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_13253 x_13252 = function
     229let rec unary_operation_rect_Type5 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_13292 x_13291 = 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_13264 x_13263 = function
     245let rec unary_operation_rect_Type3 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_13303 x_13302 = 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_13275 x_13274 = function
     261let rec unary_operation_rect_Type2 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_13314 x_13313 = 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_13286 x_13285 = function
     277let rec unary_operation_rect_Type1 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_13325 x_13324 = 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_13297 x_13296 = function
     293let rec unary_operation_rect_Type0 h_Ocastint h_Onegint h_Onotbool h_Onotint h_Oid h_Optrofint h_Ointofptr x_13336 x_13335 = 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_13402 x_13401 x_13400 = 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_13441 x_13440 x_13439 = 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_13404) -> h_Ocmp sz sg sg' x_13404
    443 | Ocmpu (sz, sg', x_13405) -> h_Ocmpu sz sg' x_13405
     442| Ocmp (sz, sg, sg', x_13443) -> h_Ocmp sz sg sg' x_13443
     443| Ocmpu (sz, sg', x_13444) -> h_Ocmpu sz sg' x_13444
    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_13406) -> h_Ocmpp sg' x_13406
     448| Ocmpp (sg', x_13445) -> h_Ocmpp sg' x_13445
    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_13429 x_13428 x_13427 = 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_13468 x_13467 x_13466 = 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_13431) -> h_Ocmp sz sg sg' x_13431
    478 | Ocmpu (sz, sg', x_13432) -> h_Ocmpu sz sg' x_13432
     477| Ocmp (sz, sg, sg', x_13470) -> h_Ocmp sz sg sg' x_13470
     478| Ocmpu (sz, sg', x_13471) -> h_Ocmpu sz sg' x_13471
    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_13433) -> h_Ocmpp sg' x_13433
     483| Ocmpp (sg', x_13472) -> h_Ocmpp sg' x_13472
    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_13456 x_13455 x_13454 = 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_13495 x_13494 x_13493 = 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_13458) -> h_Ocmp sz sg sg' x_13458
    513 | Ocmpu (sz, sg', x_13459) -> h_Ocmpu sz sg' x_13459
     512| Ocmp (sz, sg, sg', x_13497) -> h_Ocmp sz sg sg' x_13497
     513| Ocmpu (sz, sg', x_13498) -> h_Ocmpu sz sg' x_13498
    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_13460) -> h_Ocmpp sg' x_13460
     518| Ocmpp (sg', x_13499) -> h_Ocmpp sg' x_13499
    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_13483 x_13482 x_13481 = 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_13522 x_13521 x_13520 = 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_13485) -> h_Ocmp sz sg sg' x_13485
    548 | Ocmpu (sz, sg', x_13486) -> h_Ocmpu sz sg' x_13486
     547| Ocmp (sz, sg, sg', x_13524) -> h_Ocmp sz sg sg' x_13524
     548| Ocmpu (sz, sg', x_13525) -> h_Ocmpu sz sg' x_13525
    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_13487) -> h_Ocmpp sg' x_13487
     553| Ocmpp (sg', x_13526) -> h_Ocmpp sg' x_13526
    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_13510 x_13509 x_13508 = 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_13549 x_13548 x_13547 = 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_13512) -> h_Ocmp sz sg sg' x_13512
    583 | Ocmpu (sz, sg', x_13513) -> h_Ocmpu sz sg' x_13513
     582| Ocmp (sz, sg, sg', x_13551) -> h_Ocmp sz sg sg' x_13551
     583| Ocmpu (sz, sg', x_13552) -> h_Ocmpu sz sg' x_13552
    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_13514) -> h_Ocmpp sg' x_13514
     588| Ocmpp (sg', x_13553) -> h_Ocmpp sg' x_13553
    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_13537 x_13536 x_13535 = 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_13576 x_13575 x_13574 = 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_13539) -> h_Ocmp sz sg sg' x_13539
    618 | Ocmpu (sz, sg', x_13540) -> h_Ocmpu sz sg' x_13540
     617| Ocmp (sz, sg, sg', x_13578) -> h_Ocmp sz sg sg' x_13578
     618| Ocmpu (sz, sg', x_13579) -> h_Ocmpu sz sg' x_13579
    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_13541) -> h_Ocmpp sg' x_13541
     623| Ocmpp (sg', x_13580) -> h_Ocmpp sg' x_13580
    624624
    625625(** val binary_operation_inv_rect_Type4 :
  • extracted/genMem.ml

    r2827 r2951  
    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_6516 =
    103   let { low = low0; high = high0; contents = contents0 } = x_6516 in
     102let rec block_contents_rect_Type4 h_mk_block_contents x_6555 =
     103  let { low = low0; high = high0; contents = contents0 } = x_6555 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_6518 =
    109   let { low = low0; high = high0; contents = contents0 } = x_6518 in
     108let rec block_contents_rect_Type5 h_mk_block_contents x_6557 =
     109  let { low = low0; high = high0; contents = contents0 } = x_6557 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_6520 =
    115   let { low = low0; high = high0; contents = contents0 } = x_6520 in
     114let rec block_contents_rect_Type3 h_mk_block_contents x_6559 =
     115  let { low = low0; high = high0; contents = contents0 } = x_6559 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_6522 =
    121   let { low = low0; high = high0; contents = contents0 } = x_6522 in
     120let rec block_contents_rect_Type2 h_mk_block_contents x_6561 =
     121  let { low = low0; high = high0; contents = contents0 } = x_6561 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_6524 =
    127   let { low = low0; high = high0; contents = contents0 } = x_6524 in
     126let rec block_contents_rect_Type1 h_mk_block_contents x_6563 =
     127  let { low = low0; high = high0; contents = contents0 } = x_6563 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_6526 =
    133   let { low = low0; high = high0; contents = contents0 } = x_6526 in
     132let rec block_contents_rect_Type0 h_mk_block_contents x_6565 =
     133  let { low = low0; high = high0; contents = contents0 } = x_6565 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_6542 =
    190   let { blocks = blocks0; nextblock = nextblock0 } = x_6542 in
     189let rec mem_rect_Type4 h_mk_mem x_6581 =
     190  let { blocks = blocks0; nextblock = nextblock0 } = x_6581 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_6544 =
    196   let { blocks = blocks0; nextblock = nextblock0 } = x_6544 in
     195let rec mem_rect_Type5 h_mk_mem x_6583 =
     196  let { blocks = blocks0; nextblock = nextblock0 } = x_6583 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_6546 =
    202   let { blocks = blocks0; nextblock = nextblock0 } = x_6546 in
     201let rec mem_rect_Type3 h_mk_mem x_6585 =
     202  let { blocks = blocks0; nextblock = nextblock0 } = x_6585 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_6548 =
    208   let { blocks = blocks0; nextblock = nextblock0 } = x_6548 in
     207let rec mem_rect_Type2 h_mk_mem x_6587 =
     208  let { blocks = blocks0; nextblock = nextblock0 } = x_6587 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_6550 =
    214   let { blocks = blocks0; nextblock = nextblock0 } = x_6550 in
     213let rec mem_rect_Type1 h_mk_mem x_6589 =
     214  let { blocks = blocks0; nextblock = nextblock0 } = x_6589 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_6552 =
    220   let { blocks = blocks0; nextblock = nextblock0 } = x_6552 in
     219let rec mem_rect_Type0 h_mk_mem x_6591 =
     220  let { blocks = blocks0; nextblock = nextblock0 } = x_6591 in
    221221  h_mk_mem blocks0 nextblock0 __
    222222
  • extracted/globalenvs.ml

    r2827 r2951  
    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_6569 =
     100let rec genv_t_rect_Type4 h_mk_genv_t x_6608 =
    101101  let { functions = functions0; nextfunction = nextfunction0; symbols =
    102     symbols0 } = x_6569
     102    symbols0 } = x_6608
    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_6571 =
     109let rec genv_t_rect_Type5 h_mk_genv_t x_6610 =
    110110  let { functions = functions0; nextfunction = nextfunction0; symbols =
    111     symbols0 } = x_6571
     111    symbols0 } = x_6610
    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_6573 =
     118let rec genv_t_rect_Type3 h_mk_genv_t x_6612 =
    119119  let { functions = functions0; nextfunction = nextfunction0; symbols =
    120     symbols0 } = x_6573
     120    symbols0 } = x_6612
    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_6575 =
     127let rec genv_t_rect_Type2 h_mk_genv_t x_6614 =
    128128  let { functions = functions0; nextfunction = nextfunction0; symbols =
    129     symbols0 } = x_6575
     129    symbols0 } = x_6614
    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_6577 =
     136let rec genv_t_rect_Type1 h_mk_genv_t x_6616 =
    137137  let { functions = functions0; nextfunction = nextfunction0; symbols =
    138     symbols0 } = x_6577
     138    symbols0 } = x_6616
    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_6579 =
     145let rec genv_t_rect_Type0 h_mk_genv_t x_6618 =
    146146  let { functions = functions0; nextfunction = nextfunction0; symbols =
    147     symbols0 } = x_6579
     147    symbols0 } = x_6618
    148148  in
    149149  h_mk_genv_t functions0 nextfunction0 symbols0 __
  • extracted/interference.ml

    r2873 r2951  
    44
    55open Set_adt
     6
     7open Extra_bool
     8
     9open Coqlib
     10
     11open Values
     12
     13open FrontEndVal
     14
     15open GenMem
     16
     17open FrontEndMem
     18
     19open Globalenvs
    620
    721open String
     
    122136    (Nat.nat -> 'a1) -> (I8051.register -> 'a1) -> decision -> 'a1 **)
    123137let rec decision_rect_Type4 h_decision_spill h_decision_colour = function
    124 | Decision_spill x_22007 -> h_decision_spill x_22007
    125 | Decision_colour x_22008 -> h_decision_colour x_22008
     138| Decision_spill x_19110 -> h_decision_spill x_19110
     139| Decision_colour x_19111 -> h_decision_colour x_19111
    126140
    127141(** val decision_rect_Type5 :
    128142    (Nat.nat -> 'a1) -> (I8051.register -> 'a1) -> decision -> 'a1 **)
    129143let rec decision_rect_Type5 h_decision_spill h_decision_colour = function
    130 | Decision_spill x_22012 -> h_decision_spill x_22012
    131 | Decision_colour x_22013 -> h_decision_colour x_22013
     144| Decision_spill x_19115 -> h_decision_spill x_19115
     145| Decision_colour x_19116 -> h_decision_colour x_19116
    132146
    133147(** val decision_rect_Type3 :
    134148    (Nat.nat -> 'a1) -> (I8051.register -> 'a1) -> decision -> 'a1 **)
    135149let rec decision_rect_Type3 h_decision_spill h_decision_colour = function
    136 | Decision_spill x_22017 -> h_decision_spill x_22017
    137 | Decision_colour x_22018 -> h_decision_colour x_22018
     150| Decision_spill x_19120 -> h_decision_spill x_19120
     151| Decision_colour x_19121 -> h_decision_colour x_19121
    138152
    139153(** val decision_rect_Type2 :
    140154    (Nat.nat -> 'a1) -> (I8051.register -> 'a1) -> decision -> 'a1 **)
    141155let rec decision_rect_Type2 h_decision_spill h_decision_colour = function
    142 | Decision_spill x_22022 -> h_decision_spill x_22022
    143 | Decision_colour x_22023 -> h_decision_colour x_22023
     156| Decision_spill x_19125 -> h_decision_spill x_19125
     157| Decision_colour x_19126 -> h_decision_colour x_19126
    144158
    145159(** val decision_rect_Type1 :
    146160    (Nat.nat -> 'a1) -> (I8051.register -> 'a1) -> decision -> 'a1 **)
    147161let rec decision_rect_Type1 h_decision_spill h_decision_colour = function
    148 | Decision_spill x_22027 -> h_decision_spill x_22027
    149 | Decision_colour x_22028 -> h_decision_colour x_22028
     162| Decision_spill x_19130 -> h_decision_spill x_19130
     163| Decision_colour x_19131 -> h_decision_colour x_19131
    150164
    151165(** val decision_rect_Type0 :
    152166    (Nat.nat -> 'a1) -> (I8051.register -> 'a1) -> decision -> 'a1 **)
    153167let rec decision_rect_Type0 h_decision_spill h_decision_colour = function
    154 | Decision_spill x_22032 -> h_decision_spill x_22032
    155 | Decision_colour x_22033 -> h_decision_colour x_22033
     168| Decision_spill x_19135 -> h_decision_spill x_19135
     169| Decision_colour x_19136 -> h_decision_colour x_19136
    156170
    157171(** val decision_inv_rect_Type4 :
     
    205219    Fixpoints.valuation -> ((Liveness.vertex -> decision) -> Nat.nat -> __ ->
    206220    __ -> 'a1) -> coloured_graph -> 'a1 **)
    207 let rec coloured_graph_rect_Type4 after h_mk_coloured_graph x_22068 =
    208   let { colouring = colouring0; spilled_no = spilled_no0 } = x_22068 in
     221let rec coloured_graph_rect_Type4 before h_mk_coloured_graph x_19171 =
     222  let { colouring = colouring0; spilled_no = spilled_no0 } = x_19171 in
    209223  h_mk_coloured_graph colouring0 spilled_no0 __ __
    210224
     
    212226    Fixpoints.valuation -> ((Liveness.vertex -> decision) -> Nat.nat -> __ ->
    213227    __ -> 'a1) -> coloured_graph -> 'a1 **)
    214 let rec coloured_graph_rect_Type5 after h_mk_coloured_graph x_22070 =
    215   let { colouring = colouring0; spilled_no = spilled_no0 } = x_22070 in
     228let rec coloured_graph_rect_Type5 before h_mk_coloured_graph x_19173 =
     229  let { colouring = colouring0; spilled_no = spilled_no0 } = x_19173 in
    216230  h_mk_coloured_graph colouring0 spilled_no0 __ __
    217231
     
    219233    Fixpoints.valuation -> ((Liveness.vertex -> decision) -> Nat.nat -> __ ->
    220234    __ -> 'a1) -> coloured_graph -> 'a1 **)
    221 let rec coloured_graph_rect_Type3 after h_mk_coloured_graph x_22072 =
    222   let { colouring = colouring0; spilled_no = spilled_no0 } = x_22072 in
     235let rec coloured_graph_rect_Type3 before h_mk_coloured_graph x_19175 =
     236  let { colouring = colouring0; spilled_no = spilled_no0 } = x_19175 in
    223237  h_mk_coloured_graph colouring0 spilled_no0 __ __
    224238
     
    226240    Fixpoints.valuation -> ((Liveness.vertex -> decision) -> Nat.nat -> __ ->
    227241    __ -> 'a1) -> coloured_graph -> 'a1 **)
    228 let rec coloured_graph_rect_Type2 after h_mk_coloured_graph x_22074 =
    229   let { colouring = colouring0; spilled_no = spilled_no0 } = x_22074 in
     242let rec coloured_graph_rect_Type2 before h_mk_coloured_graph x_19177 =
     243  let { colouring = colouring0; spilled_no = spilled_no0 } = x_19177 in
    230244  h_mk_coloured_graph colouring0 spilled_no0 __ __
    231245
     
    233247    Fixpoints.valuation -> ((Liveness.vertex -> decision) -> Nat.nat -> __ ->
    234248    __ -> 'a1) -> coloured_graph -> 'a1 **)
    235 let rec coloured_graph_rect_Type1 after h_mk_coloured_graph x_22076 =
    236   let { colouring = colouring0; spilled_no = spilled_no0 } = x_22076 in
     249let rec coloured_graph_rect_Type1 before h_mk_coloured_graph x_19179 =
     250  let { colouring = colouring0; spilled_no = spilled_no0 } = x_19179 in
    237251  h_mk_coloured_graph colouring0 spilled_no0 __ __
    238252
     
    240254    Fixpoints.valuation -> ((Liveness.vertex -> decision) -> Nat.nat -> __ ->
    241255    __ -> 'a1) -> coloured_graph -> 'a1 **)
    242 let rec coloured_graph_rect_Type0 after h_mk_coloured_graph x_22078 =
    243   let { colouring = colouring0; spilled_no = spilled_no0 } = x_22078 in
     256let rec coloured_graph_rect_Type0 before h_mk_coloured_graph x_19181 =
     257  let { colouring = colouring0; spilled_no = spilled_no0 } = x_19181 in
    244258  h_mk_coloured_graph colouring0 spilled_no0 __ __
    245259
    246260(** val colouring :
    247261    Fixpoints.valuation -> coloured_graph -> Liveness.vertex -> decision **)
    248 let rec colouring after xxx =
     262let rec colouring before xxx =
    249263  xxx.colouring
    250264
    251265(** val spilled_no : Fixpoints.valuation -> coloured_graph -> Nat.nat **)
    252 let rec spilled_no after xxx =
     266let rec spilled_no before xxx =
    253267  xxx.spilled_no
    254268
  • extracted/interference.mli

    r2773 r2951  
    44
    55open Set_adt
     6
     7open Extra_bool
     8
     9open Coqlib
     10
     11open Values
     12
     13open FrontEndVal
     14
     15open GenMem
     16
     17open FrontEndMem
     18
     19open Globalenvs
    620
    721open String
  • extracted/interpret2.ml

    r2910 r2951  
    116116
    117117open ASMCosts
     118
     119open Stacksize
    118120
    119121open SmallstepExec
  • extracted/interpret2.mli

    r2910 r2951  
    117117open ASMCosts
    118118
     119open Stacksize
     120
    119121open SmallstepExec
    120122
  • extracted/joint.ml

    r2873 r2951  
    110110    ('a1 -> 'a2) -> (BitVector.byte -> 'a2) -> 'a1 argument -> 'a2 **)
    111111let rec argument_rect_Type4 h_Reg h_Imm = function
    112 | Reg x_19830 -> h_Reg x_19830
    113 | Imm x_19831 -> h_Imm x_19831
     112| Reg x_16908 -> h_Reg x_16908
     113| Imm x_16909 -> h_Imm x_16909
    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_19835 -> h_Reg x_19835
    119 | Imm x_19836 -> h_Imm x_19836
     118| Reg x_16913 -> h_Reg x_16913
     119| Imm x_16914 -> h_Imm x_16914
    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_19840 -> h_Reg x_19840
    125 | Imm x_19841 -> h_Imm x_19841
     124| Reg x_16918 -> h_Reg x_16918
     125| Imm x_16919 -> h_Imm x_16919
    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_19845 -> h_Reg x_19845
    131 | Imm x_19846 -> h_Imm x_19846
     130| Reg x_16923 -> h_Reg x_16923
     131| Imm x_16924 -> h_Imm x_16924
    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_19850 -> h_Reg x_19850
    137 | Imm x_19851 -> h_Imm x_19851
     136| Reg x_16928 -> h_Reg x_16928
     137| Imm x_16929 -> h_Imm x_16929
    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_19855 -> h_Reg x_19855
    143 | Imm x_19856 -> h_Imm x_19856
     142| Reg x_16933 -> h_Reg x_16933
     143| Imm x_16934 -> h_Imm x_16934
    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_19891 =
     326let rec unserialized_params_rect_Type4 h_mk_unserialized_params x_16969 =
    327327  let { ext_seq_labels = ext_seq_labels0; has_tailcalls = has_tailcalls0 } =
    328     x_19891
     328    x_16969
    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_19893 =
     337let rec unserialized_params_rect_Type5 h_mk_unserialized_params x_16971 =
    338338  let { ext_seq_labels = ext_seq_labels0; has_tailcalls = has_tailcalls0 } =
    339     x_19893
     339    x_16971
    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_19895 =
     348let rec unserialized_params_rect_Type3 h_mk_unserialized_params x_16973 =
    349349  let { ext_seq_labels = ext_seq_labels0; has_tailcalls = has_tailcalls0 } =
    350     x_19895
     350    x_16973
    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_19897 =
     359let rec unserialized_params_rect_Type2 h_mk_unserialized_params x_16975 =
    360360  let { ext_seq_labels = ext_seq_labels0; has_tailcalls = has_tailcalls0 } =
    361     x_19897
     361    x_16975
    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_19899 =
     370let rec unserialized_params_rect_Type1 h_mk_unserialized_params x_16977 =
    371371  let { ext_seq_labels = ext_seq_labels0; has_tailcalls = has_tailcalls0 } =
    372     x_19899
     372    x_16977
    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_19901 =
     381let rec unserialized_params_rect_Type0 h_mk_unserialized_params x_16979 =
    382382  let { ext_seq_labels = ext_seq_labels0; has_tailcalls = has_tailcalls0 } =
    383     x_19901
     383    x_16979
    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_19918 =
     508let rec get_pseudo_reg_functs_rect_Type4 p h_mk_get_pseudo_reg_functs x_16996 =
    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_19918
     514    params_regs0 } = x_16996
    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_19920 =
     531let rec get_pseudo_reg_functs_rect_Type5 p h_mk_get_pseudo_reg_functs x_16998 =
    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_19920
     537    params_regs0 } = x_16998
    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_19922 =
     554let rec get_pseudo_reg_functs_rect_Type3 p h_mk_get_pseudo_reg_functs x_17000 =
    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_19922
     560    params_regs0 } = x_17000
    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_19924 =
     577let rec get_pseudo_reg_functs_rect_Type2 p h_mk_get_pseudo_reg_functs x_17002 =
    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_19924
     583    params_regs0 } = x_17002
    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_19926 =
     600let rec get_pseudo_reg_functs_rect_Type1 p h_mk_get_pseudo_reg_functs x_17004 =
    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_19926
     606    params_regs0 } = x_17004
    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_19928 =
     623let rec get_pseudo_reg_functs_rect_Type0 p h_mk_get_pseudo_reg_functs x_17006 =
    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_19928
     629    params_regs0 } = x_17006
    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_19958 =
    808   let { u_pars = u_pars0; functs = functs0 } = x_19958 in
     807let rec uns_params_rect_Type4 h_mk_uns_params x_17036 =
     808  let { u_pars = u_pars0; functs = functs0 } = x_17036 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_19960 =
    815   let { u_pars = u_pars0; functs = functs0 } = x_19960 in
     814let rec uns_params_rect_Type5 h_mk_uns_params x_17038 =
     815  let { u_pars = u_pars0; functs = functs0 } = x_17038 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_19962 =
    822   let { u_pars = u_pars0; functs = functs0 } = x_19962 in
     821let rec uns_params_rect_Type3 h_mk_uns_params x_17040 =
     822  let { u_pars = u_pars0; functs = functs0 } = x_17040 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_19964 =
    829   let { u_pars = u_pars0; functs = functs0 } = x_19964 in
     828let rec uns_params_rect_Type2 h_mk_uns_params x_17042 =
     829  let { u_pars = u_pars0; functs = functs0 } = x_17042 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_19966 =
    836   let { u_pars = u_pars0; functs = functs0 } = x_19966 in
     835let rec uns_params_rect_Type1 h_mk_uns_params x_17044 =
     836  let { u_pars = u_pars0; functs = functs0 } = x_17044 in
    837837  h_mk_uns_params u_pars0 functs0