definition theorem example

A category is skeletal if isomorphic objects are equal; a skeleton of is a skeletal full subcategory containing one object from each isomorphism class. Every category is equivalent to its skeleton (choose a representative and an iso to it for each object), so “up to equivalence” one may replace by a skeleton.

Sources: 7 Sketches Example 1.49 (identifying equivalent elements of a preorder gives a partial order), §5.2 (the prop has objects : the skeleton of finite sets); DaoFP §11.5 (equality vs. isomorphism); Kittenlab Lecture 1 (FinSet(n) as canonical finite sets); CTfS Definitions 4.3.4.8, 4.3.4.10, Proposition 4.3.4.9, Exercises 4.3.4.5, 4.3.4.11

Docs: FinSets — Kittenlab Lecture 1

using Catlab
# Catlab's FinSet(n) already works in the skeleton of FinSet: objects are natural numbers
FinSet(3) == FinSet(3)                 # isomorphic finite sets are literally equal here
import Mathlib
open CategoryTheory
#check @CategoryTheory.Skeleton              -- the skeleton of a category
#check @CategoryTheory.skeletonEquivalence   -- Skeleton C ≌ C
#check @CategoryTheory.FintypeCat.Skeleton   -- ℕ with functions Fin m → Fin n