Module Sidekick_core
Main Signatures
Theories and concrete solvers rely on an environment that defines several important types:
- sorts
- terms (to represent logic expressions and formulas)
- a congruence closure instance
- a bridge to some SAT solver
In this module we define most of the main signatures used throughout Sidekick.
module CC_view : sig ... endView terms through the lens of the Congruence Closure
module type TERM = sig ... endMain representation of Terms and Types
module type PROOF = sig ... endmodule type LIT = sig ... endLiterals
module type CC_ACTIONS = sig ... endActions provided to the congruence closure.
module type CC_ARG = sig ... endArguments to a congruence closure's implementation
module type CC_S = sig ... endSignature of the congruence closure
module type SOLVER_INTERNAL = sig ... endA view of the solver from a theory's point of view.
module type SOLVER = sig ... endUser facing view of the solver
module type MONOID_ARG = sig ... endHelper for the congruence closure
module Monoid_of_repr : functor (M : MONOID_ARG) -> sig ... endState for a per-equivalence-class monoid.