Homology of linear categories #
In this file, it is shown that if C
is a R
-linear category, then
ShortComplex C
is a R
-linear category. Various homological notions
are also shown to be linear.
instance
CategoryTheory.ShortComplex.instSMulHom
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
:
@[simp]
theorem
CategoryTheory.ShortComplex.smul_τ₁
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
(a : R)
(φ : S₁ ⟶ S₂)
:
@[simp]
theorem
CategoryTheory.ShortComplex.smul_τ₂
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
(a : R)
(φ : S₁ ⟶ S₂)
:
@[simp]
theorem
CategoryTheory.ShortComplex.smul_τ₃
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
(a : R)
(φ : S₁ ⟶ S₂)
:
instance
CategoryTheory.ShortComplex.instModuleHom
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
:
instance
CategoryTheory.ShortComplex.instLinear
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
:
Equations
- CategoryTheory.ShortComplex.instLinear = { homModule := inferInstance, smul_comp := ⋯, comp_smul := ⋯ }
@[simp]
theorem
CategoryTheory.ShortComplex.LeftHomologyMapData.smul_φK
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ : S₁ ⟶ S₂}
{h₁ : S₁.LeftHomologyData}
{h₂ : S₂.LeftHomologyData}
(γ : CategoryTheory.ShortComplex.LeftHomologyMapData φ h₁ h₂)
(a : R)
:
@[simp]
theorem
CategoryTheory.ShortComplex.LeftHomologyMapData.smul_φH
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ : S₁ ⟶ S₂}
{h₁ : S₁.LeftHomologyData}
{h₂ : S₂.LeftHomologyData}
(γ : CategoryTheory.ShortComplex.LeftHomologyMapData φ h₁ h₂)
(a : R)
:
def
CategoryTheory.ShortComplex.LeftHomologyMapData.smul
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ : S₁ ⟶ S₂}
{h₁ : S₁.LeftHomologyData}
{h₂ : S₂.LeftHomologyData}
(γ : CategoryTheory.ShortComplex.LeftHomologyMapData φ h₁ h₂)
(a : R)
:
CategoryTheory.ShortComplex.LeftHomologyMapData (a • φ) h₁ h₂
Given a left homology map data for morphism φ
, this is the induced left homology
map data for a • φ
.
Instances For
@[simp]
theorem
CategoryTheory.ShortComplex.leftHomologyMap'_smul
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
(φ : S₁ ⟶ S₂)
(h₁ : S₁.LeftHomologyData)
(h₂ : S₂.LeftHomologyData)
(a : R)
:
CategoryTheory.ShortComplex.leftHomologyMap' (a • φ) h₁ h₂ = a • CategoryTheory.ShortComplex.leftHomologyMap' φ h₁ h₂
@[simp]
theorem
CategoryTheory.ShortComplex.cyclesMap'_smul
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
(φ : S₁ ⟶ S₂)
(h₁ : S₁.LeftHomologyData)
(h₂ : S₂.LeftHomologyData)
(a : R)
:
CategoryTheory.ShortComplex.cyclesMap' (a • φ) h₁ h₂ = a • CategoryTheory.ShortComplex.cyclesMap' φ h₁ h₂
@[simp]
theorem
CategoryTheory.ShortComplex.leftHomologyMap_smul
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
(φ : S₁ ⟶ S₂)
(a : R)
[S₁.HasLeftHomology]
[S₂.HasLeftHomology]
:
@[simp]
theorem
CategoryTheory.ShortComplex.cyclesMap_smul
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
(φ : S₁ ⟶ S₂)
(a : R)
[S₁.HasLeftHomology]
[S₂.HasLeftHomology]
:
instance
CategoryTheory.ShortComplex.leftHomologyFunctor_linear
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
[CategoryTheory.Limits.HasKernels C]
[CategoryTheory.Limits.HasCokernels C]
:
Equations
- ⋯ = ⋯
instance
CategoryTheory.ShortComplex.cyclesFunctor_linear
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
[CategoryTheory.Limits.HasKernels C]
[CategoryTheory.Limits.HasCokernels C]
:
Equations
- ⋯ = ⋯
@[simp]
theorem
CategoryTheory.ShortComplex.RightHomologyMapData.smul_φQ
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ : S₁ ⟶ S₂}
{h₁ : S₁.RightHomologyData}
{h₂ : S₂.RightHomologyData}
(γ : CategoryTheory.ShortComplex.RightHomologyMapData φ h₁ h₂)
(a : R)
:
@[simp]
theorem
CategoryTheory.ShortComplex.RightHomologyMapData.smul_φH
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ : S₁ ⟶ S₂}
{h₁ : S₁.RightHomologyData}
{h₂ : S₂.RightHomologyData}
(γ : CategoryTheory.ShortComplex.RightHomologyMapData φ h₁ h₂)
(a : R)
:
def
CategoryTheory.ShortComplex.RightHomologyMapData.smul
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ : S₁ ⟶ S₂}
{h₁ : S₁.RightHomologyData}
{h₂ : S₂.RightHomologyData}
(γ : CategoryTheory.ShortComplex.RightHomologyMapData φ h₁ h₂)
(a : R)
:
CategoryTheory.ShortComplex.RightHomologyMapData (a • φ) h₁ h₂
Given a right homology map data for morphism φ
, this is the induced right homology
map data for a • φ
.
Instances For
@[simp]
theorem
CategoryTheory.ShortComplex.rightHomologyMap'_smul
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
(φ : S₁ ⟶ S₂)
(h₁ : S₁.RightHomologyData)
(h₂ : S₂.RightHomologyData)
(a : R)
:
CategoryTheory.ShortComplex.rightHomologyMap' (a • φ) h₁ h₂ = a • CategoryTheory.ShortComplex.rightHomologyMap' φ h₁ h₂
@[simp]
theorem
CategoryTheory.ShortComplex.opcyclesMap'_smul
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
(φ : S₁ ⟶ S₂)
(h₁ : S₁.RightHomologyData)
(h₂ : S₂.RightHomologyData)
(a : R)
:
CategoryTheory.ShortComplex.opcyclesMap' (a • φ) h₁ h₂ = a • CategoryTheory.ShortComplex.opcyclesMap' φ h₁ h₂
@[simp]
theorem
CategoryTheory.ShortComplex.rightHomologyMap_smul
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
(φ : S₁ ⟶ S₂)
(a : R)
[S₁.HasRightHomology]
[S₂.HasRightHomology]
:
@[simp]
theorem
CategoryTheory.ShortComplex.opcyclesMap_smul
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
(φ : S₁ ⟶ S₂)
(a : R)
[S₁.HasRightHomology]
[S₂.HasRightHomology]
:
instance
CategoryTheory.ShortComplex.rightHomologyFunctor_linear
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
[CategoryTheory.Limits.HasKernels C]
[CategoryTheory.Limits.HasCokernels C]
:
Equations
- ⋯ = ⋯
instance
CategoryTheory.ShortComplex.opcyclesFunctor_linear
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
[CategoryTheory.Limits.HasKernels C]
[CategoryTheory.Limits.HasCokernels C]
:
Equations
- ⋯ = ⋯
@[simp]
theorem
CategoryTheory.ShortComplex.HomologyMapData.smul_left
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ : S₁ ⟶ S₂}
{h₁ : S₁.HomologyData}
{h₂ : S₂.HomologyData}
(γ : CategoryTheory.ShortComplex.HomologyMapData φ h₁ h₂)
(a : R)
:
(γ.smul a).left = γ.left.smul a
@[simp]
theorem
CategoryTheory.ShortComplex.HomologyMapData.smul_right
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ : S₁ ⟶ S₂}
{h₁ : S₁.HomologyData}
{h₂ : S₂.HomologyData}
(γ : CategoryTheory.ShortComplex.HomologyMapData φ h₁ h₂)
(a : R)
:
(γ.smul a).right = γ.right.smul a
def
CategoryTheory.ShortComplex.HomologyMapData.smul
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ : S₁ ⟶ S₂}
{h₁ : S₁.HomologyData}
{h₂ : S₂.HomologyData}
(γ : CategoryTheory.ShortComplex.HomologyMapData φ h₁ h₂)
(a : R)
:
CategoryTheory.ShortComplex.HomologyMapData (a • φ) h₁ h₂
Given a homology map data for a morphism φ
, this is the induced homology
map data for a • φ
.
Equations
- γ.smul a = { left := γ.left.smul a, right := γ.right.smul a }
Instances For
@[simp]
theorem
CategoryTheory.ShortComplex.homologyMap'_smul
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ : S₁ ⟶ S₂}
(h₁ : S₁.HomologyData)
(h₂ : S₂.HomologyData)
(a : R)
:
CategoryTheory.ShortComplex.homologyMap' (a • φ) h₁ h₂ = a • CategoryTheory.ShortComplex.homologyMap' φ h₁ h₂
@[simp]
theorem
CategoryTheory.ShortComplex.homologyMap_smul
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
(φ : S₁ ⟶ S₂)
(a : R)
[S₁.HasHomology]
[S₂.HasHomology]
:
instance
CategoryTheory.ShortComplex.homologyFunctor_linear
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
[CategoryTheory.CategoryWithHomology C]
:
Equations
- ⋯ = ⋯
@[simp]
theorem
CategoryTheory.ShortComplex.Homotopy.smul_h₃
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ₁ : S₁ ⟶ S₂}
{φ₂ : S₁ ⟶ S₂}
(h : CategoryTheory.ShortComplex.Homotopy φ₁ φ₂)
(a : R)
:
@[simp]
theorem
CategoryTheory.ShortComplex.Homotopy.smul_h₀
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ₁ : S₁ ⟶ S₂}
{φ₂ : S₁ ⟶ S₂}
(h : CategoryTheory.ShortComplex.Homotopy φ₁ φ₂)
(a : R)
:
@[simp]
theorem
CategoryTheory.ShortComplex.Homotopy.smul_h₂
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ₁ : S₁ ⟶ S₂}
{φ₂ : S₁ ⟶ S₂}
(h : CategoryTheory.ShortComplex.Homotopy φ₁ φ₂)
(a : R)
:
@[simp]
theorem
CategoryTheory.ShortComplex.Homotopy.smul_h₁
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ₁ : S₁ ⟶ S₂}
{φ₂ : S₁ ⟶ S₂}
(h : CategoryTheory.ShortComplex.Homotopy φ₁ φ₂)
(a : R)
:
def
CategoryTheory.ShortComplex.Homotopy.smul
{R : Type u_1}
{C : Type u_2}
[Semiring R]
[CategoryTheory.Category.{u_3, u_2} C]
[CategoryTheory.Preadditive C]
[CategoryTheory.Linear R C]
{S₁ : CategoryTheory.ShortComplex C}
{S₂ : CategoryTheory.ShortComplex C}
{φ₁ : S₁ ⟶ S₂}
{φ₂ : S₁ ⟶ S₂}
(h : CategoryTheory.ShortComplex.Homotopy φ₁ φ₂)
(a : R)
:
CategoryTheory.ShortComplex.Homotopy (a • φ₁) (a • φ₂)
Homotopy between morphisms of short complexes is compatible with the scalar multiplication.