Module type Mlogic.S


module type S = sig .. end


Term Values


include Mvalues.S
val lvar : mem -> Cil_types.logic_var -> F.var -> loc
lvar m lv p returns a location associated to the location variable lv with variable root name x. x for all model except in funvar.
val inner_loc : loc -> F.abstract
inner_loc l returns the location corresponding to l in the inner memory model in funvar. Not implemented in other models.

Pointers


val base_address : mem -> loc -> loc
base_address m l return the base address of l.
val block_length : mem -> loc -> F.integer
block_length m l t return the block_length of the location l.

Validity


val valid : mem -> loc F.assigned -> F.pred

Separation


val separated : mem -> loc F.assigned -> loc F.assigned -> F.pred

User-defined Predicates


type formal 
val pp_formal : Format.formatter -> formal * Cil_types.logic_var -> unit
val userdef_ref_has_cvar : Cil_types.logic_var -> bool
userdef_ref_has_cvar p tests if the by reference logic formal parameter p needs a C addresses.
val userdef_is_ref_param : Cil_types.logic_var -> bool
userdef_ref_param p tests if p is a by reference logic formal parameter.
val userdef_ref_signature : mem -> (F.var * Cil_types.logic_var * formal) list
val userdef_ref_apply : mem -> formal -> loc -> value
type closure 
val pp_closure : Format.formatter -> closure -> unit
val userdef_mem_signature : mem -> (F.var * closure) list
val userdef_mem_apply : mem -> closure -> F.abstract