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.

      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.

        Instances For
          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
                  @[implicit_reducible]
                  def CategoryTheory.Limits.WalkingReflexivePair.instDecidableEqHom.decEq {a✝ a✝¹ : WalkingReflexivePair} (x✝ x✝¹ : a✝.Hom a✝¹) :
                  Decidable (x✝ = x✝¹)
                  Instances For

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

                    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

                      Instances For

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

                        Instances For

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

                          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.

                            Instances For
                              @[reducible, inline]

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

                              Instances For
                                @[reducible, inline]

                                The tail morphism of a reflexive cofork.

                                Instances For

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

                                  Instances For

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

                                    Instances For

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

                                      Instances For

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

                                        Instances For

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

                                          Instances For

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