Documentation

Mathlib.Algebra.Homology.SpectralObject.SpectralSequence

The spectral sequence of a spectral object #

The main definition in this file is Abelian.SpectralObject.spectralSequence (TODO). Assume that X is a spectral object indexed by ι in an abelian category C, and that we have data : SpectralSequenceDataCore ι c r₀ for a family of complex shapes c : ℤ → ComplexShape κ for a type κ and r₀ : ℤ. Then, under the assumption X.HasSpectralSequence data (see the file Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean), we obtain X.spectralSequence data (TODO) which is a spectral sequence starting on page r₀, such that the rth page (for r₀ ≤ r) is a homological complex of shape c r.

Outline of the construction #

The construction of the spectral sequence is as follows. If r₀ ≤ r and pq : κ, we define the object of the spectral sequence in position pq on the rth page as E^d(i₀ r pq ≤ i₁ pq ≤ i₂ pq ≤ i₃ r pq) where d := data.deg pq and the indices i₀, i₁, i₂, i₃ are given by data (they all depend on pq, and i₀ and i₃ also depend on the page r), see spectralSequencePageXIso.

When (c r).Rel pq pq', the differential from the object in position pq to the object in position pq' on the rth page can be related to the differential X.d of the spectral object (see the lemma spectralSequence_page_d_eq). Indeed, the assumptions that are part of data give equalities of indices i₂ r pq' = i₀ r pq and i₃ pq' = i₁ pq, so that we have a chain of inequalities i₀ r pq' ≤ i₁ pq' ≤ i₂ pq' ≤ i₃ r pq' ≤ i₂ pq ≤ i₃ r pq for which the API of spectral objects provides a differential X.d : E^n(i₀ r pq ≤ i₁ pq ≤ i₂ pq ≤ i₃ r pq) ⟶ E^{n + 1}(i₀ r pq' ≤ i₁ pq' ≤ i₂ pq' ≤ i₃ r pq').

Now, fix r and three positions pq, pq' and pq'' such that pq is the previous object of pq' for c r and pq'' is the next object of pq'. (Note that in case there are no nontrivial differentials to the object pq' for the complex shape c r, according to the homological complex API, we have pq = pq' and the differential is zero. Similarly, when there are no nontrivial differentials from the object in position pq', we have pq'' = pq and the corresponding differential is zero.) In the favourable case where both (c r).Rel pq pq' and (c r).Rel pq' pq'' hold, the definition SpectralObject.SpectralSequence.shortComplexIso in this file can be used in combination to SpectralObject.SpectralSequence.dHomologyIso in order to compute the homology of the differentials.)

In the general case, using the assumptions in X.HasSpectralSequence data, we provide a limit kernel fork kf and a limit cokernel cofork cc of the differentials on the rth page, together with an epi-mono factorization fac which allows to obtain that the homology of the rth page identifies to the next page (see the definitions SpectralObject.SpectralSequence.homologyData (TODO) and SpectralObject.spectralSequenceHomologyData (TODO)).

noncomputable def CategoryTheory.Abelian.SpectralObject.SpectralSequence.pageX {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r : ) (pq : κ) (hr : r₀ r := by lia) :
C

