sidekick/src/smtlib/Driver.mli
Simon Cruanes 08541613af
refactor: model building in smtlib, for smtlib
- sidekick.model removed, now just smtlib.Model (specific to it)
- use function entries for models, not just term->term
- re-building models in smtlib driver
- asolver.solve, in Check_res.t, does not return a concrete model, but a
  bundle of functions to query the solver
- store constants in smtlib typechecker AST (so we can directly map them
  to values in model construction)
2022-10-15 22:42:10 -04:00

34 lines
738 B
OCaml

(** Driver.
The driver is responsible for processing statements from a SMTLIB file,
and interacting with the solver based on the statement (asserting formulas,
calling "solve", etc.)
*)
module Asolver = Solver.Asolver
open Sidekick_base
val th_bool_dyn : Solver.theory
val th_bool_static : Solver.theory
val th_bool : Config.t -> Solver.theory
val th_data : Solver.theory
val th_lra : Solver.theory
val th_ty_unin : Solver.theory
type 'a or_error = ('a, string) CCResult.t
type t
(** The SMTLIB driver *)
val create :
?pp_cnf:bool ->
?proof_file:string ->
?pp_model:bool ->
?check:bool ->
?time:float ->
?memory:float ->
?progress:bool ->
Asolver.t ->
t
val process_stmt : t -> Statement.t -> unit or_error