MinisatBindings to Minisat.
module Lit : sig ... endtype assumptions = Lit.t arrayval create : unit -> tCreate a fresh solver state.
val okay : t -> booltrue if the solver isn't known to be in an unsat state
Add a clause (as an array of literals) to the solver state.
val simplify : t -> unitPerform simplifications on the solver state. Speeds up later manipulations on the solver state, e.g. calls to solve.
val solve : ?assumptions:assumptions -> t -> unitCheck whether the current solver state is satisfiable, additionally assuming that the literals provided in assumptions are assigned to true. After solve terminates (raising Unsat or not), the solver state is unchanged: the literals in assumptions are only considered to be true for the duration of the query.
val string_of_value : value -> stringReturns the assignment level for this literal at level 0, if assigned there, or V_undef. If lit is not assigned at level 0, this returns V_undef even when the literal has a value in the current model.
Returns the subset of assumptions of a solver that returned "unsat" when called with solve ~assumptions s.
val set_verbose : t -> int -> unitVerbose mode.
val interrupt : t -> unitInterrupt the solver, typically from another thread.
val clear_interrupt : t -> unitClear interrupt flag so that we can use the solver again.
val n_clauses : t -> intval n_vars : t -> intval n_conflicts : t -> intmodule Debug : sig ... end