mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-09 12:45:48 -05:00
42 lines
810 B
OCaml
42 lines
810 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
|
|
| Not of '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 not_ : term -> t
|
|
|
|
val ty : t -> Ty.t
|
|
(** Compute the type of this term cell. Not totally free *)
|
|
|
|
val pp : t Fmt.printer
|
|
|
|
val iter : ('a -> unit) -> 'a view -> unit
|
|
|
|
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
|