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

! This file was ported from Lean 3 source module category_theory.adjunction.mates
! leanprover-community/mathlib commit ee05e9ce1322178f0c12004eb93c00d2c8c00ed2
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.Adjunction.Basic
import Mathbin.CategoryTheory.Conj

/-!
# Mate of natural transformations

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

This file establishes the bijection between the 2-cells

         L₁                  R₁
      C --→ D             C ←-- D
    G ↓  ↗  ↓ H         G ↓  ↘  ↓ H
      E --→ F             E ←-- F
         L₂                  R₂

where `L₁ ⊣ R₁` and `L₂ ⊣ R₂`, and shows that in the special case where `G,H` are identity then the
bijection preserves and reflects isomorphisms (i.e. we have bijections `(L₂ ⟶ L₁) ≃ (R₁ ⟶ R₂)`, and
if either side is an iso then the other side is as well).

On its own, this bijection is not particularly useful but it includes a number of interesting cases
as specializations.

For instance, this generalises the fact that adjunctions are unique (since if `L₁ ≅ L₂` then we
deduce `R₁ ≅ R₂`).
Another example arises from considering the square representing that a functor `H` preserves
products, in particular the morphism `HA ⨯ H- ⟶ H(A ⨯ -)`. Then provided `(A ⨯ -)` and `HA ⨯ -` have
left adjoints (for instance if the relevant categories are cartesian closed), the transferred
natural transformation is the exponential comparison morphism: `H(A ^ -) ⟶ HA ^ H-`.
Furthermore if `H` has a left adjoint `L`, this morphism is an isomorphism iff its mate
`L(HA ⨯ -) ⟶ A ⨯ L-` is an isomorphism, see
https://ncatlab.org/nlab/show/Frobenius+reciprocity#InCategoryTheory.
This also relates to Grothendieck's yoga of six operations, though this is not spelled out in
mathlib: https://ncatlab.org/nlab/show/six+operations.
-/

universe v₁ v₂ v₃ v₄ u₁ u₂ u₃ u₄

namespace CategoryTheory

open Category

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

section Square

variable {E : Type u₃} {F : Type u₄} [Category.{v₃} E] [Category.{v₄} F]

variable {G : C ⥤ E} {H : D ⥤ F} {L₁ : C ⥤ D} {R₁ : D ⥤ C} {L₂ : E ⥤ F} {R₂ : F ⥤ E}

variable (adj₁ : L₁ ⊣ R₁) (adj₂ : L₂ ⊣ R₂)

include adj₁ adj₂

#print CategoryTheory.transferNatTrans /-
/-- Suppose we have a square of functors (where the top and bottom are adjunctions `L₁ ⊣ R₁` and
`L₂ ⊣ R₂` respectively).

      C ↔ D
    G ↓   ↓ H
      E ↔ F

Then we have a bijection between natural transformations `G ⋙ L₂ ⟶ L₁ ⋙ H` and
`R₁ ⋙ G ⟶ H ⋙ R₂`.
This can be seen as a bijection of the 2-cells:

         L₁                  R₁
      C --→ D             C ←-- D
    G ↓  ↗  ↓ H         G ↓  ↘  ↓ H
      E --→ F             E ←-- F
         L₂                  R₂

Note that if one of the transformations is an iso, it does not imply the other is an iso.
-/
def transferNatTrans : (G ⋙ L₂ ⟶ L₁ ⋙ H) ≃ (R₁ ⋙ G ⟶ H ⋙ R₂)
    where
  toFun h :=
    { app := fun X => adj₂.Unit.app _ ≫ R₂.map (h.app _ ≫ H.map (adj₁.counit.app _))
      naturality' := fun X Y f => by
        dsimp
        rw [assoc, ← R₂.map_comp, assoc, ← H.map_comp, ← adj₁.counit_naturality, H.map_comp, ←
          functor.comp_map L₁, ← h.naturality_assoc]
        simp }
  invFun h :=
    { app := fun X => L₂.map (G.map (adj₁.Unit.app _) ≫ h.app _) ≫ adj₂.counit.app _
      naturality' := fun X Y f => by
        dsimp
        rw [← L₂.map_comp_assoc, ← G.map_comp_assoc, ← adj₁.unit_naturality, G.map_comp_assoc, ←
          functor.comp_map, h.naturality]
        simp }
  left_inv h := by
    ext X
    dsimp
    simp only [L₂.map_comp, assoc, adj₂.counit_naturality, adj₂.left_triangle_components_assoc, ←
      functor.comp_map G L₂, h.naturality_assoc, functor.comp_map L₁, ← H.map_comp,
      adj₁.left_triangle_components]
    dsimp
    simp
  -- See library note [dsimp, simp].
  right_inv h := by
    ext X
    dsimp
    simp [-functor.comp_map, ← functor.comp_map H, functor.comp_map R₁, -nat_trans.naturality, ←
      h.naturality, -functor.map_comp, ← functor.map_comp_assoc G, R₂.map_comp]
#align category_theory.transfer_nat_trans CategoryTheory.transferNatTrans
-/

