File: Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean

full_name: CategoryTheory.Idempotents.app_idem
code: @[reassoc (attr := simp)]
theorem app_idem : P.p.app X ≫ P.p.app X = P.p.app X 
goal: P.p.app X ≫ P.p.app X = P.p.app X

full_name: CategoryTheory.Idempotents.app_p_comp
code: @[reassoc (attr := simp)]
theorem app_p_comp : P.p.app X ≫ f.f.app X = f.f.app X 
goal: P.p.app X ≫ f.f.app X = f.f.app X

full_name: CategoryTheory.Idempotents.app_comp_p
code: @[reassoc (attr := simp)]
theorem app_comp_p : f.f.app X ≫ Q.p.app X = f.f.app X 
goal: f.f.app X ≫ Q.p.app X = f.f.app X

full_name: CategoryTheory.Idempotents.app_p_comm
code: @[reassoc]
theorem app_p_comm : P.p.app X ≫ f.f.app X = f.f.app X ≫ Q.p.app X 
goal: P.p.app X ≫ f.f.app X = f.f.app X ≫ Q.p.app X

full_name: CategoryTheory.Idempotents.functor_category_isIdempotentComplete
code: instance functor_category_isIdempotentComplete [IsIdempotentComplete C] :
    IsIdempotentComplete (J ⥤ C) 
goal: CategoryTheory.IsIdempotentComplete (J ⥤ C)

full_name: CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj_obj_X
code: /-- On objects, the functor which sends a formal direct factor `P` of a
functor `F : J ⥤ C` to the functor `J ⥤ Karoubi C` which sends `(j : J)` to
the corresponding direct factor of `F.obj j`. -/
@[simps]
def obj (P : Karoubi (J ⥤ C)) : J ⥤ Karoubi C 
goal: ((CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj P).obj j).X = P.X.obj j

full_name: CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj_map_f
code: /-- On objects, the functor which sends a formal direct factor `P` of a
functor `F : J ⥤ C` to the functor `J ⥤ Karoubi C` which sends `(j : J)` to
the corresponding direct factor of `F.obj j`. -/
@[simps]
def obj (P : Karoubi (J ⥤ C)) : J ⥤ Karoubi C 
goal: ((CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj P).map φ).f = P.p.app j ≫ P.X.map φ

full_name: CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj
code: /-- On objects, the functor which sends a formal direct factor `P` of a
functor `F : J ⥤ C` to the functor `J ⥤ Karoubi C` which sends `(j : J)` to
the corresponding direct factor of `F.obj j`. -/
@[simps]
def obj (P : Karoubi (J ⥤ C)) : J ⥤ Karoubi C 
goal: J ⥤ CategoryTheory.Idempotents.Karoubi C

full_name: CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj_obj_p
code: /-- On objects, the functor which sends a formal direct factor `P` of a
functor `F : J ⥤ C` to the functor `J ⥤ Karoubi C` which sends `(j : J)` to
the corresponding direct factor of `F.obj j`. -/
@[simps]
def obj (P : Karoubi (J ⥤ C)) : J ⥤ Karoubi C 
goal: ((CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj P).obj j).p = P.p.app j

full_name: CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.map
code: /-- Tautological action on maps of the functor `Karoubi (J ⥤ C) ⥤ (J ⥤ Karoubi C)`. -/
@[simps]
def map {P Q : Karoubi (J ⥤ C)} (f : P ⟶ Q) : obj P ⟶ obj Q 
goal: CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj P ⟶
  CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj Q

full_name: CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.map_app_f
code: /-- Tautological action on maps of the functor `Karoubi (J ⥤ C) ⥤ (J ⥤ Karoubi C)`. -/
@[simps]
def map {P Q : Karoubi (J ⥤ C)} (f : P ⟶ Q) : obj P ⟶ obj Q 
goal: ((CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.map f).app j).f = f.f.app j

full_name: CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding_obj
code: /-- The tautological fully faithful functor `Karoubi (J ⥤ C) ⥤ (J ⥤ Karoubi C)`. -/
@[simps]
def karoubiFunctorCategoryEmbedding : Karoubi (J ⥤ C) ⥤ J ⥤ Karoubi C 
goal: (CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding J C).obj P =
  CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj P

full_name: CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding
code: /-- The tautological fully faithful functor `Karoubi (J ⥤ C) ⥤ (J ⥤ Karoubi C)`. -/
@[simps]
def karoubiFunctorCategoryEmbedding : Karoubi (J ⥤ C) ⥤ J ⥤ Karoubi C 
goal: CategoryTheory.Idempotents.Karoubi (J ⥤ C) ⥤ J ⥤ CategoryTheory.Idempotents.Karoubi C

full_name: CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding_map
code: /-- The tautological fully faithful functor `Karoubi (J ⥤ C) ⥤ (J ⥤ Karoubi C)`. -/
@[simps]
def karoubiFunctorCategoryEmbedding : Karoubi (J ⥤ C) ⥤ J ⥤ Karoubi C 
goal: ∀ {X Y : CategoryTheory.Idempotents.Karoubi (J ⥤ C)} (f : X ⟶ Y),
  (CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding J C).map f =
    CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.map f

full_name: CategoryTheory.Idempotents.instFullKaroubiFunctorKaroubiFunctorCategoryEmbedding
code: instance : (karoubiFunctorCategoryEmbedding J C).Full 
goal: (CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding J C).Full

full_name: CategoryTheory.Idempotents.instFaithfulKaroubiFunctorKaroubiFunctorCategoryEmbedding
code: instance : (karoubiFunctorCategoryEmbedding J C).Faithful 
goal: (CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding J C).Faithful

full_name: CategoryTheory.Idempotents.toKaroubi_comp_karoubiFunctorCategoryEmbedding
code: /-- The composition of `(J ⥤ C) ⥤ Karoubi (J ⥤ C)` and `Karoubi (J ⥤ C) ⥤ (J ⥤ Karoubi C)`
equals the functor `(J ⥤ C) ⥤ (J ⥤ Karoubi C)` given by the composition with
`toKaroubi C : C ⥤ Karoubi C`. -/
theorem toKaroubi_comp_karoubiFunctorCategoryEmbedding :
    toKaroubi _ ⋙ karoubiFunctorCategoryEmbedding J C =
      (whiskeringRight J _ _).obj (toKaroubi C) 
goal: CategoryTheory.Idempotents.toKaroubi (J ⥤ C) ⋙ CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding J C =
  (CategoryTheory.whiskeringRight J C (CategoryTheory.Idempotents.Karoubi C)).obj
    (CategoryTheory.Idempotents.toKaroubi C)