sig
type 'a typ = [ `Benum of 'a ]
type 'a typdef = [ `Benum of 'a array ]
type 'a t = { typ : string; reg : 'a Reg.t; }
type dt = Cudd.Man.d Enum.t
type vt = Cudd.Man.v Enum.t
val of_label :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t ->
'a -> 'b Enum.t
val is_cst : 'a Enum.t -> bool
val to_code : 'a Enum.t -> int
val to_label :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t ->
'b Enum.t -> 'a
val equal_label :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t ->
'b Enum.t -> 'a -> 'b Cudd.Bdd.t
val equal :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t ->
'b Enum.t -> 'b Enum.t -> 'b Cudd.Bdd.t
val ite : 'a Cudd.Bdd.t -> 'a Enum.t -> 'a Enum.t -> 'a Enum.t
val guard_of_label :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t ->
'b Enum.t -> 'a -> 'b Cudd.Bdd.t
val guardlabels :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t ->
'b Enum.t -> ('b Cudd.Bdd.t * 'a) list
val cofactor : 'a Enum.t -> 'a Cudd.Bdd.t -> 'a Enum.t
val restrict : 'a Enum.t -> 'a Cudd.Bdd.t -> 'a Enum.t
val tdrestrict : 'a Enum.t -> 'a Cudd.Bdd.t -> 'a Enum.t
val print :
(Format.formatter -> int -> unit) ->
Format.formatter -> 'a Enum.t -> unit
val print_minterm :
(Format.formatter -> 'a Cudd.Bdd.t -> unit) ->
('b, [> 'b Env.typ ], [> 'b Env.typdef ], 'a, 'c) Env.O.t ->
Format.formatter -> 'a Enum.t -> unit
val size_of_typ :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t -> 'a -> int
val maxcode_of_typ :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t -> 'a -> int
val mem_typcode :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t ->
'a -> int -> bool
val labels_of_typ :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t ->
'a -> 'a array
val code_of_label :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t -> 'a -> int
val label_of_typcode :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t ->
'a -> int -> 'a
module Minterm :
sig
val iter :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t ->
'a -> ('a -> unit) -> Reg.Minterm.t -> unit
val map :
('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t ->
'a -> ('a -> 'd) -> Reg.Minterm.t -> 'd list
end
val permute : ?memo:Cudd.Memo.t -> 'a Enum.t -> int array -> 'a Enum.t
val varmap : 'a Enum.t -> 'a Enum.t
val vectorcompose :
?memo:Cudd.Memo.t -> 'a Cudd.Bdd.t array -> 'a Enum.t -> 'a Enum.t
end