/- warning: category_theory.transfer_nat_trans_counit -> CategoryTheory.transferNatTrans_counit is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u5}} {D : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u5} C] [_inst_2 : CategoryTheory.Category.{u2, u6} D] {E : Type.{u7}} {F : Type.{u8}} [_inst_3 : CategoryTheory.Category.{u3, u7} E] [_inst_4 : CategoryTheory.Category.{u4, u8} F] {G : CategoryTheory.Functor.{u1, u3, u5, u7} C _inst_1 E _inst_3} {H : CategoryTheory.Functor.{u2, u4, u6, u8} D _inst_2 F _inst_4} {L₁ : CategoryTheory.Functor.{u1, u2, u5, u6} C _inst_1 D _inst_2} {R₁ : CategoryTheory.Functor.{u2, u1, u6, u5} D _inst_2 C _inst_1} {L₂ : CategoryTheory.Functor.{u3, u4, u7, u8} E _inst_3 F _inst_4} {R₂ : CategoryTheory.Functor.{u4, u3, u8, u7} F _inst_4 E _inst_3} (adj₁ : CategoryTheory.Adjunction.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁ R₁) (adj₂ : CategoryTheory.Adjunction.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂ R₂) (f : Quiver.Hom.{succ (max u5 u4), max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Y : D), Eq.{succ u4} (Quiver.Hom.{succ u4, u8} F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.obj.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂ (CategoryTheory.Functor.obj.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) Y)) (CategoryTheory.Functor.obj.{u4, u4, u8, u8} F _inst_4 F _inst_4 (CategoryTheory.Functor.id.{u4, u8} F _inst_4) (CategoryTheory.Functor.obj.{u2, u4, u6, u8} D _inst_2 F _inst_4 H Y))) (CategoryTheory.CategoryStruct.comp.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4) (CategoryTheory.Functor.obj.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂ (CategoryTheory.Functor.obj.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) Y)) (CategoryTheory.Functor.obj.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂ (CategoryTheory.Functor.obj.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂) Y)) (CategoryTheory.Functor.obj.{u4, u4, u8, u8} F _inst_4 F _inst_4 (CategoryTheory.Functor.id.{u4, u8} F _inst_4) (CategoryTheory.Functor.obj.{u2, u4, u6, u8} D _inst_2 F _inst_4 H Y)) (CategoryTheory.Functor.map.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂ (CategoryTheory.Functor.obj.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) Y) (CategoryTheory.Functor.obj.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂) Y) (CategoryTheory.NatTrans.app.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂) (coeFn.{max 1 (max (succ (max u5 u4)) (succ (max u6 u3))) (succ (max u6 u3)) (succ (max u5 u4)), max (succ (max u5 u4)) (succ (max u6 u3))} (Equiv.{succ (max u5 u4), succ (max u6 u3)} (Quiver.Hom.{succ (max u5 u4), max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Quiver.Hom.{succ (max u6 u3), max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u3, u6, u7} D _inst_2 E _inst_3))) (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂))) (fun (_x : Equiv.{succ (max u5 u4), succ (max u6 u3)} (Quiver.Hom.{succ (max u5 u4), max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Quiver.Hom.{succ (max u6 u3), max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u3, u6, u7} D _inst_2 E _inst_3))) (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂))) => (Quiver.Hom.{succ (max u5 u4), max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) -> (Quiver.Hom.{succ (max u6 u3), max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u3, u6, u7} D _inst_2 E _inst_3))) (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂))) (Equiv.hasCoeToFun.{succ (max u5 u4), succ (max u6 u3)} (Quiver.Hom.{succ (max u5 u4), max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Quiver.Hom.{succ (max u6 u3), max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u3, u6, u7} D _inst_2 E _inst_3))) (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂))) (CategoryTheory.transferNatTrans.{u1, u2, u3, u4, u5, u6, u7, u8} C D _inst_1 _inst_2 E F _inst_3 _inst_4 G H L₁ R₁ L₂ R₂ adj₁ adj₂) f) Y)) (CategoryTheory.NatTrans.app.{u4, u4, u8, u8} F _inst_4 F _inst_4 (CategoryTheory.Functor.comp.{u4, u3, u4, u8, u7, u8} F _inst_4 E _inst_3 F _inst_4 R₂ L₂) (CategoryTheory.Functor.id.{u4, u8} F _inst_4) (CategoryTheory.Adjunction.counit.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂ R₂ adj₂) (CategoryTheory.Functor.obj.{u2, u4, u6, u8} D _inst_2 F _inst_4 H Y))) (CategoryTheory.CategoryStruct.comp.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4) (CategoryTheory.Functor.obj.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂ (CategoryTheory.Functor.obj.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) Y)) (CategoryTheory.Functor.obj.{u1, u4, u5, u8} C _inst_1 F _inst_4 (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H) (CategoryTheory.Functor.obj.{u2, u1, u6, u5} D _inst_2 C _inst_1 R₁ Y)) (CategoryTheory.Functor.obj.{u4, u4, u8, u8} F _inst_4 F _inst_4 (CategoryTheory.Functor.id.{u4, u8} F _inst_4) (CategoryTheory.Functor.obj.{u2, u4, u6, u8} D _inst_2 F _inst_4 H Y)) (CategoryTheory.NatTrans.app.{u1, u4, u5, u8} C _inst_1 F _inst_4 (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H) f (CategoryTheory.Functor.obj.{u2, u1, u6, u5} D _inst_2 C _inst_1 R₁ Y)) (CategoryTheory.Functor.map.{u2, u4, u6, u8} D _inst_2 F _inst_4 H (CategoryTheory.Functor.obj.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁ (CategoryTheory.Functor.obj.{u2, u1, u6, u5} D _inst_2 C _inst_1 R₁ Y)) Y (CategoryTheory.NatTrans.app.{u2, u2, u6, u6} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u2, u1, u2, u6, u5, u6} D _inst_2 C _inst_1 D _inst_2 R₁ L₁) (CategoryTheory.Functor.id.{u2, u6} D _inst_2) (CategoryTheory.Adjunction.counit.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁ R₁ adj₁) Y)))
but is expected to have type
  forall {C : Type.{u5}} {D : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u5} C] [_inst_2 : CategoryTheory.Category.{u2, u6} D] {E : Type.{u7}} {F : Type.{u8}} [_inst_3 : CategoryTheory.Category.{u3, u7} E] [_inst_4 : CategoryTheory.Category.{u4, u8} F] {G : CategoryTheory.Functor.{u1, u3, u5, u7} C _inst_1 E _inst_3} {H : CategoryTheory.Functor.{u2, u4, u6, u8} D _inst_2 F _inst_4} {L₁ : CategoryTheory.Functor.{u1, u2, u5, u6} C _inst_1 D _inst_2} {R₁ : CategoryTheory.Functor.{u2, u1, u6, u5} D _inst_2 C _inst_1} {L₂ : CategoryTheory.Functor.{u3, u4, u7, u8} E _inst_3 F _inst_4} {R₂ : CategoryTheory.Functor.{u4, u3, u8, u7} F _inst_4 E _inst_3} (adj₁ : CategoryTheory.Adjunction.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁ R₁) (adj₂ : CategoryTheory.Adjunction.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂ R₂) (f : Quiver.Hom.{max (succ u5) (succ u4), max (max (max u8 u5) u4) u1} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Y : D), Eq.{succ u4} (Quiver.Hom.{succ u4, u8} F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (Prefunctor.obj.{succ u3, succ u4, u7, u8} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂) (Prefunctor.obj.{succ u2, succ u3, u6, u7} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G)) Y)) (Prefunctor.obj.{succ u4, succ u4, u8, u8} F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u8, u8} F _inst_4 F _inst_4 (CategoryTheory.Functor.id.{u4, u8} F _inst_4)) (Prefunctor.obj.{succ u2, succ u4, u6, u8} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u6, u8} D _inst_2 F _inst_4 H) Y))) (CategoryTheory.CategoryStruct.comp.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4) (Prefunctor.obj.{succ u3, succ u4, u7, u8} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂) (Prefunctor.obj.{succ u2, succ u3, u6, u7} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G)) Y)) (Prefunctor.obj.{succ u3, succ u4, u7, u8} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂) (Prefunctor.obj.{succ u2, succ u3, u6, u7} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂)) Y)) (Prefunctor.obj.{succ u4, succ u4, u8, u8} F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u8, u8} F _inst_4 F _inst_4 (CategoryTheory.Functor.id.{u4, u8} F _inst_4)) (Prefunctor.obj.{succ u2, succ u4, u6, u8} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u6, u8} D _inst_2 F _inst_4 H) Y)) (Prefunctor.map.{succ u3, succ u4, u7, u8} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂) (Prefunctor.obj.{succ u2, succ u3, u6, u7} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G)) Y) (Prefunctor.obj.{succ u2, succ u3, u6, u7} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂)) Y) (CategoryTheory.NatTrans.app.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂) (FunLike.coe.{max (max (max (succ u5) (succ u6)) (succ u3)) (succ u4), max (succ u5) (succ u4), max (succ u6) (succ u3)} (Equiv.{max (succ u5) (succ u4), max (succ u6) (succ u3)} (Quiver.Hom.{max (succ u5) (succ u4), max (max (max u8 u5) u4) u1} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Quiver.Hom.{max (succ u6) (succ u3), max (max (max u7 u6) u3) u2} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u6 u3, max (max (max u6 u7) u2) u3} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u6 u3, max (max (max u6 u7) u2) u3} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u3, u6, u7} D _inst_2 E _inst_3))) (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂))) (Quiver.Hom.{max (succ u5) (succ u4), max (max (max u8 u5) u4) u1} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (fun (_x : Quiver.Hom.{max (succ u5) (succ u4), max (max (max u8 u5) u4) u1} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{max (succ u5) (succ u4), max (max (max u8 u5) u4) u1} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) => Quiver.Hom.{max (succ u6) (succ u3), max (max (max u7 u6) u3) u2} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u6 u3, max (max (max u6 u7) u2) u3} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u6 u3, max (max (max u6 u7) u2) u3} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u3, u6, u7} D _inst_2 E _inst_3))) (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂)) _x) (Equiv.instFunLikeEquiv.{max (succ u5) (succ u4), max (succ u6) (succ u3)} (Quiver.Hom.{max (succ u5) (succ u4), max (max (max u8 u5) u4) u1} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Quiver.Hom.{max (succ u6) (succ u3), max (max (max u7 u6) u3) u2} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u6 u3, max (max (max u6 u7) u2) u3} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u6 u3, max (max (max u6 u7) u2) u3} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u3, u6, u7} D _inst_2 E _inst_3))) (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂))) (CategoryTheory.transferNatTrans.{u1, u2, u3, u4, u5, u6, u7, u8} C D _inst_1 _inst_2 E F _inst_3 _inst_4 G H L₁ R₁ L₂ R₂ adj₁ adj₂) f) Y)) (CategoryTheory.NatTrans.app.{u4, u4, u8, u8} F _inst_4 F _inst_4 (CategoryTheory.Functor.comp.{u4, u3, u4, u8, u7, u8} F _inst_4 E _inst_3 F _inst_4 R₂ L₂) (CategoryTheory.Functor.id.{u4, u8} F _inst_4) (CategoryTheory.Adjunction.counit.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂ R₂ adj₂) (Prefunctor.obj.{succ u2, succ u4, u6, u8} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u6, u8} D _inst_2 F _inst_4 H) Y))) (CategoryTheory.CategoryStruct.comp.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4) (Prefunctor.obj.{succ u1, succ u4, u5, u8} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u5, u8} C _inst_1 F _inst_4 (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂)) (Prefunctor.obj.{succ u2, succ u1, u6, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u6, u5} D _inst_2 C _inst_1 R₁) Y)) (Prefunctor.obj.{succ u1, succ u4, u5, u8} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u5, u8} C _inst_1 F _inst_4 (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Prefunctor.obj.{succ u2, succ u1, u6, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u6, u5} D _inst_2 C _inst_1 R₁) Y)) (Prefunctor.obj.{succ u2, succ u4, u6, u8} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u6, u8} D _inst_2 F _inst_4 H) (Prefunctor.obj.{succ u2, succ u2, u6, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u6, u6} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u6} D _inst_2)) Y)) (CategoryTheory.NatTrans.app.{u1, u4, u5, u8} C _inst_1 F _inst_4 (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H) f (Prefunctor.obj.{succ u2, succ u1, u6, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u6, u5} D _inst_2 C _inst_1 R₁) Y)) (Prefunctor.map.{succ u2, succ u4, u6, u8} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u6, u8} D _inst_2 F _inst_4 H) (Prefunctor.obj.{succ u1, succ u2, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁) (Prefunctor.obj.{succ u2, succ u1, u6, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u6, u5} D _inst_2 C _inst_1 R₁) Y)) (Prefunctor.obj.{succ u2, succ u2, u6, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u6, u6} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u6} D _inst_2)) Y) (CategoryTheory.NatTrans.app.{u2, u2, u6, u6} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u2, u1, u2, u6, u5, u6} D _inst_2 C _inst_1 D _inst_2 R₁ L₁) (CategoryTheory.Functor.id.{u2, u6} D _inst_2) (CategoryTheory.Adjunction.counit.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁ R₁ adj₁) Y)))
