Module Sidekick_base
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 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 Base_types : sig ... endBasic type definitions for Sidekick_base
module ID : sig ... endUnique Identifiers
module Fun = Base_types.Funmodule Stat = Sidekick_util.Statmodule Model : sig ... endModels
module Term = Base_types.Termmodule Value = Base_types.Valuemodule Term_cell = Base_types.Term_cellmodule Ty = Base_types.Tymodule Statement = Base_types.Statementmodule Data = Base_types.Datamodule Select = Base_types.Selectmodule Proof : sig ... endProofs of unsatisfiability
module Form : sig ... endFormulas (boolean terms).
module IArray = Sidekick_util.IArraymodule Arg : Sidekick_core.TERM with type Term.t = Term.t and type Fun.t = Fun.t and type Ty.t = Ty.t and type Term.store = Term.storeConcrete implementation of
Sidekick_core.TERM