(* SAC Set definition module. *) DEFINITION MODULE SACSET; FROM MASSTOR IMPORT LIST; PROCEDURE LBIBMS(L: LIST): LIST; (*List of beta-integers bubble-merge sort. L is an arbitrary list of beta-integers, possibly with repetitions. M is the result of sorting L into non-decreasing order. A combination of bubble-sort and merge- sort is used. The list L is modified to produce M.*) PROCEDURE LBIBS(L: LIST); (*List of beta-integers bubble sort. L is an arbitrary list of beta-integers, with possible repetitions. L is sorted into non-decreasing order by the bubble-sort method. The list L, though not its location, is modified.*) PROCEDURE LBIM(L1,L2: LIST): LIST; (*List of beta-integers merge. L1 and L2 are arbitrary lists of beta-integers in non-decreasing order. L is the merge of L1 and L2. L1 and L2 are modified to produce L.*) PROCEDURE SCOMP(AL,L: LIST): LIST; (*Set composition. a is a beta-integer, L is a set of beta-integers. LP is the union of SET(a) and L. *) PROCEDURE SDIFF(A,B: LIST): LIST; (*Set difference. A and B are sets of beta-integers. C=A-B.*) PROCEDURE SINTER(A,B: LIST): LIST; (*Set intersection. A and B are sets of beta-integers. C is the intersection of A and B.*) PROCEDURE SUNION(A,B: LIST): LIST; (*Set union. A and B are sets of beta-integers. C is the union of A and B.*) PROCEDURE USCOMP(AL,L: LIST): LIST; (*Unordered set composition. a is an object, L is an unordered set. LP is the union of SET(a) and L. *) PROCEDURE USDIFF(A,B: LIST): LIST; (*Unordered set difference. A and B are unordered sets. C is the difference A-B.*) PROCEDURE USINT(A,B: LIST): LIST; (*Unordered set intersection. A and B are unordered sets. C is the intersection of A and B.*) PROCEDURE USUN(A,B: LIST): LIST; (*Unordered set union. A and B are unordered sets. C is the union of A and B.*) END SACSET.