Case conversion may be inaccurate. Consider using '#align category_theory.transfer_nat_trans_counit CategoryTheory.transferNatTrans_counitₓ'. -/
theorem transferNatTrans_counit (f : G ⋙ L₂ ⟶ L₁ ⋙ H) (Y : D) :
    L₂.map ((transferNatTrans adj₁ adj₂ f).app _) ≫ adj₂.counit.app _ =
      f.app _ ≫ H.map (adj₁.counit.app Y) :=
  by
  erw [functor.map_comp]
  simp
#align category_theory.transfer_nat_trans_counit CategoryTheory.transferNatTrans_counit

/- warning: category_theory.unit_transfer_nat_trans -> CategoryTheory.unit_transferNatTrans is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u5}} {D : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u5} C] [_inst_2 : CategoryTheory.Category.{u2, u6} D] {E : Type.{u7}} {F : Type.{u8}} [_inst_3 : CategoryTheory.Category.{u3, u7} E] [_inst_4 : CategoryTheory.Category.{u4, u8} F] {G : CategoryTheory.Functor.{u1, u3, u5, u7} C _inst_1 E _inst_3} {H : CategoryTheory.Functor.{u2, u4, u6, u8} D _inst_2 F _inst_4} {L₁ : CategoryTheory.Functor.{u1, u2, u5, u6} C _inst_1 D _inst_2} {R₁ : CategoryTheory.Functor.{u2, u1, u6, u5} D _inst_2 C _inst_1} {L₂ : CategoryTheory.Functor.{u3, u4, u7, u8} E _inst_3 F _inst_4} {R₂ : CategoryTheory.Functor.{u4, u3, u8, u7} F _inst_4 E _inst_3} (adj₁ : CategoryTheory.Adjunction.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁ R₁) (adj₂ : CategoryTheory.Adjunction.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂ R₂) (f : Quiver.Hom.{succ (max u5 u4), max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (X : C), Eq.{succ u3} (Quiver.Hom.{succ u3, u7} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.obj.{u1, u3, u5, u7} C _inst_1 E _inst_3 G (CategoryTheory.Functor.obj.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1) X)) (CategoryTheory.Functor.obj.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂) (CategoryTheory.Functor.obj.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁ X))) (CategoryTheory.CategoryStruct.comp.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3) (CategoryTheory.Functor.obj.{u1, u3, u5, u7} C _inst_1 E _inst_3 G (CategoryTheory.Functor.obj.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u3, u5, u7} C _inst_1 E _inst_3 G (CategoryTheory.Functor.obj.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u1, u5, u6, u5} C _inst_1 D _inst_2 C _inst_1 L₁ R₁) X)) (CategoryTheory.Functor.obj.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂) (CategoryTheory.Functor.obj.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁ X)) (CategoryTheory.Functor.map.{u1, u3, u5, u7} C _inst_1 E _inst_3 G (CategoryTheory.Functor.obj.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u1, u5, u6, u5} C _inst_1 D _inst_2 C _inst_1 L₁ R₁) X) (CategoryTheory.NatTrans.app.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1) (CategoryTheory.Functor.comp.{u1, u2, u1, u5, u6, u5} C _inst_1 D _inst_2 C _inst_1 L₁ R₁) (CategoryTheory.Adjunction.unit.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁ R₁ adj₁) X)) (CategoryTheory.NatTrans.app.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂) (coeFn.{max 1 (max (succ (max u5 u4)) (succ (max u6 u3))) (succ (max u6 u3)) (succ (max u5 u4)), max (succ (max u5 u4)) (succ (max u6 u3))} (Equiv.{succ (max u5 u4), succ (max u6 u3)} (Quiver.Hom.{succ (max u5 u4), max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Quiver.Hom.{succ (max u6 u3), max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u3, u6, u7} D _inst_2 E _inst_3))) (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂))) (fun (_x : Equiv.{succ (max u5 u4), succ (max u6 u3)} (Quiver.Hom.{succ (max u5 u4), max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Quiver.Hom.{succ (max u6 u3), max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u3, u6, u7} D _inst_2 E _inst_3))) (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂))) => (Quiver.Hom.{succ (max u5 u4), max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) -> (Quiver.Hom.{succ (max u6 u3), max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u3, u6, u7} D _inst_2 E _inst_3))) (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂))) (Equiv.hasCoeToFun.{succ (max u5 u4), succ (max u6 u3)} (Quiver.Hom.{succ (max u5 u4), max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max u1 u4 u5 u8} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Quiver.Hom.{succ (max u6 u3), max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u6 u3, max u2 u3 u6 u7} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u3, u6, u7} D _inst_2 E _inst_3))) (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂))) (CategoryTheory.transferNatTrans.{u1, u2, u3, u4, u5, u6, u7, u8} C D _inst_1 _inst_2 E F _inst_3 _inst_4 G H L₁ R₁ L₂ R₂ adj₁ adj₂) f) (CategoryTheory.Functor.obj.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁ X))) (CategoryTheory.CategoryStruct.comp.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3) (CategoryTheory.Functor.obj.{u1, u3, u5, u7} C _inst_1 E _inst_3 G (CategoryTheory.Functor.obj.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1) X)) (CategoryTheory.Functor.obj.{u3, u3, u7, u7} E _inst_3 E _inst_3 (CategoryTheory.Functor.comp.{u3, u4, u3, u7, u8, u7} E _inst_3 F _inst_4 E _inst_3 L₂ R₂) (CategoryTheory.Functor.obj.{u1, u3, u5, u7} C _inst_1 E _inst_3 G (CategoryTheory.Functor.obj.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1) X))) (CategoryTheory.Functor.obj.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂) (CategoryTheory.Functor.obj.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁ X)) (CategoryTheory.NatTrans.app.{u3, u3, u7, u7} E _inst_3 E _inst_3 (CategoryTheory.Functor.id.{u3, u7} E _inst_3) (CategoryTheory.Functor.comp.{u3, u4, u3, u7, u8, u7} E _inst_3 F _inst_4 E _inst_3 L₂ R₂) (CategoryTheory.Adjunction.unit.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂ R₂ adj₂) (CategoryTheory.Functor.obj.{u1, u3, u5, u7} C _inst_1 E _inst_3 G (CategoryTheory.Functor.obj.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1) X))) (CategoryTheory.Functor.map.{u4, u3, u8, u7} F _inst_4 E _inst_3 R₂ (CategoryTheory.Functor.obj.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂ (CategoryTheory.Functor.obj.{u1, u3, u5, u7} C _inst_1 E _inst_3 G (CategoryTheory.Functor.obj.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1) X))) (CategoryTheory.Functor.obj.{u2, u4, u6, u8} D _inst_2 F _inst_4 H (CategoryTheory.Functor.obj.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁ X)) (CategoryTheory.NatTrans.app.{u1, u4, u5, u8} C _inst_1 F _inst_4 (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H) f (CategoryTheory.Functor.obj.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1) X))))
but is expected to have type
  forall {C : Type.{u5}} {D : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u5} C] [_inst_2 : CategoryTheory.Category.{u2, u6} D] {E : Type.{u7}} {F : Type.{u8}} [_inst_3 : CategoryTheory.Category.{u3, u7} E] [_inst_4 : CategoryTheory.Category.{u4, u8} F] {G : CategoryTheory.Functor.{u1, u3, u5, u7} C _inst_1 E _inst_3} {H : CategoryTheory.Functor.{u2, u4, u6, u8} D _inst_2 F _inst_4} {L₁ : CategoryTheory.Functor.{u1, u2, u5, u6} C _inst_1 D _inst_2} {R₁ : CategoryTheory.Functor.{u2, u1, u6, u5} D _inst_2 C _inst_1} {L₂ : CategoryTheory.Functor.{u3, u4, u7, u8} E _inst_3 F _inst_4} {R₂ : CategoryTheory.Functor.{u4, u3, u8, u7} F _inst_4 E _inst_3} (adj₁ : CategoryTheory.Adjunction.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁ R₁) (adj₂ : CategoryTheory.Adjunction.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂ R₂) (f : Quiver.Hom.{max (succ u5) (succ u4), max (max (max u8 u5) u4) u1} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (X : C), Eq.{succ u3} (Quiver.Hom.{succ u3, u7} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (Prefunctor.obj.{succ u1, succ u3, u5, u7} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u5, u7} C _inst_1 E _inst_3 G) (Prefunctor.obj.{succ u1, succ u1, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u3, u6, u7} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂)) (Prefunctor.obj.{succ u1, succ u2, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁) X))) (CategoryTheory.CategoryStruct.comp.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3) (Prefunctor.obj.{succ u1, succ u3, u5, u7} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u5, u7} C _inst_1 E _inst_3 G) (Prefunctor.obj.{succ u1, succ u1, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1)) X)) (Prefunctor.obj.{succ u1, succ u3, u5, u7} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u5, u7} C _inst_1 E _inst_3 G) (Prefunctor.obj.{succ u1, succ u1, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u1, u5, u6, u5} C _inst_1 D _inst_2 C _inst_1 L₁ R₁)) X)) (Prefunctor.obj.{succ u2, succ u3, u6, u7} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂)) (Prefunctor.obj.{succ u1, succ u2, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁) X)) (Prefunctor.map.{succ u1, succ u3, u5, u7} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u5, u7} C _inst_1 E _inst_3 G) (Prefunctor.obj.{succ u1, succ u1, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1)) X) (Prefunctor.obj.{succ u1, succ u1, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u1, u5, u6, u5} C _inst_1 D _inst_2 C _inst_1 L₁ R₁)) X) (CategoryTheory.NatTrans.app.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1) (CategoryTheory.Functor.comp.{u1, u2, u1, u5, u6, u5} C _inst_1 D _inst_2 C _inst_1 L₁ R₁) (CategoryTheory.Adjunction.unit.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁ R₁ adj₁) X)) (CategoryTheory.NatTrans.app.{u2, u3, u6, u7} D _inst_2 E _inst_3 (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂) (FunLike.coe.{max (max (max (succ u5) (succ u6)) (succ u3)) (succ u4), max (succ u5) (succ u4), max (succ u6) (succ u3)} (Equiv.{max (succ u5) (succ u4), max (succ u6) (succ u3)} (Quiver.Hom.{max (succ u5) (succ u4), max (max (max u8 u5) u4) u1} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Quiver.Hom.{max (succ u6) (succ u3), max (max (max u7 u6) u3) u2} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u6 u3, max (max (max u6 u7) u2) u3} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u6 u3, max (max (max u6 u7) u2) u3} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u3, u6, u7} D _inst_2 E _inst_3))) (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂))) (Quiver.Hom.{max (succ u5) (succ u4), max (max (max u8 u5) u4) u1} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (fun (_x : Quiver.Hom.{max (succ u5) (succ u4), max (max (max u8 u5) u4) u1} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{max (succ u5) (succ u4), max (max (max u8 u5) u4) u1} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) => Quiver.Hom.{max (succ u6) (succ u3), max (max (max u7 u6) u3) u2} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u6 u3, max (max (max u6 u7) u2) u3} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u6 u3, max (max (max u6 u7) u2) u3} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u3, u6, u7} D _inst_2 E _inst_3))) (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂)) _x) (Equiv.instFunLikeEquiv.{max (succ u5) (succ u4), max (succ u6) (succ u3)} (Quiver.Hom.{max (succ u5) (succ u4), max (max (max u8 u5) u4) u1} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u8) u1) u4} (CategoryTheory.Functor.{u1, u4, u5, u8} C _inst_1 F _inst_4) (CategoryTheory.Functor.category.{u1, u4, u5, u8} C _inst_1 F _inst_4))) (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Quiver.Hom.{max (succ u6) (succ u3), max (max (max u7 u6) u3) u2} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u6 u3, max (max (max u6 u7) u2) u3} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u6 u3, max (max (max u6 u7) u2) u3} (CategoryTheory.Functor.{u2, u3, u6, u7} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u3, u6, u7} D _inst_2 E _inst_3))) (CategoryTheory.Functor.comp.{u2, u1, u3, u6, u5, u7} D _inst_2 C _inst_1 E _inst_3 R₁ G) (CategoryTheory.Functor.comp.{u2, u4, u3, u6, u8, u7} D _inst_2 F _inst_4 E _inst_3 H R₂))) (CategoryTheory.transferNatTrans.{u1, u2, u3, u4, u5, u6, u7, u8} C D _inst_1 _inst_2 E F _inst_3 _inst_4 G H L₁ R₁ L₂ R₂ adj₁ adj₂) f) (Prefunctor.obj.{succ u1, succ u2, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u6} D (CategoryTheory.Category.toCategoryStruct.{u2, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u5, u6} C _inst_1 D _inst_2 L₁) X))) (CategoryTheory.CategoryStruct.comp.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3) (Prefunctor.obj.{succ u3, succ u3, u7, u7} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u7, u7} E _inst_3 E _inst_3 (CategoryTheory.Functor.id.{u3, u7} E _inst_3)) (Prefunctor.obj.{succ u1, succ u3, u5, u7} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u5, u7} C _inst_1 E _inst_3 G) (Prefunctor.obj.{succ u1, succ u1, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1)) X))) (Prefunctor.obj.{succ u3, succ u3, u7, u7} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u7, u7} E _inst_3 E _inst_3 (CategoryTheory.Functor.comp.{u3, u4, u3, u7, u8, u7} E _inst_3 F _inst_4 E _inst_3 L₂ R₂)) (Prefunctor.obj.{succ u1, succ u3, u5, u7} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u5, u7} C _inst_1 E _inst_3 G) (Prefunctor.obj.{succ u1, succ u1, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1)) X))) (Prefunctor.obj.{succ u4, succ u3, u8, u7} F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u8, u7} F _inst_4 E _inst_3 R₂) (Prefunctor.obj.{succ u1, succ u4, u5, u8} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u5, u8} C _inst_1 F _inst_4 (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Prefunctor.obj.{succ u1, succ u1, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1)) X))) (CategoryTheory.NatTrans.app.{u3, u3, u7, u7} E _inst_3 E _inst_3 (CategoryTheory.Functor.id.{u3, u7} E _inst_3) (CategoryTheory.Functor.comp.{u3, u4, u3, u7, u8, u7} E _inst_3 F _inst_4 E _inst_3 L₂ R₂) (CategoryTheory.Adjunction.unit.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂ R₂ adj₂) (Prefunctor.obj.{succ u1, succ u3, u5, u7} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u5, u7} C _inst_1 E _inst_3 G) (Prefunctor.obj.{succ u1, succ u1, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1)) X))) (Prefunctor.map.{succ u4, succ u3, u8, u7} F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u8, u7} F _inst_4 E _inst_3 R₂) (Prefunctor.obj.{succ u3, succ u4, u7, u8} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u7, u8} E _inst_3 F _inst_4 L₂) (Prefunctor.obj.{succ u1, succ u3, u5, u7} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u7} E (CategoryTheory.Category.toCategoryStruct.{u3, u7} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u5, u7} C _inst_1 E _inst_3 G) (Prefunctor.obj.{succ u1, succ u1, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1)) X))) (Prefunctor.obj.{succ u1, succ u4, u5, u8} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) F (CategoryTheory.CategoryStruct.toQuiver.{u4, u8} F (CategoryTheory.Category.toCategoryStruct.{u4, u8} F _inst_4)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u5, u8} C _inst_1 F _inst_4 (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H)) (Prefunctor.obj.{succ u1, succ u1, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1)) X)) (CategoryTheory.NatTrans.app.{u1, u4, u5, u8} C _inst_1 F _inst_4 (CategoryTheory.Functor.comp.{u1, u3, u4, u5, u7, u8} C _inst_1 E _inst_3 F _inst_4 G L₂) (CategoryTheory.Functor.comp.{u1, u2, u4, u5, u6, u8} C _inst_1 D _inst_2 F _inst_4 L₁ H) f (Prefunctor.obj.{succ u1, succ u1, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u5} C (CategoryTheory.Category.toCategoryStruct.{u1, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u5} C _inst_1)) X))))
