Random thoughts on pushforwards/pullbacks

I’ve been trying to deepen my knowledge about adjunctions for the past few hours, and somehow got thrown off on a tangent thinking about notation. This post is the result; hopefully it’s somewhat coherent. I was very tempted to post it on triple involution, but for some reason I ended up posting it here anyways.

One thing we tend to do a lot in mathematics is use mappings between objects to “transport” structures from one to the other. I’m sure there are plenty of really elementary examples, but the first interesting one that occurs to me is in differential geometry. Another example is given by direct image (and inverse image) sheaves.

Given a smooth map $f : M \to N$ between manifolds, and a point $p \in M$, one can “push forward” vectors tangent to $M$ at $p$, and obtain vectors tangent to $N$ at $f(p)$. To be more precise, if $T_p M$ denotes the tangent space of the manifold $M$ at $p$, then we are saying our smooth map $f : M \to N$ induces a (linear) map $T_p M \to T_{f(p)} N$, known as the pushforward of $f$ at $p$. I usually saw this map denoted $(f_*)_p$, read “$f$-lower star-$p$“.

A decent definition of the tangent space $T_p M$ is that it’s the vector space of all linear derivations at $p$, that is, linear maps $X_p : \mathcal{C}^\infty(M) \to \mathbb{R}$ such that

$X_p(gh) = g(p) X_p(h) + X_p(g) h(p), \qquad \forall g, h \in \mathcal{C}^\infty(M).$

When we define the tangent space this way, the pushforward map is given by

$((f_*)_p(X_p))(g) = X_p(g \circ f), \qquad \forall g \in \mathcal{C}^\infty(N).$

That is, we have produced a derivation of $\mathcal{C}^\infty(N)$ at $f(p)$, call it $Y_{f(p)}$, that acts on functions $g \in \mathcal{C}^\infty(N)$ as $Y_{f(p)}(g) = X_p(g \circ f)$. The way it behaves is pretty simple; it takes $g$ (which, being in $\mathcal{C}^\infty(N)$, is nothing but a smooth function $N \to \mathbb{R}$), precomposes it with $f : M \to N$ thereby giving a smooth function $g \circ f : M \to \mathbb{R}$, and then feeds this thing into the derivation $X_p$ we started with. The proof that $(f_*)_p(X_p) =: Y_{f(p)}$ actually is an element of $T_{f(p)} N$ (that is, actually is a linear derivation at $f(p)$) is trivial.

With this example in mind, suppose now that we’re in some category $\mathcal{C}$. Let’s think about the thingie that takes a pair of objects $c, d$ in $\mathcal{C}$, and gives us the set of all morphisms $c \to d$. We usually denote this set, say, by $\mathrm{Hom}(c,d)$ or maybe $\mathcal{C}(c,d)$ to emphasize which category we’re working in.

Now suppose we fix $d$ and we consider $\mathrm{Hom}$ just in its remaining one variable: that is, look at $\mathrm{Hom}(-, d)$. If we have two objects $c, c'$ of $\mathcal{C}$, and a morphism, say $f : c' \to c$, then we actually get a function $\mathrm{Hom}(c,d) \to \mathrm{Hom}(c',d)$ given by $g \mapsto g \circ f$, that is, by precomposing with $f$ to “pull back to $c'$“. The obvious notation for this map, since $\mathrm{Hom}(-,d)$ is a (contravariant) functor, is $\mathrm{Hom}(f,d)$. Mac Lane (in Categories for the Working Mathematician) however, often opts to call this map $f^*$ instead (which is consistent with the notation from differential geometry, where $f^*$ is the pullback of differential forms).

If we fix the first component instead, that is, fix $c$ and consider $\mathrm{Hom}(c,-)$, it seems natural to use a “lower star”. That is, given a map $f : d \to d'$, we get a map $f_* : \mathrm{Hom}(c,d) \to \mathrm{Hom}(c,d')$ by “post-composition”, which (I guess you could say) pushes us forward to $d'$. That is, $g \mapsto f \circ g$.

Let’s go back to our example. What is $(f_*)_p$ actually doing? It’s sending $X_p$ to $X_p \circ f^*$, where $f^*$ is the thing that sends $g \in \mathcal{C}^\infty(N)$ to $g \circ f \in \mathcal{C}^\infty(M)$. So, $(f_*)_p$ is just “precomposition by $f^*$“. That being said it almost seems like we should denote the pushforward by $(f^*)^*$ or something… -_- maybe I just screwed something up.

In this sense, I really can’t seem to justify writing $(f_*)_p$. I mean, yes, you’re pushing tangent vectors forward, but set-theoretically, you’re pulling back along a pullback map. I don’t know. Notation sucks.