Module type Mvalues.Model


module type Model = sig .. end

module F: Formula.S 
module A: Mint.S  with module F = F
module R: Mfloat.S  with module F = F
type loc 
val tau_of_loc : Formula.tau
val term_of_loc : loc -> F.abstract
val loc_of_term : Ctypes.c_object -> F.abstract -> loc

Loc arithmetics


val equal_loc_bool : loc -> loc -> F.boolean
equal_loc_bool p q is the boolean that is true when locs p and q, that points to elements of type ty, are equal. Returns a term of type bool.
val lt_loc_bool : loc -> loc -> F.boolean
lt_loc_bool p q is the less than comparison of locs p and q, that points to elements of type ty, ie. p<q. Returns a term of type boolean.
val le_loc_bool : loc -> loc -> F.boolean
le_loc_bool p q is the less than or equal comparison of locs p and q, that points to elements of type ty, ie. p<=q. Returns a term of type boolean.
val lt_loc : loc -> loc -> F.pred
lt_loc p q is the less than comparison of locs p and q, that points to elements of type ty, ie. p<q.
val le_loc : loc -> loc -> F.pred
le_loc p q is the less than or equal comparison of locs p and q, that points to elements of type ty, ie. p<=q.
val equal_loc : loc -> loc -> F.pred
val minus_loc : loc -> loc -> F.integer
minus_loc ty p q is the arithmetics difference of locs p and q, that points to elements of type ty, ie. p-q. Returns a term of type integer.
val is_null : loc -> F.boolean
Take a term representing an address and returns a term of type bool.

Special locations


val null : loc
null return the special location of the memory model designing the null loc.

cast_loc_to_int t p c_int : cast loc if type t* into a term of type c_int
val cast_loc_to_int : Cil_types.typ -> loc -> Ctypes.c_int -> F.integer
val cast_int_to_loc : Ctypes.c_int -> F.integer -> Cil_types.typ -> loc
val pp_loc : Format.formatter -> loc -> unit