The insights and perspectives shared in this lecture are truly beautiful. Once seen, they stay with you forever. My sincere thank you for the entire series, and especially for this lecture!
Thanks for providing these videos. Just one minor remark about the last minute: when you show that you have a contravariant functor from one set of natural transformations to the other, you just "build" the maps u_i from the \mu_i, but in principle you should also check that the collection of all these u_i form a natural transformation. I think nevertheless that it is straightforward to see it from the diagram linking the two cones, i.e.., that the condition is inherited from the same naturality condition which is assumed to hold on the \mu_i. This in fact should be similar to the argument that you have already explained in a previous lesson to show how you got automatically from a cone with apex Lim D a come with apex C by just composing with the map m between these two points.
@Bartosz Milewski at 21:30, I am confused. By definition, Lim D is (the) terminal object for cones, and morphism "m" from "c" to "Lim D" is unique (only one morphism). Why is there a HomSet of morphisms between "c" and "Lim D"? Did you mean for every "c" in Category "C" , set of unique morphisms ("m"s from all "c"s) and not HomSet at 21:40 ? Thanks.
@@DrBartosz Thanks for the reply. I rewatched it. @ 8:00 you mentioned there may be many cones from the same apex "c". So the HomSet(c, LimD) at 21:40 is the set of unique morphisms, i.e, m, one from every cone from same apex c to LimD. Thanks again for all the lectures.
i feel like what im missing is the definition of an external hom-set. EDIT: The wikipedia article on Hom-functors seems to also simply assert that the members of the homset are functions by composing them with morphisms in Set. I cant seem to find a definition of an external hom-set that would state more than the fact that its members are morphisms in some category.
@@DrBartosz how does the composition work in that case? appearantly composing a function and a member of an external hom-set is a thing (at least i would assume since its literally used in the wikipedia hom functor article). I am just trying to understand how the mapping actually works. EDIT: Ok, I just realized we are not composing a function with a member of the hom-set. We are actually dealing with a morphism of the same category the hom-set is of. It all makes perfect sense now.
Love the positive energy of these lectures :) I struggle to make sense of it but maybe I’ll get there eventually. Helps that the lectures are so fun - cheers!
In the phrasing of representations, the category of Cones is the category of elements of the functor F= [I,C](Delta \_, D), lim D is a representing object, C(\_, lim D) is the representation of the representable F
Thank you for making these available. For a set theorist, it's probably rewarding to see all these constructions relate back to sets. For someone trying to escape from set theory, however, it's a bit disturbing. Is there an alternate way to understand these abstractions without sets?
Enriched categories get away from sets -- they have hom-objects instead. However, hom-object come from a monoidal category whose hom-sets are sets. So there are always sets somewhere at the bottom. In most cases though you don't have to commit to any specific set theory.
i wonder why we talk so naturally about the collection of arrows between two objects as a "HomSet" but natural transformations are called "Family" of morphisms. why aren't natural transformations also just Sets of functions, and therefore objects in Set?
Hello. Regarding uniqueness of morphisms, I'm having some trouble seeing it (in many cases, not just limits). For example in the correspondence between cones and "factorizing" morphisms [I, C](Δc, D) C(c, Lim D), given two morphisms - natural transformations - in [I, C](Δc, D), I do not see how that implies that there are going to be two morphisms in C(c, Lim D). And the right-to-left implication also sounds odd to me. Is it not the case that naturality is NOT completely determined unless there's an isomorphism involved in a commuting triangle?
@@DrBartosz I think I already got it. It was a mix between not really understanding what "being universal for a given property" means, and some confusion due to the change of names c to Lim D and the following re-utilization of c for a "candidate limit" object in the whiteboard. But now, knowing that Δc is the constant functor that maps all objects in I to c, and c is potentially different from Lim D, the universal construction makes sense.
Yes, at least for the purposes of this lecture series. You'll see the term "complete category" thrown around which is a "category where all small limits exist" A category with *all* limits, small and big, has to be a thin category according to Wikipedia. There is also finitely complete categories, which are categories where all limits indexed by a finite category exist.
Thanks again for these incredibly interesting lectures! I'm very interested in whether there is a way to abstract this concept of "embedding a diagram" to "embedding a diagram of parameterizable structure." E.g. consider an index category I_n of n objects in a "directed-n-graph" (e.g. I_4 ={objs = {a, b, c, d}, morphisms = {a -> b, a -> c, a -> d, b -> c, b-> c, c ->d}}). Is there a way to create a category of all such n-object index diagrams and somehow create a formalism around embedding these? How do you formalize this? As a concrete example of why you might want to do something like this, suppose that we have a category of "polyamorous marriages" which somehow contains structures parameterized by # of husbands and # of wives (e.g. 1 man, 1 wife / 1 man, 2 wives / 1 man, 3 wives / 2 men, 1 wife / etc.) and I want to specify structure in another category (e.g. a category of "people" w/ "relationship" morphism) by projecting these indices into it. I guess I'm answering my own question here -- what I'm really talking about is a set of parameterized index categories. I suppose what my question -really- is then is what can we say about this set of categories? Are there formal structures like functors or natural transformations which can be applied to such a set? Also! Is this approach of defining an "index category" or "set of index categories" actually used in Haskell? I'm interested in how to think about this from a computational point of view, also.
I don't really get how the contrafunctor was shown. if you pick an elem from C(c, Lim D), i.e. u : c -> Lim D, which is a morphism from c to Lim D, the functor that maps c to C(c, Lim D) is not of the same type as u, but rather F : c -> C(c, Lim D). So I don't really see how this generates the contrafunctor.
F is a functor from C to Set. It's contravariant because given f :: c' -> c you can lift it to C(c, Lim D) -> C(c', Lim D). Here's how you do it: Given a u, which is a member of C(c, Lim D) you produce a u.f which is a member of C(c', Lim D).
@@DrBartosz how does one compose an element of this set with a function ? i dont understand why members of the external hom-set are functions as you said at 34:24. Maybe im just missing the definition of an external hom-set.
0:15 Am I the only one who thinks limits are useful to programming? I can think of at least one real world example from recent memory. Let's say you're refactoring some OOP code that implements the "Blackboard pattern". You want to clarify the rules that govern blackboard behavior so you draw a category diagram that represents how information is derived given other information. You implement this diagram as a namespace where arrows are pure functions that map between data structures. Let's say the diagram has an initial object, and you want to create a function that derives everything which can be known from this initial object. The function returns a new data structure that is defined as the product of all objects within the diagram, and since these objects allow derivation of each other, this return value represents the limit of the diagram. So limits demonstrate a straight forward way for us to create new levels of an abstraction hierarchy within code.
The insights and perspectives shared in this lecture are truly beautiful. Once seen, they stay with you forever. My sincere thank you for the entire series, and especially for this lecture!
Glad you spent another half a lecture going over limits. This really clarifies the ideas and concepts introduced in the previous lecture. Great stuff.
bartosz sometimes get so excited when teaching its so much fun and so adorable (hes also a magnificent teacher)
Thanks for providing these videos. Just one minor remark about the last minute: when you show that you have a contravariant functor from one set of natural transformations to the other, you just "build" the maps
u_i from the \mu_i, but in principle you should also check that the collection of all these
u_i form a natural transformation. I think nevertheless that it is straightforward to see it from the diagram linking the two cones, i.e.., that the condition is inherited from the same naturality condition which is assumed to hold on the \mu_i. This in fact should be similar to the argument that you have already explained in a previous lesson to show how you got automatically from a cone with apex Lim D a come with apex C by just composing with the map m between these two points.
@Bartosz Milewski at 21:30, I am confused. By definition, Lim D is (the) terminal object for cones, and morphism "m" from "c" to "Lim D" is unique (only one morphism). Why is there a HomSet of morphisms between "c" and "Lim D"? Did you mean for every "c" in Category "C" , set of unique morphisms ("m"s from all "c"s) and not HomSet at 21:40 ? Thanks.
You forget that a cone is not just the object but also the projections.
@@DrBartosz Thanks for the reply. I rewatched it. @ 8:00 you mentioned there may be many cones from the same apex "c". So the HomSet(c, LimD) at 21:40 is the set of unique morphisms, i.e, m, one from every cone from same apex c to LimD. Thanks again for all the lectures.
34:24 why is it a function? The elements of the set arent functions but morphisms in a completely different category right?
i feel like what im missing is the definition of an external hom-set.
EDIT: The wikipedia article on Hom-functors seems to also simply assert that the members of the homset are functions by composing them with morphisms in Set.
I cant seem to find a definition of an external hom-set that would state more than the fact that its members are morphisms in some category.
It's a morphism in C. I was talking to programmers, so I got carried away.
@@DrBartosz how does the composition work in that case? appearantly composing a function and a member of an external hom-set is a thing (at least i would assume since its literally used in the wikipedia hom functor article). I am just trying to understand how the mapping actually works.
EDIT: Ok, I just realized we are not composing a function with a member of the hom-set. We are actually dealing with a morphism of the same category the hom-set is of. It all makes perfect sense now.
@@DrBartosz btw thanks for responding. i wasnt sure that you would given that the video is 4 years old.
Love the positive energy of these lectures :) I struggle to make sense of it but maybe I’ll get there eventually. Helps that the lectures are so fun - cheers!
In the phrasing of representations, the category of Cones is the category of elements of the functor F= [I,C](Delta \_, D), lim D is a representing object, C(\_, lim D) is the representation of the representable F
Thank you for making these available.
For a set theorist, it's probably rewarding to see all these constructions relate back to sets. For someone trying to escape from set theory, however, it's a bit disturbing. Is there an alternate way to understand these abstractions without sets?
Enriched categories get away from sets -- they have hom-objects instead. However, hom-object come from a monoidal category whose hom-sets are sets. So there are always sets somewhere at the bottom. In most cases though you don't have to commit to any specific set theory.
The index-based derivation at the end reminds me of the abstract index notation in differential geometry/physics for tensors! Are they "connected"?
I wrote a blog post experimenting with this idea: "Promonads, Arrows, and Einstein Notation for Profunctors"
i wonder why we talk so naturally about the collection of arrows between two objects as a "HomSet" but natural transformations are called "Family" of morphisms. why aren't natural transformations also just Sets of functions, and therefore objects in Set?
Hello.
Regarding uniqueness of morphisms, I'm having some trouble seeing it (in many cases, not just limits).
For example in the correspondence between cones and "factorizing" morphisms [I, C](Δc, D) C(c, Lim D), given two morphisms - natural transformations - in [I, C](Δc, D), I do not see how that implies that there are going to be two morphisms in C(c, Lim D). And the right-to-left implication also sounds odd to me. Is it not the case that naturality is NOT completely determined unless there's an isomorphism involved in a commuting triangle?
Uniqueness is part of the definition of the limit, so I don't understand the question.
@@DrBartosz I think I already got it. It was a mix between not really understanding what "being universal for a given property" means, and some confusion due to the change of names c to Lim D and the following re-utilization of c for a "candidate limit" object in the whiteboard. But now, knowing that Δc is the constant functor that maps all objects in I to c, and c is potentially different from Lim D, the universal construction makes sense.
So, we are implicitly assuming that index category is a small category?
Yes, at least for the purposes of this lecture series. You'll see the term "complete category" thrown around which is a "category where all small limits exist"
A category with *all* limits, small and big, has to be a thin category according to Wikipedia.
There is also finitely complete categories, which are categories where all limits indexed by a finite category exist.
Thank you very much for this 41:14 , like really thank you!!!!
'set is the ultimate democratic category', ha that is great. awesome lecture!
Really appreciate these series but to be honest I find it hard to translate this is to programming....
this series is veering away from programming and into category theory
In which video does he talk about equalizers?
Thanks again for these incredibly interesting lectures!
I'm very interested in whether there is a way to abstract this concept of "embedding a diagram" to "embedding a diagram of parameterizable structure." E.g. consider an index category I_n of n objects in a "directed-n-graph" (e.g. I_4 ={objs = {a, b, c, d}, morphisms = {a -> b, a -> c, a -> d, b -> c, b-> c, c ->d}}). Is there a way to create a category of all such n-object index diagrams and somehow create a formalism around embedding these? How do you formalize this?
As a concrete example of why you might want to do something like this, suppose that we have a category of "polyamorous marriages" which somehow contains structures parameterized by # of husbands and # of wives (e.g. 1 man, 1 wife / 1 man, 2 wives / 1 man, 3 wives / 2 men, 1 wife / etc.) and I want to specify structure in another category (e.g. a category of "people" w/ "relationship" morphism) by projecting these indices into it.
I guess I'm answering my own question here -- what I'm really talking about is a set of parameterized index categories. I suppose what my question -really- is then is what can we say about this set of categories? Are there formal structures like functors or natural transformations which can be applied to such a set?
Also! Is this approach of defining an "index category" or "set of index categories" actually used in Haskell? I'm interested in how to think about this from a computational point of view, also.
I don't really get how the contrafunctor was shown. if you pick an elem from C(c, Lim D), i.e. u : c -> Lim D, which is a morphism from c to Lim D, the functor that maps c to C(c, Lim D) is not of the same type as u, but rather F : c -> C(c, Lim D). So I don't really see how this generates the contrafunctor.
F is a functor from C to Set. It's contravariant because given f :: c' -> c you can lift it to C(c, Lim D) -> C(c', Lim D). Here's how you do it: Given a u, which is a member of C(c, Lim D) you produce a u.f which is a member of C(c', Lim D).
@@DrBartosz how does one compose an element of this set with a function ? i dont understand why members of the external hom-set are functions as you said at 34:24.
Maybe im just missing the definition of an external hom-set.
Thanks, very informative
Math is a complex way to get satisfaction (C) Prof. A. Savvateev
Awesome
THANK YOU
such nasty categories are C and Set categories
0:15 Am I the only one who thinks limits are useful to programming? I can think of at least one real world example from recent memory. Let's say you're refactoring some OOP code that implements the "Blackboard pattern". You want to clarify the rules that govern blackboard behavior so you draw a category diagram that represents how information is derived given other information. You implement this diagram as a namespace where arrows are pure functions that map between data structures. Let's say the diagram has an initial object, and you want to create a function that derives everything which can be known from this initial object. The function returns a new data structure that is defined as the product of all objects within the diagram, and since these objects allow derivation of each other, this return value represents the limit of the diagram. So limits demonstrate a straight forward way for us to create new levels of an abstraction hierarchy within code.