WARNING: This post won’t make much sense unless you’ve read at least my first Topology As Touching post.
Product Topologies and the Mystery of the Finiteness Constraint
Okay, it looks like I’m back to posting about topology. As per usual, I have been slow-burn revisiting topological notions through the lens of touching, a different axiomatization of topology that seems to give me a different intuitive sense of the relevant concepts than the way I originally learned about them from Munkres’s textbook. In general I’m a fan of being able to triangulate mathematical concepts from different perspectives, and topology’s abstractness and counter-intuitive facets push me to keep searching for new sources of clarity. One of these counter-intuitive facets is the construction of product topologies, especially when the product is infinite. As I’ll describe next, the usual presentation magically introduces a particular “finiteness” constraint that feels to me like it arises with little intuition, aside from “getting the right answers.” I hope to show that by switching from the open-set conception of topologies to the touching conception of topologies, we can extract a bit more intuition about why finiteness arises in infinite product topologies.
Product Topologies the Open Set Way
Munkres, like most topology texts, explains the concept of topology in terms of open sets (Bourbaki can be credited/blamed for this). Thus, when it comes time to explain many topological concepts, they are often described in terms of their effect on open sets or on the interaction between open sets and them. Naturally this approach is applied to product topologies.
Given two sets \(A\) and \(B\), and their elements, \(a \in A\), \(b \in B\), we often describe the product set \(A \times B\) of ordered pairs \(\braket{a,b}\) of elements of the two sets. This idea extends to topologies: given two topological spaces \(\mathcal{A}\) and \(\mathcal{B}\), we can describe the product space \(\mathcal{A} \times \mathcal{B}\), i.e. the space given the product topology in accordance with topologies \(\mathcal{A}\) and \(\mathcal{B}\). Since some set \(A\) underlies the space \(\mathcal{A}\) and some set \(B\) underlies \(\mathcal{B}\), we expect, rightfully, the product space \(\mathcal{A} \times \mathcal{B}\) to be underlay by the product set \(A \times B\) of pairs. The question to be answered is: what is the appropriate topology to apply to subsets of \(A \times B\), given the topology that \(\mathcal{A}\) imposes on \(A\) and \(\mathcal{B}\) imposes on \(B\)?
Let \(O_A\) be the set of open sets associated with \(\mathcal{A}\), and \(O_B\) be the open sets for \(\mathcal{B}\). Then the open sets for the product topology \(\mathcal{A} \times \mathcal{B}\) are constructed from the subsets \(U_A \times U_B\) for every open set \(U_A \in O_A\) and \(U_B \in O_B\). The details of the construction are not important for the purposes of this post, but at least to grad-student me, given the idea of open sets in the first place, it “feels right” that the open sets of \(\mathcal{A} \times \mathcal{B}\) would be constructed from the open sets of the component topologies.
All is great...right up until the point where we consider extending the idea to infinite products. We can generalize the notation of set-theoretic products \(A \times B\) to be \(\Pi_{j \in \set{0,1}} A_j\), so that \(A\) is now \(A_1\) and \(B\) is now \(A_2\). Then each pair \(\braket{a,b}\) is not unlike having a Python dictionary \(\set{1:a, 2:b}\) where the numbers \(1\) and \(2\) are the keys to records. In this explicitly indexed notation, the order of the entries no longer matters. This notation comes in handy if we want an infinite set of keys like \(j \in \mathbb{N}\) (where \(\mathbb{N}\) is the set of natural numbers \(0, 1, 2, \dots\)), which gives us a record with an infinite number or elements. So the general notation for generalized products becomes \(\Pi_{j \in J} A_j\), but for simplicity we’ll focus on \(J = \mathbb{N}\), the natural numbers.
At this point, the seemingly obvious (to me, and it seems, to Munkres) approach to extending product topologies to infinite products ends up being wrong. Given a family of topological spaces \(\left( \mathcal{A}_j \right)_{j \in \mathbb{N}}\), you might expect the open sets to be constructed from the sets \(\Pi_{j \in \mathbb{N}} O_j\), i.e. arbitrary products of open sets drawn from family of topologies. Unfortunately the result is indeed a topology, but it is the wrong one, in the sense that this particular topological space exhibits weird and unpleasant properties. That kind of topology, called the box topology, ends up being a source of mind-bending counterexamples. To quote Munkres:
We shall find that a number of important theorems about finite products will also hold for arbitrary products if we use the product topology, but not if we use the box topology. As a result, the product topology is extremely important in mathematics. The box topology is not so important; we shall use it primarily for constructing counterexamples.
So if following our nose does not get us the “right” product topology, how do we produce the right product topology? Well, to summarize quickly, it is constructed from subsets \(\Pi_{j \in \mathbb{N}} G_j\) where a finite number of the \(G_j\) are open sets \(O_j\) of their corresponding topologies, and the rest of the \(G_j\) are the entire coordinate set \(A_j\). What the heck?!? For some reason only a finite number of open sets from the collection of topologies is used. Why? Well, as Munkres explains it, because the resulting infinite product topologies behave like the finite ones. The textbook does provide some theorems about the two topologies that will give some satisfaction to some folks with background in a certain branch of abstract mathematics (see the end of this post if you see yourself in this sentence!), but I do not find that explanation satisfying from the internal point of view of topology itself.
Going forward, once the distinction between box topology and product topology is made, the textbook proposes various exercises to demonstrate that the box topology is just wrong. One learns by example, not by concept, about this wrongness. Don’t touch the third rail.
You should guess by now where this is going. Thanks to my time staring at, and thinking about, touching, I think I have an explanation for whither this peculiar finitarity arises in the product topology. In addition to the appeal to touching, this is also a consequence of thinking differently about products: not as particular sets, but as particular interfaces. Hopefully this is an example of how important it is to distinguish between extensionally equivalent mathematical definitions, in that they may convey significantly distinct intensional knowledge that suggests substantially different conceptions and generalizations. In this case, at least I would not have gotten here without switching from open sets to touching.
Products of Sets
First, let’s set aside topology and ask the simpler question: what is a product? I’m going to answer this question in the context of set theory, but the idea carries over to other mathematical foundations. A product is not a thing, but rather it’s an interface: an API if you will. The most common presentations of set theory (like ZFC) only have sets as entities: they don’t even have atomic non-set elements, let alone pairs of them! The main reason is that sets end up being enough: you can encode everything else using them, just like you can encode all the stuff on your computer using 0’s and 1’s. You don’t want to think at that level of abstraction 99% of the time, but it keeps things quite simple and uniform if your goal is to reason about set theory, and not to get work done in a set theory (hence my quip that set theory is the X86 instruction set of mathematics: ugly but effective).
To explain products, we’ll start simple, with pairs of natural numbers, and work up to products in general. So suppose I have the number \(5\), and the number \(7\). Informally speaking, I may want to put them together as a pair \(\braket{5,7}\), with \(5\) as the first coordinate, and \(7\) as the second. On the other hand, I might want the numbers to be reversed, \(\braket{7,5}\), with \(7\) as the first coordinate and \(5\) as the second. These are not the same pair, because the first coordinates are not equal, and also the second coordinates are not equal either. This distinction, identifying a pair with its first element and second element, is the essential concept: a pair \(p_1\) is identical to the pair \(p_2\) if and only if the first coordinate of \(p_1\) is identical to the first coordinate of \(p_2\) and the second coordinate of \(p_1\) is identical to the second coordinate of \(p_2\). For the moment, we will use the notation \(\pi_1(p)\) to denote the first coordinate of \(p\), and \(\pi_2(p)\) for the second, assuming that \(p\) is indeed a pair. Furthermore, for each ordered couple of numbers \(n_1\) and \(n_2\) there is a unique pair that has them as coordinates. For this we use the notation \(\braket{n_1,n_2}\).
Ok, so this describes an interface to pairs of natural numbers \(\mathbb{N}\times \mathbb{N}\). How do we actually “implement” that interface? Wellllllll, you can implement it however you want, so long as your “implementation” satisfies the properties that you want. Here’s an “implementation” that works: associate to each ordered couple of numbers, \(n_1\) and \(n_2\) the single natural number \(2^{n_1} \mathop{*} 3^{n_2}\). We’ll denote this pair-of-two-numbers-represented-by-one-number \(\braket{n_1,n_2}\). This is our representation of pairing. For example, \(\braket{5,7} \equiv 69,984\) and \(\braket{7,5} \equiv 31,104\). Clear as mud! Now define the set \(P\) to be the set of all natural numbers \(\mathbb{N}\) that can be represented in the form \(2^{n_1} * 3^{n_2}\) for some \(n_1\) and \(n_2\). Now define a function \(\pi_1\) to be the function from \(P\) to \(\mathbb{N}\) that produces the unique value \(n_1\) such that \(p = 2^{n_1} * 3^{n_2}\) for some natural number \(n_2\), i.e. \(\pi_1(\braket{n_1,n_2}) = n_1\). Finally take the analogous step for \(\pi_2\). Voila! So long as you don’t violate the abstraction that you’ve created, then you have a representation of pairs of natural numbers (here is where having a type checker might help). Notice that these pairs \(p\) do not literally have copies of \(n_1\), and \(n_2\) hiding in them. They’re just numbers that satisfy some convenient arithmetical relationship to \(n_1\) and \(n_2\). The functions \(\pi_1\) and \(\pi_2\) are where all the real work happens. You might have noticed that I introduced our representation of pairs using notation (i.e. syntactic sugar), whereas I introduced projection as a function. This saves me from the circular pain of describing a priori what the domain of a function \(\braket{\bullet,\bullet}\) is. For reference, this trick, often associated with Kurt Gödel, depends on \(2\) and \(3\) being prime numbers, and the uniqueness of prime factorization.
There are many, many alternative sets \(P\), conceptions of \(\braket{\bullet,\bullet}\), and finction \(\pi_1\) and \(\pi_2\) that would suffice to implement the pair-of-natural-numbers interface. And we can always translate between implementations as needed if we have multiple different ones at play. All of these implementations implement the same thing, which is the concept of pairs of natural numbers, and impose a behavioural notion of identity among them (cf. “Duck Typing”).
Generalizing beyond numbers, some implementations of pairs in set theory are completely agnostic to the kinds of things being paired. The most famous is due to Kuratowski: \(\braket{a,b} \equiv \set{a,\set{a,b}}\). I’m not going to explain this one, but it just uses a simple set-theoretic encoding to distinguish between the first element and the second element. Note, however, that the pair of two copies of the same element \(\braket{a,a} \equiv \set{a,\set{a}}\), which is a little wild, in that this doesn’t cause any problems (Kuratowski was a bright dude!). There are many, many set-theoretic pair encodings, each with different “implementation-side” properties: but they all satisfy the same interface. Furthermore, these ideas can be extended to arbitrary products \(\Pi_{j \in J} A_j\).
Some Geometric Intuition for Product Topologies
Product topologies build upon this abstract notion of products of sets. But before I get into the formal bits of the product topology, I will try to bring some geometric intuition to bear on the problem. In particular, we’ll start with Two-dimensional Euclidean space, the space of two-dimensional geometric objects. In this world, a point touches a set of points if and only if the point is either a member of the set or is “arbitrarily close” to the set, as demonstrated in some of my earlier posts about topology. For now geometric intuition ought suffice.
Imagine that you have a disc and a point next to one another (see Fig 1). Does the point touch the disc? I’m hoping that you will say “no”. But how can you tell? Intuitively there is a gap between the point and any point on the line, which is easy to tell when looking “down” on this figure from “up above” in the third-dimension, which as it happens does not exist in two-dimensional geometry.
So let’s consider the problem from within two-dimensional geometry. Suppose that, in order to answer the question, you are only allowed to look the “shadow” that the figure casts onto the (one-dimensional) x axis, and the shadow that the figure casts onto the (also one-dimensional) y axis (see Fig 2). Uh oh! If we view the projection of the disc and point onto the coordinate axes, then from both vantages, the point (drawn huge for emphasis) appears to be touching the line segment that results from projecting the disc. So it seems, at first, like we simply cannot judge touching correctly based on coordinate projections.
But we can! This is thanks to one of the axioms of touching: if \(a\) is a point, and \(A\) and \(B\) are (possibly overlapping) sets, then \(a \mathrel{\delta}A \cup B\) implies tha \(a \mathrel{\delta}A\) or \(a \mathrel{\delta}B\), where \(a \mathrel{\delta}A\) is the relation that says a point \(a\) touches a set \(A\), and by which a topological space can be described. In words, if \(a\) touches a set that can be described in two parts, then it must touch at least one of those two parts. This statement generalizes to any finite number of parts, because we can repeat this reasoning any (finite) number of times, slicing and dicing the original set piecemeal.
This axiom immediately implies the following contrapositive statement: If \(a \mathrel{\not\delta}A\) and \(a \mathrel{\not\delta}B\) then \(a \mathrel{\not\delta}A \cup B\), where \(\mathrel{\not\delta}\) means “does not touch”. So to prove that \(a\) does not touch some aggregate object, it suffices to break it into two pieces and show that \(a\) does not touch either of the pieces.
We also need one more piece of reasoning to solve our puzzle, and it’s based on the fact that the two projections onto the coordinate axes, which we’ll call \(\pi_1\) and \(\pi_2\), are continuous functions. A \(f\) between two topological spaces is continuous if and only if \(a \mathrel{\delta}A\) implies \(f(a) \mathrel{\delta}f(A)\), where \(f(A)\) is the pointwise mapping of all elements of the set \(A\). I hope that via geometric intuition you can believe that if the point did in fact touch the disc, then the projection of the point would necessarily touch the projection of the disc. By contrapositive, we get: If \(f(a) \mathrel{\not\delta}f(A)\) then \(a \mathrel{\not\delta}A\)
Notice what the above does not say! If we discover that \(f(a) \mathrel{\delta}f(A)\), that tells us nothing about whether \(a \mathrel{\delta}A\) or not. This explains why our disc in fact does not touch the point, but the two projected lines nonetheless touch their corresponding projected points. So sad!
\(\pi_2(A)\) | \(\pi_2(B)\) | |
![]() |
![]() |
![]() |
\(\pi_1(A)\) | ![]() |
|
\(\pi_1(B)\) | ![]() |
But what if we cut the disc into two semi-discs \(A\) and \(B\) (see Fig. 3)? Well first consider \(A\): \(\pi_2(p) \mathrel{\delta}\pi_2(A)\), which is no better than our previous attempt, but \(\pi_1(p) \mathrel{\not\delta}\pi_1(A)\), which implies \(A \mathrel{\not\delta}p\)! Similarly, \(\pi_1(p) \mathrel{\delta}\pi_1(B)\), but \(\pi_2(p) \mathrel{\not\delta}\pi_2(B)\), which implies \(B \mathrel{\not\delta}p\)! Since we know \(p \mathrel{\not\delta}A\) and \(p \mathrel{\not\delta}B\), we get \(p \mathrel{\not\delta}A \cup B\). Voila!
We need to reflect on this a bit more to understand the pattern. Had our point been a bit further up or to the right of the disc, then we would not have needed to break the disc into two pieces: one big piece would have sufficed because our original projections could have observed non-touching. So we don’t need to always break our set into two pieces, which happens to be the number of coordinates of our product space. Can we break the disc into more than two pieces? The answer is yes! Suppose we broke \(A\) into pieces \(A_1\) and \(A_2\), and left \(B\) the same, giving us a total of three pieces (see Fig. 4). Then we would have found that \(\pi_1(p) \mathrel{\not\delta}\pi_1(A_1)\) and \(\pi_1(p) \mathrel{\not\delta}\pi_1(A_2)\) so all three pieces would still not touch \(p\). Moreover, in the illustrated case, we have split \(A\) in a way that \(\pi_2(p) \mathrel{\not\delta}\pi_2(A_2)\) also holds. So the three-way split was overkill: we could have left things as \(A\) and \(B\), but we could also have originally split into \(A_1\) and \(B \cup A_2\), or even the overlapping \(A = A_1 \cup A_2\) and \(A_2 \cup B\)! Given an arbitrary finite split, we could combine subsets that \(\pi_1\) can prove do not touch \(p\) and combine subsets that \(\pi_3\) can prove do not touch \(p\) and still prove failure to touch. In this two-dimensional case, two subsets are sufficient but not necessary.
To summarize, the key to proving that a point does not touch a two-dimensional set through coordinate projections is to find some way to split the set into a finite number of pieces that suffice to prove, via some projection, that each piece fails to touch the point. If this is not possible, then the point must touch the set. It is this strategy that we seek to generalize to the definition arbitrary products of arbitrary topological spaces.
From Products of Sets to Products of Topological Spaces
In the last geometric example, we came up with a way to use projection and the 1-dimensional geometry to reason about 2-dimensional touching. So we noticed that our 2 dimensional notion of non-touching corresponded with non-touching of projections of chunks of the 2-dimensional set. This is the key to understanding what a topological product is. Once again, it’s not a set, it’s an interface, but that interface has more structure than the one for mere set-theoretic products.
Suppose you have a set \(A\) and a set \(B\), and furthermore you have a notion of touching \(\mathrel{\delta}_A\), and \(\mathrel{\delta}_B\) for each, so they form topological spaces. We already know that we can produce some set \(P\) that implements products \(A \times B\) set-theoretically, some representation\(\braket{a,b}\) that that denotes pairing an element of \(A\) and an element of \(B\) to a pair, and projections \(\pi_1\), and \(\pi_2\) that can uniquely project out elements from the pair representation.
Now, our problem is to answer the question “what topological structure (i.e. touching relationship) applied to \(P\) makes it a product of \((A,\mathrel{\delta}_A)\) and \((B,\mathrel{\delta}_B)\)? Well, if we want to incorporate the topological structure of \(A\) and \(B\) like our geometric example, then we need the topology on \(P\) to ensure that \(\pi_1\) and \(\pi_2\) are continuous functions. But that’s too easy: just give \(P\) the discrete topology: the one where touching coincides with elementhood (\(x \mathrel{\delta}_P X\) if and only if \(x \in X\), the least amount of touching possible), or where all subsets are open, so the most amount of open sets). That would make the two functions continuous, trivially. Looking from the other side, consider the trivial topology: the one where every point touches every set (so the most amount of touching), or where the only open sets are the empty set and the entire space (so the least amount of touching). Our projections \(\pi_1\) and \(\pi_2\) would not be continuous unless \((A,\mathrel{\delta}_A)\) and \((B,\mathrel{\delta}_B)\) were also trivial spaces. So we want something in between but canonical.
Here is what we want for \(P\): the topology with the most touching possible for which both \(\pi_1\) and \(\pi_2\) are continuous. This can also be called the coarsest topology, because coarseness in topology is defined in terms of open sets, so it’s the topology with the fewest open sets. As it happens, this topology, \(\mathrel{\delta}_P\) will have the property that \(p \mathrel{\not\delta}B\) if and only if \(B\) can be broken up into a finite number of pieces \(B_1,\dots,B_n\) such that for each \(B_i\) we can use \(\pi_1\) or \(\pi_2\) to prove that \(p \mathrel{\not\delta}B_i\).
Conveniently enough, for pairs we can always succeed with just two pieces: union together all the pieces \(B_i\) that can be deemed non-touching by \(\pi_1\), and union together all the pieces that can be deemed non-touching by \(\pi_2\).
To Infinity And Beyond!
Ok, so we came up with an API-based characterization of the product topology for pairs: first come up with a set-based notion of products, and then, given a notion of touching for each coordinate, induce a notion of touching for the entire product space \(P\). What’s wild is that this definition works for arbitrary products, even infinite ones. Furthermore, it helps explain why the definition of infinitary product topologies in terms of open sets has the finiteness constraint!
Instead of subscripts \(1\) and \(2\), consider an infinite number of subscripts \(j \in \mathbb{N}\). So we have an infinite product space, with one projection \(\pi_i\) for each coordinate. We no longer try to use bracket notation \(\braket{\dots}\) to denote these sequences because we don’t have enough ink. So given an infinite collection of topological spaces \(\mathcal{A}_j = (A_j,\mathrel{\delta}_j)\), and a set-theoretic product \(P = \Pi_{j\in \mathbb{N}} A_j\), what is the corresponding product topology \(\mathcal{P} = \Pi_{j\in \mathbb{N}} \mathcal{A}_j\)? Well, it’s the direct analogue of our geometric space: given a product of sets \(\Pi_{j\in \mathbb{N}} A_j\) it’s the coarsest touching relation \(\mathrel{\delta}_P\) over that set—coarsest in the sense of satisfying the most touching relationships, and thereby the fewest non-touching relationships—for which all (infinite) \(\pi_i\) are continuous. Technically one must prove that such a touching relation always exists, which it does. And just like before, you get the property that \(x \mathrel{\not\delta}_P X\) if and only if \(X\) can be broken up into a finite number of pieces, each of which can be proven non-touching by some projection \(\pi_i\). The wild thing is that you now have an infinite number of projections \(\pi_i\) to work with, but because of the axioms of touching, you are still constrained to only break \(X\) into a finite number of pieces for purposes of refutation.
If you violate that restriction and allow as many pieces as there are projections (i.e. infinitely many), then you end up with fewer touching relationships on \(P\) than your projections \(\pi_j\) would let you get away with, and moreover I think this gives you the dreaded box topology, but why the heck would you do that?!?
As our geometric example suggested earlier, if you have a finite number of projections, then “as many pieces as projections” is both finite, and sufficient for determining non-touching according to the product topology (whose definition allows any finite number of pieces, including more pieces than there are projections). As such, for finite products, the box topology and the product topology coincide!
A Kind Note for Archers
If you are a category theory aficionado and have gotten this far without breaking your reading device, I commend you! Many of the ideas that I describe above, about API’s, interconvertibility, and the such, are most compactly and most generally described using the concept of product categories, or more generally limits, and friends. And indeed, if you already knew about category theory, I could transmit sufficient conditions for you to know what a product category is in one sentence: it’s any pair of set and continuous projections that satisfies the structure of a categorical product. The possibility of this compactness might make the very non-compact mass of words above feel a bit frustrating.
However I don’t think the above sentence could convey, viscerally, all of the different intuitions that I wanted to convey to a general audience: thinking with API’s, being constrained to looking through projections, and the focus on breaking sets into finite pieces. I guess you could say that I like to appeal to categories to make sure I got “the right answer”, but I compile them away to explain concepts in a way that tickles pre-mathematical intuitions and demands fewer pre-requisites.
No comments:
Post a Comment