This is a dated API survey explaining why the formalization uses the explicit low-degree model in
GQ2/Cohomology.lean rather than silently identifying it with Mathlib's abstract homogeneous
continuous cohomology. First written against the pinned Mathlib revision (ec410d2,
2026-06-12); rewritten 2026-07-24 because the upstream API changed out from under the pin.
Mathlib.Algebra.Category.ContinuousCohomology.Basic (215 lines; upstreamed from
rmhi/ctsToDiscrete) defines continuous cohomology of a topological group with
topological-module coefficients:
continuousCohomology (n : ℕ) : Action (TopModuleCat R) G ⥤ TopModuleCat R:= homogeneousCochains R G ⋙ HomologicalComplex.homologyFunctor _ _ n.- Cochains are homogeneous:
G-invariants of the nested-coinduction complexM → C(G,M) → C(G,C(G,M)) → ⋯. - Degree 0 is its only computed degree:
continuousCohomologyZeroIso : continuousCohomology R G 0 ≅ invariants R G.
The pin is stale here; do not take the section above as a description of current Mathlib.
- Redefined and moved (PR #41144, merged 2026-07-02, Hill–Yang–Xie): continuous cohomology
now lives at
Mathlib/RepresentationTheory/Homological/ContCohomology/Basic.lean, built overTopRep k Gvia a recursive coinduced resolution (TopRep.resolution,TopRep.homogeneousCochains,continuousCohomology n A). The pin'sAlgebra.Category.ContinuousCohomologynames (continuousCohomologyZeroIso,kerHomogeneousCochainsZeroEquiv, …) no longer exist upstream; the degree-0 iso is nowContCohomology.zeroIsoinContCohomology/LowDegree.lean(still the only computed degree). - Functoriality landed (PR #41309, 2026-07-03):
ContCohomology/Functoriality.leangivescochainsMap/cocyclesMap/mapin both the group and the coefficients — the abstract counterpart of ourContCoh.H0/H1/H2comap. - In flight right now: #41539 (functoriality refactor via
continuousCohomologyFunctor+resNatTrans; active the week of 2026-07-20) and #41545 (inflation maps, stacked on #41539). The API surface is still moving — which is exactly why we are not bumping Mathlib now (owner decision, 2026-07-24). - Cup products exist sorry-free in the FLT staging tree, not in Mathlib:
FLT/Mathlib/RepresentationTheory/Homological/ContCohomology/CupProduct.lean(Edison Xie, 582 lines) — all degrees(m, n)on the homogeneous model, from an intertwining pairing with jointly continuous uncurry (automatic for discrete coefficients), with the Leibniz rule and cocycle/coboundary descent; its companion stagingBasic.leanaddscohomologyIsoQuot(a kernel-mod-coboundary model). Not yet PR'd to Mathlib. - The discrete-group comparison with
groupCohomologyis reported sorry-free in the staging repormhi/ctsToDiscrete(commits of 2026-07-10), also not yet PR'd. - Still absent everywhere upstream (Mathlib, FLT staging, ctsToDiscrete): the concrete inhomogeneous low-degree description (explicit 1-/2-cocycle identities), corestriction / transfer / the Evens norm, and long exact sequences (the module TODO is unchanged).
The classical homogeneous ↔ inhomogeneous cochain iso, continuous version, in low degree:
- Degree 1. Inhomogeneous continuous
1-cochainsc : C(G, M)with cocycle conditionc(g·h) = c(g) + g • c(h)correspond to homogeneous1-cochainsf : G² → M(aG-invariant element ofC(G, C(G, M))) viaf(g₀, g₁) = g₀ • c(g₀⁻¹ g₁), inversec(g) = f(1, g). - Degree 2.
c : C(G², M)with the2-cocycle identity corresponds to homogeneousf : G³ → Mviaf(g₀,g₁,g₂) = g₀ • c(g₀⁻¹g₁, g₁⁻¹g₂).
One must check these are mutually inverse continuous maps and commute with the differentials
(a chain isomorphism), which then gives the homology iso Hⁿ_inhom ≅ continuousCohomology n for
n ≤ 2. This remains a genuine formalization task, not a mechanical port; the FLT staging
cohomologyIsoQuot (cohomology ≅ ker d / im d on homogeneous cochains) does the
quotient-presentation half of the work on the abstract side.
GQ2/Cohomology.lean— explicit inhomogeneous continuous cochainsH⁰/H¹/H²over the elementary[DistribMulAction G M] [ContinuousSMul G M]interface (Serre GC I §2.2 conventions). This is the concrete low-degree model Mathlib's TODO asks for.GQ2/CupProduct.lean— cup products(1,1),(0,2),(2,0)on that model (with graded-commutativity in char 2 inGQ2/CupSymmetry.lean), and degree-1/2 corestriction and the Evens norm inGQ2/EvensKahn.lean/GQ2/Corestriction.lean— none of which exist upstream in any form.
The earlier experimental CtsCohBridge.lean adapter was removed during cleanup because no theorem
in the final proof consumed it. The absence of that file is deliberate: the formalization does not
claim a proved equivalence between its explicit ContCoh.H¹/H² and Mathlib's abstract functor.
- Wait for the upstream stack to stabilize (#41539, #41545, the FLT cup product reaching Mathlib), then bump.
- Build the degree-1 and degree-2 continuous homogeneous↔inhomogeneous chain isos above against
the new
TopRepAPI. - Obtain
ContCoh.H1 ≅ continuousCohomology 1 (TopRep.of _)and likewiseH2. - Transport the
CupProduct.leancups ontoContinuousCohomology.cupalong these isomorphisms (compatibility statement), and upstream the inhomogeneous layer + corestriction/Evens norm — coordinating with the stack's authors (Richard Hill, Edison Xie, Andrew Yang).
Until then, the B-axiom statements that need continuous cohomology are phrased against our
explicit ContCoh.Hⁱ. The classical comparison is part of the intended mathematical
interpretation, but it is not represented as a theorem in the present repository. Planning
context: docs/angdinata-review-plan.md §2.