Category Theory
Zulip Server
Archive

You're reading the public-facing archive of the Category Theory Zulip server.
To join the server you need an invite. Anybody can get an invite by contacting Matteo Capucci at name dot surname at gmail dot com.
For all things related to this archive refer to the same person.


Stream: learning: questions

Topic: representable free functors?


view this post on Zulip David Egolf (Sep 28 2023 at 01:35):

I have seen several examples of forgetful functors that are representable. For example, consider the forgetful functor U:GroupSetU:\mathsf{Group} \to \mathsf{Set} that sends each group to its underlying set, and each group homomorphism to its underlying function. As noted in Riehl's "Category Theory in Context", this functor is represented by the group Z\Z of integers under addition; so UGroup(Z,)U \cong \mathsf{Group}(\Z,-). There are also several other examples of representable forgetful functors in the same book.

However, I don't currently know of any examples of "free functors" that are representable. Intuitively, a free functor is one that "freely adds in" structure, often mapping from Set\mathsf{Set} to a category of sets with additional structure.

I tried to describe what I meant by a free functor more concretely in an earlier version of this post. However, I have since realized that I don't yet have a precise idea of what a "free functor" is! Hopefully the rough intent of this question is somewhat clear, despite this: Are there any representable free functors? (And if so, what are some examples?)

view this post on Zulip Kevin Arlin (Sep 28 2023 at 03:30):

Well, are there any functors that feel “free” to you that land in Set? Tough to be representable with that! (Although there may be more to say in that direction…)

view this post on Zulip Todd Trimble (Sep 28 2023 at 03:47):

There is the identity functor on sets...

A "free functor" is left adjoint to a "forgetful functor", but what does "forgetful" mean exactly? What is being forgotten? There is a point of view where pretty much any functor can be regarded as forgetting something (even if that something is "nothing", as in the identity functor). See stuff, structure, property for some in-depth thinking on this topic.

view this post on Zulip David Egolf (Sep 28 2023 at 05:02):

Kevin Arlin said:

Well, are there any functors that feel “free” to you that land in Set? Tough to be representable with that! (Although there may be more to say in that direction…)

Ah, that's a good point. I had forgotten that representable functors always map to Set\mathsf{Set}...
However, I'd be willing to consider working in a VV-enriched category, so that representable functors wouldn't need to map to Set\mathsf{Set}, but would instead map to VV.

The intuition I have in mind is that possibly the morphisms between objects in some case could be more "structured" than the objects themselves (e.g. maybe in some category the morphisms from AA to BB assemble into a vector space, but AA and BB are simpler objects than vector spaces).

@Todd Trimble also makes a good point - what is "free" depends strongly on what we consider to be "forgetful". Thanks for linking to that nlab article talking about how functors can forget different amounts/kinds of things! Hopefully someday relatively soon I'll work on understanding the concept of "stuff, structure, and properties" - but there are so many interesting things to learn, and so this may take me a while.

view this post on Zulip Morgan Rogers (he/him) (Sep 28 2023 at 06:56):

@David Egolf it's worth noting that (covariant) representable functors preserve all limits - can you see why? That means that as soon as the hypotheses of one of the Adjoint Functor Theorems are satisfied by your categories that they will be right adjoints. As such, unless a free functor has a further left adjoint, it is unlikely to be representable.

view this post on Zulip John Baez (Sep 28 2023 at 07:38):

David Egolf said:

I have seen several examples of forgetful functors that are representable. For example, consider the forgetful functor U:GroupSetU:\mathsf{Group} \to \mathsf{Set} that sends each group to its underlying set, and each group homomorphism to its underlying function. As noted in Riehl's "Category Theory in Context", this functor is represented by the group Z\Z of integers under addition; so UGroup(Z,)U \cong \mathsf{Group}(\Z,-).

A lot of forgetful functors are right adjoints, like the one you mentioned. Did you notice that every right adjoint U:CSetU: \mathsf{C} \to \mathsf{Set} is representable?

In the example you mentioned it's representable by F(1)F(1), where F:SetCF: \mathsf{Set} \to \mathsf{C} is the left adjoint of UU. Did you notice that every right adjoint U:CSetU: \mathsf{C} \to \mathsf{Set} is representable by F(1)F(1)?

If don't already know this, you might enjoy showing it. The proof is just a two line computation using the definitions of "representable", "left adjoint", "right adjoint", and the special feature of the set 11: for any set XX,

Set(1,X)X \mathsf{Set}(1,X) \cong X

view this post on Zulip John Baez (Sep 28 2023 at 07:40):

I learned this very late in life, from @Todd Trimble. It explains a lot of things.

view this post on Zulip Matteo Capucci (he/him) (Sep 28 2023 at 08:48):

Ha, what a nice little fact!

view this post on Zulip John Baez (Sep 28 2023 at 10:42):

We used the 2-categorical analogue of this in our paper on 2-rigs to show that the forgetful functor from 2-rigs to categories is represented by the free 2-rig on one object. It doesn't matter what a 2-rig is: all that matters is that you have a right adjoint 2-functor from the 2-category of them to Cat\mathsf{Cat}.

view this post on Zulip Mike Shulman (Sep 28 2023 at 16:08):

There's also a version of this for categories enriched over any closed symmetric monoidal category VV, since in any such category [I,X]X[I,X] \cong X where II is the unit object and [,][-,-] is the internal-hom, which is the enriched hom in the canonical self-enrichment of VV.

view this post on Zulip David Egolf (Sep 28 2023 at 21:04):

Thanks again for all your excellent answers! It will take me some time to properly read them and respond, but I hope to do so. (I have some catching up to do in some other threads too, so I should probably try and restrain myself from asking even more questions for now!)

view this post on Zulip David Egolf (Sep 29 2023 at 00:57):

Morgan Rogers (he/him) said:

David Egolf it's worth noting that (covariant) representable functors preserve all limits - can you see why?

This is actually something I've been wanting to understand for a while now! I'm currently working on doing some exercises relating to preservation of limits (currently in Riehl), to try and expand my toolbox relating to this.
So I suppose the answer to "can you see why?" is: "not yet, but I hope to relatively soon!"

view this post on Zulip Todd Trimble (Sep 29 2023 at 02:04):

As for the "can you see why?", I might suggest closing the books and thinking through, from first principles, why representable functors preserve binary products, and similarly preserve terminal objects. The case for general limits is an extrapolation that is not too extravagant.

view this post on Zulip John Baez (Sep 29 2023 at 09:16):

Yes, you don't really need tools to prove that representable functors preserve limits: it sort of falls out from the definitions. Even I can do it, and I never remember any of those tools. Todd is right: start with binary products and just write down what it means that representable functors preserve those.

view this post on Zulip David Egolf (Sep 29 2023 at 17:06):

Todd Trimble said:

As for the "can you see why?", I might suggest closing the books and thinking through, from first principles, why representable functors preserve binary products, and similarly preserve terminal objects. The case for general limits is an extrapolation that is not too extravagant.

Thanks for the suggestion! It's helpful to have something specific to try.

Let us assume we have a functor C(a,):CSetC(a,-): C \to \mathsf{Set} that sends a morphism f:xyf: x \to y to the morphism f:C(a,x)C(a,y)f_*: C(a,x) \to C(a,y), where f(g)=fgf_*(g) = f \circ g.
To show that C(a,)C(a,-) preserves products, we want to show that C(a,c×d)C(a,c)×C(a,d)C(a,c \times d) \cong C(a,c) \times C(a,d).

