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.
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
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

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

Equations

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.
@[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.

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

Equations
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.
@[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]