Documentation

Mathlib.RepresentationTheory.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 ≌ (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.

    Equations
    • Action.ρAut A = { toOneHom := { toFun := fun (g : G) => { hom := A g, inv := A g⁻¹, hom_inv_id := , inv_hom_id := }, map_one' := }, map_mul' := }
    Instances For
      Equations

      The trivial representation of a group.

      Equations
      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.

          Equations
          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.

            Equations
            Instances For
              Equations
              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_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 comm).inv.hom = f.inv
              @[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 comm).hom.hom = f.hom
              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.

              Equations
              • Action.mkIso f comm = { hom := { hom := f.hom, comm := comm }, inv := { hom := f.inv, comm := }, hom_inv_id := , inv_hom_id := }
              Instances For
                instance Action.isIso_of_hom_isIso {V : Type (u + 1)} [CategoryTheory.LargeCategory V] {G : MonCat} {M : Action V G} {N : Action V G} (f : M N) [CategoryTheory.IsIso f.hom] :
                Equations
                • =
                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)) :
                CategoryTheory.IsIso { hom := f, comm := w }
                Equations
                • =
                @[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.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_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

                Auxiliary definition for functorCategoryEquivalence.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[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

                  Auxiliary definition for functorCategoryEquivalence.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[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
                    @[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
                    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

                    Auxiliary definition for functorCategoryEquivalence.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[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)
                      @[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)
                      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)

                      Auxiliary definition for functorCategoryEquivalence.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[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_functor (V : Type (u + 1)) [CategoryTheory.LargeCategory V] (G : MonCat) :
                        (Action.functorCategoryEquivalence V G).functor = Action.FunctorCategoryEquivalence.functor
                        @[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.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        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.

                          Equations
                          • Action.forget V G = { toPrefunctor := { obj := fun (M : Action V G) => M.V, map := fun {X Y : Action V G} (f : X Y) => f.hom }, map_id := , map_comp := }
                          Instances For
                            Equations

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

                            Equations
                            • One or more equations did not get rendered due to their size.
                            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)

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

                              Equations
                              • One or more equations did not get rendered due to their size.
                              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.)

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  @[simp]
                                  @[simp]

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

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  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.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    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.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For