LinearTwoVarEqualityDomain.VarManagementVarManagement defines the type t of the affine equality domain (a record that contains an optional matrix and an apron environment) and provides the functions needed for handling variables (which are defined by RelationDomain.D2) such as add_vars, remove_vars. Furthermore, it provides the function simplified_monomials_from_texp that converts an apron expression into a list of monomials of reference variables and a constant offset
module EConj = EqualitiesConjunctioninclude sig ... endval hash : t -> intval empty_env : GobApron.Environment.tval bot : unit -> tval get_env : t -> GobApron.Environment.tval bot_env : tval is_bot_env : t -> boolval dimchange2_add : t -> GobApron.Environment.t -> tval dimchange2_remove : t -> GobApron.Environment.t -> tval vars : t -> Apron.Var.t listval remove_vars_with : t -> Apron.Var.t list -> unitval remove_filter_with : t -> (Apron.Var.t -> bool) -> unitval mem_var : t -> Apron.Var.t -> boolval dim_add :
Apron.Dim.change ->
(EConj.IntMap.key
* ((Z.t * EConj.IntMap.key) option * Z.t * Z.t) EConj.IntMap.t) ->
EConj.IntMap.key
* ((Z.t * EConj.IntMap.key) option * Z.t * Z.t) EConj.IntMap.tval size : t -> intval monomials_from_texp :
t ->
Apron.Texpr1.expr ->
((Goblint_std.GobZ.t * Apron.Dim.t) option
* Goblint_std.GobZ.t
* Goblint_std.GobZ.t)
list
optionParses a Texpr to obtain a (coefficient, variable) pair list to repr. a sum of a variables that have a coefficient. If variable is None, the coefficient represents a constant offset.
val simplified_monomials_from_texp :
t ->
GobApron.Texpr1.Expr.t ->
((Z.t * Batteries.Int.t * Z.t) list * (Z.t * Z.t)) optionval simplify_to_ref_and_offset :
t ->
GobApron.Texpr1.Expr.t ->
((Z.t * Batteries.Int.t) option * Z.t * Z.t) optionval assign_const :
t ->
EConj.IntMap.key ->
Goblint_std.GobZ.t ->
Goblint_std.GobZ.t ->
t