Single-object category #
Single object category with a given monoid of endomorphisms. It is defined to facilitate transferring some definitions and lemmas (e.g., conjugacy etc.) from category theory to monoids and groups.
Main definitions #
Given a type M with a monoid structure, SingleObj M is Unit type with Category structure
such that End (SingleObj M).star is the monoid M. This can be extended to a functor
MonCat ⥤ Cat.
If M is a group, then SingleObj M is a groupoid.
An element x : M can be reinterpreted as an element of End (SingleObj.star M) using
SingleObj.toEnd.
Implementation notes #
categoryStruct.componEnd (SingleObj.star M)isflip (*), not(*). This way multiplication onEndagrees with the multiplication onM.By default, Lean puts instances into
CategoryTheorynamespace instead ofCategoryTheory.SingleObj, so we give all names explicitly.
Abbreviation that allows writing CategoryTheory.SingleObj rather than Quiver.SingleObj.
Equations
Monoid laws become category laws for the single object category.
Equations
- CategoryTheory.SingleObj.category M = { toCategoryStruct := CategoryTheory.SingleObj.categoryStruct M, id_comp := ⋯, comp_id := ⋯, assoc := ⋯ }
If M is finite and in universe zero, then SingleObj M is a FinCategory.
Equations
- CategoryTheory.SingleObj.finCategoryOfFintype M = { fintypeObj := inferInstance, fintypeHom := inferInstance }
Groupoid structure on SingleObj M.
Equations
- CategoryTheory.SingleObj.groupoid G = { toCategory := CategoryTheory.SingleObj.category G, inv := fun {X Y : CategoryTheory.SingleObj G} (x : X ⟶ Y) => x⁻¹, inv_comp := ⋯, comp_inv := ⋯ }
Abbreviation that allows writing CategoryTheory.SingleObj.star rather than
Quiver.SingleObj.star.
Equations
The endomorphisms monoid of the only object in SingleObj M is equivalent to the original
monoid M.
Equations
- CategoryTheory.SingleObj.toEnd M = { toEquiv := Equiv.refl M, map_mul' := ⋯ }
There is a 1-1 correspondence between monoid homomorphisms M → N and functors between the
corresponding single-object categories. It means that SingleObj is a fully faithful functor.
Stacks Tag 001F (We do not characterize when the functor is full or faithful.)
Equations
- One or more equations did not get rendered due to their size.
Given a function f : C → G from a category to a group, we get a functor
C ⥤ G sending any morphism x ⟶ y to f y * (f x)⁻¹.
A monoid homomorphism f: M → End X into the endomorphisms of an object X of a category C
induces a functor SingleObj M ⥤ C.
Equations
- CategoryTheory.SingleObj.functor f = { obj := fun (x : CategoryTheory.SingleObj M) => X, map := fun {X_1 Y : CategoryTheory.SingleObj M} (a : X_1 ⟶ Y) => f a, map_id := ⋯, map_comp := ⋯ }
Construct a natural transformation between functors SingleObj M ⥤ C by
giving a compatible morphism SingleObj.star M.
Equations
- CategoryTheory.SingleObj.natTrans u h = { app := fun (x : CategoryTheory.SingleObj M) => u, naturality := ⋯ }
Reinterpret a monoid homomorphism f : M → N as a functor (single_obj M) ⥤ (single_obj N).
See also CategoryTheory.SingleObj.mapHom for an equivalence between these types.
Equations
- f.toFunctor = (CategoryTheory.SingleObj.mapHom M N) f
The units in a monoid are (multiplicatively) equivalent to
the automorphisms of star when we think of the monoid as a single-object category.
The fully faithful functor from MonCat to Cat.
Equations
- One or more equations did not get rendered due to their size.