If is a Category, a subcategory consists of a subset of objects and, for each , a subset such that all identities are in and composites of morphisms in are in . is wide if and full if for all ; the only wide full subcategory is itself.
Sources: Kittenlab Lecture 5; DaoFP §9.5 (full subcategory on a weakly terminal set); 7 Sketches Example 3.74 (abelian groups in groups); CTfS Example 4.1.1.7, Definition 4.6.3.1, Example 4.6.3.2, Remark 4.6.3.3, Example 4.6.3.4
Subtlety (Kittenlab). is a full subcategory of — but a preorder-as-(set, relation) is not literally a thin category; there is only an injective Functor into . So the categorical notion of subobject is generalized: a subcategory of is any category with an injective (faithful, injective-on-objects) functor into , and “we should not distinguish between isomorphic objects”. Everyone then follows convention and ignores the pedantry. Compare Subobject and Monomorphism.
Full subcategories (CTfS Definition 4.6.3.1): given a set of objects of , keep all morphisms between them. CTfS’s list: finite sets in sets, the sets in finite sets, the linear orders in finite linear orders (), groups in monoids, monoids in categories, sets in graphs (as discrete graphs), partial and linear orders in preorders, discrete and indiscrete categories in . A subcategory is just an injective-on-objects-and-arrows functor, full iff the functor is full (Full and Faithful Functor); the full subcategory on is even a fiber product of categories (CTfS Example 4.6.3.4). Being full is a real choice: for preorders with all joins, the full subcategory of and the (non-full) subcategory of join-preserving maps are both reasonable (CTfS Example 4.1.1.7).
Examples. (full); (full); (full, with a left adjoint — a reflective subcategory); injections form a wide non-full subcategory of ; the Yoneda Embedding exhibits as a full subcategory of presheaves (representables).
#check CategoryTheory.FullSubcategory -- FullSubcategory (Z : C → Prop)
#check CategoryTheory.InducedCategory -- induced category along a function
#check CategoryTheory.Functor.Faithful
#check CategoryTheory.Functor.Full