$\newcommand{\C}{\mathbf{C}} \newcommand{\D}{\mathbf{D}}$ Let $\C$ be a category with pullbacks. Taking any choice of pullbacks gives us re-indexing functors $f^\* \colon \C /Y \to \C/X$, and these will be functorial in $f$ up to natural isomorphism, in that $g^\* \cdot f^\* \cong (f \cdot g)^\*$. However, these will usually not be *strictly* functorial in $f$; that is, $g^\* \cdot f^\*$ and $(f \cdot g)^\*$ will not be literally equal. Strict functoriality also requires that $1\_X^\* = 1\_{\C/X}$; while this typically does hold on the nose, it’s still not automatic.


My main question: **Is there always some choice of pullbacks that make re-indexing strictly functorial?** I believe the answer should be “no”, but I don’t know any counterexample. Even in the case of $\mathbf{Set}$, it’s not obvious whether there’s a choice that works.


An equivalent phrasing of the question is: can the codomain fibration $\mathrm{cod} \colon \C^\rightarrow \to \C$ be equipped with a splitting? It can always be replaced by an *equivalent* split fibration over $\C$; but splitting the codomain fibration itself seems hard.



Can we always make a strictly functorial choice of pullbacks/re-indexing?
**No, it is not always possible to make a strictly functorial choice of pullbacks.** Four years later, I found a simple (if contrived) counterexample for this:


Let $\newcommand{\C}{\textbf{C}}\C$ be any full subcategory of $\textbf{FinSet}$ containing infinitely many sets of size 2, and at least one set of every finite size, but only one set of size 4. Certainly $\C$ has all pullbacks, since it is equivalent to $\textbf{FinSet}$.


Now pick specific 1- and 2-element sets $\newcommand{\one}{{1}}\newcommand{\two}{{2}}\one$, $\two$. Let $r : \two \to \one$ be the unique possible map, and $s : \one \to \two$ either of the two possible such maps. Then $s$, $r$ form a section-rectraction pair $\one \to \two \to \one$, with $rs = \newcommand{\id}{\mathrm{id}}\id\_\one$.


If $\C$ had a strictly functorial choice of pullback functors, then the functors $r^\* : \C/\one \to \C/\two$ and $s^\* : \C/\two \to \C/\one$ would also be a (strict) section-retraction pair, with $s^\* r^\* = \id\_{\C/\one}$. In particular, this would exhibit the subcategory of $\C/\one$ on 2-element sets (which is infinite) as a strict retract of the subcategory of $\C/\two$ on “maps into $\two$ where each fiber has size 2”, which has only 3 objects since $\C$ had only one object of size 4. But this is impossible: an infinite category can’t be a strict retract of a finite one.


