/[svn]/types/boolean.mli
ViewVC logotype

Contents of /types/boolean.mli

Parent Directory Parent Directory | Revision Log Revision Log


Revision 653 - (show annotations)
Tue Jul 10 17:51:13 2007 UTC (5 years, 10 months ago) by abate
File size: 1156 byte(s)
[r2003-09-14 19:36:06 by cvscast] Cleaning + upgrade to OCaml 3.07+beta2 (use recursive modules)

Original author: cvscast
Date: 2003-09-14 19:36:10+00:00
1 (* Implementation of boolean combination in disjunctive normal form (dnf).
2 A dnf is a disjunction of lines, each line consisting of a
3 conjunction of atoms and negations of atoms.
4
5 A line is coded as a pair (p,n) where p collects atoms and n
6 the negated atoms. p and n are disjoint and sorted lists without duplicates
7 (w.r.t Pervasives.compare).
8
9 A dnf is coded as a sorted list of lines without duplicated
10 (w.r.t Pervasives.compare).
11 *)
12
13 module Make(X : Custom.T) :
14 sig
15 include Custom.T
16 type elem = X.t
17
18 external get: t -> (X.t list * X.t list) list = "%identity"
19
20 val empty : t
21 val full : t
22 val cup : t -> t -> t
23 val cap : t -> t -> t
24 val diff : t -> t -> t
25 val atom : X.t -> t
26
27 val map : (X.t -> X.t) -> t -> t
28 val iter: (X.t -> unit) -> t -> unit
29 val compute: empty:'d -> full:'c -> cup:('d -> 'c -> 'd)
30 -> cap:('c -> 'b -> 'c) -> diff:('c -> 'b -> 'c) ->
31 atom:(X.t -> 'b) -> t -> 'd
32 val compute_bool: (X.t -> t) -> t -> t
33
34 val print: string -> (Format.formatter -> X.t -> unit) -> t ->
35 (Format.formatter -> unit) list
36
37
38 val trivially_disjoint : t -> t -> bool
39 end

CVS Admin">CVS Admin
ViewVC Help
Powered by ViewVC 1.1.5