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
@[instance_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) :
@[instance_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) :
@[instance_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} :
@[instance_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_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) :
@[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) :
@[instance_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.
@[instance_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] :
@[instance_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.sub_left {T : Type u₃} [Category.{v₃, u₃} T] [Preadditive T] {u v : Arrow T} (α β : u ⟶ v) :
@[simp]
theorem CategoryTheory.Arrow.Hom.sub_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) :