/-
Copyright (c) 2020 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison, Bhavik Mehta

! This file was ported from Lean 3 source module category_theory.closed.monoidal
! leanprover-community/mathlib commit 0caf3701139ef2e69c215717665361cda205a90b
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.Monoidal.Functor
import Mathbin.CategoryTheory.Adjunction.Limits
import Mathbin.CategoryTheory.Adjunction.Mates
import Mathbin.CategoryTheory.Functor.InvIsos

/-!
# Closed monoidal categories

> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
> Any changes to this file require a corresponding PR to mathlib4.

Define (right) closed objects and (right) closed monoidal categories.

## TODO
Some of the theorems proved about cartesian closed categories
should be generalised and moved to this file.
-/

universe v u u₂ v₂

namespace CategoryTheory

open Category MonoidalCategory

#print CategoryTheory.Closed /-
-- Note that this class carries a particular choice of right adjoint,
-- (which is only unique up to isomorphism),
-- not merely the existence of such, and
-- so definitional properties of instances may be important.
/-- An object `X` is (right) closed if `(X ⊗ -)` is a left adjoint. -/
class Closed {C : Type u} [Category.{v} C] [MonoidalCategory.{v} C] (X : C) where
  isAdj : IsLeftAdjoint (tensorLeft X)
#align category_theory.closed CategoryTheory.Closed
-/

#print CategoryTheory.MonoidalClosed /-
/-- A monoidal category `C` is (right) monoidal closed if every object is (right) closed. -/
class MonoidalClosed (C : Type u) [Category.{v} C] [MonoidalCategory.{v} C] where
  closed' : ∀ X : C, Closed X
#align category_theory.monoidal_closed CategoryTheory.MonoidalClosed
-/

attribute [instance] monoidal_closed.closed'

variable {C : Type u} [Category.{v} C] [MonoidalCategory.{v} C]

/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
#print CategoryTheory.tensorClosed /-
/-- If `X` and `Y` are closed then `X ⊗ Y` is.
This isn't an instance because it's not usually how we want to construct internal homs,
we'll usually prove all objects are closed uniformly.
-/
def tensorClosed {X Y : C} (hX : Closed X) (hY : Closed Y) : Closed (X ⊗ Y)
    where isAdj := by
    haveI := hX.is_adj
    haveI := hY.is_adj
    exact adjunction.left_adjoint_of_nat_iso (monoidal_category.tensor_left_tensor _ _).symm
#align category_theory.tensor_closed CategoryTheory.tensorClosed
-/

#print CategoryTheory.unitClosed /-
/-- The unit object is always closed.
This isn't an instance because most of the time we'll prove closedness for all objects at once,
rather than just for this one.
-/
def unitClosed : Closed (𝟙_ C)
    where isAdj :=
    { right := 𝟭 C
      adj :=
        Adjunction.mkOfHomEquiv
          { homEquiv := fun X _ =>
              { toFun := fun a => (leftUnitor X).inv ≫ a
                invFun := fun a => (leftUnitor X).Hom ≫ a
                left_inv := by tidy
                right_inv := by tidy }
            homEquiv_naturality_left_symm := fun X' X Y f g =>
              by
              dsimp
              rw [left_unitor_naturality_assoc] } }
#align category_theory.unit_closed CategoryTheory.unitClosed
-/

variable (A B : C) {X X' Y Y' Z : C}

variable [Closed A]

#print CategoryTheory.ihom /-
/-- This is the internal hom `A ⟶[C] -`.
-/
def ihom : C ⥤ C :=
  (@Closed.isAdj _ _ _ A _).right
#align category_theory.ihom CategoryTheory.ihom
-/

namespace Ihom

#print CategoryTheory.ihom.adjunction /-
/-- The adjunction between `A ⊗ -` and `A ⟹ -`. -/
def adjunction : tensorLeft A ⊣ ihom A :=
  Closed.isAdj.adj
#align category_theory.ihom.adjunction CategoryTheory.ihom.adjunction
-/

#print CategoryTheory.ihom.ev /-
/-- The evaluation natural transformation. -/
def ev : ihom A ⋙ tensorLeft A ⟶ 𝟭 C :=
  (ihom.adjunction A).counit
#align category_theory.ihom.ev CategoryTheory.ihom.ev
-/

#print CategoryTheory.ihom.coev /-
/-- The coevaluation natural transformation. -/
def coev : 𝟭 C ⟶ tensorLeft A ⋙ ihom A :=
  (ihom.adjunction A).Unit
#align category_theory.ihom.coev CategoryTheory.ihom.coev
-/

#print CategoryTheory.ihom.ihom_adjunction_counit /-
@[simp]
theorem ihom_adjunction_counit : (ihom.adjunction A).counit = ev A :=
  rfl
#align category_theory.ihom.ihom_adjunction_counit CategoryTheory.ihom.ihom_adjunction_counit
-/

#print CategoryTheory.ihom.ihom_adjunction_unit /-
@[simp]
theorem ihom_adjunction_unit : (ihom.adjunction A).Unit = coev A :=
  rfl
#align category_theory.ihom.ihom_adjunction_unit CategoryTheory.ihom.ihom_adjunction_unit
-/

/- warning: category_theory.ihom.ev_naturality -> CategoryTheory.ihom.ev_naturality is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] (A : C) [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) Y)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) Y) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 A A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) A) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X Y f)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) Y) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) f)
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] (A : C) [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) Y)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) Y) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 A A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) A) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X Y f)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X) Y (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) f)
Case conversion may be inaccurate. Consider using '#align category_theory.ihom.ev_naturality CategoryTheory.ihom.ev_naturalityₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@[simp, reassoc.1]
theorem ev_naturality {X Y : C} (f : X ⟶ Y) :
    (𝟙 A ⊗ (ihom A).map f) ≫ (ev A).app Y = (ev A).app X ≫ f :=
  (ev A).naturality f
#align category_theory.ihom.ev_naturality CategoryTheory.ihom.ev_naturality

/- warning: category_theory.ihom.coev_naturality -> CategoryTheory.ihom.coev_naturality is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] (A : C) [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y) f (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) Y) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 A A X Y (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) A) f)))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] (A : C) [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3))) Y)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3))) Y) f (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) X) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 A A X Y (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) A) f)))
Case conversion may be inaccurate. Consider using '#align category_theory.ihom.coev_naturality CategoryTheory.ihom.coev_naturalityₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@[simp, reassoc.1]
theorem coev_naturality {X Y : C} (f : X ⟶ Y) :
    f ≫ (coev A).app Y = (coev A).app X ≫ (ihom A).map (𝟙 A ⊗ f) :=
  (coev A).naturality f
