Module Refinement.Refinements

Refinements collected over a whole expression: those attached to a program point, plus anonymous ones that only contribute to partitioning.

type t
val empty : t

The refinement holding at a program point; the empty (trivially true) environment if none was recorded.

val get_anonymous : t -> Mlsem_common.REnv.t list
val all : t -> Mlsem_common.REnv.t list

Every recorded refinement, located or not.

Records a refinement at a program point, intersecting it with any refinement already recorded there. Distinct program points must therefore carry distinct Eid.ts, or unrelated refinements get conflated.

val add_anonymous : t -> Mlsem_common.REnv.t -> t