## Complete Uniform Spaces

Okay, in a uniform space we have these things called “Cauchy nets”, which are ones where the points of the net are getting closer and closer to each other. If our space is sequential — usually a result of assuming it to be first- or second-countable — then we can forget the more complicated nets and just consider Cauchy sequences. In fact, let’s talk as if we’re looking at a sequence to build up an intuition here.

Okay, so a sequence is Cauchy if no matter what entourage we pick to give a scale of closeness, there’s some point along our sequence where all of the remaining points are at least that close to each other. If we pick a smaller entourage we might have to walk further out the sequence, but eventually every point will be at least that close to all the points beyond it. So clearly they’re all getting pressed together towards a limit, right?

Unfortunately, no. And we have an example at hand of where it can go horribly, horribly wrong. The rational numbers are an ordered topological group, and so they have a uniform structure. We can give a base for this topology consisting of all the rays , the rays , and the intervals , which is clearly countable and thus makes second-countable, and thus sequential.

Okay, I’ll take part of that back. This is only “clear” if you know a few things about cardinalities which I’d thought I’d mentioned but it turns out I haven’t. It was also pointed out that I never said how to generate an equivalence relation from a simpler relation in a comment earlier. I’ll wrap up those loose ends shortly, probably tomorrow.

Back to the business at hand: we can now just consider Cauchy sequences, instead of more general Cauchy nets. Also we can explicitly give entourages that comprise a base for the uniform structure, which is all we really need to check the Cauchy condition: . I did do absolute values, didn’t I? So a sequence is Cauchy if for every rational number there is an index so that for all and we have .

We also have a neighborhood base for each rational number given by the basic entourages. For each rational number we have the neighborhood . These are all we need to check convergence. That is, a sequence of rational numbers converges to if for all rational there is an index so that for all we have .

And finally: for each natural number there are only finitely many square numbers less than . We’ll let be the largest such number, and consider the rational number . We can show that this sequence is Cauchy, but it cannot converge to any rational number. In fact, if we had such a thing this sequence would be trying to converge to the square root of two.

The uniform space is shot through with holes like this, making tons of examples of Cauchy sequences which “should” converge, but don’t. And this is all just in one little uniform space! Clearly Cauchy nets don’t converge in general. But we dearly want them to. If we have a uniform space in which every Cauchy sequence *does* converge, we call it “complete”.

Categorically, a complete uniform space is sort of alike an abelian group. The additional assumption is an extra property which we may forget when convenient. That is, we have a category of uniform spaces and a full subcategory of complete uniform spaces. The inclusion functor of the subcategory is our forgetful functor, and we’d like an adjoint to this functor which assigns to each uniform space its “completion” . This will contain as a dense subspace — the closure in is the whole of — and will satisfy the universal property that if is any other complete uniform space and is a uniformly continuous map, then there is a unique uniformly continuous extending .

To construct such a completion, we’ll throw in the additional assumption that is second-countable so that we only have to consider Cauchy sequences. This isn’t strictly necessary, but it’s convenient and gets the major ideas across. I’ll leave you to extend the construction to more general uniform spaces if you’re interested.

What we want to do is identify Cauchy sequences in — those which should converge to something in the completion — with their limit points in the completion. But more than one sequence might be trying to converge to the same point, so we can’t just take *all* Cauchy sequences as points. So how do we pick out which Cauchy sequences should correspond to the same point? We’ll get at this by defining what the uniform structure (and thus the topology) *should* be, and then see which points have the same neighborhoods.

Given an entourage of we can define an entourage as the set of those pairs of sequences where there exists some so that for all and we have . That is, the sequences which get eventually -close to each other are considered -close.

Now two sequences will be equivalent if they are -close for all entourages of . We can identify these sequences and define the points of to be these equivalence classes of Cauchy sequences. The entourages descend to define entourages on , thus defining it as a uniform space. It contains as a uniform subspace if we identify with (the equivalence class of) the constant sequence . It’s straightforward to show that this inclusion map is uniformly continuous. We can also verify that the second-countability of lifts up to .

