Here we describe in full our symbolic system for labeling isogonal polyhedra. As mentioned before, we want the system to describe the labeling structure of the vertex star and to specify the rules for connecting adjacent vertex stars. In addition, we would also like it to be able to show the symmetries of the vertex star, be able to describe all possible connection rules and in a manner limited enough to allow them to all be determined and tested in a reasonable amount of time and, finally, to uniquely identify a particular polyhedron. Thus, this list contains five major requirements. The system we describe below fully meets the first four requirements, but only half of the last one. More specifically, while different isogonal polyhedra will receive different symbolic representations (thus satisfying the identifiability requirement), the system does allow a polyhedron to have more than one representation (so failing the uniqueness requirement). In spite of this last failing, we believe the system is satisfactory for the purposes we choose to use it for, and we know of no other system that does happily satisfy all five requirements. In fact, we did look very closely at adding additional rules that would give the system the uniqueness property above; that is, we considered various rule systems that produced a unique, canonical symbol for every unique polyhedron. However, for every such set of rules that we created, we always found at least one isogonal polyhedron that we wished we could label in a way that the canonical rules forbid! Therefore, in the end, we decided not to enforce the generation of a canonical symbol and instead we allow each polyhedron to have the symbol that seems most natural in describing its unique properties.

To begin, we call our symbol for representing an isogonal polyhedron an *incidence symbol*.
An incidence symbol has two parts, a *vertex symbol* and an *adjacency symbol*,
both enclosed in square brackets and separated by a semicolon. For example, one of the
valid incidence symbols for the cube is [a^{+}b^{+}c^{+};
a^{+}b^{-}c^{-}].
The first part, a^{+}b^{+}c^{+}, is the vertex symbol while the
second part, a^{+}b^{-}c^{-}, is the adjacency symbol. In general,
the vertex symbol encodes the possible vertex star edge labels and the symmetries
of the vertex star, while the adjacency symbol encodes the connection rules.

Consider an arbitrary vertex star. It has two "sides," in the sense that it can be flipped over. For a coplanar vertex star, this is obvious, but less so with something like the cube corner. Nevertheless, one might easily describe the cube corner as having an "inside" surface and an "outside" surface, and it is these two "surfaces" that we consider the "sides" of this particular vertex star. We call one side the red side and the other the black side, but which one is which is arbitrary. Usually one will seem more natural than the other. (This is one of the places where a canonical labeling system could have a potential mismatch with what might seem to be the natural choice, and an example of why we ultimately abandoned trying to require such a rule.) We (again arbitrarily) choose the red side to be the side we label. We pick one of the edges of the vertex star on the red side to be our starting edge. Which one we choose is again arbitrary, though it is often the case that one particular edge seems to be the natural choice, especially when the vertex star has a symmetry. (This idea will become more clear later on.) Now we can begin to form the vertex symbol.

We want to give each edge in the vertex star a unique label, so we use the letters starting
with 'a' and proceed, in cyclic order around the vertex star, to assign the subsequent edges
the letters 'b', 'c', and so on until all edges have a letter. There are two choices for
the cyclic order: clockwise or counter-clockwise. Which one to choose is arbitrary, though
here we almost always use the counter-clockwise orientation. But whichever choice is made,
it must always be followed for the rest of the labeling process. The cyclic orientation
thus chosen is designated the '+' direction. Reflection is an allowed transformation of
vertex stars when creating isogonal polyhedra, and if the vertex star is not reflectively
symmetric then a reflected vertex star will be qualitatively different from its unreflected
form. Therefore, we need a way to distinguish them, and in that case we mark all labeled edges
in a reflected vertex star with '-'. For example, if the cube corner as originally specified
is a^{+}b^{+}c^{+}, then its reflected form is
a^{-}b^{-}c^{-}. However, this is given here only as an example,
because vertex symbols never contain only an a^{-} edge. This will also
become more clear later on. Otherwise, we have completed the vertex symbol; in our
cube we would have a^{+}b^{+}c^{+}. From this vertex symbol we can
immediately see that its vertex star has three edges, and so three polygons.

