sidekick/src/smt/Term_cell.mli
2019-02-16 15:08:49 -06:00

38 lines
731 B
OCaml

open Solver_types
type 'a view = 'a Solver_types.term_view =
| Bool of bool
| App_cst of cst * 'a IArray.t
| Eq of 'a * 'a
| If of 'a * 'a * 'a
type t = term view
val equal : t -> t -> bool
val hash : t -> int
val true_ : t
val false_ : t
val const : cst -> t
val app_cst : cst -> term IArray.t -> t
val eq : term -> term -> t
val if_ : term -> term -> term -> t
val ty : t -> Ty.t
(** Compute the type of this term cell. Not totally free *)
val pp : t Fmt.printer
module type ARG = sig
type t
val hash : t -> int
val equal : t -> t -> bool
val pp : t Fmt.printer
end
module Make_eq(X : ARG) : sig
val equal : X.t view -> X.t view -> bool
val hash : X.t view -> int
val pp : X.t view Fmt.printer
end