open Preamble open Proper open PositiveMap open Deqsets open Extralib open Lists open Identifiers open Integers open AST open Division open Exp open Arithmetic open Extranat open Vector open FoldStuff open BitVector open Z open BitVectorZ open Pointers open ErrorMessages open Option open Setoids open Monad open Positive open PreIdentifiers open Errors open Div_and_mod open Jmeq open Russell open Util open Bool open Relations open Nat open List open Hints_declaration open Core_notation open Pts open Logic open Types open Coqlib open Values open CostLabel type eventval = | EVint of AST.intsize * AST.bvint val eventval_rect_Type4 : (AST.intsize -> AST.bvint -> 'a1) -> eventval -> 'a1 val eventval_rect_Type5 : (AST.intsize -> AST.bvint -> 'a1) -> eventval -> 'a1 val eventval_rect_Type3 : (AST.intsize -> AST.bvint -> 'a1) -> eventval -> 'a1 val eventval_rect_Type2 : (AST.intsize -> AST.bvint -> 'a1) -> eventval -> 'a1 val eventval_rect_Type1 : (AST.intsize -> AST.bvint -> 'a1) -> eventval -> 'a1 val eventval_rect_Type0 : (AST.intsize -> AST.bvint -> 'a1) -> eventval -> 'a1 val eventval_inv_rect_Type4 : eventval -> (AST.intsize -> AST.bvint -> __ -> 'a1) -> 'a1 val eventval_inv_rect_Type3 : eventval -> (AST.intsize -> AST.bvint -> __ -> 'a1) -> 'a1 val eventval_inv_rect_Type2 : eventval -> (AST.intsize -> AST.bvint -> __ -> 'a1) -> 'a1 val eventval_inv_rect_Type1 : eventval -> (AST.intsize -> AST.bvint -> __ -> 'a1) -> 'a1 val eventval_inv_rect_Type0 : eventval -> (AST.intsize -> AST.bvint -> __ -> 'a1) -> 'a1 val eventval_discr : eventval -> eventval -> __ val eventval_jmdiscr : eventval -> eventval -> __ type event = | EVcost of CostLabel.costlabel | EVextcall of AST.ident * eventval List.list * eventval val event_rect_Type4 : (CostLabel.costlabel -> 'a1) -> (AST.ident -> eventval List.list -> eventval -> 'a1) -> event -> 'a1 val event_rect_Type5 : (CostLabel.costlabel -> 'a1) -> (AST.ident -> eventval List.list -> eventval -> 'a1) -> event -> 'a1 val event_rect_Type3 : (CostLabel.costlabel -> 'a1) -> (AST.ident -> eventval List.list -> eventval -> 'a1) -> event -> 'a1 val event_rect_Type2 : (CostLabel.costlabel -> 'a1) -> (AST.ident -> eventval List.list -> eventval -> 'a1) -> event -> 'a1 val event_rect_Type1 : (CostLabel.costlabel -> 'a1) -> (AST.ident -> eventval List.list -> eventval -> 'a1) -> event -> 'a1 val event_rect_Type0 : (CostLabel.costlabel -> 'a1) -> (AST.ident -> eventval List.list -> eventval -> 'a1) -> event -> 'a1 val event_inv_rect_Type4 : event -> (CostLabel.costlabel -> __ -> 'a1) -> (AST.ident -> eventval List.list -> eventval -> __ -> 'a1) -> 'a1 val event_inv_rect_Type3 : event -> (CostLabel.costlabel -> __ -> 'a1) -> (AST.ident -> eventval List.list -> eventval -> __ -> 'a1) -> 'a1 val event_inv_rect_Type2 : event -> (CostLabel.costlabel -> __ -> 'a1) -> (AST.ident -> eventval List.list -> eventval -> __ -> 'a1) -> 'a1 val event_inv_rect_Type1 : event -> (CostLabel.costlabel -> __ -> 'a1) -> (AST.ident -> eventval List.list -> eventval -> __ -> 'a1) -> 'a1 val event_inv_rect_Type0 : event -> (CostLabel.costlabel -> __ -> 'a1) -> (AST.ident -> eventval List.list -> eventval -> __ -> 'a1) -> 'a1 val event_discr : event -> event -> __ val event_jmdiscr : event -> event -> __ type trace = event List.list val e0 : trace val echarge : CostLabel.costlabel -> trace val eextcall : AST.ident -> eventval List.list -> eventval -> trace val eapp : trace -> trace -> trace type traceinf = __traceinf Lazy.t and __traceinf = | Econsinf of event * traceinf val traceinf_inv_rect_Type4 : traceinf -> (event -> traceinf -> __ -> 'a1) -> 'a1 val traceinf_inv_rect_Type3 : traceinf -> (event -> traceinf -> __ -> 'a1) -> 'a1 val traceinf_inv_rect_Type2 : traceinf -> (event -> traceinf -> __ -> 'a1) -> 'a1 val traceinf_inv_rect_Type1 : traceinf -> (event -> traceinf -> __ -> 'a1) -> 'a1 val traceinf_inv_rect_Type0 : traceinf -> (event -> traceinf -> __ -> 'a1) -> 'a1 val traceinf_discr : traceinf -> traceinf -> __ val traceinf_jmdiscr : traceinf -> traceinf -> __ val eappinf : trace -> traceinf -> traceinf val remove_costs : trace -> trace type traceinf' = __traceinf' Lazy.t and __traceinf' = | Econsinf' of trace * traceinf' val traceinf'_inv_rect_Type4 : traceinf' -> (trace -> traceinf' -> __ -> __ -> 'a1) -> 'a1 val traceinf'_inv_rect_Type3 : traceinf' -> (trace -> traceinf' -> __ -> __ -> 'a1) -> 'a1 val traceinf'_inv_rect_Type2 : traceinf' -> (trace -> traceinf' -> __ -> __ -> 'a1) -> 'a1 val traceinf'_inv_rect_Type1 : traceinf' -> (trace -> traceinf' -> __ -> __ -> 'a1) -> 'a1 val traceinf'_inv_rect_Type0 : traceinf' -> (trace -> traceinf' -> __ -> __ -> 'a1) -> 'a1 val traceinf'_discr : traceinf' -> traceinf' -> __ val traceinf'_jmdiscr : traceinf' -> traceinf' -> __ val split_traceinf' : trace -> traceinf' -> (event, traceinf') Types.prod val traceinf_of_traceinf' : traceinf' -> traceinf