LinearTwoVarEqualityDomain.EqualitiesConjunctionmodule IntMap : sig ... endval show_formatted :
(IntMap.key -> string) ->
((Z.t * IntMap.key) option * Z.t * Z.t) IntMap.t ->
stringval show : ((Z.t * IntMap.key) option * Z.t * Z.t) IntMap.t -> stringval empty : unit -> int * 'a IntMap.tcreates a domain of dimension 0
val make_empty_conj : 'a -> 'a * 'b IntMap.tcreates a domain of dimension len without any valid equalities
val nontrivial : ('a * 'b IntMap.t) -> IntMap.key -> booltrivial equalities are of the form var_i = var_i and are not kept explicitely in the sparse representation of EquanlitiesConjunction
turn x = (cy+o)/d into y = (dx-o)/c
val get_rhs :
('a * ((Z.t * IntMap.key) option * Z.t * Z.t) IntMap.t) ->
IntMap.key ->
(Z.t * IntMap.key) option * Z.t * Z.tsparse implementation of get rhs for lhs, but will default to no mapping for sparse entries
set_rhs, staying loyal to immutable, sparse map underneath; do not attempt any normalization
val canonicalize_and_set :
('a * Rhs.t IntMap.t) ->
IntMap.key ->
((Z.t * int) option * Z.t * Z.t) ->
'a * Rhs.t IntMap.tcanonicalize equation, and set_rhs, staying loyal to immutable, sparse map underneath
val modify_variables_in_domain :
(IntMap.key * ((Z.t * IntMap.key) option * Z.t * Z.t) IntMap.t) ->
IntMap.key array ->
(IntMap.key -> int -> IntMap.key) ->
IntMap.key * ((Z.t * IntMap.key) option * Z.t * Z.t) IntMap.trequired by AbstractRelationalDomainRepresentation, true if dimension is zero
val is_top_con : ('a * 'b IntMap.t) -> boolval forget_variable :
('a * Rhs.t IntMap.t) ->
IntMap.key ->
'a * Rhs.t IntMap.tval dim_add :
Apron.Dim.change ->
(IntMap.key * ((Z.t * IntMap.key) option * Z.t * Z.t) IntMap.t) ->
IntMap.key * ((Z.t * IntMap.key) option * Z.t * Z.t) IntMap.tval dim_remove :
Apron.Dim.change ->
(IntMap.key * Rhs.t IntMap.t) ->
IntMap.key * Rhs.t IntMap.tval meet_with_one_conj :
('a * ((Z.t * IntMap.key) option * Z.t * Z.t) IntMap.t) ->
IntMap.key ->
((Z.t * IntMap.key) option * Z.t * Z.t) ->
'a * ((Z.t * IntMap.key) option * Z.t * Z.t) IntMap.tval affine_transform :
('a * Rhs.t IntMap.t) ->
IntMap.key ->
(Goblint_std.GobZ.t * IntMap.key * Goblint_std.GobZ.t * Goblint_std.GobZ.t) ->
'a * Rhs.t IntMap.taffine transform variable i allover conj with transformer (Some (coeff,i)+offs)/divi