I want to learn Category theory

What is the bare minimum background I need to jump in? What are the Category theory for idiots beginner guides? I want a good intro text for noobs and learn all the required math background under it before I start.

Other urls found in this thread:

youtube.com/watch?v=ZKmodCApZwk
math.ucr.edu/home/baez/rosetta.pdf
cs.uoregon.edu/research/summerschool/summer12/curriculum.html
arxiv.org/abs/0804.3434
youtube.com/watch?v=BddYhVyOMk8
bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/
en.wikipedia.org/wiki/Set-theoretic_definition_of_natural_numbers#Contemporary_standard
en.wikipedia.org/wiki/Ordered_pair#Kuratowski_definition
arxiv.org/pdf/1212.6543.pdf
arxiv.org/abs/1512.06314
math.stackexchange.com/questions/262104/why-surjectivity-stable-under-base-change
category-theory.mitpress.mit.edu/index.html
twitter.com/SFWRedditGifs

Someone post the pasta

Watch the Oregon programming language summer school lectures from 2012. Awodey himself teaching you category theory.

youtube.com/watch?v=ZKmodCApZwk

Found it thanks. Is this actually a good lecture series? I'm watching it.

There really are no formal prerequisites. You could probably get by not having done math since high school. That said, you're going to hate yourself unless you're coming in familiar with a wide range of algebraic structures, e.g. rings, groups, modules, and lots of various constructions with these. A lot of category theory came about from working on algebraic topology, and the fundamental group is a great example of a functor to have in mind. The more math you're comfortable with, the better.

Is this guy legit or a crackpot? Based on the comments in the youtube video I can't tell and he already made the statement mathematical logic isn't apart of mathematics. I'm hesitant to learn from a crackpot, but if he isn't one I'm open.

Nvm. Watching more of the video. He seems good.

Awodey? Crackpot?
Awodey is known for authoring one of the best books on category theory.
I could be wrong but I also think he played a large role in the development of category theory as well.

I don't think he played that big of a role in the development of category theory but he was a PhD student of Mac Lane, who along with Eilenberg invented the subject.

Ignore any and all set theoretic issues. Make sure you already have some examples under your belt, like rings, topological spaces, modules.

Category theory doesn't really have prerequisites.

But you should at least know some abstract/linear algebra and some topology before you start.

Category theory is a method of realizing a bunch of different things in mathematics all behave in essentially the same way. If you don't know the fields, all that is lost on you.

It's like learning a bunch of grammar before you know any words.

I've started reading this paper, and it seems a nice general introduction to cat theory

math.ucr.edu/home/baez/rosetta.pdf

Can confirm, read this in second year of my undergrad, loved it. Five years later I still benefit from this Reshetikhin-Turaev formalism.

are you a compsci phd or mathematician?

Mathematician. Arithmetic geometry. I'm not sure how useful the stuff really is for compscis.

Well the second half of the "rosetta" paper, Logic & Computation, are basically compsci.

I know. But I don't know if it's actually used by or useful to actual compsci students.

Category theory can be seen as a first order theory axiomizing concatenation [math]c[/math], just as set theory can be seen as first order theory axiomizing membership [math]\in[/math]. The first predicate takes three terms:
Concatenation c(f,g,h), or [math] f \circ g = h [/math] , is the claim that the term g followed by the term f is the term h, while membership [math]\in(f,g)[/math], or [math]f \in g[/math] in infix notation, is the claim that the term f is a member of the term g.

The terms in category theory are called "arrow" and the theory has two more fixed symbols besides c:
Each term f (each arrow) is associated with an "source" s(f) and a target t(f).
Moreover, per definition of the theory, there are special arrows that algebraically act as identities.
For each source of an arrow, there is an identity arrow on that source.

To keep the theory first order (not introduce different types, arrows and objects), one can idenfity objects with their identity arrows. Thus the source of some arrow f is an identity arrow on that souce. The axioms of the thoery are as follows:

For all f,g,h holds:

