Theorem: CategoryTheory.tensorMonoidal_toLaxMonoidalFunctor_ε
File: Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean

Proof steps:
state_before: C : Type u₁
inst✝⁸ : Category.{v₁, u₁} C
inst✝⁷ : MonoidalCategory C
inst✝⁶ : BraidedCategory C
D : Type u₂
inst✝⁵ : Category.{v₂, u₂} D
inst✝⁴ : MonoidalCategory D
inst✝³ : BraidedCategory D
E : Type u₃
inst✝² : Category.{v₃, u₃} E
inst✝¹ : MonoidalCategory E
inst✝ : BraidedCategory E
X✝ Y✝ : C × C
f : X✝ ⟶ Y✝
Z : C × C
⊢ __src✝.map f ▷ __src✝.obj Z ≫ tensor_μ C Y✝ Z = tensor_μ C X✝ Z ≫ __src✝.map (f ▷ Z)
state_after: no goals
tactic: simpa using tensor_μ_natural_left C f.1 f.2 Z.1 Z.2
state_before: C : Type u₁
inst✝⁸ : Category.{v₁, u₁} C
inst✝⁷ : MonoidalCategory C
inst✝⁶ : BraidedCategory C
D : Type u₂
inst✝⁵ : Category.{v₂, u₂} D
inst✝⁴ : MonoidalCategory D
inst✝³ : BraidedCategory D
E : Type u₃
inst✝² : Category.{v₃, u₃} E
inst✝¹ : MonoidalCategory E
inst✝ : BraidedCategory E
X✝ Y✝ Z : C × C
f : X✝ ⟶ Y✝
⊢ __src✝.obj Z ◁ __src✝.map f ≫ tensor_μ C Z Y✝ = tensor_μ C Z X✝ ≫ __src✝.map (Z ◁ f)
state_after: no goals
tactic: simpa using tensor_μ_natural_right C Z.1 Z.2 f.1 f.2
state_before: C : Type u₁
inst✝⁸ : Category.{v₁, u₁} C
inst✝⁷ : MonoidalCategory C
inst✝⁶ : BraidedCategory C
D : Type u₂
inst✝⁵ : Category.{v₂, u₂} D
inst✝⁴ : MonoidalCategory D
inst✝³ : BraidedCategory D
E : Type u₃
inst✝² : Category.{v₃, u₃} E
inst✝¹ : MonoidalCategory E
inst✝ : BraidedCategory E
X Y Z : C × C
⊢ tensor_μ C X Y ▷ __src✝.obj Z ≫ tensor_μ C (X ⊗ Y) Z ≫ __src✝.map (α_ X Y Z).hom =
    (α_ (__src✝.obj X) (__src✝.obj Y) (__src✝.obj Z)).hom ≫ __src✝.obj X ◁ tensor_μ C Y Z ≫ tensor_μ C X (Y ⊗ Z)
state_after: no goals
tactic: simpa using tensor_associativity C X.1 X.2 Y.1 Y.2 Z.1 Z.2
state_before: C : Type u₁
inst✝⁸ : Category.{v₁, u₁} C
inst✝⁷ : MonoidalCategory C
inst✝⁶ : BraidedCategory C
D : Type u₂
inst✝⁵ : Category.{v₂, u₂} D
inst✝⁴ : MonoidalCategory D
inst✝³ : BraidedCategory D
E : Type u₃
inst✝² : Category.{v₃, u₃} E
inst✝¹ : MonoidalCategory E
inst✝ : BraidedCategory E
x✝ : C × C
X₁ X₂ : C
⊢ (λ_ (__src✝.obj (X₁, X₂))).hom =
    (λ_ (𝟙_ C)).inv ▷ __src✝.obj (X₁, X₂) ≫ tensor_μ C (𝟙_ (C × C)) (X₁, X₂) ≫ __src✝.map (λ_ (X₁, X₂)).hom
