Module Conjunto


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.