This is a bit embarrassing. My intuition for homological algebra has been pretty terrible for a while now; I’ve been shown a bit of theory, in the context of algebraic topology and sheaves in particular, but I never really felt like I had a good understanding of why that was a natural structure to think about. It just seems a bit… arbitrary, at a glance. Who cares about exact sequences? Why do we want them so bad?

I’ve had what I’ll call a ‘gradual epiphany’ over the course of several months, consisting of a few sporadic and mild revelations that have all just now connected into a single cohesive picture. I’d like to give my new perspective on cohomology here, just in case anyone might be having the same issues as me.

My core insight: exact sequences are a category theorist’s presentations.

If you immediately understand my core insight, you might as well skip to the section on algebraic topology, or stop reading altogether. If not, then step right in.


Mathematicians want to know the structure of formal things. If the thing we’re studying is ‘algebraic’, ie. defined by some operations or relations, a good goal is to present the object of our curiosity. This means we find some small subset of elements, the generators, which produce every element when we apply the operations to them in all possible ways. We then figure out how the operations work by finding a few relations - if we put the generators together this way it’s the same as putting them together that way. This is a very ‘syntactic’ way to understand an algebra - we describe it as a collection of primitive words, tell you every way to compose them into sentences and describe which sentences are the same.

It would be wonderful to have a category-theoretic way to think about presentations - if we did, we could transmit the idea of presenting things to unexpected places, like geometric or non-set-theoretic situations. So, let’s give it a shot.

We’re in a category $\mathscr{C}$ and want to ‘present’ an object $A$. This requires generators and relations. We can’t really talk about the set of generators as before, since we’re not necessarily in $\textbf{Set}$. (We almost never are!) We could try and assume a ‘free/forgetful adjunction’ to $\textbf{Set}$ or look at the hom-set from the terminal object to get access to $A$’s ‘underlying set of elements’, but these are unnecessary. We can instead think about the free structure generated by $A$’s generators. Let $B$ be an algebraic structure with the same generators as $A$, but no relations. We have an obvious epimorphism $f : B \rightarrow A$. If our algebraic structure has some sort of ‘identity element’, the relations are easily described too: this epimorphism’s kernel $\textbf{Ker}(f) \rightarrow B$ identifies which compositions of generators are equal to the identity, which is sufficient to describe all relations. Note that the kernel map is always injective.

So, perhaps a presentation can be understood categorically as a diagram $C \overset{f}{\rightarrow} B \overset{g}{\rightarrow} A$, such that

Kernels and images can be described completely categorically. A category that has all kernels and cokernels (and thus images), along with an additive structure induced on each hom-set, is an abelian category. It’s the kind of category where we can describe abstract presentations.

We see $A$ as the object being presented, $B$ as the generators and $C$ as the relations. This can be even more succinctly described as a short exact sequence $$ 0 \rightarrow C \rightarrow B \rightarrow A \rightarrow 0 $$ie. a chain of maps such that the kernel of each map is the same as the image of the one before it. Perhaps some condition should be imposed on $B$ to make it ‘free’; we won’t do this here. In some sense, $A$ is being presented as a quotient of $B$ by some more relations. We have described $A$ in terms of other objects $B$ and $C$.

Of course, it’s always possible that our presentation is trivial and that $B$ teaches us nothing new about $A$. Indeed, $B$ may already contain all of $A$’s relations in some form or other. For instance, we may have a S.E.S. (short exact sequence) of the form $$ 0 \rightarrow 0 \rightarrow A \overset{1_A}{\rightarrow} A \rightarrow 0 $$This is the ‘degenerate’ presentation. In general, saying $B$ has all the relations of $A$ is more formally expressed by saying there is a map $A \rightarrow B$ such that $(A \rightarrow B \rightarrow A) = 1_A$. In this situation, we find that $B \cong C \oplus A$; the short exact sequence splits, meaning $C$ is diverted to be completely independent of $A$. When no such map $B \rightarrow A$ is possible, it means $A$ has relations which $B$ does not, so $C$ must be involved. Clearly, it’s these kinds of SES’s that we’re after.

