sig
type t
val name : Goals.t -> string
val fprint : Pervasives.out_channel -> Goals.t -> unit
val fail : Goals.t
val success : Goals.t
val atomic : ?name:string -> (unit -> unit) -> Goals.t
val create : ?name:string -> ('a -> Goals.t) -> 'a -> Goals.t
val create_rec : ?name:string -> (Goals.t -> Goals.t) -> Goals.t
val ( &&~ ) : Goals.t -> Goals.t -> Goals.t
val ( ||~ ) : Goals.t -> Goals.t -> Goals.t
val forto : int -> int -> (int -> Goals.t) -> Goals.t
val fordownto : int -> int -> (int -> Goals.t) -> Goals.t
val once : Goals.t -> Goals.t
val sigma : ?domain:Domain.t -> (Var.Fd.t -> Goals.t) -> Goals.t
val unify : Var.Fd.t -> int -> Goals.t
val indomain : Var.Fd.t -> Goals.t
val instantiate : (Domain.t -> int) -> Var.Fd.t -> Goals.t
val dichotomic : Var.Fd.t -> Goals.t
module Conjunto : sig val indomain : Var.SetFd.t -> Goals.t end
module Array :
sig
val foralli :
?select:('a array -> int) ->
(int -> 'a -> Goals.t) -> 'a array -> Goals.t
val forall :
?select:('a array -> int) -> ('a -> Goals.t) -> 'a array -> Goals.t
val existsi :
?select:('a array -> int) ->
(int -> 'a -> Goals.t) -> 'a array -> Goals.t
val exists :
?select:('a array -> int) -> ('a -> Goals.t) -> 'a array -> Goals.t
val choose_index :
(Var.Attr.t -> Var.Attr.t -> bool) -> Var.Fd.t array -> int
val not_instantiated_fd : Var.Fd.t array -> int
val labeling : Var.Fd.t array -> Goals.t
end
module List :
sig
val forall :
?select:('a list -> 'a * 'a list) ->
('a -> Goals.t) -> 'a list -> Goals.t
val exists :
?select:('a list -> 'a * 'a list) ->
('a -> Goals.t) -> 'a list -> Goals.t
val member : Var.Fd.t -> int list -> Goals.t
val labeling : Var.Fd.t list -> Goals.t
end
type bb_mode = Restart | Continue
val minimize :
?step:int ->
?mode:Goals.bb_mode -> Goals.t -> Var.Fd.t -> (int -> unit) -> Goals.t
val lds : ?step:int -> Goals.t -> Goals.t
val solve : ?control:(int -> unit) -> Goals.t -> bool
val reset : unit -> unit
end