Documentation

Mathlib.CategoryTheory.Limits.MonoCoprod

Categories where inclusions into coproducts are monomorphisms #

If C is a category, the class MonoCoprod C expresses that left inclusions A ⟶ A ⨿ B are monomorphisms when HasCoproduct A B is satisfied. If it is so, it is shown that right inclusions are also monomorphisms.

More generally, we deduce that when suitable coproducts exists, then if X : I → C and ι : J → I is an injective map, then the canonical morphism ∐ (X ∘ ι) ⟶ ∐ X is a monomorphism. It also follows that for any i : I, Sigma.ι X i : X i ⟶ ∐ X is a monomorphism.

TODO: define distributive categories, and show that they satisfy MonoCoprod, see https://ncatlab.org/toddtrimble/published/distributivity+implies+monicity+of+coproduct+inclusions

This condition expresses that inclusion morphisms into coproducts are monomorphisms.

Instances

    Given a family of objects X : I₁ ⊕ I₂ → C, a cofan of X, and two colimit cofans of X ∘ Sum.inl and X ∘ Sum.inr, this is a cofan for c₁.pt and c₂.pt whose point is c.pt.

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

      The binary cofan binaryCofanSum c c₁ c₂ hc₁ hc₂ is colimit.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem CategoryTheory.Limits.MonoCoprod.mono_binaryCofanSum_inl' {C : Type u_1} [CategoryTheory.Category.{u_4, u_1} C] {I₁ : Type u_2} {I₂ : Type u_3} {X : I₁ I₂C} (c : CategoryTheory.Limits.Cofan X) (c₁ : CategoryTheory.Limits.Cofan (X Sum.inl)) (c₂ : CategoryTheory.Limits.Cofan (X Sum.inr)) (hc : CategoryTheory.Limits.IsColimit c) (hc₁ : CategoryTheory.Limits.IsColimit c₁) (hc₂ : CategoryTheory.Limits.IsColimit c₂) [CategoryTheory.Limits.MonoCoprod C] (inl : c₁.pt c.pt) (hinl : ∀ (i₁ : I₁), CategoryTheory.CategoryStruct.comp (c₁.inj i₁) inl = c.inj (Sum.inl i₁)) :
        theorem CategoryTheory.Limits.MonoCoprod.mono_binaryCofanSum_inr' {C : Type u_1} [CategoryTheory.Category.{u_4, u_1} C] {I₁ : Type u_2} {I₂ : Type u_3} {X : I₁ I₂C} (c : CategoryTheory.Limits.Cofan X) (c₁ : CategoryTheory.Limits.Cofan (X Sum.inl)) (c₂ : CategoryTheory.Limits.Cofan (X Sum.inr)) (hc : CategoryTheory.Limits.IsColimit c) (hc₁ : CategoryTheory.Limits.IsColimit c₁) (hc₂ : CategoryTheory.Limits.IsColimit c₂) [CategoryTheory.Limits.MonoCoprod C] (inr : c₂.pt c.pt) (hinr : ∀ (i₂ : I₂), CategoryTheory.CategoryStruct.comp (c₂.inj i₂) inr = c.inj (Sum.inr i₂)) :