#align category_theory.ihom.coev_naturality CategoryTheory.ihom.coev_naturality

-- mathport name: ihom
notation A " ⟶[" C "] " B:10 => (@ihom C _ _ A _).obj B

/- warning: category_theory.ihom.ev_coev -> CategoryTheory.ihom.ev_coev is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] (A : C) (B : C) [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) B)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) B))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) B)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) B)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) B)) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 A A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) B) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) B) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) A) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 A _inst_3) B)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A B))) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A B))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] (A : C) (B : C) [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) B)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A B))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) B)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3))) B)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A B)) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 A A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) B) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3))) B) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) A) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 A _inst_3) B)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A B))) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A B))
Case conversion may be inaccurate. Consider using '#align category_theory.ihom.ev_coev CategoryTheory.ihom.ev_coevₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@[simp, reassoc.1]
theorem ev_coev : (𝟙 A ⊗ (coev A).app B) ≫ (ev A).app (A ⊗ B) = 𝟙 (A ⊗ B) :=
  Adjunction.left_triangle_components (ihom.adjunction A)
#align category_theory.ihom.ev_coev CategoryTheory.ihom.ev_coev

/- warning: category_theory.ihom.coev_ev -> CategoryTheory.ihom.coev_ev is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] (A : C) (B : C) [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) B)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) B))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) B)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) B)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) B)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) B)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) B)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) B) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) B))) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) B))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] (A : C) (B : C) [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) B)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) B))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) B)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3))) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) B)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) B)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 A _inst_3) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) B)) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) B)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) B) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) B))) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) B))
Case conversion may be inaccurate. Consider using '#align category_theory.ihom.coev_ev CategoryTheory.ihom.coev_evₓ'. -/
@[simp, reassoc.1]
theorem coev_ev : (coev A).app (A ⟶[C] B) ≫ (ihom A).map ((ev A).app B) = 𝟙 (A ⟶[C] B) :=
  Adjunction.right_triangle_components (ihom.adjunction A)
#align category_theory.ihom.coev_ev CategoryTheory.ihom.coev_ev

end Ihom

open CategoryTheory.Limits

instance : PreservesColimits (tensorLeft A) :=
  (ihom.adjunction A).leftAdjointPreservesColimits

variable {A}

-- Wrap these in a namespace so we don't clash with the core versions.
namespace MonoidalClosed

/- warning: category_theory.monoidal_closed.curry -> CategoryTheory.MonoidalClosed.curry is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) -> (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) -> (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X))
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.curry CategoryTheory.MonoidalClosed.curryₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
/-- Currying in a monoidal closed category. -/
def curry : (A ⊗ Y ⟶ X) → (Y ⟶ A ⟶[C] X) :=
  (ihom.adjunction A).homEquiv _ _
#align category_theory.monoidal_closed.curry CategoryTheory.MonoidalClosed.curry

/- warning: category_theory.monoidal_closed.uncurry -> CategoryTheory.MonoidalClosed.uncurry is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) -> (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X)
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) -> (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X)
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.uncurry CategoryTheory.MonoidalClosed.uncurryₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
/-- Uncurrying in a monoidal closed category. -/
def uncurry : (Y ⟶ A ⟶[C] X) → (A ⊗ Y ⟶ X) :=
  ((ihom.adjunction A).homEquiv _ _).symm
#align category_theory.monoidal_closed.uncurry CategoryTheory.MonoidalClosed.uncurry

/- warning: category_theory.monoidal_closed.hom_equiv_apply_eq -> CategoryTheory.MonoidalClosed.homEquiv_apply_eq is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) Y) X) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X))) (fun (_x : Equiv.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) Y) X) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) Y) X) -> (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) Y) X) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X))) (CategoryTheory.Adjunction.homEquiv.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.ihom.adjunction.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y X) f) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 f)
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) Y) X) => Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) f) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) Y) X) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X))) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) Y) X) (fun (_x : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) Y) X) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) Y) X) => Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) Y) X) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X))) (CategoryTheory.Adjunction.homEquiv.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.ihom.adjunction.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y X) f) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 f)
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.hom_equiv_apply_eq CategoryTheory.MonoidalClosed.homEquiv_apply_eqₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@[simp]
theorem homEquiv_apply_eq (f : A ⊗ Y ⟶ X) : (ihom.adjunction A).homEquiv _ _ f = curry f :=
  rfl
#align category_theory.monoidal_closed.hom_equiv_apply_eq CategoryTheory.MonoidalClosed.homEquiv_apply_eq

/- warning: category_theory.monoidal_closed.hom_equiv_symm_apply_eq -> CategoryTheory.MonoidalClosed.homEquiv_symm_apply_eq is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) Y) X) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) Y) X)) (fun (_x : Equiv.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) Y) X)) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) -> (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) Y) X)) (Equiv.hasCoeToFun.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) Y) X)) (Equiv.symm.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) Y) X) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (CategoryTheory.Adjunction.homEquiv.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.ihom.adjunction.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y X)) f) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 f)
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) => Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) Y) X) f) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) Y) X)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (fun (_x : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) => Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) Y) X) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) Y) X)) (Equiv.symm.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) Y) X) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (CategoryTheory.Adjunction.homEquiv.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.ihom.adjunction.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y X)) f) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 f)
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.hom_equiv_symm_apply_eq CategoryTheory.MonoidalClosed.homEquiv_symm_apply_eqₓ'. -/
@[simp]
theorem homEquiv_symm_apply_eq (f : Y ⟶ A ⟶[C] X) :
    ((ihom.adjunction A).homEquiv _ _).symm f = uncurry f :=
  rfl
#align category_theory.monoidal_closed.hom_equiv_symm_apply_eq CategoryTheory.MonoidalClosed.homEquiv_symm_apply_eq