>c(f,g,h) implies s(f) = t(g)
>c(f,g,h) implies t(f) = t(h)
>c(f,g,h) implies s(g) = s(h)
Sources/targets match for concatenated arrows as you'd expect.
>s(f) = t(g) implies ∃!h such that c(f,g,h)
You can concatenate all arrows that match.
>c(f,s(f),f)
>c(t(f),f,f)
Identity
>ss(f)=s(f)=ts(f)
>tt(f)=t(f)=st(f)
Aource and target of identity arrows are itself.
>c(f,g,j) ∧ c(g,h,k) implies c(j,h,m) ↔ c(f,k,m)
Associativity (an arrow m, obtained by two concatenation, is the same whether you do the braketing).

The primary models of the theory are functions and directed graphs.

All that being said, if you don't have applications for it in algebra, I doubt you'll take your learning far.

Use this site instead.

cs.uoregon.edu/research/summerschool/summer12/curriculum.html

>rings, groups, modules, and lots of various constructions
lol, not really. You only need some basic examples. Just because category theory originated in algebraic topology doesn't mean that you should care about algebraic topology while learning it. There are many applications to category theory that have nothing to do with algebraic topology.

Awodey is a top mathematician/computer scientist. He is most definitely not a crackpot. The reason that he mentions logic as being separate from mathematics is because these talks are part of a summer school held in Oregon on programming language theory. Some of the other major lectures focus on the type theory side of things, the proof theory/logic side of things, and the theorem prover side of things. These category theory talks aren't aimed at math majors, they're aimed at computer science majors. Hence why it focuses on pure category theory and categorical logic.

It's worth mentioning that category theory also has a lot of other applications to comp sci that aren't really talked about in these talks.

Perhaps what that user was thinking about was that Awodey was one of the two originators of Homotopy Type Theory.

The set theoretic issues are touched upon in his lecture and even moreso in his books. They're actually quite important since they are the motivation for several theorems in category theory. I would argue that knowing set theory is more important than knowing algebra when learning category theory.

It is. Programming language theory in comp sci studies the relationship between category theory, type theory, and logic. The idea is that if you design a programming language in line with a type theory then that type theory will give you a logic (and thereby semantics for the language) and you can study structures in it using category theory.

