Skip to content

Commit

Permalink
chore(CategoryTheory/Monoidal): replace πŸ™ X βŠ— f with X ◁ f (#11223)
Browse files Browse the repository at this point in the history
Extracted from #6307
  • Loading branch information
yuma-mizuno authored and Louddy committed Apr 15, 2024
1 parent 78d5ec3 commit 0c64b69
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 25 deletions.
6 changes: 3 additions & 3 deletions Mathlib/Algebra/Category/FGModuleCat/Basic.lean
Expand Up @@ -269,13 +269,13 @@ theorem FGModuleCatEvaluation_apply (f : FGModuleCatDual K V) (x : V) :

private theorem coevaluation_evaluation :
letI V' : FGModuleCat K := FGModuleCatDual K V
(πŸ™ V' βŠ— FGModuleCatCoevaluation K V) ≫ (Ξ±_ V' V V').inv ≫ (FGModuleCatEvaluation K V βŠ— πŸ™ V') =
V' ◁ FGModuleCatCoevaluation K V ≫ (Ξ±_ V' V V').inv ≫ FGModuleCatEvaluation K V β–· V' =
(ρ_ V').hom ≫ (Ξ»_ V').inv := by
apply contractLeft_assoc_coevaluation K V

private theorem evaluation_coevaluation :
(FGModuleCatCoevaluation K V βŠ— πŸ™ V) ≫
(Ξ±_ V (FGModuleCatDual K V) V).hom ≫ (πŸ™ V βŠ— FGModuleCatEvaluation K V) =
FGModuleCatCoevaluation K V β–· V ≫
(Ξ±_ V (FGModuleCatDual K V) V).hom ≫ V ◁ FGModuleCatEvaluation K V =
(Ξ»_ V).hom ≫ (ρ_ V).inv := by
apply contractLeft_assoc_coevaluation' K V

Expand Down
24 changes: 12 additions & 12 deletions Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean
Expand Up @@ -136,9 +136,9 @@ variable (R)

private theorem pentagon_aux (W X Y Z : Type*) [AddCommMonoid W] [AddCommMonoid X]
[AddCommMonoid Y] [AddCommMonoid Z] [Module R W] [Module R X] [Module R Y] [Module R Z] :
((map (1 : W β†’β‚—[R] W) (assoc R X Y Z).toLinearMap).comp
(((assoc R X Y Z).toLinearMap.lTensor W).comp
(assoc R W (X βŠ—[R] Y) Z).toLinearMap).comp
(map ↑(assoc R W X Y) (1 : Z β†’β‚—[R] Z)) =
((assoc R W X Y).rTensor Z) =
(assoc R W X (Y βŠ—[R] Z)).toLinearMap.comp (assoc R (W βŠ—[R] X) Y Z).toLinearMap := by
apply TensorProduct.ext_fourfold
intro w x y z
Expand All @@ -156,8 +156,8 @@ theorem associator_naturality {X₁ Xβ‚‚ X₃ Y₁ Yβ‚‚ Y₃ : ModuleCat R} (f
#align Module.monoidal_category.associator_naturality ModuleCat.MonoidalCategory.associator_naturality

theorem pentagon (W X Y Z : ModuleCat R) :
tensorHom (associator W X Y).hom (πŸ™ Z) ≫
(associator W (tensorObj X Y) Z).hom ≫ tensorHom (πŸ™ W) (associator X Y Z).hom =
whiskerRight (associator W X Y).hom Z ≫
(associator W (tensorObj X Y) Z).hom ≫ whiskerLeft W (associator X Y Z).hom =
(associator (tensorObj W X) Y Z).hom ≫ (associator W X (tensorObj Y Z)).hom := by
convert pentagon_aux R W X Y Z using 1
#align Module.monoidal_category.pentagon ModuleCat.MonoidalCategory.pentagon
Expand Down Expand Up @@ -288,30 +288,30 @@ instance : MonoidalPreadditive (ModuleCat.{u} R) := by
simp only [LinearMap.comprβ‚‚_apply, TensorProduct.mk_apply]
rw [LinearMap.zero_apply]
-- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
erw [MonoidalCategory.hom_apply]
erw [MonoidalCategory.whiskerLeft_apply]
rw [LinearMap.zero_apply, TensorProduct.tmul_zero]
Β· dsimp only [autoParam]; intros
refine' TensorProduct.ext (LinearMap.ext fun x => LinearMap.ext fun y => _)
simp only [LinearMap.comprβ‚‚_apply, TensorProduct.mk_apply]
rw [LinearMap.zero_apply]
-- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
erw [MonoidalCategory.hom_apply]
erw [MonoidalCategory.whiskerRight_apply]
rw [LinearMap.zero_apply, TensorProduct.zero_tmul]
Β· dsimp only [autoParam]; intros
refine' TensorProduct.ext (LinearMap.ext fun x => LinearMap.ext fun y => _)
simp only [LinearMap.comprβ‚‚_apply, TensorProduct.mk_apply]
rw [LinearMap.add_apply]
-- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
erw [MonoidalCategory.hom_apply, MonoidalCategory.hom_apply]
erw [MonoidalCategory.hom_apply]
erw [MonoidalCategory.whiskerLeft_apply, MonoidalCategory.whiskerLeft_apply]
erw [MonoidalCategory.whiskerLeft_apply]
rw [LinearMap.add_apply, TensorProduct.tmul_add]
Β· dsimp only [autoParam]; intros
refine' TensorProduct.ext (LinearMap.ext fun x => LinearMap.ext fun y => _)
simp only [LinearMap.comprβ‚‚_apply, TensorProduct.mk_apply]
rw [LinearMap.add_apply]
-- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
erw [MonoidalCategory.hom_apply, MonoidalCategory.hom_apply]
erw [MonoidalCategory.hom_apply]
erw [MonoidalCategory.whiskerRight_apply, MonoidalCategory.whiskerRight_apply]
erw [MonoidalCategory.whiskerRight_apply]
rw [LinearMap.add_apply, TensorProduct.add_tmul]

-- Porting note: simp wasn't firing but rw was, annoying
Expand All @@ -322,14 +322,14 @@ instance : MonoidalLinear R (ModuleCat.{u} R) := by
simp only [LinearMap.comprβ‚‚_apply, TensorProduct.mk_apply]
rw [LinearMap.smul_apply]
-- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
erw [MonoidalCategory.hom_apply, MonoidalCategory.hom_apply]
erw [MonoidalCategory.whiskerLeft_apply, MonoidalCategory.whiskerLeft_apply]
rw [LinearMap.smul_apply, TensorProduct.tmul_smul]
Β· dsimp only [autoParam]; intros
refine' TensorProduct.ext (LinearMap.ext fun x => LinearMap.ext fun y => _)
simp only [LinearMap.comprβ‚‚_apply, TensorProduct.mk_apply]
rw [LinearMap.smul_apply]
-- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
erw [MonoidalCategory.hom_apply, MonoidalCategory.hom_apply]
erw [MonoidalCategory.whiskerRight_apply, MonoidalCategory.whiskerRight_apply]
rw [LinearMap.smul_apply, TensorProduct.smul_tmul, TensorProduct.tmul_smul]

end ModuleCat
4 changes: 2 additions & 2 deletions Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean
Expand Up @@ -54,7 +54,7 @@ theorem braiding_naturality_right (X : ModuleCat R) {Y Z : ModuleCat R} (f : Y
@[simp]
theorem hexagon_forward (X Y Z : ModuleCat.{u} R) :
(Ξ±_ X Y Z).hom ≫ (braiding X _).hom ≫ (Ξ±_ Y Z X).hom =
((braiding X Y).hom βŠ— πŸ™ Z) ≫ (Ξ±_ Y X Z).hom ≫ (πŸ™ Y βŠ— (braiding X Z).hom) := by
(braiding X Y).hom β–· Z ≫ (Ξ±_ Y X Z).hom ≫ Y ◁ (braiding X Z).hom := by
apply TensorProduct.ext_threefold
intro x y z
rfl
Expand All @@ -64,7 +64,7 @@ set_option linter.uppercaseLean3 false in
@[simp]
theorem hexagon_reverse (X Y Z : ModuleCat.{u} R) :
(Ξ±_ X Y Z).inv ≫ (braiding _ Z).hom ≫ (Ξ±_ Z X Y).inv =
(πŸ™ X βŠ— (Y.braiding Z).hom) ≫ (Ξ±_ X Z Y).inv ≫ ((X.braiding Z).hom βŠ— πŸ™ Y) := by
X ◁ (Y.braiding Z).hom ≫ (Ξ±_ X Z Y).inv ≫ (X.braiding Z).hom β–· Y := by
apply (cancel_epi (Ξ±_ X Y Z).hom).1
apply TensorProduct.ext_threefold
intro x y z
Expand Down
2 changes: 0 additions & 2 deletions Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean
Expand Up @@ -291,7 +291,6 @@ theorem braiding_leftUnitor_auxβ‚‚ (X : C) :
by (slice_lhs 2 3 => rw [← braiding_naturality_right]); simp only [assoc]
_ = (Ξ±_ _ _ _).hom ≫ (_ ◁ (Ξ»_ _).hom) := by rw [Iso.hom_inv_id, comp_id]
_ = (ρ_ X).hom β–· πŸ™_ C := by rw [triangle]

#align category_theory.braiding_left_unitor_auxβ‚‚ CategoryTheory.braiding_leftUnitor_auxβ‚‚

@[reassoc]
Expand Down Expand Up @@ -324,7 +323,6 @@ theorem braiding_rightUnitor_auxβ‚‚ (X : C) :
by (slice_lhs 2 3 => rw [← braiding_naturality_left]); simp only [assoc]
_ = (Ξ±_ _ _ _).inv ≫ ((ρ_ _).hom β–· _) := by rw [Iso.hom_inv_id, comp_id]
_ = πŸ™_ C ◁ (Ξ»_ X).hom := by rw [triangle_assoc_comp_right]

#align category_theory.braiding_right_unitor_auxβ‚‚ CategoryTheory.braiding_rightUnitor_auxβ‚‚

@[reassoc]
Expand Down
2 changes: 1 addition & 1 deletion Mathlib/CategoryTheory/Monoidal/Preadditive.lean
Expand Up @@ -202,7 +202,7 @@ theorem leftDistributor_assoc {J : Type} [Fintype J] (X Y : C) (f : J β†’ C) :
simp_rw [← id_tensorHom]
simp only [← id_tensor_comp, biproduct.ΞΉ_Ο€]
simp only [id_tensor_comp, tensor_dite, comp_dite]
simp [id_tensorHom]
simp
#align category_theory.left_distributor_assoc CategoryTheory.leftDistributor_assoc

/-- The isomorphism showing how tensor product on the right distributes over direct sums. -/
Expand Down
3 changes: 2 additions & 1 deletion Mathlib/Tactic/CategoryTheory/Coherence.lean
Expand Up @@ -262,7 +262,8 @@ elab_rules : tactic
MonoidalCategory.whiskerRight_tensor, MonoidalCategory.whiskerRight_id,
MonoidalCategory.whiskerLeft_comp, MonoidalCategory.whiskerLeft_id,
MonoidalCategory.comp_whiskerRight, MonoidalCategory.id_whiskerRight,
MonoidalCategory.whisker_assoc];
MonoidalCategory.whisker_assoc,
MonoidalCategory.id_tensorHom, MonoidalCategory.tensorHom_id];
-- I'm not sure if `tensorHom` should be expanded.
try simp only [MonoidalCategory.tensorHom_def]
))
Expand Down
8 changes: 4 additions & 4 deletions Mathlib/Tactic/CategoryTheory/MonoidalComp.lean
Expand Up @@ -90,22 +90,22 @@ instance refl (X : C) : MonoidalCoherence X X := βŸ¨πŸ™ _⟩
@[simps]
instance whiskerLeft (X Y Z : C) [MonoidalCoherence Y Z] :
MonoidalCoherence (X βŠ— Y) (X βŠ— Z) :=
βŸ¨πŸ™ X βŠ— βŠ—πŸ™βŸ©
⟨X ◁ βŠ—πŸ™βŸ©

@[simps]
instance whiskerRight (X Y Z : C) [MonoidalCoherence X Y] :
MonoidalCoherence (X βŠ— Z) (Y βŠ— Z) :=
βŸ¨βŠ—πŸ™ βŠ— πŸ™ Z⟩
βŸ¨βŠ—πŸ™ β–· Z⟩

@[simps]
instance tensor_right (X Y : C) [MonoidalCoherence (πŸ™_ C) Y] :
MonoidalCoherence X (X βŠ— Y) :=
⟨(ρ_ X).inv ≫ (πŸ™ X βŠ— βŠ—πŸ™)⟩
⟨(ρ_ X).inv ≫ X ◁ βŠ—πŸ™βŸ©

@[simps]
instance tensor_right' (X Y : C) [MonoidalCoherence Y (πŸ™_ C)] :
MonoidalCoherence (X βŠ— Y) X :=
⟨(πŸ™ X βŠ— βŠ—πŸ™) ≫ (ρ_ X).hom⟩
⟨X ◁ βŠ—πŸ™ ≫ (ρ_ X).hom⟩

@[simps]
instance left (X Y : C) [MonoidalCoherence X Y] :
Expand Down

0 comments on commit 0c64b69

Please sign in to comment.