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 #
TauCeti.ContCohomology.C1,TauCeti.ContCohomology.C2: the continuous cochains.TauCeti.ContCohomology.d0,d1,d2: the inhomogeneous differentials, as additive homomorphisms of the ambient function groups.TauCeti.ContCohomology.Z1,Z2: the continuous cocycles,Cⁱ ⊓ ker dⁱ.TauCeti.ContCohomology.B1,B2: the coboundaries,range d⁰and the imaged¹(C¹)of the continuous1-cochains.TauCeti.ContCohomology.H0,H1,H2, their class mapsH1pi,H2pi, and the discrete carriersDiscreteH1,DiscreteH2used by the comparison with canonical cohomology, together with their identificationsdiscreteH1Equiv,discreteH2EquivwithH1andH2.TauCeti.ContCohomology.sumCocycle: the additive map sending a finite-group2-cocycle to the invariant obtained by summing it over its first argument.TauCeti.ContCohomology.explicitMap0: the compatible-pair pullback on the explicit degree-zero carrier, withTauCeti.ContCohomology.explicitRes0andexplicitCoeff0its two named instances.
Main statements #
TauCeti.ContCohomology.d1_comp_d0andTauCeti.ContCohomology.d2_comp_d1:d ∘ d = 0.TauCeti.ContCohomology.B1_le_Z1andTauCeti.ContCohomology.B2_le_Z2: the form ofd ∘ d = 0that the two quotients need, coboundaries being continuous.TauCeti.ContCohomology.subsingleton_H1_of_subsingletonandsubsingleton_H2_of_subsingleton: a trivial group has vanishingH¹andH².TauCeti.ContCohomology.subsingleton_H1_of_subsingleton_coefficientsandsubsingleton_H2_of_subsingleton_coefficients: a zero coefficient group has vanishingH¹andH².TauCeti.ContCohomology.nsmul_H1_eq_zeroandnsmul_H2_eq_zero:H¹(G, M)andH²(G, M)are killed by whatever kills the coefficientsM.TauCeti.ContCohomology.H1EquivOfSmulEqSelf: for a trivial action,H¹(G, M)is the group of continuous homomorphismsG →ₜ* Multiplicative M. This is the statement that makesH¹of a profinite group computable, and it is false without continuity.
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 #
- J. Neukirch, A. Schmidt, K. Wingberg, Cohomology of Number Fields, 2nd ed., Ch. I, §2: the
cohomology of a profinite group computed by the inhomogeneous complex of continuous cochains,
which is the complex built here in degrees
≤ 2.
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
- TauCeti.ContCohomology.C2 G M = TauCeti.ContCohomology.C1 (G × G) M
Instances For
Membership in C¹ is continuity.
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.
Over a discrete group every 1-cochain is continuous.
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.
The degree-0 differential (d⁰ m) g = g • m - m.
Equations
Instances For
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
The defining formula for d⁰.
An equivariant additive map commutes with the degree-0 differential.
Membership in B¹ is Mathlib's unbundled 1-coboundary condition.
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).
For a trivial action d⁰ vanishes.
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₂.
The degree-1 differential (d¹ f) (g, h) = g • f h - f (g * h) + f g.
Equations
Instances For
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
An equivariant additive map commutes with the degree-1 differential.
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.
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.
d¹ ∘ d⁰ = 0.
d² ∘ d¹ = 0.
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
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.
d² ∘ d¹ = 0, evaluated at a 1-cochain.
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.
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
- TauCeti.ContCohomology.explicitMap0 G M φ f hequiv = { toFun := fun (m : ↥(TauCeti.ContCohomology.H0 G M)) => ⟨f ↑m, ⋯⟩, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The degree-zero compatible-pair pullback applies the coefficient map.
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.
Pullback along the identity compatible pair is the identity on degree-zero cohomology.
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.
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
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.
The identity coefficient map induces the identity on degree-zero cohomology.
Coefficient maps on degree-zero cohomology respect composition.
A bijective equivariant homomorphism of coefficients induces a bijection on degree-zero cohomology.
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
Restriction in degree zero does not change the underlying coefficient.
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
- TauCeti.ContCohomology.Z1 G M = TauCeti.ContCohomology.C1 G M ⊓ (TauCeti.ContCohomology.d1 G M).ker
Instances For
The continuous 2-cocycles Z² = C² ⊓ ker d².
Equations
- TauCeti.ContCohomology.Z2 G M = TauCeti.ContCohomology.C2 G M ⊓ (TauCeti.ContCohomology.d2 G M).ker
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
A cochain is a continuous 1-cocycle exactly when it is continuous and satisfies the
1-cocycle identity.
A cochain is a continuous 2-cocycle exactly when it is continuous and satisfies the
2-cocycle identity.
Membership in B² exhibits a continuous primitive.
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
- TauCeti.ContCohomology.sumCocycle g = { toFun := fun (f : ↥(TauCeti.ContCohomology.Z2 G M)) => ⟨∑ x : G, ↑f (x, g), ⋯⟩, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The value of sumCocycle is the sum of the cocycle over its first argument.
A continuous 1-cocycle vanishes at 1. This is a lemma and not part of the definition of
Z¹: cochains here are not normalised.
A continuous 2-cocycle takes the same value at (1, g) as at (1, 1).
A continuous 2-cocycle satisfies f (g, 1) = g • f (1, 1).
The inverse formula for a continuous 1-cocycle.
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¹.
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
- TauCeti.ContCohomology.H1 G M = (↥(TauCeti.ContCohomology.Z1 G M) ⧸ (TauCeti.ContCohomology.B1 G M).addSubgroupOf (TauCeti.ContCohomology.Z1 G M))
Instances For
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
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.
DiscreteH1 G M carries the discrete topology.
Equations
The topology on DiscreteH1 G M is discrete.
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.
Two continuous 1-cocycles have the same class exactly when they differ by a coboundary.
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.
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
- TauCeti.ContCohomology.H2 G M = (↥(TauCeti.ContCohomology.Z2 G M) ⧸ (TauCeti.ContCohomology.B2 G M).addSubgroupOf (TauCeti.ContCohomology.Z2 G M))
Instances For
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
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.
DiscreteH2 G M carries the discrete topology.
Equations
The topology on DiscreteH2 G M is discrete.
The degree-2 counterpart of TauCeti.ContCohomology.discreteH1Equiv.
Equations
Instances For
A continuous 2-cocycle has trivial class exactly when it is a coboundary.
Two continuous 2-cocycles have the same class exactly when they differ by a coboundary.
H² inherits the exponent of its coefficients. If n kills the coefficient module M,
then it kills every class in H²(G, M).
A trivial group has vanishing H¹.
A trivial group has vanishing H².
A zero coefficient group has vanishing H¹.
A zero coefficient group has vanishing H².
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¹.
For a trivial action a continuous 1-cocycle is additive.
For a trivial action the pointwise Multiplicative.toAdd of a continuous homomorphism
G → Multiplicative M is a continuous 1-cocycle.
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
The homomorphism attached to a continuous 1-cocycle by Z1EquivOfSmulEqSelf is the cocycle
itself.
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
H1EquivOfSmulEqSelf sends the class of a continuous 1-cocycle to the homomorphism it
is.
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.