Case conversion may be inaccurate. Consider using '#align category_theory.unit_transfer_nat_trans CategoryTheory.unit_transferNatTransₓ'. -/
theorem unit_transferNatTrans (f : G ⋙ L₂ ⟶ L₁ ⋙ H) (X : C) :
    G.map (adj₁.Unit.app X) ≫ (transferNatTrans adj₁ adj₂ f).app _ =
      adj₂.Unit.app _ ≫ R₂.map (f.app _) :=
  by
  dsimp [transfer_nat_trans]
  rw [← adj₂.unit_naturality_assoc, ← R₂.map_comp, ← functor.comp_map G L₂, f.naturality_assoc,
    functor.comp_map, ← H.map_comp]
  dsimp; simp
#align category_theory.unit_transfer_nat_trans CategoryTheory.unit_transferNatTrans

-- See library note [dsimp, simp]
end Square

section Self

variable {L₁ L₂ L₃ : C ⥤ D} {R₁ R₂ R₃ : D ⥤ C}

variable (adj₁ : L₁ ⊣ R₁) (adj₂ : L₂ ⊣ R₂) (adj₃ : L₃ ⊣ R₃)

#print CategoryTheory.transferNatTransSelf /-
/-- Given two adjunctions `L₁ ⊣ R₁` and `L₂ ⊣ R₂` both between categories `C`, `D`, there is a
bijection between natural transformations `L₂ ⟶ L₁` and natural transformations `R₁ ⟶ R₂`.
This is defined as a special case of `transfer_nat_trans`, where the two "vertical" functors are
identity.
TODO: Generalise to when the two vertical functors are equivalences rather than being exactly `𝟭`.