However, our requirements for the vertex symbol included not just labeling the edges, but
also encoding the symmetries of the vertex star. By labeling our cube vertex star as
a^{+}b^{+}c^{+}, we implicitly declare that every edge is to be
treated differently, even though we know that in the underlying geometry they are all alike.
Presumably we have marked the edges in some way to create this asymmetry.
But if we instead wanted to mark our edges so that this vertex star had reflective symmetry
(but no more), we need a different symbol. Assume we chose the 'a' edge to lie in the
reflective plane of symmetry. The second edge is b^{+}, but the third edge cannot
be c^{+} because this would invalidate the reflective symmetry. Instead, the third
edge must be b^{-}. But, returning to the 'a' edge, if it were a^{+} then
this would also invalidate the reflective symmetry. The 'a' edge could just as easily have
been labeled a^{-}, which would match with the b^{-} if we proceeded from
'a' to 'b' in the opposite cyclic direction than we started. Thus, the 'a' edge is both
a^{+} and a^{-}, and this we label simply as a, without any ^{+} or
^{-}. Now we have our complete
vertex symbol, a b^{+}b^{-}, and it implicitly demonstrates that we have a
reflective symmetry about the 'a' edge. (If the plane of symmetry were instead around the
'b' edge, our vertex symbol would be a^{+}b a^{-}, and if it were around
the 'c' edge, it would be a^{+}a^{-}b. Usually, the vertex star suggests
a natural choice, but again we see why stipulating a canonical choice could be undesirable.)

We can recognize other symmetries in our cube corner as well. For example,
a^{+}a^{+}a^{+} shows that we have rotational symmetry, but
still have a cyclic orientation asymmetry. The symbol a a a, which is the most symmetric,
shows that we have now removed this cyclic orientation asymmetry so that every edge has
reflective symmetry. Considering the {4,4} coplanar tiling vertex star, reflective symmetry
would be a b^{+}c b^{-}, while half-rotational symmetry would be
a^{+}b^{+}a^{+}b^{+}. And so on.

For planar tilings these symbols are sufficient and they were originally described in 1979.
[__Incidence symbols and their applications__, Branko Grünbaum
and G. C. Shephard, in *Relations Between Combinatorics and Other Parts of Mathematics,
Proc. Sympos. Pure Math*, Vol. 34 (1979), pp. 199-244.] But for three-dimensional
vertex stars, we need to extend the system. Return to the coplanar {4,4} vertex star. We
label the first two edges a^{+} and b^{+}. We could label the third edge
c^{+}, but suppose we wish to recognize that this vertex star has a 'flipped'
symmetry. That is, by rotating the vertex star 180° around the 'b' edge, we again
find the 'a' edge, just on the other "side" of the vertex star. To do this, we use the
'^' symbol, and the third edge becomes a^^{+}. But when we reach the fourth edge,
we realize a problem. If this were b^^{+}, then what about the b^{+} edge,
which also finds itself part of the axis of rotation? That is, both the second and fourth
edges could legitimately be labeled b^{+} or b^^{+}. In this circumstance,
we label them both b*^{+}. The '*' symbol recognizes an edge that appears the same
from either the red side or the black side of the vertex star. (Clearly, the use of the '*'
symbol can only apply to edges whose dihedral angle is 180°.) And finally, we
must accomodate two final symmetries, though these are rare and require a more complicated
vertex star than can be easily described. It can happen that an edge can be described as
both a^{+} and a^^{-}, but neither a^{-} nor a^^{+}.
In this case, we label it a^{&+}. Lastly, if it is both a^{-} and
a^^{+} but not a^{+} or a^^{-}, it is labeled a^{&-}.
(Again, these '&' symbols can only be assigned to edges with 180° dihedral angles.)
Now, finally, we have enough symbols!

