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