Action V G
, the category of actions of a monoid G
inside some category V
. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
The prototypical example is V = Module R
,
where Action (Module R) G
is the category of R
-linear representations of G
.
We check Action V G ≌ (single_obj G ⥤ V)
,
and construct the restriction functors res {G H : Mon} (f : G ⟶ H) : Action V H ⥤ Action V G
.
- V : V
- ρ : G ⟶ Mon.of (category_theory.End self.V)
An Action V G
represents a bundled action of
the monoid G
on an object of some category V
.
As an example, when V = Module R
, this is an R
-linear representation of G
,
while when V = Type
this is a G
-action.
Instances for Action
- Action.has_sizeof_inst
- Action.inhabited'
- Action.inhabited
- Action.category_theory.category
- Action.category_theory.limits.has_finite_products
- Action.category_theory.limits.has_finite_limits
- Action.category_theory.limits.has_limits
- Action.category_theory.limits.has_colimits
- Action.category_theory.concrete_category
- Action.has_forget_to_V
- Action.category_theory.limits.has_zero_morphisms
- Action.category_theory.preadditive
- Action.category_theory.linear
- Action.category_theory.abelian
- Action.category_theory.monoidal_category
- Action.category_theory.braided_category
- Action.category_theory.symmetric_category
- Action.category_theory.monoidal_preadditive
- Action.category_theory.monoidal_linear
- Action.category_theory.right_rigid_category
- Action.category_theory.left_rigid_category
- Action.category_theory.rigid_category
- Rep.large_category
- Rep.concrete_category
- Rep.has_limits
- Rep.has_colimits
- Rep.preadditive
- Rep.abelian
- Rep.category_theory.linear
- Rep.has_coe_to_sort
- Rep.category_theory.monoidal_closed
- fdRep.large_category
- fdRep.concrete_category
- fdRep.preadditive
- fdRep.has_finite_limits
- fdRep.category_theory.linear
- fdRep.has_coe_to_sort
- fdRep.Rep.category_theory.has_forget₂
- fdRep.category_theory.limits.has_kernels
- fdRep.category_theory.right_rigid_category
- Rep.category_theory.enough_projectives
When a group acts, we can lift the action to the group of automorphisms.
The trivial representation of a group.
Equations
- Action.trivial G = {V := AddCommGroup.of punit punit.add_comm_group, ρ := 1}
Equations
- Action.inhabited G = {default := Action.trivial G}
A homomorphism of Action V G
s is a morphism between the underlying objects,
commuting with the action of G
.
Instances for Action.hom
- Action.hom.has_sizeof_inst
- Action.hom.inhabited
The identity morphism on a Action V G
.
Equations
- Action.hom.inhabited M = {default := Action.hom.id M}
Construct an isomorphism of G
actions/representations
from an isomorphism of the the underlying objects,
where the forward direction commutes with the group action.
Equations
- Action.mk_iso f comm = {hom := {hom := f.hom, comm' := comm}, inv := {hom := f.inv, comm' := _}, hom_inv_id' := _, inv_hom_id' := _}
Auxilliary definition for functor_category_equivalence
.
Equations
- Action.functor_category_equivalence.functor = {obj := λ (M : Action V G), {obj := λ (_x : category_theory.single_obj ↥G), M.V, map := λ (_x _x_1 : category_theory.single_obj ↥G) (g : _x ⟶ _x_1), ⇑(M.ρ) g, map_id' := _, map_comp' := _}, map := λ (M N : Action V G) (f : M ⟶ N), {app := λ (_x : category_theory.single_obj ↥G), f.hom, naturality' := _}, map_id' := _, map_comp' := _}
Auxilliary definition for functor_category_equivalence
.
Equations
- Action.functor_category_equivalence.inverse = {obj := λ (F : category_theory.single_obj ↥G ⥤ V), {V := F.obj punit.star, ρ := {to_fun := λ (g : ↥G), F.map g, map_one' := _, map_mul' := _}}, map := λ (M N : category_theory.single_obj ↥G ⥤ V) (f : M ⟶ N), {hom := f.app punit.star, comm' := _}, map_id' := _, map_comp' := _}
Auxilliary definition for functor_category_equivalence
.
Equations
- Action.functor_category_equivalence.unit_iso = category_theory.nat_iso.of_components (λ (M : Action V G), Action.mk_iso (category_theory.iso.refl ((𝟭 (Action V G)).obj M).V) _) Action.functor_category_equivalence.unit_iso._proof_2
Auxilliary definition for functor_category_equivalence
.
Equations
- Action.functor_category_equivalence.counit_iso = category_theory.nat_iso.of_components (λ (M : category_theory.single_obj ↥G ⥤ V), category_theory.nat_iso.of_components (λ (X : category_theory.single_obj ↥G), punit.cases_on X (category_theory.iso.refl (((Action.functor_category_equivalence.inverse ⋙ Action.functor_category_equivalence.functor).obj M).obj punit.star))) _) Action.functor_category_equivalence.counit_iso._proof_2
The category of actions of G
in the category V
is equivalent to the functor category single_obj G ⥤ V
.
Equations
- Action.functor_category_equivalence V G = {functor := Action.functor_category_equivalence.functor G, inverse := Action.functor_category_equivalence.inverse G, unit_iso := Action.functor_category_equivalence.unit_iso G, counit_iso := Action.functor_category_equivalence.counit_iso G, functor_unit_iso_comp' := _}
(implementation) The forgetful functor from bundled actions to the underlying objects.
Use the category_theory.forget
API provided by the concrete_category
instance below,
rather than using this directly.
Equations
Equations
- Action.has_forget_to_V V G = {forget₂ := Action.forget V G, forget_comp := _}
The forgetful functor is intertwined by functor_category_equivalence
with
evaluation at punit.star
.
Equations
Equations
- Action.category_theory.limits.has_zero_morphisms = {has_zero := λ (X Y : Action V G), {zero := {hom := 0, comm' := _}}, comp_zero' := _, zero_comp' := _}
Equations
- Action.category_theory.preadditive = {hom_group := λ (X Y : Action V G), {add := λ (f g : X ⟶ Y), {hom := f.hom + g.hom, comm' := _}, add_assoc := _, zero := {hom := 0, comm' := _}, zero_add := _, add_zero := _, nsmul := add_group.nsmul._default {hom := 0, comm' := _} (λ (f g : X ⟶ Y), {hom := f.hom + g.hom, comm' := _}) _ _, nsmul_zero' := _, nsmul_succ' := _, neg := λ (f : X ⟶ Y), {hom := -f.hom, comm' := _}, sub := add_group.sub._default (λ (f g : X ⟶ Y), {hom := f.hom + g.hom, comm' := _}) _ {hom := 0, comm' := _} _ _ (add_group.nsmul._default {hom := 0, comm' := _} (λ (f g : X ⟶ Y), {hom := f.hom + g.hom, comm' := _}) _ _) _ _ (λ (f : X ⟶ Y), {hom := -f.hom, comm' := _}), sub_eq_add_neg := _, zsmul := add_group.zsmul._default (λ (f g : X ⟶ Y), {hom := f.hom + g.hom, comm' := _}) _ {hom := 0, comm' := _} _ _ (add_group.nsmul._default {hom := 0, comm' := _} (λ (f g : X ⟶ Y), {hom := f.hom + g.hom, comm' := _}) _ _) _ _ (λ (f : X ⟶ Y), {hom := -f.hom, comm' := _}), zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _}, add_comp' := _, comp_add' := _}
Equations
- Action.category_theory.linear = {hom_module := λ (X Y : Action V G), {to_distrib_mul_action := {to_mul_action := {to_has_smul := {smul := λ (r : R) (f : X ⟶ Y), {hom := r • f.hom, comm' := _}}, one_smul := _, mul_smul := _}, smul_zero := _, smul_add := _}, add_smul := _, zero_smul := _}, smul_comp' := _, comp_smul' := _}
Auxilliary construction for the abelian (Action V G)
instance.
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
.
Equations
When V
is monoidal the forgetful functor Action V G
to V
is monoidal.
Equations
- Action.forget_monoidal V G = {to_lax_monoidal_functor := {to_functor := {obj := (Action.forget V G).obj, map := (Action.forget V G).map, map_id' := _, map_comp' := _}, ε := 𝟙 (𝟙_ V), μ := λ (X Y : Action V G), 𝟙 ({obj := (Action.forget V G).obj, map := (Action.forget V G).map, map_id' := _, map_comp' := _}.obj X ⊗ {obj := (Action.forget V G).obj, map := (Action.forget V G).map, map_id' := _, map_comp' := _}.obj Y), μ_natural' := _, associativity' := _, left_unitality' := _, right_unitality' := _}, ε_is_iso := _, μ_is_iso := _}
Equations
- Action.category_theory.braided_category V G = category_theory.braided_category_of_faithful (Action.forget_monoidal V G) (λ (X Y : Action V G), Action.mk_iso (β_ (((Action.functor_category_equivalence V G).symm.inverse.obj X).obj punit.star) (((Action.functor_category_equivalence V G).symm.inverse.obj Y).obj punit.star)) _) _
When V
is braided the forgetful functor Action V G
to V
is braided.
Equations
- Action.forget_braided V G = {to_monoidal_functor := {to_lax_monoidal_functor := (Action.forget_monoidal V G).to_lax_monoidal_functor, ε_is_iso := _, μ_is_iso := _}, braided' := _}
Upgrading the functor Action V G ⥤ (single_obj G ⥤ V)
to a monoidal functor.
If V
is right rigid, so is Action V G
.
If V
is left rigid, so is Action V G
.
If V
is rigid, so is Action V G
.
Actions/representations of the trivial group are just objects in the ambient category.
Equations
- Action.Action_punit_equivalence = {functor := Action.forget V (Mon.of punit), inverse := {obj := λ (X : V), {V := X, ρ := 1}, map := λ (X Y : V) (f : X ⟶ Y), {hom := f, comm' := _}, map_id' := _, map_comp' := _}, unit_iso := category_theory.nat_iso.of_components (λ (X : Action V (Mon.of punit)), Action.mk_iso (category_theory.iso.refl ((𝟭 (Action V (Mon.of punit))).obj X).V) _) Action.Action_punit_equivalence._proof_5, counit_iso := category_theory.nat_iso.of_components (λ (X : V), category_theory.iso.refl (({obj := λ (X : V), {V := X, ρ := 1}, map := λ (X Y : V) (f : X ⟶ Y), {hom := f, comm' := _}, map_id' := _, map_comp' := _} ⋙ Action.forget V (Mon.of punit)).obj X)) Action.Action_punit_equivalence._proof_6, functor_unit_iso_comp' := _}
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
Instances for Action.res
The natural isomorphism from restriction along the identity homomorphism to
the identity functor on Action V G
.
Equations
- Action.res_id V = category_theory.nat_iso.of_components (λ (M : Action V G), Action.mk_iso (category_theory.iso.refl ((Action.res V (𝟙 G)).obj M).V) _) _
The natural isomorphism from the composition of restrictions along homomorphisms to the restriction along the composition of homomorphism.
Equations
- Action.res_comp V f g = category_theory.nat_iso.of_components (λ (M : Action V K), Action.mk_iso (category_theory.iso.refl ((Action.res V g ⋙ Action.res V f).obj M).V) _) _
Bundles a type H
with a multiplicative action of G
as an Action
.
Equations
- Action.of_mul_action G H = {V := H, ρ := mul_action.to_End_hom _inst_4}
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.
Equations
- Action.of_mul_action_limit_cone G F = {cone := {X := Action.of_mul_action G (Π (i : ι), F i) (pi.mul_action G), π := {app := λ (i : category_theory.discrete ι), {hom := λ (x : (((category_theory.functor.const (category_theory.discrete ι)).obj (Action.of_mul_action G (Π (i : ι), F i))).obj i).V), x i.as, comm' := _}, naturality' := _}}, is_limit := {lift := λ (s : category_theory.limits.cone (category_theory.discrete.functor (λ (i : ι), Action.of_mul_action G (F i)))), {hom := λ (x : s.X.V) (i : ι), (s.π.app {as := i}).hom x, comm' := _}, fac' := _, uniq' := _}}
The G
-set G
, acting on itself by left multiplication.
Equations
The G
-set Gⁿ
, acting on itself by left multiplication.
Equations
- Action.diagonal G n = Action.of_mul_action G (fin n → G)
We have fin 1 → G ≅ G
as G
-sets, with G
acting by left multiplication.
Equations
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)
.
The natural isomorphism of G
-sets Gⁿ⁺¹ ≅ G × Gⁿ
, where G
acts by left multiplication on
each factor.
Equations
- Action.diagonal_succ G n = Action.mk_iso (equiv.pi_fin_succ_above_equiv (λ (ᾰ : fin (n + 1)), G) 0).to_iso _
A functor between categories induces a functor between
the categories of G
-actions within those categories.
Equations
Instances for category_theory.functor.map_Action
A monoidal functor induces a monoidal functor between
the categories of G
-actions within those categories.
Equations
- F.map_Action G = {to_lax_monoidal_functor := {to_functor := {obj := (F.to_lax_monoidal_functor.to_functor.map_Action G).obj, map := (F.to_lax_monoidal_functor.to_functor.map_Action G).map, map_id' := _, map_comp' := _}, ε := {hom := F.to_lax_monoidal_functor.ε, comm' := _}, μ := λ (X Y : Action V G), {hom := F.to_lax_monoidal_functor.μ X.V Y.V, comm' := _}, μ_natural' := _, associativity' := _, left_unitality' := _, right_unitality' := _}, ε_is_iso := _, μ_is_iso := _}