Cohomology classes of full order and restriction to subgroups
ProvedgroupCohomology.natCard_eq_and_span_map_eq_top_of_addOrderOf_eq_natCardLet be a finite group, let be a representation of over , and let be a class whose additive order equals . Assume, for every subgroup (equipped with a finite type structure), that is finite and , where denotes the restriction of along the inclusion . Assume further given, for each subgroup , a -linear map such that for all one has , where is the map induced on degree- cohomology by the inclusion together with the identity of . The conclusion is twofold: first, for every subgroup ; second, for every subgroup the -submodule of spanned by the single element is the whole module.
This is the standard passage from a degree-two class of full order, an upper bound on the orders of the of all subgroups, and a corestriction satisfying , to the statement that is cyclic of order generated by the restriction of that class — the cohomological shape of a fundamental class. It is used in the construction of fundamental classes for the idele class group, in particular in M4aHerbrand.exists_fundamentalClass_ideleClassGroup and its -group variant.
import Mathlib set_option maxHeartbeats 4000000 set_option synthInstance.maxHeartbeats 400000 set_option backward.isDefEq.respectTransparency.types false set_option autoImplicit false open CategoryTheory
theorem groupCohomology.natCard_eq_and_span_map_eq_top_of_addOrderOf_eq_natCard
{G : Type} [Group G] [Finite G]
(X : Rep ℤ G) (u : groupCohomology X 2) (hu : addOrderOf u = Nat.card G)
(h5 : ∀ (S : Subgroup G) [Fintype S], Finite (groupCohomology (Rep.res S.subtype X) 2) ∧
Nat.card (groupCohomology (Rep.res S.subtype X) 2) ≤ Fintype.card S)
(cor : ∀ S : Subgroup G, groupCohomology (Rep.res S.subtype X) 2 →ₗ[ℤ] groupCohomology X 2)
(hcor : ∀ (S : Subgroup G) (x : groupCohomology X 2),
cor S ((groupCohomology.map S.subtype (𝟙 (Rep.res S.subtype X)) 2).hom x) = S.index • x) :
(∀ (S : Subgroup G) [Fintype S], Nat.card (groupCohomology (Rep.res S.subtype X) 2) = Fintype.card S) ∧
(∀ S : Subgroup G, Submodule.span ℤ
{(groupCohomology.map S.subtype (𝟙 (Rep.res S.subtype X)) 2).hom u} = ⊤) := by sorry