Disjoint coproducts #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Defines disjoint coproducts: coproducts where the intersection is initial and the coprojections
are monic.
Shows that a category with disjoint coproducts is initial_mono_class
.
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.
- is_initial_of_is_pullback_of_is_coproduct : Π {X Z : C} {pX₁ : X₁ ⟶ X} {pX₂ : X₂ ⟶ X} {f : Z ⟶ X₁} {g : Z ⟶ X₂}, category_theory.limits.is_colimit (category_theory.limits.binary_cofan.mk pX₁ pX₂) → Π {comm : f ≫ pX₁ = g ≫ pX₂}, category_theory.limits.is_limit (category_theory.limits.pullback_cone.mk f g comm) → category_theory.limits.is_initial Z
- mono_inl : ∀ (X : C) (X₁_1 : X₁ ⟶ X) (X₂_1 : X₂ ⟶ X), category_theory.limits.is_colimit (category_theory.limits.binary_cofan.mk X₁_1 X₂_1) → category_theory.mono X₁_1
- mono_inr : ∀ (X : C) (X₁_1 : X₁ ⟶ X) (X₂_1 : X₂ ⟶ X), category_theory.limits.is_colimit (category_theory.limits.binary_cofan.mk X₁_1 X₂_1) → category_theory.mono X₂_1
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.
Instances of this typeclass
Instances of other typeclasses for category_theory.limits.coproduct_disjoint
- category_theory.limits.coproduct_disjoint.has_sizeof_inst
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.
If the coproduct of X₁
and X₂
is disjoint, then given any pullback square
Z ⟶ X₁ ↓ ↓ X₂ ⟶ X₁ ⨿ X₂
Z
is initial.
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
If the coproduct of X₁
and X₂
is disjoint, the pullback of X₁ ⟶ X₁ ⨿ X₂
and X₂ ⟶ X₁ ⨿ X₂
is initial.
- coproduct_disjoint : Π (X Y : C), category_theory.limits.coproduct_disjoint X Y
C
has disjoint coproducts if every coproduct is disjoint.
Instances for category_theory.limits.coproducts_disjoint
- category_theory.limits.coproducts_disjoint.has_sizeof_inst
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.