/- warning: category_theory.monoidal_closed.curry_natural_left -> CategoryTheory.MonoidalClosed.curry_natural_left is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {X' : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X X') (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X') Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y)) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A Y X _inst_3 (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X') Y (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 A A X X' (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) A) f) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X X' (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y) f (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A Y X' _inst_3 g))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {X' : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X X') (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X') Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y)) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A Y X _inst_3 (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X') Y (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 A A X X' (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) A) f) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X X' (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y) f (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A Y X' _inst_3 g))
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.curry_natural_left CategoryTheory.MonoidalClosed.curry_natural_leftₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@[reassoc.1]
theorem curry_natural_left (f : X ⟶ X') (g : A ⊗ X' ⟶ Y) : curry ((𝟙 _ ⊗ f) ≫ g) = f ≫ curry g :=
  Adjunction.homEquiv_naturality_left _ _ _
#align category_theory.monoidal_closed.curry_natural_left CategoryTheory.MonoidalClosed.curry_natural_left

/- warning: category_theory.monoidal_closed.curry_natural_right -> CategoryTheory.MonoidalClosed.curry_natural_right is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} {Y' : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) Y) (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y Y'), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y')) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A Y' X _inst_3 (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) Y Y' f g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y') (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A Y X _inst_3 f) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y Y' g))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} {Y' : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) Y) (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y Y'), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y')) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A Y' X _inst_3 (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) Y Y' f g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y') (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A Y X _inst_3 f) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y Y' g))
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.curry_natural_right CategoryTheory.MonoidalClosed.curry_natural_rightₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@[reassoc.1]
theorem curry_natural_right (f : A ⊗ X ⟶ Y) (g : Y ⟶ Y') :
    curry (f ≫ g) = curry f ≫ (ihom _).map g :=
  Adjunction.homEquiv_naturality_right _ _ _
#align category_theory.monoidal_closed.curry_natural_right CategoryTheory.MonoidalClosed.curry_natural_right

/- warning: category_theory.monoidal_closed.uncurry_natural_right -> CategoryTheory.MonoidalClosed.uncurry_natural_right is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} {Y' : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y)) (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y Y'), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) Y') (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A Y' X _inst_3 (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y') f (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y Y' g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) Y Y' (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A Y X _inst_3 f) g)
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} {Y' : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y)) (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y Y'), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) Y') (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A Y' X _inst_3 (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y') f (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y Y' g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) Y Y' (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A Y X _inst_3 f) g)
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.uncurry_natural_right CategoryTheory.MonoidalClosed.uncurry_natural_rightₓ'. -/
@[reassoc.1]
theorem uncurry_natural_right (f : X ⟶ A ⟶[C] Y) (g : Y ⟶ Y') :
    uncurry (f ≫ (ihom _).map g) = uncurry f ≫ g :=
  Adjunction.homEquiv_naturality_right_symm _ _ _
#align category_theory.monoidal_closed.uncurry_natural_right CategoryTheory.MonoidalClosed.uncurry_natural_right

/- warning: category_theory.monoidal_closed.uncurry_natural_left -> CategoryTheory.MonoidalClosed.uncurry_natural_left is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {X' : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X X') (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X' (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) Y) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A Y X _inst_3 (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X X' (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y) f g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X') Y (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 A A X X' (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) A) f) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A Y X' _inst_3 g))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {X' : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X X') (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X' (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) Y) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A Y X _inst_3 (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X X' (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y) f g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X') Y (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 A A X X' (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) A) f) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A Y X' _inst_3 g))
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.uncurry_natural_left CategoryTheory.MonoidalClosed.uncurry_natural_leftₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@[reassoc.1]
theorem uncurry_natural_left (f : X ⟶ X') (g : X' ⟶ A ⟶[C] Y) :
    uncurry (f ≫ g) = (𝟙 _ ⊗ f) ≫ uncurry g :=
  Adjunction.homEquiv_naturality_left_symm _ _ _
#align category_theory.monoidal_closed.uncurry_natural_left CategoryTheory.MonoidalClosed.uncurry_natural_left

/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
#print CategoryTheory.MonoidalClosed.uncurry_curry /-
@[simp]
theorem uncurry_curry (f : A ⊗ X ⟶ Y) : uncurry (curry f) = f :=
  (Closed.isAdj.adj.homEquiv _ _).left_inv f
#align category_theory.monoidal_closed.uncurry_curry CategoryTheory.MonoidalClosed.uncurry_curry
-/

/- warning: category_theory.monoidal_closed.curry_uncurry -> CategoryTheory.MonoidalClosed.curry_uncurry is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y)) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A Y X _inst_3 (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A Y X _inst_3 f)) f
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y)) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A Y X _inst_3 (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A Y X _inst_3 f)) f
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.curry_uncurry CategoryTheory.MonoidalClosed.curry_uncurryₓ'. -/
@[simp]
theorem curry_uncurry (f : X ⟶ A ⟶[C] Y) : curry (uncurry f) = f :=
  (Closed.isAdj.adj.homEquiv _ _).right_inv f
#align category_theory.monoidal_closed.curry_uncurry CategoryTheory.MonoidalClosed.curry_uncurry

/- warning: category_theory.monoidal_closed.curry_eq_iff -> CategoryTheory.MonoidalClosed.curry_eq_iff is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)), Iff (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 f) g) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) f (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 g))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)), Iff (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 f) g) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) f (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 g))
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.curry_eq_iff CategoryTheory.MonoidalClosed.curry_eq_iffₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
theorem curry_eq_iff (f : A ⊗ Y ⟶ X) (g : Y ⟶ A ⟶[C] X) : curry f = g ↔ f = uncurry g :=
  Adjunction.homEquiv_apply_eq _ f g
#align category_theory.monoidal_closed.curry_eq_iff CategoryTheory.MonoidalClosed.curry_eq_iff

/- warning: category_theory.monoidal_closed.eq_curry_iff -> CategoryTheory.MonoidalClosed.eq_curry_iff is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)), Iff (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) g (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 f)) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 g) f)
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)), Iff (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) g (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 f)) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 g) f)
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.eq_curry_iff CategoryTheory.MonoidalClosed.eq_curry_iffₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
theorem eq_curry_iff (f : A ⊗ Y ⟶ X) (g : Y ⟶ A ⟶[C] X) : g = curry f ↔ uncurry g = f :=
  Adjunction.eq_homEquiv_apply _ f g
#align category_theory.monoidal_closed.eq_curry_iff CategoryTheory.MonoidalClosed.eq_curry_iff

