The comma category is preadditive #
If we have additive functors L : A ⥤ T and R : B ⥤ T between preadditive categories,
then there is a structure of preadditive category on Comma L R such that addition commutes
with the left and right projections.
We then apply this to Arrow T for T a preadditive category.
Tags #
comma, arrow, preadditive
@[implicit_reducible]
instance
CategoryTheory.CommaMorphism.instAddHomComma
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
{u v : Comma L R}
:
@[simp]
theorem
CategoryTheory.CommaMorphism.add_left
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
{u v : Comma L R}
(α β : u ⟶ v)
:
@[simp]
theorem
CategoryTheory.CommaMorphism.add_right
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
{u v : Comma L R}
(α β : u ⟶ v)
:
@[implicit_reducible]
instance
CategoryTheory.CommaMorphism.instSubHomComma
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
{u v : Comma L R}
:
@[simp]
theorem
CategoryTheory.CommaMorphism.sub_left
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
{u v : Comma L R}
(α β : u ⟶ v)
:
@[simp]
theorem
CategoryTheory.CommaMorphism.sub_right
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
{u v : Comma L R}
(α β : u ⟶ v)
:
@[implicit_reducible]
instance
CategoryTheory.CommaMorphism.instZeroHomComma
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
{u v : Comma L R}
:
@[simp]
theorem
CategoryTheory.CommaMorphism.zero_left
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
{u v : Comma L R}
:
@[simp]
theorem
CategoryTheory.CommaMorphism.zero_right
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
{u v : Comma L R}
:
@[implicit_reducible]
instance
CategoryTheory.CommaMorphism.instNegHomComma
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
{u v : Comma L R}
:
@[simp]
theorem
CategoryTheory.CommaMorphism.neg_left
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
{u v : Comma L R}
(α : u ⟶ v)
:
@[simp]
theorem
CategoryTheory.CommaMorphism.neg_right
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
{u v : Comma L R}
(α : u ⟶ v)
:
@[implicit_reducible]
instance
CategoryTheory.instAddCommGroupHomComma
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
{u v : Comma L R}
:
AddCommGroup (u ⟶ v)
Equations
- One or more equations did not get rendered due to their size.
@[implicit_reducible]
instance
CategoryTheory.instPreadditiveComma
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
:
Preadditive (Comma L R)
If we have additive functors L : A ⥤ T and R : B ⥤ T between preadditive categories,
then the category Comma L R is preadditive.
Equations
- CategoryTheory.instPreadditiveComma L R = { homGroup := inferInstance, add_comp := ⋯, comp_add := ⋯ }
instance
CategoryTheory.instAdditiveCommaFst
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
:
instance
CategoryTheory.instAdditiveCommaSnd
{A : Type u₁}
[Category.{v₁, u₁} A]
[Preadditive A]
{B : Type u₂}
[Category.{v₂, u₂} B]
[Preadditive B]
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
(L : Functor A T)
[L.Additive]
(R : Functor B T)
[R.Additive]
:
@[implicit_reducible]
instance
CategoryTheory.instPreadditiveArrow
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
:
Preadditive (Arrow T)
If a category T is preadditive, then so is its category of arrows.
Equations
- CategoryTheory.instPreadditiveArrow = { homGroup := CategoryTheory.instPreadditiveArrow._aux_1, add_comp := ⋯, comp_add := ⋯ }
instance
CategoryTheory.instAdditiveArrowLeftFunc
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
:
instance
CategoryTheory.instAdditiveArrowRightFunc
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
:
@[simp]
theorem
CategoryTheory.Arrow.Hom.add_left
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
{u v : Arrow T}
(α β : u ⟶ v)
:
@[simp]
theorem
CategoryTheory.Arrow.Hom.add_right
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
{u v : Arrow T}
(α β : u ⟶ v)
:
@[simp]
theorem
CategoryTheory.Arrow.Hom.zero_left
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
{u v : Arrow T}
:
@[simp]
theorem
CategoryTheory.Arrow.Hom.zero_right
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
{u v : Arrow T}
:
@[simp]
theorem
CategoryTheory.Arrow.Hom.neg_left
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
{u v : Arrow T}
(α : u ⟶ v)
:
@[simp]
theorem
CategoryTheory.Arrow.Hom.neg_right
{T : Type u₃}
[Category.{v₃, u₃} T]
[Preadditive T]
{u v : Arrow T}
(α : u ⟶ v)
: