AffineEqualityDomain.D
module Vc : VectorMatrix.AbstractVector
module Mx : VectorMatrix.AbstractMatrix
include module type of struct include Printable.Std end
Default dummy definitions.
Include as the first thing to avoid these overriding actual definitions.
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 change_d : t -> GobApron.Environment.t -> add:bool -> del:bool -> 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 ->
bool ->
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