File: Mathlib/CategoryTheory/Adjunction/Evaluation.lean

full_name: CategoryTheory.evaluationLeftAdjoint_obj_map
code: /-- The left adjoint of evaluation. -/
@[simps]
def evaluationLeftAdjoint (c : C) : D ⥤ C ⥤ D 
goal: ∀ {X Y : C} (f : X ⟶ Y),
  ((CategoryTheory.evaluationLeftAdjoint D c).obj d).map f =
    CategoryTheory.Limits.Sigma.desc fun g =>
      CategoryTheory.Limits.Sigma.ι (fun x => d) (CategoryTheory.CategoryStruct.comp g f)

full_name: CategoryTheory.evaluationLeftAdjoint_obj_obj
code: /-- The left adjoint of evaluation. -/
@[simps]
def evaluationLeftAdjoint (c : C) : D ⥤ C ⥤ D 
goal: ((CategoryTheory.evaluationLeftAdjoint D c).obj d).obj t = ∐ fun x => d

full_name: CategoryTheory.evaluationLeftAdjoint
code: /-- The left adjoint of evaluation. -/
@[simps]
def evaluationLeftAdjoint (c : C) : D ⥤ C ⥤ D 
goal: CategoryTheory.Functor D (CategoryTheory.Functor C D)

full_name: CategoryTheory.evaluationLeftAdjoint_map_app
code: /-- The left adjoint of evaluation. -/
@[simps]
def evaluationLeftAdjoint (c : C) : D ⥤ C ⥤ D 
goal: ∀ {x d₂ : D} (f : x ⟶ d₂) (e : C),
  ((CategoryTheory.evaluationLeftAdjoint D c).map f).app e =
    CategoryTheory.Limits.Sigma.desc fun h =>
      CategoryTheory.CategoryStruct.comp f (CategoryTheory.Limits.Sigma.ι (fun x => d₂) h)

full_name: CategoryTheory.evaluationAdjunctionRight
code: /-- The adjunction showing that evaluation is a right adjoint. -/
@[simps! unit_app counit_app_app]
def evaluationAdjunctionRight (c : C) : evaluationLeftAdjoint D c ⊣ (evaluation _ _).obj c 
goal: CategoryTheory.evaluationLeftAdjoint D c ⊣ (CategoryTheory.evaluation C D).obj c

full_name: CategoryTheory.evaluationAdjunctionRight_counit_app_app
code: /-- The adjunction showing that evaluation is a right adjoint. -/
@[simps! unit_app counit_app_app]
def evaluationAdjunctionRight (c : C) : evaluationLeftAdjoint D c ⊣ (evaluation _ _).obj c 
goal: ((CategoryTheory.evaluationAdjunctionRight D c).counit.app Y).app e = CategoryTheory.Limits.Sigma.desc fun h => Y.map h

full_name: CategoryTheory.evaluationAdjunctionRight_unit_app
code: /-- The adjunction showing that evaluation is a right adjoint. -/
@[simps! unit_app counit_app_app]
def evaluationAdjunctionRight (c : C) : evaluationLeftAdjoint D c ⊣ (evaluation _ _).obj c 
goal: (CategoryTheory.evaluationAdjunctionRight D c).unit.app X =
  CategoryTheory.Limits.Sigma.ι (fun x => X) (CategoryTheory.CategoryStruct.id c)

full_name: CategoryTheory.evaluationIsRightAdjoint
code: instance evaluationIsRightAdjoint (c : C) : ((evaluation _ D).obj c).IsRightAdjoint  
goal: ((CategoryTheory.evaluation C D).obj c).IsRightAdjoint

full_name: CategoryTheory.NatTrans.mono_iff_mono_app
code: theorem NatTrans.mono_iff_mono_app {F G : C ⥤ D} (η : F ⟶ G) : Mono η ↔ ∀ c, Mono (η.app c) 
goal: CategoryTheory.Mono η ↔ ∀ (c : C), CategoryTheory.Mono (η.app c)

