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).
Given a linearly ordered type ι, this is the shape of multicoequalizer diagrams
corresponding to situations where we want to coequalize two families of maps
V ⟨i, j⟩ ⟶ U i and V ⟨i, j⟩ ⟶ U j with i < j.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
The type underlying the multiequalizer diagram.
- left {J : MulticospanShape} : J.L → WalkingMulticospan J
- right {J : MulticospanShape} : J.R → WalkingMulticospan J
Instances For
The type underlying the multicoequalizer diagram.
- left {J : MultispanShape} : J.L → WalkingMultispan J
- right {J : MultispanShape} : J.R → WalkingMultispan J
Instances For
Morphisms for WalkingMulticospan.
- id {J : MulticospanShape} (A : WalkingMulticospan J) : A.Hom A
- fst {J : MulticospanShape} (b : J.R) : (left (J.fst b)).Hom (right b)
- snd {J : MulticospanShape} (b : J.R) : (left (J.snd b)).Hom (right b)
Instances For
Composition of morphisms for WalkingMulticospan.
Equations
- One or more equations did not get rendered due to their size.
- (CategoryTheory.Limits.WalkingMulticospan.Hom.id x✝²).comp x✝ = x✝
Instances For
Equations
- One or more equations did not get rendered due to their size.
Construct a natural isomorphism between functors out of a walking multicospan from its components.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Morphisms for WalkingMultispan.
- id {J : MultispanShape} (A : WalkingMultispan J) : A.Hom A
- fst {J : MultispanShape} (a : J.L) : (left a).Hom (right (J.fst a))
- snd {J : MultispanShape} (a : J.L) : (left a).Hom (right (J.snd a))
Instances For
Equations
Composition of morphisms for WalkingMultispan.
Equations
- One or more equations did not get rendered due to their size.
- (CategoryTheory.Limits.WalkingMultispan.Hom.id x✝²).comp x✝ = x✝
Instances For
Equations
- One or more equations did not get rendered due to their size.
Construct a natural isomorphism between functors out of a walking multispan from its components.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- a.instUniqueHom = { default := CategoryTheory.CategoryStruct.id a, uniq := ⋯ }
The bijection WalkingMultispan J ≃ J.L ⊕ J.R.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The bijection Arrow (WalkingMultispan J) ≃ WalkingMultispan J ⊕ J.R ⊕ J.R.
Equations
- One or more equations did not get rendered due to their size.
Instances For
This is a structure encapsulating the data necessary to define a Multicospan.
Instances For
This is a structure encapsulating the data necessary to define a Multispan.
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 for limiting fans.
Equations
- I.fstPiMapOfIsLimit c hd = CategoryTheory.Limits.Fan.IsLimit.desc hd fun (i : J.R) => CategoryTheory.CategoryStruct.comp (c.proj (J.fst i)) (I.fst i)
Instances For
The induced map ∏ᶜ I.left ⟶ ∏ᶜ I.right via I.snd for limiting fans.
Equations
- I.sndPiMapOfIsLimit c hd = CategoryTheory.Limits.Fan.IsLimit.desc hd fun (i : J.R) => CategoryTheory.CategoryStruct.comp (c.proj (J.snd i)) (I.snd i)
Instances For
Taking the multiequalizer over the multicospan index is equivalent to taking the equalizer over
the two morphisms ∏ᶜ I.left ⇉ ∏ᶜ I.right. This is the diagram of the latter for limiting fans.
Equations
- I.parallelPairDiagramOfIsLimit c hd = CategoryTheory.Limits.parallelPair (I.fstPiMapOfIsLimit c hd) (I.sndPiMapOfIsLimit c hd)
Instances For
The induced map ∏ᶜ I.left ⟶ ∏ᶜ I.right via I.fst.
Equations
Instances For
The induced map ∏ᶜ I.left ⟶ ∏ᶜ I.right via I.snd.
Equations
Instances For
Taking the multiequalizer over the multicospan index is equivalent to taking the equalizer over
the two morphisms ∏ᶜ I.left ⇉ ∏ᶜ I.right. This is the diagram of the latter.
Equations
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 for colimiting cofans.
Equations
- I.fstSigmaMapOfIsColimit d hc = CategoryTheory.Limits.Cofan.IsColimit.desc hc fun (i : J.L) => CategoryTheory.CategoryStruct.comp (I.fst i) (d.inj (J.fst i))
Instances For
The induced map ∐ I.left ⟶ ∐ I.right via I.snd for colimiting cofans.
Equations
- I.sndSigmaMapOfIsColimit d hc = CategoryTheory.Limits.Cofan.IsColimit.desc hc fun (i : J.L) => CategoryTheory.CategoryStruct.comp (I.snd i) (d.inj (J.snd i))
Instances For
Taking the multicoequalizer over the multispan index is equivalent to taking the coequalizer
over the two morphisms ∐ I.left ⇉ ∐ I.right. This is the diagram of the latter for colimiting
cofans.
Equations
- I.parallelPairDiagramOfIsColimit d hc = CategoryTheory.Limits.parallelPair (I.fstSigmaMapOfIsColimit d hc) (I.sndSigmaMapOfIsColimit d hc)
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 multicoequalizer over the multispan index is equivalent to taking the coequalizer over
the two morphisms ∐ I.left ⇉ ∐ I.right. This is the diagram of the latter.
Equations
Instances For
A multifork is a cone over a multicospan.
Instances For
A multicofork is a cocone over a multispan.
Instances For
The maps from the cone point of a multifork to the objects on the left.
Equations
- K.ι a = K.π.app (CategoryTheory.Limits.WalkingMulticospan.left a)
Instances For
Construct a multifork using a collection ι of morphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Constructor for isomorphisms between multiforks.
Equations
Instances For
Every multifork is isomorphic to one of the form Multifork.ofι.
Equations
Instances For
This definition provides a convenient way to show that a multifork is a limit.
Equations
- CategoryTheory.Limits.Multifork.IsLimit.mk K lift fac uniq = { lift := lift, fac := ⋯, uniq := ⋯ }
Instances For
Constructor for morphisms to the point of a limit multifork.
Equations
- CategoryTheory.Limits.Multifork.IsLimit.lift hK k hk = hK.lift (CategoryTheory.Limits.Multifork.ofι I T k hk)
Instances For
Given two multiforks with isomorphic components in such a way that the natural diagrams commute, then one is a limit if and only if the other one is.
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
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
Multifork.toPiFork as a functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Multifork.ofPiFork as a functor.
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 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 constant MulticospanShape for a pair of parallel morphisms.
Equations
Instances For
A fork on a pair of morphisms f and g is the same as a multifork on the
single point index defined by f and g.
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
- K.π b = K.ι.app (CategoryTheory.Limits.WalkingMultispan.right b)
Instances For
Construct a multicofork using a collection π of morphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
This definition provides a convenient way to show that a multicofork is a colimit.
Equations
- CategoryTheory.Limits.Multicofork.IsColimit.mk K desc fac uniq = { desc := desc, fac := ⋯, uniq := ⋯ }
Instances For
Constructor for morphisms from the point of a colimit multicofork.
Equations
- CategoryTheory.Limits.Multicofork.IsColimit.desc hK k hk = hK.desc (CategoryTheory.Limits.Multicofork.ofπ I T k hk)
Instances For
Given a multicofork, we may obtain a cofork over ∐ I.left ⇉ ∐ I.right.
Equations
Instances For
Given a cofork over ∐ I.left ⇉ ∐ I.right, we may obtain a multicofork.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Constructor for isomorphisms between multicoforks.
Equations
Instances For
Every multicofork is isomorphic to one of the form Multicofork.ofπ.
Equations
Instances For
Multicofork.toSigmaCofork as a functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Multicofork.ofSigmaCofork as a functor.
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
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
For I : MulticospanIndex J C, we say that it has a multiequalizer if the associated
multicospan has a limit.
Instances For
The multiequalizer of I : MulticospanIndex J C.
Instances For
For I : MultispanIndex J C, we say that it has a multicoequalizer if
the associated multicospan has a limit.
Instances For
The multicoequalizer of I : MultispanIndex J C.
Instances For
The canonical map from the multiequalizer to the objects on the left.
Equations
Instances For
The multifork associated to the multiequalizer.
Equations
Instances For
Construct a morphism to the multiequalizer from its universal property.
Equations
Instances For
The multiequalizer is isomorphic to the equalizer of ∏ᶜ I.left ⇉ ∏ᶜ I.right.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical injection multiequalizer I ⟶ ∏ᶜ I.left.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical map from the multiequalizer to the objects on the left.
Equations
Instances For
The multicofork associated to the multicoequalizer.
Equations
Instances For
@[simp]-normal form of multicofork_ι_app_right.
Construct a morphism from the multicoequalizer from its universal property.
Equations
Instances For
The multicoequalizer is isomorphic to the coequalizer of ∐ I.left ⇉ ∐ I.right.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical projection ∐ I.right ⟶ multicoequalizer I.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The inclusion functor WalkingMultispan (.ofLinearOrder ι) ⥤ WalkingMultispan (.prod ι).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Structure expressing a symmetry of I : MultispanIndex (.prod ι) C which
allows to compare the corresponding multicoequalizer to the multicoequalizer
of I.toLinearOrder.
the symmetry isomorphism
Instances For
The multispan index for MultispanShape.ofLinearOrder ι deduced from
a multispan index for MultispanShape.prod ι when ι is linearly ordered.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a linearly ordered type ι and I : MultispanIndex (.prod ι) C,
this is the isomorphism of functors between
WalkingMultispan.inclusionOfLinearOrder ι ⋙ I.multispan
and I.toLinearOrder.multispan.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The multicofork for I.toLinearOrder deduced from a multicofork
for I : MultispanIndex (.prod ι) C when ι is linearly ordered.
Equations
Instances For
The multicofork for I : MultispanIndex (.prod ι) C deduced from
a multicofork for I.toLinearOrder when ι is linearly ordered
and I is symmetric.
Equations
- c.ofLinearOrder h = CategoryTheory.Limits.Multicofork.ofπ I c.pt c.π ⋯
Instances For
If ι is a linearly ordered type, I : MultispanIndex (.prod ι) C, and
c a colimit multicofork for I, then c.toLinearOrder is a colimit
multicofork for I.toLinearOrder.
Equations
- c.isColimitToLinearOrder hc h = CategoryTheory.Limits.Multicofork.IsColimit.mk c.toLinearOrder (fun (s : CategoryTheory.Limits.Multicofork I.toLinearOrder) => hc.desc (s.ofLinearOrder h)) ⋯ ⋯