ApronDomain.DWithOpsinclude module type of struct include D endinclude 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 -> boolval is_bot_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.tval hash : Man.mt A.t -> intval show : Man.mt A.t -> stringval printXml : 'a BatInnerIO.output -> Man.mt A.t -> unitval to_yojson : Man.mt A.t -> Yojson.Safe.tval tag : Man.mt A.t -> intUnique ID, given by HConsed, for context identification in witness
val arbitrary : unit -> Man.mt A.t QCheck.arbitrarywiden x y assumes leq x y. Solvers guarantee this by calling widen old (join old new).
include Lattice.Bot with type t := Man.mt A.tval bot : unit -> Man.mt A.tval is_bot : Man.mt A.t -> boolinclude Lattice.Top with type t := Man.mt A.tval top : unit -> Man.mt A.tval is_top : Man.mt A.t -> boolinclude sig ... endmodule AO0 : sig ... endmodule Bounds = AO0.Boundsmodule Arg = AO0.Argmodule Convert = AO0.Converttype var = GobApron.Var.ttype marshal = Man.mt Goblint_lib__.GobApron.Abstract0.t * string arrayval 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 remove_vars_with : Man.mt A.t -> Apron.Var.t list -> unitval remove_filter_with : Man.mt A.t -> (Apron.Var.t -> bool) -> 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 assign_var_parallel_with :
Man.mt A.t ->
(Apron.Var.t * Apron.Var.t) list ->
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.tval cil_exp_of_lincons1 : GobApron.Lincons1.t -> GoblintCil.Cil.exp optiontype t = AO0.tval add_vars : t -> GobApron.Var.t list -> tval remove_vars : t -> GobApron.Var.t list -> tval remove_filter : t -> (GobApron.Var.t -> bool) -> tval keep_vars : t -> GobApron.Var.t list -> tval keep_filter : t -> (GobApron.Var.t -> bool) -> tval forget_vars : t -> GobApron.Var.t list -> tval assign_exp :
Queries.ask ->
t ->
GobApron.Var.t ->
GoblintCil.exp ->
bool Stdlib.Lazy.t ->
tval assign_var : t -> GobApron.Var.t -> GobApron.Var.t -> tval substitute_exp :
Queries.ask ->
t ->
GobApron.Var.t ->
GoblintCil.exp ->
bool Stdlib.Lazy.t ->
tinclude module type of struct include RelationCil.Tracked endval eval_interval :
'a ->
Man.mt A.t ->
Apron.Texpr1.t ->
Z.t option * Z.t optionval assert_constraint :
Queries.ask ->
AO0.Bounds.t ->
GoblintCil.exp ->
bool ->
bool Stdlib.Lazy.t ->
Man.mt A.tAssert a constraint expression.
LAnd, LOr, LNot are directly supported by Apron domain in order to confirm logic-containing Apron invariants from witness while deep-query is disabled
val invariant : Man.mt A.t -> GobApron.Lincons1Set.elt list