Documentation

TauCeti.RepresentationTheory.Homological.ContCohomology.LowDegree

The explicit low-degree complex of continuous cochains #

Continuous cochain cohomology of a topological group G acting on a topological module M is computed in low degrees by an explicit complex of plain functions carrying continuity as a predicate: C¹ is the additive subgroup of continuous elements of G → M and C² the subgroup of continuous elements of G × G → M. This file builds that complex, its differentials, its cocycles and coboundaries, and the three low-degree cohomology groups

H⁰(G, M) = M^G,   H¹(G, M) = Z¹/B¹,   H²(G, M) = Z²/B².

Main definitions #

Main statements #

Implementation notes #

The differentials and the cocycle identities follow the conventions of Mathlib's Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean:

(d⁰ m) g       = g • m - m,
(d¹ f) (g, h)  = g • f h - f (g * h) + f g,
(d² f) (g, h, j) = g • f (h, j) - f (g * h, j) + f (g, h * j) - f (g, h).

The cocycle conditions are spelled by Mathlib's unbundled predicates groupCohomology.IsCocycle₁ and groupCohomology.IsCocycle₂, and TauCeti.ContCohomology.d1_apply_eq_zero_iff and d2_apply_eq_zero_iff identify them with the vanishing of the differentials, so that Zⁱ = Cⁱ ⊓ ker dⁱ — which is how Z1 and Z2 are defined, taking their closure under the group operations from AddMonoidHom.ker — is stated in that spelling by mem_Z1_iff and mem_Z2_iff.

Mathlib's bundled groupCohomology.cocycles₁ and cocycles₂ are not reused here: Mathlib's low-degree group cohomology API states them for Rep k G with k and G in a single universe (its binders are {k G : Type u}), and the coefficient modules of a profinite group have to be allowed to live in the group's universe with a small coefficient ring such as ℤ. The unbundled IsCocycle₁/IsCocycle₂ predicates, which Mathlib provides for exactly this purpose, carry no such constraint and are consumed directly. The cochain groups themselves are Mathlib's continuousAddSubgroup.

The trivial-action results are the continuous analogues of Mathlib's groupCohomology.cocycles₁IsoOfIsTrivial, groupCohomology.coboundaries₁_eq_bot_of_isTrivial and groupCohomology.H1IsoOfIsTrivial, in the same order and with the same proof plan; they are restated for the unbundled classes because the Mathlib versions are stated for Rep k G.

Cochains are not normalised. The identities at the unit, f 1 = 0 in degree 1 and f (1, g) = f (1, 1), f (g, 1) = g • f (1, 1) in degree 2, are the lemmas map_one_of_mem_Z1, map_one_fst_of_mem_Z2 and map_one_snd_of_mem_Z2, never definitional conditions.

H1 and H2 divide Z¹ and Z² by the coboundaries viewed inside the cocycles, in the AddSubgroup.addSubgroupOf spelling, so that no proof term enters either quotient subgroup. Each carrier retains the hypotheses of TauCeti.ContCohomology.B1_le_Z1, respectively B2_le_Z2, through that inclusion theorem, so the subgroup divided out is always the whole of B¹, respectively B², and never the intersection B ⊓ Z that addSubgroupOf would cut out at a weaker generality; AddSubgroup.map_addSubgroupOf_eq_of_le turns those inclusions into that identity whenever a consumer needs it spelled out. The two carriers therefore sit in separate sections: H¹ needs G to be a monoid acting continuously, and H² needs a continuous multiplication on G besides, because d¹ has to preserve continuity for B² = d¹(C¹) to consist of cocycles.

References #

The continuous 1-cochains: the additive subgroup of continuous elements of G → M.

Continuity is a predicate on a plain function rather than a bundled C(G, M), matching the shape of Mathlib's groupCohomology.cocycles₁ : Submodule k (G → A).