One should also not be misled to think that $B$ is ‘simpler’ than $A$; really, as $A$ is a quotient of $B$ by $C$ in some sense, we realize a quotient may be much simpler than its origins. For instance, the SES $$ 0 \rightarrow B \overset{1_B}{\rightarrow} B \rightarrow 0 \rightarrow 0 $$presents the trivial object $0$ via a nontrivial collection of generators with nontrivial relations. To really be sure the presentation is ‘simpler’ or ’nicer’ than $A$ we’d need to make some demands of $B$ and $C$’s structure. For now however, we may content ourselves with the fact that any ’traditional’ presentation will inevitably take this form.

Removing the Bias

OK, so SES’s seem to be the category theorist’s answer to a presentation. Various kinds of ‘presentation’ will be possible by tweaking the nature of $B$ and $C$. Our options will vary based on which category we’re in.

Hold up. What’s so special about the last element of a SES? Maybe the existence of a SES $0 \rightarrow C \rightarrow B \rightarrow A \rightarrow 0$ lets us understand $C$ in terms of $B$ and $A$ just like we understand $A$ in terms of $B$ and $C$. Indeed, a little thought reveals that $A$ is the cokernel of the map $C \rightarrow B$. We can think of $C$ being embedded into $B$ and $A$ giving the elements that we missed. This is almost a ‘dual’ of a presentation - some kind of ‘copresentation’. We understand our new object by seeing how it fits into a familiar one, rather than seeing how a simpler one fits into it.

Category theory trains us to look for duality. Anything that we might learn about $A$ in our SES implies something we could learn about $C$. (In reality, a true ‘dual’ situation would involve a chain of maps with identified cokernels and co-images, but close enough.) We realize that a SES is just as useful to study the first element as the last.

Furthermore, what about $B$? We’ve described an object $A$ it embeds into, along with an object $C$ that tells us what is lost in the embedding. The SES describes $B$ in terms of $A$ and $C$!

This lack of bias tells us that a SES is useful to understand all of its parts; if you know two parts of it, you know the third. This is why we can’t expect a SES to give a simpler description of $A$. It might be too busy giving a simpler description of $B$ or $C$. A SES is a tight web of algebraic structures, identifying how each is ‘presented’ by the others. This is the kind of powerful abstraction we look for.

General Exact Sequences

Short exact sequences are good. They’re a sensible candidate for category-theoretic presentations (to some extent, as we’ve alluded). We would like any operations on the objects to act on these presentations. That way, we can understand them in the same manner. For example, if we have a ‘multiplication operation’ $A \times A \rightarrow A$ on some object $A$ and a presentation of $A$, we should describe the multiplication with this presentation.

The Freyd-Mitchell embedding theorem tells us that any small abelian category embeds in a fully faithful and exact manner into $\textbf{Mod}_R$ for some ring $R$. The embedding being exact just means it preserves SES’s, ie. kernels and cokernels, ie. all the structure of an abelian category. So, every abelian category is ’locally’ just a category of modules. We might interpret this theorem as saying that “modules capture everything that admits nice presentations.” Most algebraic things are modules for some ring after all - abelian groups are just $\mathbb{Z}$-modules, for instance. Those that aren’t will be so locally. It also suggests that if we’re interested in an operation on ‘algebraic structures’, we should just think about ‘operations on modules’.

So, what does an operation on modules look like? It’s basically a bilinear map $A \times B \rightarrow C$. There are two ways to describe this. One is with a tensor product $A \otimes_R B \rightarrow C$. Another is with an internal hom object $A \rightarrow (B \rightarrow C)$.

In more computer sciency terms, we might say a map from two objects into one has a type $$ A \rightarrow (B \rightarrow C) $$ which in our case would be the module $\textbf{Hom}(A, \textbf{Hom}(B, C))$. However, if we’re going to think about operations on modules, it’d be handy to have everything packaged into the domain. We usually expect another type of the form $$ A \times B \rightarrow C $$ These two types should be the same. For modules, the only possible construction that fits this situation is the tensor product $A \otimes_R B$. We then get the usual hom-tensor adjunction equating these two types.

