Definitions/Def_GroupCohomology_ContinuousUnramifiedLevel.lean
Level-constant cochains with ramification restricted outside
Throughout, G is a group, r\colon G\to\operatorname{Gal}(\overline{\mathbb Q}/\mathbb Q) a homomorphism into the \mathbb Q-algebra automorphisms of AlgebraicClosure ℚ, and S a finite set of rational primes. The two basic predicates are IsLevelConstantSr₁ and IsLevelConstantSr₂: a function f on G (resp. on G\times G) has the property when there is an intermediate field F of \overline{\mathbb Q}/\mathbb Q with F.IsUnramifiedOutside S — that is, F/\mathbb Q is finite and for every prime q\notin S and every valuation subring of \overline{\mathbb Q} lying over q the associated inertia subgroup over \mathbb Q lies in the pointwise fixing subgroup of F — such that f(gs)=f(g) for all g,s with r(s) fixing F pointwise (resp. f(gs,g's')=f(g,g') whenever r(s) and r(s') both fix F). Taking r=\mathrm{id} recovers IsLevelConstantS₁/IsLevelConstantS₂ exactly; dropping the unramifiedness clause and keeping only finiteness of F gives IsLevelConstant₁/IsLevelConstant₂, so each S-version implies the corresponding unrestricted one. Further lemmas record stability under addition (using F\sqcup F'), constancy, post-composition with any map of target types, enlargement of S, and pullback along a homomorphism \iota\colon G'\to G with r replaced by r\circ\iota.
For M : Rep k G over a commutative ring k these predicates cut out submodules levelCochainsSr₁ and levelCochainsSr₂ of the degree-one and degree-two inhomogeneous cochains, contained in levelCochains₁/levelCochains₂. From them: levelCocyclesSr₁, the level-constant 1-cocycles; continuousH1Sr, their image in H^1(G,M) under H1π; levelCocyclesSr₂, the intersection of cocycles₂ M with levelCochainsSr₂; levelCoboundariesSr₂, the image of levelCochainsSr₁ under d_{12}; and continuousH2Sr, the quotient of levelCocyclesSr₂ by the part of levelCoboundariesSr₂ lying inside it, with projection continuousH2Srπ (surjective, with the expected vanishing criterion). The comparison maps continuousH2SrToContinuousH2 and, for S\subseteq S', continuousH1Sr_mono, levelCocyclesSr₂_mono and continuousH2SrOfLE relate these to the unrestricted continuous cohomology and to larger ramification sets.
Relation to Mathlib
The underlying low-degree cochain objects (cocycles₁, cocycles₂, d₁₂, H1, H1π, H2, Rep) and IntermediateField.fixingSubgroup are Mathlib's; the level-constancy predicates, the restricted-ramification cochain submodules and the resulting H^1 and H^2 carriers are the project's own, Mathlib having no continuous cohomology of profinite Galois groups.
Where it is used
These carriers are the ambient cohomology groups in which the project's Selmer groups with prescribed local conditions and restricted ramification live, both globally and, after composing r with the inclusion of a decomposition group, locally; the maps in S and to the unrestricted groups supply the comparisons needed when the ramification set is enlarged.
References
- H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1–154
- J. Neukirch, A. Schmidt and K. Wingberg, Cohomology of Number Fields, Grundlehren der mathematischen Wissenschaften 323, Springer, 2008
- J.-P. Serre, Galois Cohomology, Springer, 1997
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 218 lines
- 46 declarations
- used in the statements of 127 theorems and imported by 127 proofs
- imports 1 definition modules
Source file: Definitions/Def_GroupCohomology_ContinuousUnramifiedLevel.lean
Declarations
- def
groupCohomology.IsLevelConstantSr₁ - def
groupCohomology.IsLevelConstantSr₂ - lemma
groupCohomology.isLevelConstantSr₁_id_iff - lemma
groupCohomology.isLevelConstantSr₂_id_iff - lemma
groupCohomology.IsLevelConstantSr₁.isLevelConstant₁ - lemma
groupCohomology.IsLevelConstantSr₂.isLevelConstant₂ - lemma
groupCohomology.IsLevelConstantSr₁.add - lemma
groupCohomology.IsLevelConstantSr₂.add - lemma
groupCohomology.isLevelConstantSr₁_const - lemma
groupCohomology.isLevelConstantSr₂_const - lemma
groupCohomology.IsLevelConstantSr₁.comp - lemma
groupCohomology.IsLevelConstantSr₂.comp - lemma
groupCohomology.IsLevelConstantSr₁.mono - lemma
groupCohomology.IsLevelConstantSr₂.mono - lemma
groupCohomology.IsLevelConstantSr₁.of_comp - lemma
groupCohomology.IsLevelConstantSr₂.of_comp - def
groupCohomology.levelCochainsSr₁ - def
groupCohomology.levelCochainsSr₂ - lemma
groupCohomology.mem_levelCochainsSr₁_iff - lemma
groupCohomology.mem_levelCochainsSr₂_iff - lemma
groupCohomology.levelCochainsSr₁_le_levelCochains₁ - lemma
groupCohomology.levelCochainsSr₂_le_levelCochains₂ - def
groupCohomology.levelCocyclesSr₁ - lemma
groupCohomology.mem_levelCocyclesSr₁_iff - def
groupCohomology.continuousH1Sr - lemma
groupCohomology.mem_continuousH1Sr_iff - lemma
groupCohomology.H1π_mem_continuousH1Sr - lemma
groupCohomology.continuousH1Sr_le_continuousH1 - lemma
groupCohomology.continuousH1Sr_mono - def
groupCohomology.levelCocyclesSr₂ - def
groupCohomology.levelCoboundariesSr₂ - lemma
groupCohomology.mem_levelCocyclesSr₂_iff - lemma
groupCohomology.mem_levelCoboundariesSr₂_iff - lemma
groupCohomology.levelCocyclesSr₂_le_levelCocycles₂ - lemma
groupCohomology.levelCocyclesSr₂_le_cocycles₂ - lemma
groupCohomology.levelCoboundariesSr₂_le_levelCoboundaries₂ - lemma
groupCohomology.levelCoboundariesSr₂_le_coboundaries₂ - lemma
groupCohomology.levelCocyclesSr₂_mono - abbrev
groupCohomology.continuousH2Sr - abbrev
groupCohomology.continuousH2Srπ - lemma
groupCohomology.continuousH2Srπ_eq_zero_iff - lemma
groupCohomology.continuousH2Srπ_surjective - def
groupCohomology.levelCocyclesSr₂ToLevelCocycles₂ - def
groupCohomology.continuousH2SrToContinuousH2 - lemma
groupCohomology.continuousH2SrToContinuousH2_mk - def
groupCohomology.continuousH2SrOfLE
Source
import Mathlib import Definitions.Def_GroupCohomology_ContinuousUnramified set_option autoImplicit false noncomputable section open CategoryTheory namespace groupCohomology universe u variable {G : Type u} [Group G] (r : G →* (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ)) (S : Finset Nat.Primes) def IsLevelConstantSr₁ {X : Type*} (f : G → X) : Prop := ∃ F : IntermediateField ℚ (AlgebraicClosure ℚ), F.IsUnramifiedOutside S ∧ ∀ g s : G, r s ∈ F.fixingSubgroup → f (g * s) = f g def IsLevelConstantSr₂ {X : Type*} (f : G × G → X) : Prop := ∃ F : IntermediateField ℚ (AlgebraicClosure ℚ), F.IsUnramifiedOutside S ∧ ∀ g g' s s' : G, r s ∈ F.fixingSubgroup → r s' ∈ F.fixingSubgroup → f (g * s, g' * s') = f (g, g') lemma isLevelConstantSr₁_id_iff {X : Type*} (f : (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) → X) : IsLevelConstantSr₁ (MonoidHom.id _) S f ↔ IsLevelConstantS₁ S f := Iff.rfl lemma isLevelConstantSr₂_id_iff {X : Type*} (f : (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) × (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) → X) : IsLevelConstantSr₂ (MonoidHom.id _) S f ↔ IsLevelConstantS₂ S f := Iff.rfl variable {r S} lemma IsLevelConstantSr₁.isLevelConstant₁ {X : Type*} {f : G → X} (hf : IsLevelConstantSr₁ r S f) : IsLevelConstant₁ r f := by obtain ⟨F, hF, h⟩ := hf exact ⟨F, hF.1, h⟩ lemma IsLevelConstantSr₂.isLevelConstant₂ {X : Type*} {f : G × G → X} (hf : IsLevelConstantSr₂ r S f) : IsLevelConstant₂ r f := by obtain ⟨F, hF, h⟩ := hf exact ⟨F, hF.1, h⟩ lemma IsLevelConstantSr₁.add {X : Type*} [Add X] {f f' : G → X} (hf : IsLevelConstantSr₁ r S f) (hf' : IsLevelConstantSr₁ r S f') : IsLevelConstantSr₁ r S (f + f') := by obtain ⟨F, hF, h⟩ := hf obtain ⟨F', hF', h'⟩ := hf' refine ⟨F ⊔ F', hF.sup hF', fun g s hs => ?_⟩ simp only [Pi.add_apply] rw [h g s (IntermediateField.fixingSubgroup_antitone le_sup_left hs), h' g s (IntermediateField.fixingSubgroup_antitone le_sup_right hs)] lemma IsLevelConstantSr₂.add {X : Type*} [Add X] {f f' : G × G → X} (hf : IsLevelConstantSr₂ r S f) (hf' : IsLevelConstantSr₂ r S f') : IsLevelConstantSr₂ r S (f + f') := by obtain ⟨F, hF, h⟩ := hf obtain ⟨F', hF', h'⟩ := hf' refine ⟨F ⊔ F', hF.sup hF', fun g g' s s' hs hs' => ?_⟩ simp only [Pi.add_apply] rw [h g g' s s' (IntermediateField.fixingSubgroup_antitone le_sup_left hs) (IntermediateField.fixingSubgroup_antitone le_sup_left hs'), h' g g' s s' (IntermediateField.fixingSubgroup_antitone le_sup_right hs) (IntermediateField.fixingSubgroup_antitone le_sup_right hs')] variable (r S) in lemma isLevelConstantSr₁_const {X : Type*} (x : X) : IsLevelConstantSr₁ r S (fun _ : G => x) := ⟨⊥, IntermediateField.isUnramifiedOutside_bot S, fun _ _ _ => rfl⟩ variable (r S) in lemma isLevelConstantSr₂_const {X : Type*} (x : X) : IsLevelConstantSr₂ r S (fun _ : G × G => x) := ⟨⊥, IntermediateField.isUnramifiedOutside_bot S, fun _ _ _ _ _ _ => rfl⟩ lemma IsLevelConstantSr₁.comp {X Y : Type*} {f : G → X} (hf : IsLevelConstantSr₁ r S f) (φ : X → Y) : IsLevelConstantSr₁ r S (φ ∘ f) := by obtain ⟨F, hF, h⟩ := hf exact ⟨F, hF, fun g s hs => by simp only [Function.comp_apply, h g s hs]⟩ lemma IsLevelConstantSr₂.comp {X Y : Type*} {f : G × G → X} (hf : IsLevelConstantSr₂ r S f) (φ : X → Y) : IsLevelConstantSr₂ r S (φ ∘ f) := by obtain ⟨F, hF, h⟩ := hf exact ⟨F, hF, fun g g' s s' hs hs' => by simp only [Function.comp_apply, h g g' s s' hs hs']⟩ lemma IsLevelConstantSr₁.mono {S' : Finset Nat.Primes} (h : S ⊆ S') {X : Type*} {f : G → X} (hf : IsLevelConstantSr₁ r S f) : IsLevelConstantSr₁ r S' f := by obtain ⟨F, hF, hc⟩ := hf exact ⟨F, hF.mono h, hc⟩ lemma IsLevelConstantSr₂.mono {S' : Finset Nat.Primes} (h : S ⊆ S') {X : Type*} {f : G × G → X} (hf : IsLevelConstantSr₂ r S f) : IsLevelConstantSr₂ r S' f := by obtain ⟨F, hF, hc⟩ := hf exact ⟨F, hF.mono h, hc⟩ lemma IsLevelConstantSr₁.of_comp {G' : Type*} [Group G'] (ι : G' →* G) {X : Type*} {f : G → X} (hf : IsLevelConstantSr₁ r S f) : IsLevelConstantSr₁ (r.comp ι) S (f ∘ ι) := by obtain ⟨F, hF, h⟩ := hf exact ⟨F, hF, fun g s hs => by simp only [Function.comp_apply, map_mul, h (ι g) (ι s) hs]⟩ lemma IsLevelConstantSr₂.of_comp {G' : Type*} [Group G'] (ι : G' →* G) {X : Type*} {f : G × G → X} (hf : IsLevelConstantSr₂ r S f) : IsLevelConstantSr₂ (r.comp ι) S (f ∘ Prod.map ι ι) := by obtain ⟨F, hF, h⟩ := hf exact ⟨F, hF, fun g g' s s' hs hs' => by simp only [Function.comp_apply, Prod.map_apply, map_mul, h _ _ _ _ hs hs']⟩ section carriers variable (r S) {k : Type u} [CommRing k] (M : Rep k G) def levelCochainsSr₁ : Submodule k (G → M) where carrier := {f | IsLevelConstantSr₁ r S f} add_mem' hf hf' := hf.add hf' zero_mem' := isLevelConstantSr₁_const r S (0 : M) smul_mem' c _ hf := hf.comp (c • ·) def levelCochainsSr₂ : Submodule k (G × G → M) where carrier := {f | IsLevelConstantSr₂ r S f} add_mem' hf hf' := hf.add hf' zero_mem' := isLevelConstantSr₂_const r S (0 : M) smul_mem' c _ hf := hf.comp (c • ·) lemma mem_levelCochainsSr₁_iff (f : G → M) : f ∈ levelCochainsSr₁ r S M ↔ IsLevelConstantSr₁ r S f := Iff.rfl lemma mem_levelCochainsSr₂_iff (f : G × G → M) : f ∈ levelCochainsSr₂ r S M ↔ IsLevelConstantSr₂ r S f := Iff.rfl lemma levelCochainsSr₁_le_levelCochains₁ : levelCochainsSr₁ r S M ≤ levelCochains₁ r M := fun _ hf => hf.isLevelConstant₁ lemma levelCochainsSr₂_le_levelCochains₂ : levelCochainsSr₂ r S M ≤ levelCochains₂ r M := fun _ hf => hf.isLevelConstant₂ def levelCocyclesSr₁ : Submodule k (cocycles₁ M) := (levelCochainsSr₁ r S M).comap (cocycles₁ M).subtype lemma mem_levelCocyclesSr₁_iff (c : cocycles₁ M) : c ∈ levelCocyclesSr₁ r S M ↔ IsLevelConstantSr₁ r S c := Iff.rfl def continuousH1Sr : Submodule k (H1 M) := (levelCocyclesSr₁ r S M).map (H1π M).hom lemma mem_continuousH1Sr_iff (x : H1 M) : x ∈ continuousH1Sr r S M ↔ ∃ c : cocycles₁ M, IsLevelConstantSr₁ r S c ∧ (H1π M).hom c = x := by simp only [continuousH1Sr, Submodule.mem_map, mem_levelCocyclesSr₁_iff] lemma H1π_mem_continuousH1Sr {c : cocycles₁ M} (hc : IsLevelConstantSr₁ r S c) : (H1π M).hom c ∈ continuousH1Sr r S M := (mem_continuousH1Sr_iff r S M _).2 ⟨c, hc, rfl⟩ lemma continuousH1Sr_le_continuousH1 : continuousH1Sr r S M ≤ continuousH1 r M := by rintro x hx obtain ⟨c, hc, rfl⟩ := (mem_continuousH1Sr_iff r S M x).1 hx exact H1π_mem_continuousH1 r M hc.isLevelConstant₁ variable {S} in lemma continuousH1Sr_mono {S' : Finset Nat.Primes} (h : S ⊆ S') : continuousH1Sr r S M ≤ continuousH1Sr r S' M := by rintro x hx obtain ⟨c, hc, rfl⟩ := (mem_continuousH1Sr_iff r S M x).1 hx exact (mem_continuousH1Sr_iff r S' M _).2 ⟨c, hc.mono h, rfl⟩ def levelCocyclesSr₂ : Submodule k (G × G → M) := cocycles₂ M ⊓ levelCochainsSr₂ r S M def levelCoboundariesSr₂ : Submodule k (G × G → M) := (levelCochainsSr₁ r S M).map (d₁₂ M).hom lemma mem_levelCocyclesSr₂_iff (f : G × G → M) : f ∈ levelCocyclesSr₂ r S M ↔ f ∈ cocycles₂ M ∧ IsLevelConstantSr₂ r S f := Iff.rfl lemma mem_levelCoboundariesSr₂_iff (f : G × G → M) : f ∈ levelCoboundariesSr₂ r S M ↔ ∃ x : G → M, IsLevelConstantSr₁ r S x ∧ (d₁₂ M).hom x = f := by simp only [levelCoboundariesSr₂, Submodule.mem_map, mem_levelCochainsSr₁_iff] lemma levelCocyclesSr₂_le_levelCocycles₂ : levelCocyclesSr₂ r S M ≤ levelCocycles₂ r M := fun _ h => ⟨h.1, h.2.isLevelConstant₂⟩ lemma levelCocyclesSr₂_le_cocycles₂ : levelCocyclesSr₂ r S M ≤ cocycles₂ M := fun _ h => h.1 lemma levelCoboundariesSr₂_le_levelCoboundaries₂ : levelCoboundariesSr₂ r S M ≤ levelCoboundaries₂ r M := by rintro f hf obtain ⟨x, hx, rfl⟩ := (mem_levelCoboundariesSr₂_iff r S M f).1 hf exact (mem_levelCoboundaries₂_iff r M _).2 ⟨x, hx.isLevelConstant₁, rfl⟩ lemma levelCoboundariesSr₂_le_coboundaries₂ : levelCoboundariesSr₂ r S M ≤ coboundaries₂ M := (levelCoboundariesSr₂_le_levelCoboundaries₂ r S M).trans (levelCoboundaries₂_le_coboundaries₂ r M) variable {S} in lemma levelCocyclesSr₂_mono {S' : Finset Nat.Primes} (h : S ⊆ S') : levelCocyclesSr₂ r S M ≤ levelCocyclesSr₂ r S' M := fun _ hf => ⟨hf.1, hf.2.mono h⟩ abbrev continuousH2Sr : Type u := ↥(levelCocyclesSr₂ r S M) ⧸ (levelCoboundariesSr₂ r S M).comap (levelCocyclesSr₂ r S M).subtype abbrev continuousH2Srπ : ↥(levelCocyclesSr₂ r S M) →ₗ[k] continuousH2Sr r S M := Submodule.mkQ _ lemma continuousH2Srπ_eq_zero_iff (f : ↥(levelCocyclesSr₂ r S M)) : continuousH2Srπ r S M f = 0 ↔ (f : G × G → M) ∈ levelCoboundariesSr₂ r S M := by simp [Submodule.Quotient.mk_eq_zero, Submodule.mem_comap] lemma continuousH2Srπ_surjective : Function.Surjective (continuousH2Srπ r S M) := Submodule.mkQ_surjective _ def levelCocyclesSr₂ToLevelCocycles₂ : ↥(levelCocyclesSr₂ r S M) →ₗ[k] ↥(levelCocycles₂ r M) := Submodule.inclusion (levelCocyclesSr₂_le_levelCocycles₂ r S M) def continuousH2SrToContinuousH2 : continuousH2Sr r S M →ₗ[k] continuousH2 r M := Submodule.mapQ _ _ (levelCocyclesSr₂ToLevelCocycles₂ r S M) (fun c hc => by simp only [Submodule.mem_comap, Submodule.subtype_apply] at hc ⊢ exact levelCoboundariesSr₂_le_levelCoboundaries₂ r S M hc) lemma continuousH2SrToContinuousH2_mk (c : ↥(levelCocyclesSr₂ r S M)) : continuousH2SrToContinuousH2 r S M (continuousH2Srπ r S M c) = continuousH2π r M (levelCocyclesSr₂ToLevelCocycles₂ r S M c) := rfl variable {S} in def continuousH2SrOfLE {S' : Finset Nat.Primes} (h : S ⊆ S') : continuousH2Sr r S M →ₗ[k] continuousH2Sr r S' M := Submodule.mapQ _ _ (Submodule.inclusion (levelCocyclesSr₂_mono r M h)) (fun c hc => by simp only [Submodule.mem_comap, Submodule.subtype_apply] at hc ⊢ obtain ⟨x, hx, hxc⟩ := (mem_levelCoboundariesSr₂_iff r S M _).1 hc exact (mem_levelCoboundariesSr₂_iff r S' M _).2 ⟨x, hx.mono h, hxc⟩) end carriers end groupCohomology end
Statements phrased using this module (127)
- Tate's global Euler characteristic for a coinduced S-level module
groupCohomology.finiteDimensional_continuousH2S_coind_and_finrank_eq562 below · depth 17 - Mod p cyclotomic character trivial when ζₚ ∈ L
ExtCitation.cycloChar_eq_one_of_mem_fixingSubgroup_of_isPrimitiveRoot_mem0 below · depth 18 - Twisting by χ⁻¹ then by χ recovers a representation
Rep.nonempty_twist_inv_twist_iso0 below · depth 18 - Tate's Euler-characteristic formula for N(1) at level S
groupCohomology.finiteDimensional_and_finrank_continuousH1Sr_twist_cycloChar_eq_of_trivial553 below · depth 18 - Mackey decomposition of archimedean invariants of a coinduced module
groupCohomology.finrank_invariants_archimedean_coind2 below · depth 18 - Archimedean sum splits between N and N(-1)
groupCohomology.finsum_finrank_invariants_twist_inv_add_eq_index_mul1 below · depth 18 - Shapiro's lemma for H¹ with ramification restricted to S
groupCohomology.nonempty_continuousH1S_coind_equiv_continuousH1Sr4 below · depth 18 - Degree-two Shapiro isomorphism for S-level cohomology
groupCohomology.nonempty_continuousH2S_coind_equiv_continuousH2Sr4 below · depth 18 - Isomorphic representations give equivalent S-restricted H¹, H²
groupCohomology.nonempty_continuousHSr_linearEquiv_of_iso0 below · depth 18 - Equivariant mod-p S-unit rank formula with coefficients
NumberField.LevelArith.finrank_invariants_unitsModP_tensor_add_finrank_invariants_eq48 below · depth 19 - Normality of the level field under conjugation-stability
NumberField.LevelArith.normal_levelField_of_isNormalLevel0 below · depth 19 - Twisting a representation is tensoring with a twisted trivial line
Rep.nonempty_twist_iso_trivial_twist_tensor0 below · depth 19 - Kummer rank formula for H¹_S(K, N(1))
groupCohomology.finiteDimensional_and_finrank_continuousH1Sr_twist_eq_unitsModP_add_sClassTorsionP33 below · depth 19 - Dimension of H²_S(K,N(1)) via S-class group and places
groupCohomology.finiteDimensional_and_finrank_continuousH2Sr_twist_add_eq_sClassTorsionP_add_sum_placesRep492 below · depth 19 - Infinite places of a Galois extension as a G-set
NumberField.InfPlaceDecomp.exists_equiv_sigma_quotient_decomp_above0 below · depth 20 - Archimedean places of a level as Γ_L-orbits
NumberField.LevelArith.exists_placesAbove_inl_equiv_infinitePlace0 below · depth 20 - Places of the level above q as primes of 𝒪_{L'}
NumberField.LevelArith.exists_placesAbove_inr_embedding_heightOneSpectrum11 below · depth 20 - Invariant S-level classes have the dimension of Selmer tensor invariants
NumberField.LevelArith.finiteDimensional_and_finrank_continuousH1Sr_res_inf_eq_finrank_invariants_selmerRep_tensor23 below · depth 20 - Additivity of twisted invariants in the S-Selmer sequence
NumberField.LevelArith.finrank_invariants_selmerRep_tensor_eq_unitsModP_add_sClassTorsionP7 below · depth 20 - Order of Gal(L/K) as a relative index
NumberField.LevelArith.natCard_levelGal_eq_relIndex0 below · depth 20 - p-torsion of the S-units is 𝔽ₚ(χ)
NumberField.LevelArith.nonempty_inflLevel_repTorsionP_sUnitsRep_iso_twist_cycloChar0 below · depth 20 - Places above S as a disjoint union of coset spaces
NumberField.PlaceTransport.exists_equiv_placesAbove_sigma_quotient_decomp_above2 below · depth 20 - Equivariant mod-p S-unit rank identity with coefficients
NumberField.SUnits.finrank_invariants_repModP_sUnitsRep_tensor_add28 below · depth 20 - Finite primes of subfields of ℚ̄ lift to valuation subrings
NumberField.exists_valuationSubring_algebraicClosure_forall_mem_iff_valuation_le_one4 below · depth 20 - S-level H¹ via restriction to an index-prime-to-p subgroup
groupCohomology.exists_continuousH1Sr_linearEquiv_inf_of_isTrivial_of_coprime4 below · depth 20 - Cyclic cokernel for S-localisation of H²(G_{F,S},ℤ/p)
groupCohomology.exists_forall_eq_res_continuousH2Sr_trivial_add_smul_of_exists_sq_eq_neg_one533 below · depth 20 - Equivariant splitting of S-ramified H² with μₚ coefficients
groupCohomology.finiteDimensional_and_nonempty_cyclotomicQuotientH2Rep_biprod_trivial_iso489 below · depth 20 - H²_S with cyclotomic twist as tensor invariants
groupCohomology.nonempty_continuousH2Sr_twist_linearEquiv_invariants_cyclotomicQuotientH2Rep_tensor1 below · depth 20 - Embedding of H¹_S into the S-class group
NumberField.LevelArith.exists_continuousH1Sr_sUnitsMaxRep_linearMap_sClassGroupRep_injective17 below · depth 21 - Equivariant embedding of H¹_S into the S-class group
NumberField.LevelArith.exists_continuousH1Sr_sUnitsMaxRep_linearMap_sClassGroupRep_injective_natural17 below · depth 21 - Capitulation of p-power-torsion ideal classes in a Galois S-level
NumberField.LevelArith.exists_le_isUnramifiedOutside_isGalois_forall_map_isPrincipal8 below · depth 21 - Primes above q as Γ_L-orbits on Γ/D_q
NumberField.LevelArith.exists_placesAbove_inr_equiv_primesOver12 below · depth 21 - Transporting p-torsion of the S-class group to the level representation
NumberField.LevelArith.exists_restrict_and_torsionBy_sClassGroupRep_linearEquiv_sClassTorsionP1 below · depth 21 - Kummer isomorphism for the mod p Selmer module, twisted
NumberField.LevelArith.exists_selmerRep_linearEquiv_levelConstantHom16 below · depth 21 - Finiteness of the mod p S-unit, class and Selmer modules
NumberField.LevelArith.finiteDimensional_unitsModP_sClass_selmerRep2 below · depth 21 - A[p] ≅ A/pA as ℤ/p-representations when p ∤ |G|
NumberField.LevelArith.nonempty_repTorsionP_iso_repModP1 below · depth 21 - S-prime classes: Galois-stable part equals the closure
NumberField.LevelArith.sPrimeClasses_eq_closure0 below · depth 21 - Galois stability of the maximal S-unit group
NumberField.LevelArith.sUnitsMaxStable_eq_sUnitsMax0 below · depth 21 - Galois-stable Selmer subgroup equals the Selmer group
NumberField.LevelArith.selmerStable_eq_selmer0 below · depth 21 - Additivity of Γ-invariants of (-⊗ N) along a split short exact sequence
Rep.finrank_invariants_tensor_eq_add_of_shortExact_of_trivial_of_coprime1 below · depth 21 - Pinned relative Shapiro isomorphism in degree two
groupCohomology.exists_continuousH2Sr_cyclotomicQuotientRep_equiv_pin4 below · depth 21 - Trivial finite-dimensional coefficients factor out of H²_S
groupCohomology.exists_continuousH2Sr_trivial_tensor_linearEquiv0 below · depth 21 - Corank at most one for S-localisation of H²(Γ_F,mathcal O_S^×)[p]
groupCohomology.exists_forall_eq_res_continuousH2Sr_galoisSUnitsRep_add_zsmul_of_sq_eq_neg_one527 below · depth 21 - Natural Kummer–Brauer exact sequence for H²_S with μₚ
groupCohomology.exists_kummerBrauer_maps_continuousH2Sr_cyclotomic_natural470 below · depth 21 - Kummer theory in degree two for Galois S-units
groupCohomology.exists_levelCocyclesSr2_sub_pow_mem_levelCoboundariesSr2_of_zsmul_mem4 below · depth 21 - Degree-two restriction onto G-invariant S-level classes is surjective
groupCohomology.exists_mem_levelCocyclesSr2_res_sub_mem_levelCoboundariesSr2_of_isUnit_index3 below · depth 21 - H¹ of a trivial module as equivariant level-constant homomorphisms
groupCohomology.nonempty_continuousH1Sr_inf_linearEquiv_eqLevelConstantHom0 below · depth 21 - Invariants of C ⊗ N as equivariant level-constant maps
groupCohomology.nonempty_invariants_tensor_linearEquiv_eqLevelConstantHom0 below · depth 21 - Every continuous ℤ/p-character is a Kummer character
NumberField.LevelArith.exists_kummerChar_eq_of_continuous4 below · depth 22 - Inertia above w ∤ p fixes p-th roots
NumberField.LevelArith.inertia_apply_eq_of_dvd_valuation0 below · depth 22 - Conjugation rule for the Kummer character: cyclotomic twist
NumberField.LevelArith.kummerChar_conj_eq_cycloChar_mul0 below · depth 22 - Vanishing of the Kummer character detects p-th powers
NumberField.LevelArith.kummerChar_eq_zero_iff0 below · depth 22 - Level-constancy of the Kummer character via divisibility of valuations
NumberField.LevelArith.kummerChar_isLevelConstant_iff_forall_dvd_valuation7 below · depth 22 - Kummer character: bi-additive and trivial on Gal(ℚ̄/F(y))
NumberField.LevelArith.kummerChar_mul_and_add_and_level0 below · depth 22 - Mod p torsion of the S-units is 𝔽ₚ(1)
NumberField.LevelArith.nonempty_repTorsionP_sUnitsMaxRep_iso_trivial_twist_cycloChar2 below · depth 22 - Smoothness and p-divisibility of the S-unit module
NumberField.LevelArith.sUnitsMaxRep_smooth_and_divisible2 below · depth 22 - Hasse principle for p-torsion of H²(Γ_F,mathcal O_S^×)
groupCohomology.continuousH2Sr_galoisSUnitsRep_eq_zero_of_forall_res_extArithIndex_eq_zero270 below · depth 22 - Pinned degree-two Shapiro isomorphism for ℤ/p(1)
groupCohomology.exists_continuousH2Sr_cyclotomicQuotientRep_equiv_apply_eq3 below · depth 22 - p-power-torsion level-constant 3-cocycles on S-units are coboundaries
groupCohomology.exists_isLevelConstant_d_two_three_eq_of_pPow_smul_sUnitsMax486 below · depth 22 - Kummer maps δ,ι on S-level cohomology
groupCohomology.exists_kummer_connecting_maps_continuousHSr_of_smooth_of_divisible4 below · depth 22 - Local invariants of the p-primary S-unit H²
groupCohomology.exists_natural_localInv_pPrimary_continuousH2Sr_sUnitsMax464 below · depth 22 - Local invariants on p-torsion of H²_S, with naturality
groupCohomology.exists_natural_localInv_torsionBy_continuousH2Sr_sUnitsMax465 below · depth 22 - Torsion of classes in the S-level continuous H²
groupCohomology.exists_nsmul_eq_zero_continuousH2Sr4 below · depth 22 - Product of local H² p-torsion bounded via global S-units
groupCohomology.finprod_natCard_torsionBy_continuousH2_le_mul_natCard_torsionBy_continuousH2Sr_galoisSUnitsRep_of_sq_eq_neg_one513 below · depth 22 - Kummer exactness in degrees 2–3 for S-level cohomology
groupCohomology.kummer_degreeThree_exactness_continuousH2Sr_of_smooth_of_divisible4 below · depth 22 - Naturality of Brauer local invariants under automorphisms of L
NumberField.LevelArith.apply_eq_apply_of_isBrauerLocalInv_of_algEquiv125 below · depth 23 - Cochain identities descend along inflation to a layer
NumberField.LevelArith.d_eq_zero_and_d_eq_pow_smul_of_level_presentation_sUnitsMaxRep0 below · depth 23 - Existence of a local invariant map on p-primary H²_S
NumberField.LevelArith.exists_isBrauerLocalInv152 below · depth 23 - Inflating a layer coboundary to a level-constant 2-cochain
NumberField.LevelArith.exists_isLevelConstant_d_two_three_eq_of_level_coboundary_sUnitsMaxRep0 below · depth 23 - Inflating a layer cochain to a larger layer
NumberField.LevelArith.exists_level_comp_eq_of_le_sUnitsMaxRep0 below · depth 23 - Presenting a level-constant cochain at a finite Galois level
NumberField.LevelArith.exists_level_eq_comp_of_isLevelConstant_sUnitsMaxRep5 below · depth 23 - Inflation kills p-power-torsion 3-cocycles of S-units
NumberField.LevelArith.exists_level_inhomogeneousCochains_d_two_three_eq_of_pow_smul480 below · depth 23 - Inertia above w moves a p-th root when p ∤ v_w(x)
NumberField.LevelArith.exists_valuationSubring_inertia_apply_ne_of_not_dvd_valuation3 below · depth 23 - Reciprocity for p-primary S-ramified classes over L
NumberField.LevelArith.finsum_apply_eq_zero_of_isBrauerLocalInv403 below · depth 23 - Injectivity of any Brauer local-invariant map on p-primary classes
NumberField.LevelArith.injective_of_isBrauerLocalInv280 below · depth 23 - Realisation of sum-zero p-primary families of local invariants
NumberField.LevelArith.mem_range_of_isBrauerLocalInv_of_finsum_eq_zero422 below · depth 23 - Change of S-unit coefficients is bijective on H²
groupCohomology.bijective_continuousH2SrMap_sUnitsMaxRep_galoisSUnitsRep3 below · depth 23 - Hasse principle for 2-torsion classes split by F(i)
groupCohomology.continuousH2Sr_galoisSUnitsRep_eq_zero_of_res_adjoin_sqrt_neg_one_eq_zero266 below · depth 23 - Hasse principle for the p-primary part of H² of S-units
groupCohomology.eq_zero_of_forall_continuousH2Map_primeLocal_eq_zero_pPrimary_continuousH2Sr_sUnitsMax258 below · depth 23 - Lower bound for p-torsion in H²(G_{F,S},𝒪_S^×)
groupCohomology.pow_natCard_places_le_mul_natCard_torsionBy_continuousH2Sr_galoisSUnitsRep_of_sq_eq_neg_one475 below · depth 23 - Inflation kills p-primary S-unit classes with vanishing idèle image
NumberField.LevelArith.continuousH2SrInflation_H2pi_eq_zero_of_map_principalIdele_eq_zero_of_pow_smul_eq_zero162 below · depth 24 - Uniqueness of the Brauer local invariant at a place
NumberField.LevelArith.eq_of_hasBrauerLocalInvAt146 below · depth 24 - Invariants of the maximal S-units are the S-units of F
NumberField.LevelArith.exists_addEquiv_quotientToInvariants_sUnitsMaxRep_sUnitsRep7 below · depth 24 - Conjugating an inflated level 2-cocycle by σ
NumberField.LevelArith.exists_cocyclesTwo_conj_transport_continuousH2SrInflation_eq4 below · depth 24 - Brauer class with prescribed invariants from an idèle class
NumberField.LevelArith.exists_forall_hasBrauerLocalInvAt_of_ideleClass_hasLocalInv175 below · depth 24 - Existence of a local Brauer invariant at a place above S
NumberField.LevelArith.exists_hasBrauerLocalInvAt118 below · depth 24 - One layer presentation for a p-primary H²_S class
NumberField.LevelArith.exists_layer_presentation_and_pow_smul_eq_zero18 below · depth 24 - Existence of a Sylow intermediate field for a finite layer
NumberField.LevelArith.exists_le_le_isPGroup_quotient_not_dvd_finrank1 below · depth 24 - Prime-to-p descent of degree-3 S-unit coboundaries
NumberField.LevelArith.exists_level_d_two_three_eq_of_restrict_coboundary_of_not_dvd3 below · depth 24 - Realising p-primary sum-zero families as local invariants of idèle classes
NumberField.LevelArith.exists_level_ideleClass_hasLocalInv_of_finsum_eq_zero385 below · depth 24 - Killing a degree-three S-unit cocycle at a deeper level
NumberField.LevelArith.exists_level_inhomogeneousCochains_d_two_three_eq_of_pow_smul_of_isPGroup479 below · depth 24 - Invariant maximal S-units as the S-units of F
NumberField.LevelArith.exists_monoidHom_levelGal_exists_hom_res_quotientToInvariants_sUnitsRep_bijective8 below · depth 24 - Restriction of degree-3 S-unit cochain data to a larger base
NumberField.LevelArith.exists_three_cochain_val_eq_of_le_sUnitsMaxRep1 below · depth 24 - Additivity of Brauer local invariants at a place
NumberField.LevelArith.hasBrauerLocalInvAt_add144 below · depth 24 - Local w-components of σ-transported H² classes agree
NumberField.LevelArith.map_prG_conj_transport_eq_map_prG_map_psi1 below · depth 24 - Local component at w ∤ S of an S-unit class vanishes
NumberField.LevelArith.map_prG_map_principalIdele_eq_zero_of_forall_comap_ne22 below · depth 24 - Unramifiedness off S of the layer F_L over L
NumberField.LevelArith.ramificationIdx_eq_one_of_isUnramifiedOutside_of_under_not_mem_placesOverPrimesFinset6 below · depth 24 - Inflations of two S-level 2-cocycles with equal values agree
groupCohomology.continuousH2SrInflation_H2pi_eq_of_le0 below · depth 24 - Hasse principle for p-primary S-unit classes H²_S(Γ_L, E_S)
groupCohomology.eq_zero_of_forall_continuousH2Map_primeLocal_archimedean_eq_zero_pPrimary_continuousH2Sr_sUnitsMax262 below · depth 24 - Every S-ramified continuous H² class is an inflation
groupCohomology.exists_continuousH2SrInflation_eq3 below · depth 24 - Torsion classes in H²_S inflate from torsion at a finite level
groupCohomology.exists_continuousH2SrInflation_eq_of_nsmul_eq_zero6 below · depth 24 - Inflated p-primary class vanishes after prime-to-p restriction
NumberField.LevelArith.continuousH2SrInflation_H2pi_eq_zero_of_restrict_coboundary_of_not_dvd7 below · depth 25 - Trivial decomposition at infinity in a p-group layer
NumberField.LevelArith.eq_one_of_mem_infPlaceDecomp_of_isPGroup1 below · depth 25 - Restricting an S-unit 2-cocycle to a larger base field
NumberField.LevelArith.exists_cocyclesTwo_quotientToInvariants_sUnitsMaxRep_val_eq_of_le1 below · depth 25 - Presenting a p-primary S-Brauer class with prescribed local invariants
NumberField.LevelArith.exists_forall_hasBrauerLocalInvAt_of_cocycles_sUnitsRep1 below · depth 25 - Vanishing of H³ of the S-idèle module of a level
NumberField.LevelArith.exists_inhomogeneousCochains_d_two_three_eq_sIdele158 below · depth 25 - Degree-3 S-unit cocycles split at a deeper p-level
NumberField.LevelArith.exists_level_d_two_three_eq_of_sIdele_coboundary_of_isPGroup478 below · depth 25 - Cocycles with equal inflated class differ by a coboundary at a deeper level
NumberField.LevelArith.exists_level_sub_eq_coboundary_of_continuousH2SrInflation_eq4 below · depth 25 - Transporting a degree-3 cochain to the S-units frame
NumberField.LevelArith.exists_three_cochain_sUnitsRep_val_eq_of_transport0 below · depth 25 - Local invariants unchanged on passing to a larger S-level
NumberField.LevelArith.hasLocalInv_of_hasLocalInv_of_le119 below · depth 25 - The layer F_L/L is Galois for F/ℚ finite normal
NumberField.LevelArith.isGalois_levelField0 below · depth 25 - Surjectivity and kernel of Γ_L → Gal(F/L)
NumberField.LevelArith.levelGal_surjective_and_ker0 below · depth 25 - Vanishing S-idèle class of a restricted layer 2-cocycle
NumberField.LevelArith.map_diag_H2pi_eq_zero_of_map_principalIdele_H2pi_eq_zero_of_le30 below · depth 25 - Inflated H²_S class vanishes iff cocycle bounds deeper
groupCohomology.continuousH2SrInflation_H2pi_eq_zero_iff3 below · depth 25 - Layer order p^k kills degree-3 cocycles at cochain level
NumberField.LevelArith.exists_card_eq_pow_and_d_two_three_eq_pow_smul_of_isPGroup1 below · depth 26 - Galois S-levels above a given level with p^k dividing decomposition orders
NumberField.LevelArith.exists_le_isUnramifiedOutside_isGalois_pow_dvd_natCard_decomp12 below · depth 26 - Depth splitting of a 3-cocycle of S-units
NumberField.LevelArith.exists_level_d_two_three_eq_of_sIdele_coboundary_of_smul_eq_of_dvd_natCard_decomp415 below · depth 26 - Sylow placement of a large decomposition group
NumberField.LevelArith.exists_mem_placesOverPrimesFinset_pow_dvd_natCard_decomp_above_of_isPGroup_of_not_dvd6 below · depth 26 - Torsion transfer of S-idèle cochains along a level tower
NumberField.LevelArith.exists_smul_eq_smul_add_d_add_diag_of_sIdele_coboundary_of_le43 below · depth 26 - Inflation of degree-3 cochain data to a larger layer
NumberField.LevelArith.exists_three_cochain_val_eq_of_le_level_sUnitsMaxRep0 below · depth 26 - Vanishing idèle class transfers from base L to L'
NumberField.LevelArith.map_principalIdele_H2pi_eq_zero_of_le2 below · depth 26 - Genuine base change preserves S-unit idèles and S-units
NumberField.AdeleRing.unitsMap_genuineBaseChange_mem_unitIdelesOutside_of_isScalarTower2 below · depth 27 - Capitulation step: idèlic 2-cochain gives deeper S-unit coboundary
NumberField.LevelArith.exists_level_sUnitsRep_val_d_eq_of_sIdele_coboundary_of_map_eq_add_d56 below · depth 27 - Un-transporting a degree-3 coboundary to the invariants frame
NumberField.LevelArith.exists_two_cochain_quotientToInvariants_sUnitsMaxRep_eq_d_of_transport0 below · depth 27 - Γ_L/U_F a p-group forces Gal(F_L/L) a p-group
NumberField.LevelArith.isPGroup_levelGal_of_isPGroup_quotient1 below · depth 27 - Genuine base change preserves S-idèles and S-units in level towers
NumberField.LevelArith.unitsMap_genuineBaseChange_mem_unitIdelesOutside_of_le2 below · depth 27 - A Galois S-level absorbing p-power idèle classes
NumberField.LevelArith.exists_le_unitsMap_genuineBaseChange_mem_sup_of_pow_mem14 below · depth 28