Theorem: Mon_.Mon_tensor_mul_assoc
File: Mathlib/CategoryTheory/Monoidal/Mon_.lean

tactic: rw [← Category.id_comp (𝟙 (M.X ⊗ N.X)), tensor_comp]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M N : Mon_ C
⊢ (tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul) ⊗ 𝟙 (M.X ⊗ N.X)) ≫
      tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul) =
    (α_ (M.X ⊗ N.X) (M.X ⊗ N.X) (M.X ⊗ N.X)).hom ≫
      (𝟙 (M.X ⊗ N.X) ⊗ tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)) ≫
        tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)

tactic: slice_lhs 2 3 => rw [← tensor_id, tensor_μ_natural]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M N : Mon_ C
⊢ ((tensor_μ C (M.X, N.X) (M.X, N.X) ⊗ 𝟙 (M.X ⊗ N.X)) ≫ ((M.mul ⊗ N.mul) ⊗ 𝟙 (M.X ⊗ N.X))) ≫
      tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul) =
    (α_ (M.X ⊗ N.X) (M.X ⊗ N.X) (M.X ⊗ N.X)).hom ≫
      (𝟙 (M.X ⊗ N.X) ≫ 𝟙 (M.X ⊗ N.X) ⊗ tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)) ≫
        tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)

tactic: slice_lhs 3 4 => rw [← tensor_comp, mul_assoc M, mul_assoc N, tensor_comp, tensor_comp]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M N : Mon_ C
⊢ (tensor_μ C (M.X, N.X) (M.X, N.X) ⊗ 𝟙 (M.X ⊗ N.X)) ≫
      (tensor_μ C (((M.X, N.X) ⊗ (M.X, N.X)).fst, ((M.X, N.X) ⊗ (M.X, N.X)).snd) (M.X, N.X) ≫
          ((M.mul ⊗ 𝟙 M.X) ⊗ N.mul ⊗ 𝟙 N.X)) ≫
        (M.mul ⊗ N.mul) =
    (α_ (M.X ⊗ N.X) (M.X ⊗ N.X) (M.X ⊗ N.X)).hom ≫
      (𝟙 (M.X ⊗ N.X) ≫ 𝟙 (M.X ⊗ N.X) ⊗ tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)) ≫
        tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)

tactic: slice_lhs 1 3 => dsimp; rw [tensor_associativity]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M N : Mon_ C
⊢ (tensor_μ C (M.X, N.X) (M.X, N.X) ⊗ 𝟙 (M.X ⊗ N.X)) ≫
      tensor_μ C (((M.X, N.X) ⊗ (M.X, N.X)).fst, ((M.X, N.X) ⊗ (M.X, N.X)).snd) (M.X, N.X) ≫
        ((α_ M.X M.X M.X).hom ⊗ (α_ N.X N.X N.X).hom) ≫ ((𝟙 M.X ⊗ M.mul) ⊗ 𝟙 N.X ⊗ N.mul) ≫ (M.mul ⊗ N.mul) =
    (α_ (M.X ⊗ N.X) (M.X ⊗ N.X) (M.X ⊗ N.X)).hom ≫
      (𝟙 (M.X ⊗ N.X) ≫ 𝟙 (M.X ⊗ N.X) ⊗ tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)) ≫
        tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)

tactic: slice_lhs 3 4 => rw [← tensor_μ_natural]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M N : Mon_ C
⊢ (((α_ (M.X ⊗ N.X) (M.X ⊗ N.X) (M.X ⊗ N.X)).hom ≫
          (𝟙 (M.X ⊗ N.X) ⊗ tensor_μ C (M.X, N.X) (M.X, N.X)) ≫ tensor_μ C (M.X, N.X) (M.X ⊗ M.X, N.X ⊗ N.X)) ≫
        ((𝟙 M.X ⊗ M.mul) ⊗ 𝟙 N.X ⊗ N.mul)) ≫
      (M.mul ⊗ N.mul) =
    (α_ (M.X ⊗ N.X) (M.X ⊗ N.X) (M.X ⊗ N.X)).hom ≫
      (𝟙 (M.X ⊗ N.X) ≫ 𝟙 (M.X ⊗ N.X) ⊗ tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)) ≫
        tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)

tactic: slice_lhs 2 3 => rw [← tensor_comp, tensor_id]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M N : Mon_ C
⊢ (α_ (M.X ⊗ N.X) (M.X ⊗ N.X) (M.X ⊗ N.X)).hom ≫
      (𝟙 (M.X ⊗ N.X) ⊗ tensor_μ C (M.X, N.X) (M.X, N.X)) ≫
        (((𝟙 M.X ⊗ 𝟙 N.X) ⊗ M.mul ⊗ N.mul) ≫ tensor_μ C (M.X, N.X) (M.X, N.X)) ≫ (M.mul ⊗ N.mul) =
    (α_ (M.X ⊗ N.X) (M.X ⊗ N.X) (M.X ⊗ N.X)).hom ≫
      (𝟙 (M.X ⊗ N.X) ≫ 𝟙 (M.X ⊗ N.X) ⊗ tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)) ≫
        tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)

tactic: simp only [Category.assoc]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M N : Mon_ C
⊢ (α_ (M.X ⊗ N.X) (M.X ⊗ N.X) (M.X ⊗ N.X)).hom ≫
      ((𝟙 (M.X ⊗ N.X) ≫ 𝟙 (M.X ⊗ N.X) ⊗ tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)) ≫
          tensor_μ C (M.X, N.X) (M.X, N.X)) ≫
        (M.mul ⊗ N.mul) =
    (α_ (M.X ⊗ N.X) (M.X ⊗ N.X) (M.X ⊗ N.X)).hom ≫
      (𝟙 (M.X ⊗ N.X) ≫ 𝟙 (M.X ⊗ N.X) ⊗ tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)) ≫
        tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul)