Given a category, a skeleton is a subcategory that is equivalent to but has no “redundant” objects.
You can think of a skeleton as the most “economical” model for the category .
Definition
A skeleton of a category is a subcategory for which each object in is isomorphic to exactly one object in and the canonical inclusion functor
Every category has a skeleton.
This is because we can define equivalence classes on using isomorphism of objects (which defines an equivalence relation by this).
Then for each equivalence class choose a representative (using the Axiom of Choice and a few other intense details).
Using these representatives, take all the morphism from between those objects to ensure that is fully faithful looking at morphisms between objects in .
Examples
(the finite sets of natural numbers is a skeleton of (finite sets).
is a skeleton of
Equivalence using skeletons
Let be categories with skeletons .
Then and are equivalent if and only if and are isomorphic (i.e. equivalent with only identity natural isomorphisms).
Remark
This means that if you are only using skeletal categories (those that no two items are isomorphic to each other) then you can use a more naive notion of equivalence without quasi-inverses.
However, most (interesting) categories aren’t skeletal.
Proof (sketch)
Let be an equivalence of categories.
We aim to build an isomorphism (call it ) between and .
For each object pick an isomorphism .
The object is unique since is a skeleton.
Now for , let be the unique object in that is isomorphic to .
Next, we need to define what the (proposed) functor does to morphisms.
We do this using the maps we know we have coming from the equivalence and the isomorphism
Given a morphism in , define to be the composition
Since we built everything using a functor and isomorphisms is a functor.
We can now build an inverse functor that is strict (has no need for a quasi-inverse the objects will be identical, not simply isomorphic).
Given , let be the unique object of such that