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

                    The inclusion functor forgetting the common section

                    Equations
                    • One or more equations did not get rendered due to their size.
                    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 aesop_cat) (sr : CategoryStruct.comp s g = CategoryStruct.id B := by aesop_cat) :

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

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

                            Every functor out of WalkingReflexivePair is isomorphic to the reflexivePair given by its components

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

                                    Constructor for ReflexiveCofork

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For

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

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For

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

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