On the set theoretic issues, you're absolutely right. But it entirely depends on what you intend to use cats for. I only encountered set theoretic issues when I started learning about sites and Grothendieck toposes, and even then it could essentially be ignored.
To get a working knowledge of cat theory (not a cat theorist's knowledge), i.e., basics about functors, adjoints, limits, monads, monoidal cats, and so on, you do not need to bother fretting about set theoretic details.
Moreover, most people (excluding, I imagine, extremely competent people such as yourself) find it easier to learn a subject if they have some motivating examples. For this, basic knowledge of algebra is absolutely indisposable.

>lol, not really
Things like various limits/colimits and adjoints are going to make no sense without that exposure.

Indispensable, my bad.

You're clearly too smart to give out advice to category-theoretical novices. Please keep in mind that things come easier to you than most others.

>cs.uoregon.edu/research/summerschool/summer12/curriculum.html

Thank you! Also, thanks for reassuring me he isn't a crackpot. I'm serious about wanting to learn math and am thankful for such guidance. You might see me posting some questions on this board later.

>There are many applications to category theory that have nothing to do with algebraic topology.
There are many applications of calculus that have nothing to do with physics, but physics helped me understand calculus better.

>limits/colimits
These honestly don't require any background when you learn them from the categorical side of things. Though I can understand why you would think that as many algebra books tend to work their way up to limits/colimits from examples. This is a much longer process and it gives students a more narrow understanding of the topic.
>adjoints
This I agree with to some extent. I do think adjoints are worth approaching from examples but I don't think you need algebra for those examples. You can find simpler examples from logic/model theory or even basic stuff like the floor and ceiling functions. Comp sci students would benefit more from having some background in a language like Haskell than they would from having algebra.

I would say the same thing with regard to monads.


That's not what I'm saying. I'm saying that building up a lot of algebra theory in order to understand category theory is not only a huge time investment but it's a harder way to go about things. It would be faster to learn some babby general topology since the proofs are easier and the concepts more concrete.

By the way, he also has some free lecture notes available online. If they're not linked on that site then you can find them on his webpage. I believe he mentions them in his lectures as well.

That's fair. I definitely think that if you have algebra and you have the intuition for algebra then it would be good to read up on the relationship between algebra and category theory.

That said, I don't think it would be fair to say that any student learning calculus would struggle and not gain benefit without a physics background.

Great I'll check the rest of his lectures out as well. What are some applications to category theory in CS? I'm starting to learn Haskell on the side and am already familiar with Lambda Calculus at this point (studied it well before moving onto Haskell),

>These honestly don't require any background when you learn them from the categorical side of things.
I think it's easy to forget that universal arrows are not inherently intuitive. I think it's good to see, for example, quotient groups constructed the annoying coset way and then learn that you can prove any theorem about them using their universal property instead. Tensor products are good too, since their construction is useless in practice.

As I said,
>There really are no formal prerequisites. You could probably get by not having done math since high school.
but in my opinion you really need to build up lots of examples in category theory coming from different areas in math.

So from an outsider's view it looks like categories are a collection of mathematica objects (sets, groups, etc.) that have morphisms (or arrows) between them that satisfy composition and identity properties. Is that correct?

It looks like again could be wrong here, you can abstract that even further and make your "category" whose objects are categories and then the morphisms/arrows between them are "functors" and the functors obey identity and composition.

Is this correct? I'm trying to get the BIG picture.

Well, if you studied lambda calculus then you probably saw the Curry-Howard Correspondence. If not then refer to pages 56 to 61 of
arxiv.org/abs/0804.3434

You can then recast this in category theory by noting that some proof structures are similar to diagrams. For instance, if you know that the sentence
>P & Q
is true then that gives you a proof of P and a proof of Q. Furthermore, any sentence that proves P & Q also yields a proof of P and a proof of Q. If you draw this out as a diagram you'll notice that & is a categorical product. Taking this further you can note that a category that behaves like intuitionistic logic (i.e. your lambda calculus) is a cartesian closed category (a category with certain properties, such as finite products).

By looking at other type theories than lambda calculus you get other logics and other categories. This is talked about a bit more in Baez Rosetta paper someone linked above as well as in other OPLSS lectures (I think the 2015 category theory lectures are more focused on proof theory/type theory but they aren't taught by Awodey). This line if research is used to produce and reason about programming languages. There are many related fields of research here I'm totally glossing over.

This is worth looking at.
youtube.com/watch?v=BddYhVyOMk8

In Haskell you can define many data structures using monads or comonads. Though Haskell doesn't really give you a good category do to some corner cases, you can for the most part pretend it does and use the intuition to reason about it (just think of your types as objects and your arrows as functions between them).

Other applications include taking the curry howard correspondence further to formalize mathematics in theorem provers. In this context Homotopy Type Theory is a fancy type theory that lets us formalize Homotopy Theory among other fields of math, hence why it's community contains such a large portion of comp sci researchers.

>Is that correct?
Basically, and this is how I typically think about categories. However, it's not even necessary to view your objects as "objects" or arrows as morphisms in any traditional sense. For instance, we can view a single group as a category itself with a single object, whose arrows are the group elements and composition is multiplication in the group. We can make a category whose objects are integers and with an arrow pointing from each number to every larger number. A category is really just a collection of objects and arrows with no meaning to either.

Yes on the functors. Are you the Haskell guy? At least in that context, you can think of functors as a way to "transform types" while also transforming functions with it. This extends pretty well mathematically. You can "transform" groups into sets by forgetting about the group operation, and this is a functor. I prefer to think about functors like this, even if it doesn't always work so nicely.

You're right on the money, except that they don't even have to be strictly mathematical objects.

Lawvere for instance used them to reason about stuff like the relationship between a logical theory (a logic + some axioms) and it's models (semantics for the logic that satisfy the axioms). Though you could argue that these are still mathematical objects, they are certainly very different from rings or topologies.

this one?

Excellent reply, thank you both for your well-written replies.

The Curry-Howard Correspondence Category connection is a really interesting example. I'm also very interested in computability theory and am open to hearing any connections you may know of with computability & categories.

Yup, I'm OP/Haskell guy. I'm quite new to all of this so I'm tickled to have found Steve's lectures. I am continuing onward with them, they are proving to be a good starting point!

Read Maclane. The answer is always to read Maclane.

>What is the bare minimum background I need to jump in? What are the Category theory for idiots beginner guides? I want a good intro text for noobs and learn all the required math background under it before I start.

This is wonderful, thanks for the laughs.

if you know Haskell, there is a practical guy who is explaining category theory for programming in Haskell in some detail

bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/

Category theory is only a meme. No serious mathematician uses it.

Vladimir Voevodsky, Jacob Lurie, Maxim Kontsevich ... they shouldn't stuff these non-mathematicans with prizes and money

I never heard any of these names. Perhaps you should stop jerking off over irrelevant people, and study real math instead.

Category theory is just a tool. Basically, if you want to do K-theory then you need it, but if you don't even know what that is then why would you bother? On the whole, it is ridiculously overrated by laypeople, because it somehow acquired a reputation for being the most abstract of all branches. In reality its pretty dull and uninspiring. Learn algebraic geometry or arithmetic geometry instead.

Haha, well-memed brother.

>Basically, if you want to do K-theory then you need it, but if you don't even know what that is then why would you bother?
>Learn algebraic geometry or arithmetic geometry instead.
You could have had something good here, but you took it a bit too far.

>I never heard any of these names. Perhaps you should stop jerking off over irrelevant people, and study real math instead.
They won fields medals / breakthrough prize, there's hardly a way for mathematicans to be more known today. So it's you.

Structural foundations are very appealing, that's one reason for it to be of interest.

Satisfying notions of mathematical equality are not well understood and the naive one from first order logic, together with the necessity to use models in set theoretical foundations give silly propositions and even obscure theorems.

E.g. what are the natural numbers in set theory? The standard definition (von Neumann) is
0 := {}
1 := {0}
2 := {0,1}
...
n := {0,1,2,...,n-1}
What is an ordered pair in set theory? The standard definition (Kuratovski) is
(a,b) := {{a}, {a,b}}

en.wikipedia.org/wiki/Set-theoretic_definition_of_natural_numbers#Contemporary_standard
en.wikipedia.org/wiki/Ordered_pair#Kuratowski_definition

Thus e.g.
[math] 1 \in (0,7) [/math]
is a theorem.
wow, extremely mathematical!

Similarly, you may ask if
[math] Z_2 \in \pi [/math]
is true,
where [math] Z_2 [/math] is the group of order two and [math] \pi = 3.14.. [/math].
Well nobody can tell you if it's true or not because the truth of the above proposition depends entirely on the representation of the group and the definition of real numbers (inb4 Burger).

With definitions in terms of universal properties (pic related) this doesn't happen.

>universal arrows are not inherently intuitive.
I'm don't even sure if that's true, there are at least many metaphors that make their role clear.

Besides, when it comes to adjoints, I think the floor/ceiling thing is entirely confusing and the one adjoint par excellence that has to be mentioned is
[math] (X \times Y) \to Z [/math]
being in bijection to
[math] X \to Z^Y [/math],
which I'd also sell as generalization of [math] 3^{5·7} = (3^5)^7 [/math]

>On the whole, it is ridiculously overrated by laypeople, because it somehow acquired a reputation for being the most abstract of all branches.
the proofs and theorems are far clearer than in boorbakian mathematics.

ihbupm

arxiv.org/pdf/1212.6543.pdf

Uh... doesn't this completely ignore the construction of the real numbers? Any mathematician should understand what it means to say pi is a set.

bup

What are closed cartesian categories? The definitions I've read made little sense. Also, what does fixed point mean?

kekkkkk

bup

do you know what the typed lambda calculus is?

I know what lambda calculus is (alpha eq, beta reduction, beta normal form, currying, church-rosser theorem, etc). but I'm not familiar with what typed lambda calculus is. I just started learning it.

What is it ?

Typed lambda calculus is like regular (untyped) lambda calculus, except we restrict when we can apply two terms together by giving terms types. This is supposed to better match what we intuitively think of function application, i.e. for f(x) to make sense, we expect f to be a function between two sets A and B and for x to be an element of A. Thus, in typed lambda calculus, if we have two terms M and N, we can only combine them to create (MN) if M is of type A->B and N is of type A for some types A,B.

By making this restriction, we lose the ability to form a lot of terms, like \x.xx or the Y combinator. On one hand, this gives us some nice properties such as existence of normal forms for all terms, but the trade-off is that we lose Turing completeness if we view it as a formalism for computation.

A cartesian closed category is basically a category with enough structure to allow us to interpret the simply-typed lambda calculus, so before trying to grasp what a CCC is from abstract definitions alone, I would suggest first learning about the simply-typed lambda calculus.

Thank goodness a few people responded nicely so now I can be mean without feeling guilt!

Seriously, man.. Are you in fucking high school? Do you want to brag to all of your friends about how you know "Category Theory?" What reason do you have for immediately wanting to learn this as opposed to any other entry level abstract math? It makes no sense at all.

Thanks, I really appreciate this answer.

I more or less agree.

I think it is useful in showing how certain patterns of proof and construction pop up in different fields. However, I think most category-theory enthusiasts forget that almost all intuition has flowed from "real-world math" examples into category theory, and not vice-versa. Thus, they have a tendency to overgeneralize (i.e. most mathematicians care about "surjective maps", not "epimorphisms") in a way that is possible but isn't considerably fruitful.

Also, ct enthusiasts can also be really condescending: "ahh, yes, that is merely a right adjoint on the endofunctor of the coequalizer of the blah blah blah..... basic folklore that Lawvere was already aware of back in the sixties"

Sometimes all we have is category theoretic intuition, like when the morphisms aren't just set maps. What should a surjection of schemes be?

>It's like learning a bunch of grammar before you know any words.
this guy gets it

Once you go CAT, you do not go back

once you go CAT, you do not go SET

Jesus, every other post was replied to by this idiot.

You saved this image, interesting. I made it 3 years ago and think it's kinda confusing and wasn't sure if it would help anyone.

My current project in this direction: I'm now writing some sort of introduction to (models of) category theory (topoi, actually) using the Idris type system.

bioop

This guy is a logician and uses CT with that mindset in tow. He goes over some good basic stuff but there's a lot of things he doesn't go over. Just read MacLane cover to cover.

I'm pretty sure he also wrote some of the questions, too. Juste to demonstrate his sperglord knowledge about muh CCCs

lawvere_&_stephen_hoel_schanuel_-_conceptual_mathematics_a_first_introduction_to_categories_[cambridge_university_press_1997_9780521472494]


other famous books:

colin_mclarty_-_elementary_categories_elementary_toposes_[oxford_university_press_1995_9780198514732]


harold_simmons_-_an_introduction_to_category_theory_[cambridge_university_press_2011_9781107010871]


jean-pierre_marquis_-_from_a_geometrical_point_of_view_a_study_of_the_history_and_philosophy_of_category_theory_[springer_2009_9781402093838]
this one is very geometric:
marie_la_palme_reyes_&_gonzalo_reyes_&_houman_zolfaghari_-_generic_figures_and_their_glueings_a_constructive_approach_to_functor_categories_[polimetrica_s.a.s_2004_9788876990045]

>that "diagram"
at last I truly see

mhm ... is there any reason why a subobject classifier should be unique? From the definition, it looks like one category could have several.
(That of there may be an argument why hom-sets of the characteristic functions, if in bijection, imply there is an iso between the subobject classifiers)

probably not much related:
Does anybody want to read this with me?

arxiv.org/abs/1512.06314

at least in a topos (when there are all finite limits and power objects) the subobject classifier is unique up to isomorphism. It's obviously not *actually* unique, since you can easily construct isomorphic objects which will behave the same; this is at least apparent in Grothendieck toposes.

good point

It's very common in category theory for things to be unique up to isomorphism (meaning that each instance of the thing is isomorphic to every other instance).

For instance one might often mention initial and terminal objects in a category. Like one may say "this category has a terminal object". In such cases there isn't necessarily one terminal object and often you may have many of them. The thing however is that with regards to the properties we're interested in, it doesn't matter which one you use (like in the category set where every singleton set is a terminal object)

dude spoiler your image

nah

huh? people talk about surjective morphisms of schemes all the time. It just means a morphism which is surjective on the underlying topological spaces.( A surjective morphism need not be an epimorphism, in the categorical sense, but noone cares). Surjectivity of a morphism is a perfectly good notion (e.g. its even preserved by base change).

>never heard of them
>must be irrelevant
>insults everyone

Mental retardation: the post

>Surjectivity of a morphism is a perfectly good notion (e.g. its even preserved by base change).
Should they not have surjectivity plus another requirement for the preservation under base change?

no its true, see the discussion here (or the reference to EGA given) math.stackexchange.com/questions/262104/why-surjectivity-stable-under-base-change

This actually can be a useful fact.

How about that. Thanks for the info, user.

category-theory.mitpress.mit.edu/index.html

Is this a good book for someone without much advanced math background?