How big is a trillion, anyway?

2020 was a sad year for lovers of large numbers. On 9th March, we lost Richard K. Guy at the age of 103; barely a month later, John Horton Conway is no longer with us. These two mathematicians, between them, in their Book of Numbers (1996) outlined a system for naming all numbers strictly less than \(1,000\)-illion. More specifically, for any \(n\) from \(21\) to \(999\), they gave a systematic way to name the number \(n\)-illion (the numbers from a million up to \(20\)-illion – or one vigintillion – already had names).

I say \(n\)-illion, because the precise meaning differs depending on whom you ask. There are two systems in use today: the short scale or American system, for which one \(n\)-illion is equal to \(1,000^{n+1}\), and the more sensible long scale, or European system, for which one \(n\)-illion is equal to \(1,000,000^{n}\).

I don’t find either of these systems particularly satisfying, as neither seems to follow the pattern that we use for smaller numbers (up to one million). Up to a million, we seem to be using the following rules.

  • Our basic unit is \(1,000\). That is to say, any \(n\)-illion should be some power of \(1,000\); to get the name for arbitrary \(10^n\), we add ten or a hundred to the start.
  • Repeating the same number twice – e.g., ‘a thousand thousand’ or ‘seventeen billion billion billion billion billion’ is ugly and inefficient, so we have to come up with new names to avoid doing so.

Just based on these axioms, then, both the short and the long scales seem to add new names exponentially more often than necessary. As any long scale adherent will tell you, there is no need to call \(10^9\) one billion when one thousand million will do. But the same devotee will, in the same breath, refer to \(10^{18}\) as one trillion, when the perfectly congenial one million billion is available. If we choose the principle that we should add new illions as sparingly as possible — after all, we have only \(999\) of them to cover all the numbers we might conceivably want to use — then the correct definition of \(n\)-illion is \(1,000^{2^n}\).

This gives us a nice way to convert \(1,000^n\) into words: it amounts to writing \(n\) in binary. Let’s see how the other systems compare.

The Googol Test

The first test of any system of naming large numbers should be: does it give a name to a googol? Recall that one googol is a one followed by a hundred noughts; i.e., \(10^{100} = 10 \times 1,000^{33}\).

  • The short scale calls this number ten duotrigintillion (\(10 \times 1,000^{33} = 10 \times 1,000^{32 + 1}\)).
  • The long scale calls it ten thousand sedecillion (\(10 \times 1,000^{33} = 10,000 \times 1,000^{32} = 10,000 \times 1,000,000^{16}\)).
  • Our scale calls it ten thousand quintillion (\(10 \times 1,000^{33} = 10 \times 1,000^{2^0 + 2^5} = 10 \times 1,000^{2^0} \times 1,000^{2^5}\)).

All the systems passed the test. However, while the long and short scales used the rather fantastical sounding duotrigintillion and sedecillion, we are still in the realm of the relatively pedestrian sounding quintillion.

The Googolplex Test

Not convinced? Let’s move on to the next test: does the system give a name to a googolplex? A googolplex is one with a googol noughts after it; i.e., \(10^{10^{100}}\).

Unfortunately, neither the long nor the short system is able to give a name to a googolplex: the largest power of ten that the short system can name is \(10^{3,000}\), while the long system can go only as far as \(10^{5,994}\), and one googol is far larger than either \(3,000\) or \(5,994\).

Our system, however, is perfectly suited for describing numbers of the form \(10^{10^n}\). One googolplex is equal to \(10,000\times 10^{3\cdots3}\), where there are \(100\) \(3\)s in \(3\cdots 3\). \(3\cdots 3\) is the number we have to convert into binary. At this point, I’ll hand over to the computer.

10 ^

Doesn’t exactly trip off the tongue, does it? But at least it’s possible to write down.

Some History

Our new number system might seem strange and unfamiliar, but it is in fact closer than both the long and the short scales to one of our very earliest methods for naming large numbers, namely that described by Archimedes in his The Sand Reckoner. As with our system, Archimedes’ displayed double exponential growth. The largest number that he could name was
\left((10^8)^{(10^8)}\right)^{(10^8)} = 10^{80000000000000000}\,.
Again, this is far larger than anything that either the long or the short system can name. But we can give it a name – and in our system it isn’t even as large as a centillion.

10 ^


In early 2017, the Natural History Museum in London removed from their grand entrance hall the skeleton of a diplodocus, which had been a fixture of the museum since 1905. Affectionately nicknamed ‘Dippy’, the skeleton had moved around between various museum halls, but had become a favourite of museum-goers during his tenure as the museum’s centrepiece, ever since he replaced the collection of elephants and other animals in 1979.

