module type S =sig
..end
include Mlogic.S
update m h p
binds free variables in p
representing
the state m
to the current memory h
.val update : at:mem -> here:mem -> F.pred -> F.pred
quantify_at_label m p
quantifies the free variables in p
representing the memort state m
.
It generalize the goal up-to the state m
.
val quantify : mem -> F.pred -> F.pred
subst_lval frame l te v p
binds in p
the free variables
representing the value at location l
in the current memory to
the actual value v
.
It updates the memory-map frame
such that now the current memory in p
has been updated by storing v
at l
.
val subst_lval : mem -> Ctypes.c_object -> loc -> value -> F.pred -> F.pred
val subst_havoc : mem -> loc F.assigned -> F.havoc list
zone
.
Actually, subst_havoc must no do the substitution it-self to avoid
any variable capture un region. Rather, subst_havoc
should returns the
list of substitutions to be applied modulo alpha-conversion.assigns_goal M1 region M2
returns a predicates
establishing the assigns clause region
with dependencies depends
.M1
is the memory before of the execution of the assigning statement.M2
is the memory after of the execution of the assigning statement.val assigns_goal : mem -> loc F.assigned list -> mem -> F.pred
val assigns_supported : bool
type
m_dzone
typedzone =
m_dzone F.term
val tau_of_dzone : Formula.tau
val dzone_assigned : mem -> loc F.assigned -> dzone
val dzone_subset : dzone -> dzone -> F.pred
val dzone_union : dzone -> dzone -> dzone
val dzone_empty : unit -> dzone
val effect_supported : bool
val global_scope : mem -> F.pred -> F.pred
val local_scope : mem -> Cil_types.varinfo list -> Mcfg.scope -> F.pred -> F.pred
local_scope m l
transforms the predicate p
at the
enter-point of a block or function that
declares the local variables in the list. It is time to add
hypotheses about those local variables.