sig
  type t
  val bot : Formula.t
  val top : Formula.t
  val lit : Literal.t -> Formula.t
  val conj : Formula.t -> Formula.t -> Formula.t
  val disj : Formula.t -> Formula.t -> Formula.t
  val xor : Formula.t -> Formula.t -> Formula.t
  val equiv : Formula.t -> Formula.t -> Formula.t
  val imply : Formula.t -> Formula.t -> Formula.t
  val to_string : Formula.t -> string
  val to_dimacs : Formula.t -> string
  val print : Formula.t -> unit
  val print_cnf : Formula.t -> unit
  val print_dimacs : Formula.t -> unit
  val to_cnf : Formula.t -> Formula.t
end