Documentation

Mathlib.CategoryTheory.Limits.Shapes.Multiequalizer

Multi-(co)equalizers #

A multiequalizer is an equalizer of two morphisms between two products. Since both products and equalizers are limits, such an object is again a limit. This file provides the diagram whose limit is indeed such an object. In fact, it is well-known that any limit can be obtained as a multiequalizer. The dual construction (multicoequalizers) is also provided.

Projects #

Prove that a multiequalizer can be identified with an equalizer between products (and analogously for multicoequalizers).

Prove that the limit of any diagram is a multiequalizer (and similarly for colimits).

inductive CategoryTheory.Limits.WalkingMulticospan {L : Type w} {R : Type w} (fst : RL) (snd : RL) :

The type underlying the multiequalizer diagram.

Instances For
    inductive CategoryTheory.Limits.WalkingMultispan {L : Type w} {R : Type w} (fst : LR) (snd : LR) :

    The type underlying the multiecoqualizer diagram.

    Instances For
      Equations
      Equations

      Composition of morphisms for WalkingMulticospan.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        Equations
        • CategoryTheory.Limits.WalkingMulticospan.instSmallCategoryWalkingMulticospan = CategoryTheory.Category.mk
        Equations
        Equations

        Composition of morphisms for WalkingMultispan.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          Equations
          • CategoryTheory.Limits.WalkingMultispan.instSmallCategoryWalkingMultispan = CategoryTheory.Category.mk

          This is a structure encapsulating the data necessary to define a Multicospan.

          • L : Type w
          • R : Type w
          • fstTo : self.Rself.L
          • sndTo : self.Rself.L
          • left : self.LC
          • right : self.RC
          • fst : (b : self.R) → self.left (self.fstTo b) self.right b
          • snd : (b : self.R) → self.left (self.sndTo b) self.right b
          Instances For
            structure CategoryTheory.Limits.MultispanIndex (C : Type u) [CategoryTheory.Category.{v, u} C] :
            Type (max (max u v) (w + 1))

            This is a structure encapsulating the data necessary to define a Multispan.

            • L : Type w
            • R : Type w
            • fstFrom : self.Lself.R
            • sndFrom : self.Lself.R
            • left : self.LC
            • right : self.RC
            • fst : (a : self.L) → self.left a self.right (self.fstFrom a)
            • snd : (a : self.L) → self.left a self.right (self.sndFrom a)
            Instances For

              The multicospan associated to I : MulticospanIndex.

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

                The induced map ∏ I.left ⟶ ∏ I.right via I.fst.

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

                  The induced map ∏ I.left ⟶ ∏ I.right via I.snd.

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

                    Taking the multiequalizer over the multicospan index is equivalent to taking the equalizer over the two morphsims ∏ I.left ⇉ ∏ I.right. This is the diagram of the latter.

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

                      The multispan associated to I : MultispanIndex.

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

                        The induced map ∐ I.left ⟶ ∐ I.right via I.fst.

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

                          The induced map ∐ I.left ⟶ ∐ I.right via I.snd.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            @[inline, reducible]

                            Taking the multicoequalizer over the multispan index is equivalent to taking the coequalizer over the two morphsims ∐ I.left ⇉ ∐ I.right. This is the diagram of the latter.

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

                              The maps from the cone point of a multifork to the objects on the left.

                              Equations
                              Instances For
                                @[simp]
                                theorem CategoryTheory.Limits.Multifork.ofι_pt {C : Type u} [CategoryTheory.Category.{v, u} C] (I : CategoryTheory.Limits.MulticospanIndex C) (P : C) (ι : (a : I.L) → P I.left a) (w : ∀ (b : I.R), CategoryTheory.CategoryStruct.comp (ι (I.fstTo b)) (I.fst b) = CategoryTheory.CategoryStruct.comp (ι (I.sndTo b)) (I.snd b)) :
                                @[simp]
                                def CategoryTheory.Limits.Multifork.ofι {C : Type u} [CategoryTheory.Category.{v, u} C] (I : CategoryTheory.Limits.MulticospanIndex C) (P : C) (ι : (a : I.L) → P I.left a) (w : ∀ (b : I.R), CategoryTheory.CategoryStruct.comp (ι (I.fstTo b)) (I.fst b) = CategoryTheory.CategoryStruct.comp (ι (I.sndTo b)) (I.snd b)) :

                                Construct a multifork using a collection ι of morphisms.

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

                                  Given a multifork, we may obtain a fork over ∏ I.left ⇉ ∏ I.right.

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

                                    Given a fork over ∏ I.left ⇉ ∏ I.right, we may obtain a multifork.

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

                                      The category of multiforks is equivalent to the category of forks over ∏ I.left ⇉ ∏ I.right. It then follows from CategoryTheory.IsLimit.ofPreservesConeTerminal (or reflects) that it preserves and reflects limit cones.

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

                                        The maps to the cocone point of a multicofork from the objects on the right.

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.Limits.Multicofork.ofπ_pt {C : Type u} [CategoryTheory.Category.{v, u} C] (I : CategoryTheory.Limits.MultispanIndex C) (P : C) (π : (b : I.R) → I.right b P) (w : ∀ (a : I.L), CategoryTheory.CategoryStruct.comp (I.fst a) (π (I.fstFrom a)) = CategoryTheory.CategoryStruct.comp (I.snd a) (π (I.sndFrom a))) :
                                          @[simp]
                                          theorem CategoryTheory.Limits.Multicofork.ofπ_ι_app {C : Type u} [CategoryTheory.Category.{v, u} C] (I : CategoryTheory.Limits.MultispanIndex C) (P : C) (π : (b : I.R) → I.right b P) (w : ∀ (a : I.L), CategoryTheory.CategoryStruct.comp (I.fst a) (π (I.fstFrom a)) = CategoryTheory.CategoryStruct.comp (I.snd a) (π (I.sndFrom a))) (x : CategoryTheory.Limits.WalkingMultispan I.fstFrom I.sndFrom) :
                                          def CategoryTheory.Limits.Multicofork.ofπ {C : Type u} [CategoryTheory.Category.{v, u} C] (I : CategoryTheory.Limits.MultispanIndex C) (P : C) (π : (b : I.R) → I.right b P) (w : ∀ (a : I.L), CategoryTheory.CategoryStruct.comp (I.fst a) (π (I.fstFrom a)) = CategoryTheory.CategoryStruct.comp (I.snd a) (π (I.sndFrom a))) :

                                          Construct a multicofork using a collection π of morphisms.

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

                                            The category of multicoforks is equivalent to the category of coforks over ∐ I.left ⇉ ∐ I.right. It then follows from CategoryTheory.IsColimit.ofPreservesCoconeInitial (or reflects) that it preserves and reflects colimit cocones.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              @[inline, reducible]

                                              For I : MulticospanIndex C, we say that it has a multiequalizer if the associated multicospan has a limit.

                                              Equations
                                              Instances For
                                                @[inline, reducible]

                                                For I : MultispanIndex C, we say that it has a multicoequalizer if the associated multicospan has a limit.

                                                Equations
                                                Instances For
                                                  @[inline, reducible]

                                                  Construct a morphism to the multiequalizer from its universal property.

                                                  Equations
                                                  Instances For
                                                    @[inline, reducible]

                                                    Construct a morphism from the multicoequalizer from its universal property.

                                                    Equations
                                                    Instances For