Theorem: CategoryTheory.Functor.closedUnit_app_app
File: Mathlib/CategoryTheory/Closed/FunctorCategory.lean

Proof steps:
state_before: D : Type u_1
C : Type u_2
inst✝³ : Groupoid D
inst✝² : Category.{?u.4103, u_2} C
inst✝¹ : MonoidalCategory C
inst✝ : MonoidalClosed C
F G : D ⥤ C
⊢ ∀ ⦃X Y : D⦄ (f : X ⟶ Y),
    ((𝟭 (D ⥤ C)).obj G).map f ≫ (fun X => (ihom.coev (F.obj X)).app (G.obj X)) Y =
      (fun X => (ihom.coev (F.obj X)).app (G.obj X)) X ≫ ((tensorLeft F ⋙ F.closedIhom).obj G).map f
state_after: D : Type u_1
C : Type u_2
inst✝³ : Groupoid D
inst✝² : Category.{?u.4103, u_2} C
inst✝¹ : MonoidalCategory C
inst✝ : MonoidalClosed C
F G : D ⥤ C
X Y : D
f : X ⟶ Y
⊢ ((𝟭 (D ⥤ C)).obj G).map f ≫ (fun X => (ihom.coev (F.obj X)).app (G.obj X)) Y =
    (fun X => (ihom.coev (F.obj X)).app (G.obj X)) X ≫ ((tensorLeft F ⋙ F.closedIhom).obj G).map f
tactic: intro X Y f
state_before: D : Type u_1
C : Type u_2
inst✝³ : Groupoid D
inst✝² : Category.{?u.4103, u_2} C
inst✝¹ : MonoidalCategory C
inst✝ : MonoidalClosed C
F G : D ⥤ C
X Y : D
f : X ⟶ Y
⊢ ((𝟭 (D ⥤ C)).obj G).map f ≫ (fun X => (ihom.coev (F.obj X)).app (G.obj X)) Y =
    (fun X => (ihom.coev (F.obj X)).app (G.obj X)) X ≫ ((tensorLeft F ⋙ F.closedIhom).obj G).map f
state_after: D : Type u_1
C : Type u_2
inst✝³ : Groupoid D
inst✝² : Category.{?u.4103, u_2} C
inst✝¹ : MonoidalCategory C
inst✝ : MonoidalClosed C
F G : D ⥤ C
X Y : D
f : X ⟶ Y
⊢ G.map f ≫ (ihom.coev (F.obj Y)).app (G.obj Y) = (ihom.coev (F.obj X)).app (G.obj X) ≫ (F.closedIhom.obj (F ⊗ G)).map f
tactic: dsimp
state_before: D : Type u_1
C : Type u_2
inst✝³ : Groupoid D
inst✝² : Category.{?u.4103, u_2} C
inst✝¹ : MonoidalCategory C
inst✝ : MonoidalClosed C
F G : D ⥤ C
X Y : D
f : X ⟶ Y
⊢ G.map f ≫ (ihom.coev (F.obj Y)).app (G.obj Y) = (ihom.coev (F.obj X)).app (G.obj X) ≫ (F.closedIhom.obj (F ⊗ G)).map f
state_after: D : Type u_1
C : Type u_2
inst✝³ : Groupoid D
inst✝² : Category.{?u.4103, u_2} C
inst✝¹ : MonoidalCategory C
inst✝ : MonoidalClosed C
F G : D ⥤ C
X Y : D
f : X ⟶ Y
⊢ (ihom.coev (F.obj Y)).app (G.obj X) ≫ (ihom (F.obj Y)).map (F.obj Y ◁ G.map f) =
    (ihom.coev (F.obj X)).app (G.obj X) ≫
      (pre (CategoryTheory.inv (F.map f))).app ((F ⊗ G).obj X) ≫ (ihom (F.obj Y)).map (F.map f ⊗ G.map f)
tactic: simp only [ihom.coev_naturality, closedIhom_obj_map, Monoidal.tensorObj_map]
state_before: D : Type u_1
C : Type u_2
inst✝³ : Groupoid D
inst✝² : Category.{?u.4103, u_2} C
inst✝¹ : MonoidalCategory C
inst✝ : MonoidalClosed C
F G : D ⥤ C
X Y : D
f : X ⟶ Y
⊢ (ihom.coev (F.obj Y)).app (G.obj X) ≫ (ihom (F.obj Y)).map (F.obj Y ◁ G.map f) =
    (ihom.coev (F.obj X)).app (G.obj X) ≫
      (pre (CategoryTheory.inv (F.map f))).app ((F ⊗ G).obj X) ≫ (ihom (F.obj Y)).map (F.map f ⊗ G.map f)
state_after: D : Type u_1
C : Type u_2
inst✝³ : Groupoid D
inst✝² : Category.{?u.4103, u_2} C
inst✝¹ : MonoidalCategory C
inst✝ : MonoidalClosed C
F G : D ⥤ C
X Y : D
f : X ⟶ Y
⊢ (ihom.coev (F.obj Y)).app (G.obj X) ≫ (ihom (F.obj Y)).map (F.obj Y ◁ G.map f) =
    (ihom.coev (F.obj X)).app (G.obj X) ≫
      (pre (CategoryTheory.inv (F.map f))).app (F.obj X ⊗ G.obj X) ≫ (ihom (F.obj Y)).map (F.map f ⊗ G.map f)
tactic: dsimp
state_before: D : Type u_1
C : Type u_2
inst✝³ : Groupoid D
inst✝² : Category.{?u.4103, u_2} C
inst✝¹ : MonoidalCategory C
inst✝ : MonoidalClosed C
F G : D ⥤ C
X Y : D
f : X ⟶ Y
⊢ (ihom.coev (F.obj Y)).app (G.obj X) ≫ (ihom (F.obj Y)).map (F.obj Y ◁ G.map f) =
    (ihom.coev (F.obj X)).app (G.obj X) ≫
      (pre (CategoryTheory.inv (F.map f))).app (F.obj X ⊗ G.obj X) ≫ (ihom (F.obj Y)).map (F.map f ⊗ G.map f)
state_after: D : Type u_1
C : Type u_2
inst✝³ : Groupoid D
inst✝² : Category.{?u.4103, u_2} C
inst✝¹ : MonoidalCategory C
inst✝ : MonoidalClosed C
F G : D ⥤ C
X Y : D
f : X ⟶ Y
⊢ (ihom.coev (F.obj Y)).app (G.obj X) ≫ (ihom (F.obj Y)).map (F.obj Y ◁ G.map f) =
    (ihom.coev (F.obj Y)).app (G.obj X) ≫
      (ihom (F.obj Y)).map (CategoryTheory.inv (F.map f) ▷ G.obj X ≫ F.map f ▷ G.obj X ≫ F.obj Y ◁ G.map f)
tactic: rw [coev_app_comp_pre_app_assoc, ← Functor.map_comp, tensorHom_def]
state_before: D : Type u_1
C : Type u_2
inst✝³ : Groupoid D
inst✝² : Category.{?u.4103, u_2} C
inst✝¹ : MonoidalCategory C
inst✝ : MonoidalClosed C
F G : D ⥤ C
X Y : D
f : X ⟶ Y
⊢ (ihom.coev (F.obj Y)).app (G.obj X) ≫ (ihom (F.obj Y)).map (F.obj Y ◁ G.map f) =
    (ihom.coev (F.obj Y)).app (G.obj X) ≫
      (ihom (F.obj Y)).map (CategoryTheory.inv (F.map f) ▷ G.obj X ≫ F.map f ▷ G.obj X ≫ F.obj Y ◁ G.map f)
state_after: no goals
tactic: simp