defining functors on maps

In nearly all the examples of functors I see defined in my course, they are always just defined on what they do on objects of their categories (even sometimes not even that). A classic example:

$$M\otimes_B-:{_B\text{Mod}_C}\rightarrow {_B\text{Mod}_C}$$

No definition of action on objects of the first category nor definition of how it acts on function.

Obviously, the action on objects is clear in this case (and in nearly all the cases I've seen).

$$(M\otimes_B-)(X) = M\otimes_BX$$

On functions, it could be less clear but even then, the only possible option to me seems

$$(M\otimes_B-)(f)(m\otimes_B x) = m\otimes_Bf(x)$$

However, how do I know that my intuition is correct? Is category theory so well done that our intuition is always the only thing that works? Or are there some cases where multiple options are possible and in that case, we would have to define things properly.

• The action on functions in this example is "clear" in the exact same way: $(M \otimes _B -)(f) = M \otimes_B f$. – Hurkyl Dec 18 '17 at 15:51
• Don't worry, the situation gets far worse than this. In the future, you'll see things like: "Let $X$ be defined as $Y$ satisfying the obvious laws/coherence conditions." Here's an example. I don't know if this occurs in the wild, but I could believe it. "Let $(T,\mu,\eta)$ be a monad. A $T$-algebra is an object $A$ and an arrow $a:TA\to A$ satisfying the obvious coherence conditions." – Derek Elkins Dec 18 '17 at 23:43

When this is done it is because (a) there is only one real candidate that makes any sense, (b) this candidate is screamingly obvious (via the intuition* that you correctly reference), (c) it's automatic or formal that it is going to work because of the definition on objects, and (d) the author is saving the reader's time because people reading this don't need everything spelled out. So while I sympathize with you, this will never change.

*perhaps more relevant term: experience.

To step back a bit, how about an easier example. Fix a set $A$ once and for all. "Define" a functor $F: \mathrm{Sets} \to \mathrm{Sets}$ by $F(X) = A \times X$ on objects and "the natural action on morphisms." Do I have to tell you what this does on maps or is it clear? Most would claim it is clear and likely has something to do with mapping properties of the product, since that is what my functor is trying to do on objects. For sure, given $f: X \to Y$ I intend for $F(f): A \times X \to A \times Y$ to act as $(F(f))(a,b) = (a,f(b))$.

The same thing happens with your tensor product example. With $F(-) = M \otimes_B -$ there is really only one thing that is useful/sensible on morphisms. Given a module map $f: X \to Y$ we get a map $1_M \otimes f: M \otimes_B X \to M \otimes_B Y$ via $(1 \otimes f)(m \otimes x) = m \otimes f(x)$ because it's suitably bilinear before passing to the tensor product. And look, that's exactly what you thought it was in your answer. So, you are doing it right all along.

Often, functors are built by composing other functors. The action on maps is computed simply by plugging in the map.

For example, consider the traditional presentation of the tensor product $\mathbf{M} \otimes_B \mathbf{N}$.

One starts by taking the underlying set $|\mathbf{N}|$. This expression is functoral in the variable $\mathbf{N}$. If I plug in some module map $\varphi : \mathbf{A} \to \mathbf{B}$ for the variable $\mathbf{N}$, I get the set map $|\varphi| : |\mathbf{A}| \to |\mathbf{B}|$ given by the forgetful functor.

So, I define $M = |\mathbf{M}|$ and $N = |\mathbf{N}|$. The next thing I do is construct the product $M \times N$. This is again the result of applying a functor; the expression is functoral in both variables. If I plugged in a set map $f : A \to B$ for the variable $N$, the result is the specific function $M \times f : M \times A \to M \times B$ given by the product functor.

The next thing is that I construct the free abelian group $\mathbb{Z}[M \times N]$. This is again a functor. Again if I had a map $f : A \to B$ that I plug in for $N$, I plug that into the product functor to get $M \times f : M \times A \to M \times B$, and plug that into the free abelian group functor to get $\mathbb{Z}[M \times f] : \mathbb{Z}[M \times A] \to \mathbb{Z}[M \times B]$.

And so on and so on. If every step in your calculation is functoral, then to obtain the action of your functor on a morphism, you simply plug in that map and do the arithmetic.

E.g. $\mathbb{Z}[M \times f]$ operates by sending a generator $[(m,a)]$ to the element $[(M \times f)(m,a)]$. The function $(M \times f)$ sends $(m,a)$ to $(m, f(a))$. If $f = |\varphi|$, then $f$ itself acts by sending $a$ to $\varphi(a)$. So, all together, $\mathbb{Z}[M \times f]$ is the map induced by sending $[(m,a)]$ to $[(m, \varphi(a))]$.