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).
The type underlying the multiequalizer diagram.
- left: {L : Type w} → {R : Type w'} → {fst snd : R → L} → L → CategoryTheory.Limits.WalkingMulticospan fst snd
- right: {L : Type w} → {R : Type w'} → {fst snd : R → L} → R → CategoryTheory.Limits.WalkingMulticospan fst snd
Instances For
The type underlying the multiecoqualizer diagram.
- left: {L : Type w} → {R : Type w'} → {fst snd : L → R} → L → CategoryTheory.Limits.WalkingMultispan fst snd
- right: {L : Type w} → {R : Type w'} → {fst snd : L → R} → R → CategoryTheory.Limits.WalkingMultispan fst snd
Instances For
Equations
- CategoryTheory.Limits.WalkingMulticospan.instInhabited = { default := CategoryTheory.Limits.WalkingMulticospan.left default }
Morphisms for WalkingMulticospan
.
- id: {L : Type w} → {R : Type w'} → {fst snd : R → L} → (A : CategoryTheory.Limits.WalkingMulticospan fst snd) → A.Hom A
- fst: {L : Type w} → {R : Type w'} → {fst snd : R → L} → (b : R) → (CategoryTheory.Limits.WalkingMulticospan.left (fst b)).Hom (CategoryTheory.Limits.WalkingMulticospan.right b)
- snd: {L : Type w} → {R : Type w'} → {fst snd : R → L} → (b : R) → (CategoryTheory.Limits.WalkingMulticospan.left (snd b)).Hom (CategoryTheory.Limits.WalkingMulticospan.right b)
Instances For
Equations
- CategoryTheory.Limits.WalkingMulticospan.instInhabitedHom = { default := CategoryTheory.Limits.WalkingMulticospan.Hom.id a }
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
- CategoryTheory.Limits.WalkingMulticospan.instSmallCategory = CategoryTheory.Category.mk ⋯ ⋯ ⋯
Equations
- CategoryTheory.Limits.WalkingMultispan.instInhabited = { default := CategoryTheory.Limits.WalkingMultispan.left default }
Morphisms for WalkingMultispan
.
- id: {L : Type w} → {R : Type w'} → {fst snd : L → R} → (A : CategoryTheory.Limits.WalkingMultispan fst snd) → A.Hom A
- fst: {L : Type w} → {R : Type w'} → {fst snd : L → R} → (a : L) → (CategoryTheory.Limits.WalkingMultispan.left a).Hom (CategoryTheory.Limits.WalkingMultispan.right (fst a))
- snd: {L : Type w} → {R : Type w'} → {fst snd : L → R} → (a : L) → (CategoryTheory.Limits.WalkingMultispan.left a).Hom (CategoryTheory.Limits.WalkingMultispan.right (snd a))
Instances For
Equations
- CategoryTheory.Limits.WalkingMultispan.instInhabitedHom = { default := CategoryTheory.Limits.WalkingMultispan.Hom.id a }
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
- CategoryTheory.Limits.WalkingMultispan.instSmallCategory = CategoryTheory.Category.mk ⋯ ⋯ ⋯
This is a structure encapsulating the data necessary to define a Multicospan
.
- L : Type w
- R : Type w'
- fstTo : self.R → self.L
- sndTo : self.R → self.L
- left : self.L → C
- right : self.R → C
- 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
This is a structure encapsulating the data necessary to define a Multispan
.
- L : Type w
- R : Type w'
- fstFrom : self.L → self.R
- sndFrom : self.L → self.R
- left : self.L → C
- right : self.R → C
- 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
- I.fstPiMap = CategoryTheory.Limits.Pi.lift fun (b : I.R) => CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Pi.π I.left (I.fstTo b)) (I.fst b)
Instances For
The induced map ∏ᶜ I.left ⟶ ∏ᶜ I.right
via I.snd
.
Equations
- I.sndPiMap = CategoryTheory.Limits.Pi.lift fun (b : I.R) => CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Pi.π I.left (I.sndTo b)) (I.snd b)
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
- I.parallelPairDiagram = CategoryTheory.Limits.parallelPair I.fstPiMap I.sndPiMap
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
- I.fstSigmaMap = CategoryTheory.Limits.Sigma.desc fun (b : I.L) => CategoryTheory.CategoryStruct.comp (I.fst b) (CategoryTheory.Limits.Sigma.ι I.right (I.fstFrom b))
Instances For
The induced map ∐ I.left ⟶ ∐ I.right
via I.snd
.
Equations
- I.sndSigmaMap = CategoryTheory.Limits.Sigma.desc fun (b : I.L) => CategoryTheory.CategoryStruct.comp (I.snd b) (CategoryTheory.Limits.Sigma.ι I.right (I.sndFrom b))
Instances For
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
- I.parallelPairDiagram = CategoryTheory.Limits.parallelPair I.fstSigmaMap I.sndSigmaMap
Instances For
A multifork is a cone over a multicospan.
Equations
- CategoryTheory.Limits.Multifork I = CategoryTheory.Limits.Cone I.multicospan
Instances For
A multicofork is a cocone over a multispan.
Equations
- CategoryTheory.Limits.Multicofork I = CategoryTheory.Limits.Cocone I.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
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 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
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 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
Given a multicofork, we may obtain a cofork over ∐ I.left ⇉ ∐ I.right
.
Equations
- One or more equations did not get rendered due to their size.
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
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
For I : MulticospanIndex C
, we say that it has a multiequalizer if the associated
multicospan has a limit.
Equations
- CategoryTheory.Limits.HasMultiequalizer I = CategoryTheory.Limits.HasLimit I.multicospan
Instances For
The multiequalizer of I : MulticospanIndex C
.
Equations
- CategoryTheory.Limits.multiequalizer I = CategoryTheory.Limits.limit I.multicospan
Instances For
For I : MultispanIndex C
, we say that it has a multicoequalizer if
the associated multicospan has a limit.
Equations
Instances For
The multiecoqualizer of I : MultispanIndex C
.
Equations
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
- CategoryTheory.Limits.Multiequalizer.lift I W k h = CategoryTheory.Limits.limit.lift I.multicospan (CategoryTheory.Limits.Multifork.ofι I W k h)
Instances For
Equations
- ⋯ = ⋯
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
Equations
- ⋯ = ⋯
The canonical map from the multiequalizer to the objects on the left.
Equations
Instances For
The multicofork associated to the multicoequalizer.
Equations
Instances For
Construct a morphism from the multicoequalizer from its universal property.
Equations
- CategoryTheory.Limits.Multicoequalizer.desc I W k h = CategoryTheory.Limits.colimit.desc I.multispan (CategoryTheory.Limits.Multicofork.ofπ I W k h)
Instances For
Equations
- ⋯ = ⋯
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
Equations
- ⋯ = ⋯