Documentation

Mathlib.RepresentationTheory.Action

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 ≌ (singleObj G ⥤ V), and construct the restriction functors res {G H : Mon} (f : G ⟶ H) : Action V H ⥤ Action V G.

structure Action (V : Type (u + 1)) [CategoryTheory.LargeCategory V] (G : MonCat) :
Type (u + 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.

Instances For
    @[simp]
    theorem Action.ρ_one {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} (A : Action V G) :
    @[simp]
    theorem Action.ρAut_apply_hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : GroupCat} (A : Action V (MonCat.of G)) (g : G) :
    (↑(Action.ρAut A) g).hom = A g
    @[simp]
    theorem Action.ρAut_apply_inv {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : GroupCat} (A : Action V (MonCat.of G)) (g : G) :
    (↑(Action.ρAut A) g).inv = A g⁻¹

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

    Instances For

      The trivial representation of a group.

      Instances For
        theorem Action.Hom.ext {V : Type (u + 1)} :
        ∀ {inst : CategoryTheory.LargeCategory V} {G : MonCat} {M N : Action V G} (x y : Action.Hom M N), x.hom = y.homx = y
        theorem Action.Hom.ext_iff {V : Type (u + 1)} :
        ∀ {inst : CategoryTheory.LargeCategory V} {G : MonCat} {M N : Action V G} (x y : Action.Hom M N), x = y x.hom = y.hom
        structure Action.Hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} (M : Action V G) (N : Action V G) :

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

        Instances For
          theorem Action.Hom.comm_assoc {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} {M : Action V G} {N : Action V G} (self : Action.Hom M N) (g : G) {Z : V} (h : N.V Z) :
          def Action.Hom.id {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} (M : Action V G) :

          The identity morphism on an Action V G.

          Instances For
            @[simp]
            theorem Action.Hom.comp_hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} {M : Action V G} {N : Action V G} {K : Action V G} (p : Action.Hom M N) (q : Action.Hom N K) :
            def Action.Hom.comp {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} {M : Action V G} {N : Action V G} {K : Action V G} (p : Action.Hom M N) (q : Action.Hom N K) :

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

            Instances For
              theorem Action.hom_ext {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} {M : Action V G} {N : Action V G} (φ₁ : M N) (φ₂ : M N) (h : φ₁.hom = φ₂.hom) :
              φ₁ = φ₂
              @[simp]
              theorem Action.comp_hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} {M : Action V G} {N : Action V G} {K : Action V G} (f : M N) (g : N K) :
              @[simp]
              theorem Action.mkIso_hom_hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} {M : Action V G} {N : Action V G} (f : M.V N.V) (comm : autoParam (∀ (g : G), CategoryTheory.CategoryStruct.comp (M g) f.hom = CategoryTheory.CategoryStruct.comp f.hom (N g)) _auto✝) :
              (Action.mkIso f).hom.hom = f.hom
              @[simp]
              theorem Action.mkIso_inv_hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} {M : Action V G} {N : Action V G} (f : M.V N.V) (comm : autoParam (∀ (g : G), CategoryTheory.CategoryStruct.comp (M g) f.hom = CategoryTheory.CategoryStruct.comp f.hom (N g)) _auto✝) :
              (Action.mkIso f).inv.hom = f.inv
              def Action.mkIso {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} {M : Action V G} {N : Action V G} (f : M.V N.V) (comm : autoParam (∀ (g : G), CategoryTheory.CategoryStruct.comp (M g) f.hom = CategoryTheory.CategoryStruct.comp f.hom (N g)) _auto✝) :
              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
                instance Action.isIso_hom_mk {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} {M : Action V G} {N : Action V G} (f : M.V N.V) [CategoryTheory.IsIso f] (w : ∀ (g : G), CategoryTheory.CategoryStruct.comp (M g) f = CategoryTheory.CategoryStruct.comp f (N g)) :
                @[simp]
                theorem Action.FunctorCategoryEquivalence.functor_obj_obj {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} (M : Action V G) :
                ∀ (x : CategoryTheory.SingleObj G), (Action.FunctorCategoryEquivalence.functor.obj M).obj x = M.V
                @[simp]
                theorem Action.FunctorCategoryEquivalence.functor_obj_map {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} (M : Action V G) :
                ∀ {X Y : CategoryTheory.SingleObj G} (g : X Y), (Action.FunctorCategoryEquivalence.functor.obj M).map g = M g
                @[simp]
                theorem Action.FunctorCategoryEquivalence.functor_map_app {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} :
                ∀ {X Y : Action V G} (f : X Y) (x : CategoryTheory.SingleObj G), (Action.FunctorCategoryEquivalence.functor.map f).app x = f.hom
                @[simp]
                theorem Action.FunctorCategoryEquivalence.inverse_obj_ρ_apply {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} (F : CategoryTheory.Functor (CategoryTheory.SingleObj G) V) (g : G) :
                (Action.FunctorCategoryEquivalence.inverse.obj F).ρ g = F.map g
                @[simp]
                theorem Action.FunctorCategoryEquivalence.inverse_obj_V {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} (F : CategoryTheory.Functor (CategoryTheory.SingleObj G) V) :
                (Action.FunctorCategoryEquivalence.inverse.obj F).V = F.obj PUnit.unit
                @[simp]
                theorem Action.FunctorCategoryEquivalence.inverse_map_hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} :
                ∀ {X Y : CategoryTheory.Functor (CategoryTheory.SingleObj G) V} (f : X Y), (Action.FunctorCategoryEquivalence.inverse.map f).hom = f.app PUnit.unit
                @[simp]
                theorem Action.FunctorCategoryEquivalence.unitIso_inv_app_hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} (X : Action V G) :
                (Action.FunctorCategoryEquivalence.unitIso.inv.app X).hom = CategoryTheory.CategoryStruct.id X.V
                @[simp]
                theorem Action.FunctorCategoryEquivalence.unitIso_hom_app_hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} (X : Action V G) :
                (Action.FunctorCategoryEquivalence.unitIso.hom.app X).hom = CategoryTheory.CategoryStruct.id X.V
                def Action.FunctorCategoryEquivalence.unitIso {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} :
                CategoryTheory.Functor.id (Action V G) CategoryTheory.Functor.comp Action.FunctorCategoryEquivalence.functor Action.FunctorCategoryEquivalence.inverse

                Auxilliary definition for functorCategoryEquivalence.

                Instances For
                  @[simp]
                  theorem Action.FunctorCategoryEquivalence.counitIso_hom_app_app {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} (X : CategoryTheory.Functor (CategoryTheory.SingleObj G) V) (X : CategoryTheory.SingleObj G) :
                  (Action.FunctorCategoryEquivalence.counitIso.hom.app X).app X = CategoryTheory.CategoryStruct.id (X.obj PUnit.unit)
                  @[simp]
                  theorem Action.FunctorCategoryEquivalence.counitIso_inv_app_app {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} (X : CategoryTheory.Functor (CategoryTheory.SingleObj G) V) (X : CategoryTheory.SingleObj G) :
                  (Action.FunctorCategoryEquivalence.counitIso.inv.app X).app X = CategoryTheory.CategoryStruct.id (X.obj PUnit.unit)
                  def Action.FunctorCategoryEquivalence.counitIso {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} :
                  CategoryTheory.Functor.comp Action.FunctorCategoryEquivalence.inverse Action.FunctorCategoryEquivalence.functor CategoryTheory.Functor.id (CategoryTheory.Functor (CategoryTheory.SingleObj G) V)

                  Auxilliary definition for functorCategoryEquivalence.

                  Instances For
                    @[simp]
                    theorem Action.functorCategoryEquivalence_functor (V : Type (u + 1)) [CategoryTheory.LargeCategory V] (G : MonCat) :
                    (Action.functorCategoryEquivalence V G).functor = Action.FunctorCategoryEquivalence.functor
                    @[simp]
                    theorem Action.functorCategoryEquivalence_counitIso (V : Type (u + 1)) [CategoryTheory.LargeCategory V] (G : MonCat) :
                    (Action.functorCategoryEquivalence V G).counitIso = Action.FunctorCategoryEquivalence.counitIso
                    @[simp]
                    theorem Action.functorCategoryEquivalence_inverse (V : Type (u + 1)) [CategoryTheory.LargeCategory V] (G : MonCat) :
                    (Action.functorCategoryEquivalence V G).inverse = Action.FunctorCategoryEquivalence.inverse
                    @[simp]
                    theorem Action.functorCategoryEquivalence_unitIso (V : Type (u + 1)) [CategoryTheory.LargeCategory V] (G : MonCat) :
                    (Action.functorCategoryEquivalence V G).unitIso = Action.FunctorCategoryEquivalence.unitIso

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

                    Instances For
                      @[simp]
                      theorem Action.forget_obj (V : Type (u + 1)) [CategoryTheory.LargeCategory V] (G : MonCat) (M : Action V G) :
                      (Action.forget V G).obj M = M.V
                      @[simp]
                      theorem Action.forget_map (V : Type (u + 1)) [CategoryTheory.LargeCategory V] (G : MonCat) :
                      ∀ {X Y : Action V G} (f : X Y), (Action.forget V G).map f = f.hom

                      (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
                        theorem Action.Iso.conj_ρ {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} {M : Action V G} {N : Action V G} (f : M N) (g : G) :
                        N g = ↑(CategoryTheory.Iso.conj ((Action.forget V G).mapIso f)) (M g)
                        @[simp]
                        theorem Action.zero_hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} [CategoryTheory.Limits.HasZeroMorphisms V] {X : Action V G} {Y : Action V G} :
                        0.hom = 0
                        @[simp]
                        theorem Action.neg_hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} [CategoryTheory.Preadditive V] {X : Action V G} {Y : Action V G} (f : X Y) :
                        (-f).hom = -f.hom
                        @[simp]
                        theorem Action.add_hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} [CategoryTheory.Preadditive V] {X : Action V G} {Y : Action V G} (f : X Y) (g : X Y) :
                        (f + g).hom = f.hom + g.hom
                        @[simp]
                        theorem Action.sum_hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} [CategoryTheory.Preadditive V] {X : Action V G} {Y : Action V G} {ι : Type u_1} (f : ι → (X Y)) (s : Finset ι) :
                        (Finset.sum s f).hom = Finset.sum s fun i => (f i).hom
                        @[simp]
                        theorem Action.smul_hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} [CategoryTheory.Preadditive V] {R : Type u_1} [Semiring R] [CategoryTheory.Linear R V] {X : Action V G} {Y : Action V G} (r : R) (f : X Y) :
                        (r f).hom = r f.hom

                        Auxilliary construction for the Abelian (Action V G) instance.

                        Instances For
                          @[simp]
                          theorem Action.tensorHom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} [CategoryTheory.MonoidalCategory V] {W : Action V G} {X : Action V G} {Y : Action V G} {Z : Action V G} (f : W X) (g : Y Z) :

                          Given an object X isomorphic to the tensor unit of V, X equipped with the trivial action is isomorphic to the tensor unit of Action V G.

                          Instances For

                            When V is monoidal the forgetful functor Action V G to V is monoidal.

                            Instances For
                              @[simp]
                              theorem Action.forgetBraided_map (V : Type (u + 1)) [CategoryTheory.LargeCategory V] (G : MonCat) [CategoryTheory.MonoidalCategory V] [CategoryTheory.BraidedCategory V] :
                              ∀ {X Y : Action V G} (f : X Y), (Action.forgetBraided V G).toMonoidalFunctor.toLaxMonoidalFunctor.toFunctor.map f = f.hom
                              @[simp]
                              theorem Action.forgetBraided_obj (V : Type (u + 1)) [CategoryTheory.LargeCategory V] (G : MonCat) [CategoryTheory.MonoidalCategory V] [CategoryTheory.BraidedCategory V] (M : Action V G) :
                              (Action.forgetBraided V G).toMonoidalFunctor.toLaxMonoidalFunctor.toFunctor.obj M = M.V

                              When V is braided the forgetful functor Action V G to V is braided.

                              Instances For

                                Upgrading the functor Action V G ⥤ (SingleObj G ⥤ V) to a monoidal functor.

                                Instances For
                                  @[simp]
                                  theorem Action.functorCategoryMonoidalEquivalence.functor_map (V : Type (u + 1)) [CategoryTheory.LargeCategory V] (G : MonCat) [CategoryTheory.MonoidalCategory V] {A : Action V G} {B : Action V G} (f : A B) :
                                  (Action.functorCategoryMonoidalEquivalence V G).toLaxMonoidalFunctor.toFunctor.map f = Action.FunctorCategoryEquivalence.functor.map f

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

                                  Instances For
                                    @[simp]
                                    theorem Action.res_obj_ρ (V : Type (u + 1)) [CategoryTheory.LargeCategory V] {G : MonCat} {H : MonCat} (f : G H) (M : Action V H) :
                                    @[simp]
                                    theorem Action.res_obj_V (V : Type (u + 1)) [CategoryTheory.LargeCategory V] {G : MonCat} {H : MonCat} (f : G H) (M : Action V H) :
                                    ((Action.res V f).obj M).V = M.V
                                    @[simp]
                                    theorem Action.res_map_hom (V : Type (u + 1)) [CategoryTheory.LargeCategory V] {G : MonCat} {H : MonCat} (f : G H) :
                                    ∀ {X Y : Action V H} (p : X Y), ((Action.res V f).map p).hom = p.hom
                                    def Action.res (V : Type (u + 1)) [CategoryTheory.LargeCategory V] {G : MonCat} {H : MonCat} (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]
                                      @[simp]

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

                                      Instances For
                                        @[simp]
                                        theorem Action.resComp_hom_app_hom (V : Type (u + 1)) [CategoryTheory.LargeCategory V] {G : MonCat} {H : MonCat} {K : MonCat} (f : G H) (g : H K) (X : Action V K) :
                                        @[simp]
                                        theorem Action.resComp_inv_app_hom (V : Type (u + 1)) [CategoryTheory.LargeCategory V] {G : MonCat} {H : MonCat} {K : MonCat} (f : G H) (g : H K) (X : Action V K) :

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

                                        Instances For
                                          def Action.ofMulAction (G : Type u) (H : Type u) [Monoid G] [MulAction G H] :

                                          Bundles a type H with a multiplicative action of G as an Action.

                                          Instances For
                                            @[simp]
                                            theorem Action.ofMulAction_apply {G : Type u} {H : Type u} [Monoid G] [MulAction G H] (g : G) (x : H) :
                                            (Action.ofMulAction G H).ρ g x = g x
                                            def Action.ofMulActionLimitCone {ι : Type v} (G : Type (max v u)) [Monoid G] (F : ιType (max v u)) [(i : ι) → MulAction G (F i)] :

                                            Given a family F of types with G-actions, this is the limit cone demonstrating that the product of F as types is a product in the category of G-sets.

                                            Instances For
                                              @[simp]
                                              theorem Action.leftRegular_V (G : Type u) [Monoid G] :
                                              @[simp]
                                              theorem Action.leftRegular_ρ_apply (G : Type u) [Monoid G] :
                                              ∀ (x : ↑(MonCat.of G)) (x_1 : G), (Action.leftRegular G).ρ x x_1 = x x_1

                                              The G-set G, acting on itself by left multiplication.

                                              Instances For
                                                @[simp]
                                                theorem Action.diagonal_V (G : Type u) [Monoid G] (n : ) :
                                                (Action.diagonal G n).V = (Fin nG)
                                                @[simp]
                                                theorem Action.diagonal_ρ_apply (G : Type u) [Monoid G] (n : ) :
                                                ∀ (x : ↑(MonCat.of G)) (x_1 : Fin nG) (a : Fin n), (Action.diagonal G n).ρ x x_1 a = (↑(MonCat.of G) (Fin nG)) (Fin nG) instHSMul x x_1 a
                                                def Action.diagonal (G : Type u) [Monoid G] (n : ) :

                                                The G-set Gⁿ, acting on itself by left multiplication.

                                                Instances For

                                                  We have fin 1 → G ≅ G as G-sets, with G acting by left multiplication.

                                                  Instances For
                                                    @[simp]
                                                    theorem Action.leftRegularTensorIso_inv_hom (G : Type u) [Group G] (X : Action (Type u) (MonCat.of G)) (g : (CategoryTheory.MonoidalCategory.tensorObj (Action.leftRegular G) { V := X.V, ρ := 1 }).V) :
                                                    Action.Hom.hom (Action.leftRegularTensorIso G X).inv g = (g.fst, X g.fst g.snd)

                                                    Given X : Action (Type u) (Mon.of G) for G a group, then G × X (with G acting as left multiplication on the first factor and by X.ρ on the second) is isomorphic as a G-set to G × X (with G acting as left multiplication on the first factor and trivially on the second). The isomorphism is given by (g, x) ↦ (g, g⁻¹ • x).

                                                    Instances For
                                                      @[simp]
                                                      theorem Action.diagonalSucc_hom_hom (G : Type u) [Monoid G] (n : ) :
                                                      ∀ (a : (Action.diagonal G (n + 1)).V), Action.Hom.hom (Action.diagonalSucc G n).hom a = ↑(Equiv.piFinSuccAboveEquiv (fun a => G) 0) a

                                                      The natural isomorphism of G-sets Gⁿ⁺¹ ≅ G × Gⁿ, where G acts by left multiplication on each factor.

                                                      Instances For
                                                        @[simp]
                                                        theorem CategoryTheory.Functor.mapAction_map_hom {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {W : Type (u + 1)} [CategoryTheory.LargeCategory W] (F : CategoryTheory.Functor V W) (G : MonCat) :
                                                        ∀ {X Y : Action V G} (f : X Y), ((CategoryTheory.Functor.mapAction F G).map f).hom = F.map f.hom
                                                        @[simp]
                                                        theorem CategoryTheory.Functor.mapAction_obj_ρ_apply {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {W : Type (u + 1)} [CategoryTheory.LargeCategory W] (F : CategoryTheory.Functor V W) (G : MonCat) (M : Action V G) (g : G) :
                                                        ((CategoryTheory.Functor.mapAction F G).obj M).ρ g = F.map (M g)

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

                                                        Instances For

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

                                                          Instances For