sig
  type t
  val fprint : Format.formatter -> t -> unit
  val order : t -> t -> bool
  val top : t
  val bottom : t
  val join : t -> t -> t
  val meet : t -> t -> t
  val widening : t -> t -> t
  val sem_itv : int -> int -> t
  val sem_plus : t -> t -> t
  val sem_minus : t -> t -> t
  val sem_times : t -> t -> t
  val sem_div : t -> t -> t
  val sem_guard : t -> t
  val backsem_plus : t -> t -> t -> t * t
  val backsem_minus : t -> t -> t -> t * t
  val backsem_times : t -> t -> t -> t * t
  val backsem_div : t -> t -> t -> t * t
end