module type Level1 =sig
..end
type ('a, 'b)
man
'b
indicates the
underlying APRON abstract domain, as in type 'b
Apron.Abstract0.t
, and 'a
the type of symbols.type 'b
t0
type('a, 'b)
t =('a Bddapron.Env.t, 'b t0) Bddapron.Env.value
val get_env : ('a, 'b) t -> 'a Bddapron.Env.t
val to_level0 : ('a, 'b) t -> 'b t0
val of_level0 : 'a Bddapron.Env.t ->
'b t0 -> ('a, 'b) t
val size : ('a, 'b) man ->
('a, 'b) t -> int
val print : ?print_apron:((int -> string) ->
Format.formatter -> 'b Apron.Abstract0.t -> unit) ->
Format.formatter -> ('a, 'b) t -> unit
val bottom : ('a, 'b) man ->
'a Bddapron.Env.t -> ('a, 'b) t
val top : ('a, 'b) man ->
'a Bddapron.Env.t -> ('a, 'b) t
val of_apron : ('a, 'b) man ->
'a Bddapron.Env.t ->
'b Apron.Abstract1.t -> ('a, 'b) t
val of_bddapron : ('a, 'b) man ->
'a Bddapron.Env.t ->
('a Bddapron.Expr1.Bool.t * 'b Apron.Abstract1.t) list ->
('a, 'b) t
val is_bottom : ('a, 'b) man ->
('a, 'b) t -> bool
val is_top : ('a, 'b) man ->
('a, 'b) t -> bool
val is_leq : ('a, 'b) man ->
('a, 'b) t ->
('a, 'b) t -> bool
val is_eq : ('a, 'b) man ->
('a, 'b) t ->
('a, 'b) t -> bool
val to_bddapron : ('a, 'b) man ->
('a, 'b) t ->
('a Bddapron.Expr1.Bool.t * 'b Apron.Abstract1.t) list
Conversion to a disjunction of a conjunction of pair of a
purely Boolean formula (without numerical constraints) and
an APRON abstract value
val meet : ('a, 'b) man ->
('a, 'b) t ->
('a, 'b) t ->
('a, 'b) t
val join : ('a, 'b) man ->
('a, 'b) t ->
('a, 'b) t ->
('a, 'b) t
val meet_condition : ('a, 'b) man ->
'a Bddapron.Cond.t ->
('a, 'b) t ->
'a Bddapron.Expr1.Bool.t -> ('a, 'b) t
val meet_condition2 : ('a, 'b) man ->
('a, 'b) t ->
'a Bddapron.Expr2.Bool.t -> ('a, 'b) t
val assign_lexpr : ?relational:bool ->
?nodependency:bool ->
('a, 'b) man ->
'a Bddapron.Cond.t ->
('a, 'b) t ->
'a list ->
'a Bddapron.Expr1.t list ->
('a, 'b) t option ->
('a, 'b) t
val assign_listexpr2 : ?relational:bool ->
?nodependency:bool ->
('a, 'b) man ->
('a, 'b) t ->
'a list ->
'a Bddapron.Expr2.List.t ->
('a, 'b) t option ->
('a, 'b) t
val substitute_lexpr : ('a, 'b) man ->
'a Bddapron.Cond.t ->
('a, 'b) t ->
'a list ->
'a Bddapron.Expr1.t list ->
('a, 'b) t option ->
('a, 'b) t
val substitute_listexpr2 : ('a, 'b) man ->
('a, 'b) t ->
'a list ->
'a Bddapron.Expr2.List.t ->
('a, 'b) t option ->
('a, 'b) t
val forget_list : ('a, 'b) man ->
('a, 'b) t ->
'a list -> ('a, 'b) t
val widening : ('a, 'b) man ->
('a, 'b) t ->
('a, 'b) t ->
('a, 'b) t
val widening_threshold : ('a, 'b) man ->
('a, 'b) t ->
('a, 'b) t ->
Apron.Lincons1.earray -> ('a, 'b) t
val change_environment : ('a, 'b) man ->
('a, 'b) t ->
'a Bddapron.Env.t -> ('a, 'b) t
Change the environment (eliminate (forget) variables not
belonging to the new environment, and introduce new
variables)
val rename : ('a, 'b) man ->
('a, 'b) t ->
('a * 'a) list -> ('a, 'b) t
val unify : ('a, 'b) man ->
('a, 'b) t ->
('a, 'b) t ->
('a, 'b) t
This is equivalent to change the environment to the lce, and
to perform meet.