Documentation

Mathlib.CategoryTheory.SingleObj

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 #

@[reducible, inline]

Abbreviation that allows writing CategoryTheory.SingleObj rather than Quiver.SingleObj.

Equations
    Instances For

      One and flip (*) become id and comp for morphisms of the single object category.

      Equations

        Monoid laws become category laws for the single object category.

        Equations
          theorem CategoryTheory.SingleObj.comp_as_mul (M : Type u) [Monoid M] {x y z : SingleObj M} (f : x y) (g : y z) :

          If M is finite and in universe zero, then SingleObj M is a FinCategory.

          Equations

            Groupoid structure on SingleObj M.

            Stacks Tag 0019

            Equations
              theorem CategoryTheory.SingleObj.inv_as_inv (G : Type u) [Group G] {x y : SingleObj G} (f : x y) :
              @[reducible, inline]

              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
                    Instances For
                      theorem CategoryTheory.SingleObj.toEnd_def (M : Type u) [Monoid M] (x : M) :
                      (toEnd M) x = x

                      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
                        Instances For
                          theorem CategoryTheory.SingleObj.mapHom_comp {M : Type u} [Monoid M] {N : Type v} [Monoid N] (f : M →* N) {P : Type w} [Monoid P] (g : N →* P) :
                          (mapHom M P) (g.comp f) = ((mapHom M N) f).comp ((mapHom N P) g)

                          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
                              @[simp]
                              theorem CategoryTheory.SingleObj.differenceFunctor_map {G : Type u} [Group G] {C : Type v} [Category.{w, v} C] (f : CG) {x y : C} (x✝ : x y) :
                              (differenceFunctor f).map x✝ = f y * (f x)⁻¹
                              @[simp]
                              theorem CategoryTheory.SingleObj.differenceFunctor_obj {G : Type u} [Group G] {C : Type v} [Category.{w, v} C] (f : CG) (x✝ : C) :
                              def CategoryTheory.SingleObj.functor {M : Type u} [Monoid M] {C : Type v} [Category.{w, v} C] {X : C} (f : M →* End 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
                                Instances For
                                  @[simp]
                                  theorem CategoryTheory.SingleObj.functor_obj {M : Type u} [Monoid M] {C : Type v} [Category.{w, v} C] {X : C} (f : M →* End X) (x✝ : SingleObj M) :
                                  (functor f).obj x✝ = X
                                  @[simp]
                                  theorem CategoryTheory.SingleObj.functor_map {M : Type u} [Monoid M] {C : Type v} [Category.{w, v} C] {X : C} (f : M →* End X) {X✝ Y✝ : SingleObj M} (a : X✝ Y✝) :
                                  (functor f).map a = f a
                                  def CategoryTheory.SingleObj.natTrans {M : Type u} [Monoid M] {C : Type v} [Category.{w, v} C] {F G : Functor (SingleObj M) C} (u : F.obj (star M) G.obj (star M)) (h : ∀ (a : M), CategoryStruct.comp (F.map a) u = CategoryStruct.comp u (G.map a)) :
                                  F G

                                  Construct a natural transformation between functors SingleObj M ⥤ C by giving a compatible morphism SingleObj.star M.

                                  Equations
                                    Instances For
                                      @[simp]
                                      theorem CategoryTheory.SingleObj.natTrans_app {M : Type u} [Monoid M] {C : Type v} [Category.{w, v} C] {F G : Functor (SingleObj M) C} (u : F.obj (star M) G.obj (star M)) (h : ∀ (a : M), CategoryStruct.comp (F.map a) u = CategoryStruct.comp u (G.map a)) (x✝ : SingleObj M) :
                                      (natTrans u h).app x✝ = u
                                      @[reducible, inline]

                                      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
                                        Instances For
                                          @[simp]
                                          theorem MonoidHom.comp_toFunctor {M : Type u} {N : Type v} [Monoid M] [Monoid N] (f : M →* N) {P : Type w} [Monoid P] (g : N →* P) :

                                          Reinterpret a monoid isomorphism f : M ≃* N as an equivalence SingleObj M ≌ SingleObj N.

                                          Equations
                                            Instances For
                                              @[simp]
                                              theorem MulEquiv.toSingleObjEquiv_inverse_map {M : Type u} {N : Type v} [Monoid M] [Monoid N] (e : M ≃* N) {X✝ Y✝ : CategoryTheory.SingleObj N} (a : N) :
                                              @[simp]
                                              theorem MulEquiv.toSingleObjEquiv_functor_map {M : Type u} {N : Type v} [Monoid M] [Monoid N] (e : M ≃* N) {X✝ Y✝ : CategoryTheory.SingleObj M} (a : M) :

                                              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
                                                  @[simp]
                                                  theorem Units.toAut_hom (M : Type u) [Monoid M] (x : Mˣ) :
                                                  @[simp]
                                                  theorem Units.toAut_inv (M : Type u) [Monoid M] (x : Mˣ) :

                                                  The fully faithful functor from MonCat to Cat.

                                                  Equations
                                                    Instances For