Now it also turns out that is complete. Let’s consider a sequence of Cauchy sequences . This will be Cauchy if for all entourages there is an so that if and the pair is in . That is, there is an so that for and we have . We can’t take the limits in of the individual Cauchy sequences — the limits along — but we *can* take the limits along ! This will give us another Cauchy sequence, which will then give a limit point in .

As for the universal property, consider a uniformly continuous map to a complete uniform space . Then every point in comes from a Cauchy sequence in . Being uniformly continuous, will send this to a Cauchy sequence in , which must then converge to some limit since is complete. On the other hand, if is another representative of then the uniform continuity of will force , so is well-defined. It is unique because there can be only one continuous function on which agrees with on the dense subspace .

So what happens when we apply this construction to the rational numbers in an attempt to patch up all those holes and make all the Cauchy sequences converge? At long last we have the real numbers ! Or, at least, we have the underlying complete uniform space. What we don’t have is any of the field properties we’ll want for the real numbers, but we’re getting close to what every freshman in calculus thinks they understand.

## Countability Axioms

Now I want to toss out a few assumptions that, if they happen to hold for a topological space, will often simplify our work. There are a lot of these, and the ones that I’ll mention I’ll dole out in small, related collections. Often we will impose one of these assumptions and then just work in the subcategory of of spaces satisfying them, so I’ll also say a few things about how these subcategories behave. Often this restriction to “nice” spaces will end up breaking some “nice” properties about , and Grothendieck tells us that it’s often better to have a nice category with some bad objects than to have a bad category with only nice objects. Still, the restrictions can come in handy.

First I have to toss out the concept of a neighborhood base, which is for a neighborhood filter like a base for a topology. That is, a collection of neighborhoods of a point is a base for the neighborhood filter if for every neighborhood there is some neighborhood with . Just like we saw for a base of a topology, we only need to check the definition of continuity at a point on a neighborhood base at .

Now we’ll say that a topological space is “first-countable” if each neighborhood filter has a countable base. That is, the sets in can be put into one-to-one correspondence with some subset of the natural numbers . We can take this collection of sets in the order given by the natural numbers: . Then we can define , , and in general . This collection will also be a countable base for the neighborhood filter, and it satisfies the extra property that implies that . From this point we will assume that our countable base is ordered like this.

Why does it simplify our lives to only have a countable neighborhood base at each point? One great fact is that a function from a first-countable space will be continuous at if each neighborhood contains the image of some neighborhood . But must contain a set from our countable base, so we can just ask if there is an with .

We also picked the to nest inside of each other. Why? Well we know that if isn’t continuous at then we can construct a net that converges to but whose image doesn’t converge to . But if we examine our proof of this fact, we can look only at the base and construct a sequence that converges to and whose image fails to converge to . That is, a function from a first-countable space is continuous if and only if for all *sequences* , and sequences are a lot more intuitive than general nets. When this happens we say that a space is “sequential”, and so we have shown that every first-countable space is sequential.

Every subspace of a first-countable space is first-countable, as is every countable product. Thus the subcategory of consisting of first-countable spaces has all countable limits, or is “countably complete”. Disjoint unions of first-countable spaces are also first-countable, so we still have coproducts, but quotients of first-countable spaces may only be sequential. On the other hand, there are sequential spaces which are not first-countable whose subspaces are not even sequential, so we can’t just pass to the subcategory of sequential spaces to recover colimits.

A stronger condition than first-countability is second-countability. This says that not only does every neighborhood filter have a countable base, but that there is a countable base for the topology as a whole. Clearly given any point we can take the sets in our base which contain and thus get a countable neighborhood base at that point, so any second-countable space is also first-countable, and thus sequential.

Another nice thing about second-countable spaces is that they are “separable”. That is, in a second-countable space there will be a countable subset whose closure is all of . That is, given any point there is a sequence — we don’t need nets because is sequential — so that converges to . That is, in some sense we can “approximate” points of by sequences of points in , and itself has only countably many points.