Furthermore, this bijection preserves (and reflects) isomorphisms, i.e. a transformation is an iso
iff its image under the bijection is an iso, see eg `category_theory.transfer_nat_trans_self_iso`.
This is in contrast to the general case `transfer_nat_trans` which does not in general have this
property.
-/
def transferNatTransSelf : (L₂ ⟶ L₁) ≃ (R₁ ⟶ R₂) :=
  calc
    (L₂ ⟶ L₁) ≃ _ := (Iso.homCongr L₂.leftUnitor L₁.rightUnitor).symm
    _ ≃ _ := (transferNatTrans adj₁ adj₂)
    _ ≃ (R₁ ⟶ R₂) := R₁.rightUnitor.homCongr R₂.leftUnitor

#align category_theory.transfer_nat_trans_self CategoryTheory.transferNatTransSelf
-/

/- warning: category_theory.transfer_nat_trans_self_counit -> CategoryTheory.transferNatTransSelf_counit is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u3}} {D : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u4} D] {L₁ : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2} {L₂ : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2} {R₁ : CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1} {R₂ : CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1} (adj₁ : CategoryTheory.Adjunction.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁ R₁) (adj₂ : CategoryTheory.Adjunction.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ R₂) (f : Quiver.Hom.{succ (max u3 u2), max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (X : D), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ (CategoryTheory.Functor.obj.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁ X)) (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) X)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ (CategoryTheory.Functor.obj.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁ X)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ (CategoryTheory.Functor.obj.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₂ X)) (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) X) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ (CategoryTheory.Functor.obj.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁ X) (CategoryTheory.Functor.obj.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₂ X) (CategoryTheory.NatTrans.app.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁ R₂ (coeFn.{max 1 (max (succ (max u3 u2)) (succ (max u4 u1))) (succ (max u4 u1)) (succ (max u3 u2)), max (succ (max u3 u2)) (succ (max u4 u1))} (Equiv.{succ (max u3 u2), succ (max u4 u1)} (Quiver.Hom.{succ (max u3 u2), max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (Quiver.Hom.{succ (max u4 u1), max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u2, u1, u4, u3} D _inst_2 C _inst_1))) R₁ R₂)) (fun (_x : Equiv.{succ (max u3 u2), succ (max u4 u1)} (Quiver.Hom.{succ (max u3 u2), max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (Quiver.Hom.{succ (max u4 u1), max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u2, u1, u4, u3} D _inst_2 C _inst_1))) R₁ R₂)) => (Quiver.Hom.{succ (max u3 u2), max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) -> (Quiver.Hom.{succ (max u4 u1), max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u2, u1, u4, u3} D _inst_2 C _inst_1))) R₁ R₂)) (Equiv.hasCoeToFun.{succ (max u3 u2), succ (max u4 u1)} (Quiver.Hom.{succ (max u3 u2), max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (Quiver.Hom.{succ (max u4 u1), max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u2, u1, u4, u3} D _inst_2 C _inst_1))) R₁ R₂)) (CategoryTheory.transferNatTransSelf.{u1, u2, u3, u4} C D _inst_1 _inst_2 L₁ L₂ R₁ R₂ adj₁ adj₂) f) X)) (CategoryTheory.NatTrans.app.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u2, u1, u2, u4, u3, u4} D _inst_2 C _inst_1 D _inst_2 R₂ L₂) (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Adjunction.counit.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ R₂ adj₂) X)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ (CategoryTheory.Functor.obj.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁ X)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁ (CategoryTheory.Functor.obj.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁ X)) (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) X) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ L₁ f (CategoryTheory.Functor.obj.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁ X)) (CategoryTheory.NatTrans.app.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u2, u1, u2, u4, u3, u4} D _inst_2 C _inst_1 D _inst_2 R₁ L₁) (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Adjunction.counit.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁ R₁ adj₁) X))
but is expected to have type
  forall {C : Type.{u3}} {D : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u4} D] {L₁ : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2} {L₂ : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2} {R₁ : CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1} {R₂ : CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1} (adj₁ : CategoryTheory.Adjunction.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁ R₁) (adj₂ : CategoryTheory.Adjunction.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ R₂) (f : Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (X : D), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂) (Prefunctor.obj.{succ u2, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁) X)) (Prefunctor.obj.{succ u2, succ u2, u4, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂) (Prefunctor.obj.{succ u2, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁) X)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂) (Prefunctor.obj.{succ u2, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₂) X)) (Prefunctor.obj.{succ u2, succ u2, u4, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2)) X) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂) (Prefunctor.obj.{succ u2, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁) X) (Prefunctor.obj.{succ u2, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₂) X) (CategoryTheory.NatTrans.app.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁ R₂ (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u1)) (succ u2), max (succ u3) (succ u2), max (succ u4) (succ u1)} (Equiv.{max (succ u3) (succ u2), max (succ u4) (succ u1)} (Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (Quiver.Hom.{max (succ u4) (succ u1), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u2, u1, u4, u3} D _inst_2 C _inst_1))) R₁ R₂)) (Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (fun (_x : Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) => Quiver.Hom.{max (succ u4) (succ u1), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u2, u1, u4, u3} D _inst_2 C _inst_1))) R₁ R₂) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (succ u4) (succ u1)} (Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (Quiver.Hom.{max (succ u4) (succ u1), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u2, u1, u4, u3} D _inst_2 C _inst_1))) R₁ R₂)) (CategoryTheory.transferNatTransSelf.{u1, u2, u3, u4} C D _inst_1 _inst_2 L₁ L₂ R₁ R₂ adj₁ adj₂) f) X)) (CategoryTheory.NatTrans.app.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u2, u1, u2, u4, u3, u4} D _inst_2 C _inst_1 D _inst_2 R₂ L₂) (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Adjunction.counit.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ R₂ adj₂) X)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂) (Prefunctor.obj.{succ u2, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁) X)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁) (Prefunctor.obj.{succ u2, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁) X)) (Prefunctor.obj.{succ u2, succ u2, u4, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2)) X) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ L₁ f (Prefunctor.obj.{succ u2, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁) X)) (CategoryTheory.NatTrans.app.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u2, u1, u2, u4, u3, u4} D _inst_2 C _inst_1 D _inst_2 R₁ L₁) (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Adjunction.counit.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁ R₁ adj₁) X))