state_after: no goals
tactic: simpa using tensor_left_unitality C X₁ X₂
state_before: C : Type u₁
inst✝⁸ : Category.{v₁, u₁} C
inst✝⁷ : MonoidalCategory C
inst✝⁶ : BraidedCategory C
D : Type u₂
inst✝⁵ : Category.{v₂, u₂} D
inst✝⁴ : MonoidalCategory D
inst✝³ : BraidedCategory D
E : Type u₃
inst✝² : Category.{v₃, u₃} E
inst✝¹ : MonoidalCategory E
inst✝ : BraidedCategory E
x✝ : C × C
X₁ X₂ : C
⊢ (ρ_ (__src✝.obj (X₁, X₂))).hom =
    __src✝.obj (X₁, X₂) ◁ (λ_ (𝟙_ C)).inv ≫ tensor_μ C (X₁, X₂) (𝟙_ (C × C)) ≫ __src✝.map (ρ_ (X₁, X₂)).hom
state_after: no goals
tactic: simpa using tensor_right_unitality C X₁ X₂
state_before: C : Type u₁
inst✝⁸ : Category.{v₁, u₁} C
inst✝⁷ : MonoidalCategory C
inst✝⁶ : BraidedCategory C
D : Type u₂
inst✝⁵ : Category.{v₂, u₂} D
inst✝⁴ : MonoidalCategory D
inst✝³ : BraidedCategory D
E : Type u₃
inst✝² : Category.{v₃, u₃} E
inst✝¹ : MonoidalCategory E
inst✝ : BraidedCategory E
⊢ ∀ (X Y : C × C),
    IsIso
      ({ toFunctor := __src✝, ε := (λ_ (𝟙_ C)).inv, μ := tensor_μ C, μ_natural_left := ⋯, μ_natural_right := ⋯,
            associativity := ⋯, left_unitality := ⋯, right_unitality := ⋯ }.μ
        X Y)
state_after: C : Type u₁
inst✝⁸ : Category.{v₁, u₁} C
inst✝⁷ : MonoidalCategory C
inst✝⁶ : BraidedCategory C
D : Type u₂
inst✝⁵ : Category.{v₂, u₂} D
inst✝⁴ : MonoidalCategory D
inst✝³ : BraidedCategory D
E : Type u₃
inst✝² : Category.{v₃, u₃} E
inst✝¹ : MonoidalCategory E
inst✝ : BraidedCategory E
⊢ ∀ (X Y : C × C),
    IsIso
      ((α_ X.1 X.2 (Y.1 ⊗ Y.2)).hom ≫
        X.1 ◁ (α_ X.2 Y.1 Y.2).inv ≫
          X.1 ◁ (β_ X.2 Y.1).hom ▷ Y.2 ≫ X.1 ◁ (α_ Y.1 X.2 Y.2).hom ≫ (α_ X.1 Y.1 (X.2 ⊗ Y.2)).inv)
tactic: dsimp [tensor_μ]
state_before: C : Type u₁
inst✝⁸ : Category.{v₁, u₁} C
inst✝⁷ : MonoidalCategory C
inst✝⁶ : BraidedCategory C
D : Type u₂
inst✝⁵ : Category.{v₂, u₂} D
inst✝⁴ : MonoidalCategory D
inst✝³ : BraidedCategory D
E : Type u₃
inst✝² : Category.{v₃, u₃} E
inst✝¹ : MonoidalCategory E
inst✝ : BraidedCategory E
⊢ ∀ (X Y : C × C),
    IsIso
      ((α_ X.1 X.2 (Y.1 ⊗ Y.2)).hom ≫
        X.1 ◁ (α_ X.2 Y.1 Y.2).inv ≫
          X.1 ◁ (β_ X.2 Y.1).hom ▷ Y.2 ≫ X.1 ◁ (α_ Y.1 X.2 Y.2).hom ≫ (α_ X.1 Y.1 (X.2 ⊗ Y.2)).inv)
state_after: no goals
tactic: infer_instance