Documentation

TauCeti.Algebra.Homology.Contraction.Linear.Basic

Contractions of modules with a differential #

LinearContraction packages contraction data without side conditions on the homotopy. LinearSpecialContraction.toLinearContraction forgets the side conditions of a special contraction. Normalization of weak contractions is developed in TauCeti.Algebra.Homology.Contraction.Linear.Normalization.

A special contraction of a module M with an endomorphism dM onto a module N with an endomorphism dN consists of linear maps incl : N → M and proj : M → N commuting with the endomorphisms, a homotopy h : M → M with

proj ∘ incl = 1, dM h + h dM = 1 - incl ∘ proj,

and the three side conditions h ∘ incl = 0, proj ∘ h = 0, h ∘ h = 0. When dM and dN square to zero this is the classical strong deformation retract of differential modules. The square of dN is in any case the compression of the square of dM to the retract (LinearContraction.dN_comp_dN), so once dM squares to zero a separate requirement that dN square to zero would be redundant; nothing in the data forces dM itself to square to zero.

TauCeti.SpecialContraction packages the same notion degreewise, for cochain complexes in a preadditive category. The present total-module form is the one homological perturbation theory operates on: the perturbation series inverts an endomorphism of the total module, and the bar constructions it is applied to are modules with an internal grading, not degreewise objects. The orientation of the contracting equation, with 1 - incl ∘ proj on the right, is the one fixed by TauCeti.Contraction; the identity contraction LinearSpecialContraction.refl therefore has zero homotopy.

Main definitions #

Main results #

References #

