Module

Module_finrank_add_alternatingSum_finrank_eq_of_finite_complex.lean

Nyll.AlgebraicCurves.Foundations.HomologicalAlgebra.Module_finrank_add_alternatingSum_finrank_eq_of_finite_complex
2 declarations indexed from sourceView source ↗

Module finrank add alternating Sum finrank eq of finite complex

Declarations

AlgebraicCurves.Foundations.HomologicalAlgebra.Proofs.EulerCharacteristicFinrank.FinrankComplexW4.telescope
Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Foundations.HomologicalAlgebra.Proofs.EulerCharacteristicFinrank
universe u
namespace FinrankComplexW4
theorem telescope (n : ℕ) (κ r d h : ℕ → ℤ) (h0 : ℤ)
    (hd : ∀ i, d i = κ i + r i) (hh : ∀ i, h i = κ (i + 1) - r i) (hh0 : h0 = κ 0)
    (hrn : r n = 0) :
    h0 + ∑ i ∈ Finset.range n, (-1 : ℤ) ^ (i + 1) * h i =
      ∑ i ∈ Finset.range (n + 1), (-1 : ℤ) ^ i * d i
Module.finrank_add_alternatingSum_finrank_eq_of_finite_complex
Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Foundations.HomologicalAlgebra.Proofs.EulerCharacteristicFinrank
universe u
open FinrankComplexW4 in
theorem _root_.Module.finrank_add_alternatingSum_finrank_eq_of_finite_complex
    (k : Type u) [Field k]
    (K : ℕ → Type u) [∀ i, AddCommGroup (K i)] [∀ i, Module k (K i)] [∀ i, Module.Finite k (K i)]
    (δ : ∀ i, K i →ₗ[k] K (i + 1)) (hδδ : ∀ i, δ (i + 1) ∘ₗ δ i = 0)
    (n : ℕ) (hbdd : ∀ i, n < i → Subsingleton (K i))
    (H0 : Type u) [AddCommGroup H0] [Module k H0] (e₀ : H0 ≃ₗ[k] LinearMap.ker (δ 0))
    (H : ℕ → Type u) [∀ i, AddCommGroup (H i)] [∀ i, Module k (H i)]
    (π : ∀ i, LinearMap.ker (δ (i + 1)) →ₗ[k] H i) (hπ : ∀ i, Function.Surjective (π i))
    (hπker : ∀ i, LinearMap.ker (π i) =
      (LinearMap.range (δ i)).comap (LinearMap.ker (δ (i + 1))).subtype) :
    (Module.finrank k H0 : ℤ) + ∑ i ∈ Finset.range n, (-1 : ℤ) ^ (i + 1) * (Module.finrank k (H i)
      : ℤ) =
      ∑ i ∈ Finset.range (n + 1), (-1 : ℤ) ^ i * (Module.finrank k (K i) : ℤ)