The subcategory of all second-countable spaces is again countably complete, since subspaces and countable products of second-countable spaces are again second-countable. Again, we have coproducts, but not coequalizers since a quotient of a second-countable space may not be second-countable. However, if the map sends open sets in to open sets in the quotient, then the quotient space *is* second-countable, so that’s not quite as bad as first-countability.

Second-countability (and sometimes first-countability) is a property that makes a number of constructions work out a lot more easily, and which doesn’t really break too much. It’s a very common assumption since pretty much every space an algebraic topologist or a differential geometer will think of is second-countable. However, as is usually the case with such things, “most” spaces are not second-countable. Still, it’s a common enough assumption that we will usually take it as read, making explicit those times when we *don’t* assume that a space is second-countable.

## Topological Groups

Now we’ve said a lot about the category of topological spaces and continuous maps between them. In particular we’ve seen that it’s complete and cocomplete — it has all limits and colimits. But we’ve still yet to see any good examples of topological spaces. That will change soon.

First, though, I want to point out something we can do with these limits: we can define topological groups. Specifically, a topological group is a group object in the category of topological spaces. That is, it’s a topological space along with continuous functions , , and that satisfy the usual commutative diagrams. A morphism of topological groups is then just like a homomorphism of groups, but by a *continuous* function between the underlying topological spaces.

Alternately we can think of it as a group to which we’ve added a topology so that the group operations are continuous. But as we’ve seen, a topological structure feels a bit floppier than a group structure, so it’s not really as easy to think of a “topology object” in a category. So we’ll start with and take group objects in there.

Now it turns out that every topological group is a uniform space in at least two ways. We can declare the set to be an entourage for any neighborhood of the identity, along with any subset of containing such an . Since any neighborhood of contains itself, each must contain the diagonal . The intersection is the entourage , and so this collection is closed under intersections.

To see that is an entourage, we must consider the inversion map. Any neighborhood of the identity contains an open set . Then the preimage is just the “reflection” that sends each element of to its inverse, which must thus be open. The reflection of contains the reflection of , and is thus a neighborhood of the identity. Then is the same as .

Now, why must there be a “half-size” entourage? We’ll need to construct a half-size neighborhood of the identity. That is, a neighborhood so that the product of any two elements of lands in the neighborhood . Then and in means that and are in , and thus their product is in , so .

To construct this neighborhood let’s start by assuming is an open neighborhood by passing to an open subset of our neighborhood if necessary. Then its preimage is open in by the continuity of , and and will be open by the way we built the product topology. The intersection of these will be the collection of pairs with both and in , and whose product also lands in , and will be open as a finite intersection of open sets. We can project this set of pairs onto its first or second factor, and take the intersection of these two projections to get the open set which is our half-size neighborhood.

The uniform structure we have constructed is called the right uniformity on because if we take any element the function from to itself define by right multiplication by — — is uniformly continuous. Indeed, right multiplication sends an entourage to itself, since the pair satisfies . Left multiplication, on the other hand, sends a pair in to , for which we have . Thus to an entourage we can pick the entourage . So left multiplication is also uniformly continuous, but not quite as easily. We could go through the same procedure to define the *left* uniformity which again swaps the roles of left and right multiplication. Note that the left and right uniformities need not be the same collection of entourages, but they define the same topology.

Still, this doesn’t tell us how to get our hands on any topological groups to begin with, so here’s a way to do just that: start with an ordered group. That is, a set with the structures of both a group and a partial order so that if then and . Using this translation invariance we can determine the order just by knowing which elements lie above the identity, for then if and only if . The elements with form what we call the positive cone .

We can now use this to define a topology by declaring the positive cone to be closed. Then we’d like our translations to be homeomorphisms, so for each the set of with must also be closed. Similarly we want inversion to be a homeomorphism, and since it reverses the order we find that for each the set of with is closed. And then we can use the complements of all these as a subbase to generate a topology. This topology will in fact be uniform by everything we’ve done above.

