Documentation

TauCeti.Algebra.Homology.AInfinity.Module.Right.Cohomology

Cohomology of a right A-infinity module #

The unary operation of a right A∞ module squares to zero. This file packages its cycles, boundaries, and total cohomology as modules over the ground ring. The quotient interface is stated using cycle representatives so morphisms can descend their linear parts without exposing the implementation of the quotient.

The higher module operations are not used to define the underlying cohomology module. Their arity-two identity will subsequently equip it with a right action of the cohomology algebra.

Main definitions #

References #

noncomputable def TauCeti.AInfinityRightModule.differential {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) :

The differential of a right A∞ module, namely its unary operation.

Equations
Instances For
    @[simp]
    theorem TauCeti.AInfinityRightModule.differential_apply {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) (x : M) :
    MM.differential x = ((MM.m 1) x) fun (i : Fin (1 - 1)) => i.elim0

    The module differential evaluates to the unary operation.

    @[simp]

    The unary operation of a right A∞ module squares to zero.

    noncomputable def TauCeti.AInfinityRightModule.cycles {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) :

    The cycles of a right A∞ module are the kernel of its unary operation.

    Equations
    Instances For
      theorem TauCeti.AInfinityRightModule.cycles_def {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) :

      The cycles are the kernel of the module differential.

      @[simp]
      theorem TauCeti.AInfinityRightModule.mem_cycles {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) {x : M} :

      An element is a cycle exactly when its unary operation vanishes.

      noncomputable def TauCeti.AInfinityRightModule.boundaries {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) :

      The boundaries of a right A∞ module are the range of its unary operation.

      Equations
      Instances For

        The boundaries are the range of the module differential.

        @[simp]
        theorem TauCeti.AInfinityRightModule.mem_boundaries {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) {x : M} :
        x ∈ MM.boundaries ↔ ∃ (y : M), MM.differential y = x

        An element is a boundary exactly when it is the unary operation of some element.

        Every boundary is a cycle.

        The differential of every element is a boundary.

        theorem TauCeti.AInfinityRightModule.differential_mem_cycles {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) (x : M) :

        The differential of every element is a cycle.

        theorem TauCeti.AInfinityRightModule.m_one_mem_boundaries {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) (x : M) :
        (((MM.m 1) x) fun (i : Fin (1 - 1)) => i.elim0) ∈ MM.boundaries

        The unary operation of every element is a boundary.

        theorem TauCeti.AInfinityRightModule.m_one_mem_cycles {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) (x : M) :
        (((MM.m 1) x) fun (i : Fin (1 - 1)) => i.elim0) ∈ MM.cycles

        The unary operation of every element is a cycle.

        noncomputable def TauCeti.AInfinityRightModule.boundariesInCycles {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) :

        The boundaries, viewed as a submodule of the cycles.

        Equations
        Instances For
          @[simp]
          theorem TauCeti.AInfinityRightModule.mem_boundariesInCycles {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) {x : ↥MM.cycles} :

          A cycle lies in boundariesInCycles exactly when its underlying element is a boundary.

          @[reducible, inline]
          abbrev TauCeti.AInfinityRightModule.Cohomology {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) :
          Type uM

          The total cohomology module of a right A∞ module: unary cycles modulo unary boundaries.

          Equations
          Instances For
            noncomputable def TauCeti.AInfinityRightModule.cohomologyClassLinearMap {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) :

            The linear quotient map from cycles to module cohomology.

            Equations
            Instances For
              noncomputable def TauCeti.AInfinityRightModule.cohomologyClass {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) {x : M} (hx : x ∈ MM.cycles) :

              The cohomology class represented by a module cycle.

              Equations
              Instances For
                theorem TauCeti.AInfinityRightModule.cohomologyClass_eq_mk {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) {x : M} (hx : x ∈ MM.cycles) :

                A cohomology class is the quotient class of its cycle representative.

                @[simp]

                Zero represents zero in module cohomology.

                @[simp]
                theorem TauCeti.AInfinityRightModule.cohomologyClass_add {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) {x y : M} (hx : x ∈ MM.cycles) (hy : y ∈ MM.cycles) :

                The class of a sum of module cycles is the sum of their classes.

                @[simp]
                theorem TauCeti.AInfinityRightModule.cohomologyClass_smul {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) (r : R) {x : M} (hx : x ∈ MM.cycles) :

                The class of a scalar multiple of a module cycle is the scalar multiple of its class.

                theorem TauCeti.AInfinityRightModule.exists_cohomologyClass_eq {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) (c : MM.Cohomology) :
                ∃ (x : M) (hx : x ∈ MM.cycles), MM.cohomologyClass hx = c

                Every module cohomology class has a cycle representative.

                @[simp]
                theorem TauCeti.AInfinityRightModule.cohomologyClass_eq_iff {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) {x y : M} (hx : x ∈ MM.cycles) (hy : y ∈ MM.cycles) :

                Two module cycles represent the same cohomology class exactly when their difference is a boundary.

                @[simp]
                theorem TauCeti.AInfinityRightModule.cohomologyClass_eq_zero_iff {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) {x : M} (hx : x ∈ MM.cycles) :

                A module cycle represents zero in cohomology exactly when it is a boundary.

                @[simp]
                theorem TauCeti.AInfinityRightModule.cohomologyClass_m_one_eq_zero {R : Type uR} {A : Type uA} [CommRing R] [AddCommGroup A] [Module R A] {AA : AInfinityAlgebra R A} {M : Type uM} [AddCommGroup M] [Module R M] (MM : AInfinityRightModule AA M) (x : M) :

                The cohomology class of a unary operation is zero.