We move on to the adjacency symbol, which encodes the connection rule between edges.
The first edge listed in the adjacency symbol corresponds to the edge connected to the
first edge in the vertex symbol; similarly, the edges listed second in both symbols
are to be connected together, and so on. The adjacency symbol is simpler
than the vertex symbol, and only needs to use the '+', '-', '^', and '*' markings. We have
already made it clear that the connection rule must connect edges via their letter labels,
but two other details must be specified, both similar in pattern. If we are constructing
an isogonal polyhedron and it is specified that an 'a' edge must be paired with another 'a'
edge, then should it be paired with an 'a' edge from a vertex star as originally specified
or one that has been reflected? Both may be possible. Indeed, if the vertex star does not
have reflective symmetry about the 'a' edge then it will make a definite difference in the
resultant polyhedron. Thus, if the old edge should be paired with a new edge in a vertex star
that is a reflected version of the current vertex star, then the adjacency symbol edge has
a '-'. If the new star should not be reflected, then it has a '+'. Note that a '-' does
not necessarily mean that the vertex star should be reflected from the vertex star as
originally specified, but that it should be reflected *relative* to the one it is
being connected to. (Because of this relative nature, the markings added to the edge
letters in the adjacency symbol have slightly different meanings than those added to the
edge letters in the vertex symbol.) Then, just as the new vertex star could be reflected
relative to the previous one, it could also be flipped. For example, when one places a new
planar vertex star adjacent to an existing vertex star when constructing a tiling, the
single overlapping polygon merges into the one already present. In three dimensions, though,
our vertex stars have "sides," so that instead of merging one thinks instead of the new one
being placed on top of the previous one. In the normal way of doing this, the two sides that
face each other are opposite colors: one is red and the other black. But if we flip
one vertex star relative to the other, the two facing sides will be the same color (red
against red, or black against black, depending on how you choose to view the two vertex
stars). If the relative face pairing is different (flipped, with same-color facings), then
the adjacency symbol edge letter has a '^'; if they are the same (different color facings),
then nothing is added. (It is quite possible for edges to have both '+'/'-' and '^' marks.)
Note that when an edge in the vertex symbol has reflective symmetry
(has neither a '+' or '-' marking)
then the corresponding edge in the adjacency symbol is also not marked with either '+' or '-'.
This is true not only for consistency (for isogonality, a reflectively symmetric edge can
only be paired with another reflectively symmetric edge), but because if the edge is
reflectively symmetric then it makes no difference whether the vertex star is matched with
a reflected star or not! And the same applies when the vertex symbol edge is flip-symmetric
(has a '*'); in this case the adjacency edge symbol must show that it is also flip-symmetric
and so also has a '*' marking. For planar tilings, only the reflective '+' or '-' markings
were required; the '^' and '*' are extensions required for three dimensions. This explains
why the two situations are somewhat different, in that symmetry has no marking for reflection
while it does for flips, while normal reflections have a marking and normal facings do not:
a certain amount of backwards compatibility was required in making the extensions for
three dimensions.

Note that these requirements force a certain consistency. That is, if b^{+} is to
be connected to c^^{-} then c^{+} must be connected to b^^{-}, and
so on. It can now be seen that there are only a calculable number of possible adjacency
symbols that can be paired with any specific vertex symbol. In fact, if there are *n*
letters in the vertex symbol then there can be at most 4^{n}*n*! possible
adjacency symbols, and a vast proportion of these can be very quickly eliminated by enforcing
the consistency rules. Therefore, we see that our 4-1/2 major requirements have indeed been met.
The edges have been assigned labels by the vertex symbol and, together with the adjacency symbol,
the rules for connecting adjacent vertex stars have been specified. The markings added
to the edge letters in the vertex symbol implicitly encode the symmetries of the vertex
star, and all connection rule possibilities are bounded by a number easily handled by
today's modern computers. The identifiability requirement has been met, in that no two
different polyhedra can be assigned the same symbol. Only the uniqueness property has not
been met, and this has already been sufficiently discussed. One additional ambiguity that
this system possesses is that it does not explicitly specify in the incidence symbol
which side is red, which cyclic orientation was used, or which edge is 'a'. But if one
is consistent in producing a set of possible labels for a given polyhedron, then another
choice of these possibilities only produces an isomorphic set; that is, no more or fewer
different labelings can be produced by making a different original set of choices. While
this does lead to some confusion when one at first seems to have produced a new labeling
not originally listed, careful analysis of both sets will show that the new one is merely
a duplicate labeling and the original set of arbitrary choices can be reconstructed.

We present below a concise summary of these rules, as applied to arbitrary edges 'x' and 'y'.

- x
^{+}: Normal (default) edge label - x
^{-}: Label of an edge that is a reflection of x^{+} - x : Label of an edge that has reflective symmetry
- x^
^{+}: Label of an edge that is a flip of x^{+} - x^
^{-}: Label of an edge that is a reflected flip of x^{+} - x^ : Label of a flipped 'x' edge that has reflective symmetry
- (The following only apply to 180° dihedral angle edges)
- x
^{&+}: Label of an edge that is both x^{+}and x^^{-} - x
^{&-}: Label of an edge that is both x^{-}and x^^{+} - x*
^{+}: Label of an edge that has flip (but not reflective) symmetry - x*
^{-}: Label of a reflected edge with flip symmetry - x* : Label of an edge with both flip and reflective symmetry

- y
^{+}: Adjacent edge without reflection or flip - y
^{-}: Adjacent edge in reflected vertex star - y^
^{+}: Adjacent edge in flipped vertex star - y^
^{-}: Adjacent edge in flipped and reflected vertex star - y : Adjacent reflectively symmetric edge (no flip)
- y^ : Adjacent reflectively symmetric edge (with flip)
- (The following only apply to 180° dihedral angle edges)
- y*
^{+}: Adjacent flip-symmetric edge (no reflection) - y*
^{-}: Adjacent flip-symmetric edge (with reflection) - y* : Adjacent reflective and flip-symmetric edge

Return to main page