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.comp
onEnd (SingleObj.star M)
isflip (*)
, not(*)
. This way multiplication onEnd
agrees with the multiplication onM
.By default, Lean puts instances into
CategoryTheory
namespace instead ofCategoryTheory.SingleObj
, so we give all names explicitly.
Abbreviation that allows writing CategoryTheory.SingleObj
rather than Quiver.SingleObj
.
Equations
Instances For
Monoid laws become category laws for the single object category.
Equations
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
.
See https://stacks.math.columbia.edu/tag/0019.
Equations
- CategoryTheory.SingleObj.groupoid G = CategoryTheory.Groupoid.mk (fun {X Y : CategoryTheory.SingleObj G} (x : X ⟶ Y) => x⁻¹) ⋯ ⋯
Abbreviation that allows writing CategoryTheory.SingleObj.star
rather than
Quiver.SingleObj.star
.
Equations
Instances For
The endomorphisms monoid of the only object in SingleObj M
is equivalent to the original
monoid M.
Equations
- CategoryTheory.SingleObj.toEnd M = let __src := Equiv.refl M; { toEquiv := __src, map_mul' := ⋯ }
Instances For
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.
See https://stacks.math.columbia.edu/tag/001F -- although we do not characterize when the functor is full or faithful.
Equations
- One or more equations did not get rendered due to their size.
Instances For
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)⁻¹
.
Equations
Instances For
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 := ⋯ }
Instances For
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 := ⋯ }
Instances For
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
Instances For
The units in a monoid are (multiplicatively) equivalent to
the automorphisms of star
when we think of the monoid as a single-object category.
Equations
Instances For
The fully faithful functor from MonCat
to Cat
.
Equations
- One or more equations did not get rendered due to their size.