Documentation

TauCeti.Algebra.Homology.GradedCochainComplex

The cochain complex of a family of submodules with a differential #

A ℤ-indexed family ℳ of submodules of an R-module M, together with an R-linear endomorphism dM which carries ℳ p into ℳ (p + 1) and squares to zero on each ℳ p, assembles into a cochain complex of R-modules: the degree-p term is the submodule ℳ p and the differential is the restriction of dM. This file performs that assembly. No decomposition or exhaustiveness hypothesis on ℳ is required, and the differential is not assumed to come from a module action.

In practice ℳ is the internal grading in which the differential graded algebras and modules of TauCeti.Algebra.Homology.DG store their structure, because a product or an action is easier to write on one carrier than on a family of summands. Statements which compare such an object with a genuine complex — quasi-isomorphisms, Hom complexes, cohomology computed by Mathlib's homological algebra — need the complex on the other side, and that is what this construction supplies: it serves the underlying complex of a DG algebra and of a DG module on either side.

Main definitions #

Implementation notes #

The component, differential, and element-level differential lemmas below are the intended public interface to gradedCochainComplex.

def TauCeti.gradedCochainComplex {R : Type uR} {M : Type uM} [Ring R] [AddCommGroup M] [Module R M] (ℳ : ℤ → Submodule R M) (dM : M →ₗ[R] M) (hdeg : LinearMap.IsHomogeneous dM ℳ ℳ 1) (hsq : ∀ (p : ℤ) (x : ↥(ℳ p)), dM (dM ↑x) = 0) :

The cochain complex of R-modules assembled from a ℤ-indexed family ℳ of submodules of M and an R-linear endomorphism dM carrying ℳ p into ℳ (p + 1) and square-zero on each ℳ p.

