open Preamble open SmallstepExec open Cexec open Sets open Listb open IO open IOMonad open Star open ClassifyOp open Events open Smallstep open Extra_bool open Values open FrontEndVal open Hide open ByteValues open Division open Z open BitVectorZ open Pointers open GenMem open FrontEndMem open Globalenvs open Csem open CostLabel open Coqlib open Proper open PositiveMap open Deqsets open ErrorMessages open PreIdentifiers open Errors open Extralib open Lists open Positive open Identifiers open Exp open Arithmetic open Vector open Div_and_mod open Util open FoldStuff open BitVector open Jmeq open Russell open List open Setoids open Monad open Option open Extranat open Bool open Relations open Nat open Integers open Hints_declaration open Core_notation open Pts open Logic open Types open AST open Csyntax open TypeComparison open Frontend_misc open MemProperties (** val zoo : Pointers.offset -> Z.z **) let zoo x = BitVectorZ.z_of_unsigned_bitvector Pointers.offset_size (Pointers.offv x) (** val boo : Z.z -> Pointers.offset **) let boo x = BitVectorZ.bitvector_of_Z Pointers.offset_size x (** val block_decidable_eq : Pointers.block -> Pointers.block -> (__, __) Types.sum **) let block_decidable_eq clearme = let a = clearme in (fun clearme0 -> let b = clearme0 in (match Z.decidable_eq_Z_Type a b with | Types.Inl _ -> Types.Inl __ | Types.Inr _ -> Types.Inr __)) type embedding = Pointers.block -> (Pointers.block, Pointers.offset) Types.prod Types.option (** val offset_plus : Pointers.offset -> Pointers.offset -> Pointers.offset **) let offset_plus o1 o2 = Arithmetic.addition_n Pointers.offset_size (Pointers.offv o1) (Pointers.offv o2) (** val pointer_translation : Pointers.pointer -> embedding -> Pointers.pointer Types.option **) let pointer_translation p e = let { Pointers.pblock = pblock; Pointers.poff = poff } = p in (match e pblock with | Types.None -> Types.None | Types.Some loc -> let { Types.fst = dest_block; Types.snd = dest_off } = loc in let ptr = { Pointers.pblock = dest_block; Pointers.poff = (offset_plus poff dest_off) } in Types.Some ptr) (** val memory_inj_rect_Type4 : embedding -> GenMem.mem -> GenMem.mem -> (__ -> __ -> __ -> __ -> __ -> __ -> __ -> 'a1) -> 'a1 **) let rec memory_inj_rect_Type4 e m1 m2 h_mk_memory_inj = h_mk_memory_inj __ __ __ __ __ __ __ (** val memory_inj_rect_Type5 : embedding -> GenMem.mem -> GenMem.mem -> (__ -> __ -> __ -> __ -> __ -> __ -> __ -> 'a1) -> 'a1 **) let rec memory_inj_rect_Type5 e m1 m2 h_mk_memory_inj = h_mk_memory_inj __ __ __ __ __ __ __ (** val memory_inj_rect_Type3 : embedding -> GenMem.mem -> GenMem.mem -> (__ -> __ -> __ -> __ -> __ -> __ -> __ -> 'a1) -> 'a1 **) let rec memory_inj_rect_Type3 e m1 m2 h_mk_memory_inj = h_mk_memory_inj __ __ __ __ __ __ __ (** val memory_inj_rect_Type2 : embedding -> GenMem.mem -> GenMem.mem -> (__ -> __ -> __ -> __ -> __ -> __ -> __ -> 'a1) -> 'a1 **) let rec memory_inj_rect_Type2 e m1 m2 h_mk_memory_inj = h_mk_memory_inj __ __ __ __ __ __ __ (** val memory_inj_rect_Type1 : embedding -> GenMem.mem -> GenMem.mem -> (__ -> __ -> __ -> __ -> __ -> __ -> __ -> 'a1) -> 'a1 **) let rec memory_inj_rect_Type1 e m1 m2 h_mk_memory_inj = h_mk_memory_inj __ __ __ __ __ __ __ (** val memory_inj_rect_Type0 : embedding -> GenMem.mem -> GenMem.mem -> (__ -> __ -> __ -> __ -> __ -> __ -> __ -> 'a1) -> 'a1 **) let rec memory_inj_rect_Type0 e m1 m2 h_mk_memory_inj = h_mk_memory_inj __ __ __ __ __ __ __ (** val memory_inj_inv_rect_Type4 : embedding -> GenMem.mem -> GenMem.mem -> (__ -> __ -> __ -> __ -> __ -> __ -> __ -> __ -> 'a1) -> 'a1 **) let memory_inj_inv_rect_Type4 x1 x2 x3 h1 = let hcut = memory_inj_rect_Type4 x1 x2 x3 h1 in hcut __ (** val memory_inj_inv_rect_Type3 : embedding -> GenMem.mem -> GenMem.mem -> (__ -> __ -> __ -> __ -> __ -> __ -> __ -> __ -> 'a1) -> 'a1 **) let memory_inj_inv_rect_Type3 x1 x2 x3 h1 = let hcut = memory_inj_rect_Type3 x1 x2 x3 h1 in hcut __ (** val memory_inj_inv_rect_Type2 : embedding -> GenMem.mem -> GenMem.mem -> (__ -> __ -> __ -> __ -> __ -> __ -> __ -> __ -> 'a1) -> 'a1 **) let memory_inj_inv_rect_Type2 x1 x2 x3 h1 = let hcut = memory_inj_rect_Type2 x1 x2 x3 h1 in hcut __ (** val memory_inj_inv_rect_Type1 : embedding -> GenMem.mem -> GenMem.mem -> (__ -> __ -> __ -> __ -> __ -> __ -> __ -> __ -> 'a1) -> 'a1 **) let memory_inj_inv_rect_Type1 x1 x2 x3 h1 = let hcut = memory_inj_rect_Type1 x1 x2 x3 h1 in hcut __ (** val memory_inj_inv_rect_Type0 : embedding -> GenMem.mem -> GenMem.mem -> (__ -> __ -> __ -> __ -> __ -> __ -> __ -> __ -> 'a1) -> 'a1 **) let memory_inj_inv_rect_Type0 x1 x2 x3 h1 = let hcut = memory_inj_rect_Type0 x1 x2 x3 h1 in hcut __ (** val memory_inj_jmdiscr : embedding -> GenMem.mem -> GenMem.mem -> __ **) let memory_inj_jmdiscr a1 a2 a3 = Logic.eq_rect_Type2 __ (Obj.magic (fun _ dH -> dH __ __ __ __ __ __ __)) __ (** val typesize' : Csyntax.type0 -> Nat.nat **) let typesize' ty = AST.typesize (Csyntax.typ_of_type ty)