Module type Wp.Sigs.Chunk

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 compare : t -> t -> int
val pretty : 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.