And, finally, one specific example. The field of rational numbers is an ordered group if we forget the multiplication. And thus we get a uniform topology on it, generated by the subbase of half-infinite sets. Specifically, for each rational number the set of all with and the set of all with are declared open, and they generate the topology. A neighborhood of will be any subset which contains one of the form . Since the group is abelian, both the left and the right uniformities coincide. For each rational number we have an entourage . That is, a pair of rational numbers are in if they differ by less than .

## Limits of Topological Spaces

We’ve defined topological spaces and continuous maps between them. Together these give us a category . We’d like to understand a few of our favorite categorical constructions as they work in this context.

First off, the empty set has a unique topology, since it only has the one subset at all. Given any other space (we’ll omit explicit mention of its topology) there is a unique function , and it is continuous since the preimage of any subset of is empty. Thus is the initial object in .

On the other side, any singleton set also has a unique topology, since the only subsets are the whole set and the empty set, which must both be open. Given any other space there is a unique function , and it is continuous because the preimage of the empty set is empty and the preimage of the single point is the whole of , both of which are open in . Thus is a terminal object in .

Now for products. Given a family of topological spaces indexed by , we can form the product set , which comes with projection functions and satisfies a universal property. We want to use this same set and these same functions to describe the product in , so we must choose our topology on the product set so that these projections will be continuous. Given an open set , then, its preimage must be open in . Let’s take these preimages to be a subbase and consider the topology they generate.

If is any other space with a family of continuous maps , then the universal property in gives us a unique function . But will it be a continuous map? To check this, remember that we only need to verify it on a subbase for the topology on the product space, and we have one ready to work with. Each set in the subbase is the preimage of an open set in some , and then its preimage under is , which is open by the assumption that each is continuous. And so the product set equipped with the product topology described above is the categorical product of the topological spaces .

What about coproducts? Let’s again start with the coproduct in , which is the disjoint union , and which comes with canonical injections . This time let’s jump right into the universal property, which says that given another space and functions , we have a unique function . Now we need any function we get like this to be continuous. The preimage of an open set will be the union of the preimages of each of the , sitting inside the disjoint union. By choosing , the , and judiciously, we can get the preimage to be any open set we want in , so the open sets in the disjoint union should consist precisely of those subsets whose preimage is open for each . It’s easy to verify that this collection is actually a topology, which then gives us the categorical coproduct in .

If we start with a topological space and take any subset then we can ask for the coarsest topology on that makes the inclusion map continuous, sort of like how we defined the product topology above. The open sets in will be any set of the form for an open subset . Then given another space , a function will be continuous if and only if is continuous. Indeed, the preimage clearly shows this equivalence. We call this the subspace topology on .

In particular, if we have two continuous maps and , then we can consider the subspace consisting of those points satisfying . Given any other space and a continuous map such that , clearly sends all of into the set ; the function factors as , where is the inclusion map. Then must be continuous because is, and so the subspace is the equalizer of the maps and .

Dually, given a topological space and an equivalence relation on the underlying set of we can define the quotient space to be the set of equivalence classes of points of . This comes with a canonical function , which we want to be continuous. Further, we know that if is any function for which implies , then factors as for some function . We want to define the topology on the quotient set so that is continuous if and only if is. Given an open set , its preimage is the set of equivalence classes that get sent into , while its preimage is the set of all points that get sent to . And so we say a subset of the quotient space is open if and only if its preimage — the union of the equivalence classes in is open in .

In particular, if we have two maps and we get an equivalence relation on by defining if there is a so that and . If we walk through the above description of the quotient space we find that this construction gives us the coequalizer of and .

And now, the existence theorem for limits tells us that *all* limits and colimits exist in . That is, the category of topological spaces is both complete and cocomplete.

As a particularly useful example, let’s look at an example of a pushout. If we have two topological spaces and and a third space with maps and making into a subspace of both and , then we can construct the pushout of and over . The general rule is to first construct the coproduct of and , and then pass to an appropriate coequalizer. That is, we take the disjoint union and then identify the points in the copy of sitting inside with those in the copy of sitting inside . That is, we get the union of and , “glued” along .

