sig
type label = Var.t
type typ = [ `Benum of Var.t ]
type typdef = [ `Benum of Var.t array ]
type t = { typ : Var.t; reg : Bddreg.t; }
class type ['a, 'b] db =
object
constraint 'a = [> Bddenum.typ ]
constraint 'b = [> Bddenum.typdef ]
val v_manager : Manager.t
val mutable v_typdef : 'b Var.Map.t
val mutable v_vartyp : 'a Var.Map.t
method private add_label : Var.t -> 'a -> unit
method add_typ : Var.t -> 'b -> unit
method manager : Manager.t
method mem_typ : Var.t -> bool
method mem_var : Var.t -> bool
method set_typdef : 'b Var.Map.t -> unit
method set_vartyp : 'a Var.Map.t -> unit
method typ_of_var : Var.t -> 'a
method typdef : 'b Var.Map.t
method typdef_of_typ : Var.t -> 'b
method vartyp : 'a Var.Map.t
end
class ['a, 'b] make_db :
Manager.t ->
object
constraint 'a = [> Bddenum.typ ]
constraint 'b = [> Bddenum.typdef ]
val v_manager : Manager.t
val mutable v_typdef : 'b Var.Map.t
val mutable v_vartyp : 'a Var.Map.t
method private add_label : Var.t -> 'a -> unit
method add_typ : Var.t -> 'b -> unit
method manager : Manager.t
method mem_typ : Var.t -> bool
method mem_var : Var.t -> bool
method set_typdef : 'b Var.Map.t -> unit
method set_vartyp : 'a Var.Map.t -> unit
method typ_of_var : Var.t -> 'a
method typdef : 'b Var.Map.t
method typdef_of_typ : Var.t -> 'b
method vartyp : 'a Var.Map.t
end
val of_label :
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db ->
Bddenum.label -> Bddenum.t
val is_cst : Bddenum.t -> bool
val to_code : Bddenum.t -> int
val to_label :
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db ->
Bddenum.t -> Bddenum.label
val equal_label :
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db ->
Bddenum.t -> Bddenum.label -> Bdd.t
val equal :
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db ->
Bddenum.t -> Bddenum.t -> Bdd.t
val ite : Bdd.t -> Bddenum.t -> Bddenum.t -> Bddenum.t
val guard_of_label :
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db ->
Bddenum.t -> Bddenum.label -> Bdd.t
val guardlabels :
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db ->
Bddenum.t -> (Bdd.t * Bddenum.label) list
val print_db :
Format.formatter ->
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db -> unit
val print : (int -> string) -> Format.formatter -> Bddenum.t -> unit
val print_minterm :
(Format.formatter -> Bdd.t -> unit) ->
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db ->
Format.formatter -> Bddenum.t -> unit
val size_of_typ :
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db -> Var.t -> int
val maxcode_of_typ :
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db -> Var.t -> int
val mem_typcode :
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db ->
Var.t -> int -> bool
val labels_of_typ :
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db ->
Var.t -> Bddenum.label array
val code_of_label :
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db ->
Bddenum.label -> int
val label_of_typcode :
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db ->
Var.t -> int -> Bddenum.label
module Minterm :
sig
val iter :
([> Bddenum.typ ], [> Bddenum.typdef ]) #Bddenum.db ->
Var.t -> (Bddenum.label -> unit) -> Bddreg.Minterm.t -> unit
val map :
([> Bddenum.typ ] as 'a, [> Bddenum.typdef ]) #Bddenum.db ->
Var.t -> (Bddenum.label -> 'a) -> Bddreg.Minterm.t -> 'a list
end
end