1. Overview
  2. Docs

Signature for theories to be given to the CDCL(T) solver

type t

The plugin state itself

module Formula : FORMULA


type proof
val push_level : t -> unit

Create a new backtrack level

val pop_levels : t -> int -> unit

Pop n levels of the theory

val partial_check : t -> (void, Formula.t, void, proof) acts -> unit

Assume the formulas in the slice, possibly using the slice to push new formulas to be propagated or to raising a conflict or to add new lemmas.

val final_check : t -> (void, Formula.t, void, proof) acts -> unit

Called at the end of the search in case a model has been found. If no new clause is pushed, then proof search ends and "sat" is returned; if lemmas are added, search is resumed; if a conflict clause is added, search backtracks and then resumes.