ApronDomain.D2module Man = Manmodule V : RelationDomain.RVinclude sig ... endmodule AO0 : sig ... endmodule Bounds = AO0.Boundsmodule Arg = AO0.Argmodule Convert = AO0.Convertval envop :
(Apron.Environment.t -> 'a -> Apron.Environment.t) ->
Man.mt A.t ->
'a ->
unitval add_vars_with : Man.mt A.t -> Apron.Var.t list -> unitval keep_vars_with : Man.mt A.t -> Apron.Var.t list -> unitval keep_filter_with : Man.mt A.t -> (Apron.Var.t -> bool) -> unitval forget_vars_with : Man.mt A.t -> Apron.Var.t list -> unitval assign_exp_with :
Queries.ask ->
Bounds.t ->
Apron.Var.t ->
GoblintCil.Cil.exp ->
bool Stdlib.Lazy.t ->
unitval assign_exp_parallel_with :
Queries.ask ->
Man.mt A.t ->
(Apron.Var.t * GoblintCil.Cil.exp) list ->
bool ->
unitval assign_var_with : Man.mt A.t -> Apron.Var.t -> Apron.Var.t -> unitval substitute_exp_with :
Queries.ask ->
Bounds.t ->
Apron.Var.t ->
GoblintCil.Cil.exp ->
bool Stdlib.Lazy.t ->
unitval substitute_exp_parallel_with :
Queries.ask ->
Man.mt A.t ->
(Apron.Var.t * GoblintCil.Cil.exp) list ->
bool Stdlib.Lazy.t ->
unitval substitute_var_with : Man.mt A.t -> Apron.Var.t -> Apron.Var.t -> unitval meet_tcons : 'a -> Man.mt A.t -> GobApron.Tcons1.t -> 'b -> Man.mt A.tval to_lincons_array : Man.mt A.t -> Apron.Lincons1.earrayval of_lincons_array : Apron.Lincons1.earray -> Man.mt A.tinclude SLattice with type t = Man.mt A.tinclude SPrintable with type t = Man.mt A.tinclude Printable.S with type t = Man.mt A.tval top_env : GobApron.Environment.t -> Man.mt A.tval bot_env : GobApron.Environment.t -> Man.mt A.tval is_top_env : Man.mt A.t -> boolinclude Lattice.S with type t := Man.mt A.tinclude Lattice.PO with type t := Man.mt A.tinclude Printable.S with type t := Man.mt A.tinclude Lattice.Bot with type t := Man.mt A.tinclude Lattice.Top with type t := Man.mt A.tinclude RelationDomain.S3
with type t = Man.mt A.t
and type var = GobApron.Var.tinclude RelationDomain.S2
with type t = Man.mt A.t
with type var = GobApron.Var.ttype t = Man.mt A.ttype var = GobApron.Var.tmodule Tracked : RelationDomain.Trackedinclude Lattice.S with type t := tinclude Lattice.PO with type t := twiden x y assumes leq x y. Solvers guarantee this by calling widen old (join old new).
val is_bot_env : t -> boolRemove variables in-place. This avoids an extra copy like remove_vars if the input relation is unshared.
Filter variables in-place. This avoids an extra copy like remove_filter if the input relation is unshared.
Lazy bool no_ov parameter has been added to functions where functions of the Convert module are used. This is to also to make used of the improved overflow handling.
val assign_exp :
Queries.ask ->
t ->
var ->
GoblintCil.exp ->
bool Stdlib.Lazy.t ->
tAssign variables in parallel in-place. This avoids an extra copy like assign_var_parallel' if the input relation is unshared.
val substitute_exp :
Queries.ask ->
t ->
var ->
GoblintCil.exp ->
bool Stdlib.Lazy.t ->
tval assert_inv :
Queries.ask ->
t ->
GoblintCil.exp ->
bool ->
bool Stdlib.Lazy.t ->
tval eval_int :
Queries.ask ->
t ->
GoblintCil.exp ->
bool Stdlib.Lazy.t ->
ValueDomainQueries.ID.tval cil_exp_of_lincons1 : GobApron.Lincons1.t -> GoblintCil.exp optionval invariant : t -> GobApron.Lincons1.t list