module Fcl_setDomain:sig..end
module S:sig..end
Implementation of sets of integers.
typeelt =S.t
Type of elements of set domains. They are sets themselves.
type t
Type of finite domains of integer sets: a domain is a powerset lattice of sets bounded by definite elements or glb (Greater Lower Bound) and possible elements or lub (Lower Upper Bounds). The glb is a subset of the lub. Note that the empty domain cannot be represented.
val elt_of_list : int list -> eltCreates a set from a list of integers.
val interval : elt -> elt -> tinterval glb lub builds the domain of sets greater than glb and
smaller than lub. An Invalid_argument exception is raised if glb
is not a subset of lub.
val size : t -> intsize d returns |glb(d)|-|lub(d)|+1, i.e. the height of the lattice,
not its number of elements.
val min : t -> elt
val max : t -> elt
val min_max : t -> elt * eltAccess to glb and lub.
val fprint_elt : Stdlib.out_channel -> elt -> unit
val fprint : Stdlib.out_channel -> t -> unitPretty printing of elements and domains.
val mem : elt -> t -> boolmem x d tests whether x belongs to the domain d.
val included : t -> t -> boolincluded d1 d2 tests whether the domain d1 is included in d2,
i.e. glb(d2) included in glb(d1) and lub(d1) included in lub(d2).
val iter : (elt -> 'a) -> t -> 'aIteration on values of the domain. Exponential with the size
of the domain.
val values : t -> elt listReturns values of a domain. Exponential with the size of the
domain.