Solver.Solver_internalmodule T : sig ... endmodule Lit : sig ... endtype ty = T.Ty.ttype term = T.Term.ttype value = T.Term.ttype term_store = T.Term.storetype ty_store = T.Ty.storetype clause_pool =
Sidekick_smt_solver.Make(Solver_arg).Solver_internal.clause_pooltype proof = prooftype proof_step = proof_stepmodule P : sig ... endtype solver = tval tst : t -> term_storeval stats : t -> Sidekick_util.Stat.tmodule Registry : sig ... endval registry : t -> Registry.ttype theory_actions =
Sidekick_smt_solver.Make(Solver_arg).Solver_internal.theory_actionstype lit = Lit.tmodule CC : sig ... endmodule Simplify : sig ... endtype simplify_hook = Simplify.hookval add_simplifier : t -> Simplify.hook -> unitval simplify_t : t -> term -> (term * proof_step) optionval simp_t : t -> term -> term * proof_step optionmodule type PREPROCESS_ACTS = sig ... endtype preprocess_actions = (module PREPROCESS_ACTS)type preprocess_hook = t -> preprocess_actions -> term -> unitval on_preprocess : t -> preprocess_hook -> unitval raise_conflict : t -> theory_actions -> lit list -> proof_step -> 'aval push_decision : t -> theory_actions -> lit -> unitval propagate :
t ->
theory_actions ->
lit ->
reason:( unit -> lit list * proof_step ) ->
unitval propagate_l : t -> theory_actions -> lit -> lit list -> proof_step -> unitval add_clause_temp : t -> theory_actions -> lit list -> proof_step -> unitval add_clause_permanent :
t ->
theory_actions ->
lit list ->
proof_step ->
unitval mk_lit : t -> theory_actions -> ?sign:bool -> term -> litval add_lit : t -> theory_actions -> ?default_pol:bool -> lit -> unitval add_lit_t : t -> theory_actions -> ?sign:bool -> term -> unitval cc_raise_conflict_expl : t -> theory_actions -> CC.Expl.t -> 'aval cc_merge : t -> theory_actions -> CC.N.t -> CC.N.t -> CC.Expl.t -> unitval cc_merge_t : t -> theory_actions -> term -> term -> CC.Expl.t -> unitval on_cc_post_merge :
t ->
( CC.t -> theory_actions -> CC.N.t -> CC.N.t -> unit ) ->
unitval on_cc_propagate :
t ->
( CC.t -> lit -> ( unit -> lit list * proof_step ) -> unit ) ->
unitval on_partial_check :
t ->
( t -> theory_actions -> lit Iter.t -> unit ) ->
unitval on_final_check : t -> ( t -> theory_actions -> lit Iter.t -> unit ) -> unitval on_th_combination :
t ->
( t -> theory_actions -> (term * value) Iter.t ) ->
unitval declare_pb_is_incomplete : t -> unitval on_model :
?ask:model_ask_hook ->
?complete:model_completion_hook ->
t ->
unit