So, given an $(R, S)$-bimodule $Y$, the functors $$ \ - \otimes_R Y : \textbf{Mod}_R \rightarrow \textbf{Mod}_S $$ and $$ \textbf{Hom}(Y, -) : \textbf{Mod}_S \rightarrow \textbf{Mod}_R $$ (for right modules) are pretty important. Together, they let us discuss operations on modules that take many arguments. If we want to describe operations on algebraic objects in terms of presentations, we should know how these functors interact with SES’s.

We’d hope these functors are exact. If they were, given an operation $A \otimes_R X \rightarrow Y$ and a presentation $0 \rightarrow C \rightarrow B \rightarrow A \rightarrow 0$, we could get a SES $$ 0 \rightarrow C \otimes_R X \rightarrow B \otimes_R X \rightarrow A \otimes_R X \rightarrow 0 $$which, combined with the map $A \otimes_R X \rightarrow Y$, would inform us what happens to the generators $B$ when combined with an element of $X$. (If we happen to be working with bimodules, we could do the same with a presentation of $X$.)

Similarly, if $\textbf{Hom}(X, -)$ is exact, given a ‘copresentation’ $0 \rightarrow Y \rightarrow M \rightarrow N \rightarrow 0$, we could get a SES $$ 0 \rightarrow \textbf{Hom}(X, Y) \rightarrow \textbf{Hom}(X, M) \rightarrow \textbf{Hom}(X, N) \rightarrow 0 $$ which, combined with the operation map $A \rightarrow \textbf{Hom}(X, Y)$, gives us insight into how the operation behaves in terms of $M$ and $N$ instead.

As it turns out, these functors are almost exact. Almost. The tensor functor is right exact; that means it preserves exact sequences of the form $$ C \rightarrow B \rightarrow A \rightarrow 0 $$ This is almost a presentation. Unfortuately, $C \rightarrow B$ is no longer necessarily injective, so $C$ might not be the kernel. That means we’re missing relations. So, while we might know where the generators go, we can’t really see them as participating in a clear presentation anymore. Indeed, $\otimes$ will leave our generators intact, but experience shows it often introduces new relations in unpredictable ways. We’ve failed to study how the operation acts on a presentation.

Similarly, the hom-functor is left exact: it preserves exact sequences of the form $$ 0 \rightarrow C \rightarrow B \rightarrow A $$ which are again almost presentations. Now, the problem is that $B \rightarrow A$ might not be an epimorphism anymore. So we’re missing generators!

What these two facts represent is that we can’t easily access a clear presentation through which to express an operation. We can’t present a tensor in terms of its components’ presentations, nor a hom-space!

We have to think a bit harder.

Long Exact Sequences

Let’s try and relax our idea of a ‘presentation’ a bit. Maybe we’re being too uptight by focusing on SES’s. For example, what does an exact sequence $$ 0 \rightarrow C \rightarrow B \rightarrow A \rightarrow A’ \rightarrow 0 $$ tell us about $A$? This is almost a SES - but I’ve added an element $A’$ on. Well, the change is that $B \rightarrow A$ is no longer surjective. Now, $C$ and $B$ together give the generators and relations of a subobject of $A$, namely the image of $B \rightarrow A$. However, that $A \rightarrow A’$ is the cokernel of $B \rightarrow A$. It gives all the elements we missed. Together, $B$ and $A’$ give ‘generators’ for $A$. (The relations on the generators in $A’$ are defined by $A’$; it can’t really be ‘free’. Oh well.)

Similarly, consider an exact sequence $$ 0 \rightarrow C’ \rightarrow C \rightarrow B \rightarrow A \rightarrow 0 $$ Now, while $B \rightarrow A$ is an epimorphism and so gives all the generators, $C \rightarrow B$ is no longer a monomorphism. It isn’t the full kernel - it must miss some relations. However, $C’$ gives those relations that $C$ missed! It is the kernel of $C \rightarrow B$, identifying all the relations subtly added in this map. So, a slightly longer exact sequence can still give a suitable notion of presentation. We might realize inductively that a finite exact sequence ending in $0$’s of any length would give a kind of presentation, with each step either capturing missing generators or relations.

