Double coset formula for the degree-2 corestriction
ProvedgroupCohomology.Cores.map_subtype_cores_eq_finsum_cores_mapLet be a commutative ring, a finite group and a -linear representation of ; let be subgroups. A Cores.Transversal H is a normalised section of the left cosets: a map with for all and ; let be such a transversal for , and let denote the resulting degree- transfer , obtained from the cochain-level corestriction attached to by passage to cohomology. Let be a finite type and a family such that is a bijection of onto the double coset space , and assume for some . For each write for the subgroup of with underlying set (the subgroup (MulAut.conj (g i) • H).subgroupOf D), and suppose given: a normalised transversal of in ; a group homomorphism with in ; and a morphism of representations of from restricted along to restricted along the inclusion , whose underlying map is . Then for every , the restriction of along the inclusion (with the identity coefficient map on ) equals the finite sum over of the transfers from to of the images of under the degree- cohomology maps induced by .
This is the double coset (Mackey) formula expressing the restriction to of a corestriction from as a sum of corestrictions over the double cosets , here in degree and with the transfer normalised through an explicit transversal. It is used in the computation of Herbrand quotients, in the reduction of sums of corestrictions over a family of subgroups to sums over intersections.
import Mathlib import Definitions.Def_GroupCohomology_Corestriction2 set_option maxHeartbeats 4000000 set_option synthInstance.maxHeartbeats 400000 set_option backward.isDefEq.respectTransparency.types false set_option autoImplicit false open CategoryTheory groupCohomology open scoped Pointwise
theorem groupCohomology.Cores.map_subtype_cores_eq_finsum_cores_map
{k G : Type} [CommRing k] [Group G] [Finite G] (A : Rep.{0} k G)
(H D : Subgroup G) (τ : Cores.Transversal H)
{ι : Type} [Finite ι] (g : ι → G)
(hg : Function.Bijective fun i => DoubleCoset.mk D H (g i))
(hone : ∃ i₀, g i₀ = 1)
(τD : ∀ i, Cores.Transversal ((MulAut.conj (g i) • H).subgroupOf D))
(c : ∀ i, ↥((MulAut.conj (g i) • H).subgroupOf D) →* ↥H)
(hc : ∀ i (x : ↥((MulAut.conj (g i) • H).subgroupOf D)), ((c i x : ↥H) : G) = (g i)⁻¹ * ((x : ↥D) : G) * g i)
(T : ∀ i, Rep.res (c i) (Rep.res H.subtype A) ⟶ Rep.res ((MulAut.conj (g i) • H).subgroupOf D).subtype (Rep.res D.subtype A))
(hT : ∀ i (a : A), (T i).hom a = A.ρ (g i) a)
(y : groupCohomology (Rep.res H.subtype A) 2) :
(groupCohomology.map D.subtype (𝟙 (Rep.res D.subtype A)) 2).hom (Cores.cores A τ y) =
∑ᶠ i, Cores.cores (Rep.res D.subtype A) (τD i) ((groupCohomology.map (c i) (T i) 2).hom y) := by sorry