mathlib documentation

category_theory.​preadditive.​biproducts

category_theory.​preadditive.​biproducts

Basic facts about morphisms between biproducts in preadditive categories.

The remaining lemmas hold in any preadditive category.

def category_theory.​biprod.​of_components {C : Type u} [category_theory.category C] [category_theory.preadditive C] [category_theory.limits.has_binary_biproducts C] {X₁ X₂ Y₁ Y₂ : C} :
(X₁ Y₁)(X₁ Y₂)(X₂ Y₁)(X₂ Y₂)(X₁ X₂ Y₁ Y₂)

The "matrix" morphism X₁ ⊞ X₂ ⟶ Y₁ ⊞ Y₂ with specified components.

Equations
@[simp]
theorem category_theory.​biprod.​inl_of_components {C : Type u} [category_theory.category C] [category_theory.preadditive C] [category_theory.limits.has_binary_biproducts C] {X₁ X₂ Y₁ Y₂ : C} (f₁₁ : X₁ Y₁) (f₁₂ : X₁ Y₂) (f₂₁ : X₂ Y₁) (f₂₂ : X₂ Y₂) :

@[simp]
theorem category_theory.​biprod.​inr_of_components {C : Type u} [category_theory.category C] [category_theory.preadditive C] [category_theory.limits.has_binary_biproducts C] {X₁ X₂ Y₁ Y₂ : C} (f₁₁ : X₁ Y₁) (f₁₂ : X₁ Y₂) (f₂₁ : X₂ Y₁) (f₂₂ : X₂ Y₂) :

@[simp]
theorem category_theory.​biprod.​of_components_fst {C : Type u} [category_theory.category C] [category_theory.preadditive C] [category_theory.limits.has_binary_biproducts C] {X₁ X₂ Y₁ Y₂ : C} (f₁₁ : X₁ Y₁) (f₁₂ : X₁ Y₂) (f₂₁ : X₂ Y₁) (f₂₂ : X₂ Y₂) :

@[simp]
theorem category_theory.​biprod.​of_components_snd {C : Type u} [category_theory.category C] [category_theory.preadditive C] [category_theory.limits.has_binary_biproducts C] {X₁ X₂ Y₁ Y₂ : C} (f₁₁ : X₁ Y₁) (f₁₂ : X₁ Y₂) (f₂₁ : X₂ Y₁) (f₂₂ : X₂ Y₂) :

@[simp]
theorem category_theory.​biprod.​of_components_comp {C : Type u} [category_theory.category C] [category_theory.preadditive C] [category_theory.limits.has_binary_biproducts C] {X₁ X₂ Y₁ Y₂ Z₁ Z₂ : C} (f₁₁ : X₁ Y₁) (f₁₂ : X₁ Y₂) (f₂₁ : X₂ Y₁) (f₂₂ : X₂ Y₂) (g₁₁ : Y₁ Z₁) (g₁₂ : Y₁ Z₂) (g₂₁ : Y₂ Z₁) (g₂₂ : Y₂ Z₂) :
category_theory.biprod.of_components f₁₁ f₁₂ f₂₁ f₂₂ category_theory.biprod.of_components g₁₁ g₁₂ g₂₁ g₂₂ = category_theory.biprod.of_components (f₁₁ g₁₁ + f₁₂ g₂₁) (f₁₁ g₁₂ + f₁₂ g₂₂) (f₂₁ g₁₁ + f₂₂ g₂₁) (f₂₁ g₁₂ + f₂₂ g₂₂)

The unipotent upper triangular matrix

(1 r)
(0 1)

as an isomorphism.

Equations

The unipotent lower triangular matrix

(1 0)
(r 1)

as an isomorphism.

Equations
def category_theory.​biprod.​gaussian' {C : Type u} [category_theory.category C] [category_theory.preadditive C] [category_theory.limits.has_binary_biproducts C] {X₁ X₂ Y₁ Y₂ : C} (f₁₁ : X₁ Y₁) (f₁₂ : X₁ Y₂) (f₂₁ : X₂ Y₁) (f₂₂ : X₂ Y₂) [category_theory.is_iso f₁₁] :
Σ' (L : X₁ X₂ X₁ X₂) (R : Y₁ Y₂ Y₁ Y₂) (g₂₂ : X₂ Y₂), L.hom category_theory.biprod.of_components f₁₁ f₁₂ f₂₁ f₂₂ R.hom = category_theory.limits.biprod.map f₁₁ g₂₂

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

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
def category_theory.​biprod.​iso_elim' {C : Type u} [category_theory.category C] [category_theory.preadditive C] [category_theory.limits.has_binary_biproducts C] {X₁ X₂ Y₁ Y₂ : C} (f₁₁ : X₁ Y₁) (f₁₂ : X₁ Y₂) (f₂₁ : X₂ Y₁) (f₂₂ : X₂ Y₂) [category_theory.is_iso f₁₁] [category_theory.is_iso (category_theory.biprod.of_components f₁₁ f₁₂ f₂₁ f₂₂)] :
X₂ Y₂

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

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