Sidekick_base_solver.SolverSMT solver, obtained from Sidekick_smt_solver
module T : sig ... endmodule Lit : sig ... endtype proof = Solver_arg.prooftype proof_step = Solver_arg.proof_stepmodule P : sig ... endmodule Solver_internal : sig ... endtype solver = ttype term = T.Term.ttype ty = T.Ty.ttype lit = Lit.tmodule Registry : sig ... endval registry : t -> Registry.tmodule type THEORY = sig ... endtype theory = (module THEORY)val mk_theory :
name:string ->
create_and_setup:( Solver_internal.t -> 'th ) ->
?push_level:( 'th -> unit ) ->
?pop_levels:( 'th -> int -> unit ) ->
unit ->
theorymodule Model : sig ... endmodule Unknown : sig ... endval stats : t -> Sidekick_util.Stat.tval tst : t -> T.Term.storeval ty_st : t -> T.Ty.storeval create :
?stat:Sidekick_util.Stat.t ->
?size:[ `Big | `Small | `Tiny ] ->
proof:proof ->
theories:theory list ->
T.Term.store ->
T.Ty.store ->
unit ->
tval add_clause : t -> lit Sidekick_util.IArray.t -> proof_step -> unitval add_clause_l : t -> lit list -> proof_step -> unittype res = Sidekick_smt_solver.Make(Solver_arg).res = | Sat of Model.t | ||
| Unsat of {
} | ||
| Unknown of Unknown.t |
val pop_assumptions : t -> int -> unittype propagation_result =
Sidekick_smt_solver.Make(Solver_arg).propagation_result =
| PR_sat | |
| PR_conflict of {
} | |
| PR_unsat of {
} |
val check_sat_propagations_only :
assumptions:lit list ->
t ->
propagation_resultval pp_stats : t CCFormat.printer