Thin categories #

A thin category (also known as a sparse category) is a category with at most one morphism between each pair of objects. Examples include posets, but also some indexing categories (diagrams) for special shapes of (co)limits. To construct a category instance one only needs to specify the category_struct part, as the axioms hold for free. If C is thin, then the category of functors to C is also thin. Further, to show two objects are isomorphic in a thin category, it suffices only to give a morphism in each direction.

Construct a category instance from a category_struct, using the fact that hom spaces are subsingletons to prove the axioms.

  • CategoryTheory.thin_category =
instance CategoryTheory.functor_thin {C : Type u₁} [inst : CategoryTheory.Category C] {D : Type u₂} [inst : CategoryTheory.Category D] [inst : Quiver.IsThin C] :

If C is a thin category, then D ⥤ C is a thin category.

def CategoryTheory.iso_of_both_ways {C : Type u₁} [inst : CategoryTheory.Category C] [inst : Quiver.IsThin C] {X : C} {Y : C} (f : X Y) (g : Y X) :

To show X ≅ Y in a thin category, it suffices to just give any morphism in each direction.