open Preamble 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 SmallstepExec open Cexec (** val z_of_offset : Pointers.offset -> Z.z **) let z_of_offset ofs = BitVectorZ.z_of_unsigned_bitvector Pointers.offset_size (Pointers.offv ofs) (** val shiftn : Pointers.offset -> Nat.nat -> Pointers.offset **) let rec shiftn off = function | Nat.O -> off | Nat.S n -> shiftn (Pointers.shift_offset (Nat.S (Nat.S Nat.O)) off (Arithmetic.bitvector_of_nat (Nat.S (Nat.S Nat.O)) (Nat.S Nat.O))) n