DisjointDomain.ProjectiveMap
Map of keys E.t
grouped into buckets by R
, where each bucket is described by the map B
with values V.t
.
Common choice for B
is MapDomain.Joined
.
Handles Lattice.BotValue
from B
.
module E : Printable.S
module V : Printable.S
module R : Representative with type elt = E.t
include Lattice.S with type t := t
include Lattice.PO with type t := t
widen x y
assumes leq x y
. Solvers guarantee this by calling widen old (join old new)
.
val bot : unit -> t
val is_bot : t -> bool
val top : unit -> t
val is_top : t -> bool