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 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