Equations
Instances For
    @[simp]
    theorem TauCeti.gradedCochainComplex_X {R : Type uR} {M : Type uM} [Ring R] [AddCommGroup M] [Module R M] {ℳ : ℤ → Submodule R M} {dM : M →ₗ[R] M} {hdeg : LinearMap.IsHomogeneous dM ℳ ℳ 1} {hsq : ∀ (p : ℤ) (x : ↥(ℳ p)), dM (dM ↑x) = 0} (p : ℤ) :
    (gradedCochainComplex ℳ dM hdeg hsq).X p = ↧↥(ℳ p)
    @[simp]
    theorem TauCeti.gradedCochainComplex_d {R : Type uR} {M : Type uM} [Ring R] [AddCommGroup M] [Module R M] {ℳ : ℤ → Submodule R M} {dM : M →ₗ[R] M} {hdeg : LinearMap.IsHomogeneous dM ℳ ℳ 1} {hsq : ∀ (p : ℤ) (x : ↥(ℳ p)), dM (dM ↑x) = 0} (p : ℤ) :
    theorem TauCeti.gradedCochainComplex_d_apply {R : Type uR} {M : Type uM} [Ring R] [AddCommGroup M] [Module R M] {ℳ : ℤ → Submodule R M} {dM : M →ₗ[R] M} {hdeg : LinearMap.IsHomogeneous dM ℳ ℳ 1} {hsq : ∀ (p : ℤ) (x : ↥(ℳ p)), dM (dM ↑x) = 0} (p : ℤ) (x : ↥(ℳ p)) :

    The differential of gradedCochainComplex on an element. This is intentionally not a simp lemma: gradedCochainComplex_d already simplifies its left-hand side, so registering both rules would fail the simpNF linter.

    noncomputable def TauCeti.gradedCochainComplexLift {R : Type uR} {M : Type uM} [Ring R] [AddCommGroup M] [Module R M] (ℳ : ℤ → Submodule R M) (dM : M →ₗ[R] M) (hdeg : LinearMap.IsHomogeneous dM ℳ ℳ 1) (hsq : ∀ (p : ℤ) (x : ↥(ℳ p)), dM (dM ↑x) = 0) :

    The graded cochain complex in a common module universe. Its degree-p term is ULift (ℳ p), and its differential is the lifted restriction of dM.

    Equations
    Instances For
      @[simp]
      theorem TauCeti.gradedCochainComplexLift_X {R : Type uR} {M : Type uM} [Ring R] [AddCommGroup M] [Module R M] {ℳ : ℤ → Submodule R M} {dM : M →ₗ[R] M} {hdeg : LinearMap.IsHomogeneous dM ℳ ℳ 1} {hsq : ∀ (p : ℤ) (x : ↥(ℳ p)), dM (dM ↑x) = 0} (p : ℤ) :
      (gradedCochainComplexLift ℳ dM hdeg hsq).X p = ↧(ULift.{uExtra, uM} ↥(ℳ p))

      The degree-p term of the lifted complex is the lifted homogeneous submodule.

      @[simp]
      theorem TauCeti.gradedCochainComplexLift_d {R : Type uR} {M : Type uM} [Ring R] [AddCommGroup M] [Module R M] {ℳ : ℤ → Submodule R M} {dM : M →ₗ[R] M} {hdeg : LinearMap.IsHomogeneous dM ℳ ℳ 1} {hsq : ∀ (p : ℤ) (x : ↥(ℳ p)), dM (dM ↑x) = 0} (p : ℤ) :

      The degree-p differential of the lifted complex is the lifted restriction of dM, transported along the identifications of its source and target terms.

      theorem TauCeti.gradedCochainComplexLift_d_apply {R : Type uR} {M : Type uM} [Ring R] [AddCommGroup M] [Module R M] {ℳ : ℤ → Submodule R M} {dM : M →ₗ[R] M} {hdeg : LinearMap.IsHomogeneous dM ℳ ℳ 1} {hsq : ∀ (p : ℤ) (x : ↥(ℳ p)), dM (dM ↑x) = 0} (p : ℤ) (x : ↥(ℳ p)) :

      The differential of the lifted complex acts by the original differential on homogeneous elements.

      noncomputable def TauCeti.gradedCochainComplexMap {R : Type uR} {M : Type uM} [Ring R] [AddCommGroup M] [Module R M] {ℳ : ℤ → Submodule R M} {dM : M →ₗ[R] M} {hdeg : LinearMap.IsHomogeneous dM ℳ ℳ 1} {hsq : ∀ (p : ℤ) (x : ↥(ℳ p)), dM (dM ↑x) = 0} {N : Type uN} [AddCommGroup N] [Module R N] {𝒩 : ℤ → Submodule R N} {dN : N →ₗ[R] N} {hdegN : LinearMap.IsHomogeneous dN 𝒩 𝒩 1} {hsqN : ∀ (p : ℤ) (x : ↥(𝒩 p)), dN (dN ↑x) = 0} (f : M →ₗ[R] N) (hf : LinearMap.IsHomogeneous f ℳ 𝒩 0) (hcomm : ∀ (p : ℤ) (x : ↥(ℳ p)), dN (f ↑x) = f (dM ↑x)) :
      gradedCochainComplexLift ℳ dM hdeg hsq ⟶ gradedCochainComplexLift 𝒩 dN hdegN hsqN

      A degree-preserving linear map commuting with differentials induces a map between the cochain complexes assembled from graded modules, even when their carriers have different universes.

      Equations
      Instances For
        @[simp]
        theorem TauCeti.gradedCochainComplexMap_f_apply {R : Type uR} {M : Type uM} [Ring R] [AddCommGroup M] [Module R M] {ℳ : ℤ → Submodule R M} {dM : M →ₗ[R] M} {hdeg : LinearMap.IsHomogeneous dM ℳ ℳ 1} {hsq : ∀ (p : ℤ) (x : ↥(ℳ p)), dM (dM ↑x) = 0} {N : Type uN} [AddCommGroup N] [Module R N] {𝒩 : ℤ → Submodule R N} {dN : N →ₗ[R] N} {hdegN : LinearMap.IsHomogeneous dN 𝒩 𝒩 1} {hsqN : ∀ (p : ℤ) (x : ↥(𝒩 p)), dN (dN ↑x) = 0} (f : M →ₗ[R] N) (hf : LinearMap.IsHomogeneous f ℳ 𝒩 0) (hcomm : ∀ (p : ℤ) (x : ↥(ℳ p)), dN (f ↑x) = f (dM ↑x)) (n : ℤ) (x : ↥(ℳ n)) :

        On a homogeneous element, the induced cochain map is the original linear map.

        theorem TauCeti.gradedCochainComplexMap_congr {R : Type uR} {M : Type uM} [Ring R] [AddCommGroup M] [Module R M] {ℳ : ℤ → Submodule R M} {dM : M →ₗ[R] M} {hdeg : LinearMap.IsHomogeneous dM ℳ ℳ 1} {hsq : ∀ (p : ℤ) (x : ↥(ℳ p)), dM (dM ↑x) = 0} {N : Type uN} [AddCommGroup N] [Module R N] {𝒩 : ℤ → Submodule R N} {dN : N →ₗ[R] N} {hdegN : LinearMap.IsHomogeneous dN 𝒩 𝒩 1} {hsqN : ∀ (p : ℤ) (x : ↥(𝒩 p)), dN (dN ↑x) = 0} {f g : M →ₗ[R] N} (h : f = g) (hf : LinearMap.IsHomogeneous f ℳ 𝒩 0) (hg : LinearMap.IsHomogeneous g ℳ 𝒩 0) (hcommf : ∀ (p : ℤ) (x : ↥(ℳ p)), dN (f ↑x) = f (dM ↑x)) (hcommg : ∀ (p : ℤ) (x : ↥(ℳ p)), dN (g ↑x) = g (dM ↑x)) :

        The induced cochain map depends only on the underlying linear map.

        @[simp]
        theorem TauCeti.gradedCochainComplexMap_id {R : Type uR} {M : Type uM} [Ring R] [AddCommGroup M] [Module R M] {ℳ : ℤ → Submodule R M} {dM : M →ₗ[R] M} {hdeg : LinearMap.IsHomogeneous dM ℳ ℳ 1} {hsq : ∀ (p : ℤ) (x : ↥(ℳ p)), dM (dM ↑x) = 0} :

        The cochain map induced by the identity linear map is the identity.

        theorem TauCeti.gradedCochainComplexMap_comp {R : Type uR} {M : Type uM} [Ring R] [AddCommGroup M] [Module R M] {ℳ : ℤ → Submodule R M} {dM : M →ₗ[R] M} {hdeg : LinearMap.IsHomogeneous dM ℳ ℳ 1} {hsq : ∀ (p : ℤ) (x : ↥(ℳ p)), dM (dM ↑x) = 0} {N : Type uN} [AddCommGroup N] [Module R N] {𝒩 : ℤ → Submodule R N} {dN : N →ₗ[R] N} {hdegN : LinearMap.IsHomogeneous dN 𝒩 𝒩 1} {hsqN : ∀ (p : ℤ) (x : ↥(𝒩 p)), dN (dN ↑x) = 0} {P : Type uP} [AddCommGroup P] [Module R P] {𝒦 : ℤ → Submodule R P} {dP : P →ₗ[R] P} {hdegP : LinearMap.IsHomogeneous dP 𝒦 𝒦 1} {hsqP : ∀ (p : ℤ) (x : ↥(𝒦 p)), dP (dP ↑x) = 0} (f : M →ₗ[R] N) (g : N →ₗ[R] P) (hf : LinearMap.IsHomogeneous f ℳ 𝒩 0) (hg : LinearMap.IsHomogeneous g 𝒩 𝒦 0) (hcommf : ∀ (p : ℤ) (x : ↥(ℳ p)), dN (f ↑x) = f (dM ↑x)) (hcommg : ∀ (p : ℤ) (x : ↥(𝒩 p)), dP (g ↑x) = g (dN ↑x)) :

        Cochain maps assembled from graded linear maps preserve composition.