Documentation

Mathlib.CategoryTheory.Limits.Preserves.Shapes.Equalizers

Preserving (co)equalizers #

Constructions to relate the notions of preserving (co)equalizers and reflecting (co)equalizers to concrete (co)forks.

In particular, we show that equalizerComparison f g G is an isomorphism iff G preserves the limit of the parallel pair f,g, as well as the dual result.

def CategoryTheory.Limits.isLimitMapConeForkEquiv {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (G : Functor C D) {X Y Z : C} {f g : X Y} {h : Z X} (w : CategoryStruct.comp h f = CategoryStruct.comp h g) :

The map of a fork is a limit iff the fork consisting of the mapped morphisms is a limit. This essentially lets us commute Fork.ofι with Functor.mapCone.

Equations
    Instances For
      def CategoryTheory.Limits.isLimitForkMapOfIsLimit {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (G : Functor C D) {X Y Z : C} {f g : X Y} {h : Z X} (w : CategoryStruct.comp h f = CategoryStruct.comp h g) [PreservesLimit (parallelPair f g) G] (l : IsLimit (Fork.ofι h w)) :
      IsLimit (Fork.ofι (G.map h) )

      The property of preserving equalizers expressed in terms of forks.

      Equations
        Instances For
          def CategoryTheory.Limits.isLimitOfIsLimitForkMap {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (G : Functor C D) {X Y Z : C} {f g : X Y} {h : Z X} (w : CategoryStruct.comp h f = CategoryStruct.comp h g) [ReflectsLimit (parallelPair f g) G] (l : IsLimit (Fork.ofι (G.map h) )) :

          The property of reflecting equalizers expressed in terms of forks.

          Equations
            Instances For

              If G preserves equalizers and C has them, then the fork constructed of the mapped morphisms of a fork is a limit.

              Equations
                Instances For

                  If the equalizer comparison map for G at (f,g) is an isomorphism, then G preserves the equalizer of (f,g).

                  def CategoryTheory.Limits.PreservesEqualizer.iso {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (G : Functor C D) {X Y : C} (f g : X Y) [HasEqualizer f g] [HasEqualizer (G.map f) (G.map g)] [PreservesLimit (parallelPair f g) G] :
                  G.obj (equalizer f g) equalizer (G.map f) (G.map g)

                  If G preserves the equalizer of (f,g), then the equalizer comparison map for G at (f,g) is an isomorphism.

                  Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Limits.PreservesEqualizer.iso_hom {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (G : Functor C D) {X Y : C} (f g : X Y) [HasEqualizer f g] [HasEqualizer (G.map f) (G.map g)] [PreservesLimit (parallelPair f g) G] :
                      @[simp]
                      theorem CategoryTheory.Limits.PreservesEqualizer.iso_inv_ι {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (G : Functor C D) {X Y : C} (f g : X Y) [HasEqualizer f g] [HasEqualizer (G.map f) (G.map g)] [PreservesLimit (parallelPair f g) G] :

                      The map of a cofork is a colimit iff the cofork consisting of the mapped morphisms is a colimit. This essentially lets us commute Cofork.ofπ with Functor.mapCocone.

                      Equations
                        Instances For

                          The property of preserving coequalizers expressed in terms of coforks.

                          Equations
                            Instances For

                              The property of reflecting coequalizers expressed in terms of coforks.

                              Equations
                                Instances For

                                  If G preserves coequalizers and C has them, then the cofork constructed of the mapped morphisms of a cofork is a colimit.

                                  Equations
                                    Instances For
                                      theorem CategoryTheory.Limits.of_iso_comparison {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (G : Functor C D) {X Y : C} (f g : X Y) [HasCoequalizer f g] [HasCoequalizer (G.map f) (G.map g)] [i : IsIso (coequalizerComparison f g G)] :

                                      If the coequalizer comparison map for G at (f,g) is an isomorphism, then G preserves the coequalizer of (f,g).

                                      def CategoryTheory.Limits.PreservesCoequalizer.iso {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (G : Functor C D) {X Y : C} (f g : X Y) [HasCoequalizer f g] [HasCoequalizer (G.map f) (G.map g)] [PreservesColimit (parallelPair f g) G] :
                                      coequalizer (G.map f) (G.map g) G.obj (coequalizer f g)

                                      If G preserves the coequalizer of (f,g), then the coequalizer comparison map for G at (f,g) is an isomorphism.

                                      Equations
                                        Instances For
                                          @[simp]
                                          instance CategoryTheory.Limits.map_π_epi {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (G : Functor C D) {X Y : C} (f g : X Y) [HasCoequalizer f g] [HasCoequalizer (G.map f) (G.map g)] [PreservesColimit (parallelPair f g) G] :
                                          theorem CategoryTheory.Limits.map_π_preserves_coequalizer_inv_colimMap {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (G : Functor C D) {X Y : C} (f g : X Y) [HasCoequalizer f g] [HasCoequalizer (G.map f) (G.map g)] [PreservesColimit (parallelPair f g) G] {X' Y' : D} (f' g' : X' Y') [HasCoequalizer f' g'] (p : G.obj X X') (q : G.obj Y Y') (wf : CategoryStruct.comp (G.map f) q = CategoryStruct.comp p f') (wg : CategoryStruct.comp (G.map g) q = CategoryStruct.comp p g') :
                                          theorem CategoryTheory.Limits.map_π_preserves_coequalizer_inv_colimMap_desc {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (G : Functor C D) {X Y : C} (f g : X Y) [HasCoequalizer f g] [HasCoequalizer (G.map f) (G.map g)] [PreservesColimit (parallelPair f g) G] {X' Y' : D} (f' g' : X' Y') [HasCoequalizer f' g'] (p : G.obj X X') (q : G.obj Y Y') (wf : CategoryStruct.comp (G.map f) q = CategoryStruct.comp p f') (wg : CategoryStruct.comp (G.map g) q = CategoryStruct.comp p g') {Z' : D} (h : Y' Z') (wh : CategoryStruct.comp f' h = CategoryStruct.comp g' h) :
                                          theorem CategoryTheory.Limits.map_π_preserves_coequalizer_inv_colimMap_desc_assoc {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (G : Functor C D) {X Y : C} (f g : X Y) [HasCoequalizer f g] [HasCoequalizer (G.map f) (G.map g)] [PreservesColimit (parallelPair f g) G] {X' Y' : D} (f' g' : X' Y') [HasCoequalizer f' g'] (p : G.obj X X') (q : G.obj Y Y') (wf : CategoryStruct.comp (G.map f) q = CategoryStruct.comp p f') (wg : CategoryStruct.comp (G.map g) q = CategoryStruct.comp p g') {Z' : D} (h : Y' Z') (wh : CategoryStruct.comp f' h = CategoryStruct.comp g' h) {Z : D} (h✝ : Z' Z) :
                                          @[instance 1]

                                          Any functor preserves coequalizers of split pairs.

                                          @[instance 1]