sig
  type t
  module V = Linear.QQVector
  val enum :
    Polyhedron.t ->
    [ `EqZero of V.t | `LeqZero of V.t | `LtZero of V.t ] BatEnum.t
  val pp : 'CoordinateSystem.t -> Format.formatter -> Polyhedron.t -> unit
  val conjoin : Polyhedron.t -> Polyhedron.t -> Polyhedron.t
  val top : Polyhedron.t
  val of_formula :
    ?admit:bool -> 'CoordinateSystem.t -> 'Syntax.formula -> Polyhedron.t
  val to_formula : 'CoordinateSystem.t -> Polyhedron.t -> 'Syntax.formula
  val to_apron :
    'CoordinateSystem.t ->
    'SrkApron.Env.t ->
    'abs Apron.Manager.t -> Polyhedron.t -> ('a, 'abs) SrkApron.property
  val mem : (int -> QQ.t) -> Polyhedron.t -> bool
  val of_implicant :
    ?admit:bool ->
    'CoordinateSystem.t -> 'Syntax.formula list -> Polyhedron.t
  val implicant_of :
    'CoordinateSystem.t -> Polyhedron.t -> 'Syntax.formula list
  val local_project :
    (int -> QQ.t) -> int list -> Polyhedron.t -> Polyhedron.t
  val project : int list -> Polyhedron.t -> Polyhedron.t
  val try_fourier_motzkin :
    'CoordinateSystem.t ->
    (Syntax.symbol -> bool) -> Polyhedron.t -> Polyhedron.t
end