Module type Msat.PLUGIN_MCSAT
include Solver_intf.EXPR
module Term : sig ... end
module Value : sig ... end
module Formula : Solver_intf.FORMULA
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 -> (Term.t, Formula.t, Value.t, proof) Solver_intf.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 -> (Term.t, Formula.t, Value.t, proof) Solver_intf.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.
val iter_assignable : t -> (Term.t -> unit) -> Formula.t -> unit
An iterator over the subTerm.ts of a Formula.t that should be assigned a value (usually the poure subTerm.ts)
val eval : t -> Formula.t -> Term.t Solver_intf.eval_res
Returns the evaluation of the Formula.t in the current assignment