sig
module type PriorityNodeQueue =
sig
type t
val create : unit -> Bwd.PriorityNodeQueue.t
val pop : Bwd.PriorityNodeQueue.t -> Node.t
val push : Node.t -> Bwd.PriorityNodeQueue.t -> unit
val push_list : Node.t list -> Bwd.PriorityNodeQueue.t -> unit
val clear : Bwd.PriorityNodeQueue.t -> unit
val length : Bwd.PriorityNodeQueue.t -> int
val is_empty : Bwd.PriorityNodeQueue.t -> bool
end
type result =
Safe of Node.t list * Node.t list
| Unsafe of Node.t * Node.t list
module type Strategy =
sig
val search :
?invariants:Node.t list ->
?candidates:Node.t list -> Ast.t_system -> Bwd.result
end
module Make : functor (Q : PriorityNodeQueue) -> Strategy
module BFS : Strategy
module DFS : Strategy
module BFSH : Strategy
module DFSH : Strategy
module BFSA : Strategy
module DFSA : Strategy
module Selected : Strategy
end