module Solver:sig..end
type solver
type status =
| |
UNSATISFIABLE |
| |
UNKNOWN |
| |
SATISFIABLE |
val string_of_status : status -> string
module Statistics:sig..end
val get_help : solver -> stringval set_parameters : solver -> Params.params -> unitval get_param_descrs : solver -> Params.ParamDescrs.param_descrsval get_num_scopes : solver -> int
val push : solver -> unitSolver.popval pop : solver -> int -> unitSolver.get_num_scopes
Solver.pushval reset : solver -> unitval add : solver -> Expr.expr list -> unitval assert_and_track_l : solver -> Expr.expr list -> Expr.expr list -> unitSolver.check with assumptions for
* extracting unsat cores.
* Both APIs can be used in the same solver. The unsat core will contain a
* combination
* of the Boolean variables provided using Solver.assert_and_track
* and the Boolean literals
* provided using Solver.check with assumptions.val assert_and_track : solver -> Expr.expr -> Expr.expr -> unitSolver.check with assumptions for
* extracting unsat cores.
* Both APIs can be used in the same solver. The unsat core will contain a
* combination
* of the Boolean variables provided using Solver.assert_and_track
* and the Boolean literals
* provided using Solver.check with assumptions.val get_num_assertions : solver -> intval get_assertions : solver -> Expr.expr listval check : solver -> Expr.expr list -> statusval get_model : solver -> Model.model optionCheck.
The result is None if Check was not invoked before,
if its results was not SATISFIABLE, or if model production is not enabled.
val get_proof : solver -> Expr.expr optionCheck.
The result is null if Check was not invoked before,
if its results was not UNSATISFIABLE, or if proof production is disabled.
val get_unsat_core : solver -> AST.ast listCheck.
The unsat core is a subset of Assertions
The result is empty if Check was not invoked before,
if its results was not UNSATISFIABLE, or if core production is disabled.
val get_reason_unknown : solver -> stringCheck returned UNKNOWN.val get_statistics : solver -> Statistics.statisticsval mk_solver : context -> Symbol.symbol option -> solver
This solver also uses a set of builtin tactics for handling the first
check-sat command, and check-sat commands that take more than a given
number of milliseconds to be solved.
val mk_solver_s : context -> string -> solverSolver.mk_solverval mk_simple_solver : context -> solverval mk_solver_t : context -> Tactic.tactic -> solver
The solver supports the commands Push and Pop, but it
will always solve each check from scratch.
val to_string : solver -> string