## Uniform Spaces

Now let’s add a little more structure to our topological spaces. We can use a topology on a set to talk about which points are “close” to a subset. Now we want to make a finer comparison by being able to say “the point is closer to the subset than is to .” We’ll do this with a technique similar to neighborhoods. But there we just defined a collection of neighborhoods for each point. Here we will define the neighborhoods of all of our points “uniformly” over the whole space.

To this end, we will equip our set with a family of subsets of called the “uniform structure” on our space, and the elements will be “entourages”. We will write for the set of so that , and we want these sets to form a neighborhood filter for as varies over . Here we go:

- Every entourage contains the diagonal .
- If is an entourage and , then is an entourage.
- If and are entourages, then is an entourage.
- If is an entourage then there is another entourage so that and imply .
- If is an entourage then its reflection is also an entourage.

The first of these axioms says that , as we’d hope for a neighborhood. The next two ensure that the collection of all the forms a neighborhood filter for , but it does so “uniformly” for all the at once. This means that we can compare neighborhoods of two different points because each of them comes from an entourage, and we can compare the entourages. The fourth axiom is like the one I omitted from my discussion of neighborhoods; every collection of entourages gives rise to a topology, but topologies can only give back uniform structures satisfying this requirement. Finally, the last axiom gives the very reasonable condition that if , then . That is, if one point is in a neighborhood of another, then the other point should be in a neighborhood of the first. Sometimes this requirement is omitted to get a “quasi-uniform space”.

Now that we can compare closeness at different points, we can significantly enrich our concept of nets. Before now we talked about a net converging to a point in the sense that the points eventually got close to . But now we can talk about whether the points of the net are getting closer to *each other*. That is, for every entourage there is a so that for all and the pair is in . In this case we say that the net is “Cauchy”.

Now, if the full generality of nets still unnerves you, you can restrict to sequences. Then the condition is that there is some number so that for any two numbers and bigger than we have . This gives us the notion of a Cauchy sequence, which some of you may already have heard of.

We can also enrich our notion of continuity. Before we said that a function from a topological space defined by a neighborhood system to another one is continuous at a point if for each neighborhood contained the image of some neighborhood , and we said that was continuous if it was continuous at every point of .

Now our uniform structures allow us to talk about neighborhoods of all points of a space together, so we can adapt our definition to work uniformly. We say that a function from a uniform space to another one is *uniformly* continuous if for each entourage there is some entourage that gets sent into . More precisely, for every pair the pair is in .

In particular, any neighborhood of a point is of the form for some entourage . Then uniform continuity gives us an entourage , and thus a neighborhood which is sent into . Thus uniform continuity implies continuity, but not necessarily the other way around. It is possible that a function is continuous, but that the only ways of picking neighborhoods to satisfy the definition do not come from entourages.

These two extended definitions play well with each other too. Let’s consider a uniformly continuous function and a Cauchy net in . Then I assert that the image of this net is again Cauchy. Indeed, for every entourage we want a so that and imply that the pair is in . But uniform continuity gives us an entourage that gets sent into , and the Cauchy property of our net gives us a so that for all and above . Then and we’re done.

It wouldn’t surprise me if one could turn this around like we did for neighborhoods. Given a map which is not uniformly continuous use the uniform structure as a directed set and construct a net on it which is Cauchy in , but whose image is not Cauchy in . Then one could define uniform continuity as preservation of Cauchy nets and derive the other definition from it. However I’ve been looking at this conjecture for about an hour now and don’t quite see how to prove it. So for now I’ll just leave it, but if anyone else knows the right construction offhand I’d be glad to hear it.

## Bases and Subbases

We’ve defined topologies by convergence of nets, by neighborhood systems, and by closure operators. In each case, we saw some additional hypothesis — sometimes more and sometimes less explicitly — to restrict which data actually corresponded to a topological space. That is, many neighborhood systems give rise to the same topology, which in turn induces only one of those neighborhood systems. Now let’s turn back to our original definition of topology and see how we can weaken it in a similar way.

