@@ -14,6 +14,7 @@ import category_theory.monoidal.rigid.of_equivalence
1414import category_theory.monoidal.rigid.functor_category
1515import category_theory.monoidal.linear
1616import category_theory.monoidal.braided
17+ import category_theory.monoidal.types
1718import category_theory.abelian.functor_category
1819import category_theory.abelian.transfer
1920import category_theory.conj
@@ -405,6 +406,13 @@ begin
405406 simp,
406407end
407408
409+ /-- Given an object `X` isomorphic to the tensor unit of `V`, `X` equipped with the trivial action
410+ is isomorphic to the tensor unit of `Action V G`. -/
411+ def tensor_unit_iso {X : V} (f : 𝟙_ V ≅ X) :
412+ 𝟙_ (Action V G) ≅ Action.mk X 1 :=
413+ Action.mk_iso f (λ g, by simp only [monoid_hom.one_apply, End.one_def, category.id_comp f.hom,
414+ tensor_unit_rho, category.comp_id])
415+
408416variables (V G)
409417
410418/-- When `V` is monoidal the forgetful functor `Action V G` to `V` is monoidal. -/
@@ -653,6 +661,47 @@ def of_mul_action_limit_cone {ι : Type v} (G : Type (max v u)) [monoid G]
653661 congr,
654662 end } }
655663
664+ /-- The `G`-set `G`, acting on itself by left multiplication. -/
665+ @[simps] def left_regular (G : Type u) [monoid G] : Action (Type u) (Mon.of G) :=
666+ Action.of_mul_action G G
667+
668+ /-- The `G`-set `Gⁿ`, acting on itself by left multiplication. -/
669+ @[simps] def diagonal (G : Type u) [monoid G] (n : ℕ) : Action (Type u) (Mon.of G) :=
670+ Action.of_mul_action G (fin n → G)
671+
672+ /-- We have `fin 1 → G ≅ G` as `G`-sets, with `G` acting by left multiplication. -/
673+ def diagonal_one_iso_left_regular (G : Type u) [monoid G] :
674+ diagonal G 1 ≅ left_regular G := Action.mk_iso (equiv.fun_unique _ _).to_iso (λ g, rfl)
675+
676+ /-- Given `X : Action (Type u) (Mon.of G)` for `G` a group, then `G × X` (with `G` acting as left
677+ multiplication on the first factor and by `X.ρ` on the second) is isomorphic as a `G`-set to
678+ `G × X` (with `G` acting as left multiplication on the first factor and trivially on the second).
679+ The isomorphism is given by `(g, x) ↦ (g, g⁻¹ • x)`. -/
680+ @[simps] def left_regular_tensor_iso (G : Type u) [group G]
681+ (X : Action (Type u) (Mon.of G)) :
682+ left_regular G ⊗ X ≅ left_regular G ⊗ Action.mk X.V 1 :=
683+ { hom :=
684+ { hom := λ g, ⟨g.1 , (X.ρ (g.1 ⁻¹ : G) g.2 : X.V)⟩,
685+ comm' := λ g, funext $ λ x, prod.ext rfl $
686+ show (X.ρ ((g * x.1 )⁻¹ : G) * X.ρ g) x.2 = _,
687+ by simpa only [mul_inv_rev, ←X.ρ.map_mul, inv_mul_cancel_right] },
688+ inv :=
689+ { hom := λ g, ⟨g.1 , X.ρ g.1 g.2 ⟩,
690+ comm' := λ g, funext $ λ x, prod.ext rfl $
691+ by simpa only [tensor_rho, types_comp_apply, tensor_apply, left_regular_ρ_apply, map_mul] },
692+ hom_inv_id' := hom.ext _ _ (funext $ λ x, prod.ext rfl $
693+ show (X.ρ x.1 * X.ρ (x.1 ⁻¹ : G)) x.2 = _,
694+ by simpa only [←X.ρ.map_mul, mul_inv_self, X.ρ.map_one]),
695+ inv_hom_id' := hom.ext _ _ (funext $ λ x, prod.ext rfl $
696+ show (X.ρ (x.1 ⁻¹ : G) * X.ρ x.1 ) _ = _,
697+ by simpa only [←X.ρ.map_mul, inv_mul_self, X.ρ.map_one]) }
698+
699+ /-- The natural isomorphism of `G`-sets `Gⁿ⁺¹ ≅ G × Gⁿ`, where `G` acts by left multiplication on
700+ each factor. -/
701+ @[simps] def diagonal_succ (G : Type u) [monoid G] (n : ℕ) :
702+ diagonal G (n + 1 ) ≅ left_regular G ⊗ diagonal G n :=
703+ mk_iso (equiv.pi_fin_succ_above_equiv _ 0 ).to_iso (λ g, rfl)
704+
656705end Action
657706
658707namespace category_theory.functor
@@ -689,10 +738,11 @@ namespace category_theory.monoidal_functor
689738
690739open Action
691740variables {V} {W : Type (u+1 )} [large_category W] [monoidal_category V] [monoidal_category W]
741+ (F : monoidal_functor V W) (G : Mon.{u})
692742
693743/-- A monoidal functor induces a monoidal functor between
694744the categories of `G`-actions within those categories. -/
695- @[simps] def map_Action (F : monoidal_functor V W) (G : Mon.{u}) :
745+ @[simps] def map_Action :
696746 monoidal_functor (Action V G) (Action W G) :=
697747{ ε :=
698748 { hom := F.ε,
@@ -709,4 +759,20 @@ the categories of `G`-actions within those categories. -/
709759 right_unitality' := by { intros, ext, dsimp, simp, dsimp, simp, },
710760 ..F.to_functor.map_Action G, }
711761
762+ @[simp] lemma map_Action_ε_inv_hom :
763+ (inv (F.map_Action G).ε).hom = inv F.ε :=
764+ begin
765+ ext,
766+ simp only [←F.map_Action_to_lax_monoidal_functor_ε_hom G, ←Action.comp_hom,
767+ is_iso.hom_inv_id, id_hom],
768+ end
769+
770+ @[simp] lemma map_Action_μ_inv_hom (X Y : Action V G) :
771+ (inv ((F.map_Action G).μ X Y)).hom = inv (F.μ X.V Y.V) :=
772+ begin
773+ ext,
774+ simpa only [←F.map_Action_to_lax_monoidal_functor_μ_hom G, ←Action.comp_hom,
775+ is_iso.hom_inv_id, id_hom],
776+ end
777+
712778end category_theory.monoidal_functor
0 commit comments