Let’s keep going. Any finite exact sequence ending in $0$’s is actually an infinite exact sequence of the form $$ \cdots \rightarrow 0 \rightarrow 0 \rightarrow C \rightarrow \cdots \rightarrow A \rightarrow 0 \rightarrow 0 \rightarrow \cdots $$What if we allowed an infinite number of the elements to be non-zero? We’d get a so-called long exact sequence, or LES, of the form $$ \cdots \rightarrow C_0 \rightarrow C_1 \rightarrow C_2 \rightarrow C_3 \rightarrow C_4 \rightarrow \cdots $$ It doesn’t take long to see what happens here. $C_2$ and all the subsequent $C_i$’s for $i > 3$ give generators of $C_3$. All the $C_j$ for $j < 2$ together give relations. As we go to the right, we continually add on more and more generators we missed in $C_2 \rightarrow C_3$. As we proceed to the left, we continually add more and more relations we missed in $C_1 \rightarrow C_2$.

What’s nice is that a LES has absolutely no bias for $C_3$ or any $C_i$. We could equally say that the above LES presents $C_0$, or $C_1$, or any $C_i$ for that matter, in terms of the other $C_j$’s. This generalizes the lack of bias in a SES to any one component. In the end, this is a kind of ‘relative presentation’: if we learn about any one $C_i$, we learn about the others.

(There are lots of conversions between different kinds of exact sequences - the snake lemma is a particularly cool one. We can now think of these as converting between different kinds of presentations.)

LES’s can be converted into a series of SES’s. Preserving LES’s is thus precisely the same as preserving SES’s. In short, hom’s and tensors don’t do it. Sounds like a waste of time to discuss them then!

Not exactly.

Derived Functors

Our problem can now be phrased as follows. Given a SES $0 \rightarrow C \rightarrow B \rightarrow A \rightarrow 0$, we have a right exact sequence $$ C \otimes_R X \rightarrow B \otimes_R X \rightarrow A \otimes_R X \rightarrow 0. $$ We’d like to use our SES to extend this sequence infinitely to the left, or until we reach a $0$. If we can do either of these things, we’ll have converted a presentation of $A$ into one of the tensor. Then we can begin studying operations we like in terms of presentations!

There are usually lots of ways to extend this into a LES. However, in our situation, there’s a ‘canonical’ way to do it using the SES we started from. The central requirement is to have enough projectives.

A projective module is pretty much the closest thing we can get to a ‘free’ module that behaves well categorically. A module $P$ is projective iff, for any cospan of modules $P \rightarrow M \leftarrow N$, where $M \leftarrow N$ is an epimorphism, there is a map $P \rightarrow N$ that commutes. This means we can ’lift’ $P$ along epimorphisms. In particular, if $N$ is a free module consisting of $M$’s generators, $P$ can be lifted to it. This tells us that ‘$P$ has very few relations of its own’. Not every projective module is free. However, projective objects can exist in any abelian category. Plus, we really don’t need ‘free’ things anyway.

To say an abelian category has ’enough projectives’ is to say that for any object $X$, there is an epimorphism $P \rightarrow X$ from a projective module. We might say that “we can always find a free algebra of generators.” We can keep applying this fact forever to get a LES $$ \cdots \overset{p_4}{\rightarrow} P_3 \overset{p_3}{\rightarrow} P_2 \overset{p_2}{\rightarrow} P_1 \overset{p_1}{\rightarrow} X \overset{p_0}{\rightarrow} 0 $$by taking the kernel of each $p_i: P_i \rightarrow P_{i-1}$ and giving an epimorphism onto it. We call this a projective resolution of $X$.