The object on position pq on the rth page of the spectral sequence.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    noncomputable def CategoryTheory.Abelian.SpectralObject.SpectralSequence.pageXIso {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r : ) (hr : r₀ r) (pq : κ) (i₀ i₁ i₂ i₃ : ι) (h₀ : i₀ = data.i₀ r pq ) (h₁ : i₁ = data.i₁ pq) (h₂ : i₂ = data.i₂ pq) (h₃ : i₃ = data.i₃ r pq ) (n₀ n₁ n₂ : ) (h : n₁ = data.deg pq) (hn₁ : n₀ + 1 = n₁ := by lia) (hn₂ : n₁ + 1 = n₂ := by lia) :
    pageX X data r pq hr X.E (homOfLE ) (homOfLE ) (homOfLE ) n₀ n₁ n₂ hn₁ hn₂

    The object on position pq on the rth page of the spectral sequence identifies to E^{deg pq}(i₀ ≤ i₁ ≤ i₂ ≤ i₃).

    Equations
    Instances For
      noncomputable def CategoryTheory.Abelian.SpectralObject.SpectralSequence.pageD {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r : ) (pq pq' : κ) (hr : r₀ r := by lia) :
      pageX X data r pq hr pageX X data r pq' hr

      The differential on the rth page of the spectral sequence.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem CategoryTheory.Abelian.SpectralObject.SpectralSequence.pageD_eq {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r : ) (hr : r₀ r) (pq pq' : κ) (hpq : (c r).Rel pq pq') {i₀ i₁ i₂ i₃ i₄ i₅ : ι} (f₁ : i₀ i₁) (f₂ : i₁ i₂) (f₃ : i₂ i₃) (f₄ : i₃ i₄) (f₅ : i₄ i₅) (h₀ : i₀ = data.i₀ r pq' ) (h₁ : i₁ = data.i₁ pq') (h₂ : i₂ = data.i₀ r pq ) (h₃ : i₃ = data.i₁ pq) (h₄ : i₄ = data.i₂ pq) (h₅ : i₅ = data.i₃ r pq ) (n₀ n₁ n₂ n₃ : ) (hn₁' : n₁ = data.deg pq) (hn₁ : n₀ + 1 = n₁ := by lia) (hn₂ : n₁ + 1 = n₂ := by lia) (hn₃ : n₂ + 1 = n₃ := by lia) :
        pageD X data r pq pq' = CategoryStruct.comp (pageXIso X data r pq i₂ i₃ i₄ i₅ h₂ h₃ h₄ h₅ n₀ n₁ n₂ hn₁' hn₁ hn₂).hom (CategoryStruct.comp (X.d f₁ f₂ f₃ f₄ f₅ n₀ n₁ n₂ n₃ hn₁ hn₂ hn₃) (pageXIso X data r pq' i₀ i₁ i₂ i₃ h₀ h₁ n₁ n₂ n₃ hn₂ hn₃).inv)
        @[simp]
        theorem CategoryTheory.Abelian.SpectralObject.SpectralSequence.pageD_pageD {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r : ) (hr : r₀ r) (pq pq' pq'' : κ) :
        CategoryStruct.comp (pageD X data r pq pq' hr) (pageD X data r pq' pq'' hr) = 0
        @[simp]
        theorem CategoryTheory.Abelian.SpectralObject.SpectralSequence.pageD_pageD_assoc {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r : ) (hr : r₀ r) (pq pq' pq'' : κ) {Z : C} (h : pageX X data r pq'' hr Z) :
        CategoryStruct.comp (pageD X data r pq pq' hr) (CategoryStruct.comp (pageD X data r pq' pq'' hr) h) = CategoryStruct.comp 0 h
        noncomputable def CategoryTheory.Abelian.SpectralObject.SpectralSequence.page {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r : ) (hr : r₀ r) :

        The rth page of the spectral sequence.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem CategoryTheory.Abelian.SpectralObject.SpectralSequence.page_d {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r : ) (hr : r₀ r) (pq pq' : κ) :
          (page X data r hr).d pq pq' = pageD X data r pq pq'
          @[simp]
          theorem CategoryTheory.Abelian.SpectralObject.SpectralSequence.page_X {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r : ) (hr : r₀ r) (pq : κ) :
          (page X data r hr).X pq = pageX X data r pq
          noncomputable def CategoryTheory.Abelian.SpectralObject.SpectralSequence.shortComplexIso {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r : ) (hr : r₀ r) (pq pq' pq'' : κ) (hpq : (c r).Rel pq pq') (hpq' : (c r).Rel pq' pq'') (n₀ n₁ n₂ n₃ n₄ : ) (hn₁ : n₀ + 1 = n₁) (hn₂ : n₁ + 1 = n₂) (hn₃ : n₂ + 1 = n₃) (hn₄ : n₃ + 1 = n₄) (hn₂' : n₂ = data.deg pq') :
          (page X data r hr).sc' pq pq' pq'' X.dShortComplex (homOfLE ) (homOfLE ) (homOfLE ) (homOfLE ) (homOfLE ) (homOfLE ) (homOfLE ) n₀ n₁ n₂ n₃ n₄ hn₁ hn₂ hn₃ hn₄

          The short complex of the rth page of the spectral sequence on position pq' identifies to the short complex given by the differentials of the spectral object. Then, the homology of this short complex can be computed using SpectralSequence.dHomologyIso. (This only applies in the favourable case when there are pq and pq'' such that (c r).Rel pq pq' and (c r).Rel pq' pq'' hold.)

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem CategoryTheory.Abelian.SpectralObject.SpectralSequence.HomologyData.kf_w {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r r' : ) (hrr' : r + 1 = r') (hr : r₀ r) (pq' pq'' : κ) (i₀' i₀ i₁ i₂ i₃ : ι) (hi₀' : i₀' = data.i₀ r' pq' ) (hi₀ : i₀ = data.i₀ r pq' ) (hi₁ : i₁ = data.i₁ pq') (hi₂ : i₂ = data.i₂ pq') (hi₃ : i₃ = data.i₃ r pq' ) (n₀ n₁ n₂ : ) (hn₁' : n₁ = data.deg pq') (hn₁ : n₀ + 1 = n₁ := by lia) (hn₂ : n₁ + 1 = n₂ := by lia) :
            CategoryStruct.comp (CategoryStruct.comp (X.mapFourδ₁Toδ₀' i₀' i₀ i₁ i₂ i₃ n₀ n₁ n₂ hn₁ hn₂) (pageXIso X data r hr pq' i₀ i₁ i₂ i₃ hi₀ hi₁ hi₂ hi₃ n₀ n₁ n₂ hn₁' hn₁ hn₂).inv) ((page X data r hr).d pq' pq'') = 0
            @[reducible, inline]
            noncomputable abbrev CategoryTheory.Abelian.SpectralObject.SpectralSequence.HomologyData.kf {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r r' : ) (hrr' : r + 1 = r') (hr : r₀ r) (pq' pq'' : κ) (i₀' i₀ i₁ i₂ i₃ : ι) (hi₀' : i₀' = data.i₀ r' pq' ) (hi₀ : i₀ = data.i₀ r pq' ) (hi₁ : i₁ = data.i₁ pq') (hi₂ : i₂ = data.i₂ pq') (hi₃ : i₃ = data.i₃ r pq' ) (n₀ n₁ n₂ : ) (hn₁' : n₁ = data.deg pq') (hn₁ : n₀ + 1 = n₁ := by lia) (hn₂ : n₁ + 1 = n₂ := by lia) :
            Limits.KernelFork ((page X data r hr).d pq' pq'')

            A (limit) kernel fork of the differential on the rth page whose point identifies to an object X.E

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              noncomputable def CategoryTheory.Abelian.SpectralObject.SpectralSequence.HomologyData.kfSc {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r r' : ) (hrr' : r + 1 = r') (hr : r₀ r) (pq' pq'' : κ) (i₀' i₀ i₁ i₂ i₃ : ι) (hi₀' : i₀' = data.i₀ r' pq' ) (hi₀ : i₀ = data.i₀ r pq' ) (hi₁ : i₁ = data.i₁ pq') (hi₂ : i₂ = data.i₂ pq') (hi₃ : i₃ = data.i₃ r pq' ) (n₀ n₁ n₂ : ) (hn₁' : n₁ = data.deg pq') (hn₁ : n₀ + 1 = n₁ := by lia) (hn₂ : n₁ + 1 = n₂ := by lia) :

              The (exact) short complex attached to the kernel fork kf.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem CategoryTheory.Abelian.SpectralObject.SpectralSequence.HomologyData.kfSc_X₂ {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r r' : ) (hrr' : r + 1 = r') (hr : r₀ r) (pq' pq'' : κ) (i₀' i₀ i₁ i₂ i₃ : ι) (hi₀' : i₀' = data.i₀ r' pq' ) (hi₀ : i₀ = data.i₀ r pq' ) (hi₁ : i₁ = data.i₁ pq') (hi₂ : i₂ = data.i₂ pq') (hi₃ : i₃ = data.i₃ r pq' ) (n₀ n₁ n₂ : ) (hn₁' : n₁ = data.deg pq') (hn₁ : n₀ + 1 = n₁ := by lia) (hn₂ : n₁ + 1 = n₂ := by lia) :
                (kfSc X data r r' hrr' hr pq' pq'' i₀' i₀ i₁ i₂ i₃ hi₀' hi₀ hi₁ hi₂ hi₃ n₀ n₁ n₂ hn₁' hn₁ hn₂).X₂ = pageX X data r pq' hr
                @[simp]
                theorem CategoryTheory.Abelian.SpectralObject.SpectralSequence.HomologyData.kfSc_X₃ {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r r' : ) (hrr' : r + 1 = r') (hr : r₀ r) (pq' pq'' : κ) (i₀' i₀ i₁ i₂ i₃ : ι) (hi₀' : i₀' = data.i₀ r' pq' ) (hi₀ : i₀ = data.i₀ r pq' ) (hi₁ : i₁ = data.i₁ pq') (hi₂ : i₂ = data.i₂ pq') (hi₃ : i₃ = data.i₃ r pq' ) (n₀ n₁ n₂ : ) (hn₁' : n₁ = data.deg pq') (hn₁ : n₀ + 1 = n₁ := by lia) (hn₂ : n₁ + 1 = n₂ := by lia) :
                (kfSc X data r r' hrr' hr pq' pq'' i₀' i₀ i₁ i₂ i₃ hi₀' hi₀ hi₁ hi₂ hi₃ n₀ n₁ n₂ hn₁' hn₁ hn₂).X₃ = pageX X data r pq''
                @[simp]
                theorem CategoryTheory.Abelian.SpectralObject.SpectralSequence.HomologyData.kfSc_f {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r r' : ) (hrr' : r + 1 = r') (hr : r₀ r) (pq' pq'' : κ) (i₀' i₀ i₁ i₂ i₃ : ι) (hi₀' : i₀' = data.i₀ r' pq' ) (hi₀ : i₀ = data.i₀ r pq' ) (hi₁ : i₁ = data.i₁ pq') (hi₂ : i₂ = data.i₂ pq') (hi₃ : i₃ = data.i₃ r pq' ) (n₀ n₁ n₂ : ) (hn₁' : n₁ = data.deg pq') (hn₁ : n₀ + 1 = n₁ := by lia) (hn₂ : n₁ + 1 = n₂ := by lia) :
                (kfSc X data r r' hrr' hr pq' pq'' i₀' i₀ i₁ i₂ i₃ hi₀' hi₀ hi₁ hi₂ hi₃ n₀ n₁ n₂ hn₁' hn₁ hn₂).f = CategoryStruct.comp (X.mapFourδ₁Toδ₀' i₀' i₀ i₁ i₂ i₃ n₀ n₁ n₂ hn₁ ) (pageXIso X data r hr pq' i₀ i₁ i₂ i₃ hi₀ hi₁ hi₂ hi₃ n₀ n₁ n₂ hn₁' hn₁ ).inv
                @[simp]
                theorem CategoryTheory.Abelian.SpectralObject.SpectralSequence.HomologyData.kfSc_X₁ {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r r' : ) (hrr' : r + 1 = r') (hr : r₀ r) (pq' pq'' : κ) (i₀' i₀ i₁ i₂ i₃ : ι) (hi₀' : i₀' = data.i₀ r' pq' ) (hi₀ : i₀ = data.i₀ r pq' ) (hi₁ : i₁ = data.i₁ pq') (hi₂ : i₂ = data.i₂ pq') (hi₃ : i₃ = data.i₃ r pq' ) (n₀ n₁ n₂ : ) (hn₁' : n₁ = data.deg pq') (hn₁ : n₀ + 1 = n₁ := by lia) (hn₂ : n₁ + 1 = n₂ := by lia) :
                (kfSc X data r r' hrr' hr pq' pq'' i₀' i₀ i₁ i₂ i₃ hi₀' hi₀ hi₁ hi₂ hi₃ n₀ n₁ n₂ hn₁' hn₁ hn₂).X₁ = X.E (homOfLE ) (homOfLE ) (homOfLE ) n₀ n₁ n₂ hn₁
                @[simp]
                theorem CategoryTheory.Abelian.SpectralObject.SpectralSequence.HomologyData.kfSc_g {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r r' : ) (hrr' : r + 1 = r') (hr : r₀ r) (pq' pq'' : κ) (i₀' i₀ i₁ i₂ i₃ : ι) (hi₀' : i₀' = data.i₀ r' pq' ) (hi₀ : i₀ = data.i₀ r pq' ) (hi₁ : i₁ = data.i₁ pq') (hi₂ : i₂ = data.i₂ pq') (hi₃ : i₃ = data.i₃ r pq' ) (n₀ n₁ n₂ : ) (hn₁' : n₁ = data.deg pq') (hn₁ : n₀ + 1 = n₁ := by lia) (hn₂ : n₁ + 1 = n₂ := by lia) :
                (kfSc X data r r' hrr' hr pq' pq'' i₀' i₀ i₁ i₂ i₃ hi₀' hi₀ hi₁ hi₂ hi₃ n₀ n₁ n₂ hn₁' hn₁ hn₂).g = pageD X data r pq' pq''
                instance CategoryTheory.Abelian.SpectralObject.SpectralSequence.HomologyData.instMonoFKfSc {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r r' : ) (hrr' : r + 1 = r') (hr : r₀ r) (pq' pq'' : κ) (i₀' i₀ i₁ i₂ i₃ : ι) (hi₀' : i₀' = data.i₀ r' pq' ) (hi₀ : i₀ = data.i₀ r pq' ) (hi₁ : i₁ = data.i₁ pq') (hi₂ : i₂ = data.i₂ pq') (hi₃ : i₃ = data.i₃ r pq' ) (n₀ n₁ n₂ : ) (hn₁' : n₁ = data.deg pq') (hn₁ : n₀ + 1 = n₁) (hn₂ : n₁ + 1 = n₂) :
                Mono (kfSc X data r r' hrr' hr pq' pq'' i₀' i₀ i₁ i₂ i₃ hi₀' hi₀ hi₁ hi₂ hi₃ n₀ n₁ n₂ hn₁' hn₁ hn₂).f
                theorem CategoryTheory.Abelian.SpectralObject.SpectralSequence.HomologyData.isIso_mapFourδ₁Toδ₀' {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r r' : ) (hrr' : r + 1 = r') (hr : r₀ r) (pq' pq'' : κ) (hpq' : (c r).next pq' = pq'') (i₀' i₀ i₁ i₂ i₃ : ι) (hi₀' : i₀' = data.i₀ r' pq' ) (hi₀ : i₀ = data.i₀ r pq' ) (hi₁ : i₁ = data.i₁ pq') (hi₂ : i₂ = data.i₂ pq') (hi₃ : i₃ = data.i₃ r pq' ) (n₀ n₁ n₂ : ) (hn₁' : n₁ = data.deg pq') [X.HasSpectralSequence data] (h : ¬(c r).Rel pq' pq'') (hn₁ : n₀ + 1 = n₁ := by lia) (hn₂ : n₁ + 1 = n₂ := by lia) :
                IsIso (X.mapFourδ₁Toδ₀' i₀' i₀ i₁ i₂ i₃ n₀ n₁ n₂ hn₁ hn₂)
                theorem CategoryTheory.Abelian.SpectralObject.SpectralSequence.HomologyData.kfSc_exact {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r r' : ) (hrr' : r + 1 = r') (hr : r₀ r) (pq' pq'' : κ) (hpq' : (c r).next pq' = pq'') (i₀' i₀ i₁ i₂ i₃ : ι) (hi₀' : i₀' = data.i₀ r' pq' ) (hi₀ : i₀ = data.i₀ r pq' ) (hi₁ : i₁ = data.i₁ pq') (hi₂ : i₂ = data.i₂ pq') (hi₃ : i₃ = data.i₃ r pq' ) (n₀ n₁ n₂ : ) (hn₁' : n₁ = data.deg pq') [X.HasSpectralSequence data] (hn₁ : n₀ + 1 = n₁ := by lia) (hn₂ : n₁ + 1 = n₂ := by lia) :
                (kfSc X data r r' hrr' hr pq' pq'' i₀' i₀ i₁ i₂ i₃ hi₀' hi₀ hi₁ hi₂ hi₃ n₀ n₁ n₂ hn₁' hn₁ hn₂).Exact
                noncomputable def CategoryTheory.Abelian.SpectralObject.SpectralSequence.HomologyData.isLimitKf {C : Type u_1} {ι : Type u_2} {κ : Type u_3} [Category.{v_1, u_1} C] [Abelian C] [Preorder ι] (X : SpectralObject C ι) {c : ComplexShape κ} {r₀ : } (data : SpectralSequenceDataCore ι c r₀) (r r' : ) (hrr' : r + 1 = r') (hr : r₀ r) (pq' pq'' : κ) (hpq' : (c r).next pq' = pq'') (i₀' i₀ i₁ i₂ i₃ : ι) (hi₀' : i₀' = data.i₀ r' pq' ) (hi₀ : i₀ = data.i₀ r pq' ) (hi₁ : i₁ = data.i₁ pq') (hi₂ : i₂ = data.i₂ pq') (hi₃ : i₃ = data.i₃ r pq' ) (n₀ n₁ n₂ : ) (hn₁' : n₁ = data.deg pq') [X.HasSpectralSequence data] (hn₁ : n₀ + 1 = n₁ := by lia) (hn₂ : n₁ + 1 = n₂ := by lia) :
                Limits.IsLimit (kf X data r r' hrr' hr pq' pq'' i₀' i₀ i₁ i₂ i₃ hi₀' hi₀ hi₁ hi₂ hi₃ n₀ n₁ n₂ hn₁' hn₁ hn₂)

                The kernel fork kf is a limit.

                Equations
                Instances For