module type Chunk =sig
..end
Memory Chunks.
The concrete memory is partionned into a vector of abstract data. Each component of the partition is called a memory chunk and holds an abstract representation of some part of the memory.
Remark: memory chunks are not required to be independant from each other,
provided the memory model implementation is consistent with the chosen
representation. Conversely, a given object might be represented by
several memory chunks. See Wp.Sigs.Model.domain
.
type
t
val self : string
Chunk names, for pretty-printing.
val hash : t -> int
val equal : t -> t -> bool
val compare : t -> t -> int
val pretty : Stdlib.Format.formatter -> t -> unit
val tau_of_chunk : t -> Wp.Lang.F.tau
The type of data hold in a chunk.
val basename_of_chunk : t -> string
Used when generating fresh variables for a chunk.
val is_framed : t -> bool
Whether the chunk is local to a function call.
Means the chunk is separated from anyother call side-effects.
If true
, entails that a function assigning everything can not modify
the chunk. Only used for optimisation, it would be safe to always
return false
.