/- warning: category_theory.monoidal_closed.uncurry_eq -> CategoryTheory.MonoidalClosed.uncurry_eq is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 g) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) X (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 A A Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) A) g) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 g) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 A A Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) A) g) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X))
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.uncurry_eq CategoryTheory.MonoidalClosed.uncurry_eqₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
-- I don't think these two should be simp.
theorem uncurry_eq (g : Y ⟶ A ⟶[C] X) : uncurry g = (𝟙 A ⊗ g) ≫ (ihom.ev A).app X :=
  Adjunction.homEquiv_counit _
#align category_theory.monoidal_closed.uncurry_eq CategoryTheory.MonoidalClosed.uncurry_eq

/- warning: category_theory.monoidal_closed.curry_eq -> CategoryTheory.MonoidalClosed.curry_eq is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 g) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) Y) X g))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3 g) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) Y) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3))) Y) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 A _inst_3) Y) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) Y) X g))
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.curry_eq CategoryTheory.MonoidalClosed.curry_eqₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
theorem curry_eq (g : A ⊗ Y ⟶ X) : curry g = (ihom.coev A).app Y ≫ (ihom A).map g :=
  Adjunction.homEquiv_unit _
#align category_theory.monoidal_closed.curry_eq CategoryTheory.MonoidalClosed.curry_eq

/- warning: category_theory.monoidal_closed.curry_injective -> CategoryTheory.MonoidalClosed.curry_injective is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], Function.Injective.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3)
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], Function.Injective.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3)
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.curry_injective CategoryTheory.MonoidalClosed.curry_injectiveₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
theorem curry_injective : Function.Injective (curry : (A ⊗ Y ⟶ X) → (Y ⟶ A ⟶[C] X)) :=
  (Closed.isAdj.adj.homEquiv _ _).Injective
#align category_theory.monoidal_closed.curry_injective CategoryTheory.MonoidalClosed.curry_injective

/- warning: category_theory.monoidal_closed.uncurry_injective -> CategoryTheory.MonoidalClosed.uncurry_injective is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], Function.Injective.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3)
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {X : C} {Y : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], Function.Injective.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A Y) X) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A X Y _inst_3)
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.uncurry_injective CategoryTheory.MonoidalClosed.uncurry_injectiveₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
theorem uncurry_injective : Function.Injective (uncurry : (Y ⟶ A ⟶[C] X) → (A ⊗ Y ⟶ X)) :=
  (Closed.isAdj.adj.homEquiv _ _).symm.Injective
#align category_theory.monoidal_closed.uncurry_injective CategoryTheory.MonoidalClosed.uncurry_injective

variable (A X)

/- warning: category_theory.monoidal_closed.uncurry_id_eq_ev -> CategoryTheory.MonoidalClosed.uncurry_id_eq_ev is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] (A : C) (X : C) [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) X) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) _inst_3 (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X))) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] (A : C) (X : C) [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) X) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 A X (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X) _inst_3 (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X))) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.uncurry_id_eq_ev CategoryTheory.MonoidalClosed.uncurry_id_eq_evₓ'. -/
theorem uncurry_id_eq_ev : uncurry (𝟙 (A ⟶[C] X)) = (ihom.ev A).app X := by
  rw [uncurry_eq, tensor_id, id_comp]
#align category_theory.monoidal_closed.uncurry_id_eq_ev CategoryTheory.MonoidalClosed.uncurry_id_eq_ev

/- warning: category_theory.monoidal_closed.curry_id_eq_coev -> CategoryTheory.MonoidalClosed.curry_id_eq_coev is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] (A : C) (X : C) [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)))) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) _inst_3 (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)))) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] (A : C) (X : C) [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X)))) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X) _inst_3 (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X)))) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.curry_id_eq_coev CategoryTheory.MonoidalClosed.curry_id_eq_coevₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
theorem curry_id_eq_coev : curry (𝟙 _) = (ihom.coev A).app X :=
  by
  rw [curry_eq, (ihom A).map_id (A ⊗ _)]
  apply comp_id
#align category_theory.monoidal_closed.curry_id_eq_coev CategoryTheory.MonoidalClosed.curry_id_eq_coev

section Pre

variable {A B} [Closed B]

#print CategoryTheory.MonoidalClosed.pre /-
/-- Pre-compose an internal hom with an external hom. -/
def pre (f : B ⟶ A) : ihom A ⟶ ihom B :=
  transferNatTransSelf (ihom.adjunction _) (ihom.adjunction _) ((tensoringLeft C).map f)
#align category_theory.monoidal_closed.pre CategoryTheory.MonoidalClosed.pre
-/

/- warning: category_theory.monoidal_closed.id_tensor_pre_app_comp_ev -> CategoryTheory.MonoidalClosed.id_tensor_pre_app_comp_ev is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {B : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] [_inst_4 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 B] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) B A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 B (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 B (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 B (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 B B (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4) X) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) B) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4) (CategoryTheory.MonoidalClosed.pre.{u1, u2} C _inst_1 _inst_2 A B _inst_3 _inst_4 f) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 B)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 B _inst_4) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 B (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 B A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) f (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X))) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {B : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] [_inst_4 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 B] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) B A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 B (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 B (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 B (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4)) X)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 B B (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4)) X) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) B) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4) (CategoryTheory.MonoidalClosed.pre.{u1, u2} C _inst_1 _inst_2 A B _inst_3 _inst_4 f) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 B)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 B _inst_4) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 B (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 B A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X) f (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X))) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X))
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.id_tensor_pre_app_comp_ev CategoryTheory.MonoidalClosed.id_tensor_pre_app_comp_evₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@[simp, reassoc.1]
theorem id_tensor_pre_app_comp_ev (f : B ⟶ A) (X : C) :
    (𝟙 B ⊗ (pre f).app X) ≫ (ihom.ev B).app X = (f ⊗ 𝟙 (A ⟶[C] X)) ≫ (ihom.ev A).app X :=
  transferNatTransSelf_counit _ _ ((tensoringLeft C).map f) X
#align category_theory.monoidal_closed.id_tensor_pre_app_comp_ev CategoryTheory.MonoidalClosed.id_tensor_pre_app_comp_ev