Not everyone was happy following the museum’s announcement of the change in January 2015: the hashtag #SaveDippy trended on Twitter and an online petition calling for his reinstatement gathered tens of thousands of signatures. The museum was quick to defend itself. Dippy would be sent on a grand tour of the UK, allowing our country cousins, unable to afford the train fare to London, a chance to gaze with awe upon the majestic sauropod. Only the museum were telling us in the same breath that he wasn’t so majestic after all. We were reminded that Dippy was only a replica of the original Diplodocus carnegii holotype (displayed in the Carnegie Museum of Natural History in Pittsburgh), while his replacement, the suspended 25-metre long skeleton of a young blue whale, was not only larger than Dippy, but was the actual skeleton. Murmurs were made about conservation and about looking to the future rather than the past.

You didn’t have to wait long to find out the real reason. Head to the museum’s Facebook page today and you’ll find it advertising dozens of New Years Eve parties, yoga classes and silent discos taking place in the main entrance hall. On their website, there’s a shiny new section titled ‘venue hire’, which proudly proclaims that the hall – their ‘largest venue’ (!) – can seat a wedding party of 450, hold a reception for 1,200 or host ‘the perfect summer party’. Don’t think it’s all fancy shindigs for Londoners with more money than sense, though – barely a year after removing Dippy from the hall, the museum hosted a party from the Saudi embassy, shortly after the murder of Jamal Khashoggi. The Saudis paid £23,700 for the hire of the hall. In any case, by replacing Dippy with the whale skeleton – which, suspended from the ceiling, takes up zero floor space – the museum found an absolutely brilliant way to free up their ‘venue’ for more events like these, with only a fraction of the outrage that would have ensued had they cleared the hall completely.

Image result for nhm george the elephant
The Natural History Museum Hall in a more innocent time. Copyright Natural History Museum.

The reshuffling of exhibits, you see, was never about the whale. It was about the ‘space’. It’s always about the ‘space’. The word appears six times on the museum’s wedding page, competing with ‘venue’ to be the most pathetic and banal way possible to describe a gorgeous Victorian Romanesque hall designed by Alfred Waterhouse. Both words are, of course, symptoms of the lazy language endemic in the world of marketing (‘Earth Hall provides a striking space’ etc. etc.), but they have, through repeated usage, come to stand for a particular well-defined and pervasive concept.

For these are far from the only ‘spaces’ to have popped up in the last decade. Bath Abbey and the church of St Laurence in Ludlow have both recently removed their fine Victorian pews (in Bath’s case, designed by George Gilbert Scott) in order to convert the building into, in the words of one spokesperson, a ’21st-century event venue’. The Facebook page for St Laurence’s, meanwhile, frequently advertises various enterprises (most recently, a mediaeval-style bazaar and a ceilidh/hog-roast) taking place in the nave of the church – except that it’s never called that, it’s now always ‘the Space’ with a capital S.

Now, I can’t entirely blame either the Natural History Museum or the pew-removers for the choices they have made. The Church of England does not receive any funding for the upkeep of churches that are, in very many cases, priceless parts of our national heritage (and very expensive to maintain). The burden is particularly great for enormous parish churches, like the ones in Bath and Ludlow, which are not eligible for the same tax relief given to our cathedrals. The Natural History Museum does not charge for entry and relies on moonlighting as a conference centre in order to stop the dinosaur skeletons falling to pieces. Nevertheless, it is worth reflecting on how we have reached the point where a 12th century church or a national museum packed with valuable and beloved artefacts should find that its most valuable asset is its brute physical dimensions.

One of the last photographs taken of the pews in St Laurence’s. Copyright John Gowers.

We could point to the fact that there are now more of us and less space available per person. However, there is evidence to suggest that this view is misplaced. House-building, for instance, has outstripped population growth even in places like London. Research published by CaChE suggests that there are a number of other factors in play. The financial circumstances post-2008 mean that banks are now much more reluctant to grant mortgages, leading to a decline in home ownership unrelated to the quantity of housing available. Meanwhile, the value of buildings not as homes but as assets remains high. Property, even now, can pay dividends to an investor just by sitting there. The Natural History Museum shares a borough with 1,399 empty homes. In a market like that, if you want to actually do something with a building, then you’d better find a way to squeeze every last penny out of it. This is why rents in London are high. This is why we can’t have a museum in one building, a church in another and a convention centre in a third. By existing, a large building is a money-making opportunity and it has to behave like one.

The Labour Party-commissioned report Land for the Many, makes the point succinctly.