Remember that we defined the closure of a set in a topological space as the smallest closed set containing . To get at it, we took the intersection of all the closed sets containing . And we knew that at least one such closed set existed because the whole space was closed. We’re going to do the exact same thing to come up with topologies.

So let’s take a collection of subsets of . We want the smallest collection of subsets of that contains so that is a topology. To get at it, we consider all the topologies on that contain , and then take their intersection. As we saw back when we first defined topologies, this intersection will again be a topology, and it will be contained in any topology containing . And we know that we have at least one topology containing because the discrete topology has all of as its open sets.

Let’s see how we can build up the topology from more directly. What is it that prevents from being a topology itself? Well, it might not be closed under taking arbitrary unions and finite intersections. So let’s start with and throw in all the unions of finite intersections of elements of . We’ll use the convention that the union of no subsets of is the empty set , while the intersection of no subsets of is the entire set . This means we at least have and as unions of finite intersections.

Now let’s consider the intersection of two such sets. That is, if we start with and , then we get the intersection

which is again a union of finite intersections. Similarly, if we take an arbitrary union of these unions of finite intersections, we get another union of finite intersections. And any topology containing the sets in must contain these sets. So this is exactly the topology generated by . In this case, we call a subbase for the topology it generates.

“Subbase”? What happened to “base”? Well, a base for a topology is sort of halfway in between a subbase and a topology. First of all, we require that the elements of cover . That is, every point in shows up in at least one of the sets in . We also require that if and are in and then there is some in with . Thus we can write the intersection of any two elements of as a union of other elements of . The covering property says that we can write the empty intersection as a union as well. And so we don’t need to take any intersections at all — only unions. That is, a base for a topology on a set is a collection of subsets of so that every subset in is a union of subsets in . In particular, if we start with any collection of sets and throw in all the finite intersections of subsets in we get a base for the topology generated by .

Probably the nicest thing about defining a topology with a subbase is that the subbase is all we need to check continuity. More explicitly: let be a subbase generating a topology on a set , and let be any topological space. Then we have defined a function to be continuous if for each . What I’m asserting here is that we can weaken this to say that implies . For then any set in is the union of finite intersections of sets in , and the preimage of such a set is then the union of the finite intersections of the preimages of the sets in . So if these are all open, so will be the preimage of every set in .

## Nets and Continuity

Okay, so why have we been talking about nets? Because continuous functions look great in terms of nets!

First I’ll give you the answer: a function is continuous if and only if . To be a little more clear, let’s write for . Then . That is, a continuous function preserves the limits — and more generally the accumulation points — of all nets. Now this looks a lot more like algebra than that messy business of pulling back open sets!

We can even get a little finer and say that a function is continuous at a point if every net in that converges to gets sent to a net in converging to . Then we say that a function is continuous if it is continuous at all points of . This should remind us of how we defined continuity at a point by using neighborhood systems, and so we’ll show the equivalence of that definition of continuity and our new one.

So, let and have the neighborhood systems and , respectively. We’ll assume that for every neighborhood there is a neighborhood with . Now if we take a net converging to , we must show that is eventually in for all . But for each such neighborhood of we have a neighborhood , and we know that is eventually in . Then must be eventually in , and so converges to .

On the other hand, let’s suppose that there is some neighborhood of so that no neighborhood of completely fit into . We’ll construct a net converging to , but whose image doesn’t converge to . For our directed set we take the neighborhood filter itself, ordered by inclusion. That is, if . Then since there must be some point with . We pick any such point as the value of our net at . Clearly the net is eventually in every neighborhood of , and so the net converges to . But just as clearly, since is not eventually in , the image net can’t converge to .

So nets give us a very “algebraic” picture of topological spaces. A topological space is a set equipped with a (partially-defined) rule that sends every convergent net to its limit point in , and continuous maps are those which preserve this rule. Still, there’s something different here. Since taking the limit only works on some nets, this “preservation” is to be read in a more logical sense: if the net converges then the image net converges, and we know the answer. However, the image net could easily converge without the original net converging, and then we have no idea what its limit is. This is in contradistinction to the case for algebraic structures, where the algebraic operations are always defined and the connection between source and target structures feels a lot tighter.

