It is well known that the codomain functor $$cod:\mathcal{C}^\to\to\mathcal{C}$$ from the [arrow category](http://nlab-pages.s3.us-east-2.amazonaws.com/nlab/show/arrow+category) of a category $\mathcal{C}$ to itself is a [fibration](http://nlab-pages.s3.us-east-2.amazonaws.com/nlab/show/Grothendieck%20fibration) iff $\mathcal{C}$ has binary pullbacks.



> 
> Is there another functor that always exists for which promotion to a fibration is equivalent to $\mathcal{C}$ having a terminal object?
> 
> 
> 


I naively tried $!:\mathcal{C}\to{\bf 1}$ and $\{X\}:{\bf 1}\to\mathcal{C}$ without any luck.


This would be of interest for the obvious reason -- having binary pullbacks and a terminal object is equivalent to being finitely complete, so a functor answering the above question positively would allow for a 'fully fibrational' characterization of finite completeness. Further, the construction below yields a functor that always exists such that promotion to a fibration is equivalent to having all pullbacks -- this together with Alexanders answer below offers a fully fibrational characterization of completeness, as originally desired.




---


Thanks to Alexander and Andrej for pointing out in the comments that $cod$ as above being a fibration only yields binary pullbacks, not arbitrary ones.


**EDIT**: I was able to fix the following construction to actually yield a functor that always exists such that promoting this functor to a fibration is equivalent to $\mathcal{C}$ having all pullbacks. (The first correction worked; we want them all to be the same commutative square universally, so that all paths from the pullback object into the object we're pulling back over are equal.)



> 
> For a category $\mathcal{C}$, consider the category $Sink(\mathcal{C})$ whose objects are [sinks](http://nlab-pages.s3.us-east-2.amazonaws.com/nlab/show/sink) in $\mathcal{C}$ indexed over ordinals $\alpha\in{\bf O\_n}$ $$\{f\_i:X\_i\to X\}\_{i<\alpha}$$ and whose arrows are only defined from sinks indexed over $1$ to arbitrary sinks $$\hat h:\{f:A\to B\}\to\{g\_i:C\_i\to D\}\_{i<\alpha}$$ given by ordered pairs $$\hat h=\big(\{h\_i:A\to C\_i\}\_{i<\alpha},h:B\to D\big)$$ such that all the obvious squares commute, so $$h\circ f=g\_i\circ h\_i$$ for all $i<\alpha$. We have an obvious functor $$cod:Sink(\mathcal{C})\to\mathcal{C}$$ $$\{f\_i:X\_i\to X\}\_{i<\alpha}\mapsto X,$$ $$\hat h\mapsto h$$ and this functor is a fibration iff $\mathcal{C}$ has all pullbacks.
> 
> 
> 


We can identify $\mathcal{C}^\to$ with the subcategory of $Sink(\mathcal{C})$ indexed over $1$.



A fibration equivalent to having a terminal object
A category $C$ has a terminal object if and only if the canonical functor $C \star \mathbf{1} \to \mathbf{1} \star \mathbf{1} = \mathbf{2}$ is a fibration.


