module Bddleaf:sig..end
type ('a, 'b) elt = {
|
guard : |
|
leaf : |
type('a, 'b)t =('a, 'b) elt list
val fold2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'aval iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit(elt1,elt2) with elt1 in
list1 and elt2 in list2. Iterates first of the first
list, then on the second.val check_unicity : is_equal:('b -> 'b -> bool) -> ('a, 'b) elt list -> boolFailure if problem, returns
true otherwise.
Checks that
val check_disjointness : ('a, 'b) elt list -> boolFailure if problem, returns
true otherwise. Checks that the guards are exclusive.val cons_unique : is_equal:('b -> 'b -> bool) ->
('a, 'b) elt ->
('a, 'b) elt list -> ('a, 'b) elt list
Assuming that the list argument satisfies the unicity
property, ensures it in the result
val append_unique : is_equal:('b -> 'b -> bool) ->
('a, 'b) elt list ->
('a, 'b) elt list -> ('a, 'b) elt list
Assuming that the first list argument satisfies the
unicity property, ensures it in the result
val cons_disjoint : is_equal:('b -> 'b -> bool) ->
merge:('b -> 'b -> 'b) ->
('a, 'b) elt ->
('a, 'b) elt list -> ('a, 'b) elt list
Assuming that the list argument satisfies the disjointness
(and unicity) property, ensures it in the result
val append_disjoint : is_equal:('b -> 'b -> bool) ->
merge:('b -> 'b -> 'b) ->
('a, 'b) elt list ->
('a, 'b) elt list -> ('a, 'b) elt list
Assuming that the first list argument satisfies the
disjointness (and unicity) property, ensures it in the
result
val cons : is_equal:('b -> 'b -> bool) ->
merge:('b -> 'b -> 'b) ->
unique:bool ->
disjoint:bool ->
('a, 'b) elt ->
('a, 'b) elt list -> ('a, 'b) elt listval append : is_equal:('b -> 'b -> bool) ->
merge:('b -> 'b -> 'b) ->
unique:bool ->
disjoint:bool ->
('a, 'b) elt list ->
('a, 'b) elt list -> ('a, 'b) elt listval make_unique : is_equal:('b -> 'b -> bool) ->
merge:('b -> 'b -> 'b) ->
disjoint:bool ->
('a, 'b) elt list -> ('a, 'b) elt listval guard : cudd:'a Cudd.Man.t -> ('a, 'b) t -> 'a Cudd.Bdd.t
Return the union of guards in the list