module Model1: sig
.. end
Model1 is a memory model that is close to caveat's one,
but it should add guards to check is the are no problem with aliases.
val abort : string -> 'a
type
data1 =
type
exp1 = data1 Fol.d_term
val pp_epath : bool -> Format.formatter -> exp1 WpFol.epath -> unit
val pp_data1 : Format.formatter -> data1 -> unit
val pp_exp1 : Format.formatter -> exp1 -> unit
module M: sig
.. end
module MV: Mvar.MV
(
M
)
module MT: MV.MT
exception UnknownGuard of M.t_exp * string
val get_read_addr : bool -> data1 Fol.d_pred -> M.t_exp list
with_direct
: says if we have to include base addresses (@X
).
val guard_counter : int Pervasives.ref
val build_guard : Cil_types.varinfo ->
exp1 ->
data1 Fol.d_pred ->
Fol.variable * exp1 Fol.t_pred * data1 Fol.d_pred
val build_mu : (Cil_types.exp -> M.t_exp option) ->
Cil_types.lval ->
M.t_exp option -> Cil_types.varinfo * M.t_exp option
val assign_exp : (Cil_types.exp -> M.t_exp option) ->
Cil_types.lval ->
M.t_exp option -> M.t_data Fol.d_pred -> exp1 Fol.t_pred
val assign_old_exp : 'a -> 'b -> 'c -> 'd -> 'e
val why_prelude : string list