epistemic status: I'm trying to learn category theory, and very confused about basic things. There is a substantial chance this post is not even wrong; please only read if you're willing to email me* * christopher dot white at alumni dot rice dot edu to clear up confusions.
Given a category \(C\), the opposite category \(C^{op}\) of \(C\) is the category whose objects are the objects of \(C\), and whose morphisms are the morphisms of \(C\) with directions reversed: so if \[ f : x \to y \] in \(C\), then* * People don't usually seem to give \(f\) different notation when it's in \(C\) vs. \(C^{op}\). idk why not? Maybe just convenience? \[ f^{op} : y \to x \] in \(C^{op}\).** ** I think "going to \({}^{op}\)" is purely a formal thing. So if if I have some projector \(A : \mathbb C^4 \to \mathbb C^3\) i.e. \[ A \in \text{hom}_\text{Vect}(\mathbb C^4, \mathbb C^3) \] in \(\text{Vect}\), then it's a morphism in \(\text{Vect}^{op}\) \[ A \in \text{hom}_{\text{Vect}^{op}}(\mathbb C^3, \mathbb C^4)\;. \] Same matrix representation, though! (idk if that's a sensible statement in a category-theoretic context?) (Thanks to R.M. for getting this through my head, on a walk to Tacos a la Madre. I hope I understood him right...)
It would help unconfuse me if I had a way to build an opposite-category morphism from a not-opposite-category morphism. My first thought is---this means I want a functor \[\text{Op}' : C\to C^{op}\;.\] (I write \(\text{Op}'\) because this will turn out to not be the object we're looking for.) The action on objects is sensible enough: \[ \text{Op'} : x \mapsto x \] where \(x\) is first understood as living in \(C\), and then as living in \(C^{op}\). Writing an action on morphisms is a problem though: for \(\text{Op'}\) to be a functor, it has to take a morphism \[ f : x \to y \] i.e. \[ f \in \text{hom}_C(x,y) \] to \[ \text{Op}'(f) : \text{Op}(x) \to \text{Op}(y) \] i.e. \[ \text{Op}'(f) \in \text{hom}_{C^{op}}(x,y) \;.\] But the whole point of the opposite category is that \(f\) goes the other direction: it's \(f \in \text{hom}_{C^{op}}(y,x)\)!
The solution is to define a different kind of functor that does the right thing. An ordinary functor---we'll call these ordinary functors covariant---is \[ F : C \to D \] mapping a morphism \[ f:x\to y\] to some \[ F (f) : F(x) \to F(y) \;.\] This kind of functor (that is, a covariant functor) isn't what we need.
A contravariant functor, by contrast, maps a morphism mapping a morphism \[ f:x\to y\] to some \[ F (f) : F(y) \to F(x) \;.\] This is what we need! Our functor \(\text{Op}\) is a contravariant functor: it maps objects \[ \text{Op} : x \to x \] and a morphism \(f:x\to y\) to \[ \text{Op}(f) : \text{Op}(y) \to \text{Op}(x)\;. \]
The obvious next question is---does every contravariant functor \(F^{contra} : C \to D\) factor into a covariant functor and the opposite functor? It does: \[ \text{Op} \circ F^{contra} \] is covariant,* * If \(f : x \to y\) in \(C\), \[F^{contra}(f) : F(y) \to F(x)\] and \[ \mathrm{Op}(F^{contra}(f)) : F(x) \to F(y)\;.\] and \[ \begin{aligned} F^{contra} &= \text{Op} \circ \Big[\text{Op}\circ F\Big] \\ &= \text{Op} \circ F^{co}\;,\\ F^{co} &= \text{Op} \circ F\;. \end{aligned} \] Done!