Disjoint coproducts #
Defines disjoint coproducts: coproducts where the intersection is initial and the coprojections
are monic.
Shows that a category with disjoint coproducts is InitialMonoClass
.
TODO #
- Adapt this to the infinitary (small) version: This is one of the conditions in Giraud's theorem characterising sheaf topoi.
- Construct examples (and counterexamples?), eg Type, Vec.
- Define extensive categories, and show every extensive category has disjoint coproducts.
- Define coherent categories and use this to define positive coherent categories.
Given any pullback diagram of the form
Z ⟶ X₁ ↓ ↓ X₂ ⟶ X
where X₁ ⟶ X ← X₂
is a coproduct diagram, then Z
is initial, and both X₁ ⟶ X
and X₂ ⟶ X
are mono.
- isInitialOfIsPullbackOfIsCoproduct : {X Z : C} → {pX₁ : X₁ ⟶ X} → {pX₂ : X₂ ⟶ X} → {f : Z ⟶ X₁} → {g : Z ⟶ X₂} → CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.BinaryCofan.mk pX₁ pX₂) → {comm : CategoryTheory.CategoryStruct.comp f pX₁ = CategoryTheory.CategoryStruct.comp g pX₂} → CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.PullbackCone.mk f g comm) → CategoryTheory.Limits.IsInitial Z
- mono_inl : ∀ (X : C) (X₁_1 : X₁ ⟶ X) (X₂_1 : X₂ ⟶ X), CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.BinaryCofan.mk X₁_1 X₂_1) → CategoryTheory.Mono X₁_1
- mono_inr : ∀ (X : C) (X₁_1 : X₁ ⟶ X) (X₂_1 : X₂ ⟶ X), CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.BinaryCofan.mk X₁_1 X₂_1) → CategoryTheory.Mono X₂_1
Instances
If the coproduct of X₁
and X₂
is disjoint, then given any pullback square
Z ⟶ X₁ ↓ ↓ X₂ ⟶ X
where X₁ ⟶ X ← X₂
is a coproduct, then Z
is initial.
Equations
Instances For
If the coproduct of X₁
and X₂
is disjoint, then given any pullback square
Z ⟶ X₁ ↓ ↓ X₂ ⟶ X₁ ⨿ X₂
Z
is initial.
Equations
Instances For
If the coproduct of X₁
and X₂
is disjoint, then provided X₁ ⟶ X ← X₂
is a coproduct the
pullback is an initial object:
X₁
↓
X₂ ⟶ X
Equations
Instances For
If the coproduct of X₁
and X₂
is disjoint, the pullback of X₁ ⟶ X₁ ⨿ X₂
and X₂ ⟶ X₁ ⨿ X₂
is initial.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (_ : CategoryTheory.Mono CategoryTheory.Limits.coprod.inl) = (_ : CategoryTheory.Mono CategoryTheory.Limits.coprod.inl)
Equations
- (_ : CategoryTheory.Mono CategoryTheory.Limits.coprod.inr) = (_ : CategoryTheory.Mono CategoryTheory.Limits.coprod.inr)
C
has disjoint coproducts if every coproduct is disjoint.
- CoproductDisjoint : (X Y : C) → CategoryTheory.Limits.CoproductDisjoint X Y
Instances
If C
has disjoint coproducts, any morphism out of initial is mono. Note it isn't true in
general that C
has strict initial objects, for instance consider the category of types and
partial functions.