Module Store_mem.Create.Model


module Model: sig .. end

module A: A
module R: R
module F: F

type st_loc = {
   base : F.integer;
   off : F.integer;
   obj : Ctypes.c_object;
}
val upd_base : st_loc ->
F.integer -> st_loc
val upd_off : st_loc ->
F.integer -> st_loc
val upd_obj : st_loc ->
Ctypes.c_object -> st_loc

type loc =
| Loc of st_loc
| Addr of F.integer * Ctypes.c_object
val addr : loc -> F.integer
val base : loc -> F.integer
val offset : loc -> F.integer
val object_of_loc : loc -> Ctypes.c_object
val sizeof_loc : loc -> F.integer
val loc_of_term : Ctypes.c_object ->
F.abstract -> loc
val term_of_loc : loc -> F.abstract
val null : loc
val is_null : loc -> 'a F.term
val lt_loc : loc ->
loc -> F.pred
val le_loc : loc ->
loc -> F.pred
val equal_loc : loc ->
loc -> F.pred
val lt_loc_bool : loc ->
loc -> 'a F.term
val le_loc_bool : loc ->
loc -> 'a F.term
val equal_loc_bool : loc ->
loc -> 'a F.term
val minus_loc : loc ->
loc -> 'a F.term
val cast_loc_to_int : 'a -> loc -> 'b -> F.integer
val cast_int_to_loc : 'a ->
F.integer ->
Cil_types.typ -> loc
val pp_loc : Format.formatter -> loc -> unit
val tau_of_loc : Formula.tau