module Solver:sig
..end
type
solver
type
status =
| |
UNSATISFIABLE |
| |
UNKNOWN |
| |
SATISFIABLE |
val string_of_status : status -> string
val get_help : solver -> string
val set_parameters : solver -> Params.params -> unit
val get_param_descrs : solver -> Params.ParamDescrs.param_descrs
val get_num_scopes : solver -> int
val push : solver -> unit
Solver.pop
val pop : solver -> int -> unit
Solver.get_num_scopes
Solver.push
val reset : solver -> unit
val add : solver -> Expr.expr list -> unit
val assert_and_track_l : solver -> Expr.expr list -> Expr.expr list -> unit
Solver.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 -> unit
Solver.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 -> int
val get_assertions : solver -> Expr.expr list
val check : solver -> Expr.expr list -> status
val get_model : solver -> Model.model option
Check
.
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 option
Check
.
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 -> Expr.expr list
Check
.
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 -> string
Check
returned UNKNOWN
.val get_statistics : solver -> Statistics.statistics
val 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 -> solver
Solver.mk_solver
val mk_simple_solver : context -> solver
val 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