Basic facts about biproducts in preadditive categories. #
In (or between) preadditive categories,
Any biproduct satisfies the equality
total : ∑ j : J, biproduct.π f j ≫ biproduct.ι f j = 𝟙 (⨁ f)
, or, in the binary case,total : fst ≫ inl + snd ≫ inr = 𝟙 X
.Any (binary)
product
or (binary)coproduct
is a (binary)biproduct
.In any category (with zero morphisms), if
biprod.map f g
is an isomorphism, then bothf
andg
are isomorphisms.If
f
is a morphismX₁ ⊞ X₂ ⟶ Y₁ ⊞ Y₂
whoseX₁ ⟶ Y₁
entry is an isomorphism, then we can construct isomorphismsL : X₁ ⊞ X₂ ≅ X₁ ⊞ X₂
andR : Y₁ ⊞ Y₂ ≅ Y₁ ⊞ Y₂
so thatL.hom ≫ g ≫ R.hom
is diagonal (withX₁ ⟶ Y₁
component stillf
), via Gaussian elimination.As a corollary of the previous two facts, if we have an isomorphism
X₁ ⊞ X₂ ≅ Y₁ ⊞ Y₂
whoseX₁ ⟶ Y₁
entry is an isomorphism, we can construct an isomorphismX₂ ≅ Y₂
.If
f : W ⊞ X ⟶ Y ⊞ Z
is an isomorphism, either𝟙 W = 0
, or at least one of the component mapsW ⟶ Y
andW ⟶ Z
is nonzero.If
f : ⨁ S ⟶ ⨁ T
is an isomorphism, then every column (corresponding to a nonzero summand in the domain) has some nonzero matrix entry.A functor preserves a biproduct if and only if it preserves the corresponding product if and only if it preserves the corresponding coproduct.
There are connections between this material and the special case of the category whose morphisms are
matrices over a ring, in particular the Schur complement (see
Mathlib.LinearAlgebra.Matrix.SchurComplement
). In particular, the declarations
CategoryTheory.Biprod.isoElim
, CategoryTheory.Biprod.gaussian
and Matrix.invertibleOfFromBlocks₁₁Invertible
are all closely related.
In a preadditive category, we can construct a biproduct for f : J → C
from
any bicone b
for f
satisfying total : ∑ j : J, b.π j ≫ b.ι j = 𝟙 b.X
.
(That is, such a bicone is a limit cone and a colimit cocone.)
Equations
- One or more equations did not get rendered due to their size.
Instances For
In a preadditive category, we can construct a biproduct for f : J → C
from
any bicone b
for f
satisfying total : ∑ j : J, b.π j ≫ b.ι j = 𝟙 b.X
.
(That is, such a bicone is a limit cone and a colimit cocone.)
In a preadditive category, any finite bicone which is a limit cone is in fact a bilimit bicone.
Equations
Instances For
We can turn any limit cone over a pair into a bilimit bicone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
In a preadditive category, any finite bicone which is a colimit cocone is in fact a bilimit bicone.
Equations
Instances For
We can turn any limit cone over a pair into a bilimit bicone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
In a preadditive category, if the product over f : J → C
exists,
then the biproduct over f
exists.
In a preadditive category, if the coproduct over f : J → C
exists,
then the biproduct over f
exists.
A preadditive category with finite products has finite biproducts.
A preadditive category with finite coproducts has finite biproducts.
In any preadditive category, any biproduct satisfies
∑ j : J, biproduct.π f j ≫ biproduct.ι f j = 𝟙 (⨁ f)
Reindex a categorical biproduct via an equivalence of the index types.
Equations
- One or more equations did not get rendered due to their size.
Instances For
In a preadditive category, we can construct a binary biproduct for X Y : C
from
any binary bicone b
satisfying total : b.fst ≫ b.inl + b.snd ≫ b.inr = 𝟙 b.X
.
(That is, such a bicone is a limit cone and a colimit cocone.)
Equations
- One or more equations did not get rendered due to their size.
Instances For
In a preadditive category, we can construct a binary biproduct for X Y : C
from
any binary bicone b
satisfying total : b.fst ≫ b.inl + b.snd ≫ b.inr = 𝟙 b.X
.
(That is, such a bicone is a limit cone and a colimit cocone.)
We can turn any limit cone over a pair into a bicone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
In a preadditive category, any binary bicone which is a limit cone is in fact a bilimit bicone.
Equations
Instances For
We can turn any limit cone over a pair into a bilimit bicone.
Equations
Instances For
In a preadditive category, if the product of X
and Y
exists, then the
binary biproduct of X
and Y
exists.
In a preadditive category, if all binary products exist, then all binary biproducts exist.
We can turn any colimit cocone over a pair into a bicone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
In a preadditive category, any binary bicone which is a colimit cocone is in fact a bilimit bicone.
Equations
Instances For
We can turn any colimit cocone over a pair into a bilimit bicone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
In a preadditive category, if the coproduct of X
and Y
exists, then the
binary biproduct of X
and Y
exists.
In a preadditive category, if all binary coproducts exist, then all binary biproducts exist.
In any preadditive category, any binary biproduct satisfies
biprod.fst ≫ biprod.inl + biprod.snd ≫ biprod.inr = 𝟙 (X ⊞ Y)
.
Every split mono f
with a cokernel induces a binary bicone with f
as its inl
and
the cokernel map as its snd
.
We will show in is_bilimit_binary_bicone_of_split_mono_of_cokernel
that this binary bicone is in
fact already a biproduct.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The bicone constructed in binaryBiconeOfSplitMonoOfCokernel
is a bilimit.
This is a version of the splitting lemma that holds in all preadditive categories.
Equations
Instances For
If b
is a binary bicone such that b.inl
is a kernel of b.snd
, then b
is a bilimit
bicone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If b
is a binary bicone such that b.inr
is a kernel of b.fst
, then b
is a bilimit
bicone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If b
is a binary bicone such that b.fst
is a cokernel of b.inr
, then b
is a bilimit
bicone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If b
is a binary bicone such that b.snd
is a cokernel of b.inl
, then b
is a bilimit
bicone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every split epi f
with a kernel induces a binary bicone with f
as its snd
and
the kernel map as its inl
.
We will show in binary_bicone_of_is_split_mono_of_cokernel
that this binary bicone is in fact
already a biproduct.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The bicone constructed in binaryBiconeOfIsSplitEpiOfKernel
is a bilimit.
This is a version of the splitting lemma that holds in all preadditive categories.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The existence of binary biproducts implies that there is at most one preadditive structure.
The existence of binary biproducts implies that there is at most one preadditive structure.
The existence of binary biproducts implies that there is at most one preadditive structure.
Equations
- ⋯ = ⋯
The "matrix" morphism X₁ ⊞ X₂ ⟶ Y₁ ⊞ Y₂
with specified components.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The unipotent upper triangular matrix
(1 r)
(0 1)
as an isomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The unipotent lower triangular matrix
(1 0)
(r 1)
as an isomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If f
is a morphism X₁ ⊞ X₂ ⟶ Y₁ ⊞ Y₂
whose X₁ ⟶ Y₁
entry is an isomorphism,
then we can construct isomorphisms L : X₁ ⊞ X₂ ≅ X₁ ⊞ X₂
and R : Y₁ ⊞ Y₂ ≅ Y₁ ⊞ Y₂
so that L.hom ≫ g ≫ R.hom
is diagonal (with X₁ ⟶ Y₁
component still f
),
via Gaussian elimination.
(This is the version of Biprod.gaussian
written in terms of components.)
Equations
- One or more equations did not get rendered due to their size.
Instances For
If f
is a morphism X₁ ⊞ X₂ ⟶ Y₁ ⊞ Y₂
whose X₁ ⟶ Y₁
entry is an isomorphism,
then we can construct isomorphisms L : X₁ ⊞ X₂ ≅ X₁ ⊞ X₂
and R : Y₁ ⊞ Y₂ ≅ Y₁ ⊞ Y₂
so that L.hom ≫ g ≫ R.hom
is diagonal (with X₁ ⟶ Y₁
component still f
),
via Gaussian elimination.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If X₁ ⊞ X₂ ≅ Y₁ ⊞ Y₂
via a two-by-two matrix whose X₁ ⟶ Y₁
entry is an isomorphism,
then we can construct an isomorphism X₂ ≅ Y₂
, via Gaussian elimination.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If f
is an isomorphism X₁ ⊞ X₂ ≅ Y₁ ⊞ Y₂
whose X₁ ⟶ Y₁
entry is an isomorphism,
then we can construct an isomorphism X₂ ≅ Y₂
, via Gaussian elimination.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If f : ⨁ S ⟶ ⨁ T
is an isomorphism, and s
is a non-trivial summand of the source,
then there is some t
in the target so that the s, t
matrix entry of f
is nonzero.
Equations
Instances For
A functor between preadditive categories that preserves (zero morphisms and) finite biproducts preserves finite products.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functor between preadditive categories that preserves (zero morphisms and) finite biproducts preserves finite products.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functor between preadditive categories that preserves (zero morphisms and) finite products preserves finite biproducts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If the (product-like) biproduct comparison for F
and f
is a monomorphism, then F
preserves the biproduct of f
. For the converse, see mapBiproduct
.
Equations
Instances For
If the (coproduct-like) biproduct comparison for F
and f
is an epimorphism, then F
preserves the biproduct of F
and f
. For the converse, see mapBiproduct
.
Equations
Instances For
A functor between preadditive categories that preserves (zero morphisms and) finite products preserves finite biproducts.
Equations
- CategoryTheory.Limits.preservesBiproductsOfShapeOfPreservesProductsOfShape F = { preserves := fun {x : J → C} => CategoryTheory.Limits.preservesBiproductOfPreservesProduct F }
Instances For
A functor between preadditive categories that preserves (zero morphisms and) finite biproducts preserves finite coproducts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functor between preadditive categories that preserves (zero morphisms and) finite biproducts preserves finite coproducts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functor between preadditive categories that preserves (zero morphisms and) finite coproducts preserves finite biproducts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functor between preadditive categories that preserves (zero morphisms and) finite coproducts preserves finite biproducts.
Equations
- CategoryTheory.Limits.preservesBiproductsOfShapeOfPreservesCoproductsOfShape F = { preserves := fun {x : J → C} => CategoryTheory.Limits.preservesBiproductOfPreservesCoproduct F }
Instances For
A functor between preadditive categories that preserves (zero morphisms and) binary biproducts preserves binary products.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functor between preadditive categories that preserves (zero morphisms and) binary biproducts preserves binary products.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functor between preadditive categories that preserves (zero morphisms and) binary products preserves binary biproducts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If the (product-like) biproduct comparison for F
, X
and Y
is a monomorphism, then
F
preserves the biproduct of X
and Y
. For the converse, see map_biprod
.
Equations
Instances For
If the (coproduct-like) biproduct comparison for F
, X
and Y
is an epimorphism, then
F
preserves the biproduct of X
and Y
. For the converse, see mapBiprod
.
Equations
Instances For
A functor between preadditive categories that preserves (zero morphisms and) binary products preserves binary biproducts.
Equations
- CategoryTheory.Limits.preservesBinaryBiproductsOfPreservesBinaryProducts F = { preserves := fun {x x_1 : C} => CategoryTheory.Limits.preservesBinaryBiproductOfPreservesBinaryProduct F }
Instances For
A functor between preadditive categories that preserves (zero morphisms and) binary biproducts preserves binary coproducts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functor between preadditive categories that preserves (zero morphisms and) binary biproducts preserves binary coproducts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functor between preadditive categories that preserves (zero morphisms and) binary coproducts preserves binary biproducts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functor between preadditive categories that preserves (zero morphisms and) binary coproducts preserves binary biproducts.
Equations
- CategoryTheory.Limits.preservesBinaryBiproductsOfPreservesBinaryCoproducts F = { preserves := fun {x x_1 : C} => CategoryTheory.Limits.preservesBinaryBiproductOfPreservesBinaryCoproduct F }