AffineEqualityDomain.Dmodule Vc : SparseVector.SparseVectorFunctormodule Mx : ListMatrix.SparseMatrixFunctorinclude sig ... endinclude sig ... endmodule Vector : sig ... endmodule Matrix : sig ... endval hash : t -> intval empty_env : GobApron.Environment.tval bot : unit -> tval get_env : t -> GobApron.Environment.tval 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 of_int : int -> Mpqf.tmodule Bounds : sig ... endmodule V = RelationDomain.Vmodule Arg : sig ... endmodule Convert : sig ... endtype var = V.tval show : t -> stringval 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 is_bot : t -> Ppx_deriving_runtime.boolval bot_env : tval is_bot_env : t -> boolval top : unit -> tval is_top : t -> boolval is_top_env : t -> boolval remove_rels_with_var :
Matrix.t ->
Apron.Var.t ->
GobApron.Environment.t ->
Matrix.tval assign_texpr :
VarManagement(Vc)(Mx).t ->
Apron.Var.t ->
Apron.Texpr1.expr ->
VarManagement(Vc)(Mx).tval assign_exp :
Queries.ask ->
VarManagement(Vc)(Mx).t ->
GobApron.Var.t ->
GoblintCil.Cil.exp ->
bool Stdlib.Lazy.t ->
VarManagement(Vc)(Mx).tval assign_var :
VarManagement(Vc)(Mx).t ->
GobApron.Var.t ->
GobApron.Var.t ->
VarManagement(Vc)(Mx).tval assign_var_parallel : t -> (Apron.Var.t * GobApron.Var.t) list -> tval assign_var_parallel_with : t -> (Apron.Var.t * GobApron.Var.t) list -> unitval assign_var_parallel' : t -> Apron.Var.t list -> GobApron.Var.t list -> tval substitute_exp :
Queries.ask ->
t ->
GobApron.Var.t ->
GoblintCil.Cil.exp ->
bool Stdlib.Lazy.t ->
tAssert a constraint expression.
The overflow is completely handled by the flag "no_ov", which is set in relationAnalysis.ml via the function no_overflow. In case of a potential overflow, "no_ov" is set to false and Convert.tcons1_of_cil_exp will raise the exception Unsupported_CilExp Overflow
val meet_tcons : 'a -> t -> GobApron.Tcons1.t -> 'b -> tval assert_constraint :
Queries.ask ->
Bounds.t ->
GoblintCil.exp ->
bool ->
bool Stdlib.Lazy.t ->
tval invariant : t -> GobApron.Lincons1.t listval cil_exp_of_lincons1 : GobApron.Lincons1.t -> GoblintCil.Cil.exp optionval env : t -> GobApron.Environment.ttype marshal = t