TOPOLOGICAL SORTING BY RANK-AND-FILE

The label. "topological sorting", is computer science jargon for transforming a parorder into a simorder. As noted in another file, this is the p-sort that transforsms a bierach into a simchain. We consider it here, to prepare for the general consideration of ordinological transformations between ordexes.

To do so, I must first discuss "rank" and "file".

Definition: d(x, y) is a metric and S a metric space if, and only if, satisfying these conditions, for all elements x, y, z Î S:

It follows that lattice RANK is a metric, as in:

                                        6 (RANK = 2)
                                       / \
                                      /   \
                                     /     \
                                    2       3 (RANK = 1)
                                     \     /
                                      \   /
                                       \ /
                                        1  (RANK = 0)

When I learned this, I realized that another measure could be introduced to distingish elements of the same RANK, namely, FILE, as in the Union jargon, "rank-and-file".

Thus, in the above factor lattice, in RANK = 1, F1=2, F2=3.

Obviously, FILE is a metric, and so is the lattice-coordinate: [Ri, Fj]. (For example, in the lattice below, the lattice-coordinate [2,2] designates factor 6.


When I learned about somewhat complicated computer science algorithms for topological sorting, I realized that my RANK-FILE measures could do this much more simply.

Definition: To p-sort a bierach into a simchain:

  1. write the Hasse diagram such that factors of equal RANK are in left-right simorder;
  2. form the lattice coordinate form, [Ri, Fj];
  3. write a simordering for monotonically increasing i, j.

Thus, from the above lattice, we easily derive the simorder: 1, 2, 3, 6.

For a less trivial case, consider this lattice:



                                      30 (max, RANK = 3, F = 1)
                                      /\
                                     /  \
                                    /  | \
                                   /   |  \
                                  /    |   \
                                 /     |    \
                                /      |     \
                               /       |      \
                              /        |       \
                             /         |        \
                        (F1)6         10 (F2)    15 (F3) (RANK = 2)
                            |\        / \       /|
                            | \      /   \     / |
                            |  \    /     \   /  |
                            |   \  /       \ /   |
                            |     /         \    |
                            |    / \       / \   |
                            |   /   \     /   \  |
                            |  /     \   /     \ |
                        (F1)2          3 (F2)    5 (F3) (ATOMS, RANK = 1)
                             \         |       /
                              \        |      /
                               \       |     /
                                \      |    /
                                 \     |   / 
                                  \    |  /
                                   \   | /
                                    \  |/
                                       1 (min, RANK = 0, F = 1)

This yields the simorder: 1, 2, 3, 5, 6, 10, 15, 30.