Documentation

Mathlib.CategoryTheory.Action.Basic

Action V G, the category of actions of a monoid G inside some category V. #

The prototypical example is V = ModuleCat R, where Action (ModuleCat R) G is the category of R-linear representations of G.

We check Action V G ≌ (CategoryTheory.SingleObj G ⥤ V), and construct the restriction functors res {G H} [Monoid G] [Monoid H] (f : G →* H) : Action V H ⥤ Action V G.

structure Action (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] (G : Type u_2) [Monoid G] :
Type (max (max u_1 u_2) v_1)

An Action V G represents a bundled action of the monoid G on an object of some category V.

As an example, when V = ModuleCat R, this is an R-linear representation of G, while when V = Type this is a G-action.

  • V : V

    The object this action acts on

  • The underlying monoid homomorphism of this action

Instances For

    When a group acts, we can lift the action to the group of automorphisms.

    Instances For
      @[simp]
      theorem Action.ρAut_apply_hom {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Group G] (A : Action V G) (g : G) :
      (A.ρAut g).hom = A.ρ g
      @[simp]
      theorem Action.ρAut_apply_inv {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Group G] (A : Action V G) (g : G) :
      (A.ρAut g).inv = A.ρ g⁻¹
      def Action.trivial {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] (G : Type u_2) [Monoid G] (X : V) :
      Action V G

      The action defined by sending every monoid element to the identity.

      Instances For
        @[simp]
        theorem Action.trivial_ρ {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] (G : Type u_2) [Monoid G] (X : V) :
        (trivial G X).ρ = 1
        @[simp]
        theorem Action.trivial_V {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] (G : Type u_2) [Monoid G] (X : V) :
        (trivial G X).V = X
        @[implicit_reducible]
        instance Action.inhabited' (G : Type u_2) [Monoid G] :
        Inhabited (Action (Type u_3) G)
        @[implicit_reducible]
        instance Action.instInhabitedAddCommGrpCat (G : Type u_2) [Monoid G] :
        Inhabited (Action AddCommGrpCat G)
        structure Action.Hom {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Monoid G] (M N : Action V G) :
        Type v_1

        A homomorphism of Action V Gs is a morphism between the underlying objects, commuting with the action of G.

        Instances For
          theorem Action.Hom.ext_iff {V : Type u_1} {inst✝ : CategoryTheory.Category.{v_1, u_1} V} {G : Type u_2} {inst✝¹ : Monoid G} {M N : Action V G} {x y : M.Hom N} :
          x = y x.hom = y.hom
          theorem Action.Hom.ext {V : Type u_1} {inst✝ : CategoryTheory.Category.{v_1, u_1} V} {G : Type u_2} {inst✝¹ : Monoid G} {M N : Action V G} {x y : M.Hom N} (hom : x.hom = y.hom) :
          x = y
          def Action.Hom.id {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Monoid G] (M : Action V G) :
          M.Hom M

          The identity morphism on an Action V G.

          Instances For
            @[implicit_reducible]
            instance Action.Hom.instInhabited {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Monoid G] (M : Action V G) :
            Inhabited (M.Hom M)
            def Action.Hom.comp {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Monoid G] {M N K : Action V G} (p : M.Hom N) (q : N.Hom K) :
            M.Hom K

            The composition of two Action V G homomorphisms is the composition of the underlying maps.

            Instances For
              @[simp]
              theorem Action.Hom.comp_hom {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Monoid G] {M N K : Action V G} (p : M.Hom N) (q : N.Hom K) :
              theorem Action.hom_injective {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Monoid G] {M N : Action V G} :
              Function.Injective Hom.hom
              theorem Action.hom_ext {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Monoid G] {M N : Action V G} (φ₁ φ₂ : M N) (h : φ₁.hom = φ₂.hom) :
              φ₁ = φ₂
              theorem Action.hom_ext_iff {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Monoid G] {M N : Action V G} {φ₁ φ₂ : M N} :
              φ₁ = φ₂ φ₁.hom = φ₂.hom
              def Action.mkIso {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Monoid G] {M N : Action V G} (f : M.V N.V) (comm : ∀ (g : G), CategoryTheory.CategoryStruct.comp (M.ρ g) f.hom = CategoryTheory.CategoryStruct.comp f.hom (N.ρ g) := by cat_disch) :
              M N

              Construct an isomorphism of G actions/representations from an isomorphism of the underlying objects, where the forward direction commutes with the group action.

              Instances For
                @[simp]
                theorem Action.mkIso_inv_hom {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Monoid G] {M N : Action V G} (f : M.V N.V) (comm : ∀ (g : G), CategoryTheory.CategoryStruct.comp (M.ρ g) f.hom = CategoryTheory.CategoryStruct.comp f.hom (N.ρ g) := by cat_disch) :
                (mkIso f comm).inv.hom = f.inv
                @[simp]
                theorem Action.mkIso_hom_hom {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Monoid G] {M N : Action V G} (f : M.V N.V) (comm : ∀ (g : G), CategoryTheory.CategoryStruct.comp (M.ρ g) f.hom = CategoryTheory.CategoryStruct.comp f.hom (N.ρ g) := by cat_disch) :
                (mkIso f comm).hom.hom = f.hom
                @[simp]
                theorem Action.FunctorCategoryEquivalence.functor_obj_map {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Monoid G] (M : Action V G) {X✝ Y✝ : CategoryTheory.SingleObj G} (g : X✝ Y✝) :
                (functor.obj M).map g = M.ρ g
                @[simp]
                theorem Action.FunctorCategoryEquivalence.functor_map_app {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Monoid G] {X✝ Y✝ : Action V G} (f : X✝ Y✝) (x✝ : CategoryTheory.SingleObj G) :
                (functor.map f).app x✝ = f.hom

                The category of actions of G in the category V is equivalent to the functor category SingleObj G ⥤ V.

                Instances For

                  (implementation) The forgetful functor from bundled actions to the underlying objects.

                  Use the CategoryTheory.forget API provided by the ConcreteCategory instance below, rather than using this directly.

                  Instances For
                    @[simp]
                    theorem Action.forget_map (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] (G : Type u_2) [Monoid G] {X✝ Y✝ : Action V G} (f : X✝ Y✝) :
                    (forget V G).map f = f.hom
                    @[simp]
                    theorem Action.forget_obj (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] (G : Type u_2) [Monoid G] (M : Action V G) :
                    (forget V G).obj M = M.V
                    @[reducible, inline]
                    abbrev Action.HomSubtype (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] (G : Type u_2) [Monoid G] {FV : VVType u_3} {CV : VType u_4} [(X Y : V) → FunLike (FV X Y) (CV X) (CV Y)] [CategoryTheory.ConcreteCategory V FV] (M N : Action V G) :
                    Type u_3

                    The type of V-morphisms that can be lifted back to morphisms in the category Action.

                    Instances For
                      @[implicit_reducible]
                      instance Action.instFunLikeHomSubtypeV (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] (G : Type u_2) [Monoid G] {FV : VVType u_3} {CV : VType u_4} [(X Y : V) → FunLike (FV X Y) (CV X) (CV Y)] [CategoryTheory.ConcreteCategory V FV] (M N : Action V G) :
                      FunLike (HomSubtype V G M N) (CV M.V) (CV N.V)
                      @[implicit_reducible]
                      instance Action.instConcreteCategoryHomSubtypeV (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] (G : Type u_2) [Monoid G] {FV : VVType u_3} {CV : VType u_4} [(X Y : V) → FunLike (FV X Y) (CV X) (CV Y)] [CategoryTheory.ConcreteCategory V FV] :
                      @[implicit_reducible]
                      instance Action.hasForgetToV (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] (G : Type u_2) [Monoid G] {FV : VVType u_3} {CV : VType u_4} [(X Y : V) → FunLike (FV X Y) (CV X) (CV Y)] [CategoryTheory.ConcreteCategory V FV] :

                      The forgetful functor is intertwined by functorCategoryEquivalence with evaluation at PUnit.star.

                      Instances For
                        theorem Action.Iso.conj_ρ {V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_2} [Monoid G] {M N : Action V G} (f : M N) (g : G) :
                        N.ρ g = ((forget V G).mapIso f).conj (M.ρ g)

                        Actions/representations of the trivial monoid are just objects in the ambient category.

                        Instances For
                          @[deprecated Action.actionPUnitEquivalence (since := "2026-02-08")]

                          Alias of Action.actionPUnitEquivalence.


                          Actions/representations of the trivial monoid are just objects in the ambient category.

                          Instances For
                            def Action.res (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} [Monoid G] [Monoid H] (f : G →* H) :

                            The "restriction" functor along a monoid homomorphism f : G →* H, taking actions of H to actions of G.

                            (This makes sense for any homomorphism, but the name is natural when f is a monomorphism.)

                            Instances For
                              @[simp]
                              theorem Action.res_obj_V (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} [Monoid G] [Monoid H] (f : G →* H) (M : Action V H) :
                              ((res V f).obj M).V = M.V
                              @[simp]
                              theorem Action.res_obj_ρ (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} [Monoid G] [Monoid H] (f : G →* H) (M : Action V H) :
                              ((res V f).obj M).ρ = M.ρ.comp f
                              @[simp]
                              theorem Action.res_map_hom (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} [Monoid G] [Monoid H] (f : G →* H) {X✝ Y✝ : Action V H} (p : X✝ Y✝) :
                              ((res V f).map p).hom = p.hom

                              The natural isomorphism from restriction along the identity homomorphism to the identity functor on Action V G.

                              Instances For
                                def Action.resComp (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} {K : Type u_5} [Monoid G] [Monoid H] [Monoid K] (f : G →* H) (g : H →* K) :
                                (res V g).comp (res V f) res V (g.comp f)

                                The natural isomorphism from the composition of restrictions along homomorphisms to the restriction along the composition of homomorphism.

                                Instances For
                                  @[simp]
                                  theorem Action.resComp_hom_app_hom (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} {K : Type u_5} [Monoid G] [Monoid H] [Monoid K] (f : G →* H) (g : H →* K) (X : Action V K) :
                                  @[simp]
                                  theorem Action.resComp_inv_app_hom (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} {K : Type u_5} [Monoid G] [Monoid H] [Monoid K] (f : G →* H) (g : H →* K) (X : Action V K) :
                                  def Action.resCongr (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} [Monoid G] [Monoid H] {f f' : G →* H} (h : f = f') :
                                  res V f res V f'

                                  Restricting scalars along equal maps is naturally isomorphic.

                                  Instances For
                                    @[simp]
                                    theorem Action.resCongr_hom (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} [Monoid G] [Monoid H] {f f' : G →* H} (h : f = f') :
                                    (resCongr V h).hom = { app := fun (X : Action V H) => (mkIso (CategoryTheory.Iso.refl X.V) ).hom, naturality := }
                                    @[simp]
                                    theorem Action.resCongr_inv (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} [Monoid G] [Monoid H] {f f' : G →* H} (h : f = f') :
                                    (resCongr V h).inv = { app := fun (X : Action V H) => (mkIso (CategoryTheory.Iso.refl X.V) ).inv, naturality := }
                                    def Action.resEquiv (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} [Monoid G] [Monoid H] (f : G ≃* H) :
                                    Action V H Action V G

                                    Restricting scalars along a monoid isomorphism induces an equivalence of categories.

                                    Instances For
                                      @[simp]
                                      theorem Action.resEquiv_inverse (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} [Monoid G] [Monoid H] (f : G ≃* H) :
                                      (resEquiv V f).inverse = res V f.symm
                                      @[simp]
                                      theorem Action.resEquiv_functor (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} [Monoid G] [Monoid H] (f : G ≃* H) :
                                      (resEquiv V f).functor = res V f
                                      instance Action.instFaithfulRes (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} [Monoid G] [Monoid H] (f : G →* H) :

                                      The functor from Action V H to Action V G induced by a monoid homomorphism f : G →* H is faithful.

                                      theorem Action.full_res (V : Type u_1) [CategoryTheory.Category.{v_1, u_1} V] {G : Type u_3} {H : Type u_4} [Monoid G] [Monoid H] (f : G →* H) (f_surj : Function.Surjective f) :
                                      (res V f).Full

                                      The functor from Action V H to Action V G induced by a monoid homomorphism f : G →* H is full if f is surjective.

                                      def CategoryTheory.Functor.mapAction {V : Type u_1} [Category.{v_1, u_1} V] {W : Type u_2} [Category.{v_2, u_2} W] (F : Functor V W) (G : Type u_3) [Monoid G] :
                                      Functor (Action V G) (Action W G)

                                      A functor between categories induces a functor between the categories of G-actions within those categories.

                                      Instances For
                                        @[simp]
                                        theorem CategoryTheory.Functor.mapAction_map_hom {V : Type u_1} [Category.{v_1, u_1} V] {W : Type u_2} [Category.{v_2, u_2} W] (F : Functor V W) (G : Type u_3) [Monoid G] {X✝ Y✝ : Action V G} (f : X✝ Y✝) :
                                        ((F.mapAction G).map f).hom = F.map f.hom
                                        @[simp]
                                        theorem CategoryTheory.Functor.mapAction_obj_V {V : Type u_1} [Category.{v_1, u_1} V] {W : Type u_2} [Category.{v_2, u_2} W] (F : Functor V W) (G : Type u_3) [Monoid G] (M : Action V G) :
                                        ((F.mapAction G).obj M).V = F.obj M.V
                                        @[simp]
                                        theorem CategoryTheory.Functor.mapAction_obj_ρ_apply {V : Type u_1} [Category.{v_1, u_1} V] {W : Type u_2} [Category.{v_2, u_2} W] (F : Functor V W) (G : Type u_3) [Monoid G] (M : Action V G) (g : G) :
                                        ((F.mapAction G).obj M).ρ g = F.map (M.ρ g)

                                        A fully faithful functor between categories induces a fully faithful functor between the categories of G-actions within those categories.

                                        Instances For
                                          def CategoryTheory.Functor.mapActionComp {V : Type u_1} [Category.{v_1, u_1} V] {W : Type u_2} [Category.{v_2, u_2} W] (G : Type u_3) [Monoid G] {T : Type u_4} [Category.{v_3, u_4} T] (F : Functor V W) (F' : Functor W T) :
                                          (F.comp F').mapAction G (F.mapAction G).comp (F'.mapAction G)

                                          Functor.mapAction is functorial in the functor.

                                          Instances For
                                            @[simp]
                                            theorem CategoryTheory.Functor.mapActionComp_inv {V : Type u_1} [Category.{v_1, u_1} V] {W : Type u_2} [Category.{v_2, u_2} W] (G : Type u_3) [Monoid G] {T : Type u_4} [Category.{v_3, u_4} T] (F : Functor V W) (F' : Functor W T) :
                                            (mapActionComp G F F').inv = { app := fun (X : Action V G) => CategoryStruct.id (((F.comp F').mapAction G).obj X), naturality := }
                                            @[simp]
                                            theorem CategoryTheory.Functor.mapActionComp_hom {V : Type u_1} [Category.{v_1, u_1} V] {W : Type u_2} [Category.{v_2, u_2} W] (G : Type u_3) [Monoid G] {T : Type u_4} [Category.{v_3, u_4} T] (F : Functor V W) (F' : Functor W T) :
                                            (mapActionComp G F F').hom = { app := fun (X : Action V G) => CategoryStruct.id (((F.comp F').mapAction G).obj X), naturality := }
                                            def CategoryTheory.Functor.mapActionCongr {V : Type u_1} [Category.{v_1, u_1} V] {W : Type u_2} [Category.{v_2, u_2} W] (G : Type u_3) [Monoid G] {F F' : Functor V W} (e : F F') :

                                            Functor.mapAction preserves isomorphisms of functors.

                                            Instances For
                                              @[simp]
                                              theorem CategoryTheory.Functor.mapActionCongr_hom {V : Type u_1} [Category.{v_1, u_1} V] {W : Type u_2} [Category.{v_2, u_2} W] (G : Type u_3) [Monoid G] {F F' : Functor V W} (e : F F') :
                                              (mapActionCongr G e).hom = { app := fun (X : Action V G) => (Action.mkIso (e.app X.V) ).hom, naturality := }
                                              @[simp]
                                              theorem CategoryTheory.Functor.mapActionCongr_inv {V : Type u_1} [Category.{v_1, u_1} V] {W : Type u_2} [Category.{v_2, u_2} W] (G : Type u_3) [Monoid G] {F F' : Functor V W} (e : F F') :
                                              (mapActionCongr G e).inv = { app := fun (X : Action V G) => (Action.mkIso (e.app X.V) ).inv, naturality := }
                                              def CategoryTheory.Equivalence.mapAction {V : Type u_2} {W : Type u_3} [Category.{v_2, u_2} V] [Category.{v_3, u_3} W] (G : Type u_4) [Monoid G] (E : V W) :
                                              Action V G Action W G

                                              An equivalence of categories induces an equivalence of the categories of G-actions within those categories.

                                              Instances For