Documentation

Mathlib.Algebra.Homology.HomotopyCategory.HomComplexShift

Shifting cochains

Let C be a preadditive category. Given two cochain complexes (indexed by ), the type of cochains HomComplex.Cochain K L n of degree n was introduced in Mathlib.Algebra.Homology.HomotopyCategory.HomComplex. In this file, we study how these cochains behave with respect to the shift on the complexes K and L.

When n, a, n' are integers such that h : n' + a = n, we obtain rightShiftAddEquiv K L n a n' h : Cochain K L n ≃+ Cochain K (L⟦a⟧) n'. This definition does not involve signs, but the analogous definition of leftShiftAddEquiv K L n a n' h' : Cochain K L n ≃+ Cochain (K⟦a⟧) L n' when h' : n + a = n' does involve signs, as we follow the conventions appearing in the introduction of [Brian Conrad's book Grothendieck duality and base change][conrad2000].

References #

The map Cochain K L n → Cochain K (L⟦a⟧) n' when n' + a = n.

Equations
theorem CochainComplex.HomComplex.Cochain.rightShift_v {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {n : } (γ : Cochain K L n) (a n' : ) (hn' : n' + a = n) (p q : ) (hpq : p + n' = q) (p' : ) (hp' : p + n = p') :
(γ.rightShift a n' hn').v p q hpq = CategoryTheory.CategoryStruct.comp (γ.v p p' hp') (L.shiftFunctorObjXIso a q p' ).inv

The map Cochain K L n → Cochain (K⟦a⟧) L n' when n + a = n'.

Equations
  • One or more equations did not get rendered due to their size.
theorem CochainComplex.HomComplex.Cochain.leftShift_v {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {n : } (γ : Cochain K L n) (a n' : ) (hn' : n + a = n') (p q : ) (hpq : p + n' = q) (p' : ) (hp' : p' + n = q) :
(γ.leftShift a n' hn').v p q hpq = (a * n' + a * (a - 1) / 2).negOnePow CategoryTheory.CategoryStruct.comp (K.shiftFunctorObjXIso a p p' ).hom (γ.v p' q hp')

The map Cochain K (L⟦a⟧) n' → Cochain K L n when n' + a = n.

Equations
theorem CochainComplex.HomComplex.Cochain.rightUnshift_v {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {n' a : } (γ : Cochain K ((CategoryTheory.shiftFunctor (CochainComplex C ) a).obj L) n') (n : ) (hn : n' + a = n) (p q : ) (hpq : p + n = q) (p' : ) (hp' : p + n' = p') :

The map Cochain (K⟦a⟧) L n' → Cochain K L n when n + a = n'.

Equations
  • One or more equations did not get rendered due to their size.
theorem CochainComplex.HomComplex.Cochain.leftUnshift_v {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {n' a : } (γ : Cochain ((CategoryTheory.shiftFunctor (CochainComplex C ) a).obj K) L n') (n : ) (hn : n + a = n') (p q : ) (hpq : p + n = q) (p' : ) (hp' : p' + n' = q) :

The map Cochain K L n → Cochain (K⟦a⟧) (L⟦a⟧) n.

Equations
  • One or more equations did not get rendered due to their size.
theorem CochainComplex.HomComplex.Cochain.shift_v {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {n : } (γ : Cochain K L n) (a p q : ) (hpq : p + n = q) (p' q' : ) (hp' : p' = p + a) (hq' : q' = q + a) :
theorem CochainComplex.HomComplex.Cochain.shift_v' {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {n : } (γ : Cochain K L n) (a p q : ) (hpq : p + n = q) :
(γ.shift a).v p q hpq = γ.v (p + a) (q + a)
@[simp]
theorem CochainComplex.HomComplex.Cochain.rightShift_add {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {n : } (γ₁ γ₂ : Cochain K L n) (a n' : ) (hn' : n' + a = n) :
(γ₁ + γ₂).rightShift a n' hn' = γ₁.rightShift a n' hn' + γ₂.rightShift a n' hn'
@[simp]
theorem CochainComplex.HomComplex.Cochain.leftShift_add {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {n : } (γ₁ γ₂ : Cochain K L n) (a n' : ) (hn' : n + a = n') :
(γ₁ + γ₂).leftShift a n' hn' = γ₁.leftShift a n' hn' + γ₂.leftShift a n' hn'

The additive equivalence Cochain K L n ≃+ Cochain K L⟦a⟧ n' when n' + a = n.

Equations
  • One or more equations did not get rendered due to their size.

The additive equivalence Cochain K L n ≃+ Cochain (K⟦a⟧) L n' when n + a = n'.

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
@[simp]
theorem CochainComplex.HomComplex.Cochain.rightShift_neg {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {n : } (γ : Cochain K L n) (a n' : ) (hn' : n' + a = n) :
(-γ).rightShift a n' hn' = -γ.rightShift a n' hn'
@[simp]
theorem CochainComplex.HomComplex.Cochain.leftShift_neg {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {n : } (γ : Cochain K L n) (a n' : ) (hn' : n + a = n') :
(-γ).leftShift a n' hn' = -γ.leftShift a n' hn'
@[simp]
theorem CochainComplex.HomComplex.Cochain.rightShift_smul {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {R : Type u_1} [Ring R] [CategoryTheory.Linear R C] {K L : CochainComplex C } {n : } (γ : Cochain K L n) (a n' : ) (hn' : n' + a = n) (x : R) :
(x γ).rightShift a n' hn' = x γ.rightShift a n' hn'
@[simp]
theorem CochainComplex.HomComplex.Cochain.leftShift_smul {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {R : Type u_1} [Ring R] [CategoryTheory.Linear R C] {K L : CochainComplex C } {n : } (γ : Cochain K L n) (a n' : ) (hn' : n + a = n') (x : R) :
(x γ).leftShift a n' hn' = x γ.leftShift a n' hn'

The linear equivalence Cochain K L n ≃+ Cochain K L⟦a⟧ n' when n' + a = n and the category is R-linear.

Equations
@[simp]
theorem CochainComplex.HomComplex.Cochain.rightShiftLinearEquiv_apply {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] (R : Type u_1) [Ring R] [CategoryTheory.Linear R C] (K L : CochainComplex C ) (n a n' : ) (hn' : n' + a = n) (a✝ : Cochain K L n) :
(rightShiftLinearEquiv R K L n a n' hn') a✝ = a✝.rightShift a n' hn'

The additive equivalence Cochain K L n ≃+ Cochain (K⟦a⟧) L n' when n + a = n' and the category is R-linear.

Equations
@[simp]
theorem CochainComplex.HomComplex.Cochain.leftShiftLinearEquiv_apply {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] (R : Type u_1) [Ring R] [CategoryTheory.Linear R C] (K L : CochainComplex C ) (n a n' : ) (hn : n + a = n') (a✝ : Cochain K L n) :
(leftShiftLinearEquiv R K L n a n' hn) a✝ = a✝.leftShift a n' hn

The linear map Cochain K L n ≃+ Cochain (K⟦a⟧) (L⟦a⟧) n when the category is R-linear.

Equations
@[simp]
theorem CochainComplex.HomComplex.Cochain.rightShift_units_smul {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {R : Type u_1} [Ring R] [CategoryTheory.Linear R C] {K L : CochainComplex C } {n : } (γ : Cochain K L n) (a n' : ) (hn' : n' + a = n) (x : Rˣ) :
(x γ).rightShift a n' hn' = x γ.rightShift a n' hn'
@[simp]
theorem CochainComplex.HomComplex.Cochain.leftShift_units_smul {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {R : Type u_1} [Ring R] [CategoryTheory.Linear R C] {K L : CochainComplex C } {n : } (γ : Cochain K L n) (a n' : ) (hn' : n + a = n') (x : Rˣ) :
(x γ).leftShift a n' hn' = x γ.leftShift a n' hn'
theorem CochainComplex.HomComplex.Cochain.rightUnshift_comp {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L M : CochainComplex C } {n : } (γ : Cochain K L n) {m a : } (γ' : Cochain L ((CategoryTheory.shiftFunctor (CochainComplex C ) a).obj M) m) {nm : } (hnm : n + m = nm) (nm' : ) (hnm' : nm + a = nm') (m' : ) (hm' : m + a = m') :
(γ.comp γ' hnm).rightUnshift nm' hnm' = γ.comp (γ'.rightUnshift m' hm')
theorem CochainComplex.HomComplex.Cochain.leftShift_comp {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L M : CochainComplex C } {n : } (γ : Cochain K L n) (a n' : ) (hn' : n + a = n') {m t t' : } (γ' : Cochain L M m) (h : n + m = t) (ht' : t + a = t') :
(γ.comp γ' h).leftShift a t' ht' = (a * m).negOnePow (γ.leftShift a n' hn').comp γ'
@[simp]
theorem CochainComplex.HomComplex.Cochain.leftShift_comp_zero_cochain {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L M : CochainComplex C } {n : } (γ : Cochain K L n) (a n' : ) (hn' : n + a = n') (γ' : Cochain L M 0) :
(γ.comp γ' ).leftShift a n' hn' = (γ.leftShift a n' hn').comp γ'
theorem CochainComplex.HomComplex.Cochain.δ_rightShift {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {n : } (γ : Cochain K L n) (a n' m' : ) (hn' : n' + a = n) (m : ) (hm' : m' + a = m) :
δ n' m' (γ.rightShift a n' hn') = a.negOnePow (δ n m γ).rightShift a m' hm'
theorem CochainComplex.HomComplex.Cochain.δ_leftShift {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {n : } (γ : Cochain K L n) (a n' m' : ) (hn' : n + a = n') (m : ) (hm' : m + a = m') :
δ n' m' (γ.leftShift a n' hn') = a.negOnePow (δ n m γ).leftShift a m' hm'
theorem CochainComplex.HomComplex.Cochain.δ_leftUnshift {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {a n' : } (γ : Cochain ((CategoryTheory.shiftFunctor (CochainComplex C ) a).obj K) L n') (n : ) (hn : n + a = n') (m m' : ) (hm' : m + a = m') :
δ n m (γ.leftUnshift n hn) = a.negOnePow (δ n' m' γ).leftUnshift m hm'

The left and right shift of cochains commute only up to a sign.

The map Cocycle K L n → Cocycle K (L⟦a⟧) n' when n' + a = n.

Equations
@[simp]
theorem CochainComplex.HomComplex.Cocycle.rightShift_coe {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {n : } (γ : Cocycle K L n) (a n' : ) (hn' : n' + a = n) :
(γ.rightShift a n' hn') = (↑γ).rightShift a n' hn'

The map Cocycle K (L⟦a⟧) n' → Cocycle K L n when n' + a = n.

Equations

The map Cocycle K L n → Cocycle (K⟦a⟧) L n' when n + a = n'.

Equations
@[simp]
theorem CochainComplex.HomComplex.Cocycle.leftShift_coe {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {K L : CochainComplex C } {n : } (γ : Cocycle K L n) (a n' : ) (hn' : n + a = n') :
(γ.leftShift a n' hn') = (↑γ).leftShift a n' hn'

The map Cocycle (K⟦a⟧) L n' → Cocycle K L n when n + a = n'.

Equations

The map Cocycle K L n → Cocycle (K⟦a⟧) (L⟦a⟧) n.

Equations