Module type Mlogic.S


module type S = sig .. end


Term Values


include Mvalues.S

Frame Environment


type frame 
val new_frame : Kernel_function.t ->
m_here:mem option ->
m_pre:mem option -> m_post:mem option -> D.F.var option -> frame
val mem_at : frame -> Clabels.c_label -> mem
mem_at e l returns the memory associates to the label l in the environment e.
val result : frame -> D.F.var * Cil_types.typ
result e returns the variable associates to the function result in the environment e.
val exit_status : frame -> D.F.var
exit_status e returns the variable associates to the function exit status in the environment e.
val set_exit_status : frame -> D.F.var -> frame
val get_exit_status : frame -> D.F.var option

Pointers


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

Validity


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

Separation


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

User-defined Predicates


type closure 
val userdef_frame : unit -> frame
val userdef_signature : frame ->
Formula.abstract D.F.term list ->
D.F.pred list -> D.F.var list * closure list
val label_at_closure : closure -> string
val userdef_closure : mem -> closure -> Formula.abstract D.F.term
val pp_closure : Format.formatter -> closure -> unit