/- warning: category_theory.monoidal_closed.uncurry_pre -> CategoryTheory.MonoidalClosed.uncurry_pre is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {B : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] [_inst_4 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 B] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) B A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 B (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) X) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 B X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) _inst_4 (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4) (CategoryTheory.MonoidalClosed.pre.{u1, u2} C _inst_1 _inst_2 A B _inst_3 _inst_4 f) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 B (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X)) X (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 B A (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) f (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) X))) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {B : C} [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] [_inst_4 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 B] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) B A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 B (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) X) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 B X (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X) _inst_4 (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4) (CategoryTheory.MonoidalClosed.pre.{u1, u2} C _inst_1 _inst_2 A B _inst_3 _inst_4 f) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 B (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 B A (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X) f (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X))) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ihom.ev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X))
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.uncurry_pre CategoryTheory.MonoidalClosed.uncurry_preₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@[simp]
theorem uncurry_pre (f : B ⟶ A) (X : C) :
    MonoidalClosed.uncurry ((pre f).app X) = (f ⊗ 𝟙 _) ≫ (ihom.ev A).app X := by
  rw [uncurry_eq, id_tensor_pre_app_comp_ev]
#align category_theory.monoidal_closed.uncurry_pre CategoryTheory.MonoidalClosed.uncurry_pre

/- warning: category_theory.monoidal_closed.coev_app_comp_pre_app -> CategoryTheory.MonoidalClosed.coev_app_comp_pre_app is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {B : C} (X : C) [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] [_inst_4 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 B] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) B A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4) (CategoryTheory.MonoidalClosed.pre.{u1, u2} C _inst_1 _inst_2 A B _inst_3 _inst_4 f) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 B) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 B) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 B _inst_4) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 B) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) X) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 B A X X f (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X))))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {A : C} {B : C} (X : C) [_inst_3 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 A] [_inst_4 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 B] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) B A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 A) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 A _inst_3) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 A _inst_3) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4) (CategoryTheory.MonoidalClosed.pre.{u1, u2} C _inst_1 _inst_2 A B _inst_3 _inst_4 f) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 B) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 B) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4)) (CategoryTheory.ihom.coev.{u1, u2} C _inst_1 _inst_2 B _inst_4) X) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 B _inst_4)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 B)) X) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 A X) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u2} C _inst_1 _inst_2 B A X X f (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X))))
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.coev_app_comp_pre_app CategoryTheory.MonoidalClosed.coev_app_comp_pre_appₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@[simp, reassoc.1]
theorem coev_app_comp_pre_app (f : B ⟶ A) :
    (ihom.coev A).app X ≫ (pre f).app (A ⊗ X) = (ihom.coev B).app X ≫ (ihom B).map (f ⊗ 𝟙 _) :=
  unit_transferNatTransSelf _ _ ((tensoringLeft C).map f) X
#align category_theory.monoidal_closed.coev_app_comp_pre_app CategoryTheory.MonoidalClosed.coev_app_comp_pre_app

#print CategoryTheory.MonoidalClosed.pre_id /-
@[simp]
theorem pre_id (A : C) [Closed A] : pre (𝟙 A) = 𝟙 _ :=
  by
  simp only [pre, Functor.map_id]
  dsimp
  simp
#align category_theory.monoidal_closed.pre_id CategoryTheory.MonoidalClosed.pre_id
-/

#print CategoryTheory.MonoidalClosed.pre_map /-
@[simp]
theorem pre_map {A₁ A₂ A₃ : C} [Closed A₁] [Closed A₂] [Closed A₃] (f : A₁ ⟶ A₂) (g : A₂ ⟶ A₃) :
    pre (f ≫ g) = pre g ≫ pre f := by
  rw [pre, pre, pre, transfer_nat_trans_self_comp, (tensoring_left C).map_comp]
#align category_theory.monoidal_closed.pre_map CategoryTheory.MonoidalClosed.pre_map
-/

/- warning: category_theory.monoidal_closed.pre_comm_ihom_map -> CategoryTheory.MonoidalClosed.pre_comm_ihom_map is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {W : C} {X : C} {Y : C} {Z : C} [_inst_5 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 W] [_inst_6 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 X] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) W X) (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y Z), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X _inst_6) Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 W _inst_5) Z)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X _inst_6) Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 W _inst_5) Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 W _inst_5) Z) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X _inst_6) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 W _inst_5) (CategoryTheory.MonoidalClosed.pre.{u1, u2} C _inst_1 _inst_2 X W _inst_6 _inst_5 f) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 W _inst_5) Y Z g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X _inst_6) Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X _inst_6) Z) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 W _inst_5) Z) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X _inst_6) Y Z g) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X _inst_6) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 W _inst_5) (CategoryTheory.MonoidalClosed.pre.{u1, u2} C _inst_1 _inst_2 X W _inst_6 _inst_5 f) Z))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {W : C} {X : C} {Y : C} {Z : C} [_inst_5 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 W] [_inst_6 : CategoryTheory.Closed.{u1, u2} C _inst_1 _inst_2 X] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) W X) (g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y Z), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X _inst_6)) Y) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 W _inst_5)) Z)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X _inst_6)) Y) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 W _inst_5)) Y) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 W _inst_5)) Z) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X _inst_6) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 W _inst_5) (CategoryTheory.MonoidalClosed.pre.{u1, u2} C _inst_1 _inst_2 X W _inst_6 _inst_5 f) Y) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 W _inst_5)) Y Z g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X _inst_6)) Y) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X _inst_6)) Z) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 W _inst_5)) Z) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X _inst_6)) Y Z g) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X _inst_6) (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 W _inst_5) (CategoryTheory.MonoidalClosed.pre.{u1, u2} C _inst_1 _inst_2 X W _inst_6 _inst_5 f) Z))
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.pre_comm_ihom_map CategoryTheory.MonoidalClosed.pre_comm_ihom_mapₓ'. -/
theorem pre_comm_ihom_map {W X Y Z : C} [Closed W] [Closed X] (f : W ⟶ X) (g : Y ⟶ Z) :
    (pre f).app Y ≫ (ihom W).map g = (ihom X).map g ≫ (pre f).app Z := by simp
#align category_theory.monoidal_closed.pre_comm_ihom_map CategoryTheory.MonoidalClosed.pre_comm_ihom_map

end Pre

#print CategoryTheory.MonoidalClosed.internalHom /-
/-- The internal hom functor given by the monoidal closed structure. -/
@[simps]
def internalHom [MonoidalClosed C] : Cᵒᵖ ⥤ C ⥤ C
    where
  obj X := ihom X.unop
  map X Y f := pre f.unop
