DisjointDomain.ProjectiveMapSourceMap 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.Smodule V : Printable.Smodule R : Representative with type elt = E.tinclude MapDomain.PS with type key = E.t with type value = B.valueinclude Printable.Sinclude Lattice.S with type t := tinclude Lattice.PO with type t := twiden x y assumes leq x y. Solvers guarantee this by calling widen old (join old new).
If leq x y = false, then pretty_diff () (x, y) should explain why.