File: Mathlib/CategoryTheory/Abelian/FunctorCategory.lean

full_name: CategoryTheory.Abelian.FunctorCategory.coimageObjIso_inv
code: /-- The abelian coimage in a functor category can be calculated componentwise. -/
@[simps!]
def coimageObjIso : (Abelian.coimage α).obj X ≅ Abelian.coimage (α.app X) 
goal: (CategoryTheory.Abelian.FunctorCategory.coimageObjIso α X).inv =
  CategoryTheory.CategoryStruct.comp
    (CategoryTheory.Limits.cokernel.map (CategoryTheory.Limits.kernel.ι (α.app X))
      ((CategoryTheory.Limits.kernel.ι α).app X)
      (CategoryTheory.Limits.PreservesKernel.iso ((CategoryTheory.evaluation C D).obj X) α).inv
      (CategoryTheory.CategoryStruct.id (F.obj X)) ⋯)
    (CategoryTheory.Limits.cokernelComparison (CategoryTheory.Limits.kernel.ι α)
      ((CategoryTheory.evaluation C D).obj X))

full_name: CategoryTheory.Abelian.FunctorCategory.coimageObjIso_hom
code: /-- The abelian coimage in a functor category can be calculated componentwise. -/
@[simps!]
def coimageObjIso : (Abelian.coimage α).obj X ≅ Abelian.coimage (α.app X) 
goal: (CategoryTheory.Abelian.FunctorCategory.coimageObjIso α X).hom =
  CategoryTheory.CategoryStruct.comp
    (CategoryTheory.Limits.PreservesCokernel.iso ((CategoryTheory.evaluation C D).obj X)
        (CategoryTheory.Limits.kernel.ι α)).hom
    (CategoryTheory.Limits.cokernel.map ((CategoryTheory.Limits.kernel.ι α).app X)
      (CategoryTheory.Limits.kernel.ι (α.app X))
      (CategoryTheory.Limits.kernelComparison α ((CategoryTheory.evaluation C D).obj X))
      (CategoryTheory.CategoryStruct.id (F.obj X)) ⋯)

full_name: CategoryTheory.Abelian.FunctorCategory.coimageObjIso
code: /-- The abelian coimage in a functor category can be calculated componentwise. -/
@[simps!]
def coimageObjIso : (Abelian.coimage α).obj X ≅ Abelian.coimage (α.app X) 
goal: (CategoryTheory.Abelian.coimage α).obj X ≅ CategoryTheory.Abelian.coimage (α.app X)

full_name: CategoryTheory.Abelian.FunctorCategory.imageObjIso
code: /-- The abelian image in a functor category can be calculated componentwise. -/
@[simps!]
def imageObjIso : (Abelian.image α).obj X ≅ Abelian.image (α.app X) 
goal: (CategoryTheory.Abelian.image α).obj X ≅ CategoryTheory.Abelian.image (α.app X)

full_name: CategoryTheory.Abelian.FunctorCategory.imageObjIso_inv
code: /-- The abelian image in a functor category can be calculated componentwise. -/
@[simps!]
def imageObjIso : (Abelian.image α).obj X ≅ Abelian.image (α.app X) 
goal: (CategoryTheory.Abelian.FunctorCategory.imageObjIso α X).inv =
  CategoryTheory.CategoryStruct.comp
    (CategoryTheory.Limits.kernel.map (CategoryTheory.Limits.cokernel.π (α.app X))
      ((CategoryTheory.Limits.cokernel.π α).app X) (CategoryTheory.CategoryStruct.id (G.obj X))
      (CategoryTheory.Limits.cokernelComparison α ((CategoryTheory.evaluation C D).obj X)) ⋯)
    (CategoryTheory.Limits.PreservesKernel.iso ((CategoryTheory.evaluation C D).obj X)
        (CategoryTheory.Limits.cokernel.π α)).inv

full_name: CategoryTheory.Abelian.FunctorCategory.imageObjIso_hom
code: /-- The abelian image in a functor category can be calculated componentwise. -/
@[simps!]
def imageObjIso : (Abelian.image α).obj X ≅ Abelian.image (α.app X) 
goal: (CategoryTheory.Abelian.FunctorCategory.imageObjIso α X).hom =
  CategoryTheory.CategoryStruct.comp
    (CategoryTheory.Limits.kernelComparison (CategoryTheory.Limits.cokernel.π α)
      ((CategoryTheory.evaluation C D).obj X))
    (CategoryTheory.Limits.kernel.map ((CategoryTheory.Limits.cokernel.π α).app X)
      (CategoryTheory.Limits.cokernel.π (α.app X)) (CategoryTheory.CategoryStruct.id (G.obj X))
      (CategoryTheory.Limits.PreservesCokernel.iso ((CategoryTheory.evaluation C D).obj X) α).hom ⋯)

full_name: CategoryTheory.Abelian.FunctorCategory.coimageImageComparison_app
code: theorem coimageImageComparison_app :
    coimageImageComparison (α.app X) =
      (coimageObjIso α X).inv ≫ (coimageImageComparison α).app X ≫ (imageObjIso α X).hom 
goal: CategoryTheory.Abelian.coimageImageComparison (α.app X) =
  CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.FunctorCategory.coimageObjIso α X).inv
    (CategoryTheory.CategoryStruct.comp ((CategoryTheory.Abelian.coimageImageComparison α).app X)
      (CategoryTheory.Abelian.FunctorCategory.imageObjIso α X).hom)

full_name: CategoryTheory.Abelian.FunctorCategory.coimageImageComparison_app'
code: theorem coimageImageComparison_app' :
    (coimageImageComparison α).app X =
      (coimageObjIso α X).hom ≫ coimageImageComparison (α.app X) ≫ (imageObjIso α X).inv 
goal: (CategoryTheory.Abelian.coimageImageComparison α).app X =
  CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.FunctorCategory.coimageObjIso α X).hom
    (CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.coimageImageComparison (α.app X))
      (CategoryTheory.Abelian.FunctorCategory.imageObjIso α X).inv)

full_name: CategoryTheory.Abelian.FunctorCategory.functor_category_isIso_coimageImageComparison
code: instance functor_category_isIso_coimageImageComparison :
    IsIso (Abelian.coimageImageComparison α) 
goal: CategoryTheory.IsIso (CategoryTheory.Abelian.coimageImageComparison α)

full_name: CategoryTheory.Abelian.functorCategoryAbelian
code: noncomputable instance functorCategoryAbelian : Abelian (C ⥤ D) 
goal: CategoryTheory.Abelian (CategoryTheory.Functor C D)