Write $F := - \otimes_R X$ for the tensor functor. If we apply $F$ to a projective resolution, we’ll get a diagram $$ \cdots \overset{F(p_4)}{\rightarrow} F(P_3) \overset{F(p_3)}{\rightarrow} F(P_2) \overset{F(p_2)}{\rightarrow} F(P_1) \overset{F(p_1)}{\rightarrow} F(X) \overset{F(p_0)}{\rightarrow} 0 $$that is not necessarily exact. It’s just a chain complex - a chain where any two maps composed give the zero map. But we’re not done yet. We’re going to define $L_iF(X) := \textbf{ker}(F(p_{i-1}))/\textbf{im}(F(p_i))$. Alternatively, we can define it as the cokernel of the natural map $\textbf{im}(F(p_i)) \rightarrow \textbf{ker}(F(p_{i-1}))$, ie. the last part of a SES $$ 0 \rightarrow \textbf{im}(F(p_i)) \rightarrow \textbf{ker}(F(p_{i-1})) \rightarrow L_iF(X) \rightarrow 0 $$ This structure captures precisely how the projective resolution fails to be exact at $P_i$. For us, it will form the “underlying exact structure” of any chain complex. (If we permit $i=0$, we get that $L_0F \cong F$.)

Now, suppose we have our SES $0 \rightarrow C \rightarrow B \rightarrow A \rightarrow 0$. We begin by taking projective resolutions $P_i$, $Q_i$ and $R_i$ of $A$, $B$ and $C$ respectively. Lifting maps via projectiveness, we get a series of SES’s $$ 0 \rightarrow R_i \rightarrow Q_i \rightarrow P_i \rightarrow 0 $$that commute with the projective resolutions. This is a chain of SES’s. It turns out $F$ will preserve SES’s of these projective resolutions. Some ‘diagram chasing’ then unveils a natural chain of maps $$ \cdots \rightarrow L_2F(A) \rightarrow L_1F(C) \rightarrow L_1F(B) \rightarrow L_1F(A) \rightarrow F(C) \rightarrow F(B) \rightarrow F(A) \rightarrow 0 $$ and, after a bit of staring, we see that this is exact.

To recap:

  1. Present each element in the SES with projective objects.
  2. Apply projectiveness to get a chain of SES’s.
  3. Diagram chase from the end of one SES to the start of the next.
  4. Notice that it only works if we work within $L_iF$’s.
  5. Notice the resulting sequence is exact.

So, we’ve shown how to understand tensor products in terms of presentations; given a presentation of $A$ (a SES), we’ve induced a presentation of $F(A) := A \otimes_R X$ (a LES).

We can do a completely dual construction to $L_iF$ on $G := \textbf{Hom}(X, -)$ to get a long exact sequence $$ 0 \rightarrow G(C) \rightarrow G(B) \rightarrow G(A) \rightarrow R^1G(C) \rightarrow R^1G(B) \rightarrow R^1G(A) \rightarrow R^2G(C) \rightarrow \cdots $$where we use ‘injective resolutions’ instead of projective ones (dualize everything) and $R^iG$ (keep dualizing!). This is our solution to describing operations with presentations (one argument at a time)!

We call each $L_iF$ the $i^{th}$ left derived functor of $F$ and $R^iG$ the $i^{th}$ right derived functor of $G$. They are defined by taking (co)homology of the projective/injective resolutions. Note that these constructions don’t depend on tensors or homs - we could do these to any left or right exact functors. In the case of tensors and hom functors, $L_iF$ is called the $i^{th}$ Tor functor $\textbf{Tor}^R_i(-, X)$ and $R^iG$ the $i^{th}$ Ext functor $\textbf{Ext}^i_R(-, X)$. (These are largely historical names - $\textbf{Ext}^1_\mathbb{Z}(A, X)$ is in bijection with the set of extensions of a abelian group $A$ by an abelian group $X$. Furthermore, $\textbf{Tor}^R_1(M, R_S/R)$ gives the $S$-torsion of an $R$-module $M$ for commutative $R$. I might try and continue this intuition to higher $i$ in another post.)

As an aside, we can do this in a way that handles presentations of both arguments to $\otimes$ or $\textbf{Hom}$ at once. It’s called a derived functor (not left or right), but the diagrams are 2-dimensional and I don’t know how to sort out tikzcd on a website. Go look it up for now.

Alright, I think that’ll do for now. If you’re still with me, have a look at my next post for part 2 of this discussion, where I’ll focus a bit more on homology. See you there!