The thing that sparked my interest in category theory was a remark from Ted Odell regarding the dual of a linear transformation. As I recall, he said something like “There’s a reason the star goes up instead of down” and mumbled something about category theory. I took it he didn’t think highly of category theory, but my interest was piqued.

At the time I could think of two examples of functors that I cared about, one involving fundamental groups and one involving linear operators. The former puts the star down and the latter puts the star up.

If *X* and *Y* are topological spaces and *f* is a continuous function between *X* and *Y*, then *f* induces a map *f*_{*} between the π_{1}(*X*) and π_{1}(*Y*), the fundamental groups of *X* and *Y*. The star goes down.

If *X* and *Y* are linear spaces and *T* is a continuous linear transformation between *X* and *Y*, then *T** induces a map *Y*^{*} between the *Y*^{*}, the dual spaces of *Y* and *X*. The stars go up.

What was this arcane knowledge that Ted Odell obliquely referred to? It’s that by convention, stars go downstairs for covariant functors (like that between fundamental groups) and upstairs for contravariant functors (like that between dual spaces).

Covariant means that the induced maps go in the same direction as the original maps. Notice above that *f* goes from *X* to *Y* and *f*_{*} goes from π_{1}(*X*) to π_{1}(*Y*). The *X* and *Y* are in the same order, hence *co*variant, going in the same direction.

Contravariant means that the induces maps go in the opposite direction as the original maps. Notice that *T* goes from *X* to *Y*, but *T** goes from *Y*^{*} to *X*^{*}, the order of *X* and *Y* is reversed, hence *contra*variant, going in opposite directions.

The fundamental group is defined in terms of paths in a space, i.e. functions from an interval into a space. The dual of a vector space is defined in terms of linear functions from that space to real numbers. Functors defined in terms of functions **from** a fixed space (like the unit interval) into the space you’re interested in are covariant. Functors defined in terms of functions from the space you’re interested **into** a fixed space (like the reals) are contravariant.

Another example of stars going up or down comes from differential geometry. A function *f* from *R*^{n} to *R*^{m} induces a map *f*_{*} from the tangent space *R*^{n}_{p} to *R*^{m}_{f(p)}. Star downstairs, *n* and *m* appearing in the same order. The analogous map on differential forms, however, is *f*^{*}, star upstairs, and goes in the opposite direction. (At least in Spivak‘s notation.) Unfortunately, the use of the words “covariant” and “contravariant” in the context of tensors is backward to what is now customary usage, though for good historical reasons.

* * *

The convention described here of putting stars downstairs for covariant functors and upstairs for contravariant functors is common, but it’s not universal. I ran into an exception right after writing this post. But I believe the convention is followed more often than not.

* * *

My initial impression of category theory was positive: it could tell me why the star goes downstairs in my topology course and upstairs in my functional analysis course! My next exposure to category theory left a bad impression that lasted for years. Category theory can be used to clarify or to obfuscate, to solve problems or to create problems, like any other tool.

**Related**: Applied category theory

Given the lack of accuracy in handwritten lectures, and similarly the ease of making a mistake in markup, it seems the convention is broken, and needs fixing.

With a little thought, I’m sure someone can come up with other star examples where the star position doesn’t matter, but can be mixed in with those that do, for a thorough obfuscatory experience.

I’m reminded of Acme::Bleach (http://search.cpan.org/~dconway/Acme-Bleach-1.150/lib/Acme/Bleach.pm), which recodes the entire program with whitespace. There are other variations, where the encoding uses [oO0il10]*, or other self-similar symbols.

We should congratulate whoever propagates these conventions, for the job security they provide. ;)

I see the star convention as a sort of type theory, a way to catch mistakes rather than an invitation to make mistakes. It lets you see that some equations are wrong because the stars are misaligned. (Sounds like astrology!)

Tensors use a similar convention of upper and lower indices. If you’re summing a product of tensors on an index that’s upstairs on both, or downstairs on both, it’s very likely you’ve made a mistake.