Case conversion may be inaccurate. Consider using '#align category_theory.transfer_nat_trans_self_counit CategoryTheory.transferNatTransSelf_counitₓ'. -/
theorem transferNatTransSelf_counit (f : L₂ ⟶ L₁) (X) :
    L₂.map ((transferNatTransSelf adj₁ adj₂ f).app _) ≫ adj₂.counit.app X =
      f.app _ ≫ adj₁.counit.app X :=
  by
  dsimp [transfer_nat_trans_self]
  rw [id_comp, comp_id]
  have := transfer_nat_trans_counit adj₁ adj₂ (L₂.left_unitor.hom ≫ f ≫ L₁.right_unitor.inv) X
  dsimp at this
  rw [this]
  simp
#align category_theory.transfer_nat_trans_self_counit CategoryTheory.transferNatTransSelf_counit

/- warning: category_theory.unit_transfer_nat_trans_self -> CategoryTheory.unit_transferNatTransSelf is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u3}} {D : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u4} D] {L₁ : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2} {L₂ : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2} {R₁ : CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1} {R₂ : CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1} (adj₁ : CategoryTheory.Adjunction.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁ R₁) (adj₂ : CategoryTheory.Adjunction.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ R₂) (f : Quiver.Hom.{succ (max u3 u2), max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) X) (CategoryTheory.Functor.obj.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₂ (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁ X))) (CategoryTheory.CategoryStruct.comp.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u1, u3, u4, u3} C _inst_1 D _inst_2 C _inst_1 L₁ R₁) X) (CategoryTheory.Functor.obj.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₂ (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁ X)) (CategoryTheory.NatTrans.app.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.comp.{u1, u2, u1, u3, u4, u3} C _inst_1 D _inst_2 C _inst_1 L₁ R₁) (CategoryTheory.Adjunction.unit.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁ R₁ adj₁) X) (CategoryTheory.NatTrans.app.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁ R₂ (coeFn.{max 1 (max (succ (max u3 u2)) (succ (max u4 u1))) (succ (max u4 u1)) (succ (max u3 u2)), max (succ (max u3 u2)) (succ (max u4 u1))} (Equiv.{succ (max u3 u2), succ (max u4 u1)} (Quiver.Hom.{succ (max u3 u2), max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (Quiver.Hom.{succ (max u4 u1), max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u2, u1, u4, u3} D _inst_2 C _inst_1))) R₁ R₂)) (fun (_x : Equiv.{succ (max u3 u2), succ (max u4 u1)} (Quiver.Hom.{succ (max u3 u2), max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (Quiver.Hom.{succ (max u4 u1), max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u2, u1, u4, u3} D _inst_2 C _inst_1))) R₁ R₂)) => (Quiver.Hom.{succ (max u3 u2), max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) -> (Quiver.Hom.{succ (max u4 u1), max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u2, u1, u4, u3} D _inst_2 C _inst_1))) R₁ R₂)) (Equiv.hasCoeToFun.{succ (max u3 u2), succ (max u4 u1)} (Quiver.Hom.{succ (max u3 u2), max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 u4} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (Quiver.Hom.{succ (max u4 u1), max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max u2 u1 u4 u3} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u2, u1, u4, u3} D _inst_2 C _inst_1))) R₁ R₂)) (CategoryTheory.transferNatTransSelf.{u1, u2, u3, u4} C D _inst_1 _inst_2 L₁ L₂ R₁ R₂ adj₁ adj₂) f) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁ X))) (CategoryTheory.CategoryStruct.comp.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u1, u3, u4, u3} C _inst_1 D _inst_2 C _inst_1 L₂ R₂) X) (CategoryTheory.Functor.obj.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₂ (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁ X)) (CategoryTheory.NatTrans.app.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.comp.{u1, u2, u1, u3, u4, u3} C _inst_1 D _inst_2 C _inst_1 L₂ R₂) (CategoryTheory.Adjunction.unit.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ R₂ adj₂) X) (CategoryTheory.Functor.map.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₂ (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁ X) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ L₁ f X)))
but is expected to have type
  forall {C : Type.{u3}} {D : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u4} D] {L₁ : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2} {L₂ : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2} {R₁ : CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1} {R₂ : CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1} (adj₁ : CategoryTheory.Adjunction.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁ R₁) (adj₂ : CategoryTheory.Adjunction.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ R₂) (f : Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₂) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁) X))) (CategoryTheory.CategoryStruct.comp.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) X) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u1, u3, u4, u3} C _inst_1 D _inst_2 C _inst_1 L₁ R₁)) X) (Prefunctor.obj.{succ u2, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₂) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁) X)) (CategoryTheory.NatTrans.app.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.comp.{u1, u2, u1, u3, u4, u3} C _inst_1 D _inst_2 C _inst_1 L₁ R₁) (CategoryTheory.Adjunction.unit.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁ R₁ adj₁) X) (CategoryTheory.NatTrans.app.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₁ R₂ (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u1)) (succ u2), max (succ u3) (succ u2), max (succ u4) (succ u1)} (Equiv.{max (succ u3) (succ u2), max (succ u4) (succ u1)} (Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (Quiver.Hom.{max (succ u4) (succ u1), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u2, u1, u4, u3} D _inst_2 C _inst_1))) R₁ R₂)) (Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (fun (_x : Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) => Quiver.Hom.{max (succ u4) (succ u1), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u2, u1, u4, u3} D _inst_2 C _inst_1))) R₁ R₂) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (succ u4) (succ u1)} (Quiver.Hom.{max (succ u3) (succ u2), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u2, u3, u4} C _inst_1 D _inst_2))) L₂ L₁) (Quiver.Hom.{max (succ u4) (succ u1), max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u2, u1, u4, u3} D _inst_2 C _inst_1))) R₁ R₂)) (CategoryTheory.transferNatTransSelf.{u1, u2, u3, u4} C D _inst_1 _inst_2 L₁ L₂ R₁ R₂ adj₁ adj₂) f) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁) X))) (CategoryTheory.CategoryStruct.comp.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) X) (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u2, u1, u3, u4, u3} C _inst_1 D _inst_2 C _inst_1 L₂ R₂)) X) (Prefunctor.obj.{succ u2, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₂) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁) X)) (CategoryTheory.NatTrans.app.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.comp.{u1, u2, u1, u3, u4, u3} C _inst_1 D _inst_2 C _inst_1 L₂ R₂) (CategoryTheory.Adjunction.unit.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ R₂ adj₂) X) (Prefunctor.map.{succ u2, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u4, u3} D _inst_2 C _inst_1 R₂) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₁) X) (CategoryTheory.NatTrans.app.{u1, u2, u3, u4} C _inst_1 D _inst_2 L₂ L₁ f X)))
