Module Apronexpr.Lin


module Lin: sig .. end

type 'a term = Mpqf.t * 'a 

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