Equations
Instances For

    The continuous 2-cochains: the continuous 1-cochains of the domain G × G.

    Equations
    Instances For
      @[simp]

      Membership in C¹ is continuity.

      @[simp]

      Membership in C² is continuity.

      The degree-2 cochains are the degree-1 cochains of G × G. This is how C² is defined, but the definition is not exposed outside this file, so the identity is recorded as a theorem for consumers that have to move between the two spellings.

      @[simp]

      Over a discrete group every 1-cochain is continuous.

      @[simp]

      Over a discrete group every 2-cochain is continuous: G × G is discrete too.

      Degree 0 needs nothing of G but a distributive scalar action.

      def TauCeti.ContCohomology.d0 (G : Type u) (M : Type v) [AddCommGroup M] [DistribSMul G M] :
      M →+ G → M

      The degree-0 differential (d⁰ m) g = g • m - m.

      Equations
      Instances For
        def TauCeti.ContCohomology.B1 (G : Type u) (M : Type v) [AddCommGroup M] [DistribSMul G M] :
        AddSubgroup (G → M)

        The 1-coboundaries B¹ = range d⁰, defined as an algebraic range. Under a continuous action, TauCeti.ContCohomology.B1_le_C1 shows that these cochains are continuous.

        Equations
        Instances For
          @[simp]
          theorem TauCeti.ContCohomology.d0_apply {G : Type u} {M : Type v} [AddCommGroup M] [DistribSMul G M] (m : M) (g : G) :
          (d0 G M) m g = g • m - m

          The defining formula for d⁰.

          theorem TauCeti.ContCohomology.map_d0_apply {G : Type u} {M : Type v} [AddCommGroup M] [DistribSMul G M] {N : Type w} [AddCommGroup N] [DistribSMul G N] (φ : M →+ N) (hφ : ∀ (g : G) (m : M), φ (g • m) = g • φ m) (m : M) (g : G) :
          φ ((d0 G M) m g) = (d0 G N) (φ m) g

          An equivariant additive map commutes with the degree-0 differential.

          @[simp]

          Membership in B¹ is Mathlib's unbundled 1-coboundary condition.

          theorem TauCeti.ContCohomology.d0_mem_B1 {G : Type u} {M : Type v} [AddCommGroup M] [DistribSMul G M] (m : M) :
          (d0 G M) m ∈ B1 G M

          The introduction rule for B¹: every d⁰-image is a 1-coboundary.

          This is deliberately not @[simp]: mem_B1_iff already rewrites the left-hand side to groupCohomology.IsCoboundary₁ (d0 G M m).

          theorem TauCeti.ContCohomology.d0_eq_zero_of_smul_eq_self {G : Type u} {M : Type v} [AddCommGroup M] [DistribSMul G M] (htriv : ∀ (g : G) (m : M), g • m = m) :
          d0 G M = 0

          For a trivial action d⁰ vanishes.

          theorem TauCeti.ContCohomology.B1_eq_bot_of_smul_eq_self {G : Type u} {M : Type v} [AddCommGroup M] [DistribSMul G M] (htriv : ∀ (g : G) (m : M), g • m = m) :
          B1 G M = ⊥

          For a trivial action there are no nonzero 1-coboundaries.

          The higher differentials and the cocycle conditions they cut out need a multiplication on G and no more, which is the level at which Mathlib states groupCohomology.IsCocycle₁ and IsCocycle₂.

          def TauCeti.ContCohomology.d1 (G : Type u) [Mul G] (M : Type v) [AddCommGroup M] [DistribSMul G M] :
          (G → M) →+ G × G → M

          The degree-1 differential (d¹ f) (g, h) = g • f h - f (g * h) + f g.

          Equations
          Instances For
            def TauCeti.ContCohomology.d2 (G : Type u) [Mul G] (M : Type v) [AddCommGroup M] [DistribSMul G M] :
            (G × G → M) →+ G × G × G → M

            The degree-2 differential (d² f) (g, h, j) = g • f (h, j) - f (g * h, j) + f (g, h * j) - f (g, h).

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem TauCeti.ContCohomology.d1_apply {G : Type u} [Mul G] {M : Type v} [AddCommGroup M] [DistribSMul G M] (f : G → M) (g h : G) :
              (d1 G M) f (g, h) = g • f h - f (g * h) + f g

              The defining formula for d¹.

              theorem TauCeti.ContCohomology.map_d1_apply {G : Type u} [Mul G] {M : Type v} [AddCommGroup M] [DistribSMul G M] {N : Type w} [AddCommGroup N] [DistribSMul G N] (φ : M →+ N) (hφ : ∀ (g : G) (m : M), φ (g • m) = g • φ m) (f : G → M) (g h : G) :
              φ ((d1 G M) f (g, h)) = (d1 G N) (fun (x : G) => φ (f x)) (g, h)

              An equivariant additive map commutes with the degree-1 differential.

              @[simp]
              theorem TauCeti.ContCohomology.d2_apply {G : Type u} [Mul G] {M : Type v} [AddCommGroup M] [DistribSMul G M] (f : G × G → M) (g h j : G) :
              (d2 G M) f (g, h, j) = g • f (h, j) - f (g * h, j) + f (g, h * j) - f (g, h)

              The defining formula for d².

              @[simp]
              theorem TauCeti.ContCohomology.d1_apply_eq_zero_iff {G : Type u} [Mul G] {M : Type v} [AddCommGroup M] [DistribSMul G M] {f : G → M} :

              A 1-cochain is killed by d¹ exactly when it is a 1-cocycle. Together with Mathlib's AddMonoidHom.mem_ker this is the description of ker d¹ that Z¹ is built from.

              @[simp]
              theorem TauCeti.ContCohomology.d2_apply_eq_zero_iff {G : Type u} [Mul G] {M : Type v} [AddCommGroup M] [DistribSMul G M] {f : G × G → M} :

              A 2-cochain is killed by d² exactly when it is a 2-cocycle.

              d ∘ d = 0 and degree 0 of the complex need the action to be associative and unital; only the degree-1 inverse formula further on needs inverses.

              theorem TauCeti.ContCohomology.d1_comp_d0 (G : Type u) [Monoid G] (M : Type v) [AddCommGroup M] [DistribMulAction G M] :
              (d1 G M).comp (d0 G M) = 0

              d¹ ∘ d⁰ = 0.

              theorem TauCeti.ContCohomology.d2_comp_d1 (G : Type u) [Monoid G] (M : Type v) [AddCommGroup M] [DistribMulAction G M] :
              (d2 G M).comp (d1 G M) = 0

              d² ∘ d¹ = 0.

              @[reducible, inline]

              Degree 0 of the explicit complex: the invariants M^G. Unlike H¹ and H² this is a subgroup and not a quotient. It is named because the low-degree corestriction, the connecting maps and the (0, q) and (q, 0) cup shapes all need a degree-0 carrier to be stated against. Membership is exposed by Mathlib's FixedPoints.mem_addSubgroup, which applies directly to this abbreviation.

              Equations
              Instances For
                @[simp]
                theorem TauCeti.ContCohomology.d1_comp_d0_apply {G : Type u} [Monoid G] {M : Type v} [AddCommGroup M] [DistribMulAction G M] (m : M) :
                (d1 G M) ((d0 G M) m) = 0

                d¹ ∘ d⁰ = 0, evaluated at a 0-cochain. This is the form a consumer of the complex uses; the composed form needs unfolding before it can rewrite.

                @[simp]
                theorem TauCeti.ContCohomology.d2_comp_d1_apply {G : Type u} [Monoid G] {M : Type v} [AddCommGroup M] [DistribMulAction G M] (f : G → M) :
                (d2 G M) ((d1 G M) f) = 0

                d² ∘ d¹ = 0, evaluated at a 1-cochain.

                theorem TauCeti.ContCohomology.H0_eq_top_of_smul_eq_self {G : Type u} [Monoid G] {M : Type v} [AddCommGroup M] [DistribMulAction G M] (htriv : ∀ (g : G) (m : M), g • m = m) :
                H0 G M = ⊤

                For a trivial action H⁰(G, M) = M.

                Degree zero is a subgroup of the coefficients rather than a quotient, so the pullback along a compatible pair needs neither inverses in the acting monoids nor a topology anywhere.

                def TauCeti.ContCohomology.explicitMap0 (G : Type u) [Monoid G] (M : Type v) [AddCommGroup M] [DistribMulAction G M] {H : Type u_1} [Monoid H] {N : Type u_2} [AddCommGroup N] [DistribMulAction H N] (φ : H →* G) (f : M →+ N) (hequiv : ∀ (h : H) (m : M), f (φ h • m) = h • f m) :
                ↥(H0 G M) →+ ↥(H0 H N)

                The compatible-pair pullback in degree zero. A monoid homomorphism φ : H →* G together with an additive map f : M →+ N satisfying f (φ h • m) = h • f m carries the G-invariants of M into the H-invariants of N. This is the degree-zero counterpart of TauCeti.ContCohomology.explicitMap1 and explicitMap2; unlike them it needs no topology at all, a degree-zero cochain being a single element rather than a function. Restriction and coefficient maps are its two named instances, by TauCeti.ContCohomology.explicitRes0_eq_explicitMap0 and TauCeti.ContCohomology.explicitCoeff0_eq_explicitMap0.

                Equations
                Instances For
                  @[simp]
                  theorem TauCeti.ContCohomology.coe_explicitMap0 (G : Type u) [Monoid G] (M : Type v) [AddCommGroup M] [DistribMulAction G M] {H : Type u_1} [Monoid H] {N : Type u_2} [AddCommGroup N] [DistribMulAction H N] (φ : H →* G) (f : M →+ N) (hequiv : ∀ (h : H) (m : M), f (φ h • m) = h • f m) (m : ↥(H0 G M)) :
                  ↑((explicitMap0 G M φ f hequiv) m) = f ↑m

                  The degree-zero compatible-pair pullback applies the coefficient map.

                  theorem TauCeti.ContCohomology.explicitMap0_bijective (G : Type u) [Monoid G] (M : Type v) [AddCommGroup M] [DistribMulAction G M] {H : Type u_1} [Monoid H] {N : Type u_2} [AddCommGroup N] [DistribMulAction H N] (φ : H →* G) (hφ : Function.Surjective ⇑φ) (f : M ≃+ N) (hequiv : ∀ (h : H) (m : M), f (φ h • m) = h • f m) :

                  The degree-zero pullback along an isomorphism is bijective: for a surjective φ : H →* G and an additive equivalence f : M ≃+ N with f (φ h • m) = h • f m, the H-invariants of N are exactly the images of the G-invariants of M.

                  @[simp]

                  Pullback along the identity compatible pair is the identity on degree-zero cohomology.

                  theorem TauCeti.ContCohomology.explicitMap0_comp (G : Type u) [Monoid G] (M : Type v) [AddCommGroup M] [DistribMulAction G M] {H : Type u_1} [Monoid H] {N : Type u_2} [AddCommGroup N] [DistribMulAction H N] {K : Type u_3} [Monoid K] {P : Type u_4} [AddCommGroup P] [DistribMulAction K P] (φ : H →* G) (f : M →+ N) (hequiv : ∀ (h : H) (m : M), f (φ h • m) = h • f m) (ψ : K →* H) (q : N →+ P) (hequivq : ∀ (k : K) (n : N), q (ψ k • n) = k • q n) :
                  explicitMap0 G M (φ.comp ψ) (q.comp f) ⋯ = (explicitMap0 H N ψ q hequivq).comp (explicitMap0 G M φ f hequiv)

                  Pullback in degree zero respects composition of compatible pairs: it is contravariant in the group homomorphism and covariant in the coefficient map. Compatibility of the composite pair is not a hypothesis: it is hequiv at ψ k followed by hequivq.

                  def TauCeti.ContCohomology.explicitCoeff0 (G : Type u) [Monoid G] (M : Type v) [AddCommGroup M] [DistribMulAction G M] {N : Type u_1} [AddCommGroup N] [DistribMulAction G N] (f : M →+[G] N) :
                  ↥(H0 G M) →+ ↥(H0 G N)

                  A coefficient homomorphism induces an additive map on degree-zero cohomology: the compatible-pair pullback along the identity of the acting monoid.

                  Equations
                  Instances For
                    @[simp]
                    theorem TauCeti.ContCohomology.coe_explicitCoeff0 (G : Type u) [Monoid G] (M : Type v) [AddCommGroup M] [DistribMulAction G M] {N : Type u_1} [AddCommGroup N] [DistribMulAction G N] (f : M →+[G] N) (m : ↥(H0 G M)) :
                    ↑((explicitCoeff0 G M f) m) = f ↑m

                    The degree-zero coefficient map applies the underlying coefficient homomorphism.

                    A coefficient map in degree zero is the compatible-pair pullback along the identity of the acting monoid.

                    @[simp]

                    The identity coefficient map induces the identity on degree-zero cohomology.

                    theorem TauCeti.ContCohomology.explicitCoeff0_comp (G : Type u) [Monoid G] (M : Type v) [AddCommGroup M] [DistribMulAction G M] {N : Type u_1} [AddCommGroup N] [DistribMulAction G N] {P : Type u_2} [AddCommGroup P] [DistribMulAction G P] (f : M →+[G] N) (q : N →+[G] P) :

                    Coefficient maps on degree-zero cohomology respect composition.

                    A bijective equivariant homomorphism of coefficients induces a bijection on degree-zero cohomology.

                    def TauCeti.ContCohomology.explicitRes0 (G : Type u) [Group G] (M : Type v) [AddCommGroup M] [DistribMulAction G M] (U : Subgroup G) :
                    ↥(H0 G M) →+ ↥(H0 (↥U) M)

                    Restriction in degree zero, the inclusion H⁰(G, M) → H⁰(U, M): the compatible-pair pullback along the inclusion of the subgroup, with the identity on the coefficients.

                    Equations
                    Instances For
                      @[simp]
                      theorem TauCeti.ContCohomology.coe_explicitRes0 (G : Type u) [Group G] (M : Type v) [AddCommGroup M] [DistribMulAction G M] (U : Subgroup G) (m : ↥(H0 G M)) :
                      ↑((explicitRes0 G M U) m) = ↑m

                      Restriction in degree zero does not change the underlying coefficient.

                      theorem TauCeti.ContCohomology.map_explicitRes0 (G : Type u) [Group G] (M : Type v) [AddCommGroup M] [DistribMulAction G M] (U : Subgroup G) {N : Type u_1} [AddCommGroup N] [DistribMulAction G N] (f : M →+[G] N) (m : ↥(H0 G M)) :
                      (fixedPointsMap f U) ((explicitRes0 G M U) m) = (explicitRes0 G N U) ((explicitCoeff0 G M f) m)

                      Restriction in degree zero is natural in equivariant coefficient homomorphisms.

                      Restriction in degree zero is the compatible-pair pullback along the inclusion of the subgroup with the identity on the coefficients.

                      The continuous 1-cocycles Z¹ = C¹ ⊓ ker d¹; the closure of the cocycle condition under the group operations is the one AddMonoidHom.ker already carries. TauCeti.ContCohomology.mem_Z1_iff restates membership with the kernel spelled by Mathlib's groupCohomology.IsCocycle₁.

                      Equations
                      Instances For

                        The continuous 2-cocycles Z² = C² ⊓ ker d².

                        Equations
                        Instances For

                          The 2-coboundaries B² = d¹(C¹), the image of the continuous 1-cochains. The restriction to C¹ is what the complex asks for: B² has to be the image of the cochains the complex is built from for Z²/B² to be the cohomology of the continuous complex, whereas the image of all of G → M is the coboundaries of the abstract complex.

                          Equations
                          Instances For
                            @[simp]

                            A cochain is a continuous 1-cocycle exactly when it is continuous and satisfies the 1-cocycle identity.

                            @[simp]

                            A cochain is a continuous 2-cocycle exactly when it is continuous and satisfies the 2-cocycle identity.

                            @[simp]
                            theorem TauCeti.ContCohomology.mem_B2_iff {G : Type u} [Mul G] [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribSMul G M] {f : G × G → M} :
                            f ∈ B2 G M ↔ ∃ (c : G → M), Continuous c ∧ (d1 G M) c = f

                            Membership in B² exhibits a continuous primitive.

                            theorem TauCeti.ContCohomology.mem_B2_iff' {G : Type u} [Mul G] [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribSMul G M] {f : G × G → M} :
                            f ∈ B2 G M ↔ ∃ (c : G → M), Continuous c ∧ ∀ (g h : G), g • c h - c (g * h) + c g = f (g, h)

                            Membership in B², with the primitive spelled out pointwise as in Mathlib's unbundled 2-coboundary condition. This is the degree-2 counterpart of TauCeti.ContCohomology.mem_B1_iff, which can be stated with groupCohomology.IsCoboundary₁ itself because B¹ carries no continuity restriction on the primitive.

                            A continuous 2-coboundary satisfies Mathlib's unbundled 2-coboundary condition.

                            Continuous 1-cocycles are continuous 1-cochains.

                            Continuous 2-cocycles are continuous 2-cochains.

                            The additive map sending a finite-group 2-cocycle f to the invariant ∑ x, f (x, g) obtained by summing it over its first argument.

                            Equations
                            Instances For
                              @[simp]
                              theorem TauCeti.ContCohomology.sumCocycle_val {G : Type u} [Group G] [TopologicalSpace G] [Fintype G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribMulAction G M] (g : G) (f : ↥(Z2 G M)) :
                              ↑((sumCocycle g) f) = ∑ x : G, ↑f (x, g)

                              The value of sumCocycle is the sum of the cocycle over its first argument.

                              theorem TauCeti.ContCohomology.map_one_of_mem_Z1 {G : Type u} [Monoid G] [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribMulAction G M] {f : G → M} (hf : f ∈ Z1 G M) :
                              f 1 = 0

                              A continuous 1-cocycle vanishes at 1. This is a lemma and not part of the definition of Z¹: cochains here are not normalised.

                              theorem TauCeti.ContCohomology.map_one_fst_of_mem_Z2 {G : Type u} [Monoid G] [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribMulAction G M] {f : G × G → M} (hf : f ∈ Z2 G M) (g : G) :
                              f (1, g) = f (1, 1)

                              A continuous 2-cocycle takes the same value at (1, g) as at (1, 1).

                              theorem TauCeti.ContCohomology.map_one_snd_of_mem_Z2 {G : Type u} [Monoid G] [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribMulAction G M] {f : G × G → M} (hf : f ∈ Z2 G M) (g : G) :
                              f (g, 1) = g • f (1, 1)

                              A continuous 2-cocycle satisfies f (g, 1) = g • f (1, 1).

                              theorem TauCeti.ContCohomology.map_inv_of_mem_Z1 {G : Type u} [Group G] [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribMulAction G M] {f : G → M} (hf : f ∈ Z1 G M) (g : G) :
                              g • f g⁻¹ = -f g

                              The inverse formula for a continuous 1-cocycle.

                              theorem TauCeti.ContCohomology.eq_of_mem_Z1_of_eqOn_of_topologicalClosure_closure_eq_top {G : Type u} [Group G] [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribMulAction G M] [IsTopologicalGroup G] [T1Space M] {c₁ c₂ : G → M} (h₁ : c₁ ∈ Z1 G M) (h₂ : c₂ ∈ Z1 G M) {s : Set G} (hs : (Subgroup.closure s).topologicalClosure = ⊤) (h : Set.EqOn c₁ c₂ s) :
                              c₁ = c₂

                              Continuous 1-cocycles are determined by their values on a topological generating set. Two continuous 1-cocycles with values in a T1 module that agree on a set s whose generated subgroup is dense agree everywhere.

                              Every 1-coboundary is continuous.

                              1-coboundaries are continuous 1-cochains.

                              d¹ preserves continuity already at the level at which d¹ itself is defined: a multiplication on G and a distributive scalar action, with no unit and no associativity.

                              d¹ preserves continuity.

                              2-coboundaries are continuous 2-cochains.

                              d ∘ d = 0 in the form the degree-1 quotient needs.

                              d ∘ d = 0 in the form the degree-2 quotient needs.

                              Degree 1 of the cohomology is formed exactly where TauCeti.ContCohomology.B1_le_Z1 holds: under a weaker action B¹ need not consist of cocycles and the quotient below would silently be by B¹ ⊓ Z¹.

                              @[reducible, inline]

                              The first continuous cohomology group H¹(G, M) = Z¹/B¹.

                              The denominator is B¹ viewed inside Z¹, in Mathlib's AddSubgroup.addSubgroupOf spelling, so that no proof term enters the quotient subgroup. The hypotheses in force are those of TauCeti.ContCohomology.B1_le_Z1, so the subgroup divided out really is the whole of B¹: AddSubgroup.map_addSubgroupOf_eq_of_le (B1_le_Z1 G M) says its image in G → M is B¹ itself.

                              H¹ is used as a bare additive group. It does inherit a quotient topology from the pointwise topology on G → M, and that topology is not the intended one: it need not be discrete. For trivial ZMod 2 coefficients on a product of infinitely many copies of C₂, no finite set of evaluations isolates the zero character. The comparison with canonical continuous cohomology is therefore stated against DiscreteH1.

                              Equations
                              Instances For
                                @[reducible, inline]

                                The class map in degree 1.

                                Equations
                                Instances For

                                  H¹(G, M) equipped with the discrete topology used by the comparison with canonical continuous cohomology.

                                  Equations
                                  Instances For
                                    @[instance_reducible]

                                    DiscreteH1 G M has the additive group structure of H¹(G, M).

                                    Equations
                                    • One or more equations did not get rendered due to their size.

                                    The identity as an additive equivalence, so that the quotient-class computations on representatives stay available after passing to the discrete object.

                                    Equations
                                    Instances For

                                      A continuous 1-cocycle has trivial class exactly when it is a coboundary.

                                      @[simp]
                                      theorem TauCeti.ContCohomology.H1pi_eq_iff {G : Type u} [Monoid G] [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribMulAction G M] {f f' : ↥(Z1 G M)} :
                                      ↑f = ↑f' ↔ ↑f - ↑f' ∈ B1 G M

                                      Two continuous 1-cocycles have the same class exactly when they differ by a coboundary.

                                      theorem TauCeti.ContCohomology.nsmul_H1_eq_zero {G : Type u} [Monoid G] [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribMulAction G M] [hcont : ContinuousSMul G M] {n : ℕ} (h : ∀ (m : M), n • m = 0) (x : H1 G M) :
                                      n • x = 0

                                      H¹ inherits the exponent of its coefficients. If n kills the coefficient module M, then it kills every class in H¹(G, M).

                                      Degree 2 needs a continuous multiplication on G besides, this being what makes d¹ preserve continuity and hence what TauCeti.ContCohomology.B2_le_Z2 — the inclusion the quotient below divides by — asks for.

                                      @[reducible, inline]
                                      abbrev TauCeti.ContCohomology.H2 (G : Type u) [Monoid G] [TopologicalSpace G] [hcontMul : ContinuousMul G] (M : Type v) [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribMulAction G M] [hcontSmul : ContinuousSMul G M] :
                                      Type (max u v)

                                      The second continuous cohomology group H²(G, M) = Z²/B².

                                      As for H¹ the denominator is B² viewed inside Z², and the hypotheses in force are those of TauCeti.ContCohomology.B2_le_Z2, so the subgroup divided out really is the whole of B². The inherited quotient topology is again not the intended one, and H² is used as a bare additive group.

                                      Equations
                                      Instances For
                                        @[reducible, inline]
                                        abbrev TauCeti.ContCohomology.H2pi (G : Type u) [Monoid G] [TopologicalSpace G] [hcontMul : ContinuousMul G] (M : Type v) [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribMulAction G M] [hcontSmul : ContinuousSMul G M] :
                                        ↥(Z2 G M) →+ H2 G M

                                        The class map in degree 2.

                                        Equations
                                        Instances For

                                          H²(G, M) equipped with the discrete topology used by the comparison with canonical continuous cohomology.

                                          Equations
                                          Instances For
                                            @[instance_reducible]

                                            DiscreteH2 G M has the additive group structure of H²(G, M).

                                            Equations
                                            • One or more equations did not get rendered due to their size.

                                            A continuous 2-cocycle has trivial class exactly when it is a coboundary.

                                            @[simp]
                                            theorem TauCeti.ContCohomology.H2pi_eq_iff {G : Type u} [Monoid G] [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribMulAction G M] {f f' : ↥(Z2 G M)} :
                                            ↑f = ↑f' ↔ ↑f - ↑f' ∈ B2 G M

                                            Two continuous 2-cocycles have the same class exactly when they differ by a coboundary.

                                            theorem TauCeti.ContCohomology.nsmul_H2_eq_zero {G : Type u} [Monoid G] [TopologicalSpace G] [hcontMul : ContinuousMul G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribMulAction G M] [hcontSmul : ContinuousSMul G M] {n : ℕ} (h : ∀ (m : M), n • m = 0) (x : H2 G M) :
                                            n • x = 0

                                            H² inherits the exponent of its coefficients. If n kills the coefficient module M, then it kills every class in H²(G, M).

                                            Identifying the cocycles with homomorphisms uses only that G acts trivially by a distributive scalar action; associativity of the action is needed only to form H¹.

                                            theorem TauCeti.ContCohomology.map_mul_of_smul_eq_self_of_mem_Z1 {G : Type u} [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribSMul G M] (htriv : ∀ (g : G) (m : M), g • m = m) [Mul G] {f : G → M} (hf : f ∈ Z1 G M) (a b : G) :
                                            f (a * b) = f a + f b

                                            For a trivial action a continuous 1-cocycle is additive.

                                            theorem TauCeti.ContCohomology.mem_Z1_of_smul_eq_self_of_continuousMonoidHom {G : Type u} [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribSMul G M] (htriv : ∀ (g : G) (m : M), g • m = m) [Monoid G] (φ : G →ₜ* Multiplicative M) :
                                            (fun (g : G) => Multiplicative.toAdd (φ g)) ∈ Z1 G M

                                            For a trivial action the pointwise Multiplicative.toAdd of a continuous homomorphism G → Multiplicative M is a continuous 1-cocycle.

                                            def TauCeti.ContCohomology.Z1EquivOfSmulEqSelf {G : Type u} [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribSMul G M] (htriv : ∀ (g : G) (m : M), g • m = m) [Monoid G] :

                                            For a trivial action the continuous 1-cocycles are exactly the continuous homomorphisms G → Multiplicative M. This is the continuous analogue of Mathlib's groupCohomology.cocycles₁IsoOfIsTrivial.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              @[simp]
                                              theorem TauCeti.ContCohomology.Z1EquivOfSmulEqSelf_apply {G : Type u} [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribSMul G M] (htriv : ∀ (g : G) (m : M), g • m = m) [Monoid G] (f : ↥(Z1 G M)) (g : G) :

                                              The homomorphism attached to a continuous 1-cocycle by Z1EquivOfSmulEqSelf is the cocycle itself.

                                              @[simp]

                                              The continuous 1-cocycle attached to a continuous homomorphism by Z1EquivOfSmulEqSelf is the homomorphism itself.

                                              For a trivial action H¹(G, M) is the group of continuous homomorphisms G →ₜ* Multiplicative M. This is the continuous analogue of Mathlib's groupCohomology.H1IsoOfIsTrivial.

                                              Continuity is what makes this useful rather than decorative: without it the right-hand side is the group of abstract homomorphisms, which for a profinite group is enormous.

                                              Equations
                                              Instances For
                                                @[simp]
                                                theorem TauCeti.ContCohomology.H1EquivOfSmulEqSelf_mk {G : Type u} [Monoid G] [TopologicalSpace G] {M : Type v} [AddCommGroup M] [TopologicalSpace M] [IsTopologicalAddGroup M] [DistribMulAction G M] [ContinuousSMul G M] (htriv : ∀ (g : G) (m : M), g • m = m) (f : ↥(Z1 G M)) :

                                                H1EquivOfSmulEqSelf sends the class of a continuous 1-cocycle to the homomorphism it is.

                                                @[simp]

                                                The class of the continuous 1-cocycle attached to a continuous homomorphism by H1EquivOfSmulEqSelf.

                                                A compact monoid has vanishing first continuous cohomology with trivial, discrete, torsion-free coefficients. In particular, this applies to trivial integer coefficients.