Case conversion may be inaccurate. Consider using '#align category_theory.unit_transfer_nat_trans_self CategoryTheory.unit_transferNatTransSelfₓ'. -/
theorem unit_transferNatTransSelf (f : L₂ ⟶ L₁) (X) :
    adj₁.Unit.app _ ≫ (transferNatTransSelf adj₁ adj₂ f).app _ =
      adj₂.Unit.app X ≫ Functor.map _ (f.app _) :=
  by
  dsimp [transfer_nat_trans_self]
  rw [id_comp, comp_id]
  have := unit_transfer_nat_trans adj₁ adj₂ (L₂.left_unitor.hom ≫ f ≫ L₁.right_unitor.inv) X
  dsimp at this
  rw [this]
  simp
#align category_theory.unit_transfer_nat_trans_self CategoryTheory.unit_transferNatTransSelf

#print CategoryTheory.transferNatTransSelf_id /-
@[simp]
theorem transferNatTransSelf_id : transferNatTransSelf adj₁ adj₁ (𝟙 _) = 𝟙 _ :=
  by
  ext
  dsimp [transfer_nat_trans_self, transfer_nat_trans]
  simp
#align category_theory.transfer_nat_trans_self_id CategoryTheory.transferNatTransSelf_id
-/

#print CategoryTheory.transferNatTransSelf_symm_id /-
-- See library note [dsimp, simp]
@[simp]
theorem transferNatTransSelf_symm_id : (transferNatTransSelf adj₁ adj₁).symm (𝟙 _) = 𝟙 _ :=
  by
  rw [Equiv.symm_apply_eq]
  simp
#align category_theory.transfer_nat_trans_self_symm_id CategoryTheory.transferNatTransSelf_symm_id
-/

#print CategoryTheory.transferNatTransSelf_comp /-
theorem transferNatTransSelf_comp (f g) :
    transferNatTransSelf adj₁ adj₂ f ≫ transferNatTransSelf adj₂ adj₃ g =
      transferNatTransSelf adj₁ adj₃ (g ≫ f) :=
  by
  ext
  dsimp [transfer_nat_trans_self, transfer_nat_trans]
  simp only [id_comp, comp_id]
  rw [← adj₃.unit_naturality_assoc, ← R₃.map_comp, g.naturality_assoc, L₂.map_comp, assoc,
    adj₂.counit_naturality, adj₂.left_triangle_components_assoc, assoc]
#align category_theory.transfer_nat_trans_self_comp CategoryTheory.transferNatTransSelf_comp
-/

/- warning: category_theory.transfer_nat_trans_self_adjunction_id -> CategoryTheory.transferNatTransSelf_adjunction_id is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {L : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1} {R : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1} (adj : CategoryTheory.Adjunction.{u1, u1, u2, u2} C _inst_1 C _inst_1 L R) (f : Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L) (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.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 R X) (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 R (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (coeFn.{succ (max u2 u1), succ (max u2 u1)} (Equiv.{succ (max u2 u1), succ (max u2 u1)} (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L) (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1))) (fun (_x : Equiv.{succ (max u2 u1), succ (max u2 u1)} (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L) (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1))) => (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L) -> (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1))) (Equiv.hasCoeToFun.{succ (max u2 u1), succ (max u2 u1)} (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L) (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1))) (CategoryTheory.transferNatTransSelf.{u1, u1, u2, u2} C C _inst_1 _inst_1 L (CategoryTheory.Functor.id.{u1, u2} C _inst_1) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1) adj (CategoryTheory.Adjunction.id.{u1, u2} C _inst_1)) f) 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 R X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 L (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 R X)) (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) L f (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 R 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 R L) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Adjunction.counit.{u1, u1, u2, u2} C _inst_1 C _inst_1 L R adj) X))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {L : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1} {R : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1} (adj : CategoryTheory.Adjunction.{u1, u1, u2, u2} C _inst_1 C _inst_1 L R) (f : Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L) (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)) (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 R) 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.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 R (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L) (Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1))) (Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L) (fun (_x : Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L) => Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L) (Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1))) (CategoryTheory.transferNatTransSelf.{u1, u1, u2, u2} C C _inst_1 _inst_1 L (CategoryTheory.Functor.id.{u1, u2} C _inst_1) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1) adj (CategoryTheory.Adjunction.id.{u1, u2} C _inst_1)) f) 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)) (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 R) 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 L) (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 R) 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.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) L f (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 R) 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 R L) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Adjunction.counit.{u1, u1, u2, u2} C _inst_1 C _inst_1 L R adj) X))
Case conversion may be inaccurate. Consider using '#align category_theory.transfer_nat_trans_self_adjunction_id CategoryTheory.transferNatTransSelf_adjunction_idₓ'. -/
theorem transferNatTransSelf_adjunction_id {L R : C ⥤ C} (adj : L ⊣ R) (f : 𝟭 C ⟶ L) (X : C) :
    (transferNatTransSelf adj Adjunction.id f).app X = f.app (R.obj X) ≫ adj.counit.app X :=
  by
  dsimp [transfer_nat_trans_self, transfer_nat_trans, adjunction.id]
  simp only [comp_id, id_comp]
#align category_theory.transfer_nat_trans_self_adjunction_id CategoryTheory.transferNatTransSelf_adjunction_id

