mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-06 03:05:31 -05:00
29 lines
682 B
OCaml
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
|