Options

Lecture 53 - Chapter 3: Free and Forgetful Functors

2»

Comments

  • 51.

    I'd rather clean it up by taking Cheuk Man Hwang's lead,

    There's a functor

    $$ \text{Ob}: \mathbf{Cat} \to \mathbf{Set} $$ that forgets everything about a category except its objects. In other words, it sends any
    small category \(\mathcal{C}\) to its set of objects \(\mathrm{Ob}(\mathcal{C})\), and sends any functor \(F: \mathcal{C} \to \mathcal{D}\) to the function it defines on objects, which I've been calling just \(F : \mathrm{Ob}(\mathcal{C}) \to \mathrm{Ob}(\mathcal{D})\). A more systematic name for it is \(\mathrm{Ob}: \mathrm{Ob}(\mathcal{C}) \to \mathrm{Ob}(\mathcal{D})\).
    Comment Source:I'd rather clean it up by taking Cheuk Man Hwang's lead, >There's a functor >\[ \text{Ob}: \mathbf{Cat} \to \mathbf{Set} \] >that forgets everything about a category except its objects. In other words, it sends any **small** category \\(\mathcal{C}\\) to its set of objects \\(\mathrm{Ob}(\mathcal{C})\\), and sends any functor \\(F: \mathcal{C} \to \mathcal{D}\\) to the function it defines on objects, which I've been calling just \\(F : \mathrm{Ob}(\mathcal{C}) \to \mathrm{Ob}(\mathcal{D})\\). A more systematic name for it is \\(\mathrm{Ob}: \mathrm{Ob}(\mathcal{C}) \to \mathrm{Ob}(\mathcal{D})\\).
  • 52.
    edited July 2018

    @Keith Like I said, I suspect that John left out some technicality so that we can focus on the essential features of category theory. To be fully precise, we should define \(\mathbf{Cat}\) as the category of all small categories, which means the members of \(\mathbf{Cat}\) should be categories with their collections of objects to be sets. As a result, the large categories \(\mathbf{Cat}\) and \(\mathbf{Set}\) do not belong to \(\mathbf{Cat}\) because their collections of objects are proper classes. This should resolve the problem. You may consult pp39 - 41 of the book "Abstract and Concrete Categories - The Joy of Cats" by Jiří Adámek, et al.

    Comment Source:@Keith Like I said, I suspect that John left out some technicality so that we can focus on the essential features of category theory. To be fully precise, we should define \\(\mathbf{Cat}\\) as the category of all **small categories**, which means the members of \\(\mathbf{Cat}\\) should be categories with their collections of objects to be sets. As a result, the large categories \\(\mathbf{Cat}\\) and \\(\mathbf{Set}\\) do not belong to \\(\mathbf{Cat}\\) because their collections of objects are proper classes. This should resolve the problem. You may consult pp39 - 41 of the book "Abstract and Concrete Categories - The Joy of Cats" by Jiří Adámek, et al.
  • 53.

    Cat is a category but its not an object of itself. That's why you need the modifier "small".

    Though if you are willing to use type theory instead of set theory you can find a bigger Cat to put any Cat in.

    But this is all set theory / type theory issues not category theory issues really.

    Comment Source:Cat is a category but its not an object of itself. That's why you need the modifier "small". Though if you are willing to use type theory instead of set theory you can find a bigger Cat to put any Cat in. But this is all set theory / type theory issues not category theory issues really.
  • 54.

    @Anindya

    Thanks for the explanation. I still haven't wrapped my head around it but I think something clicked because I have more questions.

    Since \(R_1, R_2, R_3\) are forgetful functors, going the other way would be injective in nature, right? Then will there not always be the obvious left adjoint where you send everything back with leftovers? As with the right adjoint, since all the categories in the problem have a terminal object, can we not always have the obvious right adjoint sending to the terminal object?

    Comment Source:@Anindya Thanks for the explanation. I still haven't wrapped my head around it but I think something clicked because I have more questions. Since \\(R_1, R_2, R_3\\) are forgetful functors, going the other way would be injective in nature, right? Then will there not always be the obvious left adjoint where you send everything back with leftovers? As with the right adjoint, since all the categories in the problem have a terminal object, can we not always have the obvious right adjoint sending to the terminal object?
  • 55.
    edited July 2018

    Alright, I'm thinking out loud here, trying to cook up the functor \(\mathbf{Cat}\overset{R_1}\longrightarrow\mathbf{Preord}\) in Puzzle 163. Currently I am only thinking about how \(R_1\) acts on the objects. So let's pick a random category \(\mathcal{C}\) from \(\mathbf{Cat}\), \(R_1(\mathcal{C})\) must be a preorder. \(R_1\) should preserve the set of objects of \(\mathcal{C}\), i.e. \(\mathrm{Ob}(\mathcal{C})=\mathrm{Ob}(R_1(\mathcal{C}))\) as sets.

    Next, let's consider the effect of \(R_1\) on the \(\mathbf{Hom}\) sets. Notice that we have to be careful of level slip here because we are concerning the \(\mathbf{Hom}\) set in the category \(\mathcal{C}\), not the \(\mathbf{Hom}\) sets in \(\mathbf{Cat}\), so we are still considering the action of \(R_1\) on the object level. To this end, we have to pick two objects \(x\) and \(y\) in \(\mathrm{Ob}(\mathcal{C})=\mathrm{Ob}(R_1(\mathcal{C}))\) and consider \(\mathcal{C}(x,y)\) and \(R_1(\mathcal{C})(x,y)\). Since \(R_1(\mathcal{C})\) is a preorder, \(R_1(\mathcal{C})(x,y)\) must be either an empty set or a singleton. I only have an idea of what to do in the following situations:

    • If \(x=y\), \(R_1(\mathcal{C})(x,y)\) must be a singleton which contains the identity;

    • If \(\mathcal{C}(x,y)\) contains an isomorphism in the original category \(\mathcal{C}\), then both \(R_1(\mathcal{C})(x,y)\) and \(R_1(\mathcal{C})(y,x)\) should be singletons;

    • If \(\mathcal{C}(x,y)\) is empty, then \(R_1(\mathcal{C})(x,y)\) should be empty.

    However, I am not sure when to decide if \(R_1(\mathcal{C})(x,y)\) should be empty or not in general. Any ideas?

    Comment Source:Alright, I'm thinking out loud here, trying to cook up the functor \\(\mathbf{Cat}\overset{R_1}\longrightarrow\mathbf{Preord}\\) in **Puzzle 163**. Currently I am only thinking about how \\(R_1\\) acts on the objects. So let's pick a random category \\(\mathcal{C}\\) from \\(\mathbf{Cat}\\), \\(R_1(\mathcal{C})\\) must be a preorder. \\(R_1\\) should preserve the set of objects of \\(\mathcal{C}\\), i.e. \\(\mathrm{Ob}(\mathcal{C})=\mathrm{Ob}(R_1(\mathcal{C}))\\) as sets. Next, let's consider the effect of \\(R_1\\) on the \\(\mathbf{Hom}\\) sets. Notice that we have to be careful of level slip here because we are concerning the \\(\mathbf{Hom}\\) set in the category \\(\mathcal{C}\\), not the \\(\mathbf{Hom}\\) sets in \\(\mathbf{Cat}\\), so we are still considering the action of \\(R_1\\) on the object level. To this end, we have to pick two objects \\(x\\) and \\(y\\) in \\(\mathrm{Ob}(\mathcal{C})=\mathrm{Ob}(R_1(\mathcal{C}))\\) and consider \\(\mathcal{C}(x,y)\\) and \\(R_1(\mathcal{C})(x,y)\\). Since \\(R_1(\mathcal{C})\\) is a preorder, \\(R_1(\mathcal{C})(x,y)\\) must be either an empty set or a singleton. I only have an idea of what to do in the following situations: * If \\(x=y\\), \\(R_1(\mathcal{C})(x,y)\\) must be a singleton which contains the identity; * If \\(\mathcal{C}(x,y)\\) contains an isomorphism in the original category \\(\mathcal{C}\\), then both \\(R_1(\mathcal{C})(x,y)\\) and \\(R_1(\mathcal{C})(y,x)\\) should be singletons; * If \\(\mathcal{C}(x,y)\\) is empty, then \\(R_1(\mathcal{C})(x,y)\\) should be empty. However, I am not sure when to decide if \\(R_1(\mathcal{C})(x,y)\\) should be empty or not in general. Any ideas?
  • 56.

    You want R1(C)(x,y) to be empty exactly when C(x,y) is empty. In fact you can make R1(C)(x,y) be the proposition \(\exists f, f\in C(x,y)\).

    Comment Source:You want R1(C)(x,y) to be empty exactly when C(x,y) is empty. In fact you can make R1(C)(x,y) _be_ the proposition \\(\exists f, f\in C(x,y)\\).
  • 57.

    just had a thought – if we define \(R_1\) to be the functor sending a category \(C\) to the codiscrete preorder on \(\textrm{Ob}(C)\), and define \(L_1\) to the functor sending a preorder \(P\) to the discrete category on the elements of \(P\), then an arrow \(L_1 (P) \rightarrow C\) just picks out one \(C\)-object for every \(P\)-element, which is the same thing as an arrow \(P \rightarrow R_1 (C)\). I think these are the functors we're looking for.

    Comment Source:just had a thought – if we define \\(R_1\\) to be the functor sending a category \\(C\\) to the codiscrete preorder on \\(\textrm{Ob}(C)\\), and define \\(L_1\\) to the functor sending a preorder \\(P\\) to the discrete category on the elements of \\(P\\), then an arrow \\(L_1 (P) \rightarrow C\\) just picks out one \\(C\\)-object for every \\(P\\)-element, which is the same thing as an arrow \\(P \rightarrow R_1 (C)\\). I think these are the functors we're looking for.
  • 58.
    edited July 2018

    The key phrase is "it sends any category C to its set of objects". But the objects of Cat do not form a set. Neither do the objects of Set.

    John can probably talk more about this, but this is just under the view of conventional ZF-Set theory.

    It's inconvenient to always have to worry if a category is small, and I've seen some authors disregard this detail completely.

    In 1977 Sol Feferman began a research program to formulate category theory in Quine's New Foundations, rather than ZF-Set theory. In New Foundations, Quine solves Russell's paradox by having a modified axiom schema of restriction. One feature of New Foundations is the existence of a universal set or set of all sets. By the same token, there is also a category of all categories which includes itself as a member.

    However \(\mathbf{Set}\) in New Foundations is not Cartesian Closed, so it is not a Topos. There are proofs of this in McClarty (1992) and Forster (2007).

    I understand Homotopy Type Theory, while based in Coq rather than ZF-Set theory, uses small categories as per convention. See Gross (2014) for a discussion about this.

    Comment Source:> The key phrase is "it sends any category C to its set of objects". But the objects of **Cat** do not form a set. Neither do the objects of **Set**. John can probably talk more about this, but this is just under the view of conventional ZF-Set theory. It's inconvenient to always have to worry if a category is [small](https://en.wikipedia.org/wiki/Category_(mathematics)#Small_and_large_categories), and I've seen some authors disregard this detail completely. In 1977 [Sol Feferman](https://math.stanford.edu/~feferman/papers/Cat_founds.pdf) began a research program to formulate category theory in [Quine's New Foundations](https://plato.stanford.edu/entries/quine-nf/), rather than ZF-Set theory. In New Foundations, Quine solves Russell's paradox by having a modified [axiom schema of restriction](https://en.wikipedia.org/wiki/Axiom_schema_of_specification). One feature of New Foundations is the existence of a [universal set](https://en.wikipedia.org/wiki/New_Foundations#Admissibility_of_useful_large_sets) or set of all sets. By the same token, there is also a category of all categories which includes itself as a member. However \\(\mathbf{Set}\\) in New Foundations *is not* Cartesian Closed, so it is not a Topos. There are proofs of this in [McClarty (1992)](http://www.cwru.edu/artsci/phil/FCCinNF.pdf) and [Forster (2007)](https://www.dpmms.cam.ac.uk/~tf/cartesian-closed.pdf). I understand Homotopy Type Theory, while based in Coq rather than ZF-Set theory, uses small categories as per convention. See [Gross (2014)](https://arxiv.org/pdf/1401.7694.pdf) for a discussion about this.
  • 59.

    good point @Matthew – I've often idly wondered what category theory would look like in set theories with \(V\in V\).

    Comment Source:good point @Matthew – I've often idly wondered what category theory would look like in set theories with \\(V\in V\\).
  • 60.
    edited July 2018

    In comment #37 Christopher wrote:

    \(\mathbf{Preord}\) is not a preorder.

    Right. Anyone who gets confused about such things should remember: "an ant colony is not an ant". \(\mathbf{Preord}\) is a big thing with all the preorders in the universe crawling around inside it. There's no reason it itself should be a preorder. It could be, but you can check it's not.

    The surprising thing is when an ant colony is an ant, or something like a giant ant. The set of all sets, the category of all categories - this is where things get interesting. We could discuss this a lot.

    Basically to avoid logical contradictions we need to use some trick like Grothendieck's axiom of universes, which allows one to say the set of all ordinary sets is a "large" set, the set of all large sets is an "extra-large" set, etc. I am never going to discuss this stuff in lectures, because it's distracting, technical, and ultimately irrelevant to the material in the course. But people who care about the foundations of math eventually need to tackle this material.

    Comment Source:In comment #37 Christopher wrote: > \\(\mathbf{Preord}\\) is not a preorder. Right. Anyone who gets confused about such things should remember: "an ant colony is not an ant". \\(\mathbf{Preord}\\) is a big thing with all the preorders in the universe crawling around inside it. There's no reason it itself should be a preorder. It _could_ be, but you can check it's not. The surprising thing is when an ant colony _is_ an ant, or something like a giant ant. The set of all sets, the category of all categories - this is where things get interesting. We could discuss this a lot. Basically to avoid logical contradictions we need to use some trick like Grothendieck's [axiom of universes](https://en.wikipedia.org/wiki/Grothendieck_universe), which allows one to say the set of all ordinary sets is a "large" set, the set of all large sets is an "extra-large" set, etc. I am never going to discuss this stuff in lectures, because it's distracting, technical, and ultimately irrelevant to the material in the course. But people who care about the foundations of math eventually need to tackle this material.
  • 61.
    edited July 2018

    It it self isn't really an interesting problem in proof assistant design, but automating the logic that extracts and solves the problem is.

    It helps that the type theory version requires a more complex paradox then Russell's. So in practical programming it's hard to run into.

    Comment Source:It it self isn't really an interesting problem in proof assistant design, but automating the logic that extracts and solves the problem is. It helps that the type theory version requires a more complex paradox then Russell's. So in practical programming it's hard to run into.
  • 62.
    edited July 2018

    Anindya wrote:

    The key phrase is "it sends any category C to its set of objects". But the objects of Cat do not form a set. Neither do the objects of Set.

    For the purposes of my puzzles in this lecture, one should ignore all this. But for those who are interested, I'll say a bit...

    image

    Okay, now we're getting into the foundations of mathematics. If all we have at our disposal is the usual ZFC axioms, which suffice for most ordinary math, we have to say the collection of all sets is a proper class, not a set. This makes it annoying, though not impossible, to rigorously study the category Set: it has not a set of objects but a proper class of objects. For the same reason it's difficult to reason about Cat: it has a proper class of objects.

    To deal with this problem, these days in category theory we add an extra axiom to ZFC: Grothendieck's axiom of universes.

    This says that every set is an element of some set called a Grothendieck universe, which acts like the collection of all sets. In other words, a Grothendieck universe is a set closed under all the usual operations of set theory, so we can work inside it and act like we're working with all sets, even though we're not really!

    Using this axiom we can easily generate an infinite sequences of Grothendieck universes \(U_1, U_2, \dots\) with \(U_i \in U_{i+1}\).

    Elements of \(U_1\) are called small sets, elements of \(U_2\) are called large sets, and sometimes one needs to go further and work with elements of \(U_3\), which I jokingly call 'extra-large sets', and so on. Since \(U_1 \in U_2\), the set of all small sets is a large set, and so on.

    We define \(\mathbf{Set}\) to be the category of small sets and functions between these. Then \(\mathbf{Set}\) has a large set of objects and a large set of morphisms, so we call it a large category.

    Similarly, we define Cat to be the category of small categories: categories with a small set of objects and a small set of morphisms. Cat is not itself a small category: it's a large category.

    You can play this game starting with sets of any size and get categories \(\mathbf{Set}_1, \mathbf{Set}_2, \dots \), with \(\mathbf{Set}_1\) being our friend \(\mathbf{Set}\) and \(\mathbf{Set}_n\) being the category of all sets that are members of \(U_n\). The set of objects of \(\mathbf{Set}_n\) is \(U_n\), which is an element of \(U_{n+1}\), so the set of objects of \(\mathbf{Set}_n\) is an object of \(\mathbf{Set}_{n+1}\).

    Similarly you can define \(\mathbf{Cat}_n \) to be the category of all categories whose set of objects and set of morphisms are elements of \(U_n\).

    If you want to study the categories \(\mathbf{Set}_n\) and \(\mathbf{Cat}_n\), you can do so by treating them as objects of \(\mathbf{Cat}_{n+1}\).

    So, it's perfectly fine to talk about the 'category of all categories' as long as we realize we're secretly talking about the category of size \(n+1\) whose objects are all categories of size \(n\).

    The good thing about this baloney is that you can easily prove theorems about \(\mathbf{Cat}_n\) for all \(n\) at once: they all work the same way! So whenever you run into a 'size issue', like wanting to talk about the category of all categories of a given size, you can just increase \(n\) by one and nothing bad happens: all your theorems about the category of small categories will still apply!

    In the end, these issues usually matter very little, so we can usually ignore them, which is what I intend to do this in this course. There are some theorems in category theory where you really need to think about this stuff, but humble 'applied category theorists' are probably safe.

    Comment Source:Anindya wrote: > The key phrase is "it sends any category C to its set of objects". But the objects of **Cat** do not form a set. Neither do the objects of **Set**. For the purposes of my puzzles in this lecture, one should ignore all this. But for those who are interested, I'll say a bit... <img width = "100" src = "http://math.ucr.edu/home/baez/mathematical/warning_sign.jpg"> Okay, now we're getting into the foundations of mathematics. If all we have at our disposal is the usual [ZFC axioms](https://en.wikipedia.org/wiki/Zermelo%E2%80%93Fraenkel_set_theory), which suffice for most ordinary math, we have to say the collection of all sets is a [proper class](https://en.wikipedia.org/wiki/Class_(set_theory)), not a set. This makes it annoying, though not impossible, to rigorously study the category **Set**: it has not a set of objects but a proper class of objects. For the same reason it's difficult to reason about **Cat**: it has a proper class of objects. To deal with this problem, these days in category theory we add an extra axiom to ZFC: Grothendieck's [axiom of universes](https://ncatlab.org/nlab/show/Grothendieck+universe#axiom_of_universes). This says that every set is an element of some set called a [Grothendieck universe](https://en.wikipedia.org/wiki/Grothendieck_universe), which acts like the collection of _all_ sets. In other words, a Grothendieck universe is a set closed under all the usual operations of set theory, so we can work inside it and act like we're working with _all_ sets, even though we're not really! Using this axiom we can easily generate an infinite sequences of Grothendieck universes \\(U_1, U_2, \dots\\) with \\(U_i \in U_{i+1}\\). Elements of \\(U_1\\) are called **small sets**, elements of \\(U_2\\) are called **large sets**, and sometimes one needs to go further and work with elements of \\(U_3\\), which I jokingly call 'extra-large sets', and so on. Since \\(U_1 \in U_2\\), the set of all small sets is a large set, and so on. We define \\(\mathbf{Set}\\) to be the category of _small_ sets and functions between these. Then \\(\mathbf{Set}\\) has a _large_ set of objects and a large set of morphisms, so we call it a **large category**. Similarly, we define **Cat** to be the category of **small categories**: categories with a small set of objects and a small set of morphisms. **Cat** is not itself a small category: it's a large category. You can play this game starting with sets of any size and get categories \\(\mathbf{Set}\_1, \mathbf{Set}\_2, \dots \\), with \\(\mathbf{Set}\_1\\) being our friend \\(\mathbf{Set}\\) and \\(\mathbf{Set}\_n\\) being the category of all sets that are members of \\(U\_n\\). The set of objects of \\(\mathbf{Set}\_n\\) is \\(U\_n\\), which is an element of \\(U\_{n+1}\\), so the set of objects of \\(\mathbf{Set}\_n\\) is an object of \\(\mathbf{Set}\_{n+1}\\). Similarly you can define \\(\mathbf{Cat}\_n \\) to be the category of all categories whose set of objects and set of morphisms are elements of \\(U\_n\\). If you want to study the categories \\(\mathbf{Set}\_n\\) and \\(\mathbf{Cat}\_n\\), you can do so by treating them as objects of \\(\mathbf{Cat}\_{n+1}\\). **So, it's perfectly fine to talk about the 'category of all categories' as long as we realize we're secretly talking about the category of size \\(n+1\\) whose objects are all categories of size \\(n\\).** The good thing about this baloney is that you can easily prove theorems about \\(\mathbf{Cat}\_n\\) for all \\(n\\) at once: they all work the same way! So whenever you run into a 'size issue', like wanting to talk about the category of all categories of a given size, you can just increase \\(n\\) by one and nothing bad happens: all your theorems about the category of small categories will still apply! **In the end, these issues usually matter very little, so we can usually ignore them, which is what I intend to do this in this course**. There are _some_ theorems in category theory where you really need to think about this stuff, but humble 'applied category theorists' are probably safe.
  • 63.
    edited July 2018

    Christopher wrote in comment #8:

    Wait, doesn't going to Poset skeletonise things? I.e. any connected* groupoid is taken to the poset \(\{\ast\}\)? So that the composition doesn't equal Ob?

    Anindya wrote in comment #42

    Has anyone got anywhere on Puzzle 163? I'm thoroughly stuck.

    The inclusion functors PosetPreord and PreordCat have left adjoints: we can send a preorder to its skeleton, and a category to its "thin-ification", but I don't think they have right adjoints, and I can't think of any other sensible functors between these categories.

    Yes, there's a mistake in Puzzle 163, which I will fix now. Sorry! image

    Let me write down the original version here, so everyone can see what the fuss was about. I will also include a copy in your posts.

    Puzzle 163. Show there are functors

    $$ \mathbf{Cat} \stackrel{R_1}{\longrightarrow} \mathbf{Preord} \stackrel{R_2}{\longrightarrow} \mathbf{Poset} \stackrel{R_3}{\longrightarrow} \mathbf{Set} $$ with left adjoints going back: $$ \mathbf{Set} \stackrel{L_3}{\longrightarrow} \mathbf{Poset} \stackrel{L_2}{\longrightarrow} \mathbf{Preord} \stackrel{L_1}{\longrightarrow} \mathbf{Cat} . $$ Hint: the composite \( R_3 R_2 R_1 : \mathbf{Cat} \to \mathbf{Set} \) is our friend $$ \text{Ob}: \mathbf{Cat} \to \mathbf{Set} ,$$ and the composite \(L_1 L_2 L_3 : \mathbf{Set} \to \mathbf{Cat} \) is our friend $$ \mathrm{Disc} : \mathbf{Set} \to \mathbf{Cat} .$$

    The functor \(R_2 : \mathbf{Preord} \to \mathbf{Poset}\) I had in mind skeletalizes any preorder, by choosing a representative for each isomorphism class. But this would mean that the composite \(R_3 R_2 R_1: \mathbf{Cat} \to \mathbf{Set} \) sends any category to its set of isomorphism classes of its objects, not its set of objects. So, this composite could not equal our friend

    $$ \text{Ob}: \mathbf{Cat} \to \mathbf{Set} .$$ Furthermore, the 'skeletalizing' functor \( \mathbf{Preord} \to \mathbf{Poset}\) is not really a right adjoint! So it doesn't deserve to be called \(R_2\).

    So, I will remove \(\mathbf{Poset}\) from the above chain of functors, and put it into another puzzle.

    image

    Here's a way to see that the skeletalizing functor \(\mathrm{Sk}: \mathbf{Preord} \to \mathbf{Poset}\) doesn't have a right adjoint. It uses ideas we haven't covered yet. Right adjoints preserve limits and in particular equalizers. But we can see that \(\mathrm{Sk}: \mathbf{Preord} \to \mathbf{Poset}\) doesn't preserve equalizers, by looking at an example.

    Consider the preorder \(X\) consisting of two isomorphic objects. When we skeletalize it we get the terminal poset \(\mathbf{1}\) - that is, the poset with one element: \( \mathrm{Sk}(X) = \mathbf{1} \).

    There are exactly two different monotone functions

    $$ f,g : \mathbf{1} \to X, $$ and when we take their equalizer we get \(\mathbf{0}\) - the preorder with no elements. Then skeletalizing this we get the poset with no elements.

    On the other hand, if we skeletalize first we get two monotone functions

    $$ \mathrm{Sk}(f), \mathrm{Sk}(g) : \mathrm{Sk}(1) \to \mathrm{Sk}(X) ,$$ but \(\mathrm{Sk}(X) = \mathbf{1} \) has just one element so these two functions are equal! Thus, taking their equalizer we get all of \(\mathrm{Sk}(\mathbf{1}) = \mathbf{1}\).

    So, we're seeing that \(\mathrm{Sk}\) can't be a right adjoint.

    Comment Source:Christopher wrote in [comment #8](https://forum.azimuthproject.org/discussion/comment/19785/#Comment_19785): > Wait, doesn't going to Poset skeletonise things? I.e. any connected* groupoid is taken to the poset \\(\\{\ast\\}\\)? So that the composition doesn't equal Ob? Anindya wrote in [comment #42](https://forum.azimuthproject.org/discussion/comment/19834/#Comment_19834) > Has anyone got anywhere on **Puzzle 163**? I'm thoroughly stuck. > The inclusion functors **Poset** → **Preord** and **Preord** → **Cat** have _left_ adjoints: we can send a preorder to its skeleton, and a category to its "thin-ification", but I don't think they have right adjoints, and I can't think of any other sensible functors between these categories. Yes, there's a mistake in Puzzle 163, which I will fix now. Sorry! <img src = "http://math.ucr.edu/home/baez/emoticons/doh20.gif"> Let me write down the original version here, so everyone can see what the fuss was about. I will also include a copy in your posts. > **Puzzle 163.** Show there are functors > \[ \mathbf{Cat} \stackrel{R_1}{\longrightarrow} \mathbf{Preord} \stackrel{R_2}{\longrightarrow} \mathbf{Poset} \stackrel{R_3}{\longrightarrow} \mathbf{Set} \] > with left adjoints going back: > \[ \mathbf{Set} \stackrel{L_3}{\longrightarrow} \mathbf{Poset} \stackrel{L_2}{\longrightarrow} \mathbf{Preord} \stackrel{L_1}{\longrightarrow} \mathbf{Cat} . \] > Hint: the composite \\( R_3 R_2 R_1 : \mathbf{Cat} \to \mathbf{Set} \\) is our friend > \[ \text{Ob}: \mathbf{Cat} \to \mathbf{Set} ,\] > and the composite \\(L_1 L_2 L_3 : \mathbf{Set} \to \mathbf{Cat} \\) is our friend > \[ \mathrm{Disc} : \mathbf{Set} \to \mathbf{Cat} .\] The functor \\(R_2 : \mathbf{Preord} \to \mathbf{Poset}\\) I had in mind **skeletalizes** any preorder, by choosing a representative for each isomorphism class. But this would mean that the composite \\(R_3 R_2 R_1: \mathbf{Cat} \to \mathbf{Set} \\) sends any category to its set of _isomorphism classes_ of its objects, not its set of objects. So, this composite could not equal our friend \[ \text{Ob}: \mathbf{Cat} \to \mathbf{Set} .\] Furthermore, the 'skeletalizing' functor \\( \mathbf{Preord} \to \mathbf{Poset}\\) is not really a right adjoint! So it doesn't deserve to be called \\(R_2\\). So, I will remove \\(\mathbf{Poset}\\) from the above chain of functors, and put it into another puzzle. <img width = "100" src = "http://math.ucr.edu/home/baez/mathematical/warning_sign.jpg"> Here's a way to see that the skeletalizing functor \\(\mathrm{Sk}: \mathbf{Preord} \to \mathbf{Poset}\\) doesn't have a right adjoint. It uses ideas we haven't covered yet. Right adjoints preserve limits and in particular equalizers. But we can see that \\(\mathrm{Sk}: \mathbf{Preord} \to \mathbf{Poset}\\) doesn't preserve equalizers, by looking at an example. Consider the preorder \\(X\\) consisting of two isomorphic objects. When we skeletalize it we get the terminal poset \\(\mathbf{1}\\) - that is, the poset with one element: \\( \mathrm{Sk}(X) = \mathbf{1} \\). There are exactly two different monotone functions \[ f,g : \mathbf{1} \to X, \] and when we take their equalizer we get \\(\mathbf{0}\\) - the preorder with no elements. Then skeletalizing this we get the poset with no elements. On the other hand, if we skeletalize first we get two monotone functions \[ \mathrm{Sk}(f), \mathrm{Sk}(g) : \mathrm{Sk}(1) \to \mathrm{Sk}(X) ,\] but \\(\mathrm{Sk}(X) = \mathbf{1} \\) has just one element so these two functions are equal! Thus, taking their equalizer we get all of \\(\mathrm{Sk}(\mathbf{1}) = \mathbf{1}\\). So, we're seeing that \\(\mathrm{Sk}\\) can't be a right adjoint.
  • 64.

    Michael wrote in comment #44

    This naturality isomorphism for adjoint functors is really confusing.

    It's also not extremely important for what we're doing so far, which is why I put off talking about it to very end: the last puzzle in the last lecture on this chapter. I just felt guilty not talking about it.

    I have no sense of intuition for this yet. Do you have a worked out example of how to use the naturality square to determine whether a functor is a left or right adjoint?

    Anindya answered this just the way I would:

    Re the natural isomorphism \(\mathcal{D}(LX, Y) \cong \mathcal{C}(X, RY)\), I've found that you don't usually need to worry too much about naturality. The key thing is to look for a bijection between \(\mathcal{D}\)-arrows \(LX \rightarrow Y\) and \(\mathcal{C}\)-arrows \(X \rightarrow RY\). Usually something will "jump out" at you, and it will usually turn out to be natural.

    In short, the naturality square is the very last thing to check. Much more important, if you're trying to determine if a functor \(L\) is (say) a left adjoint, is to find a candidate \(R\) for its right adjoint. Then, see if you can find a bijection \(\mathcal{D}(L(X), Y) \cong \mathcal{C}(X, R(Y))\). If you succeed in finding one, and it's not too ridiculous, 99 times out of 100 it will make that naturality square commute.

    So, the key skill to develop is guessing adjoints to functors that people hand you. When you get good, you'll recognize the difference in flavors between left and right adjoints, and you can use that to guide you.

    Here's an example of a ridiculous bijection: suppose you determine that both \(\mathcal{D}(L(X), Y)\) and \(\mathcal{C}(X, R(Y))\) are always countable infinite sets, and you say "okay, so pick any bijection". That's ridiculous: it's too random to make the naturality square commute. You need a systematic choice of bijection.

    Comment Source:Michael wrote in [comment #44](https://forum.azimuthproject.org/discussion/comment/19841/#Comment_19841) > This naturality isomorphism for adjoint functors is really confusing. It's also not extremely important for what we're doing so far, which is why I put off talking about it to very end: the [last puzzle in the last lecture on this chapter](https://forum.azimuthproject.org/discussion/2277/lecture-54-chapter-3-tying-up-loose-ends/p1). I just felt guilty not talking about it. > I have no sense of intuition for this yet. Do you have a worked out example of how to use the naturality square to determine whether a functor is a left or right adjoint? Anindya answered this just the way I would: > Re the natural isomorphism \\(\mathcal{D}(LX, Y) \cong \mathcal{C}(X, RY)\\), I've found that you don't usually need to worry too much about naturality. The key thing is to look for a bijection between \\(\mathcal{D}\\)-arrows \\(LX \rightarrow Y\\) and \\(\mathcal{C}\\)-arrows \\(X \rightarrow RY\\). Usually something will "jump out" at you, and it will usually turn out to be natural. In short, the naturality square is the very last thing to check. Much more important, if you're trying to determine if a functor \\(L\\) is (say) a left adjoint, is to find a _candidate_ \\(R\\) for its right adjoint. Then, see if you can find a bijection \\(\mathcal{D}(L(X), Y) \cong \mathcal{C}(X, R(Y))\\). If you succeed in finding one, and it's not too ridiculous, 99 times out of 100 it will make that naturality square commute. So, **the key skill to develop is _guessing_ adjoints to functors that people hand you**. When you get good, you'll recognize the difference in flavors between left and right adjoints, and you can use that to guide you. Here's an example of a ridiculous bijection: suppose you determine that both \\(\mathcal{D}(L(X), Y)\\) and \\(\mathcal{C}(X, R(Y))\\) are always countable infinite sets, and you say "okay, so pick any bijection". That's ridiculous: it's too random to make the naturality square commute. You need a _systematic_ choice of bijection.
  • 65.
    edited July 2018

    Anindya wrote:

    just had a thought – if we define \(R_1\) to be the functor sending a category \(C\) to the codiscrete preorder on \(\textrm{Ob}(C)\), and define \(L_1\) to the functor sending a preorder \(P\) to the discrete category on the elements of \(P\), then an arrow \(L_1 (P) \rightarrow C\) just picks out one \(C\)-object for every \(P\)-element, which is the same thing as an arrow \(P \rightarrow R_1 (C)\). I think these are the functors we're looking for.

    That's very clever, and it might even work, but I hadn't intended the puzzle to be so tricky! I just wanted to make people think about the most familiar functors between \(\mathbf{Cat}, \mathbf{Preord}, \mathbf{Poset}\) and \(\mathbf{Set}\).

    Comment Source:Anindya wrote: > just had a thought – if we define \\(R_1\\) to be the functor sending a category \\(C\\) to the codiscrete preorder on \\(\textrm{Ob}(C)\\), and define \\(L_1\\) to the functor sending a preorder \\(P\\) to the discrete category on the elements of \\(P\\), then an arrow \\(L_1 (P) \rightarrow C\\) just picks out one \\(C\\)-object for every \\(P\\)-element, which is the same thing as an arrow \\(P \rightarrow R_1 (C)\\). I think these are the functors we're looking for. That's very clever, and it might even work, but I hadn't intended the puzzle to be so tricky! I just wanted to make people think about the most familiar functors between \\(\mathbf{Cat}, \mathbf{Preord}, \mathbf{Poset}\\) and \\(\mathbf{Set}\\).
  • 66.
    edited July 2018

    I had worked out a solution of the original version of Puzzle 163, even though it later turned out not to be intended as stated.

    Puzzle 163. Show there are functors

    $$ \mathbf{Cat} \stackrel{R_1}{\longrightarrow} \mathbf{Preord} \stackrel{R_2}{\longrightarrow} \mathbf{Poset} \stackrel{R_3}{\longrightarrow} \mathbf{Set} $$ with left adjoints going back: $$ \mathbf{Set} \stackrel{L_3}{\longrightarrow} \mathbf{Poset} \stackrel{L_2}{\longrightarrow} \mathbf{Preord} \stackrel{L_1}{\longrightarrow} \mathbf{Cat} . $$ Hint: the composite \( R_3 R_2 R_1 : \mathbf{Cat} \to \mathbf{Set} \) is our friend $$ \text{Ob}: \mathbf{Cat} \to \mathbf{Set} ,$$ and the composite \(L_1 L_2 L_3 : \mathbf{Set} \to \mathbf{Cat} \) is our friend $$ \mathrm{Disc} : \mathbf{Set} \to \mathbf{Cat} .$$

    Let \(R_1(C)\) be the discrete preorder on the objects of category \(C\). Let \(L_1(Q)\) be the discrete category on the connected components of \(Q\). Functors \(Q\to R_1(C)\) must map all objects in the same connected component of \(Q\) to the same object of \(C\) and map all arrows to the identity of that object. So they are just functions from connected components of \(Q\) to objects of \(C\). Monotonic functions \(L_1(Q)\to C\) are also just functions because \(L_1(Q)\) is discrete.

    We can do the same thing again letting \(R_2(Q)\) be the discrete poset on the objects of \(Q\) and \(L_2(P)\) be the discrete preorder on the connected components of \(P\).

    Finally, let \(R_3(P) = \mathrm{Ob}(P)\) be the object set of \(P\) and \(L_3(S)\) be the discrete poset on \(S\). This adjointness works the same way as the analogous one between \(\mathbf{Cat}\) and \(\mathbf{Set}\).

    Now \(R_3R_2R_1=\mathrm{Ob}:\mathbf{Cat} \to \mathbf{Set}\) and \(L_1L_2L_3=\mathrm{Disc}:\mathbf{Set}\to\mathbf{Cat}\), as desired.

    Comment Source:I had worked out a solution of the original version of **Puzzle 163**, even though it later turned out not to be intended as stated. > **Puzzle 163.** Show there are functors > \[ \mathbf{Cat} \stackrel{R_1}{\longrightarrow} \mathbf{Preord} \stackrel{R_2}{\longrightarrow} \mathbf{Poset} \stackrel{R_3}{\longrightarrow} \mathbf{Set} \] > with left adjoints going back: > \[ \mathbf{Set} \stackrel{L_3}{\longrightarrow} \mathbf{Poset} \stackrel{L_2}{\longrightarrow} \mathbf{Preord} \stackrel{L_1}{\longrightarrow} \mathbf{Cat} . \] > Hint: the composite \\( R_3 R_2 R_1 : \mathbf{Cat} \to \mathbf{Set} \\) is our friend > \[ \text{Ob}: \mathbf{Cat} \to \mathbf{Set} ,\] > and the composite \\(L_1 L_2 L_3 : \mathbf{Set} \to \mathbf{Cat} \\) is our friend > \[ \mathrm{Disc} : \mathbf{Set} \to \mathbf{Cat} .\] Let \\(R_1(C)\\) be the discrete preorder on the objects of category \\(C\\). Let \\(L_1(Q)\\) be the discrete category on the connected components of \\(Q\\). Functors \\(Q\to R_1(C)\\) must map all objects in the same connected component of \\(Q\\) to the same object of \\(C\\) and map all arrows to the identity of that object. So they are just functions from connected components of \\(Q\\) to objects of \\(C\\). Monotonic functions \\(L_1(Q)\to C\\) are also just functions because \\(L_1(Q)\\) is discrete. We can do the same thing again letting \\(R_2(Q)\\) be the discrete poset on the objects of \\(Q\\) and \\(L_2(P)\\) be the discrete preorder on the connected components of \\(P\\). Finally, let \\(R_3(P) = \mathrm{Ob}(P)\\) be the object set of \\(P\\) and \\(L_3(S)\\) be the discrete poset on \\(S\\). This adjointness works the same way as the analogous one between \\(\mathbf{Cat}\\) and \\(\mathbf{Set}\\). Now \\(R_3R_2R_1=\mathrm{Ob}:\mathbf{Cat} \to \mathbf{Set}\\) and \\(L_1L_2L_3=\mathrm{Disc}:\mathbf{Set}\to\mathbf{Cat}\\), as desired.
  • 67.

    that's ingenious! I'd given up thinking a solution was possible.

    Comment Source:that's ingenious! I'd given up thinking a solution was possible.
  • 68.

    it's interesting how all the right adjoints say "throw away all the arrows!" and all the left adjoints say "identify any arrow-related things!".

    Comment Source:it's interesting how all the right adjoints say "throw away all the arrows!" and all the left adjoints say "identify any arrow-related things!".
  • 69.

    That's neat, Yoav! Thanks for presenting that solution!

    Comment Source:That's neat, Yoav! Thanks for presenting that solution!
  • 70.
    edited July 2018

    Bat, yes, and because \(L_1\) and \(L_2\) drop objects when acting on non-discrete things, I was worried the composition wouldn't end up giving back Disc, which doesn't drop objects. But it turned out the resolution is that \(L_3\) only spits out discrete posets.

    To finish off the original problem, \(R_1\) does have a right adjoint: a monotone function \(R_1(C)\to Q\) is any function from the objects of \(C\) to the objects of \(Q\). So to make sure we can make it into a unique functor from \(C\) to a category based on \(Q\), call it \(F_1(Q)\), it seems like \(F_1(Q)\) should have the same objects as \(Q\) and a unique morphism from any object to any other object.

    I think the same thing works for \(R_2\). That is, let \(F_2(P)\) be the complete preorder on the object of the poset \(P\)

    We run into problems with the right adjoint for \(R_3\). We want \(F_3(S)\) to have arrows from any object to any other object, but then it's not a poset. I think this means that \(R_3\) doesn't have a right adjoint, but I'm not sure how one proves that.

    Comment Source:Bat, yes, and because \\(L_1\\) and \\(L_2\\) drop objects when acting on non-discrete things, I was worried the composition wouldn't end up giving back Disc, which doesn't drop objects. But it turned out the resolution is that \\(L_3\\) only spits out discrete posets. To finish off the original problem, \\(R_1\\) does have a right adjoint: a monotone function \\(R_1(C)\to Q\\) is any function from the objects of \\(C\\) to the objects of \\(Q\\). So to make sure we can make it into a unique functor from \\(C\\) to a category based on \\(Q\\), call it \\(F_1(Q)\\), it seems like \\(F_1(Q)\\) should have the same objects as \\(Q\\) and a unique morphism from any object to any other object. I think the same thing works for \\(R_2\\). That is, let \\(F_2(P)\\) be the complete preorder on the object of the poset \\(P\\) We run into problems with the right adjoint for \\(R_3\\). We want \\(F_3(S)\\) to have arrows from any object to any other object, but then it's not a poset. I think this means that \\(R_3\\) doesn't have a right adjoint, but I'm not sure how one proves that.
  • 71.
    edited July 2018

    I was doing some reading to catch up with the class and I learned about the Adjoint Functor Theorem in Lecture 16. So now I know how to prove that \(R_3 = \mathrm{Ob}:\mathbf{Poset}\to\mathbf{Set}\) doesn't have a right adjoint.

    We need to show that it doesn't preserve colimits. Unfortunately, it does seem to preserve coproducts, so we need to come up with a fancier colimit. Let P be the discrete poset on {A, B}, let Q be the poset on the same set with A<B, and R have B<A. The pushout of \(\text{id}:P\to Q\) and \(\text{id}:P\to R\) as monotonic functions is the one-element poset, but the pushout of the same as plain functions is {A, B}.

    Comment Source:I was doing some reading to catch up with the class and I learned about the Adjoint Functor Theorem in Lecture 16. So now I know how to prove that \\(R_3 = \mathrm{Ob}:\mathbf{Poset}\to\mathbf{Set}\\) doesn't have a right adjoint. We need to show that it doesn't preserve colimits. Unfortunately, it does seem to preserve coproducts, so we need to come up with a fancier colimit. Let P be the discrete poset on {A, B}, let Q be the poset on the same set with A<B, and R have B<A. The pushout of \\(\text{id}:P\to Q\\) and \\(\text{id}:P\to R\\) as monotonic functions is the one-element poset, but the pushout of the same as plain functions is {A, B}.
  • 72.

    ah I was wondering about that but got as far as coproducts getting persevered and gave up. moral in here somewhere yeah...

    Comment Source:ah I was wondering about that but got as far as coproducts getting persevered and gave up. moral in here somewhere yeah...
  • 73.
    edited July 2018

    Yoav wrote:

    Let P be the discrete poset on {A, B}, let Q be the poset on the same set with A<B, and R have B<A. The pushout of \(\text{id}:P\to Q\) and \(\text{id}:P\to R\) as monotonic functions is the one-element poset,

    Nice! I got mixed up for a minute, because in \(\mathbf{Preord}\) I believe this pushout is the preorder with two elements each less than or equal to the other... but that's not a poset, and yes, if we do the pushout in \(\mathbf{Poset}\) we get what you said.

    My confusion at least has one benefit: it means the same argument can be used to show the forgetful functor \(\mathbf{Preord} \to \mathbf{Set}\) has no right adjoint.

    Comment Source:Yoav wrote: > Let P be the discrete poset on {A, B}, let Q be the poset on the same set with A<B, and R have B<A. The pushout of \\(\text{id}:P\to Q\\) and \\(\text{id}:P\to R\\) as monotonic functions is the one-element poset, Nice! I got mixed up for a minute, because in \\(\mathbf{Preord}\\) I believe this pushout is the preorder with two elements each less than or equal to the other... but that's not a poset, and yes, if we do the pushout in \\(\mathbf{Poset}\\) we get what you said. My confusion at least has one benefit: it means the same argument can be used to show the forgetful functor \\(\mathbf{Preord} \to \mathbf{Set}\\) has no right adjoint.
Sign In or Register to comment.