Module LLTerm.Form

type t = term
type view = private
| True
| False
| Or of t list
| And of t list
| Not of t
| Equiv of t * t
| Xor of t * t
| Imply of t * t
| Atom of t
| Eq of t * t
| Neq of t * t
| Int_pred of Z.t linexp * Int_op.t
| Rat_pred of Q.t linexp * Rat_op.t
| Forall of {
ty_var : ty;
body : t;
}
| Exists of {
ty_var : ty;
body : t;
}
val view : t -> view
val pp : t CCFormat.printer
val true_ : t
val false_ : t
val eq : t -> t -> t
val neq : t -> t -> t
val not_ : t -> t
val and_ : t list -> t
val or_ : t list -> t
val imply : t -> t -> t
val equiv : t -> t -> t
val xor : t -> t -> t
val int_pred : Linexp_int.t -> Int_op.t -> t
val rat_pred : Linexp_rat.t -> Rat_op.t -> t
val forall : ty_var:ty -> t -> t
val exists : ty_var:ty -> t -> t