There’s also a tantalizing connection to category theory, in that our directed sets are categories of a sort. Clearly I’d like to think of a net as some sort of functor, and the limit of a net as being the limit of this functor. But I don’t really see what the target category should be. I could take objects to be points of , but then what are the morphisms? And if the objects aren’t points of , what are they? How does this process of taking a limit correspond to the categorical one?

## Nets, Part II

Okay, let’s pick up our characterization of topologies with nets by, well, actually using them to characterize a topology. First we’re going to need yet another way of looking at the points in the closure of a set.

Here goes: a point is in if and only if every open neighborhood of has a nonempty intersection with . To see this, remember that the closure of is the complement of the interior of the complement of . And we defined the interior of the complement of as the set of points that have at least one open neighborhood completely contained in the complement of . And so the closure of is the set of points that have no open neighborhoods completely contained in the complement of . So they all touch somewhere. Cool?

Okay, so let’s kick it up to nets. The closure consists of exactly the accumulation points of nets in . Well, since we know that every accumulation point of a net is the limit of some subnet, we can equivalently say that consists of the limit points of nets in . So for every point in we need a net converging to it, and conversely we need to show that the limit of any convergent net in lands in .

First, let’s take an . Then every open neighborhood of meets in a nonempty intersection, and so we can pick an . The collection of all open neighborhoods is partially ordered by inclusion, and we’ll write if . Also, for any and we have and . Thus the open neighborhoods themselves form a directed set. The function is then a net in . And given any neighborhood of there is a neighborhood contained in . And then for any we have , so our net is eventually in . Thus we have a net which converges to .

Now let’s say is a net converging to . Then is eventually in any open neighborhood of . That is, every open neighborhood of meets in at least one point, and thus .

So for any , the closure is the collection of accumulation points of all nets in . And now we can turn this around and define a closure operator by this condition. That is, we specify for each net the collection of its accumulation points, and from these we derive a topology with this closure operator.

Let’s see that we really have a closure operator. First of all, clearly for all because we can just take constant nets. Even easier is to see that there are no nets into , and so its closure is still empty. Any accumulation point of a net in is the limit of a subnet, which we can pick to lie completely within either or , and so .

To finish, we must show that this purported closure operator is idempotent. For this, I’ll use a really nifty trick. A point in is the limit of some net , and each of the points is the limit of a net . So let’s build a new directed set by taking the disjoint union and defining the order as follows: if and for and in , then if , or if and in . Then combining the nets we get a net from this new directed set, which clearly has an accumulation point at the limit point of , and which is completely contained within . This completes the verification that is indeed a closure operator, and thus defines a topology.

## Nets, Part I

And now we come to my favorite definition of a topology: that by nets. If you’ve got a fair-to-middling mathematical background you’ve almost certainly seen the notion of a sequence, which picks out a point of a space for each natural number. Nets generalize this to picking out more general collections of points.

The essential thing about the natural numbers for sequences is that they’re “directed”. That is, there’s an order on them. It’s a particularly simple order since it’s total — any two elements are comparable — and the underlying set is very easy to understand. We want to consider more general sorts of “directed” sets, and we define them as follows: a directed set is a preorder so that for any two elements and we have some with and . That is, we can always find *some* point that’s above the two points we started with. doesn’t have to be distinct from them, though — if then is just such a point.

In categorical terms this is not quite the same as saying that our preorder has coproducts, since we don’t require any sort of universality here. We might say instead that we have “weak” binary coproducts, but that might be inessentially multiplying entities, and Ockham don’t play that. However, if we also throw in the existence of “weak” coequalizers — for a pair of arrows and there is at least one arrow so that — we get something called a “filtered” category. Since there’s no such thing as a pair of distinct parallel arrows in a preorder, this adds nothing in that case. However, filtered categories show up in the theory of colimits in categories. In fact originally colimits were only defined over filtered index categories .

