bool.mli 910 Bytes
 Pietro Abate committed Oct 05, 2007 1 2 ``````module type S = sig `````` 3 4 `````` include Custom.T type elem `````` Pietro Abate committed Oct 05, 2007 5 `````` `````` 6 `````` val get: t -> (elem list * elem list) list `````` Pietro Abate committed Oct 05, 2007 7 `````` `````` 8 9 10 11 12 13 `````` val empty : t val full : t val cup : t -> t -> t val cap : t -> t -> t val diff : t -> t -> t val atom : elem -> t `````` Pietro Abate committed Oct 05, 2007 14 `````` `````` 15 `````` val iter: (elem-> unit) -> t -> unit `````` Pietro Abate committed Oct 05, 2007 16 `````` `````` Kim Nguyễn committed Mar 18, 2015 17 `````` val compute: empty:'b -> full:'b -> cup:('b -> 'b -> 'b) `````` Pietro Abate committed Oct 05, 2007 18 `````` -> cap:('b -> 'b -> 'b) -> diff:('b -> 'b -> 'b) -> `````` 19 `````` atom:(elem -> 'b) -> t -> 'b `````` Pietro Abate committed Oct 05, 2007 20 `````` `````` 21 `````` val trivially_disjoint : t -> t -> bool `````` Pietro Abate committed Oct 05, 2007 22 23 ``````end `````` 24 ``````module Make (X : Custom.T) : S with type elem = X.t `````` Pietro Abate committed Oct 05, 2007 25 `````` `````` 26 27 ``````module type V = sig `````` Pietro Abate committed Oct 05, 2007 28 `````` `````` 29 30 31 32 33 34 35 36 37 38 39 `````` module Atom : S include S with type elem = Atom.t Var.var_or_atom val var : Var.t -> t (** returns the union of all leaves in the BDD *) val leafconj: t -> Atom.t val is_empty : t -> bool `````` Pietro Abate committed Oct 05, 2007 40 `````` `````` 41 `````` val extract : t -> [ `Empty | `Full | `Split of (elem * t * t * t) ] `````` Pietro Abate committed Oct 05, 2007 42 `````` `````` Pietro Abate committed Oct 05, 2007 43 44 ``````end `````` 45 ``module MakeVar (T : S) : V with module Atom = T and type elem = T.t Var.var_or_atom``