mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-11 13:38:43 -05:00
- 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)
34 lines
738 B
OCaml
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
|