We adopt the convention that, if a block design has points, then the
points are the integers
. This is a combination of two
assumptions: the points are ordered; and the index set starts at 0 (rather
than 1).
There are several choices of ordering of sets (or multisets) of points. We have chosen to order in the following way:
So for example, here are a few sets in order:
For the purpose of defining functions on the collection of blocks, we now index
these blocks from 0 to , where
is the number of blocks of the
design. If the above list contains all the blocks of a certain design
, then we can refer to block 5 of
, which will be the set
in this case.
The same principle can be extended to lists of lists. Assuming that the ``inner'' lists are already ordered, we first compare the length of the two lists, and if they are equal, we order the lists ``lexicographically'' (with the order previously defined between list elements). This process can be continued recursively to any level of nesting.
However, we do not require that this ordering is adhered to throughout the tree. The following objects may be required to be ordered (they have a boolean attribute ordered):
Functions on indices, and on k-subsets of indices, are described next. For cycle types, see the section 7.4 on Automorphisms.