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