structure TauCeti.LinearContraction {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (dM : Module.End R M) (dN : Module.End R N) :
Type (max uM uN)

A contraction of modules with endomorphisms, without side conditions on its homotopy. For square-zero endomorphisms this is a deformation retract of differential modules.

Instances For
    theorem TauCeti.LinearContraction.ext_iff {R : Type uR} {M : Type uM} {N : Type uN} {inst✝ : Semiring R} {inst✝¹ : AddCommGroup M} {inst✝² : Module R M} {inst✝³ : AddCommGroup N} {inst✝⁴ : Module R N} {dM : Module.End R M} {dN : Module.End R N} {x y : LinearContraction dM dN} :
    theorem TauCeti.LinearContraction.ext {R : Type uR} {M : Type uM} {N : Type uN} {inst✝ : Semiring R} {inst✝¹ : AddCommGroup M} {inst✝² : Module R M} {inst✝³ : AddCommGroup N} {inst✝⁴ : Module R N} {dM : Module.End R M} {dN : Module.End R N} {x y : LinearContraction dM dN} (incl : x.incl = y.incl) (proj : x.proj = y.proj) (homotopy : x.homotopy = y.homotopy) :
    x = y
    @[simp]
    theorem TauCeti.LinearContraction.proj_comp_incl_assoc {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearContraction dM dN) {P : Type uP} [AddCommMonoid P] [Module R P] (f : P →ₗ[R] N) :
    @[simp]
    theorem TauCeti.LinearContraction.dM_comp_incl_assoc {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearContraction dM dN) {P : Type uP} [AddCommMonoid P] [Module R P] (f : P →ₗ[R] N) :
    @[simp]
    theorem TauCeti.LinearContraction.proj_comp_dM_assoc {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearContraction dM dN) {P : Type uP} [AddCommMonoid P] [Module R P] (f : P →ₗ[R] M) :
    @[simp]
    theorem TauCeti.LinearContraction.proj_incl_apply {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearContraction dM dN) (y : N) :
    c.proj (c.incl y) = y
    @[simp]
    theorem TauCeti.LinearContraction.dM_incl_apply {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearContraction dM dN) (y : N) :
    dM (c.incl y) = c.incl (dN y)
    @[simp]
    theorem TauCeti.LinearContraction.proj_dM_apply {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearContraction dM dN) (x : M) :
    c.proj (dM x) = dN (c.proj x)
    theorem TauCeti.LinearContraction.incl_comp_proj {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearContraction dM dN) :

    The idempotent incl ∘ proj of a contraction is the complement of dM h + h dM.

    theorem TauCeti.LinearContraction.incl_comp_proj_assoc {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearContraction dM dN) {P : Type uP} [AddCommMonoid P] [Module R P] (f : P →ₗ[R] M) :
    theorem TauCeti.LinearContraction.incl_proj_apply {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearContraction dM dN) (x : M) :
    c.incl (c.proj x) = x - dM (c.homotopy x) - c.homotopy (dM x)

    The square of the differential of the retract #

    theorem TauCeti.LinearContraction.dN_comp_dN {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearContraction dM dN) :
    dN ∘ₗ dN = c.proj ∘ₗ dM ∘ₗ dM ∘ₗ c.incl

    The square of dN is the compression proj ∘ dM² ∘ incl of the square of dM to the retract.

    theorem TauCeti.LinearContraction.dN_comp_dN_eq_zero {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearContraction dM dN) (h : dM ∘ₗ dM = 0) :
    dN ∘ₗ dN = 0

    If dM squares to zero, so does the endomorphism of the retract.

    theorem TauCeti.LinearContraction.isHomogeneous_dN {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearContraction dM dN) {ι : Type u_1} {σM : Type u_2} {σN : Type u_3} [AddMonoid ι] [SetLike σM M] [SetLike σN N] {𝒜 : ι → σM} {ℬ : ι → σN} {q : ι} (hdM : LinearMap.IsHomogeneous dM 𝒜 𝒜 q) (hincl : LinearMap.IsHomogeneous c.incl ℬ 𝒜 0) (hproj : LinearMap.IsHomogeneous c.proj 𝒜 ℬ 0) :

    The endomorphism of the retract has the degree of dM when the inclusion and projection have degree zero, since it is the compression proj ∘ dM ∘ incl.

    structure TauCeti.LinearSpecialContraction {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (dM : Module.End R M) (dN : Module.End R N) extends TauCeti.LinearContraction dM dN :
    Type (max uM uN)

    A special contraction of (M, dM) onto (N, dN): maps incl, proj commuting with the endomorphisms, with proj ∘ incl = 1, and a homotopy h with dM h + h dM = 1 - incl ∘ proj satisfying the side conditions h ∘ incl = 0, proj ∘ h = 0 and h ∘ h = 0. When dM squares to zero (so dN does too, by dN_comp_dN_eq_zero) this is a strong deformation retract of differential modules; for general endomorphisms it is the analogous contraction data.

    Instances For
      theorem TauCeti.LinearSpecialContraction.ext_iff {R : Type uR} {M : Type uM} {N : Type uN} {inst✝ : Semiring R} {inst✝¹ : AddCommGroup M} {inst✝² : Module R M} {inst✝³ : AddCommGroup N} {inst✝⁴ : Module R N} {dM : Module.End R M} {dN : Module.End R N} {x y : LinearSpecialContraction dM dN} :
      theorem TauCeti.LinearSpecialContraction.ext {R : Type uR} {M : Type uM} {N : Type uN} {inst✝ : Semiring R} {inst✝¹ : AddCommGroup M} {inst✝² : Module R M} {inst✝³ : AddCommGroup N} {inst✝⁴ : Module R N} {dM : Module.End R M} {dN : Module.End R N} {x y : LinearSpecialContraction dM dN} (incl : x.incl = y.incl) (proj : x.proj = y.proj) (homotopy : x.homotopy = y.homotopy) :
      x = y

      Reassociated forms #

      The defining equations, stated with an arbitrary further factor on the right, so that they can rewrite inside right-associated compositions.

      @[simp]
      theorem TauCeti.LinearSpecialContraction.homotopy_comp_incl_assoc {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearSpecialContraction dM dN) {P : Type uP} [AddCommMonoid P] [Module R P] (f : P →ₗ[R] N) :
      @[simp]
      theorem TauCeti.LinearSpecialContraction.proj_comp_homotopy_assoc {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearSpecialContraction dM dN) {P : Type uP} [AddCommMonoid P] [Module R P] (f : P →ₗ[R] M) :
      @[simp]
      theorem TauCeti.LinearSpecialContraction.homotopy_comp_homotopy_assoc {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearSpecialContraction dM dN) {P : Type uP} [AddCommMonoid P] [Module R P] (f : P →ₗ[R] M) :

      Pointwise forms #

      The defining equations evaluated on elements.

      @[simp]
      theorem TauCeti.LinearSpecialContraction.homotopy_incl_apply {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearSpecialContraction dM dN) (y : N) :
      c.homotopy (c.incl y) = 0
      @[simp]
      theorem TauCeti.LinearSpecialContraction.proj_homotopy_apply {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearSpecialContraction dM dN) (x : M) :
      c.proj (c.homotopy x) = 0
      @[simp]
      theorem TauCeti.LinearSpecialContraction.homotopy_homotopy_apply {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearSpecialContraction dM dN) (x : M) :
      c.homotopy (c.homotopy x) = 0
      @[simp]

      In a special contraction, composing the homotopy with the differential and the homotopy again recovers the homotopy.

      @[simp]

      The homotopy-differential-homotopy identity with a further factor on the right.

      @[simp]
      theorem TauCeti.LinearSpecialContraction.homotopy_dM_homotopy_apply {R : Type uR} {M : Type uM} {N : Type uN} [Semiring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {dM : Module.End R M} {dN : Module.End R N} (c : LinearSpecialContraction dM dN) (x : M) :
      c.homotopy (dM (c.homotopy x)) = c.homotopy x

      The homotopy-differential-homotopy identity evaluated on an element.

      Every module with an endomorphism is a special contraction of itself, with zero homotopy. This pins the orientation of the contracting equation: it has 1 - incl ∘ proj on the right.

      Instances For
        @[simp]

        The identity contraction has the identity as inclusion.

        @[simp]

        The identity contraction has the identity as projection.

        @[simp]

        The identity contraction has zero homotopy.