next node: SetByBSTOfSetByBST,
prev node: SetByBSTMap,
up to node: Subsystem Sets By Binary Search Trees


SetByBSTConstr

Constructing sets from two other differently typed sets.

Signature of SetByBSTConstr

List of Import References :
See BOOL
See BSTree
See DENOTATION
See Nat
See Option
See Pair
See Seq
See SetByBST
See Tree
See Union2

SIGNATURE SetByBSTConstr[data1 , < :data1 ** data1 -> bool, data2, 

$Date: 2010-09-30 18:24:17 +0200 (Do, 30. Sep 2010) $ ($Revision: 616 $)

                           < :data2 ** data2 -> bool]

IMPORT SetByBST[data1, <] ONLY set
       SetByBST[data2, <] ONLY set
       Pair[data1, data2] ONLY pair
       Union2[data1, data2] ONLY union
       SetByBST[pair[data1, data2], <] ONLY set
       SetByBST[union[data1, data2], <] ONLY set

Parameter

data1 and data2 are the respective element types, < are total strict orders: the formula ALL x y. ~(x < y) AND ~(y < x) => x === y must hold.

SORT data1 data2
FUN < :data1 ** data1 -> bool
FUN < :data2 ** data2 -> bool

       
-- $Cartesian Product$
/* @code{x in A and y in B <=> x & y in A x B} */
FUN x : set[data1, <] ** set[data2, <] -> set[pair, <]

/* The necessary order on the elements of the cartesian product. */
FUN < : pair ** pair -> bool

-- $Disjoint Union$
/* @code{x in A and y in B <=> data1(x) in A U B and data2(y) in A U
B} */ 
FUN U : set[data1, <] ** set[data2, <] -> set[union, <]

The necessary order an the elements of the disjoint union.

FUN < : union ** union -> bool


next node: SetByBSTOfSetByBST,
prev node: SetByBSTMap,
up to node: Subsystem Sets By Binary Search Trees