type t = termtype view = | True | 
| False | 
| Atom of t | 
| Eq of t * t | 
| Neq of t * t | 
| Equiv of t * t | 
| Xor of t * t | 
| Imply of t * t | 
| And of t list | 
| Or of t list | 
| Not of t | 
| Forall of t Var.t * t | 
| Exists of t Var.t * t | 
val view : t -> view
val true_ : tval false_ : tval atom : t -> tval eq : ?loc:location -> t -> t -> tval neq : ?loc:location -> t -> t -> tval equiv : ?loc:location -> t -> t -> tval xor : ?loc:location -> t -> t -> tval imply : ?loc:location -> t -> t -> tval and_ : ?loc:location -> t list -> tval or_ : ?loc:location -> t list -> tval not_ : ?loc:location -> t -> tval ite : ?loc:location -> t -> t -> t -> tval forall : ?loc:location -> t Var.t -> t -> tval exists : ?loc:location -> t Var.t -> t -> tval eq_or_equiv : t -> t -> tval neq_or_xor : t -> t -> tval forall_l : ?loc:location -> t Var.t list -> t -> tval exists_l : ?loc:location -> t Var.t list -> t -> tval unfold_binder : Binder.t -> t -> t Var.t list * tval unfold_forall : t -> t Var.t list * tval close_forall : ?loc:location -> t -> tval box_opaque : t -> tval is_var : view -> bool