LinearTwoVarEqualityDomain.Dinclude sig ... endval of_int : int -> Mpqf.tinclude module type of struct include VarManagement endmodule EConj = VarManagement.EConjinclude 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 ->
tmodule Bounds = ExpressionBoundsmodule V = RelationDomain.Vmodule Arg : sig ... endmodule Convert : sig ... endtype var = V.tval is_bot : t -> Ppx_deriving_runtime.boolt.d is some empty array and env is empty
val top_of : GobApron.Environment.t -> tforall x_i in env, x_i:=X_i+0
val top : unit -> tenv = \emptyset, d = Some(||)
val is_top : t -> boolis_top returns true for top_of array and empty array; precondition: t.env and t.d are of same size
val is_top_env : t -> boolval show_var : GobApron.Environment.t -> Apron.Dim.t -> stringval show : t -> stringprints the current variable equalities with resolved variable names
val pretty : unit -> t -> GoblintCil.Pretty.docval printXml : 'a BatInnerIO.output -> t -> unitval eval_interval :
'a ->
Bounds.t ->
GobApron.Texpr1.t ->
Z.t option * Z.t optionval meet_with_one_conj :
t ->
EConj.IntMap.key ->
((Z.t * Apron.Dim.t) option * Z.t * Z.t) ->
tval assign_texpr :
VarManagement.t ->
Apron.Var.t ->
GobApron.Texpr1.Expr.t ->
tval assign_exp :
Queries.ask ->
VarManagement.t ->
GobApron.Var.t ->
GoblintCil.Cil.exp ->
bool Stdlib.Lazy.t ->
tval assign_var : VarManagement.t -> GobApron.Var.t -> GobApron.Var.t -> tval assign_var_parallel : t -> (GobApron.Var.t * GobApron.Var.t) list -> tval assign_var_parallel_with :
t ->
(GobApron.Var.t * GobApron.Var.t) list ->
unitval assign_var_parallel' : t -> GobApron.Var.t list -> GobApron.Var.t list -> tval substitute_exp :
Queries.ask ->
t ->
GobApron.Var.t ->
GoblintCil.Cil.exp ->
bool Stdlib.Lazy.t ->
tval meet_tcons :
'a ->
t ->
GobApron.Tcons1.t ->
GoblintCil.exp ->
bool Stdlib.Lazy.t ->
tval assert_constraint :
Queries.ask ->
Bounds.t ->
GoblintCil.Cil.exp ->
bool ->
bool Stdlib.Lazy.t ->
tval invariant : t -> GobApron.Lincons1.t listrepresentation as C expression
This function returns all the equalities that are saved in our datastructure t.
Lincons -> linear constraint
val cil_exp_of_lincons1 : GobApron.Lincons1.t -> GoblintCil.Cil.exp optionval env : t -> GobApron.Environment.ttype marshal = t