module Abstract0:APRON Abstract value of level 0sig
..end
type
t
val set_gc : int -> unit
val copy : Manager.t -> t -> t
val size : Manager.t -> t -> int
val minimize : Manager.t -> t -> unit
val canonicalize : Manager.t -> t -> unit
val approximate : Manager.t -> t -> int -> unit
approximate man abs alg
perform some transformation on the abstract value, guided by the argument alg
. The transformation may lose information. The argument alg
overrides the field algorithm of the structure of type Manager.funopt
associated to ap_abstract0_approximate (commodity feature).val is_minimal : Manager.t -> t -> Manager.tbool
val is_canonical : Manager.t -> t -> Manager.tbool
val fdump : Manager.t -> t -> unit
stdout
C stream the internal representation of an abstract value, for debugging purposesval print : (int -> string) -> Format.formatter -> t -> unit
val bottom : Manager.t -> int -> int -> t
val top : Manager.t -> int -> int -> t
val of_box : Manager.t -> int -> int -> Interval.t array -> t
of_box man intdim realdim array
abstracts an hypercube defined by the array of intervals of size intdim+realdim
val of_lincons_array : Manager.t -> int -> int -> Lincons0.t array -> t
of_lincons_array man intdim realdim array
abstracts the convex polyhedron defined by the array of constraints with an abstract value having the specified number of integer and real dimensions.
val dimension : Manager.t -> t -> Dim.dimension
val manager : t -> Manager.t
val is_bottom : Manager.t -> t -> Manager.tbool
val is_top : Manager.t -> t -> Manager.tbool
val is_leq : Manager.t -> t -> t -> Manager.tbool
val is_eq : Manager.t -> t -> t -> Manager.tbool
val sat_lincons : Manager.t -> t -> Lincons0.t -> Manager.tbool
val sat_interval : Manager.t -> t -> Dim.t -> Interval.t -> Manager.tbool
dim in interval
?val is_dimension_unconstrained : Manager.t -> t -> Dim.t -> Manager.tbool
val bound_dimension : Manager.t -> t -> Dim.t -> Interval.t
val bound_linexpr : Manager.t -> t -> Linexpr0.t -> Interval.t
Implement a form of linear programming, where the argument linear expression is the one to optimize under the constraints induced by the abstract value.
val to_box : Manager.t -> t -> Interval.t array
val to_lincons_array : Manager.t -> t -> Lincons0.t array
val to_generator_array : Manager.t -> t -> Generator0.t array
val meet : Manager.t -> t -> t -> t
val meet_array : Manager.t -> t array -> t
val meet_lincons_array : Manager.t -> t -> Lincons0.t array -> t
val join : Manager.t -> t -> t -> t
val join_array : Manager.t -> t array -> t
val add_ray_array : Manager.t -> t -> Generator0.t array -> t
The generators should either lines or rays, not vertices.
val meet_with : Manager.t -> t -> t -> unit
val meet_lincons_array_with : Manager.t -> t -> Lincons0.t array -> unit
val join_with : Manager.t -> t -> t -> unit
val add_ray_array_with : Manager.t -> t -> Generator0.t array -> unit
val assign_linexpr : Manager.t ->
t -> Dim.t -> Linexpr0.t -> t option -> t
val substitute_linexpr : Manager.t ->
t -> Dim.t -> Linexpr0.t -> t option -> t
val assign_linexpr_array : Manager.t ->
t ->
Dim.t array -> Linexpr0.t array -> t option -> t
val substitute_linexpr_array : Manager.t ->
t ->
Dim.t array -> Linexpr0.t array -> t option -> t
val assign_linexpr_with : Manager.t -> t -> Dim.t -> Linexpr0.t -> t option -> unit
val substitute_linexpr_with : Manager.t -> t -> Dim.t -> Linexpr0.t -> t option -> unit
val assign_linexpr_array_with : Manager.t ->
t -> Dim.t array -> Linexpr0.t array -> t option -> unit
val substitute_linexpr_array_with : Manager.t ->
t -> Dim.t array -> Linexpr0.t array -> t option -> unit
val forget_array : Manager.t -> t -> Dim.t array -> bool -> t
val forget_array_with : Manager.t -> t -> Dim.t array -> bool -> unit
val add_dimensions : Manager.t -> t -> Dim.change -> bool -> t
val remove_dimensions : Manager.t -> t -> Dim.change -> t
val permute_dimensions : Manager.t -> t -> Dim.perm option -> t
val add_dimensions_with : Manager.t -> t -> Dim.change -> bool -> unit
val remove_dimensions_with : Manager.t -> t -> Dim.change -> unit
val permute_dimensions_with : Manager.t -> t -> Dim.perm option -> unit
val expand : Manager.t -> t -> Dim.t -> int -> t
expand a dim n
expands the dimension dim
into itself + n
additional dimensions. It results in (n+1) unrelated dimensions having
same relations with other dimensions. The (n+1) dimensions are put as
follows:
dim
val fold : Manager.t -> t -> Dim.t array -> t
fold a tdim
fold the dimensions in the array tdim
of size n>=1
and put the result in the first dimension of the array. The other
dimensions of the array are then removed (using
ap_abstract0_permute_remove_dimensions).val expand_with : Manager.t -> t -> Dim.t -> int -> unit
val fold_with : Manager.t -> t -> Dim.t array -> unit
val widening : Manager.t -> t -> t -> t
val widening_threshold : Manager.t -> t -> t -> Lincons0.t array -> t
val closure : Manager.t -> t -> t
val closure_with : Manager.t -> t -> unit
val print_array : ?first:(unit, Format.formatter, unit) Pervasives.format ->
?sep:(unit, Format.formatter, unit) Pervasives.format ->
?last:(unit, Format.formatter, unit) Pervasives.format ->
(Format.formatter -> 'a -> unit) -> Format.formatter -> 'a array -> unit