Module Environment


module Environment: sig .. end
APRON Environments binding dimensions to names


type typvar =
| INT
| REAL
type t 

APRON Environments binding dimensions to names
val make : Var.t array -> Var.t array -> t
Making an environment from a set of integer and real variables. Raise Failure in case of name conflict.
val add : t -> Var.t array -> Var.t array -> t
Adding to an environment a set of integer and real variables. Raise Failure in case of name conflict.
val remove : t -> Var.t array -> Var.t array -> t
Remove from an environment a set of integer and real variables. Raise Failure in case of non-existing variables.
val equal : t -> t -> bool
Test equality if two environments
val compare : t -> t -> int
Compare two environment. compare env1 env2 return -2 if the environements are not compatible (a variable has different types in the 2 environements), -1 if env1 is a subset of env2, 0 if equality, +1 if env1 is a superset of env2, and +2 otherwise (the lce exists and is a strict superset of both)
val dimension : t -> Dim.dimension
Return the dimension of the environment
val size : t -> int
Return the size of the environment
val typ_of_var : t -> Var.t -> typvar
Return the type of variables in the environment. If the variable does not belong to the environment, raise a Failure exception.
val vars : t -> Var.t array * Var.t array
Return the (lexicographically ordered) sets of integer and real variables in the environment
val var_of_dim : t -> Dim.t -> Var.t
Return the variable corresponding to the given dimension in the environment. Raise Failure is the dimension is out of the range of the environment (greater than or equal to dim env)
val dim_of_var : t -> Var.t -> Dim.t
Return the dimension associated to the given variable in the environment. Raise Failure if the variable does not belong to the environment.
val print : ?first:(unit, Format.formatter, unit) Pervasives.format ->
?sep:(unit, Format.formatter, unit) Pervasives.format ->
?last:(unit, Format.formatter, unit) Pervasives.format ->
Format.formatter -> t -> unit
Printing