Layman Intuition of Adjunctions (Category Theory)

103 Views Asked by At

I've been trying to get to grips with adjunctions lately, but as with most of my experience with Cat Theory, I'm struggling to bring it back to a solid understanding. What follows is my best guess at an analogy suitable for a 5-yr old (or dummies like myself), and I'd find it helpful to know how far off the mark it is. Where does the analogy break down, and (no matter how odd) how would I correct that?

Note: I'm not after a variety of different scenarios to fix it, as then it would be an open question. I want to clarify my understanding in an as generic way as possible, without getting totally bogged down in jargon.


To explain the difference between equivalences, isomorphisms, and adjunctions, we need three things:

  • Clothes
  • A blindfold
  • A notepad and pen

Let us define two states, On and Off, where On is when we're wearing our clothes, and Off is when we're not.

There are a multitude of functions / morphisms for putting our clothes On. For instance, we can put our gloves on first, then our socks, then trousers, and finally our shirt. However, no matter which way we do this, all of the items will be on our personage at the end.

Assuming we've put everything on correctly (no socks on hands), each of these functions give equivalent results.

Let these functions for putting clothes on be called fi, where i represents our favourite ordering for putting clothes On. Let us also define gi for each of the methods for taking our clothes Off.


Looking at our equipment, we notice the blindfold. With this, a whole new world / category opens up to us. To best reflect this new view on things, we can define two new states.

Let On_B be when we are wearing our clothes and we are blindfolded, and Off_B be when we are not wearing our clothes and are blindfolded.

The astute among us will note that it is indeed still possible to put our clothes on and take them off. However, these acts are not quite as refined as before. As such, we will also need to redefine our functions.

Let fi_B be the functions for putting clothes on whilst blindfolded, and gi_B be the functions for taking clothes off whilst blindfolded.

We have now effectively defined two functors. Let Blind be a functor mapping to the conditions of us wearing a blindfold, and See be a functor mapping to the conditions where we aren't wearing a blindfold.

It is now possible to go about the process of putting our clothes on again. However, this time we can Blind ourselves first, and then put our clothes On_B.

If we were to ask someone whether we were wearing any clothes, they would indeed concur that we are. However, the blindfolded state is not exactly the same as the non-blindfolded state. All we would have to do is take our blindfold off for it to be exactly the same. However, given how close we are to the same condition, we can say On_B is isomorphically the same as On (the same in the spirit of the question, though the details can tell us apart).


Finally, we come to adjunctions. This is where it gets complicated, so let us make notes of things.

Let On and Off be redefined to mean "clothes on, with notes on how we put clothes on" and "clothes off, with notes on how we took clothes off" respectively.

Also, let fi and gi be "putting clothes on and taking notes of the process" and "taking clothes off and taking notes of the process" respectively.

So far so good. Now lets see how we fare after we Blind ourselves...

It appears that, not only can we not take notes whilst blindfolded, but we've even forgotten where we put the notes from before! Our Blind functor is no longer a fully faithful transform between the two conditions as it is forgetful.

When we See again, all of our notes are missing! Well, given what we know of how the process works, we're free to write a general description of how we got into our current state of clothing (either On or Off). Technically, we are lying about the process, but so long as we do so the same way every time, there shouldn't be too much of a problem. Likewise to Blind, our See functor is no longer a fully faithful transform either, as it is free to make whatever notes it wants, albeit consistent lying.

So, let us compare. From Off, we can fi to put our clothes On and take notes, OR we can Blind ourselves, fi_B to put our clothes On_B whilst blindfolded, and then See again, whilst writing a generic method for how we put our clothes On even if it wasn't exactly how we did it. This is a left adjunct equivalency.

Alternatively, we can go from Off_B, fi_B to put our clothes On_B without any notes, OR we can See, fi to put our clothes On with notes, and then Blind ourselves again, losing our notes in the process but ending in the On_B state. This is a right adjunct equivalency.


Thanks in advance for your help.