Documentation

Mathlib.CategoryTheory.Limits.Shapes.Images

Categorical images #

We define the categorical image of f as a factorisation f = em through a monomorphism m, so that m factors through the m' in any other such factorisation.

Main definitions #

Main statements #

Future work #

structure CategoryTheory.Limits.MonoFactorisation {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) :
Type (max u v)

A factorisation of a morphism f = em, with m monic.

  • I : C

    A factorisation of a morphism f = em, with m monic.

  • m : self.I Y

    A factorisation of a morphism f = em, with m monic.

  • m_mono : Mono self.m

    A factorisation of a morphism f = em, with m monic.

  • e : X self.I

    A factorisation of a morphism f = em, with m monic.

  • fac : CategoryStruct.comp self.e self.m = f

    A factorisation of a morphism f = em, with m monic.

Instances For
    @[simp]

    A factorisation of a morphism f = em, with m monic.

    The obvious factorisation of a monomorphism through itself.

    Equations
      Instances For
        theorem CategoryTheory.Limits.MonoFactorisation.ext {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F F' : MonoFactorisation f} (hI : F.I = F'.I) (hm : F.m = CategoryStruct.comp (eqToHom hI) F'.m) :
        F = F'

        The morphism m in a factorisation f = em through a monomorphism is uniquely determined.

        Any mono factorisation of f gives a mono factorisation of f ≫ g when g is a mono.

        Equations
          Instances For
            @[simp]
            theorem CategoryTheory.Limits.MonoFactorisation.compMono_e {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) {Y' : C} (g : Y Y') [Mono g] :
            (F.compMono g).e = F.e
            @[simp]
            theorem CategoryTheory.Limits.MonoFactorisation.compMono_m {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) {Y' : C} (g : Y Y') [Mono g] :
            @[simp]
            theorem CategoryTheory.Limits.MonoFactorisation.compMono_I {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) {Y' : C} (g : Y Y') [Mono g] :
            (F.compMono g).I = F.I

            A mono factorisation of f ≫ g, where g is an isomorphism, gives a mono factorisation of f.

            Equations
              Instances For
                @[simp]
                theorem CategoryTheory.Limits.MonoFactorisation.ofCompIso_I {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {Y' : C} {g : Y Y'} [IsIso g] (F : MonoFactorisation (CategoryStruct.comp f g)) :
                @[simp]
                theorem CategoryTheory.Limits.MonoFactorisation.ofCompIso_e {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {Y' : C} {g : Y Y'} [IsIso g] (F : MonoFactorisation (CategoryStruct.comp f g)) :

                Any mono factorisation of f gives a mono factorisation of g ≫ f.

                Equations
                  Instances For
                    @[simp]
                    theorem CategoryTheory.Limits.MonoFactorisation.isoComp_I {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) {X' : C} (g : X' X) :
                    (F.isoComp g).I = F.I
                    @[simp]
                    theorem CategoryTheory.Limits.MonoFactorisation.isoComp_m {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) {X' : C} (g : X' X) :
                    (F.isoComp g).m = F.m
                    @[simp]
                    theorem CategoryTheory.Limits.MonoFactorisation.isoComp_e {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) {X' : C} (g : X' X) :

                    A mono factorisation of g ≫ f, where g is an isomorphism, gives a mono factorisation of f.

                    Equations
                      Instances For
                        @[simp]
                        theorem CategoryTheory.Limits.MonoFactorisation.ofIsoComp_m {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {X' : C} (g : X' X) [IsIso g] (F : MonoFactorisation (CategoryStruct.comp g f)) :
                        (ofIsoComp g F).m = F.m
                        @[simp]
                        theorem CategoryTheory.Limits.MonoFactorisation.ofIsoComp_I {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {X' : C} (g : X' X) [IsIso g] (F : MonoFactorisation (CategoryStruct.comp g f)) :
                        (ofIsoComp g F).I = F.I

                        If f and g are isomorphic arrows, then a mono factorisation of f gives a mono factorisation of g

                        Equations
                          Instances For
                            def CategoryTheory.Limits.MonoFactorisation.ofIsoI {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) {I' : C} (e : F.I I') :

                            Given a mono factorisation X ⟶ I ⟶ Y of an arrow f, an isomorphism I ≅ I' gives a new mono factorisation X ⟶ I' ⟶ Y of f.

                            Equations
                              Instances For
                                @[simp]
                                theorem CategoryTheory.Limits.MonoFactorisation.ofIsoI_I {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) {I' : C} (e : F.I I') :
                                (F.ofIsoI e).I = I'
                                @[simp]
                                theorem CategoryTheory.Limits.MonoFactorisation.ofIsoI_e {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) {I' : C} (e : F.I I') :
                                @[simp]
                                theorem CategoryTheory.Limits.MonoFactorisation.ofIsoI_m {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) {I' : C} (e : F.I I') :
                                def CategoryTheory.Limits.MonoFactorisation.copy {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) (m : F.I Y) (e : X F.I) (hm : m = F.m := by cat_disch) (he : e = F.e := by cat_disch) :

                                Copying a mono factorisation to another mono factorisation with propositionally equal m and e fields.

                                Equations
                                  Instances For
                                    @[simp]
                                    theorem CategoryTheory.Limits.MonoFactorisation.copy_e {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) (m : F.I Y) (e : X F.I) (hm : m = F.m := by cat_disch) (he : e = F.e := by cat_disch) :
                                    (F.copy m e hm he).e = e
                                    @[simp]
                                    theorem CategoryTheory.Limits.MonoFactorisation.copy_m {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) (m : F.I Y) (e : X F.I) (hm : m = F.m := by cat_disch) (he : e = F.e := by cat_disch) :
                                    (F.copy m e hm he).m = m
                                    @[simp]
                                    theorem CategoryTheory.Limits.MonoFactorisation.copy_I {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) (m : F.I Y) (e : X F.I) (hm : m = F.m := by cat_disch) (he : e = F.e := by cat_disch) :
                                    (F.copy m e hm he).I = F.I
                                    @[simp]
                                    theorem CategoryTheory.Limits.MonoFactorisation.fac_apply {C : Type u} [Category.{v, u} C] {F G : Functor C (Type w)} {f : F G} {X : C} (H : MonoFactorisation f) (x : F.obj X) :
                                    H.m.app X (H.e.app X x) = f.app X x
                                    structure CategoryTheory.Limits.IsImage {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : MonoFactorisation f) :
                                    Type (max u v)

                                    Data exhibiting that a given factorisation through a mono is initial.

                                    Instances For
                                      @[simp]
                                      theorem CategoryTheory.Limits.IsImage.lift_fac_assoc {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F : MonoFactorisation f} (self : IsImage F) (F' : MonoFactorisation f) {Z : C} (h : Y Z) :

                                      Data exhibiting that a given factorisation through a mono is initial.

                                      @[simp]
                                      theorem CategoryTheory.Limits.IsImage.fac_lift {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F : MonoFactorisation f} (hF : IsImage F) (F' : MonoFactorisation f) :
                                      @[simp]
                                      theorem CategoryTheory.Limits.IsImage.fac_lift_assoc {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F : MonoFactorisation f} (hF : IsImage F) (F' : MonoFactorisation f) {Z : C} (h : F'.I Z) :

                                      The trivial factorisation of a monomorphism satisfies the universal property.

                                      Equations
                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.Limits.IsImage.self_lift {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) [Mono f] (F' : MonoFactorisation f) :
                                          (self f).lift F' = F'.e
                                          def CategoryTheory.Limits.IsImage.isoExt {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F F' : MonoFactorisation f} (hF : IsImage F) (hF' : IsImage F') :
                                          F.I F'.I

                                          Two factorisations through monomorphisms satisfying the universal property must factor through isomorphic objects.

                                          Equations
                                            Instances For
                                              @[simp]
                                              theorem CategoryTheory.Limits.IsImage.isoExt_inv {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F F' : MonoFactorisation f} (hF : IsImage F) (hF' : IsImage F') :
                                              (hF.isoExt hF').inv = hF'.lift F
                                              @[simp]
                                              theorem CategoryTheory.Limits.IsImage.isoExt_hom {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F F' : MonoFactorisation f} (hF : IsImage F) (hF' : IsImage F') :
                                              (hF.isoExt hF').hom = hF.lift F'
                                              theorem CategoryTheory.Limits.IsImage.isoExt_hom_m {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F F' : MonoFactorisation f} (hF : IsImage F) (hF' : IsImage F') :
                                              theorem CategoryTheory.Limits.IsImage.isoExt_inv_m {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F F' : MonoFactorisation f} (hF : IsImage F) (hF' : IsImage F') :
                                              theorem CategoryTheory.Limits.IsImage.e_isoExt_hom {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F F' : MonoFactorisation f} (hF : IsImage F) (hF' : IsImage F') :
                                              theorem CategoryTheory.Limits.IsImage.e_isoExt_inv {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F F' : MonoFactorisation f} (hF : IsImage F) (hF' : IsImage F') :

                                              If f and g are isomorphic arrows, then a mono factorisation of f that is an image gives a mono factorisation of g that is an image

                                              Equations
                                                Instances For
                                                  @[simp]
                                                  theorem CategoryTheory.Limits.IsImage.ofArrowIso_lift {C : Type u} [Category.{v, u} C] {f g : Arrow C} {F : MonoFactorisation f.hom} (hF : IsImage F) (sq : f g) [IsIso sq] (F' : MonoFactorisation g.hom) :
                                                  (hF.ofArrowIso sq).lift F' = hF.lift (F'.ofArrowIso (inv sq))
                                                  def CategoryTheory.Limits.IsImage.ofIsoI {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F : MonoFactorisation f} (hF : IsImage F) {I' : C} (e : F.I I') :

                                                  Given a mono factorisation X ⟶ I ⟶ Y of an arrow f that is an image and an isomorphism I ≅ I', the induced mono factorisation by the isomorphism is also an image.

                                                  Equations
                                                    Instances For
                                                      @[simp]
                                                      theorem CategoryTheory.Limits.IsImage.ofIsoI_lift {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F : MonoFactorisation f} (hF : IsImage F) {I' : C} (e : F.I I') (F' : MonoFactorisation f) :
                                                      (hF.ofIsoI e).lift F' = CategoryStruct.comp e.inv (hF.lift F')
                                                      def CategoryTheory.Limits.IsImage.copy {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F : MonoFactorisation f} (hF : IsImage F) (m : F.I Y) (e : X F.I) (hm : m = F.m := by cat_disch) (he : e = F.e := by cat_disch) :
                                                      IsImage (F.copy m e )

                                                      Copying a mono factorisation to another mono factorisation with propositionally equal fields preserves the property of being an image. This is useful when one needs precise control of the m and e fields.

                                                      Equations
                                                        Instances For
                                                          @[simp]
                                                          theorem CategoryTheory.Limits.IsImage.copy_lift {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} {F : MonoFactorisation f} (hF : IsImage F) (m : F.I Y) (e : X F.I) (hm : m = F.m := by cat_disch) (he : e = F.e := by cat_disch) (F' : MonoFactorisation f) :
                                                          (hF.copy m e hm he).lift F' = hF.lift F'
                                                          structure CategoryTheory.Limits.ImageFactorisation {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) :
                                                          Type (max u v)

                                                          Data exhibiting that a morphism f has an image.

                                                          • Data exhibiting that a morphism f has an image.

                                                          • isImage : IsImage self.F

                                                            Data exhibiting that a morphism f has an image.

                                                          Instances For

                                                            If f and g are isomorphic arrows, then an image factorisation of f gives an image factorisation of g

                                                            Equations
                                                              Instances For
                                                                def CategoryTheory.Limits.ImageFactorisation.ofIsoI {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : ImageFactorisation f) {I' : C} (e : F.F.I I') :

                                                                Given an image factorisation X ⟶ I ⟶ Y of an arrow f, an isomorphism I ≅ I' induces a new image factorisation X ⟶ I' ⟶ Y of f.

                                                                Equations
                                                                  Instances For
                                                                    @[simp]
                                                                    theorem CategoryTheory.Limits.ImageFactorisation.ofIsoI_isImage {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : ImageFactorisation f) {I' : C} (e : F.F.I I') :
                                                                    @[simp]
                                                                    theorem CategoryTheory.Limits.ImageFactorisation.ofIsoI_F {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : ImageFactorisation f) {I' : C} (e : F.F.I I') :
                                                                    (F.ofIsoI e).F = F.F.ofIsoI e
                                                                    def CategoryTheory.Limits.ImageFactorisation.copy {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : ImageFactorisation f) (m : F.F.I Y) (e : X F.F.I) (hm : m = F.F.m := by cat_disch) (he : e = F.F.e := by cat_disch) :

                                                                    Copying an image factorisation to another image factorisation with propositionally equal m and e fields.

                                                                    Equations
                                                                      Instances For
                                                                        @[simp]
                                                                        theorem CategoryTheory.Limits.ImageFactorisation.copy_isImage {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : ImageFactorisation f) (m : F.F.I Y) (e : X F.F.I) (hm : m = F.F.m := by cat_disch) (he : e = F.F.e := by cat_disch) :
                                                                        (F.copy m e hm he).isImage = F.isImage.copy m e
                                                                        @[simp]
                                                                        theorem CategoryTheory.Limits.ImageFactorisation.copy_F {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} (F : ImageFactorisation f) (m : F.F.I Y) (e : X F.F.I) (hm : m = F.F.m := by cat_disch) (he : e = F.F.e := by cat_disch) :
                                                                        (F.copy m e hm he).F = F.F.copy m e
                                                                        class CategoryTheory.Limits.HasImage {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) :

                                                                        HasImage f means that there exists an image factorisation of f.

                                                                        Instances
                                                                          @[instance 100]
                                                                          instance CategoryTheory.Limits.mono_hasImage {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) [Mono f] :

                                                                          Some image factorisation of f through a monomorphism (selected with choice).

                                                                          Equations
                                                                            Instances For

                                                                              Some factorisation of f through a monomorphism (selected with choice).

                                                                              Equations
                                                                                Instances For

                                                                                  The witness of the universal property for the chosen factorisation of f through a monomorphism.

                                                                                  Equations
                                                                                    Instances For
                                                                                      def CategoryTheory.Limits.image {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) [HasImage f] :
                                                                                      C

                                                                                      The categorical image of a morphism.

                                                                                      Equations
                                                                                        Instances For
                                                                                          def CategoryTheory.Limits.image.ι {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) [HasImage f] :

                                                                                          The inclusion of the image of a morphism into the target.

                                                                                          Equations
                                                                                            Instances For
                                                                                              def CategoryTheory.Limits.factorThruImage {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) [HasImage f] :

                                                                                              The map from the source to the image of a morphism.

                                                                                              Equations
                                                                                                Instances For
                                                                                                  @[simp]

                                                                                                  Rewrite in terms of the factorThruImage interface.

                                                                                                  def CategoryTheory.Limits.image.lift {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} [HasImage f] (F' : MonoFactorisation f) :
                                                                                                  image f F'.I

                                                                                                  Any other factorisation of the morphism f through a monomorphism receives a map from the image.

                                                                                                  Equations
                                                                                                    Instances For
                                                                                                      @[simp]
                                                                                                      theorem CategoryTheory.Limits.image.lift_mk_factorThruImage {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} [HasImage f] :
                                                                                                      CategoryStruct.comp (lift { I := image f, m := ι f, m_mono := , e := factorThruImage f, fac := }) (ι f) = ι f
                                                                                                      @[simp]
                                                                                                      theorem CategoryTheory.Limits.image.lift_mk_factorThruImage_assoc {C : Type u} [Category.{v, u} C] {X Y : C} {f : X Y} [HasImage f] {Z : C} (h : Y Z) :
                                                                                                      CategoryStruct.comp (lift { I := image f, m := ι f, m_mono := , e := factorThruImage f, fac := }) (CategoryStruct.comp (ι f) h) = CategoryStruct.comp (ι f) h
                                                                                                      @[simp]
                                                                                                      theorem CategoryTheory.Limits.image.lift_mk_comp {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Y) (g : Y Z) [HasImage g] [HasImage (CategoryStruct.comp f g)] (h : Y image g) (H : CategoryStruct.comp (CategoryStruct.comp f h) (ι g) = CategoryStruct.comp f g) :
                                                                                                      CategoryStruct.comp (lift { I := image g, m := ι g, m_mono := , e := CategoryStruct.comp f h, fac := }) (ι g) = ι (CategoryStruct.comp f g)
                                                                                                      @[simp]
                                                                                                      theorem CategoryTheory.Limits.image.lift_mk_comp_assoc {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Y) (g : Y Z) [HasImage g] [HasImage (CategoryStruct.comp f g)] (h : Y image g) (H : CategoryStruct.comp (CategoryStruct.comp f h) (ι g) = CategoryStruct.comp f g) {Z✝ : C} (h✝ : Z Z✝) :
                                                                                                      CategoryStruct.comp (lift { I := image g, m := ι g, m_mono := , e := CategoryStruct.comp f h, fac := }) (CategoryStruct.comp (ι g) h✝) = CategoryStruct.comp (ι (CategoryStruct.comp f g)) h✝
                                                                                                      instance CategoryTheory.Limits.instHasImageCompOfIsIso {C : Type u} [Category.{v, u} C] {X Y Z : C} (f : X Y) [IsIso f] (g : Y Z) [HasImage g] :

                                                                                                      If has_image g, then has_image (f ≫ g) when f is an isomorphism.

                                                                                                      HasImages asserts that every morphism has an image.

                                                                                                      Instances
                                                                                                        def CategoryTheory.Limits.imageMonoIsoSource {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) [Mono f] :

                                                                                                        The image of a monomorphism is isomorphic to the source.

                                                                                                        Equations
                                                                                                          Instances For
                                                                                                            def CategoryTheory.Limits.image.eqToHom {C : Type u} [Category.{v, u} C] {X Y : C} {f f' : X Y} [HasImage f] [HasImage f'] (h : f = f') :

                                                                                                            An equation between morphisms gives a comparison map between the images (which momentarily we prove is an iso).

                                                                                                            Equations
                                                                                                              Instances For
                                                                                                                instance CategoryTheory.Limits.instIsIsoEqToHom {C : Type u} [Category.{v, u} C] {X Y : C} {f f' : X Y} [HasImage f] [HasImage f'] (h : f = f') :
                                                                                                                def CategoryTheory.Limits.image.eqToIso {C : Type u} [Category.{v, u} C] {X Y : C} {f f' : X Y} [HasImage f] [HasImage f'] (h : f = f') :

                                                                                                                An equation between morphisms gives an isomorphism between the images.

                                                                                                                Equations
                                                                                                                  Instances For
                                                                                                                    theorem CategoryTheory.Limits.image.eq_fac {C : Type u} [Category.{v, u} C] {X Y : C} {f f' : X Y} [HasImage f] [HasImage f'] [HasEqualizers C] (h : f = f') :

                                                                                                                    As long as the category has equalizers, the image inclusion maps commute with image.eqToIso.

                                                                                                                    def CategoryTheory.Limits.image.preComp {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) {Z : C} (g : Y Z) [HasImage g] [HasImage (CategoryStruct.comp f g)] :

                                                                                                                    The comparison map image (f ≫ g) ⟶ image g.

                                                                                                                    Equations
                                                                                                                      Instances For
                                                                                                                        @[simp]
                                                                                                                        theorem CategoryTheory.Limits.image.preComp_ι_assoc {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) {Z : C} (g : Y Z) [HasImage g] [HasImage (CategoryStruct.comp f g)] {Z✝ : C} (h : Z Z✝) :
                                                                                                                        instance CategoryTheory.Limits.image.preComp_mono {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) {Z : C} (g : Y Z) [HasImage g] [HasImage (CategoryStruct.comp f g)] :

                                                                                                                        image.preComp f g is a monomorphism.

                                                                                                                        The two step comparison map image (f ≫ (g ≫ h)) ⟶ image (g ≫ h) ⟶ image h agrees with the one step comparison map image (f ≫ (g ≫ h)) ≅ image ((f ≫ g) ≫ h) ⟶ image h.

                                                                                                                        instance CategoryTheory.Limits.image.preComp_epi_of_epi {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) {Z : C} (g : Y Z) [HasEqualizers C] [HasImage g] [HasImage (CategoryStruct.comp f g)] [Epi f] :
                                                                                                                        Epi (preComp f g)

                                                                                                                        image.preComp f g is an epimorphism when f is an epimorphism (we need C to have equalizers to prove this).

                                                                                                                        instance CategoryTheory.Limits.hasImage_iso_comp {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) {Z : C} (g : Y Z) [IsIso f] [HasImage g] :
                                                                                                                        instance CategoryTheory.Limits.image.isIso_precomp_iso {C : Type u} [Category.{v, u} C] {X Y Z : C} (g : Y Z) [HasEqualizers C] (f : X Y) [IsIso f] [HasImage g] :

                                                                                                                        image.preComp f g is an isomorphism when f is an isomorphism (we need C to have equalizers to prove this).

                                                                                                                        instance CategoryTheory.Limits.hasImage_comp_iso {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) {Z : C} (g : Y Z) [HasImage f] [IsIso g] :
                                                                                                                        def CategoryTheory.Limits.image.compIso {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) {Z : C} (g : Y Z) [HasEqualizers C] [HasImage f] [IsIso g] :

                                                                                                                        Postcomposing by an isomorphism induces an isomorphism on the image.

                                                                                                                        Equations
                                                                                                                          Instances For
                                                                                                                            structure CategoryTheory.Limits.ImageMap {C : Type u} [Category.{v, u} C] {f g : Arrow C} [HasImage f.hom] [HasImage g.hom] (sq : f g) :

                                                                                                                            An image map is a morphism image f → image g fitting into a commutative square and satisfying the obvious commutativity conditions.

                                                                                                                            Instances For
                                                                                                                              @[simp]

                                                                                                                              An image map is a morphism image f → image g fitting into a commutative square and satisfying the obvious commutativity conditions.

                                                                                                                              def CategoryTheory.Limits.ImageMap.transport {C : Type u} [Category.{v, u} C] {f g : Arrow C} [HasImage f.hom] [HasImage g.hom] (sq : f g) (F : MonoFactorisation f.hom) {F' : MonoFactorisation g.hom} (hF' : IsImage F') {map : F.I F'.I} (map_ι : CategoryStruct.comp map F'.m = CategoryStruct.comp F.m sq.right) :

                                                                                                                              To give an image map for a commutative square with f at the top and g at the bottom, it suffices to give a map between any mono factorisation of f and any image factorisation of g.

                                                                                                                              Equations
                                                                                                                                Instances For

                                                                                                                                  HasImageMap sq means that there is an ImageMap for the square sq.

                                                                                                                                  Instances

                                                                                                                                    Obtain an ImageMap from a HasImageMap instance.

                                                                                                                                    Equations
                                                                                                                                      Instances For
                                                                                                                                        @[instance 100]
                                                                                                                                        theorem CategoryTheory.Limits.ImageMap.ext_iff {C : Type u} {inst✝ : Category.{v, u} C} {f g : Arrow C} {inst✝¹ : HasImage f.hom} {inst✝² : HasImage g.hom} {sq : f g} {x y : ImageMap sq} :
                                                                                                                                        x = y x.map = y.map
                                                                                                                                        theorem CategoryTheory.Limits.ImageMap.ext {C : Type u} {inst✝ : Category.{v, u} C} {f g : Arrow C} {inst✝¹ : HasImage f.hom} {inst✝² : HasImage g.hom} {sq : f g} {x y : ImageMap sq} (map : x.map = y.map) :
                                                                                                                                        x = y
                                                                                                                                        theorem CategoryTheory.Limits.ImageMap.map_uniq_aux {C : Type u} [Category.{v, u} C] {f g : Arrow C} [HasImage f.hom] [HasImage g.hom] {sq : f g} (map : image f.hom image g.hom) (map_ι : CategoryStruct.comp map (image.ι g.hom) = CategoryStruct.comp (image.ι f.hom) sq.right := by cat_disch) (map' : image f.hom image g.hom) (map_ι' : CategoryStruct.comp map' (image.ι g.hom) = CategoryStruct.comp (image.ι f.hom) sq.right) :
                                                                                                                                        map = map'
                                                                                                                                        @[simp]
                                                                                                                                        theorem CategoryTheory.Limits.ImageMap.mk.injEq' {C : Type u} [Category.{v, u} C] {f g : Arrow C} [HasImage f.hom] [HasImage g.hom] {sq : f g} (map : image f.hom image g.hom) (map_ι : CategoryStruct.comp map (image.ι g.hom) = CategoryStruct.comp (image.ι f.hom) sq.right := by cat_disch) (map' : image f.hom image g.hom) (map_ι' : CategoryStruct.comp map' (image.ι g.hom) = CategoryStruct.comp (image.ι f.hom) sq.right) :
                                                                                                                                        (map = map') = True

                                                                                                                                        @[simp]-normal form of ImageMap.mk.injEq.

                                                                                                                                        @[reducible, inline]

                                                                                                                                        The map on images induced by a commutative square.

                                                                                                                                        Equations
                                                                                                                                          Instances For
                                                                                                                                            def CategoryTheory.Limits.imageMapComp {C : Type u} [Category.{v, u} C] {f g : Arrow C} [HasImage f.hom] [HasImage g.hom] (sq : f g) [HasImageMap sq] {h : Arrow C} [HasImage h.hom] (sq' : g h) [HasImageMap sq'] :

                                                                                                                                            Image maps for composable commutative squares induce an image map in the composite square.

                                                                                                                                            Equations
                                                                                                                                              Instances For

                                                                                                                                                The identity image f ⟶ image f fits into the commutative square represented by the identity morphism 𝟙 f in the arrow category.

                                                                                                                                                Equations
                                                                                                                                                  Instances For

                                                                                                                                                    If a category HasImageMaps, then all commutative squares induce morphisms on images.

                                                                                                                                                    Instances

                                                                                                                                                      The functor from the arrow category of C to C itself that maps a morphism to its image and a commutative square to the induced morphism on images.

                                                                                                                                                      Equations
                                                                                                                                                        Instances For
                                                                                                                                                          @[simp]
                                                                                                                                                          theorem CategoryTheory.Limits.im_map {C : Type u} [Category.{v, u} C] [HasImages C] [HasImageMaps C] {X✝ Y✝ : Arrow C} (st : X✝ Y✝) :

                                                                                                                                                          A strong epi-mono factorisation is a decomposition f = em with e a strong epimorphism and m a monomorphism.

                                                                                                                                                          Instances For

                                                                                                                                                            Satisfying the inhabited linter

                                                                                                                                                            Equations

                                                                                                                                                              A mono factorisation coming from a strong epi-mono factorisation always has the universal property of the image.

                                                                                                                                                              Equations
                                                                                                                                                                Instances For

                                                                                                                                                                  A category has strong epi-mono factorisations if every morphism admits a strong epi-mono factorisation.

                                                                                                                                                                  • mk' :: (
                                                                                                                                                                  • )
                                                                                                                                                                  Instances

                                                                                                                                                                    A category has strong epi images if it has all images and factorThruImage f is a strong epimorphism for all f.

                                                                                                                                                                    Instances

                                                                                                                                                                      If there is a single strong epi-mono factorisation of f, then every image factorisation is a strong epi-mono factorisation.

                                                                                                                                                                      @[instance 100]

                                                                                                                                                                      If we constructed our images from strong epi-mono factorisations, then these images are strong epi images.

                                                                                                                                                                      @[instance 100]

                                                                                                                                                                      A category with strong epi images has image maps.

                                                                                                                                                                      @[instance 100]

                                                                                                                                                                      If a category has images, equalizers and pullbacks, then images are automatically strong epi images.

                                                                                                                                                                      def CategoryTheory.Limits.image.isoStrongEpiMono {C : Type u} [Category.{v, u} C] [HasStrongEpiMonoFactorisations C] {X Y : C} {f : X Y} {I' : C} (e : X I') (m : I' Y) (comm : CategoryStruct.comp e m = f) [StrongEpi e] [Mono m] :
                                                                                                                                                                      I' image f

                                                                                                                                                                      If C has strong epi mono factorisations, then the image is unique up to isomorphism, in that if f factors as a strong epi followed by a mono, this factorisation is essentially the image factorisation.

                                                                                                                                                                      Equations
                                                                                                                                                                        Instances For
                                                                                                                                                                          @[simp]
                                                                                                                                                                          theorem CategoryTheory.Limits.image.isoStrongEpiMono_hom_comp_ι {C : Type u} [Category.{v, u} C] [HasStrongEpiMonoFactorisations C] {X Y : C} {f : X Y} {I' : C} (e : X I') (m : I' Y) (comm : CategoryStruct.comp e m = f) [StrongEpi e] [Mono m] :

                                                                                                                                                                          A category with strong epi mono factorisations admits functorial epi/mono factorizations.

                                                                                                                                                                          Equations
                                                                                                                                                                            Instances For