Anyhow, let’s say we have such a directed set at hand. If it helps, just think of with the usual order. A net in a set is just a function . Now we have a bunch of definitions to talk about how the image of such a function behaves. Given a subset , we say that the net is “frequently” in if for any there is a with . We say that the net is “eventually” in if there is an so that for all . For sequences, the first of these conditions says that no matter how far out the sequence we go we can find a point of the sequence in . The second says that we will not only land in , but stay within from that point on.

Next let’s equip with a topology defined by a neighborhood system. We say that a net converges to a point if for every neighborhood , the net is eventually in . In this case we call the limit of . Notice that if has a top element so that for all then the limit of is just . In a sense, then, the process of taking a limit is an attempt to say, “if *did* have a top element, where would it have to go?”

Now, a net may not have a limit. A weaker condition is to say that is an “accumulation point” of the net if for every neighborhood the net is *frequently* in . For instance, a sequence that jumps back and forth between two points — for even and for odd — has both and as accumulation points. We see in this example that if we just picked out the even elements of we’d have a convergent sequence, so let’s formalize this concept of picking out just some elements of .

For sequences you might be familiar with finding subsequences by just throwing out some of the indices. However for a general directed set we might not be left with a directed set after we throw away some of its points. Instead, we define a final function between directed sets to be one so that for all there is some so that implies that . That is, no matter “how far up” we want to get in , we can find some point in so that the image of everything above it lands above where we’re looking in . For sequences this just says that no matter how far out the natural numbers we march there’s still a point ahead of us that we’re going to keep. Then, given a net and a final function we define the subnet .

Now the connection between accumulation points and limits is this: if is an accumulation point of then there is some subnet of which converges to . To show this we need to come up with a directed set and a final function so that is eventually in any neighborhood of . We’ll let the points of be pairs where , , and . We order these by saying that if and .

Given and in , then is again a neighborhood of , and so is frequently in . Thus there is a with , , and . Thus is in , and is above both and , which shows that is directed. We can easily check that the function defined by is final, and thus defines a subnet of . Now if is any neighborhood of , then there is some . If then . Thus is eventually in .

Conversely, if has a limit then is clearly an accumulation point of .

## Continuity redux

So now we have two new ways to talk about topologies: neighborhoods, and closure operators. We can turn around and talk about continuity directly in our new languages, rather than translating them into the open set definition we started with.

First let’s tackle neighborhoods. Remember that a continuous function from a topological space to is one which pulls back open sets. That is, to every open set there is an open set which sends into . But in the neighborhood definition we don’t have open sets at the beginning; we just have neighborhoods of points.

What we do is notice that a neighborhood of a point is a set which contains an open set containing . In particular we can consider neighborhoods of a point . The the preimage is an open set containing , which is a neighborhood! So, given a neighborhood of there is a neighborhood of so that . This is an implication of the definition of continuity written in the language of neighborhoods, and it turns out that we can turn around and derive our definition of continuity from this condition.

To this end, we consider sets and with neighborhood systems and , respectively. We will say that a function is continuous at if for every neighborhood there is a neighborhood so that , and that is continuous if it is continuous at each point in .

Now, let be an open set in . That is, a set which is a neighborhood of each of its points. We must now show that is a neighborhood of each of *its* points. So consider such a point , and its image Since we are assuming that is a neighborhood of , there must be a neighborhood of so that . But then , and since the neighborhoods of form a filter this means is a neighborhood as well. Thus the preimage of an open set is open.

In particular, we can consider a set and its interior , which is an open set contained in . And so its preimage is an open set contained in . Thus we see that . Finally, we can dualize this property to see that . That is, the image of the closure of is contained in the closure of the image of for all subsets . Let’s now take this as our definition of continuity, and derive the original definition from it.

Well, first let’s just dualize this condition to get back to say that for all sets . Now any open set is its own interior, so . But by the definition of the interior. And so is its own interior, and is thus open.