sidekick/src/th-bool-dyn/intf.ml

29 lines
682 B
OCaml

open Sidekick_core
module SMT = Sidekick_smt_solver
module Simplify = Sidekick_simplify
type term = Term.t
type ty = Term.t
(** Boolean-oriented view of terms *)
type 'a bool_view = 'a Bool_view.t =
| B_bool of bool
| B_not of 'a
| B_and of 'a list
| B_or of 'a list
| B_imply of 'a * 'a
| B_equiv of 'a * 'a
| B_xor of 'a * 'a
| B_eq of 'a * 'a
| B_neq of 'a * 'a
| B_ite of 'a * 'a * 'a
| B_atom of 'a
(** Argument to the theory *)
module type ARG = sig
val view_as_bool : term -> term bool_view
(** Project the term into the boolean view. *)
val mk_bool : Term.store -> term bool_view -> term
(** Make a term from the given boolean view. *)
end