Module Make.CQueue

Priority queues on clauses

module C : module type of C with type t = C.t
val register_conjecture_clause : C.t -> unit
module WeightFun : sig ... end
module PriorityFun : sig ... end
type t

A priority queue.

val add : t -> C.t -> bool

Add a clause to the Queue; returns true if clause was actually added

val add_seq : t -> C.t Iter.t -> unit

Add clauses to the queue

val length : t -> int

Number of elements

val is_empty : t -> bool

check whether the queue is empty

val take_first : t -> C.t

Take first element of the queue, or raise Not_found

val name : t -> string

Name of the implementation/role of the queue

Available Queues
val bfs : unit -> t

FIFO

val almost_bfs : unit -> t

Half FIFO, half default

val explore : unit -> t

Use heuristics for selecting "small" clauses

val ground : unit -> t

Favor positive unit clauses and ground clauses

val goal_oriented : unit -> t

custom weight function that favors clauses that are "close" to initial conjectures. It is fair.

val default : unit -> t

Obtain the default queue

val of_profile : ClauseQueue_intf.profile -> t

Select the queue corresponding to the given profile

val all_clauses : t -> C.t Iter.t

All clauses stored in the queue, in no particular order

val mem_cl : t -> C.t -> bool

is the clause present in the passive set?

val remove : t -> C.t -> bool

ignore the clause in the queue, and make sure it is never returned with the call to take_first(); returns true if clause was actually removed

IO
val pp : t CCFormat.printer
val to_string : t -> string