sig
type 'a cond = [ `Apron of 'a Apronexpr.Condition.t ]
val print_cond :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b) Env.O.t ->
Format.formatter -> [< 'a Cond.cond ] -> unit
val compare_cond :
'a Bdd.Env.symbol -> [< 'a Cond.cond ] -> [< 'a Cond.cond ] -> int
val negate_cond :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b) Env.O.t ->
'a Cond.cond -> 'a Cond.cond
val support_cond :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b) Env.O.t ->
[< 'a Cond.cond ] -> 'a PSette.t
module O :
sig
type ('a, 'b) t = ('a, 'b, 'a Cond.cond, Cudd.Man.v) Bdd.Cond.t
constraint 'b =
('a, [> 'a Env.typ ] as 'c, [> 'a Env.typdef ] as 'd, 'e) Env.O.t
val make :
symbol:'a Bdd.Env.symbol ->
?bddindex0:int ->
?bddsize:int ->
Cudd.Man.vt ->
('a, ('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b) Env.O.t) Cond.O.t
end
type 'a t = ('a, 'a Env.t) Cond.O.t
val make :
symbol:'a Bdd.Env.symbol ->
?bddindex0:int -> ?bddsize:int -> Cudd.Man.vt -> 'a Cond.t
val copy : 'a Cond.t -> 'a Cond.t
val print : 'a Env.t -> Format.formatter -> 'a Cond.t -> unit
type ('a, 'b) value = ('a, 'b) Bdd.Cond.value = { cond : 'a; val1 : 'b; }
val make_value : 'a -> 'b -> ('a, 'b) Cond.value
val get_cond : ('a, 'b) Cond.value -> 'a
val get_val1 : ('a, 'b) Cond.value -> 'b
val get_env : ('a, ('b, 'c) Env.value) Cond.value -> 'b
val get_val0 : ('a, ('b, 'c) Env.value) Cond.value -> 'c
end