module Conjunto: sig .. end
Constraints on Finite Sets
val subset : Var.SetFd.t -> Var.SetFd.t -> Cstr.t
subset v1 v2 ensures that v1 is a subset of v2. Not reifiable.
val cardinal : Var.SetFd.t -> Var.Fd.t
cardinal v returns the cardinal (an integer variable) of the set v. Not reifiable.
val smallest : Var.SetFd.t -> Var.Fd.t
smallest v returns the smallest element (an integer variable) of v.
val union : Var.SetFd.t -> Var.SetFd.t -> Var.SetFd.t
val inter : Var.SetFd.t -> Var.SetFd.t -> Var.SetFd.t
Operations on sets.
val all_disjoint : Var.SetFd.t array -> Cstr.t
all_disjoint vars ensures that all the set variables of array vars
are pairwise disjoint. Not reifiable.
val disjoint : Var.SetFd.t -> Var.SetFd.t -> Cstr.t
disjoint v1 v2 defined by all_disjoint [|v1; v2|]. Not reifiable.
val inside : int -> Var.SetFd.t -> unit
val outside : int -> Var.SetFd.t -> unit
Basic refinements for labeling.
val mem : Var.Fd.t -> Var.SetFd.t -> Cstr.t
mem x v states that x belongs to v.
val inf_min : Var.SetFd.t -> Var.SetFd.t -> Cstr.t
inf_min v1 v2 ensures that the minimal element
of v1 is less than or equal to the minimal element of v2. The empty set
is smaller than any other set. Useful to break permutation symmetries for
a set of set variables. Not reifiable.
val order : Var.SetFd.t -> Var.SetFd.t -> Cstr.t
order v1 v2 ensures that v1 is less than or equal to v2
according to Domain.compare .
Caution: order builds the cardinal
variables of v1 and v2; if they are already available, please use
order_with_card. Not reifiable.
val order_with_card : Var.SetFd.t -> Var.Fd.t -> Var.SetFd.t -> Var.Fd.t -> Cstr.t
order_with_card v1 card1 v2 card2 is equivalent to order but the cardinals
of the variables must be provided too. Useful to sort a set of variables.
val member : Var.SetFd.t -> SetDomain.elt list -> Cstr.t
member v l ensures that v will have a value in l. Not reifiable.
val sum_weight : Var.SetFd.t -> (int * int) list -> Var.Fd.t
sum_weight v weights returns an integer variable equal to the sum
of the weights associated with the value in v. weights must be a
list of pairs value, weight) that associates a unique weight to each
value possibly in v. All the weights must be positive integers.