Definitions/Def_GroupCohomology_CochainCup.lean
Cup product of inhomogeneous cochains for group cohomology
Over a commutative ring k and a group G, for two k-linear representations A, B of G (objects of Rep k G) and natural numbers p, q, this module defines the cochain-level cup product on the carriers of Mathlib's inhomogeneous cochain complex, whose degree-n term is the module of all functions (\mathrm{Fin}\,n \to G) \to A. Two abbreviations record the splitting of a tuple \sigma : \mathrm{Fin}(p+q) \to G into its first p entries, cochainCupFst p q σ, and its last q entries, cochainCupSnd p q σ, via Fin.castAdd and Fin.natAdd. The main definition cochainCup A B p q is then a k-bilinear map
((\mathrm{Fin}\,p \to G) \to A) \times ((\mathrm{Fin}\,q \to G) \to B) \longrightarrow ((\mathrm{Fin}(p+q) \to G) \to (A \otimes B)),
with target the underlying module of the tensor product representation A \otimes B in Rep k G, sending f, g to the cochain
\sigma \mapsto f(\sigma_1,\dots,\sigma_p) \otimes_k \bigl(\sigma_1\cdots\sigma_p\bigr)\cdot g(\sigma_{p+1},\dots,\sigma_{p+q}),
where the group element acting on the second factor is the total partial product Fin.partialProd (cochainCupFst p q σ) (Fin.last p) of the first p entries, acting through the representation map B.ρ. Bilinearity in each argument comes from additivity and homogeneity of the tensor product together with linearity of \rho. The accompanying lemma cochainCup_apply records this defining formula for the value at a tuple \sigma. The module contains data only: no cocycle or Leibniz property is asserted here.
Relation to Mathlib
Mathlib has no cup product for group cohomology; this is the project's own definition, formulated directly on Mathlib's Rep k G and on the carriers (\mathrm{Fin}\,n \to G) \to A of Mathlib's inhomogeneous cochain complex, with values in Mathlib's monoidal tensor product of representations.
Where it is used
This cochain-level product is the basis for the cup product on group cohomology used in the Galois-cohomological input to the modularity argument, in particular for the cup product pairings of local Tate duality in degrees (1,1).
References
- K. S. Brown, Cohomology of Groups, Graduate Texts in Mathematics 87, Springer, 1982, Chapter V
- J. Neukirch, A. Schmidt and K. Wingberg, Cohomology of Number Fields, Grundlehren der mathematischen Wissenschaften 323, Springer, 2nd ed., 2008, Chapter I
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 31 lines
- 4 declarations
- used in the statements of 29 theorems and imported by 30 proofs
- imports 0 definition modules
Source file: Definitions/Def_GroupCohomology_CochainCup.lean
Imports
- only Mathlib
Declarations
- abbrev
groupCohomology.cochainCupFst - abbrev
groupCohomology.cochainCupSnd - def
groupCohomology.cochainCup - theorem
groupCohomology.cochainCup_apply
Source
import Mathlib set_option autoImplicit false universe u open CategoryTheory MonoidalCategory namespace groupCohomology variable {k G : Type u} [CommRing k] [Group G] (A B : Rep.{u} k G) (p q : ℕ) abbrev cochainCupFst (σ : Fin (p + q) → G) : Fin p → G := fun i => σ (Fin.castAdd q i) abbrev cochainCupSnd (σ : Fin (p + q) → G) : Fin q → G := fun j => σ (Fin.natAdd p j) noncomputable def cochainCup : ((Fin p → G) → A) →ₗ[k] ((Fin q → G) → B) →ₗ[k] ((Fin (p + q) → G) → (A ⊗ B : Rep k G)) := LinearMap.mk₂ k (fun f g σ => f (cochainCupFst p q σ) ⊗ₜ[k] B.ρ (Fin.partialProd (cochainCupFst p q σ) (Fin.last p)) (g (cochainCupSnd p q σ))) (fun f₁ f₂ g => funext fun σ => by simp only [Pi.add_apply, TensorProduct.add_tmul]) (fun c f g => funext fun σ => by simp only [Pi.smul_apply, TensorProduct.smul_tmul']) (fun f g₁ g₂ => funext fun σ => by simp only [Pi.add_apply, map_add, TensorProduct.tmul_add]) (fun c f g => funext fun σ => by simp only [Pi.smul_apply, map_smul, TensorProduct.tmul_smul]) theorem cochainCup_apply (f : (Fin p → G) → A) (g : (Fin q → G) → B) (σ : Fin (p + q) → G) : cochainCup A B p q f g σ = f (cochainCupFst p q σ) ⊗ₜ[k] B.ρ (Fin.partialProd (cochainCupFst p q σ) (Fin.last p)) (g (cochainCupSnd p q σ)) := rfl end groupCohomology
Statements phrased using this module (29)
- ℤ-freeness of the relation module carrier
Rep.moduleFree_relationCarrier0 below · depth 19 - Exactness of the canonical free presentation over ℤ
Rep.relationSeqInt_shortExact0 below · depth 19 - Cup product with a degree-zero class on the right
Rep.IsTateCupProduct.cup_mk_right_eq_tateMap31 below · depth 20 - Tate–Nakayama surjectivity via a Tate-acyclic presentation
Rep.IsTateCupProduct.exists_tateNakayamaPairing_right_eq_of_shortExact102 below · depth 20 - Existence of a cup product on Tate cohomology
Rep.exists_isTateCupProduct43 below · depth 20 - Restriction of a free representation is Tate-acyclic
Rep.isZero_tateCohomology_res_free10 below · depth 20 - Finite generation of the relation module over ℤ
Rep.moduleFinite_relationCarrier0 below · depth 20 - Tate–Nakayama pairing: surjectivity in the right variable
Rep.IsTateCupProduct.exists_tateNakayamaPairing_right_eq101 below · depth 21 - Connecting map and cup product in the second variable
groupCohomology.IsGradedCupProduct.cup_delta1 below · depth 21 - Connecting map commutes with cup product in the first variable
groupCohomology.IsGradedCupProduct.delta_cup1 below · depth 21 - Functoriality of graded cup products under (f,φ⊗ψ)
groupCohomology.IsGradedCupProduct.map_cup1 below · depth 21 - Uniqueness of a graded cup product on group cohomology
groupCohomology.IsGradedCupProduct.unique1 below · depth 21 - Leibniz rule for the cup product of inhomogeneous cochains
groupCohomology.d_cochainCup_apply0 below · depth 21 - Existence of a graded cup product on group cohomology
groupCohomology.exists_isGradedCupProduct1 below · depth 21 - Tate's theorem in cup-product form with free coefficients
Rep.IsTateCupProduct.bijective_cup_of_h1_h279 below · depth 22 - Associativity of the Tate cup product in all degrees
Rep.IsTateCupProduct.cup_assoc33 below · depth 22 - Graded commutativity of the Tate cup product
Rep.IsTateCupProduct.cup_comm33 below · depth 22 - Right surjectivity of the integral Tate duality pairing
Rep.IsTateCupProduct.exists_cupEv_dual_right_eq55 below · depth 22 - Right non-degeneracy of Tate–Nakayama pairing after δ
Rep.IsTateCupProduct.tateNakayamaPairing_right_eq_zero_of_shortExact95 below · depth 22 - Integral Tate duality via cup product, p+q=0
Rep.IsTateCupProduct.bijective_cupEv_dual_left54 below · depth 23 - Right non-degeneracy of the integral Tate pairing
Rep.IsTateCupProduct.cupEv_dual_right_eq_zero47 below · depth 23 - Cup product with a degree-0 Tate class is an induced map
Rep.IsTateCupProduct.cup_mk_left_eq_tateMap31 below · depth 23 - Cup product of invariant classes in degree (0,0)
Rep.IsTateCupProduct.cup_mk_mk32 below · depth 23 - Injectivity of Tate duality pairing in all degrees
Rep.IsTateCupProduct.injective_cupEv_characterDual40 below · depth 23 - Right non-degeneracy of the Tate–Nakayama pairing
Rep.IsTateCupProduct.tateNakayamaPairing_right_eq_zero94 below · depth 23 - Right non-degeneracy of the Tate pairing against ℚ/ℤ
Rep.IsTateCupProduct.cupEv_characterDual_eq_zero40 below · depth 24 - Left non-degeneracy of the Tate pairing in degrees (-1,0)
Rep.IsTateCupProduct.injective_cupEv_negOne_characterDual33 below · depth 24 - Right non-degeneracy of the Tate pairing in degrees (-1,0)
Rep.IsTateCupProduct.cupEv_characterDual_zero_eq_zero33 below · depth 25 - Cup product ̂ H⁻¹×̂ H⁰→̂ H⁻¹ on explicit classes
Rep.IsTateCupProduct.cup_neg_one_mk32 below · depth 25