Wp.MemorySourceCommon Types and Signatures
type equation = | Set of Lang.F.term * Lang.F.termSet(a,b) is a := b.
| Assert of Lang.F.predOriented equality or arbitrary relation
Access conditions
Abstract location or concrete value
type 'a rloc = | Rloc of Ctypes.c_object * 'a| Rrange of 'a * Ctypes.c_object * Lang.F.term option * Lang.F.term optionContiguous set of locations
type 'a sloc = | Sloc of 'a| Sarray of 'a * Ctypes.c_object * intfull sized range (optimized assigns)
*)| Srange of 'a * Ctypes.c_object * Lang.F.term option * Lang.F.term option| Sdescr of Lang.F.var list * 'a * Lang.F.predStructured set of locations
Typed set of locations
type 'a logic = | Vexp of Lang.F.term| Vloc of 'a| Vset of Wp__.Vset.vset list| Lset of 'a sloc listLogical values, locations, or sets of
Scope management for locals and formals
Container for the returned value of a function
Polarity of predicate compilation
It is sometimes possible to reverse memory models abstractions into ACSL left-values via the definitions below.
and s_host = | Mvar of Frama_c_kernel.Cil_types.varinfoVariable
*)| Mmem of Lang.F.termPointed value
*)| Mval of s_lvalPointed value of another abstract left-value
*)type mval = | Maddr of s_lvalThe value is the address of an l-value in current memory
*)| Mlval of s_lvalThe value is the value of an l-value in current memory
*)| Minit of s_lvalThe value is the init state of an l-value in current memory
*)| Mchunk of Sigma.Chunk.tThe value is an abstract memory chunk (description)
*)Reversed abstract value
type update = | Mstore of s_lval * Lang.F.termAn update of the ACSL left-value with the given value
*)Reversed update
Compiler for C expressions
Compiler for ACSL expressions
Compiler for Performing Assigns