What is the relationship (if any) between the process of taking a skeleton of a category, taking a fibered skeleton of a fibered category, and taking isomorphism classes of a category as objects of a new category? Which process do we use to move from the category of monomorphisms to the category of subobjects? Any references would be greatly appreciated.

This came up for me in the construction of the subobject fibration; we begin with a category $\mathcal{B}$ having pullbacks and observe that the codomain functor $cod:\mathcal{B}^\rightarrow\to\mathcal{B}$ is a fibration, then restrict successively to the subcategory of monos ${\sf Mono}(\mathcal{B})\subseteq\mathcal{B}^\rightarrow$ then the category of subobjects ${\sf Sub}(\mathcal{B})$. I'm currently trying to understand how the process of moving from ${\sf Mono}(\mathcal{B})$ to ${\sf Sub}(\mathcal{B})$ preserves the fact that the codomain functor is a fibration, and asked a question over at MSE to try and better understand the process.

It was my understanding that ${\sf Sub}(\mathcal{B})$ was a skeleton of ${\sf Mono}(\mathcal{B})$, however it wasn't clear how to extend the codomain fibration to a fibration on the skeleton (see link for details) if it wasn't already a specific skeleton containing the correct pullback projections, which seemed clunky.

Zhen Lin pointed out that we actually need to take the fibered skeleton of ${\sf Mono}(\mathcal{B})$ to get ${\sf Sub}(\mathcal{B})$ meaning we should only take skeletons of the fibers $cod({\sf Mono}(\mathcal{B}))_X$ and then reconstruct a new overcategory using these skeletons, and the details of this process seem simple enough to work out although a reference would be nice.

Upon reviewing the book I'm working through (Categorical Logic and Type Theory by Jacobs) I realized that the author doesn't seem to mention this process, and further seems to be taking a different route. Specifically, he says:

I tried to find a reference on the process of actually taking the isomorphism classes themselves of a category $\mathscr{C}$ to be the objects of a new category and came across this paper, however it also proves that the resulting category $[\mathscr{C}]$ is not equivalent to $\mathscr C$ in general so this process is different than taking skeletons.

Specifically, if we let $A$ be the class of objects of $\mathscr C$ and $B$ be the class of isomorphism classes of $A$, then let $\mathscr A$ and $\mathscr B$ be the discrete categories on $A$ and $B$ respectively, the author constructs $[\mathscr{C}]$ as the pushout in ${\bf cat}$ of the diagram below

and gives an explicit (somewhat cumbersome) description of the arrows. It's unclear to me which of the above processes is the correct one to use in this situation, although using the regular skeleton doesn't seem to work. Any assistance is appreciated.


1 Answer 1


As you say, for a general category it is not possible to form an equivalent category from its isomorphism classes. However, if the category is thin (i.e. a preorder) then this is possible, and gives an isomorphic result to taking a skeleton.

More generally, it is possible if the category contains no nonidentity automorphisms. If $C$ is a category with $C/\mathord\cong$ its set of isomorphism classes, then for $R,S\in C/\mathord\cong$ to define a hom-set we have to choose some $x\in R$ and $y\in S$ and take the homset $C(x,y)$. In order to define composition, this choice must be invariant under different choices of $x$ and $y$ up to unique isomorphism, which requires that any two objects in the same isomorphism class must be uniquely isomorphic. This is the same as every automorphism being the identity.

This construction can be done fiberwise to a fibration, as can taking skeleta, and the results are again isomorphic. I believe the only thing to be aware of is that fiberwise skeleta won't in general preserve splitness of a fibration (though this is not an issue for thin categories, of course).

Under this identification, Jacobs is describing the same process that Zhen did. By "a subobject" he means a specific object (not an isomorphism class) together with an isomorphism class of monomorphisms into it, which object of the fiberwise skeleton.

  • $\begingroup$ Thank you Mike, are you aware of any references for the 'fiberwise skeleton' construction? $\endgroup$
    – Alec Rhea
    Nov 18, 2020 at 22:31
  • $\begingroup$ Not for non-thin categories, no. Skeleta of non-thin categories aren't good for much, so people don't write a lot about them. $\endgroup$ Nov 19, 2020 at 2:56
  • $\begingroup$ I have a few questions about the details even for thin fibrations, specifically how do we reconstruct the over-category using the skeletalized fibers? Do we take the full subcategory of the overcategory consisting of the objects in the skeletons, including any non-vertical arrows? $\endgroup$
    – Alec Rhea
    Nov 19, 2020 at 5:48
  • $\begingroup$ Too late to edit, but I didn't mean to take the full subcategory and re-include the arrows we excluded when moving to the skeletons, only that we take the skeletons and the full subcategory 'outside the fibers' consisting of non-vertical arrows. $\endgroup$
    – Alec Rhea
    Nov 19, 2020 at 5:55
  • $\begingroup$ A skeleton is a full subcategory. So yes, you pick one object in each fiberwise isomorphism class and take the full subcategory of the total category on those objects. $\endgroup$ Nov 19, 2020 at 13:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.