[HN Gopher] Category Theory Illustrated - Sets
       ___________________________________________________________________
        
       Category Theory Illustrated - Sets
        
       Author : boris_m
       Score  : 121 points
       Date   : 2023-09-12 08:13 UTC (1 days ago)
        
 (HTM) web link (abuseofnotation.github.io)
 (TXT) w3m dump (abuseofnotation.github.io)
        
       | MikeTheGreat wrote:
       | Disclaimer: I don't know category theory and I only skimmed the
       | linked page :)
       | 
       | This looks great - I love the illustrations, and as far as I know
       | the information looks great! I've got it in my Pocket list and am
       | looking forwards to reading it on the bus.
       | 
       | A while back there was a "Group Theory Coloring Book" that
       | someone posted here. I was kinda hoping that this link would be
       | another one of those. (Spoiler: it's an illustrated explanation
       | of category theory - which is great! - not a coloring book).
       | 
       | Sorry in advance for hijacking this post, but it's kinda, sorta
       | related to ask: Does anyone have a link to 'fun math/STEM-themed
       | coloring books'?
        
       | zactato wrote:
       | Does anyone else study Category Theory in the hope of finding
       | Revelation/Truth? I'm mostly kidding but for some reason CT
       | scratches a different kind of itch.
        
         | rolisz wrote:
         | I've watched some lectures about CT (and they flew over my head
         | pretty quickly) and I did get the feeling that on one hand
         | there is some deep insight there (that I was barely able to
         | glimpse), but on the other hand it felt like that eagle eye
         | view that CT gives is missing too many details.
        
           | passion__desire wrote:
           | Physics say it's all probabilities. CT says it's all
           | relationships.
           | 
           | CT is related amusingly to abstract nonsense. Basically CT's
           | ability to prove things at such a high level that provides no
           | insights into the going ons in low level details.
           | 
           | https://math.stackexchange.com/questions/823289/abstract-
           | non...
        
             | red_trumpet wrote:
             | The term "abstract nonsense" was actually coined in context
             | of category theory:
             | https://en.wikipedia.org/wiki/Abstract_nonsense#History
        
       | hackandthink wrote:
       | >In particular, a set can contain itself.
       | 
       | There are many kinds of mathematics, this is an unusual one.
       | 
       | "In Zermelo-Fraenkel set theory, the axiom of regularity and
       | axiom of pairing prevent any set from containing itself."
       | 
       | https://en.wikipedia.org/wiki/Universal_set
        
         | axblount wrote:
         | This gives rise to Russell's Paradox:
         | 
         | Does the set of "all sets that do not contain themselves"
         | contain itself?
        
           | righttoolforjob wrote:
           | simple: there is no such set.
        
           | tikhonj wrote:
           | You can have set theories that allows sets to contain
           | themselves without allowing Russell's Paradox. You can read
           | about non-well-founded set theory[1] if you're curious.
           | 
           | [1]: https://en.wikipedia.org/wiki/Non-well-
           | founded_set_theory
        
             | hackandthink wrote:
             | I like the diagram of "the set containing itself". It
             | illustrates non-well-foundedness niceley.
        
           | seanhunter wrote:
           | Resolving this paradox is discussed in TFA as being the
           | founding rationale for the Zermelo-Fraenkel set theory in
           | fact.
        
         | bmacho wrote:
         | It is mentioned 2 sentences earlier that it was the case in
         | naive set theory.
        
       | tarkin2 wrote:
       | I still don't know how category theory will help me as a
       | programmer.
       | 
       | I understand, and agree, that small functions, composed, are
       | easier to understand and maintain, easier to port and easier to
       | build upon than large monolithic functions.
       | 
       | But, aside from that, I'm not sure of the tangible day-to-day
       | benefits of reciting parts of category theory.
       | 
       | I admit I don't know category theory in much detail but I just
       | can't see the tangible benefit. Any hints would be appreciated.
        
         | ilyanoskov wrote:
         | I think Category Theory is useful in a way that it brings
         | abstractions for many areas of mathematics that used to be
         | considered unrelated to each other or quite distant. It studies
         | interactions between entities, rather than the details about
         | entities themselves.
         | 
         | I think it's quite useful in functional programming languages
         | and gives a lot of insight on how to organise things that in
         | the beginning seem totally unrelated.
        
         | Jensson wrote:
         | Its useful when you have uber structured data. Think when
         | programming a programming language for example, the input is
         | extremely structured but you need to handle so many things in
         | so many structured ways.
         | 
         | for wishy washy data like you have in almost every other case
         | it isn't useful, unless you want to solve those problems by
         | making a programming language. But in most cases you already
         | have languages there, like SQL for relational data etc, so you
         | don't have to solve those problems.
        
         | cubefox wrote:
         | Haskell uses some concepts from category theory, but even there
         | (as people pointed out in a Haskell thread a while ago) it is
         | not actually necessary to understand the category theory behind
         | them. E.g. to be able to use monads. If category theory isn't
         | even helpful for Haskell programming, we can be pretty sure
         | that it doesn't help at all with more common languages.
        
         | kweingar wrote:
         | I studied category theory for a while, and frankly it plays
         | zero role in my day-to-day programming. It would maybe be a
         | different story if I were writing libraries in Haskell or
         | something, but as it is, it's really not that relevant to me.
         | 
         | Programmers use monads all the time without knowing it, but
         | there is little need to understand the deep math-y concepts or
         | proofs that underlie them.
        
           | tarkin2 wrote:
           | I worry this is often the case. I like the idea of learning
           | maths for maths sake. And I would love the time to do that.
           | 
           | But knowing I have a limited amount of time, I often suspect
           | a lot of people extolling the benefits of understanding the
           | mathematical underpinning of concepts are more showing off
           | and in love with their own understanding than offering real
           | benefits to programmers.
        
             | cubefox wrote:
             | Before I learned programming, I thought it had a lot to do
             | with mathematics. I mean both look pretty formal. I was
             | surprised to learn that mathematics played hardly a role in
             | ordinary software development. If you happen to write a
             | physics simulation, sure, you need math, but that is
             | because of physics, not because of programming being
             | inherently mathematical.
             | 
             | When I later learned more mathematics, I was also surprised
             | to learn how informal everything is programming:
             | Mathematicians use fancy symbols, but also ambiguous,
             | idiosyncratic or inconsistent notation, and they always
             | write proofs where a lot is left unspecified because the
             | intermediate steps are assumed to be obvious. In software
             | development it's the opposite, the compiler has to
             | understand everything.
        
             | edgyquant wrote:
             | I think that depends what the math is they're saying to
             | learn, does it not?
        
         | paulddraper wrote:
         | It's design patterns for functional programming.
         | 
         | You can quickly recognize common patterns, e.g. monads,
         | functors, bijections.
        
       | smokel wrote:
       | As much as I like philosophy of mathematics, I never feel quite
       | at ease with sets being some universal foundation.
       | 
       | Lists, sets, graphs, all seem quite fundamental to us humans, but
       | where in nature does one observe these weird things? A cave or a
       | jug are highly complex things. Perhaps molecules resemble a
       | graph, but if I understand physics correctly, atoms move like
       | crazy and it's almost accidental that the graph structure is
       | somewhat stable in most molecules.
       | 
       | This led me to believe that these fundamental containers are
       | probably a byproduct of how our brains work, more than that they
       | are fundamental outside of those.
       | 
       | Thanks to ChatGPT, I now know that this makes me a mathematical
       | fictionalist, or mathematical anti-realist.
       | 
       | Anyone care to talk me out of this? :)
        
         | paulddraper wrote:
         | > where in nature does one observe these weird things?
         | 
         | That's like asking "where in nature does one observe numbers"?
         | 
         | Literally everywhere.
         | 
         | Your jug partitions water into the set inside the jug and the
         | set outside it.
         | 
         | Caves are a subset of rock formations.
        
           | smokel wrote:
           | All that partitioning and counting can only be performed by a
           | system that is able to abstract and differentiate between
           | different abstractions. Brains and computers appear to be
           | good at this, but other than that, I don't see many other
           | structures that are capable of doing this.
           | 
           | So, no, I don't observe numbers in the universe, if I take on
           | the perspective of, say, a rock.
        
         | zehaeva wrote:
         | The ideas of sets being the universal foundation of math is
         | arbitrary as any other bit of math. Which is to say all of it
         | is arbitrary.
         | 
         | Just as you ask, "where in nature does one observe these weird
         | things?" I would to ask where in nature does one find a one? or
         | a pi? or any other number really. Where do you find a triangle?
         | Or a coordinate? Or any of the mathematical constructs we use
         | day to day.
         | 
         | Sure you can point at something triangle shaped and go "there!"
         | but is it _really_ a triangle? Or just an approximation? Sure
         | you can count one of something, but that's not the same as the
         | number one. Just like you can't have pi of something.
         | 
         | All of math is just a model that is surprisingly applicable to
         | the real world.
         | 
         | All of math is a byproduct of our brains. It doesn't exist, out
         | there, in some Platonic World. Anyone who thinks so, I'm
         | looking at you Max Tegmark, is mistaking the map for the
         | territory.
        
           | NotSuspicious wrote:
           | > All of math is a byproduct of our brains. It doesn't exist,
           | out there, in some Platonic World. Anyone who thinks so, I'm
           | looking at you Max Tegmark, is mistaking the map for the
           | territory.
           | 
           | I could brashly say the exact opposite and would have proven
           | just as much as you. Fictionalists often attempt to shunt the
           | Platonic realm into an ill-conceived emanation of the mental
           | realm (which just so happens to itself be an accident of
           | matter). Somehow all of this works by virtue of following a
           | kind of mathematical logic that just so happens to not exist
           | or something. I suspect the fundamental problem here is some
           | kind of neurosis that psychologically compels people to
           | reduce the quality of their thought until hard problems
           | disappear. I hope we one day are able to build a catalog of
           | all the ways thought goes wrong so as to prevent such
           | nonsense from proliferating in at least some section of the
           | world.
           | 
           | I think a reasonably compelling way to teach yourself how to
           | actually see The Problem (tm) is to view it from the
           | perspective of Roger Penrose's three worlds (
           | https://hrstraub.ch/en/the-theory-of-the-three-worlds-
           | penros... ) and actually _think_ through the implications in
           | a contemplative, meditative way over the course of several
           | hours. Any analysis of this issue that doesn 't involve a
           | sustained look at both logic and phenomenology is a waste of
           | time.
        
         | 2snakes wrote:
         | My answer would be: when we distinguish something from
         | something else. This is the root of all logic and cognition.
        
           | colobas wrote:
           | I like this answer. Been reading "Godel's Proof" and for a
           | demonstration where the definition of "tautology" in the main
           | text makes use of the concepts of True and False, there is an
           | appendix explaining that you can arrive at the same result
           | without those concepts, just by treating things as belonging
           | to one class vs another (there is a one to one correspondence
           | with True and False but the meaning is arbitrary)
        
         | tutfbhuf wrote:
         | > I never feel quite at ease with sets being some universal
         | foundation
         | 
         | That's not a big issue nowadays since there is univalent
         | foundations, which is based on [?]-groupoids instead of sets.
        
         | auggierose wrote:
         | Sets being the foundation is a historical accident. It is
         | convenient and well-studied, and if you can encode your objects
         | and axioms in set theory, you have a sure footing (at least as
         | sure as it gets) with respect to consistency.
         | 
         | Otherwise, of course, lists, graphs, etc. are all objects on
         | their own and exist independently of any encoding as sets.
        
         | wnc3141 wrote:
         | I think sets are fundamental to counting. An example: how many
         | trees are in the forest? It depends on where you draw the
         | boundary for tree. An Aspen Grove, for example have many stems
         | of one large interconnected tree.
        
           | smokel wrote:
           | Try to count trees from the perspective of the sun, or from
           | the perspective of an electron.
           | 
           | Trees are made up of billions of atoms, in extremely
           | differing configurations, which can only be appreciated by
           | machinery that is able to abstract it into the concept of a
           | tree. To the rest of the universe it's just a bunch of atoms,
           | with no clearly defined boundary.
           | 
           | So, counting is not necessarily a fundamental thing either.
           | At least, according to how _I_ like to interpret things :)
        
       | deepsun wrote:
       | > A function is a relationship between two sets
       | 
       | Ok then what is relationship? There's a whole theory of
       | relations, and I'd rather not dive into that for the article.
       | Also, drawing arrows can give misleading intuition.
       | 
       | It's better to define a function as a set of pairs, then you
       | don't need to use anything else not introduced yet.
        
         | smohare wrote:
         | [dead]
        
       | convolvatron wrote:
       | "And they might be right. But mathematical functions have one big
       | advantage over non-mathematical ones -- their type signature
       | tells you everything that the function does. This is probably the
       | reason why most functional languages are strongly-typed."
       | 
       | I'm confused about this statement. types give you important
       | contextual information about the function in a summarized form,
       | but surely we can have two functions with the same type signature
       | that perform different mappings.
        
         | mrkeen wrote:
         | > surely we can have two functions with the same type signature
         | that perform different mappings.
         | 
         | Yes - and you can count the mappings! Enums are sometimes
         | referred to as 'sum types' because you can just add up the
         | number of different states they can be in. Structs are
         | sometimes call 'product types' because you can calculate the
         | number of states they can be in by multiplying the number of
         | states of their members. And functions are 'exponential types'.
        
         | edgyquant wrote:
         | This might be true in a programming language but it's not for
         | mathematical functions which is what they refer to in the first
         | half of this paragraph.
         | 
         | I think what they mean is that two functions won't have the
         | exact same signature and result typings, though in practice
         | this isn't normally true for computer systems. Although there's
         | an argument that if it has those exact same things maybe you
         | don't need two functions but to improve your one function to be
         | more robust.
        
       | erehweb wrote:
       | Set theory has the big unexpected results of the reals being
       | bigger than the natural numbers, the independence of the Axiom of
       | Choice, and the undecidability of the Continuum Hypothesis. What
       | are some similarly big results in category theory, for a novice?
        
         | rozgo wrote:
         | Yoneda Lemma, an object is entirely determined by its
         | relationships to other objects.
        
         | contravariant wrote:
         | I'd say the Yoneda lemma should be in there. It's hard to
         | explain without going through all the definitions but very
         | broadly speaking it gives a precise way to characterize a
         | object by its relations to other objects.
         | 
         | Though mostly I consider category theory useful not for its
         | results but because its concepts generalize well. If you can
         | relate something to a category then most of the concepts a
         | category has (functors, limits etc.) will have some useful
         | meaning. This makes it easy to come up with good concepts and
         | gives some of their properties for free, which honestly is more
         | practically useful than some clever theorem.
        
         | hackandthink wrote:
         | Lawvere's fixed point theorem as a generalisation of Cantor's
         | theorem is a big result.
         | 
         | https://ncatlab.org/nlab/show/Lawvere's+fixed+point+theorem
         | 
         | Emily Riehl:
         | 
         | "The author is told with distressing regularity that 'there are
         | no theorems in category theory' ...
         | 
         | Sadly, the majority of the theorems that are personal favorites
         | of the author were excluded because their significance is more
         | difficult to explain."
         | 
         | (long list of theorems)
         | 
         | https://math.jhu.edu/~eriehl/161/context.pdf
        
       | omginternets wrote:
       | One thing I would like to understand is what limitations of set
       | theory made it necessary to invent/discover category theory. Can
       | someone enlighten me? What do categories let us do that we can't
       | do with sets?
        
         | hackandthink wrote:
         | Jean-Pierre Marquis' article may be helpful:
         | 
         | https://plato.stanford.edu/entries/category-theory/
         | 
         | >what limitations of set theory made it necessary to
         | invent/discover category theory?
         | 
         | Category theory did not start as alternative to set theory.
         | 
         | But: "Category theory even leads to a different theoretical
         | conception of set and, as such, to a possible alternative to
         | the standard set theoretical foundation for mathematics."
         | 
         | >What do categories let us do that we can't do with sets?
         | 
         | "At minimum, it is a powerful language, or conceptual
         | framework, allowing us to see the universal components of a
         | family of structures of a given kind, and how structures of
         | different kinds are interrelated"
         | 
         | Some category theory constructions like adjoints and monads are
         | higher level and more powerful than basic set theory
         | constructions like power set.
         | 
         | "The number of mathematical constructions that can be described
         | as adjoints is simply stunning."
        
         | zzo38computer wrote:
         | I know how it relates to monoids, rather than to sets. For
         | example, you cannot just multiply together any two matrices
         | (like you can with monoids); they need to have the correct
         | dimensions. So, in category theory, this corresponds to the
         | composition of morphisms, so in this case, the objects are the
         | number of rows/columns and the morphisms are the matrices.
        
       | tanvach wrote:
       | This short youtube video really helped with me to understand the
       | big pictures of category theory with concrete examples.
       | 
       | The Mathematician's Weapon | An Introduction to Category Theory,
       | Abstraction and Algebra
       | https://www.youtube.com/watch?v=FQYOpD7tv30
        
       | xjm wrote:
       | Nice!
       | 
       | Note that this page has no category theory yet since it explains
       | sets, so if you already know sets, set product, etc and want to
       | learn about category theory, my advice is to go directly to the
       | next chapter, more specifically to this section:
       | 
       | https://abuseofnotation.github.io/category-theory-illustrate...
       | 
       | which uses set theory terms to define the category theory way of
       | defining products (the corresponding "universal property").
        
       | l__l wrote:
       | I'm surprised to see no mention of topos theory in this page? The
       | sense in which category theory is a generalisation of set theory
       | is pretty weak imo until you bring in concepts like subobject
       | classifiers. This isn't the only thing topoi generalise, but is a
       | pretty significant one
        
       | dhosek wrote:
       | One of the most powerful things I learned in topology was that
       | functions can be viewed as sets of ordered pairs with the
       | restriction that the first item in each ordered pair can only
       | appear once.
        
         | layer8 wrote:
         | Relations between sets are generalizations of functions, which
         | is another way to realize that. I think this was taught in my
         | first CS semester.
         | 
         | Also, in the context of automata theory, functions =
         | deterministic and relations = nondeterministic.
        
       ___________________________________________________________________
       (page generated 2023-09-13 23:00 UTC)