AffineEqualityDomain.D
module Vc : SparseVector.SparseVectorFunctor
module Mx : ListMatrix.SparseMatrixFunctor
include sig ... end
include sig ... end
module Vector : sig ... end
module Matrix : sig ... end
val hash : t -> int
val empty_env : GobApron.Environment.t
val bot : unit -> t
val get_env : t -> GobApron.Environment.t
val dimchange2_add : t -> GobApron.Environment.t -> t
val dimchange2_remove : t -> GobApron.Environment.t -> t
val vars : t -> Apron.Var.t list
val remove_vars_with : t -> Apron.Var.t list -> unit
val remove_filter_with : t -> (Apron.Var.t -> bool) -> unit
val mem_var : t -> Apron.Var.t -> bool
val of_int : int -> Mpqf.t
module Bounds : sig ... end
module V = RelationDomain.V
module Arg : sig ... end
module Convert : sig ... end
type var = V.t
val show : t -> string
val pretty : unit -> t -> GoblintCil.Pretty.doc
val printXml : 'a BatInnerIO.output -> t -> unit
val eval_interval :
'a ->
Bounds.t ->
GobApron.Texpr1.t ->
Z.t option * Z.t option
val is_bot : t -> Ppx_deriving_runtime.bool
val bot_env : t
val is_bot_env : t -> bool
val top : unit -> t
val is_top : t -> bool
val is_top_env : t -> bool
val remove_rels_with_var :
Matrix.t ->
Apron.Var.t ->
GobApron.Environment.t ->
Matrix.t
val assign_texpr :
VarManagement(Vc)(Mx).t ->
Apron.Var.t ->
Apron.Texpr1.expr ->
VarManagement(Vc)(Mx).t
val assign_exp :
Queries.ask ->
VarManagement(Vc)(Mx).t ->
GobApron.Var.t ->
GoblintCil.Cil.exp ->
bool Stdlib.Lazy.t ->
VarManagement(Vc)(Mx).t
val assign_var :
VarManagement(Vc)(Mx).t ->
GobApron.Var.t ->
GobApron.Var.t ->
VarManagement(Vc)(Mx).t
val assign_var_parallel : t -> (Apron.Var.t * GobApron.Var.t) list -> t
val assign_var_parallel_with : t -> (Apron.Var.t * GobApron.Var.t) list -> unit
val assign_var_parallel' : t -> Apron.Var.t list -> GobApron.Var.t list -> t
val substitute_exp :
Queries.ask ->
t ->
GobApron.Var.t ->
GoblintCil.Cil.exp ->
bool Stdlib.Lazy.t ->
t
Assert 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 -> t
val assert_constraint :
Queries.ask ->
Bounds.t ->
GoblintCil.exp ->
bool ->
bool Stdlib.Lazy.t ->
t
val invariant : t -> GobApron.Lincons1.t list
val cil_exp_of_lincons1 : GobApron.Lincons1.t -> GoblintCil.Cil.exp option
val env : t -> GobApron.Environment.t
type marshal = t