SetDomainSet domains.
module type S = sig ... endA set domain must support all the standard library set operations. They have been copied instead of included since our empty has a different signature.
Reusable output definitions for sets.
A functor for creating a simple set domain, there is no top element, and * calling top () will raise an exception
module SensitiveConf
(C : Printable.ProdConfiguration)
(Base : Lattice.S)
(User : Printable.S) :
sig ... endA functor for creating a path sensitive set domain, that joins the base * analysis whenever the user elements coincide. Just as above there is no top * element, and calling top () will raise an exception
module type ToppedSetNames = sig ... endAuxiliary signature for naming the top element
module ToppedSet
(Base : Printable.S)
(N : ToppedSetNames) :
S with type elt = Base.t and type t = [ `Top | `Lifted of Make(Base).t ]Functor for creating artificially topped set domains.
module HeadlessSet (Base : Printable.S) : sig ... endReverses lattice order of a set domain while keeping the set operations same.
module type FiniteSetElem = sig ... endmodule FiniteSet (E : FiniteSetElem) : sig ... end