sidekick/src/base/Sidekick_base.ml
2022-08-09 22:41:13 -04:00

49 lines
1.4 KiB
OCaml

(** Sidekick base
This library is a starting point for writing concrete implementations
of SMT solvers with Sidekick.
It provides a representation of terms, boolean formulas,
linear arithmetic expressions, datatypes for the functors in Sidekick.
In addition, it has a notion of {{!Base_types.Statement} Statement}.
Statements are instructions
for the SMT solver to do something, such as: define a new constant,
declare a new constant, assert a formula as being true,
set an option, check satisfiability of the set of statements added so far,
etc. Logic formats such as SMT-LIB 2.6 are in fact based on a similar
notion of statements, and a [.smt2] files contains a list of statements.
*)
module Types_ = Types_
module Term = Sidekick_core.Term
module Const = Sidekick_core.Const
module Ty = Ty
module ID = ID
module Form = Form
include Arith_types_
module Data_ty = Data_ty
module Cstor = Data_ty.Cstor
module Select = Data_ty.Select
module Statement = Statement
module Uconst = Uconst
(* TODO
module Value = Value
module Statement = Statement
module Data = Data
module Select = Select
module LRA_view = Types_.LRA_view
module LRA_pred = Base_types.LRA_pred
module LRA_op = Base_types.LRA_op
module LIA_view = Base_types.LIA_view
module LIA_pred = Base_types.LIA_pred
module LIA_op = Base_types.LIA_op
*)
(*
module Proof_quip = Proof_quip
*)