Documentation

Mathlib.CategoryTheory.Limits.Shapes.Reflexive

Reflexive coequalizers #

This file deals with reflexive pairs, which are pairs of morphisms with a common section.

A reflexive coequalizer is a coequalizer of such a pair. These kind of coequalizers often enjoy nicer properties than general coequalizers, and feature heavily in some versions of the monadicity theorem.

We also give some examples of reflexive pairs: for an adjunction F ⊣ G with counit ε, the pair (FGε_B, ε_FGB) is reflexive. If a pair f,g is a kernel pair for some morphism, then it is reflexive.

Main definitions #

Main statements #

TODO #

class CategoryTheory.IsReflexivePair {C : Type u} [Category.{v, u} C] {A B : C} (f g : A B) :

The pair f g : A ⟶ B is reflexive if there is a morphism B ⟶ A which is a section for both.

Instances
    class CategoryTheory.IsCoreflexivePair {C : Type u} [Category.{v, u} C] {A B : C} (f g : A B) :

    The pair f g : A ⟶ B is coreflexive if there is a morphism B ⟶ A which is a retraction for both.

    Instances
      noncomputable def CategoryTheory.commonSection {C : Type u} [Category.{v, u} C] {A B : C} (f g : A B) [IsReflexivePair f g] :
      B A

      Get the common section for a reflexive pair.

      Equations
        Instances For
          @[simp]
          theorem CategoryTheory.section_comp_left_assoc {C : Type u} [Category.{v, u} C] {A B : C} (f g : A B) [IsReflexivePair f g] {Z : C} (h : B Z) :
          @[simp]
          theorem CategoryTheory.section_comp_right_assoc {C : Type u} [Category.{v, u} C] {A B : C} (f g : A B) [IsReflexivePair f g] {Z : C} (h : B Z) :
          noncomputable def CategoryTheory.commonRetraction {C : Type u} [Category.{v, u} C] {A B : C} (f g : A B) [IsCoreflexivePair f g] :
          B A

          Get the common retraction for a coreflexive pair.

          Equations
            Instances For
              @[simp]
              @[simp]
              theorem CategoryTheory.IsKernelPair.isReflexivePair {C : Type u} [Category.{v, u} C] {A B R : C} {f g : R A} {q : A B} (h : IsKernelPair q f g) :

              If f,g is a kernel pair for some morphism q, then it is reflexive.

              theorem CategoryTheory.IsReflexivePair.swap {C : Type u} [Category.{v, u} C] {A B : C} {f g : A B} [IsReflexivePair f g] :

              If f,g is reflexive, then g,f is reflexive.

              If f,g is coreflexive, then g,f is coreflexive.

              instance CategoryTheory.instIsReflexivePairMapAppCounitObj {C : Type u} [Category.{v, u} C] {D : Type u₂} [Category.{v₂, u₂} D] {F : Functor C D} {G : Functor D C} (adj : F G) (B : D) :
              IsReflexivePair (F.map (G.map (adj.counit.app B))) (adj.counit.app (F.obj (G.obj B)))

              For an adjunction F ⊣ G with counit ε, the pair (FGε_B, ε_FGB) is reflexive.

              C has reflexive coequalizers if it has coequalizers for every reflexive pair.

              Instances

                C has coreflexive equalizers if it has equalizers for every coreflexive pair.

                Instances
                  @[instance 100]

                  If C has coequalizers, then it has reflexive coequalizers.

                  @[instance 100]

                  If C has equalizers, then it has coreflexive equalizers.

                  The type of objects for the diagram indexing reflexive (co)equalizers

                  Instances For

                    The type of morphisms for the diagram indexing reflexive (co)equalizers

                    Instances For

                      Composition of morphisms in the diagram indexing reflexive (co)equalizers

                      Equations
                        Instances For
                          def CategoryTheory.Limits.reflexivePair {C : Type u} [Category.{v, u} C] {A B : C} (f g : A B) (s : B A) (sl : CategoryStruct.comp s f = CategoryStruct.id B := by cat_disch) (sr : CategoryStruct.comp s g = CategoryStruct.id B := by cat_disch) :

                          Bundle the data of a parallel pair along with a common section as a functor out of the walking reflexive pair

                          Equations
                            Instances For

                              (Noncomputably) bundle the data of a reflexive pair as a functor out of the walking reflexive pair

                              Equations
                                Instances For

                                  The natural isomorphism between the diagram obtained by forgetting the reflexion of ofIsReflexivePair f g and the original parallel pair.

                                  Equations
                                    Instances For
                                      def CategoryTheory.Limits.reflexivePair.compRightIso {C : Type u} [Category.{v, u} C] {D : Type u₂} [Category.{v₂, u₂} D] {A B : C} (f g : A B) (s : B A) (sl : CategoryStruct.comp s f = CategoryStruct.id B) (sr : CategoryStruct.comp s g = CategoryStruct.id B) (F : Functor C D) :
                                      (reflexivePair f g s sl sr).comp F reflexivePair (F.map f) (F.map g) (F.map s)

                                      A reflexivePair composed with a functor is isomorphic to the reflexivePair obtained by applying the functor at each map.

                                      Equations
                                        Instances For
                                          @[reducible, inline]

                                          A ReflexiveCofork is a cocone over a WalkingReflexivePair-shaped diagram.

                                          Equations
                                            Instances For
                                              @[reducible, inline]

                                              The tail morphism of a reflexive cofork.

                                              Equations
                                                Instances For

                                                  Forgetting the reflexion yields an equivalence between cocones over a bundled reflexive pair and coforks on the underlying parallel pair.

                                                  Equations
                                                    Instances For

                                                      The equivalence between reflexive coforks and coforks sends a reflexive cofork to its underlying cofork.

                                                      Equations
                                                        Instances For

                                                          A reflexive cofork is a colimit cocone if and only if the underlying cofork is.

                                                          Equations
                                                            Instances For

                                                              The colimit of a functor out of the walking reflexive pair is the same as the colimit of the underlying parallel pair.

                                                              Equations
                                                                Instances For

                                                                  The coequalizer of a reflexive pair can be promoted to the colimit of a diagram out of the walking reflexive pair

                                                                  Equations
                                                                    Instances For

                                                                      A category has coequalizers of reflexive pairs if and only if it has all colimits indexed by the walking reflexive pair.