diff --git a/src/cdsat/core.ml b/src/cdsat/core.ml index 398b131c..9fad43a4 100644 --- a/src/cdsat/core.ml +++ b/src/cdsat/core.ml @@ -26,16 +26,18 @@ end type t = { tst: Term.store; vst: TVar.store; + stats: Stat.t; trail: Trail.t; plugins: Plugin.t Vec.t; mutable last_res: Check_res.t option; proof_tracer: Proof.Tracer.t; } -let create tst vst ~proof_tracer () : t = +let create ?(stats = Stat.create ()) tst vst ~proof_tracer () : t = { tst; vst; + stats; trail = Trail.create (); plugins = Vec.create (); last_res = None; @@ -53,6 +55,7 @@ let[@inline] vst self = self.vst let add_ty (_self : t) ~ty:_ : unit = () let assert_clause (self : t) lits p : unit = assert false let assert_term (self : t) t : unit = assert false +let pp_stats out self = Stat.pp out self.stats let solve ?on_exit ?on_progress ?should_stop ~assumptions (self : t) : Check_res.t = @@ -73,6 +76,7 @@ let as_asolver (self : t) : Asolver.t = method assert_term t : unit = assert_term self t method last_res = self.last_res method proof_tracer = self.proof_tracer + method pp_stats out () = pp_stats out self method solve ?on_exit ?on_progress ?should_stop ~assumptions () : Check_res.t = diff --git a/src/cdsat/core.mli b/src/cdsat/core.mli index eb399a89..b96a6b99 100644 --- a/src/cdsat/core.mli +++ b/src/cdsat/core.mli @@ -35,7 +35,12 @@ end type t val create : - Term.store -> TVar.store -> proof_tracer:Sidekick_proof.Tracer.t -> unit -> t + ?stats:Stat.t -> + Term.store -> + TVar.store -> + proof_tracer:Sidekick_proof.Tracer.t -> + unit -> + t (** Create new solver *) val tst : t -> Term.store diff --git a/src/cdsat/sidekick_cdsat.ml b/src/cdsat/sidekick_cdsat.ml index 284bd31c..69462df7 100644 --- a/src/cdsat/sidekick_cdsat.ml +++ b/src/cdsat/sidekick_cdsat.ml @@ -4,3 +4,4 @@ module Trail = Trail module TVar = TVar module Reason = Reason module Value = Value +module Core = Core