File: Mathlib/CategoryTheory/Abelian/Images.lean

full_name: CategoryTheory.Abelian.image
code: /-- The kernel of the cokernel of `f` is called the (abelian) image of `f`. -/
protected abbrev image : C 
goal: C

full_name: CategoryTheory.Abelian.image.ι
code: /-- The inclusion of the image into the codomain. -/
protected abbrev image.ι : Abelian.image f ⟶ Q 
goal: CategoryTheory.Abelian.image f ⟶ Q

full_name: CategoryTheory.Abelian.factorThruImage
code: /-- There is a canonical epimorphism `p : P ⟶ image f` for every `f`. -/
protected abbrev factorThruImage : P ⟶ Abelian.image f 
goal: P ⟶ CategoryTheory.Abelian.image f

full_name: CategoryTheory.Abelian.image.fac
code: /-- `f` factors through its image via the canonical morphism `p`. -/
protected theorem image.fac : Abelian.factorThruImage f ≫ image.ι f = f 
goal: CategoryTheory.Abelian.factorThruImage f ≫ CategoryTheory.Abelian.image.ι f = f

full_name: CategoryTheory.Abelian.mono_factorThruImage
code: instance mono_factorThruImage [Mono f] : Mono (Abelian.factorThruImage f) 
goal: CategoryTheory.Mono (CategoryTheory.Abelian.factorThruImage f)

full_name: CategoryTheory.Abelian.coimage
code: /-- The cokernel of the kernel of `f` is called the (abelian) coimage of `f`. -/
protected abbrev coimage : C 
goal: C

full_name: CategoryTheory.Abelian.coimage.π
code: /-- The projection onto the coimage. -/
protected abbrev coimage.π : P ⟶ Abelian.coimage f 
goal: P ⟶ CategoryTheory.Abelian.coimage f

full_name: CategoryTheory.Abelian.factorThruCoimage
code: /-- There is a canonical monomorphism `i : coimage f ⟶ Q`. -/
protected abbrev factorThruCoimage : Abelian.coimage f ⟶ Q 
goal: CategoryTheory.Abelian.coimage f ⟶ Q

full_name: CategoryTheory.Abelian.coimage.fac
code: /-- `f` factors through its coimage via the canonical morphism `p`. -/
protected theorem coimage.fac : coimage.π f ≫ Abelian.factorThruCoimage f = f 
goal: CategoryTheory.Abelian.coimage.π f ≫ CategoryTheory.Abelian.factorThruCoimage f = f

full_name: CategoryTheory.Abelian.epi_factorThruCoimage
code: instance epi_factorThruCoimage [Epi f] : Epi (Abelian.factorThruCoimage f) 
goal: CategoryTheory.Epi (CategoryTheory.Abelian.factorThruCoimage f)

full_name: CategoryTheory.Abelian.coimageImageComparison
code: /-- The canonical map from the abelian coimage to the abelian image.
In any abelian category this is an isomorphism.

Conversely, any additive category with kernels and cokernels and
in which this is always an isomorphism, is abelian.

See <https://stacks.math.columbia.edu/tag/0107>
-/
def coimageImageComparison : Abelian.coimage f ⟶ Abelian.image f 
goal: CategoryTheory.Abelian.coimage f ⟶ CategoryTheory.Abelian.image f

full_name: CategoryTheory.Abelian.coimageImageComparison'
code: /-- An alternative formulation of the canonical map from the abelian coimage to the abelian image.
-/
def coimageImageComparison' : Abelian.coimage f ⟶ Abelian.image f 
goal: CategoryTheory.Abelian.coimage f ⟶ CategoryTheory.Abelian.image f

full_name: CategoryTheory.Abelian.coimageImageComparison_eq_coimageImageComparison'
code: theorem coimageImageComparison_eq_coimageImageComparison' :
    coimageImageComparison f = coimageImageComparison' f 
goal: CategoryTheory.Abelian.coimageImageComparison f = CategoryTheory.Abelian.coimageImageComparison' f

full_name: CategoryTheory.Abelian.coimage_image_factorisation
code: @[reassoc (attr := simp)]
theorem coimage_image_factorisation : coimage.π f ≫ coimageImageComparison f ≫ image.ι f = f 
goal: CategoryTheory.Abelian.coimage.π f ≫
    CategoryTheory.Abelian.coimageImageComparison f ≫ CategoryTheory.Abelian.image.ι f =
  f