sig
val apron_policy_print :
'a Apron.Policy.man ->
'b Bddapron.Env.t -> Format.formatter -> 'a Apron.Policy.t -> unit
module Dnf : sig type 'a t = 'a Bddapron.Cond.cond Bdd.Normalform.dnf end
module DDDnf :
sig
type 'a t = 'a Bddapron.Policy.Dnf.t Cudd.Mtbdd.t
type 'a table = 'a Bddapron.Policy.Dnf.t Cudd.Mtbdd.table
end
module DPolicy :
sig
type 'a t = {
hash : int;
dpolicy : 'a Apron.Policy.t Bdd.Normalform.disjunction;
}
type 'a table = 'a Bddapron.Policy.DPolicy.t Cudd.Mtbdd.table
end
module PMtbdddomain0 :
sig
type ('a, 'b) man = {
man : ('a, 'b) Bddapron.Mtbdddomain0.man;
papron : 'b Apron.Policy.man;
ptable : 'b Bddapron.Policy.DPolicy.table;
betable : 'a Bddapron.Policy.DDDnf.table;
symbol : 'a Bddapron.Env.symbol;
}
type 'a t = 'a Bddapron.Policy.DPolicy.t Cudd.Mtbdd.t
end
module PDomain0 :
sig
type ('a, 'b, 'c, 'd, 'e, 'f) man = {
man : ('a, 'b, 'c, 'd) Bddapron.Domain0.man;
pman : 'e;
print :
'e ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t -> Format.formatter -> 'f -> unit;
meet_condition_apply :
'e ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t -> 'f -> 'd -> 'a Bddapron.Expr0.Bool.t -> 'd;
meet_condition_improve :
'e ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t ->
'f option -> 'd -> 'a Bddapron.Expr0.Bool.t -> 'f;
}
end
module Domain1 :
sig
type ('a, 'b, 'c, 'd, 'e, 'f) man =
('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.PDomain0.man = {
man : ('a, 'b, 'c, 'd) Bddapron.Domain0.man;
pman : 'e;
print :
'e ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t -> Format.formatter -> 'f -> unit;
meet_condition_apply :
'e ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t -> 'f -> 'd -> 'a Bddapron.Expr0.Bool.t -> 'd;
meet_condition_improve :
'e ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t ->
'f option -> 'd -> 'a Bddapron.Expr0.Bool.t -> 'f;
}
type ('a, 'b) mtbdd =
('a, 'b, ('a, 'b) Bddapron.Mtbdddomain0.man,
'b Bddapron.Mtbdddomain0.t,
('a, 'b) Bddapron.Policy.PMtbdddomain0.man,
'b Bddapron.Policy.PMtbdddomain0.t)
Bddapron.Policy.Domain1.man
val manager_get_manager :
('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain1.man ->
('a, 'b, 'c, 'd) Bddapron.Domain0.man
val print :
('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain1.man ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t -> Format.formatter -> 'f -> unit
val meet_condition_apply :
('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain1.man ->
'a Bddapron.Cond.t ->
'f ->
('a, 'd) Bddapron.Domain1.t ->
'f Bddapron.Expr1.Bool.t -> ('a, 'd) Bddapron.Domain1.t
val meet_condition_improve :
('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain1.man ->
'a Bddapron.Cond.t ->
'f option ->
('a, 'd) Bddapron.Domain1.t -> 'f Bddapron.Expr1.Bool.t -> 'f
val meet_condition2_apply :
('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain1.man ->
'f ->
('a, 'd) Bddapron.Domain1.t ->
'a Bddapron.Expr2.Bool.t -> ('a, 'd) Bddapron.Domain1.t
val meet_condition2_improve :
('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain1.man ->
'f option ->
('a, 'd) Bddapron.Domain1.t -> 'a Bddapron.Expr2.Bool.t -> 'f
end
module Domain0 :
sig
type ('a, 'b, 'c, 'd, 'e, 'f) man =
('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.PDomain0.man = {
man : ('a, 'b, 'c, 'd) Bddapron.Domain0.man;
pman : 'e;
print :
'e ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t -> Format.formatter -> 'f -> unit;
meet_condition_apply :
'e ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t -> 'f -> 'd -> 'a Bddapron.Expr0.Bool.t -> 'd;
meet_condition_improve :
'e ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t ->
'f option -> 'd -> 'a Bddapron.Expr0.Bool.t -> 'f;
}
type ('a, 'b) mtbdd =
('a, 'b, ('a, 'b) Bddapron.Mtbdddomain0.man,
'b Bddapron.Mtbdddomain0.t,
('a, 'b) Bddapron.Policy.PMtbdddomain0.man,
'b Bddapron.Policy.PMtbdddomain0.t)
Bddapron.Policy.Domain0.man
val manager_get_manager :
('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain0.man ->
('a, 'b, 'c, 'd) Bddapron.Domain0.man
val print :
('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain0.man ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t -> Format.formatter -> 'f -> unit
val meet_condition_apply :
('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain0.man ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t -> 'f -> 'd -> 'a Bddapron.Expr0.Bool.t -> 'd
val meet_condition_improve :
('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain0.man ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t ->
'f option -> 'd -> 'a Bddapron.Expr0.Bool.t -> 'f
val make_mtbdd :
?global:bool ->
symbol:'a Bddapron.Env.symbol ->
'b Apron.Policy.man -> ('a, 'b) Bddapron.Policy.Domain0.mtbdd
end
module Mtbdddomain0 :
sig
type ('a, 'b) man =
('a, 'b) Bddapron.Policy.PMtbdddomain0.man = {
man : ('a, 'b) Bddapron.Mtbdddomain0.man;
papron : 'b Apron.Policy.man;
ptable : 'b Bddapron.Policy.DPolicy.table;
betable : 'a Bddapron.Policy.DDDnf.table;
symbol : 'a Bddapron.Env.symbol;
}
type 'a t = 'a Bddapron.Policy.PMtbdddomain0.t
val manager_get_manager :
('a, 'b) Bddapron.Policy.Mtbdddomain0.man ->
('a, 'b) Bddapron.Mtbdddomain0.man
val make_man :
?global:bool ->
symbol:'a Bddapron.Env.symbol ->
'b Apron.Policy.man -> ('a, 'b) Bddapron.Policy.Mtbdddomain0.man
val equal :
'a ->
'b Bddapron.Policy.Mtbdddomain0.t ->
'b Bddapron.Policy.Mtbdddomain0.t -> bool
val print :
('a, 'b) Bddapron.Policy.Mtbdddomain0.man ->
'c Bddapron.Env.t ->
'c Bddapron.Cond.t ->
Format.formatter -> 'b Bddapron.Policy.Mtbdddomain0.t -> unit
val meet_condition_apply :
('a, 'b) Bddapron.Policy.Mtbdddomain0.man ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t ->
'b Bddapron.Policy.Mtbdddomain0.t ->
'b Bddapron.Mtbdddomain0.t ->
'a Bddapron.Expr0.Bool.t -> 'b Bddapron.Mtbdddomain0.t
val meet_condition_improve :
('a, 'b) Bddapron.Policy.Mtbdddomain0.man ->
'a Bddapron.Env.t ->
'a Bddapron.Cond.t ->
'b Bddapron.Policy.Mtbdddomain0.t option ->
'b Bddapron.Mtbdddomain0.t ->
'a Bddapron.Expr0.Bool.t -> 'b Bddapron.Policy.Mtbdddomain0.t
end
end