An imbalance in the use and ownership of land also crowds out public amenities. The
expansion of private space at the expense of public space shuts down opportunities to
pursue pleasure, fitness and peace of mind, creating deprivation.

Land for the Many, George Monbiot (editor), Robin Grey, Tom Kenny, Laurie Macfarlane, Anna Powell-Smith, Guy Shrubsole, Beth Stratford.

Private space is not necessarily a bad thing, but they’re not talking about people’s homes. Private ownership of property is a desperately unequal affair, with a few tycoons owning huge portfolios and the rest mopped up by those who are merely very well off. However, the ill effects of this are not felt only by private buildings: those places that we should be able to rely on to serve a public good – our museums, our places of worship, our libraries, our schools – are being forced by the same market pressures to become instruments of the same failing system.


There’s one curious counterexample to the ‘space’ phenomenon that I ran into recently. Norwich Castle Museum is currently in possession of an enormous and wonderful space, namely the hollowed-out keep of the mediaeval castle. The castle has undergone many changes in its life (many ill-advised), including the removal of the original floors and walls of the keep by Sir John Soane and the later cladding of the outside of the castle in Bath Stone. The museum directors have now taken the bizarre decision to try to recreate the internal floors and walls from the Middle Ages (they say ‘reinstate’, but since they have very little information about the floor plan, that seems overly generous). Sadly, the casualty again seems to be our Victorian heritage – this time, the elegant galleries and arcades of Edward Boardman.

Perhaps this can be explained away by the fact that the conversion involves placing several floors, thus increasing the total floor space. Mercifully, this idea seems not to have occurred to their colleagues in London. Keep an eye out for the Turkish executive dining in the newly rebuilt Norwich Castle banqueting hall….

What’s so special about [0,1]?

It happens to everyone. First, you learn real analysis and suddenly you understand what it means to do rigorous mathematics. You learn the precise definition of what a continuous function is; you learn that if they are defined on a closed bounded interval then they are bounded and attain their bounds; you learn about things called ‘Cauchy sequences’ and ‘The Bolzano-Weierstrass Theorem’.

Maybe you even start to think about doing analysis in \(\mathbb R^n\), but you then quickly learn that this is but one example of something called a ‘metric space’. New avenues open. You generalize the definition of continuity. You learn about the ‘contraction mapping theorem’ and how to apply that to the study of differential equations.

Then the whole thing gets turned on its head when you learn what a topological space is. Suddenly, you have a vastly more general definition of what it means for something to be continuous. You realize that all the things you learned in real analysis were really worked examples of topological facts. Continuous functions on a closed bounded interval are bounded and attain their bounds because the continuous image of a compact space is compact. \(\mathbb R^n\)? You know what \(\mathbb R\) is and you know what the product topology is, so what more do you need to know?

Then you start to learn algebraic topology and suddenly closed bounded intervals of real numbers are all over the place again. \([0,1]\) is a crucial part of the definition of a path or a homotopy. Maybe you start proving theorems that apply not to all topological spaces, but to CW complexes: i.e., spaces built up in a fairly complicate way from unit balls in \(\mathbb R^n\). It’s not unreasonable to feel a little cheated. Wasn’t it the whole point of topology that we didn’t have to deal with \([0,1]\) any more? Why is it everywhere suddenly?

Now, it’s true that every topological space admits a weak homotopy equivalence with some CW complex. But that doesn’t answer our question. Firstly, the definition of a weak homotopy equivalence involves \([0,1]\) anyway. And, anyway, why shouldn’t we be able to come up with some alternative definition of ‘CW complex’, based on some different fundamental topological space, and prove a similar result for that. What’s so special about \([0,1]\)?

Pathing systems

Let’s come back to the first definition we tend to meet in topological that relies on \([0,1]\) in an essential way. When we learn topology, we learn two non-equivalent definitions of what it means for a space to be connected. One definition is purely topological: a space \(X\) is connected if it cannot be written as the union of two disjoint non-empty open sets.

For the second definition, we define a path from a point \(x\) to a point \(y\) in a space \(X\) to be a continuous function \(\gamma \colon [0,1] \to X\) such that \(\gamma(0) = x\) and \(\gamma(1) = y\). We then say that \(X\) is path connected if any two points in \(X\) can be joined by a path in this way.

That raises the question of what would happen if we replaced \([0,1]\) with some other space in the above definition. Would we still get a sensible definition of connectedness?

There are some silly choices of space to use: if we use \({0, 1}\), then every space is connected. If we use \({0}\), then only empty or singleton spaces are.