/- warning: category_theory.transfer_nat_trans_self_adjunction_id_symm -> CategoryTheory.transferNatTransSelf_adjunction_id_symm is a dubious translation:
lean 3 declaration is
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {L : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1} {R : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1} (adj : CategoryTheory.Adjunction.{u1, u1, u2, u2} C _inst_1 C _inst_1 L R) (g : Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (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.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 L X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) L (coeFn.{succ (max u2 u1), succ (max u2 u1)} (Equiv.{succ (max u2 u1), succ (max u2 u1)} (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L)) (fun (_x : Equiv.{succ (max u2 u1), succ (max u2 u1)} (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L)) => (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) -> (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L)) (Equiv.hasCoeToFun.{succ (max u2 u1), succ (max u2 u1)} (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L)) (Equiv.symm.{succ (max u2 u1), succ (max u2 u1)} (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L) (Quiver.Hom.{succ (max u2 u1), max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.transferNatTransSelf.{u1, u1, u2, u2} C C _inst_1 _inst_1 L (CategoryTheory.Functor.id.{u1, u2} C _inst_1) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1) adj (CategoryTheory.Adjunction.id.{u1, u2} C _inst_1))) g) 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 L R) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 L 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 L R) (CategoryTheory.Adjunction.unit.{u1, u1, u2, u2} C _inst_1 C _inst_1 L R adj) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 R (CategoryTheory.Functor.id.{u1, u2} C _inst_1) g (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 L X)))
but is expected to have type
  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {L : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1} {R : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1} (adj : CategoryTheory.Adjunction.{u1, u1, u2, u2} C _inst_1 C _inst_1 L R) (g : Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (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)) (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 L) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) L (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L)) (Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (fun (_x : Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) => Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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.id.{u1, u2} C _inst_1) L) (Quiver.Hom.{max (succ u2) (succ u1), max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{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))) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.transferNatTransSelf.{u1, u1, u2, u2} C C _inst_1 _inst_1 L (CategoryTheory.Functor.id.{u1, u2} C _inst_1) R (CategoryTheory.Functor.id.{u1, u2} C _inst_1) adj (CategoryTheory.Adjunction.id.{u1, u2} C _inst_1))) g) 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 L R)) 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)) (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 L) 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 L R) (CategoryTheory.Adjunction.unit.{u1, u1, u2, u2} C _inst_1 C _inst_1 L R adj) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 R (CategoryTheory.Functor.id.{u1, u2} C _inst_1) g (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 L) X)))
Case conversion may be inaccurate. Consider using '#align category_theory.transfer_nat_trans_self_adjunction_id_symm CategoryTheory.transferNatTransSelf_adjunction_id_symmₓ'. -/
theorem transferNatTransSelf_adjunction_id_symm {L R : C ⥤ C} (adj : L ⊣ R) (g : R ⟶ 𝟭 C) (X : C) :
    ((transferNatTransSelf adj Adjunction.id).symm g).app X = adj.Unit.app X ≫ g.app (L.obj X) :=
  by
  dsimp [transfer_nat_trans_self, transfer_nat_trans, adjunction.id]
  simp only [comp_id, id_comp]
#align category_theory.transfer_nat_trans_self_adjunction_id_symm CategoryTheory.transferNatTransSelf_adjunction_id_symm

#print CategoryTheory.transferNatTransSelf_symm_comp /-
theorem transferNatTransSelf_symm_comp (f g) :
    (transferNatTransSelf adj₂ adj₁).symm f ≫ (transferNatTransSelf adj₃ adj₂).symm g =
      (transferNatTransSelf adj₃ adj₁).symm (g ≫ f) :=
  by
  rw [Equiv.eq_symm_apply, ← transfer_nat_trans_self_comp _ adj₂]
  simp
#align category_theory.transfer_nat_trans_self_symm_comp CategoryTheory.transferNatTransSelf_symm_comp
-/

#print CategoryTheory.transferNatTransSelf_comm /-
theorem transferNatTransSelf_comm {f g} (gf : g ≫ f = 𝟙 _) :
    transferNatTransSelf adj₁ adj₂ f ≫ transferNatTransSelf adj₂ adj₁ g = 𝟙 _ := by
  rw [transfer_nat_trans_self_comp, gf, transfer_nat_trans_self_id]
#align category_theory.transfer_nat_trans_self_comm CategoryTheory.transferNatTransSelf_comm
-/

#print CategoryTheory.transferNatTransSelf_symm_comm /-
theorem transferNatTransSelf_symm_comm {f g} (gf : g ≫ f = 𝟙 _) :
    (transferNatTransSelf adj₁ adj₂).symm f ≫ (transferNatTransSelf adj₂ adj₁).symm g = 𝟙 _ := by
  rw [transfer_nat_trans_self_symm_comp, gf, transfer_nat_trans_self_symm_id]
#align category_theory.transfer_nat_trans_self_symm_comm CategoryTheory.transferNatTransSelf_symm_comm
-/

#print CategoryTheory.transferNatTransSelf_iso /-
/-- If `f` is an isomorphism, then the transferred natural transformation is an isomorphism.
The converse is given in `transfer_nat_trans_self_of_iso`.
-/
instance transferNatTransSelf_iso (f : L₂ ⟶ L₁) [IsIso f] :
    IsIso (transferNatTransSelf adj₁ adj₂ f) :=
  ⟨⟨transferNatTransSelf adj₂ adj₁ (inv f),
      ⟨transferNatTransSelf_comm _ _ (by simp), transferNatTransSelf_comm _ _ (by simp)⟩⟩⟩
#align category_theory.transfer_nat_trans_self_iso CategoryTheory.transferNatTransSelf_iso
-/

#print CategoryTheory.transferNatTransSelf_symm_iso /-
/-- If `f` is an isomorphism, then the un-transferred natural transformation is an isomorphism.
The converse is given in `transfer_nat_trans_self_symm_of_iso`.
-/
instance transferNatTransSelf_symm_iso (f : R₁ ⟶ R₂) [IsIso f] :
    IsIso ((transferNatTransSelf adj₁ adj₂).symm f) :=
  ⟨⟨(transferNatTransSelf adj₂ adj₁).symm (inv f),
      ⟨transferNatTransSelf_symm_comm _ _ (by simp), transferNatTransSelf_symm_comm _ _ (by simp)⟩⟩⟩
#align category_theory.transfer_nat_trans_self_symm_iso CategoryTheory.transferNatTransSelf_symm_iso
-/

#print CategoryTheory.transferNatTransSelf_of_iso /-
/-- If `f` is a natural transformation whose transferred natural transformation is an isomorphism,
then `f` is an isomorphism.
The converse is given in `transfer_nat_trans_self_iso`.
-/
theorem transferNatTransSelf_of_iso (f : L₂ ⟶ L₁) [IsIso (transferNatTransSelf adj₁ adj₂ f)] :
    IsIso f :=
  by
  suffices is_iso ((transfer_nat_trans_self adj₁ adj₂).symm (transfer_nat_trans_self adj₁ adj₂ f))
    by simpa using this
  infer_instance
#align category_theory.transfer_nat_trans_self_of_iso CategoryTheory.transferNatTransSelf_of_iso
-/

#print CategoryTheory.transferNatTransSelf_symm_of_iso /-
/--
If `f` is a natural transformation whose un-transferred natural transformation is an isomorphism,
then `f` is an isomorphism.
The converse is given in `transfer_nat_trans_self_symm_iso`.
-/
theorem transferNatTransSelf_symm_of_iso (f : R₁ ⟶ R₂)
    [IsIso ((transferNatTransSelf adj₁ adj₂).symm f)] : IsIso f :=
  by
  suffices is_iso ((transfer_nat_trans_self adj₁ adj₂) ((transfer_nat_trans_self adj₁ adj₂).symm f))
    by simpa using this
  infer_instance
#align category_theory.transfer_nat_trans_self_symm_of_iso CategoryTheory.transferNatTransSelf_symm_of_iso
-/

end Self

end CategoryTheory