Module AbstractDomain.MinReprSet

Abstracts a set of Elements by keeping its smallest representative only. The widening is terminating only if the order fulfills the descending chain condition.

Parameters

Signature

type elt = Element.t
include IStdlib.IStd.Caml.Set.OrderedType
type t
val compare : t -> t -> int
include WithBottom with type t := t
include S
include NoJoin
include IStdlib.PrettyPrintable.PrintableType
type t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val leq : lhs:t -> rhs:t -> bool

the implication relation: lhs <= rhs means lhs |- rhs

val join : t -> t -> t
val widen : prev:t -> next:t -> num_iters:int -> t
val bottom : t

The bottom value of the domain.

val is_bottom : t -> bool

Return true if this is the bottom value

val singleton : elt -> t
val min_elt : t -> elt option
val add : elt -> t -> t
val map : (elt -> elt) -> t -> t
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
val exists : (elt -> bool) -> t -> bool