However, C(a,c×d)C(a,c)×C(a,d)C(a,c \times d) \cong C(a,c) \times C(a,d) seems to follow immediately from the universal property for products. (I'm not sure if expanding in more detail here would be helpful).

So, since c×dc \times d is a product, we conclude that C(a,c×d)C(a,c)×C(a,d)C(a,c \times d) \cong C(a,c) \times C(a,d), for any c,dCc,d \in C. We conclude that any functor of the form C(a,):CSetC(a,-): C \to \mathsf{Set} preserves products.

Now let us assume we have a functor F:CSetF: C \to \mathsf{Set} so that FC(a,)F \cong C(a,-) for some aCa \in C. Then F(c×d)C(a,c×d)F(c \times d) \cong C(a,c \times d), because FC(a,)F \cong C(a,-). But we saw already that C(a,c×d)C(a,c)×C(a,d)C(a, c \times d) \cong C(a,c) \times C(a,d). By transitivity of "being isomorphic", we conclude that F(c×d)C(a,c)×C(a,d)F(c \times d) \cong C(a,c) \times C(a,d).

I would like to note that C(a,c)F(c)C(a,c) \cong F(c) and C(a,d)F(d)C(a,d) \cong F(d) and conclude that C(a,c)×C(a,d)F(c)×F(d)C(a,c) \times C(a,d) \cong F(c) \times F(d). I think this is probably true: that replacing objects with isomorphic objects should only impact the result of taking the product up to isomorphism. I'm not immediately seeing how to prove this though.

If we assume that C(a,c)F(c)C(a,c) \cong F(c) and C(a,d)F(d)C(a,d) \cong F(d) implies that C(a,c)×C(a,d)F(c)×F(d)C(a,c) \times C(a,d) \cong F(c) \times F(d), then we have that F(c×d)C(a,c)×C(a,d)F(c)×F(d)F(c \times d) \cong C(a,c) \times C(a,d) \cong F(c) \times F(d), and so FF preserves products. Under this assumption, we conclude that any covariant representable functor preserves products.

view this post on Zulip David Egolf (Sep 29 2023 at 17:09):

Two things that might warrant some future thought:

view this post on Zulip Kevin Arlin (Sep 29 2023 at 17:30):

For the first question, yes we can and should: the definition of "FF preserves (binary) products" is that if πA:CA,πB:CB\pi_A:C\to A,\pi_B:C\to B is a product cone then F(πA):F(C)F(A),F(πB):F(C)F(B)F(\pi_A):F(C)\to F(A),F(\pi_B):F(C)\to F(B) is a product cone as well. Checking that more concrete condition may help you to avoid saying "well, this sure seems obvious" rather than just writing things down, though indeed it ought to eventually seem obvious!

The second question is slightly subtle. Naturally isomorphic diagrams have isomorphic limits, and this is an important result to know eventually but maybe not to prove today; you might like to check directly that isomorphic product diagrams have isomorphic products, since the diagram for a product is just a pair of objects and an isomorphism between such diagrams is just a pair of isomorphisms. That handles both the result I stated and the result you stated in this case. For the result you stated in general, you would want to show that if I have a diagram DD with some value D(j)D(j) and an object XX with an isomorphism D(j)X,D(j)\cong X, then there's a natural isomorphism DDD\cong D' with D(j)=X.D'(j)=X. Then you could apply the result I stated. This is not really an important result at this stage, nor hard to prove once you're quite comfortable working with arbitrary diagrams and their natural isomorphisms, although it's good that you noticed it's not vacuous! It becomes more interesting much further down the road when you find you want to know the word "cofibration".

view this post on Zulip Chris Grossack (they/them) (Sep 29 2023 at 17:33):

David Egolf said:

Here's a very boots-on-the-ground approach:

Let's stick with products as a toy example. Say we have isomorphisms f:AAf: A \cong A' and g:BBg : B \cong B'. We want to build an isomorphism A×BA×BA \times B \cong A' \times B'. I'll tell you that the trick is to leverage the uniqueness of the universal property!

To get used to reading proofs that say nothing more than "the following diagram commutes", I'll say exactly that! Do you see how to flesh this out into a proof?

Screenshot-2023-09-29-at-10.32.50-AM.png

view this post on Zulip Chris Grossack (they/them) (Sep 29 2023 at 17:37):

I'll also say that there's a fancier approach, which shows why people care about the "functor of points" methodology. Notice that the representables Hom(,A×B)\text{Hom}(-, A \times B) and Hom(,A×B)\text{Hom}(-, A' \times B') are naturally isomorphic (do you see why? Here we're just working with a family of bijections of sets!). But now Yoneda tells us that A×BA \times B and A×BA' \times B' must have been isomorphic to start with!

Hopefully it's clear that this is cleaner than having to draw the diagrams like the previous proof I outlined, especially when we start working with more complicated limits.

view this post on Zulip Josselin Poiret (Sep 29 2023 at 19:00):

let me just note though (because I am That Finnicky Person™) that you often don't just want A×BA×B A \times B \simeq A' \times B' , you want them to be isomorphic as products, ie. that the product structure as well is respected by this isomorphism. With the above method on representables, it's easy to check, but it is not optional. This is similar to the usual warning that continuous functors have to respect the whole limit cones, not just their tips. Once you start working with objects with additional structure (of which the products are an example), you always want to consider the whole thing, and not just the object.

view this post on Zulip David Egolf (Sep 29 2023 at 20:47):

Kevin Arlin said:

For the first question, yes we can and should: the definition of "FF preserves (binary) products" is that if πA:CA,πB:CB\pi_A:C\to A,\pi_B:C\to B is a product cone then F(πA):F(C)F(A),F(πB):F(C)F(B)F(\pi_A):F(C)\to F(A),F(\pi_B):F(C)\to F(B) is a product cone as well.

Let me see how far I can get... To make things easier, I'll consider the special case where our representable functor F:CSetF: C \to \mathsf{Set} is of the form F=C(a,)F = C(a,-) for some object aCa \in C. Hopefully the resulting argument can then be transferred to the more general case where we only know that FC(a,)F \cong C(a,-) for some aCa \in C.

We start out with a product cone πp:p×qp\pi_p: p \times q \to p and πq:p×qq\pi_q: p \times q \to q in CC:
product cone

We now apply our functor C(a,)C(a,-) to this cone, and introduce a test cone zp:zC(a,p),zq:zC(a,q)z_p: z \to C(a,p), z_q: z \to C(a,q):
test cone and image of product cone

To show that this is a product cone in Set\mathsf{Set} we need to show that for each zz, zpz_p, and zqz_q there is a unique f:zC(a,p×q)f: z \to C(a, p \times q) so that (πp)f=zp(\pi_p)_* \circ f = z_p and (πq)f=zq(\pi_q)_* \circ f= z_q.

We make use of the fact that we are in Set\mathsf{Set}, and so we have elements available to us. If the equations (πp)f=zp(\pi_p)_* \circ f = z_p and (πq)f=zq(\pi_q)_* \circ f= z_q are to hold, that implies that for each element xzx \in z we must have:

We can draw a diagram illustrating these equations:
equations at x

Because p×qp \times q is a product of pp and qq in CC, there is a unique f(x):ap×qf(x): a \to p \times q that makes this diagram commute.

So, we conclude that for each xzx \in z, a unique value for f(x)f(x) exists so that these equations hold:

Since we can do this for any xx, we find that there is a unique f:zC(a,p×q)f: z \to C(a, p \times q) that makes these equations hold:

We conclude that the image of the product cone πp:p×qp,πq:p×qq\pi_p: p \times q \to p, \pi_q: p \times q \to q under the functor C(a,)C(a,-) is also a product cone. So, C(a,)C(a,-) preserves binary products.

It remains to show that if FC(a,)F \cong C(a,-) for some aCa \in C, then FF also preserves binary products. But before thinking about this, I want to read some of the other comments above that talk about this sort of thing!

view this post on Zulip John Baez (Sep 29 2023 at 20:58):

Ultimately one gets use to the fact that if one uses "non-evil" definitions, i.e. definitions that involve isomorphisms between objects, perhaps obeying some equations, rather than equations between objects, everything one does with them is invariant under isomorphisms in the way you'd want. E.g. a functor naturally isomorphic to one that preserves products again preserves products. But I guess it's important to sweat over these facts for a while, and then get used to the idea, and then learn some general results along these lines, and then maybe use a formalism like homotopy type theory where it's all automatic.

view this post on Zulip David Egolf (Sep 29 2023 at 21:14):

I'm wondering if there was a faster way to do the above.

C(a,p×q)C(a,p)×C(a,q)C(a, p \times q) \cong C(a,p) \times C(a,q) as objects in Set\mathsf{Set}, using the universal property of p×qp \times q. Then, I wonder if we can argue something (roughly!) along these lines: C(a,p)×C(a,q)C(a,p) \times C(a,q) is the apex for a limit over the discrete diagram with C(a,p)C(a,p) and C(a,q)C(a,q), and since C(a,p×q)C(a,p)×C(a,q)C(a,p \times q) \cong C(a,p) \times C(a,q), I think C(a,p)×C(a,q) C(a,p) \times C(a,q) should also be the apex for a limit over the discrete diagram formed by C(a,p)C(a,p) and C(a,q)C(a,q).

I guess the intuition I have is this: if AA is an apex for a limit over a diagram DD and AAA' \cong A as objects, then AA' is (I hope) also an apex for a limit over DD. But I would need to prove this!

Probably my plan to prove this would be to create a cone under AA' by starting with the limit cone under AA. To do this, I would use the isomorphism between AA' and AA to convert this cone to one under AA' - morphism by morphism. Then I would check to see if our isomorphism AAA' \cong A between objects extends to an isomorphism between the two cones we now have under these objects.

view this post on Zulip John Baez (Sep 29 2023 at 22:50):

David Egolf said:

I guess the intuition I have is this: if AA is an apex for a limit over a diagram DD and AAA' \cong A as objects, then AA' is (I hope) also an apex for a limit over DD. But I would need to prove this!

Probably my plan to prove this would be to create a cone under AA' by starting with the limit cone under AA. To do this, I would use the isomorphism between AA' and AA to convert this cone to one under AA' - morphism by morphism. Then I would check to see if our isomorphism AAA' \cong A between objects extends to an isomorphism between the two cones we now have under these objects.

Yes, all this works. If you do a concrete example of a limit, say a pullback, you can just draw everything you're talking about here (the diagram, a cone over it with apex AA, an isomorphism between AA and AA', etc.) you can see how it works. The case of a general limit is harder because you can't draw a "general diagram", so you have to reason more abstractly. But personally I'm so lazy that I often draw a concrete example and then leave it at that.

view this post on Zulip Mike Shulman (Sep 30 2023 at 02:59):

John Baez said:

But I guess it's important to sweat over these facts for a while, and then get used to the idea, and then learn some general results along these lines, and then maybe use a formalism like homotopy type theory where it's all automatic.

Of course, once homotopy type theory takes over the world, the progression will be reversed. (-:O

view this post on Zulip Todd Trimble (Sep 30 2023 at 22:47):

David Egolf said:

I'm wondering if there was a faster way to do the above.

C(a,p×q)C(a,p)×C(a,q)C(a, p \times q) \cong C(a,p) \times C(a,q) as objects in Set\mathsf{Set}, using the universal property of p×qp \times q. Then, I wonder if we can argue something (roughly!) along these lines: C(a,p)×C(a,q)C(a,p) \times C(a,q) is the apex for a limit over the discrete diagram with C(a,p)C(a,p) and C(a,q)C(a,q), and since C(a,p×q)C(a,p)×C(a,q)C(a,p \times q) \cong C(a,p) \times C(a,q), I think C(a,p)×C(a,q) C(a,p) \times C(a,q) should also be the apex for a limit over the discrete diagram formed by C(a,p)C(a,p) and C(a,q)C(a,q).

I guess the intuition I have is this: if AA is an apex for a limit over a diagram DD and AAA' \cong A as objects, then AA' is (I hope) also an apex for a limit over DD. But I would need to prove this!

Probably my plan to prove this would be to create a cone under AA' by starting with the limit cone under AA. To do this, I would use the isomorphism between AA' and AA to convert this cone to one under AA' - morphism by morphism. Then I would check to see if our isomorphism AAA' \cong A between objects extends to an isomorphism between the two cones we now have under these objects.

The crucial thing to remember is that C(a,p×q)C(a,p)×C(a,q)C(a, p \times q) \cong C(a,p) \times C(a,q) is supposed to be natural in aa. In fact, the very definition of product in a category CC can be derived directly by supposing given such a natural transformation. Hint: use the Yoneda lemma, applied to natural transformations coming out of C(,p×q)C(-, p \times q) !!

If you work through this, then C(a,)C(a, -) preserves products p×qp \times q, precisely by the definition suggested bt the last paragraph.

view this post on Zulip David Egolf (Oct 01 2023 at 16:14):

Chris Grossack (they/them) said:

David Egolf said:

Here's a very boots-on-the-ground approach:

Let's stick with products as a toy example. Say we have isomorphisms f:AAf: A \cong A' and g:BBg : B \cong B'. We want to build an isomorphism A×BA×BA \times B \cong A' \times B'. I'll tell you that the trick is to leverage the uniqueness of the universal property!

To get used to reading proofs that say nothing more than "the following diagram commutes", I'll say exactly that! Do you see how to flesh this out into a proof?

Screenshot-2023-09-29-at-10.32.50-AM.png

Thanks for explaining this! Below, I try to flesh out the diagram to a proof.

We have f:AAf: A \cong A' and g:BBg: B \cong B' and we wish to show A×BA×BA \times B \cong A' \times B'. In the diagram, we first use the universal property of products to induce a unique morphism from A×BA \times B to A×BA' \times B' by using the maps fπ:A×BAf \circ \pi: A \times B \to A' and gπ:A×BBg \circ \pi: A \times B \to B'. This is the unique morphism h:A×BA×Bh: A \times B \to A' \times B' so that πh=fπ\pi \circ h = f \circ \pi and πh=gπ\pi \circ h = g \circ \pi. So the upper two squares in the diagram commute if hh is the upper dashed morphism.

We next similarly induce a morphism hh' from A×BA×BA' \times B' \to A \times B so that the lower two squares in the diagram commute. Consequently, the outer square in the diagram commutes. That means that hhh \circ h' is the unique morphism from A×BA×BA \times B \to A \times B such that π(hh)=f1fπ=π\pi \circ (h \circ h') = f^{-1} \circ f \circ \pi = \pi and π(hh)=g1gπ=π\pi \circ (h \circ h') = g^{-1} \circ g \circ \pi = \pi. The morphism 1A×B:A×BA×B1_{A \times B}: A \times B \to A \times B satisfies these two equations, and since the morphism induced by the universal property of products is unique, we conclude that hh=1A×Bh' \circ h = 1_{A \times B}.

We could then repeat the entire argument with the top and bottom halves of the diagram interchanged, and conclude that hh=1A×Bh \circ h' = 1_{A \times B}. We conclude that h:A×BA×Bh: A \times B \to A' \times B' is an isomorphism, so that A×BA \times B and A×BA' \times B' are isomorphic as objects.

view this post on Zulip David Egolf (Oct 01 2023 at 16:42):

Chris Grossack (they/them) said:

I'll also say that there's a fancier approach, which shows why people care about the "functor of points" methodology. Notice that the representables Hom(,A×B)\text{Hom}(-, A \times B) and Hom(,A×B)\text{Hom}(-, A' \times B') are naturally isomorphic (do you see why? Here we're just working with a family of bijections of sets!). But now Yoneda tells us that A×BA \times B and A×BA' \times B' must have been isomorphic to start with!

Having a way to think about this that doesn't involve drawing huge diagrams sounds very helpful. Below, I try to use this approach to prove that if AAA \cong A' and BBB \cong B' then A×AB×BA \times A' \cong B \times B' as objects.

Our strategy is to first show that C(,A×B)C(,A×B)C(-,A \times B) \cong C(-,A' \times B') and then use the fact (a corollary of the Yoneda lemma) that this is true exactly if A×BA×BA \times B \cong A' \times B'. To show that C(,A×B)C(,A×B)C(-,A \times B) \cong C(-,A' \times B') we apply both functors to a morphism f:XYf: X \to Y in CC, and consider the following naturality square:
naturality square

We want to find isomorphisms αX\alpha_X and αY\alpha_Y so that this square commutes for any choice of X,YX,Y and f:XYf: X \to Y. Focusing on the left side, given a morphism m:XA×Bm: X \to A \times B, we wish to find a canonical corresponding morphism m:XA×Bm': X \to A' \times B'. To induce a morphism to a product A×BA' \times B', we need to first find a morphism to AA' and a morphism to BB'. Our morphism m:XA×Bm: X \to A \times B induces a morphism mA:XAm_A: X \to A and a morphism mB:XBm_B: X \to B (by the universal property of products). We already have isomorphisms f:AAf: A \to A' and g:BBg: B \to B'. Composing, we get fmA:XAf \circ m_A: X \to A' and gmB:XBg \circ m_B: X \to B'. Using the universal property of products, this induces a morphism fmA,gmB\langle f \circ m_A, g \circ m_B \rangle from XX to A×BA' \times B'.

We can visualize the situation so far in this diagram:
induced morphism from X to A' x B'

So, we have taken a morphism m:XA×Bm: X \to A \times B and produced a morphism fmA,gmB:XA×B\langle f \circ m_A, g \circ m_B \rangle: X \to A' \times B'. We guess that αX:C(X,A×B)C(X,A×B)\alpha_X: C(X, A \times B) \to C(X, A' \times B') should be the function that does this, for each XX. It remains to show that αX\alpha_X is a isomorphism (a bijection) and that the this makes the naturality square commute.

I'm not quite sure how to do this, and I need to take a break, so I'll stop here (for now, at least). I'm not sure if this is a good way to go about this... it seems a bit complicated!

view this post on Zulip Todd Trimble (Oct 01 2023 at 22:54):

I'll say here what I meant to suggest and should have really said back here. People, including me, keep harping on the fundamental importance of the Yoneda lemma, but for me it's not necessarily just the statement and conclusion of the Yoneda lemma that is important to keep in mind, but the actual proof. What I am suggesting is that it can be illuminating to run the proof of the Yoneda lemma through specific examples, and see what it tells us.

To say it quickly: the proof of the Yoneda lemma indicates that a natural transformation η:hom(,x)F\eta: \hom(-, x) \to F is uniquely determined by what it does to the identity element 1x1_x, i.e., by the element ηx(1x)F(x)\eta_x(1_x) \in F(x). Let me abbreviate that element to θ\theta. The remainder of the natural transformation η\eta is then, by naturality, forced. If it were me teaching category theory to a student one-on-one, then I would get the student to close the book and figure out how this works from scratch, but we can give the formula for η\eta in terms of θ\theta here: for an object yy, the component ηy:C(y,x)F(y)\eta_y: C(y, x) \to F(y) is forced to be defined by the formula ηy(f)=F(f)(θ)\eta_y(f) = F(f)(\theta), where f:yxf: y \to x is an element of C(y,x)C(y, x).

Now, suppose we define a product of objects pp and qq in a category to be any representing object for the functor C(,p)×C(,q)C(-, p) \times C(-, q). This means an object (traditionally denoted p×qp \times q) equipped with a natural isomorphism

C(,p×q)C(,p)×C(,q)C(-, p \times q) \cong C(-, p) \times C(-, q).

Exercise: run the proof of the Yoneda lemma through this definition, and retrieve in this way the usual definition of product and its universal property. If you carry out the exercise, then preservation of products by covariant representables will pop out from how the definitions are set up from this procedure.

The moral is that it's the proof of the Yoneda lemma which unites the concept of representability with the concept of universal property. The element θ\theta above is called a universal element. This was the first really big lesson I learned in category theory many years ago, when I was first learning it from Mac Lane's book, and it is marvelous to me still.

view this post on Zulip Josselin Poiret (Oct 02 2023 at 13:42):

Mike Shulman said:

John Baez said:

But I guess it's important to sweat over these facts for a while, and then get used to the idea, and then learn some general results along these lines, and then maybe use a formalism like homotopy type theory where it's all automatic.

Of course, once homotopy type theory takes over the world, the progression will be reversed. (-:O

But surely the path going from "not checking details" to "checking details" then back is homotopic to the constant path at "not checking details"

view this post on Zulip David Egolf (Oct 02 2023 at 17:08):

Todd Trimble said:

I'll say here what I meant to suggest and should have really said back here. People, including me, keep harping on the fundamental importance of the Yoneda lemma, but for me it's not necessarily just the statement and conclusion of the Yoneda lemma that is important to keep in mind, but the actual proof. What I am suggesting is that it can be illuminating to run the proof of the Yoneda lemma through specific examples, and see what it tells us.

The moral is that it's the proof of the Yoneda lemma which unites the concept of representability with the concept of universal property. The element θ\theta above is called a universal element. This was the first really big lesson I learned in category theory many years ago, when I was first learning it from Mac Lane's book, and it is marvelous to me still.

I've had a vague idea that the Yoneda lemma, representable functors, and universal properties all fit together somehow, but I've never understood it. Thanks for suggesting a specific exercise to help with fitting these pieces together. I'll plan to give it a try!

view this post on Zulip David Egolf (Oct 02 2023 at 17:31):

Todd Trimble said:

To say it quickly: the proof of the Yoneda lemma indicates that a natural transformation η:hom(,x)F\eta: \hom(-, x) \to F is uniquely determined by what it does to the identity element 1x1_x, i.e., by the element ηx(1x)F(x)\eta_x(1_x) \in F(x). Let me abbreviate that element to θ\theta. The remainder of the natural transformation η\eta is then, by naturality, forced. If it were me teaching category theory to a student one-on-one, then I would get the student to close the book and figure out how this works from scratch, but we can give the formula for η\eta in terms of θ\theta here: for an object yy, the component ηy:C(y,x)F(y)\eta_y: C(y, x) \to F(y) is forced to be defined by the formula ηy(f)=F(f)(θ)\eta_y(f) = F(f)(\theta), where f:yxf: y \to x is an element of C(y,x)C(y, x).

I review how this works below, to refresh my memory. (I will use the notation C(,x)C(-,x) to mean the same thing as hom(,x)\hom(-,x)).

Consider a natural transformation η:C(,x)F\eta: C(-,x) \to F for F,C(,x):CopSetF,C(-,x): C^{op} \to \mathsf{Set}. We apply each functor to a morphism fop:xyf^{op}: x \to y in CopC^{op}. I will write ff to mean the corresponding morphism in CC, so fC(y,x)f \in C(y,x).

We get the following naturality square:
naturality square

Here, ff^* refers to precomposition. So f(g:xx)=gff^*(g:x \to x) = g \circ f.

For this square to commute, it must in particular commute for each element of C(x,x)C(x,x). We pick 1xC(x,x)1_x \in C(x,x) and trace it around the diagram. We find that ηy(f(1x))=F(fop)ηx(1x)\eta_y(f^*(1_x)) = F(f^{op}) \circ \eta_x(1_x). Setting θ=ηx(1x)\theta = \eta_x(1_x), and using f(1x)=ff^*(1_x) = f, we obtain ηy(f)=F(fop)(θ)\eta_y(f) = F(f^{op})(\theta). This argument works similarly for any ff and yy, so that the entire natural transformation η\eta is forced once we set ηx(1x)=θ\eta_x(1_x) = \theta.

view this post on Zulip David Egolf (Oct 02 2023 at 17:39):

Todd Trimble said:

Now, suppose we define a product of objects pp and qq in a category to be any representing object for the functor C(,p)×C(,q)C(-, p) \times C(-, q). This means an object (traditionally denoted p×qp \times q) equipped with a natural isomorphism

C(,p×q)C(,p)×C(,q)C(-, p \times q) \cong C(-, p) \times C(-, q).

Exercise: run the proof of the Yoneda lemma through this definition, and retrieve in this way the usual definition of product and its universal property. If you carry out the exercise, then preservation of products by covariant representables will pop out from how the definitions are set up from this procedure.

Huh! Defining a product in terms of a representing object for a functor is quite interesting! I need to take a break now, but I will plan to try and apply the proof of the Yoneda lemma to the definition for p×qp \times q induced by C(,p×q)C(,p)×C(,q)C(-, p \times q) \cong C(-, p) \times C(-, q). It would be very cool to see the usual definition of product (with its universal property) emerge from this.

view this post on Zulip Todd Trimble (Oct 02 2023 at 17:52):

There is one more tiny thing that should be settled before we take leave of your run-through of the proof of the Yoneda lemma here. You certainly did should that a natural transformation η:C(,x)F\eta: C(-, x) \to F is uniquely determined by the element θ=ηx(1x)\theta = \eta_x(1_x), so that the assignment ηθ\eta \mapsto \theta is injective. One should also show that it is surjective, i.e., that any element θF(x)\theta \in F(x) gives rise to a natural transformation η\eta by this formula. This will necessitate consideration of general morphisms g:yzg: y \to z.

view this post on Zulip John Baez (Oct 02 2023 at 18:15):

Of course "did should" \mapsto "did show".

view this post on Zulip David Egolf (Oct 03 2023 at 17:44):

Todd Trimble said:

There is one more tiny thing that should be settled before we take leave of your run-through of the proof of the Yoneda lemma here. You certainly did should that a natural transformation η:C(,x)F\eta: C(-, x) \to F is uniquely determined by the element θ=ηx(1x)\theta = \eta_x(1_x), so that the assignment ηθ\eta \mapsto \theta is injective. One should also show that it is surjective, i.e., that any element θF(x)\theta \in F(x) gives rise to a natural transformation η\eta by this formula. This will necessitate consideration of general morphisms g:yzg: y \to z.

Thanks for pointing this out! I don't think I had understood this part of the Yoneda lemma proof before.

We have a function u:[Cop,Set](C(,x),F)F(x)u:[C^{op}, \mathsf{Set}](C(-,x),F) \to F(x) that sends any natural transformation η:C(,x)F\eta: C(-,x) \to F to ηx(1x)F(x)\eta_x(1_x) \in F(x). Above, we saw this: if η:C(,x)F\eta: C(-,x) \to F is a natural transformation, then its value for ηx(1x)\eta_x(1_x) determines all the other data for η\eta. So, if ηx(1x)=ηx(1x)\eta_x(1_x) = \eta'_x(1_x) for η,η:C(,x)F\eta, \eta':C(-,x)\to F, then η=η\eta = \eta'. Thus, uu is an injective function.

However, we wish to show that uu is a bijection. To do this, we next show that uu is surjective. To show it is surjective, we pick an arbitrary element θ\theta of F(x)F(x) and show there is some η:C(,x)F\eta: C(-,x) \to F so that u(η)=θu(\eta) = \theta. The condition u(η)=θu(\eta)=\theta implies that ηx(1x)=θ\eta_x(1_x) = \theta. We saw earlier that specifying this information forces by naturality ηy(f)=F(fop)(θ)\eta_y(f) = F(f^{op})(\theta) for any yCy \in C and any f:yxf: y \to x. It remains to show that the data η\eta defined in this manner actually constitutes a natural transformation when ηx(1x)=θ\eta_x(1_x) = \theta is an arbitrarily chosen element of F(x)F(x).

To show that this η\eta is a natural transforation, we seek to show that an arbitrary naturality square for it commutes. We obtain the following naturality square by evaluating C(,x)C(-,x) and FF on the morphism gop:yzg^{op}: y \to z (I use gg to denote the corresponding morphism g:zyg: z \to y in CC):
naturality square

Here, gg^* refers to the function that precomposes gg before an input morphism ff , so ffgf \mapsto f \circ g.

To show this square commutes, we evaluate the "bottom left" and "top right" paths around the square at an arbitrary element fC(y,x)f \in C(y,x).

For the bottom left path, we get:
F(gop)ηy(f)=F(gop)(F(fop)(θ))F(g^{op})\circ \eta_y(f) = F(g^{op}) \left( F(f^{op})(\theta)\right)

For the top right path, we get:
ηzg(f)=ηz(fg)=F((fg)op)(θ)\eta_z \circ g^*(f) = \eta_z(f \circ g)=F((f \circ g)^{op})(\theta)
By definition of CopC^{op}, (fg)op=gopfop(f \circ g)^{op} = g^{op} \circ f^{op}.
So, ηzg(f)=F(gopfop)(θ)\eta_z \circ g^*(f) = F(g^{op} \circ f^{op})(\theta).
Using functoriality of FF:
ηzg(f)=F(gop)F(fop)(θ)=F(gop)(F(fop)(θ))\eta_z \circ g^*(f) = F(g^{op}) \circ F(f^{op})(\theta) = F(g^{op}) \left( F(f^{op})(\theta)\right).

We conclude that this arbitrary naturality square commutes, and so η\eta really is a natural transformation.
That means that our function u:[Cop,Set](C(,x),F)F(x)u: [C^{op}, \mathsf{Set}](C(-,x),F) \to F(x) acting by ηηx(1x)\eta \mapsto \eta_x(1_x) is not only injective, but also surjective: for any θF(x)\theta \in F(x), there exists an η\eta so that u(η)=θu(\eta) = \theta.

So, we have an isomorphism u:[Cop,Set](C(,x),F)F(x)u:[C^{op}, \mathsf{Set}](C(-,x),F) \cong F(x) in Set\mathsf{Set}.

view this post on Zulip Todd Trimble (Oct 03 2023 at 19:54):

That would get a big check mark from my red pen. :grinning:

view this post on Zulip David Egolf (Nov 17 2023 at 22:54):

I want to return to this for a bit, because these concepts are important and they keep coming up when I try to understand other things!

What I want to understand:

Where I'm at currently:

view this post on Zulip David Egolf (Nov 17 2023 at 22:59):

Todd Trimble said:

Exercise: run the proof of the Yoneda lemma through this definition, and retrieve in this way the usual definition of product and its universal property. If you carry out the exercise, then preservation of products by covariant representables will pop out from how the definitions are set up from this procedure.

The exercise described in this quote is what I would like to do next.

However, to do this, I think I first need to state what it means for a functor to preserve a limit. In particular, I want to do this using my current definition for a limit, in terms of a natural isomorphism from a representable functor to the cone functor.

view this post on Zulip David Egolf (Nov 17 2023 at 23:04):

So, let us assume we have a functor G:CDG: C \to D. And let us assume we have a diagram F:JCF: J \to C that has a limit in CC. The limit of FF is described by the following data:

I decree that GG "preserves the limit" for the diagram FF. But what does that mean, exactly? Given our diagram F:JCF: J \to C, we can get a corresponding diagram GF:JDG \circ F: J \to D in DD. I think the idea is that:

  1. This diagram will have a limit in DD
  2. We can compute this limit using the data that describes the limit of FF in CC

view this post on Zulip David Egolf (Nov 17 2023 at 23:05):

To describe the limit of GFG \circ F, we'll need two pieces of data:

  1. An object xDx' \in D
  2. A natural isomorphism α:D(,x)Cone(,GF)\alpha': D(-,x') \cong Cone(-,G \circ F)

It seems reasonable to guess that x=G(x)x' = G(x).
It remains to form a guess for α\alpha' using α\alpha and xx.

So, we are looking for a natural isomorphism α:D(,G(x))Cone(,GF)\alpha': D(-,G(x)) \cong Cone(-,G \circ F).
Let's consider some component of this, αy:D(y,G(x))Cone(y,GF)\alpha'_y: D(y,G(x)) \cong Cone(y, G \circ F).
This is a bijective function that takes a morphism m:yG(x)m: y \to G(x) and produces a cone with apex yy over the diagram GFG \circ F.
What is a cone over GFG \circ F with apex yy? Part of the data of such a cone is a bunch of "leg" functions λj:yG(F(j))\lambda_j: y \to G(F(j)) where jJj \in J is an object in the category JJ that determines the shape of our diagrams.

view this post on Zulip David Egolf (Nov 17 2023 at 23:20):

I want to somehow build these "leg" functions λj\lambda_j from analogous ones in CC, using the fact that we have a limit for the diagram FF in CC and that GG preserves this limit. But I'm not quite seeing how to do this yet.

Oh! Maybe I can use the Yoneda lemma, and note that our natural isomorphism α\alpha' is determined by αG(x)(1G(x))\alpha'_{G(x)}(1_{G(x)}). So, I should probably pay special attention to that element in Cone(G(x),GF)Cone(G(x), G \circ F). I strongly suspect that this special element will be the image of the cone αx(1x)Cone(x,F)\alpha_x(1_x) \in Cone(x,F) under the functor GG!

(Apologies for the multiple messages: I have to split things up so that zulip can render the math).

view this post on Zulip David Egolf (Nov 18 2023 at 00:25):

So, my guess is this: we say that G:CDG: C \to D preserves a limit for the diagram F:JCF: J \to C when the following holds.

Assume that an original limit of F:JCF: J \to C is determined by this data:

Then we have a limit for GF:JDG \circ F: J \to D in DD, determined by this data:

I'll take a break now, but maybe I'll next investigate if this guess matches with the real definition.

view this post on Zulip Todd Trimble (Nov 18 2023 at 21:21):

Okay, I'll play it back starting from the end of what you write. So we start from a limit cone for F:JCF: J \to C, with the limit xx placed at the apex, and cone components xFjx \to Fj indexed by objects jj of JJ. (I'm not seeing right away what notation you are using for these, but I'll just name them fj:xFjf_j: x \to Fj.) Then we can apply G:CDG: C \to D to that, to get a cone with apex GxGx and components G(fj):GxGFjG(f_j): Gx \to GFj.

view this post on Zulip Todd Trimble (Nov 18 2023 at 21:21):

As you point out, this corresponds, via Yoneda, to a map D(,Gx)Cone(,GF)D(-, Gx) \to Cone(-, GF). So far, we haven't used anything about GG except that is is a functor.

view this post on Zulip Todd Trimble (Nov 18 2023 at 21:21):

Definition: GG preserves the limit xx of F:JCF: J \to C, with limit cone fj:xFjf_j: x \to Fj, if the cone Gfj:GxGFjGf_j: Gx \to GFj is a limit cone for GF:JDGF: J \to D.

view this post on Zulip Todd Trimble (Nov 18 2023 at 21:21):

This is the same as saying that the map D(,Gx)Cone(,GF)D(-, Gx) \to Cone(-, GF) is an isomorphism. Or, in other language, that the functor Cone(,GF)Cone(-, GF) is representable by the object GxGx.

view this post on Zulip David Egolf (Nov 18 2023 at 22:08):

Great! I think that matches with the guess I gave above! Now that I better understand what it means to preserve a limit, I can try and do this:

Todd Trimble said:

Exercise: run the proof of the Yoneda lemma through this definition, and retrieve in this way the usual definition of product and its universal property. If you carry out the exercise, then preservation of products by covariant representables will pop out from how the definitions are set up from this procedure.

So that's next in my plan for figuring this stuff out. I hope to work on it in the next few days.

view this post on Zulip Todd Trimble (Nov 18 2023 at 22:10):

Yeah, that's what I got from what you wrote, so you're on the right track and making progress!

view this post on Zulip David Egolf (Nov 19 2023 at 18:22):

Starting on the exercise, the first thing is to take the following as the definition of a product for two objects pp and qq:

Before accepting this definition, I want to show that it is equivalent to the one I've been using most recently. To do that, I want to show that C(,p)×C(,q):CopSetC(-,p) \times C(-,q):C^{op} \to \mathsf{Set} is naturally isomorphic to Cone(,F):CopSetCone(-,F):C^{op} \to \mathsf{Set}, where F:JCF: J \to C is the discrete diagram on the two objects pp and qq.

view this post on Zulip David Egolf (Nov 19 2023 at 19:47):

To see that these two functors are naturally isomorphic, we check that any naturality square commutes. Evaluating each functor on fop:yxf^{op}: y \to x in CopC^{op} (which has a corresponding morphism f:xyf:x \to y in CC), we get:
naturality square

A cone with apex yy over FF is a natural transformation β:ΔyF\beta: \Delta_y \to F, where Δy:JC\Delta_y: J \to C is the functor constant at yy. This natural transformation has two components, which I'll call β1:yp\beta_1: y \to p and β2:yq\beta_2: y \to q. We can then set γy\gamma_y to act as follows: γy(β)(β1,β2)\gamma_y(\beta) \mapsto (\beta_1, \beta_2). This function I believe is a bijection from Cone(y,F)Cone(y,F) to C(y,p)×C(y,q)C(y,p) \times C(y,q), as it is injective and surjective.

view this post on Zulip David Egolf (Nov 19 2023 at 19:47):

It remains to show the square commutes. Let β:ΔyF\beta: \Delta_y \to F be an element of Cone(y,F)Cone(y,F). Next we compute γxf(β)\gamma_x \circ f^*(\beta). Note that f(β)f^*(\beta) is the natural transformation having components (f(β))1=β1f(f^*(\beta))_1 = \beta_1 \circ f and (f(β))2=β2f(f^*(\beta))_2 = \beta_2 \circ f. So γxf(β)=(β1f,β2f)\gamma_x \circ f^*(\beta) = (\beta_1 \circ f, \beta_2 \circ f).

Going the other way around the square, we compute (f×f)γy(β)=(f×f)(β1,β2)=(β1f,β2f)(f^* \times f^*) \circ \gamma_y (\beta) = (f^* \times f^*)(\beta_1, \beta_2) = (\beta_1 \circ f, \beta_2 \circ f). We conclude that the square commutes, and so γ:Cone(,F)C(,p)×C(,q)\gamma:Cone(-,F) \cong C(-,p) \times C(-,q).

view this post on Zulip David Egolf (Nov 19 2023 at 20:07):

Now we are in business, hopefully. Assume we have a product for pp and qq. We take this to mean that we have:

The first part of the proof of the Yoneda lemma (specialized to this case) involves showing that once we set αp×q(1p×q)\alpha_{p \times q}(1_{p \times q}) then all the rest of the definition of α\alpha is forced.

view this post on Zulip David Egolf (Nov 19 2023 at 20:30):

We evaluate each functor involved here on the morphism fop:p×qyf^{op}: p \times q \to y (with corresponding morphism f:yp×qf: y \to p \times q in CC):

naturality square

Tracking 1p×q1_{p \times q} around the diagram, we learn that for the diagram to commute we must have αy(f)=(θpf,θqf)\alpha_y(f) = (\theta_p \circ f, \theta_q \circ f), where θ=(θp,θq)=αp×q(1p×q)\theta = (\theta_p, \theta_q)= \alpha_{p \times q}(1_{p \times q}). And this is true for any f:yp×qf: y \to p \times q, so that all of the definition of α\alpha is forced once we define αp×q(1p×q)\alpha_{p \times q}(1_{p \times q}).

view this post on Zulip David Egolf (Nov 19 2023 at 20:41):

So far, I'm not seeing how this helps us conclude that products are preserved by covariant representables. But I will press on to the second part of the proof!

We next pick an arbitrary element θ\theta' of C(p×q,p)×C(p×q,q)C(p \times q,p) \times C(p \times q,q) and show that this induces a natural transformation β:C(,p×q)C(,p)×C(,q)\beta: C(-,p \times q) \to C(-,p) \times C(-,q). To do this, we set βp×q(1p×q)=θ\beta_{p \times q}(1_{p \times q}) = \theta'. By the first part of the proof of the Yoneda lemma, we know that this forces the definition of all the other components of β\beta (if β\beta is to be a natural transformation). But it remains to show that the resulting structure is actually a natural transformation.

view this post on Zulip David Egolf (Nov 19 2023 at 21:01):

Here is an arbitrary naturality square, for a morphism gop:yzg^{op}: y \to z in CopC^{op}:
naturality square

We track an element fC(y,p×q)f \in C(y, p \times q) around the diagram to demonstrate commutativity.

Taking the bottom left path, we get:
(g×g)βy(f)=(g×g)(θpf,θqf)(g^* \times g^*) \circ \beta_y(f) = (g^* \times g^*) \circ (\theta'_p \circ f, \theta'_q \circ f)
=(θpfg,θqfg)=(\theta'_p \circ f \circ g, \theta'_q \circ f \circ g)

view this post on Zulip David Egolf (Nov 19 2023 at 21:03):

Taking the top right path, we get:
βzg(f)=βz(fg)\beta_z \circ g^*(f) = \beta_z (f \circ g)
=(θp(fg),θq(fg))=(\theta'_p \circ (f \circ g), \theta'_q \circ (f \circ g))
We conclude that the square commutes, and so setting βp×q(1p×q)=θ\beta_{p \times q}(1_{p \times q}) = \theta' uniquely induces a natural transformation β:C(,p×q)C(,p)×C(,q)\beta: C(-,p \times q) \to C(-,p) \times C(-,q).

view this post on Zulip David Egolf (Nov 19 2023 at 21:04):

Hmm. I seem to arrived at the end of the proof of the Yoneda lemma (specialized to a particular case), and I do not feel like I better understand why products are preserved by covariant representables. I'll take a break and see if I can come back and look at this with a fresh perspective!

Ah, I haven't done this part yet "retrieve in this way the usual definition of product and its universal property". Maybe that's what I'm missing!

view this post on Zulip David Egolf (Nov 19 2023 at 22:01):

I think I've figured some things out!
We start with a common definition for a product of pp and qq:
product diagram

Referencing this picture, we need the following data to have a product of pp and qq:

And this additional condition needs to hold:

view this post on Zulip David Egolf (Nov 19 2023 at 22:10):

Now, any cone over FF with apex p×qp \times q actually defines a natural transformation from C(,p×q)C(-,p \times q) to Cone(,F)Cone(-,F). That is because the Yoneda lemma tells us that any element kk of Cone(p×q,F)Cone(p \times q,F) uniquely determines a natural transformation α\alpha from C(,p×q)C(-, p \times q) to Cone(,F)Cone(-,F). This natural transformation is determined by setting αp×q(1p×q)\alpha_{p \times q}(1_{p \times q}) to be kk.

So, the additional condition that the limit cone satisfies does not correspond to the existence of a corresponding natural transformation. Instead, I believe it corresponds to the fact that the natural transformation from C(,p×q)C(-, p \times q) to Cone(,F)Cone(-,F) induced by the cone θ\theta is actually a natural isomorphism!

view this post on Zulip David Egolf (Nov 19 2023 at 22:15):

To see this, we consider the below diagram:
special naturality square

We get the natural transformation α\alpha by setting αp×q(1p×q)\alpha_{p \times q}(1_{p \times q}) to be θ\theta, the limit cone described above. As discussed above, for this square to commute, we must have αy(f)=(θpf,θqf)\alpha_y(f) = (\theta_p \circ f, \theta_q \circ f) for any f:yp×qf:y \to p \times q.

So we can rewrite the condition on our limit cone θ\theta as follows:

Since this condition has to hold for every yy, this condition tells us that αy\alpha_y must actually be a bijection for each yy! So, when we induce a natural transformation from C(,p×q)C(-,p \times q) to C(,p)×C(,q)C(-,p) \times C(-,q) using a limit cone, the resulting natural transformation is actually a natural isomorphism.

view this post on Zulip David Egolf (Nov 19 2023 at 22:24):

So, we started out with a product defined in terms of a limiting cone, and then we obtained a representation for the functor C(,p)×C(,q)C(-,p) \times C(-,q), which is naturally isomorphic to the cone functor over the discrete diagram having just pp and qq. That is, we showed that we were able to induce a natural isomorphism from C(,p×q)C(-,p \times q) to C(,p)×C(q,)C(-,p) \times C(-q,).

Next, I think we want to go in the other direction: we'll assume that some data describes a product according to our definition in terms of representing the cone functor, and then we'll show that this data describes a limiting cone satisfying the necessary universal property.

view this post on Zulip Todd Trimble (Nov 20 2023 at 11:43):

It looks like you're hovering near the simple point I want to make, but didn't quite say it yet. Let's take the case of binary products, as you are.

view this post on Zulip Todd Trimble (Nov 20 2023 at 11:43):

So what is a cone for the FF in this case? It's just a pair of maps f:xp,g:xqf: x \to p, g: x \to q, nothing more. And this is a pair of elements (f,g)(f, g) in C(x,p)×C(x,q)C(x, p) \times C(x, q). So the point I'm making is to see the functor Cone(,F)Cone(-, F) directly as the functor C(,p)×C(,q)C(-, p) \times C(-, q).

view this post on Zulip Todd Trimble (Nov 20 2023 at 11:44):

Nothing about this would change if we changed binary products to JJ-fold products (JJ a set): a cone from xx to a functor F:JCF: J \to C is a tuple of morphisms (fj:xFj)jJ(f_j: x \to Fj)_{j \in J}, hence an element of the product set jJC(x,Fj)\prod_{j \in J} C(x, Fj). The functor Cone(,F)Cone(-, F) is in other words jJC(,Fj)\prod_{j \in J} C(-, Fj).

view this post on Zulip Todd Trimble (Nov 20 2023 at 11:44):

Next we should take the example of equalizers...

view this post on Zulip Todd Trimble (Nov 20 2023 at 15:17):

Anyway, before we tackle equalizers, the pedagogical point is going to be roughly this: even before you ("you" here meaning an impersonal you in the role of student, not you in particular) studied the abstract notion of a product in a category, you knew what products of sets were. They consist of tuples. [It's nice to realize after Week 1 of Category Theory 101 that products of sets as you first learned them really are categorical products, but that's not what I'm emphasizing at the moment.]

view this post on Zulip Todd Trimble (Nov 20 2023 at 15:17):

The point is supposed to be that products in general categories are in reality based on the humble notion of products of sets which everyone knows about. If you know how products of sets work, then you know how the general concept of products p×qp \times q in categories works: products p×qp \times q are whatever structure you need to be able to give a natural isomorphism

C(,p×q)C(,p)×C(,q)C(-, p \times q) \cong C(-, p) \times C(-, q)

where on the right, you know what products of hom-sets are already. The very same principle applies to limits generally.

view this post on Zulip Todd Trimble (Nov 20 2023 at 15:17):

(As an aside, this principle becomes critically important when one begins studying enriched category theory. Enriched limits in general VV-enriched categories will be based off of limits in the base of enrichment VV, and so one starts there, with the base.)

view this post on Zulip David Egolf (Nov 20 2023 at 17:51):

Interesting! It's almost like we are "inheriting" the limits from Set\mathsf{Set}. This reminds of another important thing I want to understand at some point, which is exactly how the functor category [Cop,Set][C^{op}, \mathsf{Set}] inherits limits (I think "pointwise") from Set\mathsf{Set}.

That then helps me understand your comment on enrichment, I think.

To elaborate slightly, if we are looking for a p×qp \times q so that C(,p×q)Cone(,F)C(-,p \times q) \cong Cone(-,F), then we can recognize that Cone(,F)Cone(-,F) is essentially C(,p)×C(,q)C(-,p) \times C(-,q). So we want C(,p×q)C(,p)×C(,q)C(-,p \times q) \cong C(-,p) \times C(-,q). To figure out what p×qp \times q is like, we can evaluate the functors here at some aCa \in C, and learn that C(a,p×q)C(a,p)×C(a,q)C(a,p \times q) \cong C(a,p) \times C(a,q). We understand the right-hand side, because we know how products work in Set\mathsf{Set}. Because we understand the right-hand side, we've learned something about the left-hand-side too. Namely, we've learned something about the set of morphisms from aa to p×qp \times q, which partially characterizes p×qp \times q.

view this post on Zulip David Egolf (Nov 20 2023 at 18:02):

I think you also wanted to point out the similarity between elements of the product of a collection of sets (which are tuples of elements taken from those sets) and the cones over a discrete diagram containing a collection of objects. If we think of each morphism f:apf:a \to p as a "generalized element" of pp (for any object aa in CC), then a cone over a discrete diagram is a tuple of generalized elements of the objects in that diagram. So, the product should somehow gather together the information about all the cones of our diagram (the "generalized element tuples"), which I guess is part of what is going on when we require C(,p×q)Cone(,F)C(-,p \times q) \cong Cone(-,F).

view this post on Zulip Todd Trimble (Nov 20 2023 at 18:33):

Yeah, everything you're saying is really good. That's exactly how you should think of it: that general notions of limit are "inherited" (we say "reflected" in the biz) from Set\mathsf{Set} -- or from SetCop\mathsf{Set}^{C^{op}} (yes indeed, limits in SetCopSet^{C^{op}}, and also colimits, are computed pointwise -- that's not hard to prove, but it's important) by way of the Yoneda embedding.

view this post on Zulip Todd Trimble (Nov 20 2023 at 18:33):

Pursuing this a little further: my point is also that you can turn the theorem that

C(,p×q)C(,p)×C(,q)C(-, p \times q) \cong C(-, p) \times C(-, q)

into a definition, i.e., use this to define products. For suppose that you have such an object p×qp \times q together with such a natural isomorphism. Then apply this to the identity 1p×qC(p×q,p×q)1_{p \times q} \in C(p \times q, p \times q). You get an element in C(p×q,p)×C(p×q,q)C(p \times q, p) \times C(p \times q, q), i.e., a pair of elements in hom-sets. We might as well give that pair a name, say, oh I don't know, π1:p×qp\pi_1: p \times q \to p, π2:p×qq\pi_2: p \times q \to q.

view this post on Zulip Todd Trimble (Nov 20 2023 at 18:33):

Call them anything you want of course. The point is that this pair is forced to satisfy the universal property of products. Yes, the natural isomorphism is saying that for any pair of elements

(f:xp,g:xq)C(x,p)×C(x,q)(f: x \to p, g: x \to q) \in C(x, p) \times C(x, q)

there exists a unique (h:xp×q)C(x,p×q)(h: x \to p \times q) \in C(x, p \times q) that maps to (f,g)(f, g) under the isomorphism, but my current point is that if you now chase through the proof of the Yoneda lemma for this particular case, you recover the precise manner in which this correspondence works, and recover the precise abstract notion of product.

view this post on Zulip Todd Trimble (Nov 20 2023 at 18:35):

(Your point about generalized elements is also a useful observation.)

view this post on Zulip David Egolf (Nov 21 2023 at 18:03):

Excellent, I think we are on the same page. My next goal is to start with the representable functor definition for products, and then show that this induces a pair π1:p×qp,π2:p×qq\pi_1: p \times q \to p, \pi_2: p \times q \to q that satisfies the universal property of products.

(I hope to work on this today)

view this post on Zulip Todd Trimble (Nov 21 2023 at 18:28):

(Actually, I talked about this already.)

view this post on Zulip David Egolf (Nov 21 2023 at 19:02):

Todd Trimble said:

(Actually, I talked about this already.)

You did! I just want to work out the details to understand what you said more completely.

We start with a natural isomorphism α:C(,p×q)C(,p)×C(,q)\alpha: C(-,p \times q) \cong C(-,p) \times C(-,q). By the Yoneda lemma, this natural isomorphism is completely determined by αp×q(1p×q)C(p×q,p)×C(p×q,q)\alpha_{p \times q}(1_{p \times q}) \in C(p \times q, p) \times C(p \times q, q). Let's call this element θ\theta, and denote its two morphisms by πp:p×qp\pi_p: p \times q \to p and πq:p×qq\pi_q: p \times q \to q.

view this post on Zulip David Egolf (Nov 21 2023 at 19:09):

We want to show that (πp,πq)(\pi_p, \pi_q) is a cone that satisfies the universal property of products. To do that, we need to introduce an arbitrary different cone yp:yp,yq:yqy_p: y \to p, y_q: y \to q and show that there is a unique induced f:yp×qf: y \to p \times q so that πpf=yp\pi_p \circ f = y_p and πqf=yq\pi_q \circ f = y_q.

I hope we can make use of this naturality square, obtained by evaluating each of our functors on some morphism fop:p×qyf^{op}:p \times q \to y in CopC^{op}, which has corresponding morphism f:yp×qf: y\to p \times q in CC:
naturality square

view this post on Zulip David Egolf (Nov 21 2023 at 19:14):

Our arbitrary cone (yp,yq)(y_p, y_q) is an element of C(y,p)×C(y,q)C(y,p) \times C(y,q). Because α\alpha is a natural isomorphism, αy\alpha_y is a bijection. That means there is a unique element gg of C(y,p×q)C(y, p \times q) such that αy(g)=(yp,yq)\alpha_y(g) = (y_p, y_q). We saw earlier that, for α\alpha to be a natural transformation, αy(g)=(πpg,πqg)\alpha_y(g) = (\pi_p \circ g, \pi_q \circ g) is forced. We conclude there is a unique g:yp×qg:y \to p \times q such that πpg=yp\pi_p \circ g = y_p and πqg=yq\pi_q \circ g = y_q.

We have discovered, I believe, that (πp,πq)(\pi_p, \pi_q) satisfies the universal property of products!

view this post on Zulip David Egolf (Nov 21 2023 at 19:20):

Todd Trimble said:

Exercise: run the proof of the Yoneda lemma through this definition, and retrieve in this way the usual definition of product and its universal property. If you carry out the exercise, then preservation of products by covariant representables will pop out from how the definitions are set up from this procedure.

I think I've managed to do what's indicated in the first sentence of this quote. Hopefully now I am at the "popping out" stage: maybe now I can try and see why products are preserved by covariant representables.

view this post on Zulip Todd Trimble (Nov 21 2023 at 19:33):

David Egolf said:

Our arbitrary cone (yp,yq)(y_p, y_q) is an element of C(y,p)×C(y,q)C(y,p) \times C(y,q). Because α\alpha is a natural isomorphism, αy\alpha_y is a bijection. That means there is a unique element gg of C(y,p×q)C(y, p \times q) such that αy(g)=(yp,yq)\alpha_y(g) = (y_p, y_q). We saw earlier that, for α\alpha to be a natural transformation, αy(g)=(πpg,πqg)\alpha_y(g) = (\pi_p \circ g, \pi_q \circ g) is forced. We conclude there is a unique g:yp×qg:y \to p \times q such that πpg=yp\pi_p \circ g = y_p and πqg=yq\pi_q \circ g = y_q.

We have discovered, I believe, that (πp,πq)(\pi_p, \pi_q) satisfies the universal property of products!

Yep! Looks like you got it!

view this post on Zulip David Egolf (Nov 21 2023 at 23:37):

Alright, building on my understanding of these concepts, I now have a plan to show that covariant representable functors preserve products.

The key idea is to make use of the fact that functors send isomorphisms to isomorphisms.

We start out with a natural isomorphism which describes a product of pp and qq:
α:C(,p×q)C(,p)×C(,q)\alpha:C(-, p \times q) \cong C(-,p) \times C(-,q).

Next, we use the "evaluation" functor evc:[Cop,Set]Setev_c:[C^{op}, \mathsf{Set}] \to \mathsf{Set} to get
evc(α):C(c,p×q)C(c,p)×C(c,q)ev_c(\alpha): C(c,p \times q) \cong C(c,p) \times C(c,q).

Next, we can use the Yoneda embedding Y:Set[Setop,Set]Y: \mathsf{Set} \to [\mathsf{Set}^{op}, \mathsf{Set}] to get
Yevc(α):Set(,C(c,p×q))Set(,C(c,p)×C(c,q))Y \circ ev_c(\alpha):\mathsf{Set}(-,C(c,p \times q)) \cong \mathsf{Set}(-,C(c,p) \times C(c,q)).

view this post on Zulip David Egolf (Nov 21 2023 at 23:41):

To show that the image of our product cone under C(c,)C(c,-) is a product for the image of our diagram, we need to show that we have a natural isomorphism:
Set(,C(c,p×q))Set(,C(c,p))×Set(,C(c,q))\mathsf{Set}(-, C(c, p \times q)) \cong \mathsf{Set}(-, C(c,p)) \times \mathsf{Set}(-, C(c,q)).

So I think we would like to find a natural isomorphism:
β:Set(,C(c,p)×C(c,q))Set(,C(c,p))×Set(,C(c,q))\beta:\mathsf{Set}(-, C(c,p) \times C(c,q)) \cong \mathsf{Set}(-, C(c,p)) \times \mathsf{Set}(-, C(c,q))

That is, we are now able to investigate things in the category Set\mathsf{Set}!

view this post on Zulip Todd Trimble (Nov 22 2023 at 13:04):

It looks like you're pretty convinced by now, on a deep visceral level, of the truth that representable functors preserve limits -- at least in the case of products. But I think I'd arrange that last part you wrote slightly differently, because it makes it look harder than I think it should look.

view this post on Zulip Todd Trimble (Nov 22 2023 at 13:04):

We know by now that C(,p×q)C(,p)×C(,q)C(-, p \times q) \cong C(-, p) \times C(-, q) can be taken as a definition of the product p×qp \times q [up to unique isomorphism, of course], and that we can extract the "usual" definition involving universal cones just by running this definition through the proof of the Yoneda lemma. But this new definition says precisely that

ϕ:C(x,p×q)C(x,p)×C(x,q)\phi: C(x, p \times q) \cong C(x, p) \times C(x, q)

naturally in xx, and this is awfully, awfully close to saying outright that C(x,)C(x, -) preserves any product p×qp \times q that exists. Isn't it? In fact, we could ask: what, if anything, is missing?

view this post on Zulip Todd Trimble (Nov 22 2023 at 13:04):

(I'm taking as given that for sets S,TS, T, the undergraduate definition of the product projections proj1(s,t)=s,proj2(s,t)=t\text{proj}_1(s, t) = s, \text{proj}_2(s, t) = t really does define a product structure proj1:S×TS\text{proj}_1: S \times T \to S, proj2:S×TT\text{proj}_2: S \times T \to T in the sense of category theory. As I said earlier, that's one of the exercises in the first homework set in Category Theory 101: to verify this fact. Anyway, for any ordered pairs xx we have x=(proj1(x),proj2(x)x = (\text{proj}_1(x), \text{proj}_2(x).)

view this post on Zulip Todd Trimble (Nov 22 2023 at 13:05):

The only observation that needs to be added is that (via ϕ\phi in the display line above) C(x,)C(x, -) takes the morphism π1:p×qp\pi_1: p \times q \to p to proj1\text{proj}_1, and π2:p×qq\pi_2: p \times q \to q to proj2\text{proj}_2. But that's baked right in from the outset, because for any h:xp×qh: x \to p \times q, we have according to the definitions (embedded in your picture back here)

proj1ϕ(h),proj2ϕ(h)=ϕ(h)=π1h,π2h.\langle \text{proj}_1 \phi(h), \text{proj}_2 \phi(h) \rangle = \phi(h) = \langle \pi_1 \circ h, \pi_2 \circ h \rangle.

view this post on Zulip David Egolf (Nov 22 2023 at 20:17):

(Thanks for your most recent post! I'll try to read and respond when I can. Today I think I need to take a little break for health reasons, though.)

view this post on Zulip Eric Forgy (Nov 22 2023 at 20:41):

Take care, David. Hope you feel better and have a wonderful Thanksgiving :pray:

view this post on Zulip Todd Trimble (Nov 22 2023 at 21:03):

Take care of yourself, David, and hope to see you again soon. Your energy here has been very welcome.

(Are you Canadian? I heard recently that Canadians have a Thanksgiving in October.)

view this post on Zulip David Egolf (Nov 23 2023 at 16:59):

Thanks to both of you for your kind words. :smile:

And yes! I am Canadian, and my family did celebrate Thanksgiving in October.

view this post on Zulip David Egolf (Nov 24 2023 at 22:15):

I think I understand what you were getting at above. Let me try and explain it to myself. (I would be nice if my explanation was as concise as yours, but I find I have to spell things out to avoid confusing myself!)

We want to show that C(x,)C(x,-) preserves products. To do that, it suffices to show that its image of a product diagram is a product diagram. We start out with the product diagram pπpp×qπqqp \leftarrow _{\pi_p} p \times q \to_{\pi_q} q. We want to show that the image of this cone under C(x,)C(x,-) is a product cone for the discrete diagram with objects C(x,p)C(x,p) and C(x,q)C(x,q).

Any cone isomorphic to a product cone (in the category of cones over the appropriate diagram) I think should also be a product cone. (I think we can use a provided isomorphism to show that the cone in question satisfies the universal property of products). So, if we can show that the image of our cone qπpp×qπqqq \leftarrow_{\pi_p} p \times q \to_{\pi_q} q is isomorphic to the "standard" product cone C(x,p)projpC(x,p)×C(x,q)projqC(x,p)C(x,p) \leftarrow_{\mathrm{proj_p}} C(x,p) \times C(x,q) \to_{\mathrm{proj_q}}C(x,p), then we will have shown that C(x,)C(x,-) sends a product cone to a product cone, and hence that it preserves products.

view this post on Zulip David Egolf (Nov 24 2023 at 22:19):

To show that these two cones are isomorphic, I think it suffices to show that this diagram commutes:
diagram

where ϕ:C(,p×q)C(,p)×C(,q)\phi:C(-, p \times q) \cong C(-,p) \times C(-,q) is a natural isomorphism, and so in particular ϕx:C(x,p×q)C(x,p)×C(x,q)\phi_x:C(x,p \times q) \cong C(x,p) \times C(x,q) is an isomorphism in Set\mathsf{Set} for each xx.

view this post on Zulip David Egolf (Nov 24 2023 at 22:23):

To recall what ϕx(f)\phi_x(f) is for some fC(x,p×q)f \in C(x, p \times q), we refer to the following naturality square:
naturality square

We have ϕp×q(1p×q)=θ\phi_{p \times q}(1_{p \times q}) = \theta, our product cone in CC. This is an element of C(p×q,p)×C(p×q,q)C(p \times q, p) \times C(p \times q, q). We write θ=(πp,πq)\theta = (\pi_p, \pi_q).

For this to commute, ϕxf(1p×q)\phi_x \circ f^*(1_{p \times q}) must be (f,f)(θ)=(f,f)(πp,πq)(f^*, f^*)(\theta) = (f^*, f^*)(\pi_p, \pi_q). That is, ϕx(f)=(πpf,πq,f)\phi_x(f) = (\pi_p \circ f, \pi_q, \circ f).

view this post on Zulip David Egolf (Nov 24 2023 at 22:27):

We now show that this diagram commutes:
diagram

To do this, we follow an element ff of C(x,p×q)C(x, p \times q) around the different paths in the diagram:
proj1(ϕx(f))=proj1(πpf,πq,f)=πpf\mathrm{proj_1}(\phi_x(f)) = \mathrm{proj_1}(\pi_p \circ f, \pi_q, \circ f) = \pi_p \circ f
and similarly
proj2(ϕx(f))=proj2(πpf,πq,f)=πqf\mathrm{proj_2}(\phi_x(f)) = \mathrm{proj_2}(\pi_p \circ f, \pi_q, \circ f) = \pi_q \circ f.

We also note that C(x,)(πp)(f)=πpfC(x,-)(\pi_p)(f) = \pi_p \circ f and C(x,)(πq)(f)=πqfC(x,-)(\pi_q)(f)= \pi_q \circ f.

So, the diagram commutes!

view this post on Zulip David Egolf (Nov 24 2023 at 22:29):

We conclude that the image of pπqp×qπqqp \leftarrow_{\pi_q} p \times q \to_{\pi_q} q under C(x,)C(x,-) is isomorphic as a cone to the "standard" product cone for the discrete diagram with objects C(x,p)C(x,p) and C(x,q)C(x,q). Thus, the image of pπqp×qπqqp \leftarrow_{\pi_q} p \times q \to_{\pi_q} q under C(x,)C(x,-) must also be a product cone over the discrete diagram with objects C(x,p)C(x,p) and C(x,q)C(x,q). Therefore, C(x,)C(x,-) sends an arbitrary product cone in CC to a product cone in Set\mathsf{Set}.

That is, covariant representable functors (of the form C(x,)C(x,-)) preserve products!

view this post on Zulip Todd Trimble (Nov 24 2023 at 22:45):

Yes, very good! You've nailed down all the details.

Showing that C(x,)C(x, -) preserves equalizers can be done using the same sort of technique, starting with the observation that in Set\mathsf{Set}, the equalizer of two maps f,gSTf, g S \rightrightarrows T is the subset inclusion

{sSf(s)=g(s)}S.\{s \in S | f(s) = g(s)\} \hookrightarrow S.

view this post on Zulip David Egolf (Nov 24 2023 at 22:55):

That's awesome to hear! I'll probably give equalizers a try in the coming days...