Documentation

TauCeti.CategoryTheory.Limits.Shapes.Biproduct

Binary biproduct squares #

This file records generic categorical properties of binary biproducts. A biproduct map factors through the maps obtained by changing one summand at a time, and the squares obtained by adjoining an identity summand are pushouts or pullbacks. The biproduct of two cokernels is the cokernel of the biproduct of the two morphisms (CategoryTheory.Limits.CokernelCofork.isColimitBiprod); this is the biproduct analogue of Mathlib's CategoryTheory.Limits.CokernelCofork.isColimitTensor. For functors preserving zero morphisms, biproduct preservation is stable under composition and follows from preservation of products and coproducts of the same shape. The short complex of a mapped commutative square agrees with the mapped short complex through the canonical biproduct comparison.

In a preadditive category, a zero object and binary biproducts already give all finite biproducts (TauCeti.hasFiniteBiproducts_of_hasBinaryBiproducts), and a finite biproduct indexed by Option J splits off its none summand (TauCeti.biproductOptionIso); the latter is the inductive step for computing additive invariants of finite biproducts. An additive functor which kills one summand of a binary biproduct inverts the projection onto the other (CategoryTheory.Functor.isIso_map_biprod_fst_of_isZero).

noncomputable def CategoryTheory.CommSq.shortComplexMapIso {C₁ : Type u} {D : Type u'} [Category.{v, u} C₁] [Preadditive C₁] [Category.{w, u'} D] [Preadditive D] {F : Functor C₁ D} [F.Additive] {W X Y Z : C₁} {f : W ⟶ X} {g : W ⟶ Y} {h : X ⟶ Z} {i : Y ⟶ Z} [Limits.HasBinaryBiproduct X Y] [Limits.HasBinaryBiproduct (F.obj X) (F.obj Y)] (sq : CommSq f g h i) :

Mapping the short complex of a commutative square agrees, up to the canonical biproduct comparison, with the short complex of the mapped square.

Equations
Instances For

    A preadditive category with a zero object and binary biproducts has all finite biproducts. Like Mathlib's CategoryTheory.Limits.hasBinaryBiproducts_of_finite_biproducts, this is a theorem rather than an instance, so that a concrete category may keep finite biproducts with better definitional properties.

    A biproduct indexed by Option J is the binary biproduct of its none summand and the biproduct of the remaining summands.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[instance 100]

      The composite of functors preserving biproducts of shape J preserves them.

      @[instance 100]

      A functor preserving zero morphisms, products and coproducts of shape J preserves biproducts of that shape.

      An additive functor which sends the second summand of a binary biproduct to a zero object sends the first projection to an isomorphism, with inverse the image of the first inclusion.

      @[reducible, inline]
      noncomputable abbrev CategoryTheory.Limits.CokernelCofork.biprod {C : Type u} [Category.{v, u} C] [HasZeroMorphisms C] {X₁ Y₁ : C} {f₁ : X₁ ⟶ Y₁} (c₁ : CokernelCofork f₁) {X₂ Y₂ : C} {f₂ : X₂ ⟶ Y₂} (c₂ : CokernelCofork f₂) [HasBinaryBiproduct X₁ X₂] [HasBinaryBiproduct Y₁ Y₂] [HasBinaryBiproduct c₁.pt c₂.pt] :

      Given cokernel coforks c₁ and c₂ for f₁ : X₁ ⟶ Y₁ and f₂ : X₂ ⟶ Y₂, this is the cokernel cofork for biprod.map f₁ f₂ : X₁ ⊞ X₂ ⟶ Y₁ ⊞ Y₂ with point c₁.pt ⊞ c₂.pt.

      Equations
      Instances For
        noncomputable def CategoryTheory.Limits.CokernelCofork.isColimitBiprod {C : Type u} [Category.{v, u} C] [HasZeroMorphisms C] {X₁ Y₁ : C} {f₁ : X₁ ⟶ Y₁} {c₁ : CokernelCofork f₁} {X₂ Y₂ : C} {f₂ : X₂ ⟶ Y₂} {c₂ : CokernelCofork f₂} [HasBinaryBiproduct X₁ X₂] [HasBinaryBiproduct Y₁ Y₂] [HasBinaryBiproduct c₁.pt c₂.pt] (hc₁ : IsColimit c₁) (hc₂ : IsColimit c₂) :
        IsColimit (c₁.biprod c₂)

        The biproduct of two colimit cokernel coforks is a colimit: c₁.pt ⊞ c₂.pt is the cokernel of biprod.map f₁ f₂.

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