#align category_theory.monoidal_closed.internal_hom CategoryTheory.MonoidalClosed.internalHom
-/

section OfEquiv

variable {D : Type u₂} [Category.{v₂} D] [MonoidalCategory.{v₂} D]

#print CategoryTheory.MonoidalClosed.ofEquiv /-
/-- Transport the property of being monoidal closed across a monoidal equivalence of categories -/
noncomputable def ofEquiv (F : MonoidalFunctor C D) [IsEquivalence F.toFunctor]
    [h : MonoidalClosed D] : MonoidalClosed C
    where closed' X :=
    {
      isAdj := by
        haveI q : closed (F.to_functor.obj X) := inferInstance
        haveI : is_left_adjoint (tensor_left (F.to_functor.obj X)) := q.is_adj
        have i := comp_inv_iso (monoidal_functor.comm_tensor_left F X)
        exact adjunction.left_adjoint_of_nat_iso i }
#align category_theory.monoidal_closed.of_equiv CategoryTheory.MonoidalClosed.ofEquiv
-/

/- warning: category_theory.monoidal_closed.of_equiv_curry_def -> CategoryTheory.MonoidalClosed.ofEquiv_curry_def is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {D : Type.{u3}} [_inst_4 : CategoryTheory.Category.{u4, u3} D] [_inst_5 : CategoryTheory.MonoidalCategory.{u4, u3} D _inst_4] (F : CategoryTheory.MonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5) [_inst_6 : CategoryTheory.IsEquivalence.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))] [h : CategoryTheory.MonoidalClosed.{u4, u3} D _inst_4 _inst_5] {X : C} {Y : C} {Z : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 X Y) Z), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X (CategoryTheory.MonoidalClosed.closed'.{u1, u2} C _inst_1 _inst_2 (CategoryTheory.MonoidalClosed.ofEquiv.{u1, u2, u3, u4} C _inst_1 _inst_2 D _inst_4 _inst_5 F _inst_6 h) X)) Z)) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 X Z Y (CategoryTheory.MonoidalClosed.closed'.{u1, u2} C _inst_1 _inst_2 (CategoryTheory.MonoidalClosed.ofEquiv.{u1, u2, u3, u4} C _inst_1 _inst_2 D _inst_4 _inst_5 F _inst_6 h) X) f) (coeFn.{max 1 (max (succ u4) (succ u1)) (succ u1) (succ u4), max (succ u4) (succ u1)} (Equiv.{succ u4, succ u1} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z))) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z))))) (fun (_x : Equiv.{succ u4, succ u1} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z))) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z))))) => (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z))) -> (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z))))) (Equiv.hasCoeToFun.{succ u4, succ u1} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z))) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z))))) (CategoryTheory.Adjunction.homEquiv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.adjunction.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) Y (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z))) (CategoryTheory.MonoidalClosed.curry.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X)) (coeFn.{max 1 (max (succ u1) (succ u4)) (succ u4) (succ u1), max (succ u1) (succ u4)} (Equiv.{succ u1, succ u4} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y))) Z) (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z))) (fun (_x : Equiv.{succ u1, succ u4} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y))) Z) (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y))) Z) -> (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z))) (Equiv.hasCoeToFun.{succ u1, succ u4} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y))) Z) (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z))) (CategoryTheory.Adjunction.homEquiv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.Functor.adjunction.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y)) Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X) Y) Z (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u4, u1, u2, u3, u2} C _inst_1 D _inst_4 C _inst_1 (CategoryTheory.Functor.comp.{u1, u4, u4, u2, u3, u3} C _inst_1 D _inst_4 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.MonoidalCategory.tensorLeft.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u4, u1, u2, u3, u2} C _inst_1 D _inst_4 C _inst_1 (CategoryTheory.Functor.comp.{u1, u4, u4, u2, u3, u3} C _inst_1 D _inst_4 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.MonoidalCategory.tensorLeft.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X) (CategoryTheory.compInvIso.{u2, u2, u3, u1, u1, u4} C _inst_1 C _inst_1 D _inst_4 (CategoryTheory.Functor.comp.{u1, u4, u4, u2, u3, u3} C _inst_1 D _inst_4 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.MonoidalCategory.tensorLeft.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X) (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6 (CategoryTheory.MonoidalFunctor.commTensorLeft.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F X))) Y) f))))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {D : Type.{u3}} [_inst_4 : CategoryTheory.Category.{u4, u3} D] [_inst_5 : CategoryTheory.MonoidalCategory.{u4, u3} D _inst_4] (F : CategoryTheory.MonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5) [_inst_6 : CategoryTheory.IsEquivalence.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))] [h : CategoryTheory.MonoidalClosed.{u4, u3} D _inst_4 _inst_5] {X : C} {Y : C} {Z : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 X Y) Z), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X (CategoryTheory.MonoidalClosed.closed.{u1, u2} C _inst_1 _inst_2 (CategoryTheory.MonoidalClosed.ofEquiv.{u1, u2, u3, u4} C _inst_1 _inst_2 D _inst_4 _inst_5 F _inst_6 h) X))) Z)) (CategoryTheory.MonoidalClosed.curry.{u1, u2} C _inst_1 _inst_2 X Z Y (CategoryTheory.MonoidalClosed.closed.{u1, u2} C _inst_1 _inst_2 (CategoryTheory.MonoidalClosed.ofEquiv.{u1, u2, u3, u4} C _inst_1 _inst_2 D _inst_4 _inst_5 F _inst_6 h) X) f) (FunLike.coe.{max (succ u1) (succ u4), succ u4, succ u1} (Equiv.{succ u4, succ u1} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z))) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z))))) (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z))) (fun (_x : Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z))) => Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z)))) _x) (Equiv.instFunLikeEquiv.{succ u4, succ u1} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z))) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z))))) (CategoryTheory.Adjunction.homEquiv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.adjunction.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) Y (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z))) (CategoryTheory.MonoidalClosed.curry.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)) (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (Equiv.{succ u1, succ u4} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y))) Z) (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z))) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y))) Z) (fun (_x : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y))) Z) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y))) Z) => Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z)) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u4} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y))) Z) (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z))) (CategoryTheory.Adjunction.homEquiv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.Functor.adjunction.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y)) Z) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y))) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X)) Y) Z (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u4, u1, u2, u3, u2} C _inst_1 D _inst_4 C _inst_1 (CategoryTheory.Functor.comp.{u1, u4, u4, u2, u3, u3} C _inst_1 D _inst_4 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.MonoidalCategory.tensorLeft.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X))) (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X) (CategoryTheory.Iso.hom.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u4, u1, u2, u3, u2} C _inst_1 D _inst_4 C _inst_1 (CategoryTheory.Functor.comp.{u1, u4, u4, u2, u3, u3} C _inst_1 D _inst_4 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.MonoidalCategory.tensorLeft.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X))) (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X) (CategoryTheory.compInvIso.{u2, u2, u3, u1, u1, u4} C _inst_1 C _inst_1 D _inst_4 (CategoryTheory.Functor.comp.{u1, u4, u4, u2, u3, u3} C _inst_1 D _inst_4 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.MonoidalCategory.tensorLeft.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X))) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X) (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6 (CategoryTheory.MonoidalFunctor.commTensorLeft.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F X))) Y) f))))
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.of_equiv_curry_def CategoryTheory.MonoidalClosed.ofEquiv_curry_defₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
/-- Suppose we have a monoidal equivalence `F : C ≌ D`, with `D` monoidal closed. We can pull the
monoidal closed instance back along the equivalence. For `X, Y, Z : C`, this lemma describes the
resulting currying map `Hom(X ⊗ Y, Z) → Hom(Y, (X ⟶[C] Z))`. (`X ⟶[C] Z` is defined to be
`F⁻¹(F(X) ⟶[D] F(Z))`, so currying in `C` is given by essentially conjugating currying in
`D` by `F.`) -/
theorem ofEquiv_curry_def (F : MonoidalFunctor C D) [IsEquivalence F.toFunctor]
    [h : MonoidalClosed D] {X Y Z : C} (f : X ⊗ Y ⟶ Z) :
    @MonoidalClosed.curry _ _ _ _ _ _ ((MonoidalClosed.ofEquiv F).1 _) f =
      (F.1.1.Adjunction.homEquiv Y ((ihom _).obj _))
        (MonoidalClosed.curry
          (F.1.1.inv.Adjunction.homEquiv (F.1.1.obj X ⊗ F.1.1.obj Y) Z
            ((compInvIso (F.commTensorLeft X)).Hom.app Y ≫ f))) :=
  rfl