full_name: CategoryTheory.evaluationRightAdjoint_map_app
code: /-- The right adjoint of evaluation. -/
@[simps]
def evaluationRightAdjoint (c : C) : D ⥤ C ⥤ D 
goal: ∀ {X Y : D} (f : X ⟶ Y) (t : C),
  ((CategoryTheory.evaluationRightAdjoint D c).map f).app t =
    CategoryTheory.Limits.Pi.lift fun g =>
      CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Pi.π (fun x => X) g) f

full_name: CategoryTheory.evaluationRightAdjoint_obj_map
code: /-- The right adjoint of evaluation. -/
@[simps]
def evaluationRightAdjoint (c : C) : D ⥤ C ⥤ D 
goal: ∀ {X Y : C} (f : X ⟶ Y),
  ((CategoryTheory.evaluationRightAdjoint D c).obj d).map f =
    CategoryTheory.Limits.Pi.lift fun g =>
      CategoryTheory.Limits.Pi.π (fun x => d) (CategoryTheory.CategoryStruct.comp f g)

full_name: CategoryTheory.evaluationRightAdjoint
code: /-- The right adjoint of evaluation. -/
@[simps]
def evaluationRightAdjoint (c : C) : D ⥤ C ⥤ D 
goal: CategoryTheory.Functor D (CategoryTheory.Functor C D)

full_name: CategoryTheory.evaluationRightAdjoint_obj_obj
code: /-- The right adjoint of evaluation. -/
@[simps]
def evaluationRightAdjoint (c : C) : D ⥤ C ⥤ D 
goal: ((CategoryTheory.evaluationRightAdjoint D c).obj d).obj t = ∏ᶜ fun x => d

full_name: CategoryTheory.evaluationAdjunctionLeft
code: /-- The adjunction showing that evaluation is a left adjoint. -/
@[simps! unit_app_app counit_app]
def evaluationAdjunctionLeft (c : C) : (evaluation _ _).obj c ⊣ evaluationRightAdjoint D c 
goal: (CategoryTheory.evaluation C D).obj c ⊣ CategoryTheory.evaluationRightAdjoint D c

full_name: CategoryTheory.evaluationAdjunctionLeft_counit_app
code: /-- The adjunction showing that evaluation is a left adjoint. -/
@[simps! unit_app_app counit_app]
def evaluationAdjunctionLeft (c : C) : (evaluation _ _).obj c ⊣ evaluationRightAdjoint D c 
goal: (CategoryTheory.evaluationAdjunctionLeft D c).counit.app Y =
  CategoryTheory.Limits.Pi.π (fun x => Y) (CategoryTheory.CategoryStruct.id c)

full_name: CategoryTheory.evaluationAdjunctionLeft_unit_app_app
code: /-- The adjunction showing that evaluation is a left adjoint. -/
@[simps! unit_app_app counit_app]
def evaluationAdjunctionLeft (c : C) : (evaluation _ _).obj c ⊣ evaluationRightAdjoint D c 
goal: ((CategoryTheory.evaluationAdjunctionLeft D c).unit.app X).app t = CategoryTheory.Limits.Pi.lift fun g => X.map g

full_name: CategoryTheory.evaluationIsLeftAdjoint
code: instance evaluationIsLeftAdjoint (c : C) : ((evaluation _ D).obj c).IsLeftAdjoint 
goal: ((CategoryTheory.evaluation C D).obj c).IsLeftAdjoint

full_name: CategoryTheory.NatTrans.epi_iff_epi_app
code: theorem NatTrans.epi_iff_epi_app {F G : C ⥤ D} (η : F ⟶ G) : Epi η ↔ ∀ c, Epi (η.app c) 
goal: CategoryTheory.Epi η ↔ ∀ (c : C), CategoryTheory.Epi (η.app c)