Тёмный
Bartosz Milewski
Bartosz Milewski
Bartosz Milewski
Подписаться
I'm a theoretical physicist, a programmer (I worked at Microsoft), and a mathematician.
Category Theory III 6.2, Ends
34:26
6 лет назад
Category Theory III 6.1, Profunctors
29:14
6 лет назад
Category Theory II 9.1: Lenses
41:59
7 лет назад
Category Theory II 7.1: Comonads
37:39
7 лет назад
Category Theory II 5.2: Adjunctions
40:36
7 лет назад
Category Theory II 3.2: Free Monoids
36:54
7 лет назад
Комментарии
@tarikozkanli788
@tarikozkanli788 6 дней назад
There is indeed a discipline of engineering whose domain is mathematics itself.
@tarikozkanli788
@tarikozkanli788 12 дней назад
what would be the advantage of a multi category programming language. Haskell has one.
15 дней назад
Good stuff. Thank you so much.
@dddddddbable
@dddddddbable 19 дней назад
Dude looks like Ben Kingsley.
@lingdocs
@lingdocs 26 дней назад
It's interesting that in programming the bifunctor was described as CxC -> C and NOT CxC -> CxC. Because at first glance the result also looks like a cartesian product. And in haskell bimap is (a -> b) -> (c -> d) -> p a c -> p b d. p a c -> p b d seems to correspond to CxC -> CxC at first glance. But I guess it is not necessarily because the two functions might not produce all possible values, therefore we are not guarnteed to have a cartesian product of all possible types in the category. There could be pairs of functions (both completely surjective over C) that map CxC-> CxC, but a bifunctor is open to all kinds of functions that don't output the whole of C in their codomain. Therefore we have to describe the bifunctor in programming as CxC -> C. Is this correct?
27 дней назад
I regret not having this lecture eight years ago. Better late than never
@muttdev
@muttdev Месяц назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-Njx2ed8RGis.html
@huylongpham8748
@huylongpham8748 Месяц назад
Hello, I'm from Vietnam, I've finished watching playlist 1 of category theory, in playlist 2 there are some videos without subtitles, please add them. Thanks you so much !!!
@utof
@utof Месяц назад
i feel like i actually understand epics and monic now, wow. after all these years. finally!!!!!!! thank you! the most understandable category theory introduction EVER!
@stavanjain7894
@stavanjain7894 Месяц назад
This was beautiful! Thank you so much for posting these lectures
@tarikozkanli788
@tarikozkanli788 Месяц назад
what do you call a monoid in the category of endofunctors on the category of programming languages?
@Shri
@Shri Месяц назад
Came to learn and deep dive into Category Theory but feel like I am getting vibes of Vedanta infused Philosophical renderings that I typically hear in Pravachans at my local Madhva Temples on Multiverse and Brahman pervading Creation while containing Creation (Set of all Sets). Loving this introduction so far. Yeah I agree with your sentiment that the more you discover stuff the more Philosophical you get. No doubt about that.
@kurisumasu3329
@kurisumasu3329 2 месяца назад
OH my! The List part is absolutely mind blowing!
@k3rnel-p4n1c
@k3rnel-p4n1c 2 месяца назад
Circa 26:32, is it therefore also true that h•g•f can be asociated with (h•g)•f and h•(g•f) ?
@samueldeandrade8535
@samueldeandrade8535 2 месяца назад
30:16 This is fundamentally wrong.
@jensl5956
@jensl5956 2 месяца назад
I wosh this guy was my professor
@pablovaldes6022
@pablovaldes6022 3 месяца назад
The more I watch the lecture the more it reminds me the machete movie.
@alexeybalandin4676
@alexeybalandin4676 3 месяца назад
I'm trying to grasp 41:00 and running into problems. So for natural numbers and multiplication what would be the "morphism"? If I think correctly. I have element 5, I have morphism "multiply by 4", I get element 20. Obviously, "multiply by 4" will map set of natural numbers N into N, same for any morphism "multiply by k". Which leads me to question. In such formulation, the morphism itself in cathegory theory isn't actually tied to the element of N. so " multiply by 1" is identity morphism, but from the standpoint of cathegory theory we don't really know that this "1" is from that dot "m", because we don't really know what's inside the dot. Doesn't this mean that it's possible for cathegory to have identity morphism but for the derived set to not have identity element? If you take the previously talked about "<=" relation and construct monoid in N with it, it seems you won't get a "set theory monoid" from "cathegory theory monoid" with it.
@alexeybalandin4676
@alexeybalandin4676 3 месяца назад
I guess for me the "unintuitive" part is that in cathegory theory we don't postulate that "arrows" are the members of "m" dot here. I understand why they are members of hom-set, but we have to postulate (?) their relation to elements in m when we convert from cathegory theory to set theory, right? So we have to postulate that "multiply by k" morphism has one-to-one relation to elements of m. I wonder if it is possible to do this in more minimal way? Like axiomatically say "identity morphism corresponds to 1" , and then i'm not sure what extra things we need to postulate to get to "monoid in set theory". But if you read this, I'd really like to check - am I correct in my understanding that we need to postualte the mapping between elements of m and morphism or is there a way around it?
@alexeybalandin4676
@alexeybalandin4676 3 месяца назад
Oh, I think I used term "morphism" in a wrong way here. I meant "arrows". So "multiply by 4" is an arrow and the set of all of these arrows is morphism.
@tylerbakeman
@tylerbakeman 3 месяца назад
5:30, Mentions a DAG as a Poset, then draws a Directed-Cyclic Graph lol Great video btw
@MrRobot-pv6mo
@MrRobot-pv6mo Месяц назад
Where exactly have you seen the cyclic graph on the board?
@gumikjuggler
@gumikjuggler 3 месяца назад
I've watched all the Haskell videos. Although I knew Haskell before (up to parallelism) your way of presenting things is so clear and it was so cool to refresh my knowledge! Thank you for that!
@cadenzah93
@cadenzah93 4 месяца назад
1:01 talk about sets in terms of category so that we can generalize it to an arbitrary category 2:52 'any' means if exists, so if not exists, then it's automatically true 6:25 the value of empty category
@cadenzah93
@cadenzah93 4 месяца назад
12:47 Void <=> False 13:43 proposition as a type 21:49 replace elements by morphism to a set
@cadenzah93
@cadenzah93 4 месяца назад
2:44 pure function 8:48 definition of relation 10:11 definition of relation, cartesian product 11:32 comparison between relation and function 34:34 if I can't tell about the internals(elements), how can I talk about morphism's properties? (in terms of category theory)
@cadenzah93
@cadenzah93 4 месяца назад
4:30 definition of category 6:36 barber's paradox(Russell's paradox) 13:25 language constrains us 14:58 category is like a graph 15:54 "how is it possible that you can have more than one arrow? Aren't they all the same?" / "no, they are different ... you just give them different names" 18:18 definition of 'composable' 27:40 meaning of "two compositions are isomorphic" 33:19 bottom value for infinite loop 35:20 definition of types in programming 37:45 using category theory as a abstract and simplified(high-level) model for understanding programming language
@cadenzah93
@cadenzah93 4 месяца назад
21:21 practical motivation of learning category theory in terms of programming 37:23 abstract approach used in most of academic subjects 46:04 meaning of category theory
@JayColeman-nd1xb
@JayColeman-nd1xb 4 месяца назад
But, how to find the rule to construct the arrow
@dorle3046
@dorle3046 4 месяца назад
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!
@jeffreyhowarth7850
@jeffreyhowarth7850 4 месяца назад
I'm looking for help anywhere. My question is I see (T(X)) and (T(T(X))) are parentheses around Monads, is this the wrap that is mentioned in Monad literature?
@aristotales4906
@aristotales4906 4 месяца назад
Incredible
@0Tsutsumi0
@0Tsutsumi0 5 месяцев назад
Great lecture, the only improvement I'd suggest is a clearer distinction between "Monoid" and "Monoidal Category"
@ForestQuest-f9w
@ForestQuest-f9w 5 месяцев назад
This is epic, so much thanks!
@ForestQuest-f9w
@ForestQuest-f9w 5 месяцев назад
The rare and truly motivated tutor to see. If you have such a tutor, you also get full of fuel from a feel, nothing is really hard to get through.
@ForestQuest-f9w
@ForestQuest-f9w 5 месяцев назад
That's the most amazing tutoring I've watched for the motivation of category theory and maths
@majidaldo
@majidaldo 5 месяцев назад
The usual nomenclature is C to D is L, left. R for the other way. In the video it's the other way.
@mapleandsteel
@mapleandsteel 5 месяцев назад
I’ve been waiting patiently for Structuralism and Mathematics to collide and unify. What an exciting time!
@neilclay5835
@neilclay5835 5 месяцев назад
fascinating
@neilclay5835
@neilclay5835 5 месяцев назад
That was captivating. That feeling where you're realising that the universe is truly an incredible place.
@2kreskimatmy
@2kreskimatmy 5 месяцев назад
i almost get it
@nbrader
@nbrader 5 месяцев назад
Brilliant series. -Just a minor correction: At --21:10-- I think you intended to say that "f is mapped to u after f" rather than "u is mapped to u after f".-
@DrBartosz
@DrBartosz 5 месяцев назад
Maybe I wasn't clear enough, but if f::y->x then u::x->a is mapped to u'::y->a and u'=u.f (u after f).
@nbrader
@nbrader 5 месяцев назад
So if I'm following, you were giving the way the functor maps morphisms, mapping f::Y->X to C(f,a)::C(X,a)->C(Y,a). To do this you constructed C(Y,a) elementwise from C(X,a) (where u is from C(X,a)) using f. Thank you for replying and promptly too!
@nbrader
@nbrader 5 месяцев назад
I edited my reply because I put f::X->Y which is the wrong way around because this is a contravariant functor.
@skibaa1
@skibaa1 6 месяцев назад
28:30 I viewed this part again to understand how epsilon natural transformation is constructed from the composition of functors FoU and the monad tripple (T, eta, mu). But you use sigma to construct sigma. The object (a, sigma) is our goal, not our start. In essense, the co-unit is the inverse of the combined functor FoU. Using method from your explanation, you would be able to construct an inverse for any endofunctor, but obviously not all endofunctors have an inverse at all
@DrBartosz
@DrBartosz 6 месяцев назад
Our goal is, for any (a, sigma) (which is a monad algebra), to construct epsilon as an algembra morphism. It turns out that this algebra morphism is given by sigma. Draw the diagram that defines an algebra morphism.
@skibaa1
@skibaa1 6 месяцев назад
@@DrBartosz I understand that sigma satisfies all the conditions, but there could be a few morphisms like this, how do we know which one to take? For example if C is Hask and a is Int, T is list, we can have 2 separate objects in CT: (int, max) and (int, min) with sigma taking maximum or minimum from the list. Both sigmas satisfy all conditions, monadic and algebra
@skibaa1
@skibaa1 6 месяцев назад
actually the way we constructed EM category there should be only one object with the same carrier, but we only know about evaluation functions of the objects like Ta, other objects have unknown sigma. Maybe it reminds the situation with functions from the initial object in Set: these functions can never be called?
@DrBartosz
@DrBartosz 6 месяцев назад
@@skibaa1 I'm not sure what you're struggling with. We're implementing a function epsilon that takes a monad algebra as an input and produces another monad algebra. We don't care how many algebras there are.
@skibaa1
@skibaa1 6 месяцев назад
@@DrBartosz we have to construct the inverse function for LoR(a). If we look at Set, and take function int->int for example f(x)=x+1, when we construct an inverse function f’(x) = x-1, it will return to the original int, for any value of int. So if we start from specific value of int 42, f will map it to 43, and f’ will map back to 42. Now lets return to EM categ. I look at object a=(int, sigma) and morphism LoR(a) ending at object ([int], mu) and try to construct epsilon(a), I need to construct such epsilon that for any (legal) value of (int, sigma) will undo the mapping to ([int], mu). So if the initial value of a was (42, min) then our LoR will map it to ([42], mu). Also if we start from (42, [max]) it will end on the same value, our forgetful functor is not monic. So how can we construct such epsilon(a) that will take a value of ([42], mu) and guess we started with (42, min)? This all is even before we are talking that epsilon must be natural, I even dont understand how to construct a component of it for a concrete a
@skibaa1
@skibaa1 6 месяцев назад
19:03 when you have object (a, sigma) and f: a->b how exactly you construct gamma:Fb->b ? Lifting f to Fa->Fb does not help you at all, if you need to start at Fb and to construct b
@skibaa1
@skibaa1 6 месяцев назад
probably the morphisms in the category of algebras should be also pairs of functions, one for converting the carriers and another for converting the evaluator
@skibaa1
@skibaa1 6 месяцев назад
also in general case in an algebra category there may be different objects (b, gamma) and (b, delta) with the same carrier but different evaluators
@DrBartosz
@DrBartosz 6 месяцев назад
You start with two arbitrary algebras and ask the question: Are there any morphisms between them? An algebra morphism is defined as a morphism between the carriers that makes the diagram commute.
@wikiproofy1901
@wikiproofy1901 6 месяцев назад
I truly appreciate your explanation. I'd like to add that while in a locally small category, C(a, b) is referred to as a Hom-set, in a broader context, it's considered a Hom-class.
@mattetis
@mattetis 6 месяцев назад
Does the "best" apex of a cone correspond to an arbitrary record type (or N-tuple) in Haskell? Where all the morphisms from the index category is just functions, and the identity morphism of the apex are lifted functions that operate instead on the record type? Edit: and conversely the cocone would be an arbitrary sum type Edit2: so for example if we have only Int and String in the index category (which would be (Int, String) as delta c) and the single function show :: Int -> String The identity morphism of delta c in C would contain the function showDC :: (Int, String) -> (Int, String) which would show the int and "store" it in the second part of the tuple. I.e. showDC :: (Int, String) -> (Int, String) showDC = \(i, s) -> (i, show i) And of course show will also be mapped to showDCD :: (Int, String) -> String and showD :: Int -> String as well
@DrBartosz
@DrBartosz 6 месяцев назад
The limit of the diagram Int--show->String is isomorphic to Int. Notice that the walls of the cone must commute. Also, identity morphism is \x->x.
@usercommon1
@usercommon1 6 месяцев назад
tak
@bautistabaiocchi-lora1339
@bautistabaiocchi-lora1339 6 месяцев назад
amazing lectures so far
@evelynfschmitz
@evelynfschmitz 7 месяцев назад
It was DEFINITELY the BEST class I've ever seen on the subject! Thank you so much!!!!
@msitch
@msitch 7 месяцев назад
Decompose? Surely he means cocompose 😂
@isaachester8475
@isaachester8475 7 месяцев назад
This is amazing. I have very little experience in set theory aside from the very basics, and also no experience in computer science (I am a beginner in programming) but I was able to understand this lecture clearly. I take that to mean you are very thorough and very good at simplifying/explaining things! I appreciate that you don’t just assume knowledge and instead go over every detail with examples! Thank you for posting this on RU-vid for free. I’m someone who is curious about mathematics but has no time or money to enroll in a course right now, so things like this are truly a blessing.
@ognifer
@ognifer 7 месяцев назад
You've said the word "schizophrenia" somewhere... I would probably agree that something in mathematics, including category theory, is timeless. This would be a schizophrenic statement. Well, how can commutativity be timeless?! If it is a time sequence: x*y, and the inverse of it is y*x. x+y and the inverse of y+x. Like all of yours: limits, infinite periodic fractions. Even the set of irrational numbers is a time sequence - every single irrational "number".
@ognifer
@ognifer 7 месяцев назад
Mathematicians tend to say, "I forgot where they came from."🤣 Amnesia... however. And all because of the build-up of abstraction... 1+1=2. And when you subtract 1 from two: 2-1=1. That is, you have a subtractible and the difference with a probability of 0.5 coincides with each of the terms in the first expression. And all because - "I forgot where they came from." And you have to describe this forgetfulness with probability theory... which is a property of your forgetfulness...🤣