#align category_theory.monoidal_closed.of_equiv_curry_def CategoryTheory.MonoidalClosed.ofEquiv_curry_def

/- warning: category_theory.monoidal_closed.of_equiv_uncurry_def -> CategoryTheory.MonoidalClosed.ofEquiv_uncurry_def is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {D : Type.{u3}} [_inst_4 : CategoryTheory.Category.{u4, u3} D] [_inst_5 : CategoryTheory.MonoidalCategory.{u4, u3} D _inst_4] (F : CategoryTheory.MonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5) [_inst_6 : CategoryTheory.IsEquivalence.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))] [h : CategoryTheory.MonoidalClosed.{u4, u3} D _inst_4 _inst_5] {X : C} {Y : C} {Z : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X (CategoryTheory.MonoidalClosed.closed'.{u1, u2} C _inst_1 _inst_2 (CategoryTheory.MonoidalClosed.ofEquiv.{u1, u2, u3, u4} C _inst_1 _inst_2 D _inst_4 _inst_5 F _inst_6 h) X)) Z)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 X Y) Z) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 X Z Y (CategoryTheory.MonoidalClosed.closed'.{u1, u2} C _inst_1 _inst_2 (CategoryTheory.MonoidalClosed.ofEquiv.{u1, u2, u3, u4} C _inst_1 _inst_2 D _inst_4 _inst_5 F _inst_6 h) X) f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 X Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u4, u1, u2, u3, u2} C _inst_1 D _inst_4 C _inst_1 (CategoryTheory.Functor.comp.{u1, u4, u4, u2, u3, u3} C _inst_1 D _inst_4 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.MonoidalCategory.tensorLeft.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Y) Z (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X) (CategoryTheory.Functor.comp.{u1, u4, u1, u2, u3, u2} C _inst_1 D _inst_4 C _inst_1 (CategoryTheory.Functor.comp.{u1, u4, u4, u2, u3, u3} C _inst_1 D _inst_4 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.MonoidalCategory.tensorLeft.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u4, u1, u2, u3, u2} C _inst_1 D _inst_4 C _inst_1 (CategoryTheory.Functor.comp.{u1, u4, u4, u2, u3, u3} C _inst_1 D _inst_4 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.MonoidalCategory.tensorLeft.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X) (CategoryTheory.compInvIso.{u2, u2, u3, u1, u1, u4} C _inst_1 C _inst_1 D _inst_4 (CategoryTheory.Functor.comp.{u1, u4, u4, u2, u3, u3} C _inst_1 D _inst_4 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.MonoidalCategory.tensorLeft.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X) (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6 (CategoryTheory.MonoidalFunctor.commTensorLeft.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F X))) Y) (coeFn.{max 1 (max (succ u4) (succ u1)) (succ u1) (succ u4), max (succ u4) (succ u1)} (Equiv.{succ u4, succ u1} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y))) Z)) (fun (_x : Equiv.{succ u4, succ u1} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y))) Z)) => (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z)) -> (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y))) Z)) (Equiv.hasCoeToFun.{succ u4, succ u1} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y))) Z)) (Equiv.symm.{succ u1, succ u4} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y))) Z) (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z)) (CategoryTheory.Adjunction.homEquiv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.Functor.adjunction.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y)) Z)) (CategoryTheory.MonoidalClosed.uncurry.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) Z) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X)) (coeFn.{max 1 (max (succ u1) (succ u4)) (succ u4) (succ u1), max (succ u1) (succ u4)} (Equiv.{succ u1, succ u4} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Z)))) (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Z)))) (fun (_x : Equiv.{succ u1, succ u4} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Z)))) (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Z)))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Z)))) -> (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Z)))) (Equiv.hasCoeToFun.{succ u1, succ u4} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Z)))) (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Z)))) (Equiv.symm.{succ u4, succ u1} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Y) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Z))) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (CategoryTheory.Functor.obj.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Z)))) (CategoryTheory.Adjunction.homEquiv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.adjunction.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) Y (CategoryTheory.Functor.obj.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X) (CategoryTheory.MonoidalClosed.closed'.{u4, u3} D _inst_4 _inst_5 h (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) X))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) Z)))) f))))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u2} C _inst_1] {D : Type.{u3}} [_inst_4 : CategoryTheory.Category.{u4, u3} D] [_inst_5 : CategoryTheory.MonoidalCategory.{u4, u3} D _inst_4] (F : CategoryTheory.MonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5) [_inst_6 : CategoryTheory.IsEquivalence.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))] [h : CategoryTheory.MonoidalClosed.{u4, u3} D _inst_4 _inst_5] {X : C} {Y : C} {Z : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ihom.{u1, u2} C _inst_1 _inst_2 X (CategoryTheory.MonoidalClosed.closed.{u1, u2} C _inst_1 _inst_2 (CategoryTheory.MonoidalClosed.ofEquiv.{u1, u2, u3, u4} C _inst_1 _inst_2 D _inst_4 _inst_5 F _inst_6 h) X))) Z)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u2} C _inst_1 _inst_2 X Y) Z) (CategoryTheory.MonoidalClosed.uncurry.{u1, u2} C _inst_1 _inst_2 X Z Y (CategoryTheory.MonoidalClosed.closed.{u1, u2} C _inst_1 _inst_2 (CategoryTheory.MonoidalClosed.ofEquiv.{u1, u2, u3, u4} C _inst_1 _inst_2 D _inst_4 _inst_5 F _inst_6 h) X) f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X)) Y) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u4, u1, u2, u3, u2} C _inst_1 D _inst_4 C _inst_1 (CategoryTheory.Functor.comp.{u1, u4, u4, u2, u3, u3} C _inst_1 D _inst_4 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.MonoidalCategory.tensorLeft.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X))) (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Y) Z (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X) (CategoryTheory.Functor.comp.{u1, u4, u1, u2, u3, u2} C _inst_1 D _inst_4 C _inst_1 (CategoryTheory.Functor.comp.{u1, u4, u4, u2, u3, u3} C _inst_1 D _inst_4 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.MonoidalCategory.tensorLeft.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X))) (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.Iso.inv.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u4, u1, u2, u3, u2} C _inst_1 D _inst_4 C _inst_1 (CategoryTheory.Functor.comp.{u1, u4, u4, u2, u3, u3} C _inst_1 D _inst_4 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.MonoidalCategory.tensorLeft.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X))) (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X) (CategoryTheory.compInvIso.{u2, u2, u3, u1, u1, u4} C _inst_1 C _inst_1 D _inst_4 (CategoryTheory.Functor.comp.{u1, u4, u4, u2, u3, u3} C _inst_1 D _inst_4 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.MonoidalCategory.tensorLeft.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X))) (CategoryTheory.MonoidalCategory.tensorLeft.{u1, u2} C _inst_1 _inst_2 X) (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6 (CategoryTheory.MonoidalFunctor.commTensorLeft.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F X))) Y) (FunLike.coe.{max (succ u1) (succ u4), succ u4, succ u1} (Equiv.{succ u4, succ u1} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y))) Z)) (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z)) (fun (_x : Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z)) => Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y))) Z) _x) (Equiv.instFunLikeEquiv.{succ u4, succ u1} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y))) Z)) (Equiv.symm.{succ u1, succ u4} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y))) Z) (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z)) (CategoryTheory.Adjunction.homEquiv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.Functor.adjunction.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (CategoryTheory.MonoidalCategory.tensorObj.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y)) Z)) (CategoryTheory.MonoidalClosed.uncurry.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.Functor.inv.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.isEquivalenceInv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6))) Z) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)) (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (Equiv.{succ u1, succ u4} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Z)))) (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Z)))) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Z)))) (fun (_x : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Z)))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Z)))) => Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Z))) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u4} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Z)))) (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Z)))) (Equiv.symm.{succ u4, succ u1} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Y) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Z))) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y (Prefunctor.obj.{succ u4, succ u1, u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u3, u2} D _inst_4 C _inst_1 (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6)) (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Z)))) (CategoryTheory.Adjunction.homEquiv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) (CategoryTheory.Functor.inv.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) (CategoryTheory.Functor.adjunction.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F)) _inst_6) Y (Prefunctor.obj.{succ u4, succ u4, u3, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u3, u3} D _inst_4 D _inst_4 (CategoryTheory.ihom.{u4, u3} D _inst_4 _inst_5 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X) (CategoryTheory.MonoidalClosed.closed.{u4, u3} D _inst_4 _inst_5 h (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) X)))) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_4 (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, u4, u2, u3} C _inst_1 _inst_2 D _inst_4 _inst_5 F))) Z)))) f))))
Case conversion may be inaccurate. Consider using '#align category_theory.monoidal_closed.of_equiv_uncurry_def CategoryTheory.MonoidalClosed.ofEquiv_uncurry_defₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
/-- Suppose we have a monoidal equivalence `F : C ≌ D`, with `D` monoidal closed. We can pull the
monoidal closed instance back along the equivalence. For `X, Y, Z : C`, this lemma describes the
resulting uncurrying map `Hom(Y, (X ⟶[C] Z)) → Hom(X ⊗ Y ⟶ Z)`. (`X ⟶[C] Z` is
defined to be `F⁻¹(F(X) ⟶[D] F(Z))`, so uncurrying in `C` is given by essentially conjugating
uncurrying in `D` by `F.`) -/
theorem ofEquiv_uncurry_def (F : MonoidalFunctor C D) [IsEquivalence F.toFunctor]
    [h : MonoidalClosed D] {X Y Z : C}
    (f : Y ⟶ (@ihom _ _ _ X <| (MonoidalClosed.ofEquiv F).1 X).obj Z) :
    @MonoidalClosed.uncurry _ _ _ _ _ _ ((MonoidalClosed.ofEquiv F).1 _) f =
      (compInvIso (F.commTensorLeft X)).inv.app Y ≫
        (F.1.1.inv.Adjunction.homEquiv (F.1.1.obj X ⊗ F.1.1.obj Y) Z).symm
          (MonoidalClosed.uncurry
            ((F.1.1.Adjunction.homEquiv Y ((ihom (F.1.1.obj X)).obj (F.1.1.obj Z))).symm f)) :=
  rfl
#align category_theory.monoidal_closed.of_equiv_uncurry_def CategoryTheory.MonoidalClosed.ofEquiv_uncurry_def

end OfEquiv

end MonoidalClosed

end CategoryTheory