sidekick/src/smt/Ty.mli

41 lines
741 B
OCaml

(** {1 Hashconsed Types} *)
open Solver_types
type t = Solver_types.ty
type view = Solver_types.ty_view
type def = Solver_types.ty_def
val id : t -> int
val view : t -> view
val prop : t
val atomic : def -> t list -> t
val atomic_uninterpreted : ID.t -> t
val card : t -> ty_card
val is_prop : t -> bool
val is_uninterpreted : t -> bool
include Intf.EQ with type t := t
include Intf.ORD with type t := t
include Intf.HASH with type t := t
include Intf.PRINT with type t := t
module Tbl : CCHashtbl.S with type key = t
module Fun : sig
type t = fun_ty
val args : t -> ty list
val ret : t -> ty
val arity : t -> int
val unfold : t -> ty list * ty
val mk : ty list -> ty -> t
include Intf.PRINT with type t := t
end