sig
  type 'a term = Mpqf.t * 'a
  type 'a t = { cst : Mpqf.t; lterm : 'Bddapron.Apronexpr.Lin.term list; }
  val normalize :
    'Bddapron.Apronexpr.symbol ->
    'Bddapron.Apronexpr.Lin.t -> 'Bddapron.Apronexpr.Lin.t
  val compare_lterm :
    'Bddapron.Apronexpr.symbol ->
    'Bddapron.Apronexpr.Lin.term list ->
    'Bddapron.Apronexpr.Lin.term list -> int
  val compare :
    'Bddapron.Apronexpr.symbol ->
    'Bddapron.Apronexpr.Lin.t -> 'Bddapron.Apronexpr.Lin.t -> int
  val var : '-> 'Bddapron.Apronexpr.Lin.t
  val zero : 'Bddapron.Apronexpr.Lin.t
  val one : 'Bddapron.Apronexpr.Lin.t
  val cst : Mpqf.t -> 'Bddapron.Apronexpr.Lin.t
  val add :
    'Bddapron.Apronexpr.symbol ->
    'Bddapron.Apronexpr.Lin.t ->
    'Bddapron.Apronexpr.Lin.t -> 'Bddapron.Apronexpr.Lin.t
  val sub :
    'Bddapron.Apronexpr.symbol ->
    'Bddapron.Apronexpr.Lin.t ->
    'Bddapron.Apronexpr.Lin.t -> 'Bddapron.Apronexpr.Lin.t
  val scale :
    Mpqf.t -> 'Bddapron.Apronexpr.Lin.t -> 'Bddapron.Apronexpr.Lin.t
  val negate : 'Bddapron.Apronexpr.Lin.t -> 'Bddapron.Apronexpr.Lin.t
  val support :
    'Bddapron.Apronexpr.symbol ->
    'Bddapron.Apronexpr.Lin.t -> 'PSette.t
  val substitute_by_var :
    'Bddapron.Apronexpr.symbol ->
    'Bddapron.Apronexpr.Lin.t ->
    ('a, 'a) PMappe.t -> 'Bddapron.Apronexpr.Lin.t
  val normalize_as_constraint :
    'Bddapron.Apronexpr.Lin.t -> 'Bddapron.Apronexpr.Lin.t
  val print :
    'Bddapron.Apronexpr.symbol ->
    Format.formatter -> 'Bddapron.Apronexpr.Lin.t -> unit
  val of_linexpr0 :
    'Bddapron.Apronexpr.symbol ->
    Apron.Environment.t -> Apron.Linexpr0.t -> 'Bddapron.Apronexpr.Lin.t
  val of_linexpr1 :
    'Bddapron.Apronexpr.symbol ->
    Apron.Linexpr1.t -> 'Bddapron.Apronexpr.Lin.t
  val to_linexpr0 :
    'Bddapron.Apronexpr.symbol ->
    Apron.Environment.t -> 'Bddapron.Apronexpr.Lin.t -> Apron.Linexpr0.t
  val to_linexpr1 :
    'Bddapron.Apronexpr.symbol ->
    Apron.Environment.t -> 'Bddapron.Apronexpr.Lin.t -> Apron.Linexpr1.t
end