Theorem: CategoryTheory.tensorLeftHomEquiv_tensor
File: Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean

tactic: dsimp [tensorLeftHomEquiv]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
X X' Y Y' Z Z' : C
inst✝ : ExactPairing Y Y'
f : X ⟶ Y ⊗ Z
g : X' ⟶ Z'
⊢ ↑(tensorLeftHomEquiv (X ⊗ X') Y Y' (Z ⊗ Z')).symm ((f ⊗ g) ≫ (α_ Y Z Z').hom) =
    (α_ Y' X X').inv ≫ (↑(tensorLeftHomEquiv X Y Y' Z).symm f ⊗ g)

tactic: simp only [id_tensor_comp]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
X X' Y Y' Z Z' : C
inst✝ : ExactPairing Y Y'
f : X ⟶ Y ⊗ Z
g : X' ⟶ Z'
⊢ (𝟙 Y' ⊗ (f ⊗ g) ≫ (α_ Y Z Z').hom) ≫ (α_ Y' Y (Z ⊗ Z')).inv ≫ (ε_ Y Y' ⊗ 𝟙 (Z ⊗ Z')) ≫ (λ_ (Z ⊗ Z')).hom =
    (α_ Y' X X').inv ≫ ((𝟙 Y' ⊗ f) ≫ (α_ Y' Y Z).inv ≫ (ε_ Y Y' ⊗ 𝟙 Z) ≫ (λ_ Z).hom ⊗ g)

tactic: simp only [associator_inv_conjugation]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
X X' Y Y' Z Z' : C
inst✝ : ExactPairing Y Y'
f : X ⟶ Y ⊗ Z
g : X' ⟶ Z'
⊢ ((𝟙 Y' ⊗ f ⊗ g) ≫ (𝟙 Y' ⊗ (α_ Y Z Z').hom)) ≫ (α_ Y' Y (Z ⊗ Z')).inv ≫ (ε_ Y Y' ⊗ 𝟙 (Z ⊗ Z')) ≫ (λ_ (Z ⊗ Z')).hom =
    (α_ Y' X X').inv ≫ ((𝟙 Y' ⊗ f) ≫ (α_ Y' Y Z).inv ≫ (ε_ Y Y' ⊗ 𝟙 Z) ≫ (λ_ Z).hom ⊗ g)

tactic: slice_lhs 2 2 => rw [← id_tensor_comp_tensor_id]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
X X' Y Y' Z Z' : C
inst✝ : ExactPairing Y Y'
f : X ⟶ Y ⊗ Z
g : X' ⟶ Z'
⊢ (((α_ Y' X X').inv ≫ ((𝟙 Y' ⊗ f) ⊗ g) ≫ (α_ Y' (Y ⊗ Z) Z').hom) ≫ (𝟙 Y' ⊗ (α_ Y Z Z').hom)) ≫
      (α_ Y' Y (Z ⊗ Z')).inv ≫ (ε_ Y Y' ⊗ 𝟙 (Z ⊗ Z')) ≫ (λ_ (Z ⊗ Z')).hom =
    (α_ Y' X X').inv ≫ ((𝟙 Y' ⊗ f) ≫ (α_ Y' Y Z).inv ≫ (ε_ Y Y' ⊗ 𝟙 Z) ≫ (λ_ Z).hom ⊗ g)

tactic: conv_rhs => rw [← id_tensor_comp_tensor_id, comp_tensor_id, comp_tensor_id]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
X X' Y Y' Z Z' : C
inst✝ : ExactPairing Y Y'
f : X ⟶ Y ⊗ Z
g : X' ⟶ Z'
⊢ (α_ Y' X X').inv ≫
      ((((((𝟙 (Y' ⊗ X) ⊗ g) ≫ ((𝟙 Y' ⊗ f) ⊗ 𝟙 Z')) ≫ (α_ Y' (Y ⊗ Z) Z').hom) ≫ (𝟙 Y' ⊗ (α_ Y Z Z').hom)) ≫
            (α_ Y' Y (Z ⊗ Z')).inv) ≫
          (ε_ Y Y' ⊗ 𝟙 (Z ⊗ Z'))) ≫
        (λ_ (Z ⊗ Z')).hom =
    (α_ Y' X X').inv ≫ ((𝟙 Y' ⊗ f) ≫ (α_ Y' Y Z).inv ≫ (ε_ Y Y' ⊗ 𝟙 Z) ≫ (λ_ Z).hom ⊗ g)

tactic: simp
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
X X' Y Y' Z Z' : C
inst✝ : ExactPairing Y Y'
f : X ⟶ Y ⊗ Z
g : X' ⟶ Z'
⊢ (α_ Y' X X').inv ≫
      ((((((𝟙 (Y' ⊗ X) ⊗ g) ≫ ((𝟙 Y' ⊗ f) ⊗ 𝟙 Z')) ≫ (α_ Y' (Y ⊗ Z) Z').hom) ≫ (𝟙 Y' ⊗ (α_ Y Z Z').hom)) ≫
            (α_ Y' Y (Z ⊗ Z')).inv) ≫
          (ε_ Y Y' ⊗ 𝟙 (Z ⊗ Z'))) ≫
        (λ_ (Z ⊗ Z')).hom =
    (α_ Y' X X').inv ≫
      (𝟙 (Y' ⊗ X) ⊗ g) ≫ ((𝟙 Y' ⊗ f) ⊗ 𝟙 Z') ≫ ((α_ Y' Y Z).inv ⊗ 𝟙 Z') ≫ ((ε_ Y Y' ⊗ 𝟙 Z) ≫ (λ_ Z).hom ⊗ 𝟙 Z')

tactic: coherence
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
X X' Y Y' Z Z' : C
inst✝ : ExactPairing Y Y'
f : X ⟶ Y ⊗ Z
g : X' ⟶ Z'
⊢ (𝟙 (Y' ⊗ X) ⊗ g) ≫
      (α_ Y' X Z').hom ≫
        (𝟙 Y' ⊗ f ⊗ 𝟙 Z') ≫
          (𝟙 Y' ⊗ (α_ Y Z Z').hom) ≫
            (α_ Y' Y (Z ⊗ Z')).inv ≫ (ε_ Y Y' ⊗ 𝟙 (Z ⊗ Z')) ≫ (α_ (𝟙_ C) Z Z').inv ≫ ((λ_ Z).hom ⊗ 𝟙 Z') =
    (𝟙 (Y' ⊗ X) ⊗ g) ≫
      (α_ Y' X Z').hom ≫
        (𝟙 Y' ⊗ f ⊗ 𝟙 Z') ≫
          (α_ Y' (Y ⊗ Z) Z').inv ≫
            ((α_ Y' Y Z).inv ⊗ 𝟙 Z') ≫
              (α_ (Y' ⊗ Y) Z Z').hom ≫ (ε_ Y Y' ⊗ 𝟙 (Z ⊗ Z')) ≫ (α_ (𝟙_ C) Z Z').inv ≫ ((λ_ Z).hom ⊗ 𝟙 Z')