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
  • One or more equations did not get rendered due to their size.
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
          • One or more equations did not get rendered due to their size.
          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
            • One or more equations did not get rendered due to their size.
            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
                    • One or more equations did not get rendered due to their size.
                    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]