But let’s not forget that \([0,1]\) has some useful properties that make it a good choice for defining paths. In particular, if we have paths \(\gamma,\gamma’ \colon [0,1] \to X\) such that \(\gamma\) is a path from \(x\) to \(y\) and \(\gamma’\) a path from \(y\) to \(z\), then we can come up with a path \(\gamma;\gamma’ \colon [0,1] \to X\) that is a path from \(x\) to \(z\). We do this by defining \(\gamma;\gamma'(t) = \gamma(2t)\) if \(t<0.5\) and \(\gamma;\gamma'(t) = \gamma'(2t-1)\) if \(t\ge 0.5\).

It makes sense, then, to insist that our new candidate spaces have similar properties. That is, we define a pathing system to be given by a space \(J\), together with distinguished points \(j_0,j_1\in J\), and, for any space \(X\) and any pair of continuous functions \(\gamma,\gamma’ \colon J \to X\) such that \(\gamma(j_1) = \gamma'(j_0)\), a continuous function \(\gamma;\gamma’ \colon J \to X\) such that \(\gamma;\gamma'(j_0) = \gamma(j_0)\) and \(\gamma;\gamma'(j_1) = \gamma'(j_1)\).

I shall also impose one more condition to make sure that the choice of \(\gamma;\gamma’\) is at least fairly well-behaved. If we have a continuous function \(\phi \colon X \to Y\), where \(Y\) is some other space, then we should insist that
\phi \circ (\gamma;\gamma’) = (\phi \circ \gamma);(\phi \circ \gamma’)
as continuous functions \(J \to Y\).

From the perspective of category theory, this kind of requirement is known as naturality: it says that a certain collection of morphisms forms a natural transformation. You might like to work out the details.

Multiple concatenations

Of course, we are not limited to composing together two paths. For example, if we have four paths, then we can compose them in pairs to get two paths, and then compose those paths together to get a single path. In a similar way, we can define the \(2^n\)-fold composition of \(2^n\) paths inductively as follows. The bifold composition is the usual composition. Then the \(2^{n+1}\)-fold composition of \(2^{n+1}\) paths (with matching endpoints) is formed by splitting into two equal collections of \(2^n\) paths, forming the \(2^n\)-fold composition of each and then composing the two paths thus formed. Equivalently, we could split our collection of \(2^{n+1}\) paths into \(2^n\) pairs of paths, compose each pair to form \(2^n\) single paths, and then take the \(2^n\)-fold composition.

Now, given a pathing system \((J, j_0, j_1)\), write \(\bigwedge_{2^n} J\) for the space formed by taking \(2^n\) disjoint copies of \(J\) and then passing to the quotient space given by identifying \(j_1\) in copy \(i\) with \(j_0\) in copy \(i+1\). There are \(2^n\) obvious continuous functions \(J \to \bigwedge_{2^n} J\) whose endpoints match up, and we can take the \(2^n\)-fold composition of these paths to get a single continuous function
p_n \colon J \to \bigwedge_{2^n} J
such that \(p_n(j_0)\) is \(j_0\) in the first copy of \(J\) and \(p_n(j_1)\) is the \(j_1\) in the last copy of \(J\).

Now let us number the copies of \(J\) in binary from \(\underbrace{0\cdots0}_n\) to \(\underbrace{1\cdots1}_n\). I claim that if \(x\in J\) and \(m<n\), then the sequence of binary digits corresponding to the copy of \(J\) that \(p_m(x)\) is contained in is a prefix of the sequence of binary digits corresponding to the copy of \(J\) that \(p_n(x)\) is contained in. Indeed, by the definition of \(2^k\)-fold composition, \(p_n\) may be regarded as the \(2^m\)-fold concatenation of \(2^{n-m}\) paths $J \to \bigwedge_{2^m}J$.

This means that, as \(n\) gets larger and larger, we get an infinite binary sequence corresponding to each \(x\in J\). We define a function \(\phi \colon J \to [0,1]\) by sending each \(x\in J\) to the real number whose binary expansion is given by that sequence.

\(\phi\) is easily seen to be continuous: indeed, the preimage of any set of the form \([0, q/2^n)\) is precisely the preimage under \(p_n\) of some open set in \(\bigwedge_{2^n}J\), and is therefore open in \(J\), and similarly for any set of the form \((q/2^n, 1]\). Moreover, we certainly have \(\phi(j_0) = 0\) and \(\phi(j_1) = 1\).

This means that if there is a \([0,1]\)-path from \(x\) to \(y\) in a space \(X\), then there is a \(J\)-path from \(x\) to \(y\) for any pathing system \((J, j_0, j_1)\). In other words, \([0,1]\) is special, because it gives us the most restrictive possible notion of path-connectedness while still allowing basic notions like composition of paths.

Universality of \([0,1]\)

Are there any other spaces with this special property? It’s fairly easy to show that there aren’t. First, notice that the function \(\phi\) that we constructed above makes the following diagram commute.
J @>{\phi}>> [0,1]\\
@V{p_2}VV @VV{_\times 2}V \\
J \wedge J @>{\phi\wedge\phi}>> [0,1] \wedge [0,1]
Moreover, \(\phi\) is in fact the unique continuous function \(J \to [0,1]\) with this property. In category theory, we say that \([0,1]\) is the final coalgebra for the functor \(\_ \wedge \_\). A general fact about final coalgebras is that they are unique up to isomorphism. You might like to deduce for yourself that any space \(I\) having the same property we’ve found for \([0,1]\) is in fact homeomorphic to \([0,1]\).

Other directions

There are a few other generalizations we could make to our notion of a ‘path’. We should be careful to avoid being too general: for example, we could define a path from \(a\) to \(b\) in a space \(X\) to be a connected subspace of \(X\) that contains \(a\) and \(b\) — then we would end up with the usual definition of connectedness.

One thing we might try is not to insist that every path is a continuous function out of the same space \(J\): so that the composition of two paths could have a different domain from either of its constituent parts. I’ll save that discussion for another time.

What’s the difference between an orientation and a rotation?

This question came up at work recently, and I was unable to find a really good answer online. For the purposes of this article, I will be using the terms orientation and rotation as they are used in computer graphics; this might not be the same definitions you are used to.

If you search online for what the difference is between a rotation and an orientation, then you get several seemingly conflicting answers:

  • ‘An orientation is given by Euler angles, whereas a rotation is given by a quaternion.’
  • ‘An orientation is the destination that you reach at the end of a rotation; the rotation is the route to that destination.’
  • ‘Orientations only allow you to rotate from \(0\) to \(360\) degrees, whereas rotations allow you to go beyond \(360\) degrees.

I think the last of these is the one that comes closest. In the two-dimensional case, the answer is easy: an orientation is an element of \(SO(2)\) (i.e., confusingly, a rotation matrix), whereas a rotation also comes equipped with a winding number about the origin. If we want, we can identify orientations of 2D space with elements of the circle \(S^1\) and rotations with real numbers. Then we have a continuous function \(\lambda\) from rotations to orientations given by \(\lambda(x) = e^{2\pi i x}\).

This continuous map \(\lambda\) has an important property: it is a covering map. This means that if \(z\) is some orientation, then there is some open neighbourhood \(U\) of \(z\) such that \(\lambda\inv U\) is the union of disjoint open sets, each mapped homeomorphically on to \(U\) by \(\lambda\). This means that if \(x\) is a rotation, and we modify the corresponding orientation \(\lambda(x)\) very slightly, to get an orientation $w$ then we can get a corresponding modified rotation \(y\) such that \(\lambda(y) = w\).

This means that, for example, if we were filming a rotating object then, assuming our frame rate were fast enough, we could track the overall rotation of the object over time by capturing its orientation at each frame. Why might we want to do this?

Let’s look at an example. There’s a game called Getting Over It with Bennett Foddy, in which you control a character named Diogenes who lives in a barrel. The only way Diogenes can get around is by moving a hammer in circles around his body. The player controls the hammer by moving the mouse around, and the tip of the hammer follows the mouse point.

In the real game, he can move the hammer in a full circle. But let’s suppose instead that he was unable to move the hammer through the bottom of the circle — perhaps the barrel is in the way.
If we only keep track of the orientation of the the mouse cursor around the centre of the rotation, we are at risk of introducing some graphical glitches. Suppose the player moves the mouse in a straight line right through the bottom of the barrel. Then we will move very suddenly from this position

to this one.

Since we would like to give the impression of continuous motion, this is undesirable. If, however, we keep track of the overall rotation of the mouse cursor, then the game will know that it should not jump to the second position, because the rotation is \(390^\circ\), rather than \(30^\circ\).

Now the input to the game is given by the mouse position: loosely speaking, an orientation. Therefore, the property of covering spaces that we have mentioned above is crucial: as long as we can assume that we are sampling the mouse position quickly enough, we can translate the changing mouse orientations into chainging rotations, which the game can then understand.

Another way to understand this is to recall that covering maps satisfy a property called path lifting: if \(p \colon X \to Y\) is a covering map, \(\gamma \colon [0,1] \to Y\) is a path in \(Y\) and \(x\) is a point in \(X\) such that \(p(x) = \gamma(0)\), then there is a path \(\hat{\gamma} \colon [0,1] \to X\) such that \(\hat{\gamma}(0) = x\) and \(p\circ\hat{\gamma} = \gamma\).

The covering map \(\lambda\) of \(S^1\) by the real line is particularly important, because the real line is simply connected, meaning that it is in fact a universal cover for \(S^1\). A universal cover is defined as a covering map whose source is simply connected, but the word universal refers to the fact that we can prove that any other covering map must factor through the universal cover. There are infinitely many coverings maps on to the circle (indeed, take the map from \(S^1\) to itself given by \(e^{i\theta} \mapsto e^{ni\theta}\) for any \(n\)), but the real line is the one that stores the most information.

An important fact about universal covers \(p \colon U \to X\), which we shall come back to later, is that the order of the cover (i.e., the order of the set \(p^{-1}({x})\) for any \(x\)) is the same as the order of the fundamental group of \(X\). \(S^1\) has fundamental group \(\mathbb Z\), so there are infinitely many rotations corresponding to any particular orientation.

A fact in topology is that any space \(X\) that is connected, locally path-connected and semilocally simply-connected admits a universal cover [If you are ever bored in an airport, get out some paper and work out the proof. If you, like most people, don’t know what ‘semilocally simply-connected’ means, don’t look it up – just start writing out the proof and work it out for yourself.]. It therefore makes sense to generalize our discussion above to \(n\) dimensions as follows.

  • An orientation of \(\mathbb R^n\) is an element of \(SO(n)\).
  • A rotation of \(\mathbb R^n\) is an element of the (technically, a) universal cover of \(SO(n)\).

This brings us back to the second answer at the top of the article, because the elements of the univeral cover of a space \(X\) may be identified with homotopy classes of paths in \(X\) from a fixed source point \(x_0\). Therefore (up to homotopy) a rotation of \(\mathbb R^n\) really does encode the history of all the orientations that an object has been through, where the word ‘history’ is taken in the most basic sense imaginable: a path through the space of orientations.

That ‘(up to homotopy)’ becomes a lot more important in \(n>2\) than in \(2\) dimensions, however. In two dimensions, there is not much difference between two homotopic paths around the circle: they might travel at different speeds for different parts of the journey, or one might overshoot the target and double back. But the two paths are still clearly the same rotation in some sense. In three dimensions and above, more complicated homotopies between paths. Watch the rotating candles in this Balinese candle dance, for example.

Balinese demonstration that \(\pi_1(SO(2))\) is the cyclic group of order \(2\).

The candles rotate about the up-down axis by two full rotations, yet the dancers’ arms are completely untwisted at the end. This reflects a fact about \(SO(3)\): a rotation of \(360^\circ\) is not homotopic to the identity, but a rotation of \(720^\circ\) is. In fact, the fundamental group of \(SO(3)\) is \(\mathbb Z/2\), which means that its universal cover is a double cover: there are precisely two rotations corresponding to each orientation of 3D space.

This might not be a problem if we wanted to extend our man-in-a-barrel example to 3D space. In that case, we didn’t really need to track infinitely many rotations around the centre: just being able to tell when we’d gone slightly more than a full rotation round was enough. But for more complicated linkages of multiple joints, this mathematical fact can lead to problems that are very difficult to solve.

Where do quaternions come into this? The simple answer is that the space of unit quaternions is the universal cover for \(SO(3)\). That is, the universal cover of \(SO(3)\) is the \(3\)-sphere \(S^3\), and if we identify \(S^3\) with the unit quaternions then the covering map commutes with quaternion multiplication and multiplication of matrices. Therefore, we can store rotations of 3D space with quaternions (four numbers), while orientations require less nice representations such as matrices (nine numbers) or Euler angles (three numbers, but without the nice properties of covering maps).

The topological closed graph theorem

There are a number of theorems in various settings that link continuity of a function \(f\colon X \to Y\) to closedness of that function’s graph – i.e., the set of all points \((x,y)\in X \times Y\) such that \(y = f(x)\).

For example, we learn in functional analysis that if \(f \colon X \to Y\) is a linear map between Banach spaces, then \(f\) is continuous if and only if its graph is a closed subspace of \(X \times Y\).

Normally, when we learn this fact, we also learn a particular way of looking at it. We know that a function \(f \colon X \to Y\) is continuous if and only if whenever \(x_n \to x\) is a convergent sequence in \(X\), we have \(f(x_n) \to f(x)\) in \(Y\).

Meanwhile, to say that the graph of \(f\) is closed means that it contains all its limit points in \(X \times Y\): i.e., the graph of \(f\) is closed if and only if whenever \(x_n \to x\) is a convergent sequence in \(X\) such that \(f(x_n) \to y\) for some \(y\), we have \(y = f(x)\).

It’s clear then, that continuity of \(f\) is a stronger statement than closedness of its graph: to prove that \(f\) has a closed graph, we can proceed exactly as we would for proving continuity of \(f\), except that we only need to consider those convergent sequences \(x_n \to x\) such that \(f(x_n)\) converges to some limit \(y\).

Let’s turn this into a formal proof: we’re given a continuous function \(f \colon X \to Y\) between (say) normed spaces \(X\) and \(Y\), and we want to prove that the graph of \(f\) is closed. Let \(x_n \to x\) be a convergent sequence in \(X\), and suppose that \(f(x_n) \to y\) in \(Y\). Then, by continuity of \(f\), we know that \(f(x_n) \to f(x)\). Therefore, \(y = f(x)\) by uniqueness of limits.

This last part – uniqueness of limits in \(Y\) – plays an essential role, which we see when we try to generalize this implication to arbitrary topological spaces. In more general topological spaces, sequences can converge to more than one limit – and, indeed, it is possible for a continuous function to have a graph that is not closed.

However, if \(Y\) is a Hausdorff space, then limits of sequences in \(Y\) are unique, and we get our first topological closed graph theorem.

Exercise 1. Let \(X,Y\) be topological spaces, where \(Y\) is a Hausdorff space. Prove that if \(f \colon X \to Y\) is a continuous function, then the graph of \(f\) is closed.

More exciting is that we can use this as a characterization of Hausdorff spaces: i.e., if \(Y\) is a topological space such that the graph of any continuous function into \(Y\) is closed, then \(Y\) must be a Hausdorff space. In fact, it suffices to consider the identity function \(Y \to Y\).

Exercise 2. Convince yourself that the statement ‘\(Y\) is a Hausdorff space’ is exactly the same thing as saying that the graph of the identity function \(Y \to Y\) is closed in \(Y \times Y\).

That’s nice, but what about the other direction? In functional analysis, we know that the converse holds when \(X\) and \(Y\) are Banach spaces, but the topological version is a bit different.

Exercise 3. Let \(X,Y\) be topological spaces, where \(Y\) is compact. Let \(f\colon X \to Y\) be a function such that the graph of \(f\) is closed in \(X \times Y\). Prove that \(f\) is continuous.

(This is very different from the theorem in analysis: non-zero dimensional Banach spaces are never compact!)

It would be very nice if this theorem gave a characterization of compact topological spaces in the same way that the other direction gave a characterization of Hausdorff spaces: we often see ‘compact’ and ‘Hausdorff’ together as though they were brother concepts, even though the definitions are very different, so the prospect of giving new, more explicitly dual definitions for them is attractive.

Unfortunately, there are spaces \(Y\) that satisfy the conclusion of Exercise 3 (for arbitrary \(X\)) without being compact. As an example, give the set \(\mathbb N\) of natural numbers a topology by declaring the open sets to be the downward closed sets (i.e., those sets \(U\) such that if \(n \in U\) and \(m \le n\) then \(m \in U\)).

Exercise 4. Prove that if \(X\) is a non-empty topological space and \(f \colon X \to \mathbb N\) is a function, then the graph of \(f\) is not closed.

Thus, the conclusion of Exercise 3 is vacuously satisfied for this space \(\mathbb N\): the only function into \(\mathbb N\) that has a closed graph is the empty function, which is obviously continuous. Nevertheless, \(\mathbb N\) with this topology is certainly not compact.

The problem here is that some particularly nasty topological spaces throw up barriers to graphs being closed that are unrelated to whether or not the underlying functions are continuous. If we examine the example above a bit more closely, it becomes clear that the fundamental property of a graph of a function \(X \to Y\) – namely, that it intersects each set \(\{x\} \times Y\) in a single point – is not in general compatible with being a closed set.

To try and get around this, we’ll relax this property by generalizing from functions to relations: i.e., functions that can take multiple values – or no value at all. We can identify a relation between spaces \(X\) and \(Y\) with its graph, which is an arbitrary subset of \(X \times Y\).

Let’s start by trying to extend the definition of continuity to relations. We know that a function \(f \colon X \to Y\) is continuous if and only if \(f^{-1}(U)\) is open in \(X\) whenever \(U\) is an open set in \(Y\).

Definition 5. Let \(R \subset X \times Y\) be a relation. Given a subset \(Z\) of \(Y\), we write \(R^{-1}(Z)\) for the set of all \(x\in X\) such that \((x, z)\in R\) for some \(z\in Z\). We say that \(R\) is continuous if \(R^{-1}(U)\) is open in \(X\) for any open subset \(U\) of \(Y\).

We can readily extend our earlier result to continuous relations.

Exercise 6. Let \(X,Y\) be topological spaces, where \(Y\) is compact. Let \(R\subset X \times Y\) be a closed set. Prove that \(R\) is a continuous relation between \(X\) and \(Y\).

What is more exciting is that we can use this to give a characterization of compactness. We will use an adapted version of a lovely argument due to Martín Escardó (see the brilliantly named Intersections of Compactly Many Open Sets are Open [1]).

Theorem 7. Let \(Y\) be a topological space, and suppose that whenever \(X\) is a topological space and \(R\subset X \times Y\) is a closed space, then \(R\) is a continuous relation between \(X\) and \(Y\). Then \(Y\) is compact.

Proof. Let \((U_\alpha)_{\alpha\in A}\) be an open cover of \(Y\). Define a topological space \(X\) as follows.

  • The points of \(X\) are the open sets \(U\) of \(Y\).
  • A set \(\mathcal U\subset X\) is open if:
    • it is upwards closed – i.e., if \(U \in \mathcal U\) and \(U \subset V\), then \(V \in \mathcal U\); and if
    • there is some \(U \in \mathcal U\) such that \(U\) may be written as the union of finitely many of the \(U_\alpha\).

To show that \((U_\alpha)\) admits a finite subcover, it will suffice to prove that the set \(\{Y\}\) is open in \(X\). Since \((U_\alpha)\) was arbitrary, this will suffice to prove that \(Y\) is compact.

First, however, we need to show that this is indeed a valid topology on \(X\). It is easy to see that it is closed under unions. Moreover, if we have two such sets \(\mathcal U\) and \(\mathcal V\), then the intersection \(\mathcal U \cap \mathcal V\) is certainly upwards closed; moreover, we have some \(U \in \mathcal U\) and \(V \in \mathcal V\) such that \(U\) and \(V\) are the union of finitely many of the \(U_\alpha\): then \(U \cup V\) is also the union of finitely many of the \(U_\alpha\), and is contained in both \(\mathcal U\) and \(\mathcal V\) by upwards closedness.

[As an aside, notice how our new definition of compactness doesn’t mention finiteness at all: the argument above shows that this is because it has, in some sense, been ‘cancelled out’ by the fact that open sets in a topological space must be closed under finite intersections. If you’ve ever used compactness in a proof in order to show that a particular collection of open sets can be taken to be finite and therefore to have an open intersection (for example, in Exercise 3), then there’s a good chance that you’d have been better served by using this new definition.]

We will now consider the relation \(\not\ni\) between \(X\) and \(Y\) (i.e., \(U \not\ni x\) if it is not the case that \(x \in U\)). We claim that the graph of this relation is closed in \(X \times Y\).

Indeed, suppose that \(x\in V\) – so \((V, x)\) is in the complement of \(\not\ni\). We seek an open neighbourhood of \((V, x)\) that does not intersect with \(\not\ni\). Indeed, since \((U_\alpha)\) is an open cover of \(Y\), there is some \(U_\beta\) such that \(x\in U_\beta\). Then let \(\mathcal V\) be the set of all open sets in \(Y\) that contain \(U_\beta \cap V\).

\(\mathcal V\) is certainly upwards closed: moreover, it contains \(U_\beta\), so it is open in \(X\). Then the set $$\mathcal V \times (U_\beta \cap V)$$ is an open neighbourhood of \((V, x)\) in \(X \times Y\), and it does not intersect the graph of \(\not\ni\), since every set in \(\mathcal V\) contains every element of \(U_\beta \cap V\) by definition. This completes the proof that \(\not\ni\) is closed in \(X \times Y\).

By hypothesis, we can deduce that \(\not\ni\) is a continuous relation. In particular, this means that \(\not\ni^{-1}(Y)\) is closed in \(Y\). But this is precisely the set of all open subsets \(U \subset Y\) such that \(x \not \in U\) for some \(x\) – i.e., the set of all proper open subsets of \(Y\). So \(\{Y\}\) is the complement of this closed set and is therefore open as desired. \(\Box\)

Unfortunately, it’s not necessarily true that the graph of a continuous relation into a Hausdorff space is always closed, so we don’t quite get that explicitly dual pair of definitions for ‘compact space’ and ‘Hausdorff space’. I think we’ve come pretty close though!

[1] M. Escardó, Intersections of compactly many open sets are open, 2009.
author = {Martín Escardó},
title = {Intersections of compactly many open sets are open},
year = {2009}