Definitions/Def_NumberField_AdelicBox.lean
An explicit fundamental domain box in the adele ring
For a Dedekind domain R with fraction field K, NumberField.AdelicBox.integralFiniteAdeles is the subset of the finite adele ring \mathbb{A}_K^f (Mathlib's restricted product of the completions K_v with respect to the valuation subrings) consisting of those x with x_v \in \mathcal{O}_v for every v in the height-one spectrum of R — so literally \prod_v \mathcal{O}_v cut out inside the restricted product. For a number field K, infiniteBox is the preimage under Mathlib's ring isomorphism InfiniteAdeleRing.ringEquiv_mixedSpace from K_\infty to the mixed space \mathbb{R}^{r_1}\times\mathbb{C}^{r_2} of ZSpan.fundamentalDomain of the lattice basis mixedEmbedding.latticeBasis K, i.e. the half-open parallelotope \{\sum t_i b_i: 0\le t_i<1\} of Mathlib's chosen \mathbb{Z}-basis of the image of \mathcal{O}_K pulled back to K_\infty; adelicBox is the set of x in AdeleRing (𝓞 K) K (a product K_\infty\times\mathbb{A}_K^f) whose first component lies in infiniteBox K and whose second lies in integralFiniteAdeles (𝓞 K) K.
The accompanying API proves, for general (R,K), approximation statements at one place (density of K and of R in \mathcal{O}_v, existence of a denominator s\ne 0 with s\,x integral) and globally: every finite adele becomes integral after multiplication by some nonzero s\in R, and \mathbb{A}_K^f = K + \prod_v\mathcal{O}_v (exists_algebraMap_add_mem_integralFiniteAdeles), via a congruence obtained from IsDedekindDomain.exists_forall_sub_mem_ideal. For a number field one gets: a unique o\in\mathcal{O}_K, resp. a unique k\in K, with o+x in infiniteBox K, resp. k+x in adelicBox K; measurability of both boxes for the Borel \sigma-algebra supplied by the imported Haar-measure module; that adelicBox K is an IsAddFundamentalDomain for AdeleRing.principalSubgroup (𝓞 K) K with respect to every measure; containment in a compact set and containment of a nonempty open set (using compactness and openness of \prod_v\mathcal{O}_v and properness of the K_v, v\mid\infty); hence 0<\mu(\text{box})<\infty for \mu finite on compacts with IsOpenPosMeasure, specialised to NumberField.AdelicHaar.adelicAddHaar, and that conditioning that Haar measure on the box gives a probability measure. No volume is computed.
Relation to Mathlib
The ingredients (the restricted-product finite adele ring, InfiniteAdeleRing.ringEquiv_mixedSpace, mixedEmbedding.latticeBasis, ZSpan.fundamentalDomain, IsAddFundamentalDomain) are Mathlib's; the sets \prod_v\mathcal{O}_v, infiniteBox, adelicBox and the fundamental-domain and finiteness statements for them are the project's own. The measure-theoretic statements are phrased with respect to the Borel \sigma-algebra on the adeles armed locally from the project's NumberField.AdelicHaar module, since no global MeasurableSpace instance on the adele ring is registered.
Where it is used
These sets give a concrete fundamental domain for the translation action of K on \mathbb{A}_K, so that integration of K-periodic functions over \mathbb{A}_K/K (as in Fourier-analytic and automorphic constructions on the adelic side of the argument) can be carried out as integration over a set of finite positive Haar volume.
References
- A. Weil, Basic Number Theory, Grundlehren der mathematischen Wissenschaften 144, Springer, 1967
- J. W. S. Cassels and A. Fröhlich (eds.), Algebraic Number Theory, Academic Press, 1967
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 538 lines
- 36 declarations
- used in the statements of 557 theorems and imported by 709 proofs
- imports 1 definition modules
Source file: Definitions/Def_NumberField_AdelicBox.lean
Imports
Imported by
Def_AutomorphicForm_GeometricRemainderDef_AutomorphicForm_ProductionPinsDef_AutomorphicForm_TwistedCuspKernelDef_AutomorphicForm_UnipotentQuotientDef_AutomorphicForm_WeylSelectorsDef_LanglandsTunnell_JLSynthesisDef_LanglandsTunnell_TorusTransformDef_M4aHerbrand_AdeleTopologyFactsDef_NumberField_AdelicTraceFinDef_NumberField_IntegralAdelicTrace
Declarations
- def
NumberField.AdelicBox.integralFiniteAdeles - theorem
NumberField.AdelicBox.algebraMap_mem_adicCompletionIntegers - theorem
NumberField.AdelicBox.valued_algebraMap - theorem
NumberField.AdelicBox.ball_mem_nhds - theorem
NumberField.AdelicBox.exists_valued_sub_algebraMap_lt - theorem
NumberField.AdelicBox.exists_valued_algebraMap_sub_lt - theorem
NumberField.AdelicBox.exists_mul_mem_adicCompletionIntegers - theorem
NumberField.AdelicBox.algebraMap_mul_apply - theorem
NumberField.AdelicBox.algebraMap_add_apply - theorem
NumberField.AdelicBox.exists_mul_mem_integralFiniteAdeles - theorem
NumberField.AdelicBox.exists_forall_valued_sub_le - theorem
NumberField.AdelicBox.exists_algebraMap_add_mem_integralFiniteAdeles - def
NumberField.AdelicBox.infiniteBox - theorem
NumberField.AdelicBox.continuous_ringEquiv_mixedSpace - theorem
NumberField.AdelicBox.existsUnique_int_add_mem_infiniteBox - def
NumberField.AdelicBox.adelicBox - theorem
NumberField.AdelicBox.existsUnique_algebraMap_add_mem_adelicBox - theorem
NumberField.AdelicBox.isClosed_integralFiniteAdeles - theorem
NumberField.AdelicBox.measurableSet_infiniteBox - theorem
NumberField.AdelicBox.measurableSet_adelicBox - theorem
NumberField.AdelicBox.isAddFundamentalDomain_adelicBox - theorem
NumberField.AdelicBox.isAddFundamentalDomain_adelicBox_adelicAddHaar - theorem
NumberField.AdelicBox.properSpace_completion - theorem
NumberField.AdelicBox.norm_apply_le_of_isReal - theorem
NumberField.AdelicBox.norm_apply_le_of_isComplex - theorem
NumberField.AdelicBox.exists_forall_norm_apply_le_of_mem_infiniteBox - theorem
NumberField.AdelicBox.exists_isCompact_infiniteBox_subset - theorem
NumberField.AdelicBox.isCompact_integralFiniteAdeles - theorem
NumberField.AdelicBox.isOpen_integralFiniteAdeles - theorem
NumberField.AdelicBox.exists_isCompact_adelicBox_subset - theorem
NumberField.AdelicBox.measure_adelicBox_lt_top - theorem
NumberField.AdelicBox.exists_isOpen_subset_adelicBox - theorem
NumberField.AdelicBox.measure_adelicBox_pos - theorem
NumberField.AdelicBox.adelicAddHaar_adelicBox_lt_top - theorem
NumberField.AdelicBox.adelicAddHaar_adelicBox_pos - theorem
NumberField.AdelicBox.isProbabilityMeasure_cond_adelicBox
Source
import Definitions.Def_NumberField_AdelicHaar open IsDedekindDomain NumberField MeasureTheory open scoped RestrictedProduct noncomputable section namespace NumberField.AdelicBox section Finite variable (R K : Type*) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K] [IsFractionRing R K] def integralFiniteAdeles : Set (FiniteAdeleRing R K) := {x | ∀ v : HeightOneSpectrum R, x v ∈ v.adicCompletionIntegers K} variable (v : HeightOneSpectrum R) theorem algebraMap_mem_adicCompletionIntegers (r : R) : algebraMap K (v.adicCompletion K) (algebraMap R K r) ∈ v.adicCompletionIntegers K := by rw [HeightOneSpectrum.mem_adicCompletionIntegers, show algebraMap K (v.adicCompletion K) (algebraMap R K r) = ((algebraMap R K r : K) : v.adicCompletion K) from rfl, HeightOneSpectrum.valuedAdicCompletion_eq_valuation'] exact v.valuation_le_one r theorem valued_algebraMap (r : R) : Valued.v (algebraMap K (v.adicCompletion K) (algebraMap R K r)) = v.intValuation r := by rw [show algebraMap K (v.adicCompletion K) (algebraMap R K r) = ((algebraMap R K r : K) : v.adicCompletion K) from rfl, HeightOneSpectrum.valuedAdicCompletion_eq_valuation', HeightOneSpectrum.valuation_of_algebraMap] theorem ball_mem_nhds (x t : v.adicCompletion K) (ht : t ≠ 0) : {z : v.adicCompletion K | Valued.v (z - x) < Valued.v t} ∈ nhds x := by have ht' : Valued.v.restrict t ≠ 0 := by rwa [Ne, Valuation.restrict_eq_zero_iff, Valuation.zero_iff] refine Valued.mem_nhds.mpr ⟨Units.mk0 _ ht', fun z hz => ?_⟩ rw [Units.val_mk0] at hz exact Valued.v.restrict_lt_iff.mp hz theorem exists_valued_sub_algebraMap_lt (x t : v.adicCompletion K) (ht : t ≠ 0) : ∃ c : K, Valued.v (x - algebraMap K (v.adicCompletion K) c) < Valued.v t := by obtain ⟨_, hz, c, rfl⟩ := mem_closure_iff_nhds.mp (HeightOneSpectrum.denseRange_algebraMap (K := K) (v := v) x) _ (ball_mem_nhds R K v x t ht) exact ⟨c, by rwa [Set.mem_setOf_eq, Valuation.map_sub_swap] at hz⟩ theorem exists_valued_algebraMap_sub_lt (x : v.adicCompletionIntegers K) (t : v.adicCompletion K) (ht : t ≠ 0) : ∃ a : R, Valued.v (algebraMap K (v.adicCompletion K) (algebraMap R K a) - (x : v.adicCompletion K)) < Valued.v t := by set γ : (WithZero (Multiplicative ℤ))ˣ := Units.mk0 (Valued.v t) ((Valuation.ne_zero_iff _).mpr ht) with hγ have hn : {z : v.adicCompletion K | Valued.v (z - x) < Valued.v t} ∩ {z : v.adicCompletion K | Valued.v (z - x) < Valued.v (1 : v.adicCompletion K)} ∈ nhds (x : v.adicCompletion K) := Filter.inter_mem (ball_mem_nhds R K v _ t ht) (ball_mem_nhds R K v _ 1 one_ne_zero) obtain ⟨_, ⟨hzγ, hz1⟩, y, rfl⟩ := mem_closure_iff_nhds.mp (HeightOneSpectrum.denseRange_algebraMap (K := K) (v := v) (x : v.adicCompletion K)) _ hn have hyγ : Valued.v (algebraMap K (v.adicCompletion K) y - (x : v.adicCompletion K)) < γ := by rw [hγ, Units.val_mk0]; exact hzγ have hz1 : Valued.v (algebraMap K (v.adicCompletion K) y - (x : v.adicCompletion K)) < 1 := by have := hz1; rwa [Set.mem_setOf_eq, Valuation.map_one] at this have hy1 : Valued.v (algebraMap K (v.adicCompletion K) y - (x : v.adicCompletion K)) < 1 := hz1 have hyint : v.valuation K y ≤ 1 := by have hx1 : Valued.v (x : v.adicCompletion K) ≤ 1 := x.2 have h : Valued.v (algebraMap K (v.adicCompletion K) y) ≤ 1 := by have := Valuation.map_add (Valued.v : Valuation (v.adicCompletion K) _) (algebraMap K (v.adicCompletion K) y - (x : v.adicCompletion K)) (x : v.adicCompletion K) rw [sub_add_cancel] at this exact this.trans (max_le hy1.le hx1) rwa [show algebraMap K (v.adicCompletion K) y = (y : v.adicCompletion K) from rfl, HeightOneSpectrum.valuedAdicCompletion_eq_valuation'] at h obtain ⟨a, ha⟩ := HeightOneSpectrum.exists_valuation_sub_lt_of_integer v hyint γ refine ⟨a, ?_⟩ have ha' : Valued.v (algebraMap K (v.adicCompletion K) (algebraMap R K a) - algebraMap K (v.adicCompletion K) y) < γ := by rw [← map_sub, show algebraMap K (v.adicCompletion K) (algebraMap R K a - y) = ((algebraMap R K a - y : K) : v.adicCompletion K) from rfl, HeightOneSpectrum.valuedAdicCompletion_eq_valuation'] exact ha have := Valuation.map_add (Valued.v : Valuation (v.adicCompletion K) _) (algebraMap K (v.adicCompletion K) (algebraMap R K a) - algebraMap K (v.adicCompletion K) y) (algebraMap K (v.adicCompletion K) y - (x : v.adicCompletion K)) rw [sub_add_sub_cancel] at this rw [hγ, Units.val_mk0] at ha' hyγ exact lt_of_le_of_lt this (max_lt ha' hyγ) theorem exists_mul_mem_adicCompletionIntegers (x : v.adicCompletion K) : ∃ s : R, s ≠ 0 ∧ algebraMap K (v.adicCompletion K) (algebraMap R K s) * x ∈ v.adicCompletionIntegers K := by obtain ⟨c, hc⟩ := exists_valued_sub_algebraMap_lt R K v x 1 one_ne_zero obtain ⟨a, s, hs, rfl⟩ := IsFractionRing.div_surjective (A := R) c have hs0 : s ≠ 0 := nonZeroDivisors.ne_zero hs have hsK : algebraMap R K s ≠ 0 := IsFractionRing.to_map_ne_zero_of_mem_nonZeroDivisors hs refine ⟨s, hs0, ?_⟩ have hid : algebraMap K (v.adicCompletion K) (algebraMap R K s) * x = algebraMap K (v.adicCompletion K) (algebraMap R K s) * (x - algebraMap K (v.adicCompletion K) (algebraMap R K a / algebraMap R K s)) + algebraMap K (v.adicCompletion K) (algebraMap R K a) := by have : algebraMap R K s * (algebraMap R K a / algebraMap R K s) = algebraMap R K a := by field_simp rw [mul_sub, ← map_mul, this] ring rw [hid, HeightOneSpectrum.mem_adicCompletionIntegers] refine (Valuation.map_add _ _ _).trans (max_le ?_ ?_) · rw [Valuation.map_mul] have h1 : Valued.v (algebraMap K (v.adicCompletion K) (algebraMap R K s)) ≤ 1 := (HeightOneSpectrum.mem_adicCompletionIntegers R K v).mp (algebraMap_mem_adicCompletionIntegers R K v s) have h2 : Valued.v (x - algebraMap K (v.adicCompletion K) (algebraMap R K a / algebraMap R K s)) ≤ 1 := by have := hc.le; rwa [Valuation.map_one] at this exact mul_le_one' h1 h2 · exact (HeightOneSpectrum.mem_adicCompletionIntegers R K v).mp (algebraMap_mem_adicCompletionIntegers R K v a) omit v in theorem algebraMap_mul_apply (r : R) (y : FiniteAdeleRing R K) (v : HeightOneSpectrum R) : (algebraMap R (FiniteAdeleRing R K) r * y) v = algebraMap K (v.adicCompletion K) (algebraMap R K r) * y v := rfl omit v in theorem algebraMap_add_apply (k : K) (y : FiniteAdeleRing R K) (v : HeightOneSpectrum R) : (algebraMap K (FiniteAdeleRing R K) k + y) v = algebraMap K (v.adicCompletion K) k + y v := rfl omit v in theorem exists_mul_mem_integralFiniteAdeles (y : FiniteAdeleRing R K) : ∃ s : R, s ≠ 0 ∧ algebraMap R (FiniteAdeleRing R K) s * y ∈ integralFiniteAdeles R K := by classical have hS : {v : HeightOneSpectrum R | y v ∉ v.adicCompletionIntegers K}.Finite := Filter.eventually_cofinite.mp (show Πʳ v : HeightOneSpectrum R, [v.adicCompletion K, v.adicCompletionIntegers K] from y).eventually choose s hs0 hs using fun v => exists_mul_mem_adicCompletionIntegers R K v (y v) refine ⟨∏ w ∈ hS.toFinset, s w, Finset.prod_ne_zero_iff.mpr fun w _ => hs0 w, fun v => ?_⟩ rw [algebraMap_mul_apply] by_cases hv : v ∈ hS.toFinset · rw [← Finset.prod_erase_mul _ _ hv, map_mul, map_mul, mul_assoc] exact mul_mem (algebraMap_mem_adicCompletionIntegers R K v _) (hs v) · have hyv : y v ∈ v.adicCompletionIntegers K := by simpa [Set.Finite.mem_toFinset] using hv exact mul_mem (algebraMap_mem_adicCompletionIntegers R K v _) hyv omit v in theorem exists_forall_valued_sub_le {z : FiniteAdeleRing R K} (hz : z ∈ integralFiniteAdeles R K) {s : R} (hs : s ≠ 0) : ∃ a : R, ∀ v : HeightOneSpectrum R, Valued.v (z v - algebraMap K (v.adicCompletion K) (algebraMap R K a)) ≤ Valued.v (algebraMap K (v.adicCompletion K) (algebraMap R K s)) := by classical have hI : (Ideal.span {s} : Ideal R) ≠ 0 := by simpa [Ideal.zero_eq_bot, Ideal.span_singleton_eq_bot] using hs set T := (Ideal.finite_factors hI).toFinset with hT let e : HeightOneSpectrum R → ℕ := fun v => (Associates.mk v.asIdeal).count (Associates.mk (Ideal.span {s} : Ideal R)).factors have hvs : ∀ v : HeightOneSpectrum R, Valued.v (algebraMap K (v.adicCompletion K) (algebraMap R K s)) ≠ 0 := fun v => by rw [valued_algebraMap]; exact v.intValuation_ne_zero s hs have hS : ∀ v : HeightOneSpectrum R, algebraMap K (v.adicCompletion K) (algebraMap R K s) ≠ 0 := fun v => (Valuation.ne_zero_iff _).mp (hvs v) choose a ha using fun v : HeightOneSpectrum R => exists_valued_algebraMap_sub_lt R K v ⟨z v, hz v⟩ _ (hS v) obtain ⟨b, hb⟩ := IsDedekindDomain.exists_forall_sub_mem_ideal (s := T) (fun v : HeightOneSpectrum R => v.asIdeal) e (fun v _ => v.prime) (fun v _ w _ hvw h => hvw (HeightOneSpectrum.ext h)) (fun v => a v.1) refine ⟨b, fun v => ?_⟩ have hzb : z v - algebraMap K (v.adicCompletion K) (algebraMap R K b) = (z v - algebraMap K (v.adicCompletion K) (algebraMap R K (a v))) + (algebraMap K (v.adicCompletion K) (algebraMap R K (a v)) - algebraMap K (v.adicCompletion K) (algebraMap R K b)) := by ring rw [hzb] refine (Valuation.map_add _ _ _).trans (max_le ?_ ?_) · have := ha v rw [Valuation.map_sub_swap] at this exact this.le · rw [← map_sub, ← map_sub, valued_algebraMap, valued_algebraMap] by_cases hv : v ∈ T · rw [v.intValuation_if_neg hs, Valuation.map_sub_swap] exact (v.intValuation_le_pow_iff_mem _ _).mpr (hb v hv) · have hsv : s ∉ v.asIdeal := by intro h apply hv rw [hT, Set.Finite.mem_toFinset] exact Ideal.dvd_span_singleton.mpr h rw [(HeightOneSpectrum.intValuation_eq_one_iff).mpr hsv] exact v.intValuation_le_one _ omit v in theorem exists_algebraMap_add_mem_integralFiniteAdeles (y : FiniteAdeleRing R K) : ∃ k : K, algebraMap K (FiniteAdeleRing R K) k + y ∈ integralFiniteAdeles R K := by obtain ⟨s, hs, hsy⟩ := exists_mul_mem_integralFiniteAdeles R K y obtain ⟨a, ha⟩ := exists_forall_valued_sub_le R K hsy hs refine ⟨-(algebraMap R K a / algebraMap R K s), fun v => ?_⟩ have hsK : algebraMap R K s ≠ 0 := fun h => hs ((injective_iff_map_eq_zero _).mp (IsFractionRing.injective R K) s h) set S := algebraMap K (v.adicCompletion K) (algebraMap R K s) with hSdef set A := algebraMap K (v.adicCompletion K) (algebraMap R K a) with hAdef have hS : S ≠ 0 := by rw [hSdef]; exact (map_ne_zero _).mpr hsK have hvS : Valued.v S ≠ 0 := (Valuation.ne_zero_iff _).mpr hS rw [algebraMap_add_apply, HeightOneSpectrum.mem_adicCompletionIntegers] have hid : algebraMap K (v.adicCompletion K) (-(algebraMap R K a / algebraMap R K s)) + y v = S⁻¹ * (S * y v - A) := by rw [map_neg, map_div₀, ← hSdef, ← hAdef] field_simp ring rw [hid, Valuation.map_mul, map_inv₀] have h := ha v rw [algebraMap_mul_apply, ← hSdef, ← hAdef] at h calc (Valued.v S)⁻¹ * Valued.v (S * y v - A) ≤ (Valued.v S)⁻¹ * Valued.v S := by gcongr _ = 1 := inv_mul_cancel₀ hvS end Finite section Infinite variable (K : Type*) [Field K] [NumberField K] open scoped Classical in def infiniteBox : Set (InfiniteAdeleRing K) := InfiniteAdeleRing.ringEquiv_mixedSpace K ⁻¹' ZSpan.fundamentalDomain (mixedEmbedding.latticeBasis K) omit [NumberField K] in theorem continuous_ringEquiv_mixedSpace : Continuous (InfiniteAdeleRing.ringEquiv_mixedSpace K) := by have h : (InfiniteAdeleRing.ringEquiv_mixedSpace K : InfiniteAdeleRing K → mixedEmbedding.mixedSpace K) = fun x => (fun (w : {w : InfinitePlace K // w.IsReal}) => InfinitePlace.Completion.extensionEmbeddingOfIsReal w.2 (x w.1), fun (w : {w : InfinitePlace K // w.IsComplex}) => InfinitePlace.Completion.extensionEmbedding w.1 (x w.1)) := by funext x; exact InfiniteAdeleRing.ringEquiv_mixedSpace_apply K x rw [h] refine Continuous.prodMk (continuous_pi fun w => ?_) (continuous_pi fun w => ?_) · exact (InfinitePlace.Completion.isometry_extensionEmbeddingOfIsReal w.2).continuous.comp (continuous_apply w.1) · exact (InfinitePlace.Completion.isometry_extensionEmbedding w.1).continuous.comp (continuous_apply w.1) open scoped Classical in theorem existsUnique_int_add_mem_infiniteBox (x : InfiniteAdeleRing K) : ∃! o : 𝓞 K, algebraMap K (InfiniteAdeleRing K) (o : K) + x ∈ infiniteBox K := by set e := InfiniteAdeleRing.ringEquiv_mixedSpace K with he obtain ⟨ℓ, hℓ, huniq⟩ := ZSpan.exist_unique_vadd_mem_fundamentalDomain (mixedEmbedding.latticeBasis K) (e x) have hℓ' : (ℓ : mixedEmbedding.mixedSpace K) ∈ mixedEmbedding.integerLattice K := (mixedEmbedding.mem_span_latticeBasis K).mp ℓ.2 obtain ⟨o, ho⟩ := LinearMap.mem_range.mp hℓ' have ho' : mixedEmbedding K (o : K) = ℓ := ho have key : ∀ o' : 𝓞 K, e (algebraMap K (InfiniteAdeleRing K) (o' : K) + x) = mixedEmbedding K (o' : K) + e x := fun o' => by rw [map_add, ← InfiniteAdeleRing.mixedEmbedding_eq_algebraMap_comp] refine ⟨o, ?_, fun o' ho'mem => ?_⟩ · show e (algebraMap K (InfiniteAdeleRing K) (o : K) + x) ∈ ZSpan.fundamentalDomain (mixedEmbedding.latticeBasis K) rw [key, ho'] exact hℓ · have hmem : mixedEmbedding K (o' : K) ∈ Submodule.span ℤ (Set.range (mixedEmbedding.latticeBasis K)) := (mixedEmbedding.mem_span_latticeBasis K).mpr (LinearMap.mem_range.mpr ⟨o', rfl⟩) have h2 : (⟨mixedEmbedding K (o' : K), hmem⟩ : Submodule.span ℤ (Set.range (mixedEmbedding.latticeBasis K))) +ᵥ e x ∈ ZSpan.fundamentalDomain (mixedEmbedding.latticeBasis K) := by have : e (algebraMap K (InfiniteAdeleRing K) (o' : K) + x) ∈ ZSpan.fundamentalDomain (mixedEmbedding.latticeBasis K) := ho'mem rw [key] at this exact this have h3 := huniq _ h2 have h4 : mixedEmbedding K (o' : K) = mixedEmbedding K (o : K) := by rw [ho']; exact congrArg Subtype.val h3 exact_mod_cast (mixedEmbedding_injective K) h4 end Infinite section Box variable (K : Type*) [Field K] [NumberField K] def adelicBox : Set (AdeleRing (𝓞 K) K) := {x | x.1 ∈ infiniteBox K ∧ x.2 ∈ integralFiniteAdeles (𝓞 K) K} theorem existsUnique_algebraMap_add_mem_adelicBox (x : AdeleRing (𝓞 K) K) : ∃! k : K, algebraMap K (AdeleRing (𝓞 K) K) k + x ∈ adelicBox K := by obtain ⟨k₁, hk₁⟩ := exists_algebraMap_add_mem_integralFiniteAdeles (𝓞 K) K x.2 obtain ⟨o, ho, _⟩ := existsUnique_int_add_mem_infiniteBox K (algebraMap K (InfiniteAdeleRing K) k₁ + x.1) have hfst : ∀ k : K, (algebraMap K (AdeleRing (𝓞 K) K) k + x).1 = algebraMap K (InfiniteAdeleRing K) k + x.1 := fun _ => rfl have hsnd : ∀ k : K, (algebraMap K (AdeleRing (𝓞 K) K) k + x).2 = algebraMap K (FiniteAdeleRing (𝓞 K) K) k + x.2 := fun _ => rfl refine ⟨(o : K) + k₁, ⟨?_, ?_⟩, fun k' hk' => ?_⟩ · rw [hfst, map_add, add_assoc] exact ho · rw [hsnd] intro v rw [map_add, add_assoc, algebraMap_add_apply] exact add_mem (algebraMap_mem_adicCompletionIntegers (𝓞 K) K v o) (hk₁ v) · obtain ⟨hk'1, hk'2⟩ := hk' rw [hsnd] at hk'2 have hdiff : ∀ v : HeightOneSpectrum (𝓞 K), v.valuation K (k' - k₁) ≤ 1 := fun v => by have h1 := hk'2 v have h2 := hk₁ v rw [algebraMap_add_apply] at h1 h2 have := sub_mem h1 h2 rw [add_sub_add_right_eq_sub, ← map_sub] at this rwa [HeightOneSpectrum.mem_adicCompletionIntegers, show algebraMap K (v.adicCompletion K) (k' - k₁) = ((k' - k₁ : K) : v.adicCompletion K) from rfl, HeightOneSpectrum.valuedAdicCompletion_eq_valuation'] at this obtain ⟨o', ho'⟩ := HeightOneSpectrum.mem_integers_of_valuation_le_one K (k' - k₁) hdiff have hk'o : k' = (o' : K) + k₁ := by rw [show ((o' : 𝓞 K) : K) = algebraMap (𝓞 K) K o' from rfl, ho']; ring rw [hfst, hk'o, map_add, add_assoc] at hk'1 obtain ⟨_, _, huniq⟩ := existsUnique_int_add_mem_infiniteBox K (algebraMap K (InfiniteAdeleRing K) k₁ + x.1) rw [hk'o, huniq o' hk'1, huniq o ho] attribute [local instance] NumberField.AdelicHaar.adeleBorel NumberField.AdelicHaar.borelSpace_adeleBorel theorem isClosed_integralFiniteAdeles : IsClosed (integralFiniteAdeles (𝓞 K) K) := by have : integralFiniteAdeles (𝓞 K) K = ⋂ v : HeightOneSpectrum (𝓞 K), (fun x : FiniteAdeleRing (𝓞 K) K => x v) ⁻¹' (v.adicCompletionIntegers K : Set (v.adicCompletion K)) := by ext x; simp [integralFiniteAdeles] rw [this] refine isClosed_iInter fun v => IsClosed.preimage ?_ (Valued.isClosed_valuationSubring _) exact (RestrictedProduct.continuous_eval v : Continuous fun x : Πʳ w : HeightOneSpectrum (𝓞 K), [w.adicCompletion K, w.adicCompletionIntegers K] => x v) open scoped Classical in theorem measurableSet_infiniteBox : MeasurableSet[borel (InfiniteAdeleRing K)] (infiniteBox K) := by letI : MeasurableSpace (InfiniteAdeleRing K) := borel _ haveI : BorelSpace (InfiniteAdeleRing K) := ⟨rfl⟩ exact (ZSpan.fundamentalDomain_measurableSet _).preimage (continuous_ringEquiv_mixedSpace K).measurable theorem measurableSet_adelicBox : MeasurableSet (adelicBox K) := by letI : MeasurableSpace (InfiniteAdeleRing K) := borel _ haveI : BorelSpace (InfiniteAdeleRing K) := ⟨rfl⟩ letI : MeasurableSpace (FiniteAdeleRing (𝓞 K) K) := borel _ haveI : BorelSpace (FiniteAdeleRing (𝓞 K) K) := ⟨rfl⟩ have hc1 : Continuous fun x : AdeleRing (𝓞 K) K => x.1 := continuous_fst have hc2 : Continuous fun x : AdeleRing (𝓞 K) K => x.2 := continuous_snd have h1 : Measurable fun x : AdeleRing (𝓞 K) K => x.1 := hc1.measurable have h2 : Measurable fun x : AdeleRing (𝓞 K) K => x.2 := hc2.measurable exact ((measurableSet_infiniteBox K).preimage h1).inter ((isClosed_integralFiniteAdeles K).measurableSet.preimage h2) theorem isAddFundamentalDomain_adelicBox (μ : Measure (AdeleRing (𝓞 K) K)) : IsAddFundamentalDomain (AdeleRing.principalSubgroup (𝓞 K) K) (adelicBox K) μ := by refine IsAddFundamentalDomain.mk' (measurableSet_adelicBox K).nullMeasurableSet fun x => ?_ obtain ⟨k, hk, huniq⟩ := existsUnique_algebraMap_add_mem_adelicBox K x refine ⟨⟨algebraMap K _ k, k, rfl⟩, ?_, ?_⟩ · show (algebraMap K (AdeleRing (𝓞 K) K) k) + x ∈ adelicBox K exact hk · rintro ⟨_, k', rfl⟩ hk' have : k' = k := huniq k' hk' subst this rfl theorem isAddFundamentalDomain_adelicBox_adelicAddHaar : IsAddFundamentalDomain (AdeleRing.principalSubgroup (𝓞 K) K) (adelicBox K) (NumberField.AdelicHaar.adelicAddHaar (𝓞 K) K) := isAddFundamentalDomain_adelicBox K _ omit [NumberField K] in theorem properSpace_completion (v : InfinitePlace K) : ProperSpace v.Completion := by by_cases hv : v.IsReal · exact (InfinitePlace.Completion.isometryEquivRealOfIsReal hv).symm.isometry.antilipschitz.properSpace (InfinitePlace.Completion.isometryEquivRealOfIsReal hv).symm.continuous (InfinitePlace.Completion.isometryEquivRealOfIsReal hv).symm.surjective · have hc : v.IsComplex := InfinitePlace.not_isReal_iff_isComplex.mp hv exact (InfinitePlace.Completion.isometryEquivComplexOfIsComplex hc).symm.isometry.antilipschitz.properSpace (InfinitePlace.Completion.isometryEquivComplexOfIsComplex hc).symm.continuous (InfinitePlace.Completion.isometryEquivComplexOfIsComplex hc).symm.surjective open scoped Classical in theorem norm_apply_le_of_isReal (x : InfiniteAdeleRing K) {v : InfinitePlace K} (hv : v.IsReal) : ‖x v‖ ≤ ‖InfiniteAdeleRing.ringEquiv_mixedSpace K x‖ := by have h1 : ‖InfinitePlace.Completion.extensionEmbeddingOfIsReal hv (x v)‖ = ‖x v‖ := (AddMonoidHomClass.isometry_iff_norm _).mp (InfinitePlace.Completion.isometry_extensionEmbeddingOfIsReal hv) (x v) have h2 : (InfiniteAdeleRing.ringEquiv_mixedSpace K x).1 ⟨v, hv⟩ = InfinitePlace.Completion.extensionEmbeddingOfIsReal hv (x v) := rfl rw [← h1, ← h2] exact (norm_le_pi_norm (InfiniteAdeleRing.ringEquiv_mixedSpace K x).1 ⟨v, hv⟩).trans (norm_fst_le (InfiniteAdeleRing.ringEquiv_mixedSpace K x)) open scoped Classical in theorem norm_apply_le_of_isComplex (x : InfiniteAdeleRing K) {v : InfinitePlace K} (hv : v.IsComplex) : ‖x v‖ ≤ ‖InfiniteAdeleRing.ringEquiv_mixedSpace K x‖ := by have h1 : ‖InfinitePlace.Completion.extensionEmbedding v (x v)‖ = ‖x v‖ := (AddMonoidHomClass.isometry_iff_norm _).mp (InfinitePlace.Completion.isometry_extensionEmbedding v) (x v) have h2 : (InfiniteAdeleRing.ringEquiv_mixedSpace K x).2 ⟨v, hv⟩ = InfinitePlace.Completion.extensionEmbedding v (x v) := rfl rw [← h1, ← h2] exact (norm_le_pi_norm (InfiniteAdeleRing.ringEquiv_mixedSpace K x).2 ⟨v, hv⟩).trans (norm_snd_le (InfiniteAdeleRing.ringEquiv_mixedSpace K x)) open scoped Classical in theorem exists_forall_norm_apply_le_of_mem_infiniteBox : ∃ r : ℝ, ∀ x ∈ infiniteBox K, ∀ v : InfinitePlace K, ‖x v‖ ≤ r := by obtain ⟨r, hr⟩ := isBounded_iff_forall_norm_le.mp (ZSpan.fundamentalDomain_isBounded (mixedEmbedding.latticeBasis K)) refine ⟨r, fun x hx v => ?_⟩ have hx' : ‖InfiniteAdeleRing.ringEquiv_mixedSpace K x‖ ≤ r := hr _ hx by_cases hv : v.IsReal · exact (norm_apply_le_of_isReal K x hv).trans hx' · exact (norm_apply_le_of_isComplex K x (InfinitePlace.not_isReal_iff_isComplex.mp hv)).trans hx' theorem exists_isCompact_infiniteBox_subset : ∃ S : Set (InfiniteAdeleRing K), IsCompact S ∧ infiniteBox K ⊆ S := by obtain ⟨r, hr⟩ := exists_forall_norm_apply_le_of_mem_infiniteBox K haveI : ∀ v : InfinitePlace K, ProperSpace v.Completion := fun v => properSpace_completion K v refine ⟨{x | ∀ v, ‖x v‖ ≤ r}, ?_, fun x hx v => hr x hx v⟩ have : {x : InfiniteAdeleRing K | ∀ v, ‖x v‖ ≤ r} = Set.pi Set.univ fun v : InfinitePlace K => Metric.closedBall (0 : v.Completion) r := by ext x exact ⟨fun h v _ => mem_closedBall_zero_iff.mpr (h v), fun h v => mem_closedBall_zero_iff.mp (h v (Set.mem_univ v))⟩ rw [this] exact isCompact_univ_pi fun v => isCompact_closedBall (0 : v.Completion) r theorem isCompact_integralFiniteAdeles : IsCompact (integralFiniteAdeles (𝓞 K) K) := by haveI : ∀ v : HeightOneSpectrum (𝓞 K), CompactSpace ((v.adicCompletionIntegers K : Set (v.adicCompletion K))) := fun v => inferInstanceAs (CompactSpace (v.adicCompletionIntegers K)) have h := isCompact_range (RestrictedProduct.isOpenEmbedding_structureMap (R := fun v : HeightOneSpectrum (𝓞 K) => v.adicCompletion K) (A := fun v : HeightOneSpectrum (𝓞 K) => (v.adicCompletionIntegers K : Set (v.adicCompletion K))) Fact.out).continuous rw [RestrictedProduct.range_structureMap] at h exact h theorem isOpen_integralFiniteAdeles : IsOpen (integralFiniteAdeles (𝓞 K) K) := RestrictedProduct.isOpen_forall_mem (R := fun v : HeightOneSpectrum (𝓞 K) => v.adicCompletion K) (A := fun v : HeightOneSpectrum (𝓞 K) => (v.adicCompletionIntegers K : Set (v.adicCompletion K))) Fact.out theorem exists_isCompact_adelicBox_subset : ∃ C : Set (AdeleRing (𝓞 K) K), IsCompact C ∧ adelicBox K ⊆ C := by obtain ⟨S, hS, hsub⟩ := exists_isCompact_infiniteBox_subset K refine ⟨{x | x.1 ∈ S ∧ x.2 ∈ integralFiniteAdeles (𝓞 K) K}, ?_, fun x hx => ⟨hsub hx.1, hx.2⟩⟩ have : IsCompact (S ×ˢ integralFiniteAdeles (𝓞 K) K) := hS.prod (isCompact_integralFiniteAdeles K) exact this theorem measure_adelicBox_lt_top (μ : Measure (AdeleRing (𝓞 K) K)) [IsFiniteMeasureOnCompacts μ] : μ (adelicBox K) < ⊤ := by obtain ⟨C, hC, hsub⟩ := exists_isCompact_adelicBox_subset K exact (measure_mono hsub).trans_lt hC.measure_lt_top open scoped Classical in theorem exists_isOpen_subset_adelicBox : ∃ U : Set (AdeleRing (𝓞 K) K), IsOpen U ∧ U.Nonempty ∧ U ⊆ adelicBox K := by set b := mixedEmbedding.latticeBasis K with hb set e := InfiniteAdeleRing.ringEquiv_mixedSpace K with he let V : Set (mixedEmbedding.mixedSpace K) := {m | ∀ i, b.repr m i ∈ Set.Ioo (0 : ℝ) 1} have hVopen : IsOpen V := by have : V = ⋂ i, (fun m => b.repr m i) ⁻¹' Set.Ioo (0 : ℝ) 1 := by ext m; simp [V] rw [this] refine isOpen_iInter_of_finite fun i => IsOpen.preimage ?_ isOpen_Ioo exact (b.coord i).continuous_of_finiteDimensional have hVsub : V ⊆ ZSpan.fundamentalDomain b := fun m hm i => Set.Ioo_subset_Ico_self (hm i) have hVne : (e.symm (b.equivFun.symm fun _ => 1 / 2)) ∈ e ⁻¹' V := by show e (e.symm _) ∈ V rw [RingEquiv.apply_symm_apply] intro i rw [← b.equivFun_apply, LinearEquiv.apply_symm_apply] norm_num have hc1 : Continuous fun x : AdeleRing (𝓞 K) K => x.1 := continuous_fst have hc2 : Continuous fun x : AdeleRing (𝓞 K) K => x.2 := continuous_snd refine ⟨{x | x.1 ∈ e ⁻¹' V ∧ x.2 ∈ integralFiniteAdeles (𝓞 K) K}, ?_, ?_, ?_⟩ · exact ((hVopen.preimage (continuous_ringEquiv_mixedSpace K)).preimage hc1).inter ((isOpen_integralFiniteAdeles K).preimage hc2) · refine ⟨((e.symm (b.equivFun.symm fun _ => 1 / 2), 0) : InfiniteAdeleRing K × FiniteAdeleRing (𝓞 K) K), hVne, ?_⟩ intro v exact zero_mem _ · rintro x ⟨hx1, hx2⟩ exact ⟨hVsub hx1, hx2⟩ theorem measure_adelicBox_pos (μ : Measure (AdeleRing (𝓞 K) K)) [μ.IsOpenPosMeasure] : 0 < μ (adelicBox K) := by obtain ⟨U, hU, hne, hsub⟩ := exists_isOpen_subset_adelicBox K exact (hU.measure_pos μ hne).trans_le (measure_mono hsub) attribute [local instance] NumberField.AdelicHaar.isAddHaarMeasure_adelicAddHaar theorem adelicAddHaar_adelicBox_lt_top : NumberField.AdelicHaar.adelicAddHaar (𝓞 K) K (adelicBox K) < ⊤ := measure_adelicBox_lt_top K _ theorem adelicAddHaar_adelicBox_pos : 0 < NumberField.AdelicHaar.adelicAddHaar (𝓞 K) K (adelicBox K) := measure_adelicBox_pos K _ open scoped ProbabilityTheory in theorem isProbabilityMeasure_cond_adelicBox : IsProbabilityMeasure ((NumberField.AdelicHaar.adelicAddHaar (𝓞 K) K)[|adelicBox K]) := ProbabilityTheory.cond_isProbabilityMeasure_of_finite (adelicAddHaar_adelicBox_pos K).ne' (adelicAddHaar_adelicBox_lt_top K).ne end Box end NumberField.AdelicBox end
Statements phrased using this module (557)
- Right convolution preserves cuspidality, smoothness, level and Hecke eigenvalues
AutomorphicForm.isCuspidalFn_isKfSmooth_levelInvariant_isHeckeCosetEigenfunctionAt_rightConv_of_isFactorizableTestFn_of_support_subset2 below · depth 14 - Integrability and summability of adelic GL₂ Whittaker coefficients
AutomorphicForm.whittakerCoefficientIntegrable_and_summable_of_isKfSmooth_of_contDiff_mixedSpace12 below · depth 14 - Left B(K)-invariance of the box constant term
AutomorphicForm.constantTerm_adelicBox_globalPoints_mul_of_mem_borelSubgroup4 below · depth 16 - Unipotent invariance of the box constant term on GL₂(A_K)
AutomorphicForm.constantTerm_adelicBox_unipotentGL2_mul0 below · depth 16 - Whittaker–Fourier expansion of a continuous unipotent slice
AutomorphicForm.hasSum_whittakerCoefficient5 below · depth 16 - Cuspidality bound for int φ(y)f(x⁻¹y) on GL₂(A_K)
AutomorphicForm.norm_integral_mul_le_mul_setIntegral_norm_of_isCuspidalFn2 below · depth 16 - Decay of rational unipotent sums minus box average in Siegel sets
AutomorphicForm.norm_tsum_sub_average_le_mul_inv_archHeight_pow_of_isFactorizableTestFn57 below · depth 16 - Square-mass bound on unipotent sweeps high in a Siegel set
AutomorphicForm.setLIntegral_nnnorm_sq_le_mul_archHeight_pow_mul_setLIntegral_of_isLsXiFunction_of_coversModCentre5 below · depth 16 - Whittaker coefficients: W_α(g)=W₁(diag(α,1)g)
AutomorphicForm.whittakerCoefficient_eq_whittakerCoefficient_one_globalPoints_diagOne_mul3 below · depth 16 - Unipotent covariance of adelic Whittaker coefficients on GL₂
AutomorphicForm.whittakerCoefficient_unipotentGL2_mul0 below · depth 16 - Density of 𝒪_F in the integral finite adeles
NumberField.AdelicBox.integralFiniteAdeles_subset_closure_range_algebraMap_ringOfIntegers0 below · depth 16 - A bad set for a smoothed cusp realisation, with coset data
AutomorphicForm.SmoothCuspRealizationAt.exists_finset_badSet_rightConv_section31 below · depth 17 - Polynomial bounds on Hecke eigenvalues from moderate growth
AutomorphicForm.SmoothCuspRealizationAt.exists_forall_norm_a_le_rpow_and_norm_b_le_rpow_of_moderateGrowth4 below · depth 17 - Central eigenvalue bᵥ shifts the Whittaker coefficients
AutomorphicForm.SmoothCuspRealizationAt.whittakerCoefficient_mul_placeEmbed_scalarPi_eq_b_mul_whittakerCoefficient0 below · depth 17 - Uniform bound for right convolution on centre-cut Siegel windows
AutomorphicForm.exists_forall_norm_rightConv_le_mul_eLpNorm_of_isLsXiFunction_of_isCuspidalFn_of_isFundamentalDomain72 below · depth 17 - Uniform L²-mass bound over a compact set
AutomorphicForm.exists_forall_setLIntegral_nnnorm_sq_le_mul_setLIntegral_of_isLsXiFunction_of_isCompact_of_coversModCentre2 below · depth 17 - Nonvanishing of the first Whittaker coefficient
AutomorphicForm.exists_whittakerCoefficient_one_ne_zero9 below · depth 17 - Unfolding a cuspidal integral along rational unipotents with a weight
AutomorphicForm.integral_mul_eq_integral_mul_weight_mul_tsum_sub_average_of_isCuspidalFn1 below · depth 17 - Automorphy transports from a Siegel window to a fundamental domain
AutomorphicForm.isAutomorphicFnAt_of_isFundamentalDomain_of_isAutomorphicFnAt_of_coversModCentre11 below · depth 17 - Transfer of unramified Whittaker data to a Schwartz–Bruhat average
AutomorphicForm.whittakerCoefficient_unipotentAverage_unramified_package84 below · depth 17 - Compactness of the adele class group A_F/F
NumberField.AdeleRing.compactSpace_quotient_principalSubgroup0 below · depth 17 - Multiplication by a principal adele preserves additive Haar measure
NumberField.AdeleRing.measurePreserving_mul_algebraMap1 below · depth 17 - Continuous characters of the finite adeles have a conductor
NumberField.AdelicBox.exists_ne_zero_forall_addChar_mul_eq_one0 below · depth 17 - Scaling invariance of the adelic box average under F^×
NumberField.AdelicBox.integral_cond_adelicBox_comp_mul_algebraMap3 below · depth 17 - Dilates of the adelic box are fundamental domains
NumberField.AdelicBox.isAddFundamentalDomain_preimage_mul_algebraMap_adelicBox0 below · depth 17 - Annihilator of the integral finite adeles is d⁻¹+widehat𝒪
NumberField.AdelicFourier.forall_addChar_finitePart_mul_eq_one_iff_exists_mem_traceDual4 below · depth 17 - Adelic Fourier inversion with an unnormalised Haar measure
NumberField.AdelicFourier.fourierIntegral_fourierIntegral_eq33 below · depth 17 - Product formula for the adelic Fourier transform of a pure tensor
NumberField.AdelicFourier.fourierIntegral_pureTensor_eq0 below · depth 17 - Adelic Poisson summation with the zero frequency split off
NumberField.AdelicFourier.tsum_sub_inv_measure_mul_integral_eq_inv_measure_mul_tsum_fourierIntegral_ne_zero37 below · depth 17 - Growth of class sums of Hecke recursion values
AutomorphicForm.ClassSumGrowth.exists_forall_classBlock_le_and_classSum_le135 below · depth 18 - Linear lower bound for class-restricted mean-square Hecke sums
AutomorphicForm.ClassSumGrowth.exists_forall_le_classSum_of_classCarriesMass487 below · depth 18 - Non-vanishing Whittaker coefficient forces ψ unramified outside S
AutomorphicForm.addChar_eq_one_on_integers_off_of_whittakerCoefficient_ne_zero1 below · depth 18 - Continuity of the adelic Whittaker coefficient in g
AutomorphicForm.continuous_whittakerCoefficient0 below · depth 18 - Uniform convolution bound for smooth cusp forms on a Siegel window
AutomorphicForm.exists_forall_norm_rightConv_le_mul_eLpNorm_of_isSmoothCuspAutomorphicFnAt_of_coversModCentre68 below · depth 18 - Square-mass bound on Siegel sets against a slab fundamental domain
AutomorphicForm.exists_forall_setLIntegral_nnnorm_sq_le_mul_archHeight_pow_mul_setLIntegral_of_isLsXiFunction_of_isFundamentalDomain14 below · depth 18 - Right convolution by a test function preserves vanishing constant term
AutomorphicForm.isCuspidalFn_rightConv4 below · depth 18 - Bessel's inequality for Whittaker coefficients on the adelic box
AutomorphicForm.sum_norm_whittakerCoefficient_sq_le_integral_norm_sq1 below · depth 18 - Box-normalised Fourier integral of a pure tensor factors
EisensteinGeneral.Factorization.inv_measure_adelicBox_mul_fourierIntegral_tensor_eq2 below · depth 18 - Pure-tensor factorisation of a Whittaker function over ℚ
LanglandsTunnell.exists_whittakerCoefficient_eq_archWhittaker_mul_finWhittaker_of_isIsotypicCuspFormAt3 below · depth 18 - Local Whittaker relations at a good place over ℚ
LanglandsTunnell.finWhittaker_unipotent_levelOne_hecke_centre_of_isIsotypicCuspFormAt1 below · depth 18 - Pure tensors are stable under dilation by nonzero elements of F
NumberField.AdelicFourier.comp_mul_algebraMap_mem_pureTensorSet0 below · depth 18 - Annihilator of the integral finite adeles is the inverse different
NumberField.AdelicFourier.forall_addChar_finitePart_mul_eq_one_iff_mem_traceDual3 below · depth 18 - Adelic Fourier inversion for pure tensors
NumberField.AdelicFourier.fourierIntegral_fourierIntegral_eq_of_mem_pureTensorSet28 below · depth 18 - Adelic Fourier transform preserves the Schwartz–Bruhat space
NumberField.AdelicFourier.fourierIntegral_mem_schwartzBruhat_of_apply_eq_fourierChar_trace13 below · depth 18 - Factorisation of the finite-adelic Fourier transform of an S-standard function
NumberField.AdelicFourier.inv_measure_mul_fourierIntegral_finiteAdeleRing_prod_mul_indicator_eq1 below · depth 18 - Adelic Poisson summation on the Schwartz–Bruhat space
NumberField.AdelicFourier.tsum_eq_inv_measure_mul_tsum_fourierIntegral36 below · depth 18 - Principal adeles preserve the adelic Haar measure
NumberField.AdelicHaar.measurePreserving_mul_algebraMap_adelicAddHaar2 below · depth 18 - Entire continuation and functional equation of Tate's zeta integral
NumberField.TateGlobal.zetaIntegral_entire_continuation_fe_norm_le_of_re_mem_Icc_of_exists_mem_normOneIdeles_ne_one45 below · depth 18 - Entire continuation and functional equation of Tate's zeta integral
NumberField.TateGlobal.zetaIntegral_entire_continuation_fe_of_exists_mem_normOneIdeles_ne_one45 below · depth 18 - Adjointness relations for Hecke eigenvalues under a covariant pairing
AutomorphicForm.a_mul_conj_b_eq_and_norm_b_eq_of_sesqForm_covariant_of_ne_zero4 below · depth 19 - C² regularity along the unipotent archimedean direction over ℚ
AutomorphicForm.contDiff_apply_unipotentGL2_mixedSpace_mul_of_isArchSmoothAt_rat0 below · depth 19 - Continuity of unipotent Schwartz–Bruhat averages on GL₂(A_F)
AutomorphicForm.continuous_unipotentAverage6 below · depth 19 - Uniform square-integral bound over unipotent translates high in a Siegel set
AutomorphicForm.exists_forall_setLIntegral_nnnorm_sq_le_mul_archHeight_pow_mul_setLIntegral_of_isLsXiFunction_of_coversModCentre5 below · depth 19 - Non-vanishing Whittaker coefficient at a principal idele
AutomorphicForm.exists_mem_principalIdeles_whittakerCoefficient_one_diagOne_mul_ne_zero24 below · depth 19 - Support of the first Whittaker coefficient on the torus diag(b,1)
AutomorphicForm.exists_whittakerCoefficient_one_diagOne_eq_zero_of_exp_lt_valuation24 below · depth 19 - Schwartz–Bruhat unipotent averages of cuspidal functions are cuspidal
AutomorphicForm.isCuspidalFn_unipotentAverage3 below · depth 19 - Local double-coset sums preserve isotypic cusp forms
AutomorphicForm.isIsotypicCuspFormAt_sum_apply_mul_finEmbed_localEmbed_of_isHeckeCosetSystem23 below · depth 19 - Right convolution by a factorizable test function is K_f-smooth
AutomorphicForm.isKfSmooth_rightConv1 below · depth 19 - K_f-smoothness of unipotent Schwartz–Bruhat averages
AutomorphicForm.isKfSmooth_unipotentAverage0 below · depth 19 - Left GL₂(F)-invariance of unipotent averages
AutomorphicForm.unipotentAverage_globalPoints_mul0 below · depth 19 - Integrability and summability of adelic Whittaker coefficients over ℚ
AutomorphicForm.whittakerCoefficientIntegrable_and_summable_of_isKfSmooth_of_contDiff12 below · depth 19 - Vanishing of the Whittaker coefficient at g Gᵥ^{-(k+1)}
AutomorphicForm.whittakerCoefficient_mul_heckeGen_pow_inv_eq_zero1 below · depth 19 - Whittaker coefficient: Hecke representatives raise the exponent
AutomorphicForm.whittakerCoefficient_mul_heckeGen_pow_mul_localRepSome_eq1 below · depth 19 - Central step-down of Whittaker coefficients along Hecke powers
AutomorphicForm.whittakerCoefficient_mul_heckeGen_pow_succ_mul_localRepInf_eq0 below · depth 19 - Whittaker coefficients of a unipotent average at diag(a,1)
AutomorphicForm.whittakerCoefficient_unipotentAverage_diagOne5 below · depth 19 - Adelic lifts are left-invariant under rational unipotents
CuspForm.IsAdelicLiftOfGamma1.apply_unipotentGL2_algebraMap_mul0 below · depth 19 - Adelic lifts of weight-two cusp forms are C² along the unipotent line
CuspForm.IsAdelicLiftOfGamma1.contDiff_two_unipotentGL2_ratArchLine_mul5 below · depth 19 - Finite-level factorisation of an adelic integral into local integrals
EisensteinGeneral.Factorization.inv_measure_mul_setIntegral_integralOffSet_finprod_eq0 below · depth 19 - Hecke coset system for Uᵥ at a place dividing the level
HeckeIntegralSeam.exists_isHeckeCosetSystem_localRepSome_heckeGen_of_dvd0 below · depth 19 - Archimedean derivatives and Casimir commute with Whittaker integration
LanglandsTunnell.isArchSmoothAt_whittakerCoefficient_and_archDerivAt_comm0 below · depth 19 - Box-normalised adelic integral of a pure tensor
NumberField.AdelicBox.inv_measure_adelicBox_mul_integral_pureTensor_eq1 below · depth 19 - Finite part of a trace-normalised global additive character at principal points
NumberField.AdelicFourier.addChar_zero_finitePart_algebraMap_eq_fourierChar_neg_trace1 below · depth 19 - Adelic Fourier inversion for pure tensors
NumberField.AdelicFourier.fourierIntegral_fourierIntegral_eq_of_mem_pureTensorSet_of_apply_eq_fourierChar_trace19 below · depth 19 - Finite-adelic Fourier transform preserves Schwartz–Bruhat functions
NumberField.AdelicFourier.isLocallyConstant_and_hasCompactSupport_fourierIntegral_finiteAdeleRing7 below · depth 19 - Adelic Poisson summation with translation
NumberField.AdelicFourier.tsum_translate_eq_inv_measure_mul_tsum_fourierIntegral35 below · depth 19 - Agreement of Hecke eigensystems from an invariant pairing
AutomorphicForm.agreesAwayFromFinite_of_projInvariant_sesqForm_ne_zero1 below · depth 20 - Constant term of the Bruhat Eisenstein series for Re s>1/2
AutomorphicForm.constantTerm_bruhatEisenstein_eq_section_add_weylIntertwiningIntegral1 below · depth 20 - Cuspidal functions trivial under SL₂(ℝ) at a real place vanish
AutomorphicForm.eq_zero_of_isCuspidalFn_of_forall_apply_mul_archRealGLAt_eq10 below · depth 20 - Analytic continuation and rapid decay of the non-constant part of Eₛ
AutomorphicForm.exists_analyticOnNhd_bruhatEisenstein_sub_constantTerm_norm_le_rpow_neg_of_isArchKFinite_family121 below · depth 20 - Regularised Weyl intertwining integral continues past Re s=1/2
AutomorphicForm.exists_analyticOnNhd_sub_one_half_mul_weylIntertwiningIntegral_isInducedSection_of_isArchKFinite_family65 below · depth 20 - Archimedean derivative of a unipotent average's first Whittaker coefficient
AutomorphicForm.exists_mem_schwartzBruhat_whittakerCoefficient_unipotentAverage_diagOne_eq_trace_mul8 below · depth 20 - Whittaker expansion over principal ideles of a cuspidal function
AutomorphicForm.hasSum_whittakerCoefficient_one_diagOne_principalIdeles_mul23 below · depth 20 - Parseval identity for Whittaker coefficients on the adelic box
AutomorphicForm.integral_mul_conj_eq_tsum_whittakerCoefficient_mul_conj6 below · depth 20 - Parseval step of Rankin–Selberg unfolding over the rational torus
AutomorphicForm.integral_mul_conj_unipotent_eq_tsum_units_whittakerCoefficient_one_diagOne_and_tsum_norm_le12 below · depth 20 - Absolute summability of Whittaker coefficients on GL₂
AutomorphicForm.summable_norm_whittakerCoefficient_of_isKfSmooth_of_contDiff_mixedSpace12 below · depth 20 - Locally constant compactly supported finite-adelic functions span indicator cosets
NumberField.AdelicBox.exists_eq_sum_indicator_image_integralFiniteAdeles0 below · depth 20 - Affine invariance of adelic box integrals of F-periodic functions
NumberField.AdelicBox.setLIntegral_adelicBox_comp_mul_add_eq_of_periodic3 below · depth 20 - Fourier inversion on the finite adeles with explicit constant
NumberField.AdelicFourier.fourierIntegral_fourierIntegral_finiteAdeleRing_eq12 below · depth 20 - Compactness and openness of the annihilator of widehat𝒪_F
NumberField.AdelicFourier.isCompact_and_isOpen_setOf_forall_addChar_finitePart_mul_eq_one5 below · depth 20 - Adelic Poisson summation for pure tensors, unnormalised measure
NumberField.AdelicFourier.tsum_eq_inv_measure_mul_tsum_fourierIntegral_of_mem_pureTensorSet25 below · depth 20 - Adelic factorisation of an unramified intertwining integral
AutomorphicForm.LocalIntertwining.integral_adeleRing_pureTensor_prod_mul_finprod_unramifiedWeylIntegrand_mul_tprod5 below · depth 21 - Whittaker coefficients of unipotent right translates at torus points
AutomorphicForm.whittakerCoefficient_finset_sum_mul_unipotentGL2_diagOne_mul1 below · depth 21 - Factorisation of an adelic integral into local integrals
EisensteinGeneral.Factorization.integrable_finprod_and_inv_measure_mul_integral_eq_tprod0 below · depth 21 - Integrability of split functions on the adele ring
EisensteinGeneral.Glue.integrable_mul_of_integrable_of_integrable1 below · depth 21 - Euler factorisation of the unipotent GL₃× GL₁ zeta integral
LanglandsTunnell.CubicInduction.globalZeta31_eq_mul_integral_sPart_mul_of_hasProd_localZeta31_of_integrable10 below · depth 21 - Double annihilator of the integral finite adeles
NumberField.AdelicFourier.forall_addChar_finitePart_mul_eq_one_of_forall_iff_mem_integralFiniteAdeles4 below · depth 21 - Finite-adelic Fourier transform of a principal coset indicator
NumberField.AdelicFourier.fourierIntegral_indicator_principalCoset_finiteAdeleRing_apply0 below · depth 21 - Haar volume of the annihilator of widehat𝒪_F
NumberField.AdelicFourier.measure_setOf_forall_addChar_finitePart_mul_eq_one6 below · depth 21 - Character orthogonality over a compact subgroup of the finite adeles
NumberField.AdelicFourier.setIntegral_addChar_mul_eq_ite_of_isCompact0 below · depth 21 - Adelic Poisson summation for pure tensors, normalised Haar measure
NumberField.AdelicFourier.tsum_eq_tsum_fourierIntegral_of_mem_pureTensorSet_of_measure_adelicBox_eq_one24 below · depth 21 - Meromorphic continuation and functional equation of Tate's zeta integral
NumberField.TateGlobal.zetaIntegral_meromorphic_continuation_fe45 below · depth 21 - Finite-adelic unramified intertwining integral as an Euler product
AutomorphicForm.LocalIntertwining.integral_finiteAdeleRing_prod_mul_finprod_unramifiedWeylIntegrand_mul_tprod2 below · depth 22 - Analytic non-constant part of the Bruhat Eisenstein family
AutomorphicForm.exists_analyticOnNhd_bruhatEisenstein_sub_constantTerm_norm_le_rpow_neg_of_isArchKFinite_family_of_unitary116 below · depth 22 - Regularised Weyl intertwining integral, distinct unitary characters
AutomorphicForm.exists_analyticOnNhd_sub_mul_weylIntertwiningIntegral_isInducedSection_of_ne_of_isArchKFinite_family109 below · depth 22 - Uniform Haar bound for unipotent sweeps over a centre-cut Siegel set
AutomorphicForm.exists_forall_adelicGLHaar_image2_unipotentGL2_mul_mul_le_of_isCompact0 below · depth 22 - Fibre-sum spectral comparison for twisted GL₂ at prime degree
AutomorphicForm.fibreSum_twistedCutTrace_eq_const_mul_fibreSum_cutTrace_of_docks_ed23,000 below · depth 22 - Unfolding the Whittaker coefficient of a Bruhat-form Eisenstein series
EisensteinGeneral.Unfolding.whittakerCoefficient_bruhatSeries_eq_of_isInducedSection1 below · depth 22 - Principal finite adeles in the coset k + dwidehat𝒪_F
NumberField.AdelicBox.algebraMap_mem_image_integralFiniteAdeles_iff0 below · depth 22 - Adelic Poisson summation for pure tensors, normalised
NumberField.AdelicFourier.tsum_eq_tsum_fourierIntegral_of_mem_pureTensorSet_of_apply_eq_fourierChar_trace20 below · depth 22 - Tate's global zeta integral: holomorphy at s=1 for χ≠ 1
NumberField.TateGlobal.zetaIntegral_meromorphic_continuation_fe_analyticAt_one_of_ne_one45 below · depth 22 - Hecke word comparison of twisted and untwisted cut traces
AutomorphicForm.exists_atoms_forall_exists_noAtomicMass_heckeWordSum_twistedCutTrace_sub_finrank_mul_const_mul_heckeWordSum_cutTrace_eq2,972 below · depth 23 - Formal base change of an Eisenstein Hecke table is Eisenstein
AutomorphicForm.exists_eisensteinTableOf_eq_formalBaseChange_eisensteinTableOf6 below · depth 23 - Fibre-sum vanishing from monomial identities at places of record
AutomorphicForm.forall_finset_fibreSum_sub_const_mul_fibreSum_add_eq_zero_of_forall_places_exists_noAtomicMass_wordSum_eq1 below · depth 23 - Satake data constant on fibres over K, given word-shift
AutomorphicForm.satakeData_eq_of_under_eq_of_twistedCutTrace_ne_zero_of_heckeWordShift0 below · depth 23 - Absolute summability of Siegel-pinned cut traces on GL₂
AutomorphicForm.summable_norm_cutTrace_of_isUnitFactorizableOfTypeAt_of_coversModCentre96 below · depth 23 - Satake table of a principal-level cuspidal class lies in a box
AutomorphicForm.table_mem_box_of_mem_cuspClasses_siegel119 below · depth 23 - Hecke tables of cuspidal slab classes lie in the box
AutomorphicForm.table_mem_box_of_mem_cuspClasses_slab18 below · depth 23 - Haar measure of the coset k+dwidehat𝒪_F
NumberField.AdelicBox.absNorm_mul_measure_image_integralFiniteAdeles0 below · depth 23 - Indicator of the coset k+dwidehat𝒪_F is locally constant, compactly supported
NumberField.AdelicBox.isLocallyConstant_and_hasCompactSupport_indicator_image_integralFiniteAdeles0 below · depth 23 - Finite-adelic Fourier transform of a principal-coset indicator
NumberField.AdelicFourier.fourierIntegral_indicator_principalCoset_finiteAdeleRing0 below · depth 23 - Hecke generator inverse double-coset relation at level U₁(N)
NumberField.AdelicLevel.exists_heckeGen_inv_eq_centralScalar_mul_mul_heckeGen_mul_levelOne1 below · depth 23 - Double-coset inversion relation for Hecke generators at principal level
NumberField.AdelicLevel.exists_heckeGen_inv_eq_centralScalar_mul_mul_heckeGen_mul_principalLevel1 below · depth 23 - Per-word twisted spectral comparison from the remainder rows
AutomorphicForm.heckeWordSum_twistedCutTrace_sub_const_mul_heckeWordSum_cutTrace_add_atoms_eq_of_remainder_rows_of_comparison194 below · depth 24 - Godement's lemma: absolute convergence of the Bruhat series for Re s>1/2
AutomorphicForm.summable_norm_godementSection_adelicWeyl_unipotentGL2_mul_of_mem_schwartzBruhat2_of_half_lt_re60 below · depth 24 - Polar decomposition and functional equation of Godement–Eisenstein series
LanglandsTunnell.RankinSelberg.exists_entire_sub_polarPart_godementEisenstein_isUniformlySiegelBounded_fe_of_mem_schwartzBruhat285 below · depth 24 - Polar decomposition and functional equation of (1,1) Godement–Eisenstein series
LanglandsTunnell.RankinSelberg.exists_entire_sub_polarPart_godementEisenstein_one_one_isUniformlySiegelBounded_fe_of_mem_schwartzBruhat285 below · depth 24 - Unfolding the GL₂timesGL₂ Rankin–Selberg integral
LanglandsTunnell.RankinSelberg.exists_rs22GlobalIntegral_godementEisenstein_eq_mul_rs22WhittakerIntegral_of_isUnitaryChar_of_re_pos_of_forall_summable_of_integrable101 below · depth 24 - Bounded denominators on the compact support of a finite-adelic function
NumberField.AdelicBox.exists_denom_of_hasCompactSupport0 below · depth 24 - Hecke generator inverse in a central-times-level double coset
NumberField.AdelicLevel.exists_heckeGen_inv_eq_centralScalar_mul_mul_heckeGen_mul_of_forall_finEmbed_localEmbed_mem0 below · depth 24 - Absolute summability of cut traces over Siegel-pinned cusp classes
AutomorphicForm.summable_norm_cutTrace_of_isUnitFactorizableOfTypeAt_of_coversModCentre_of_subset96 below · depth 25 - Pole of the GL₃ Epstein integral against |φ|²
LanglandsTunnell.CubicInduction.AdelicEpstein.integrable_and_tendsto_sub_one_mul_integral_epstein_of_pureTensor16 below · depth 25 - Unfolding a GL₃ Epstein integral to the Whittaker quotient
LanglandsTunnell.CubicInduction.exists_pos_lt_top_lintegral_slab_eq_mul_pow_three_mul_lintegral_quotientMeasure29 below · depth 25 - Adelic theta transformation formula on GL₂
NumberField.AdelicFourier.tsum_apply_smul_vecMul_add_eq_ideleNorm_cpow_neg_two_mul_tsum_reflectPair_of_mem_schwartzBruhat226 below · depth 25 - Countable complete orthonormal flat families of induced sections
AutomorphicForm.exists_countable_orthonormal_flat_isInducedSection_family_complete_principalLevel_archCutSubmodule18 below · depth 26 - Twisted principal-series Hecke table is an Eisenstein table
AutomorphicForm.exists_eisensteinTableOf_eq_table_of_isUnitaryChar_of_isUnramifiedCharAt7 below · depth 26 - Maass–Selberg relation on the unitary axis, flat families
AutomorphicForm.exists_forall_integrableOn_and_setIntegral_lambdaT_axis_continuation_mul_conj_eq_maassSelberg_or_twoTerm_slab_of_flat271 below · depth 26 - Integrability of the ξ-folded truncated twisted GL₂ kernel
AutomorphicForm.exists_forall_le_integrableOn_mul_lambdaT_twistedAdelicKernel_canonicalTruncationDomain_prod86 below · depth 26 - Integrated continuous-spectrum identity for the truncated GL₂ kernel
AutomorphicForm.exists_forall_setIntegral_lambdaT_finsum_sub_lambdaT_tsum_sub_lambdaT_finsum_chiDet_eq_mul_integral_sum_rightConv_mul_setIntegral_lambdaT_axis_continuation1,261 below · depth 26 - Summable dominant for continuous-spectrum Maass–Selberg pairings
AutomorphicForm.exists_summable_dominant_rightConv_axis_family_maassSelberg_pairings_of_isUnitFactorization_sum_lipschitz414 below · depth 26 - Self-adjointness of M(0) on flat sections, case μ=ν
AutomorphicForm.integral_mul_conj_axis_continuation_weylIntertwiningIntegral_zero_eq_of_eq_of_flat272 below · depth 26 - Twisting an induced section by ‖det‖^{w/2}
AutomorphicForm.isInducedSection_mul_cpowChar_and_continuous_and_maximalCompactAway_of_isInducedSection_of_principalLevel4 below · depth 26 - Twisting by a complex power of the idelic modulus preserves unramifiedness
AutomorphicForm.isUnramifiedCharAt_mul_cpowChar_of_isUnramifiedCharAt2 below · depth 26 - Induced sections of level N force characters unramified outside N
AutomorphicForm.isUnramifiedCharAt_of_isInducedSection_etaFst_etaSnd_of_ne_zero_of_principalLevel3 below · depth 26 - Unitary principal-series tables lie in the ξ-box
AutomorphicForm.table_axis_mem_setOf_xiBox_of_isUnitaryChar_of_mul_mul_rpow_eq0 below · depth 26 - Simple pole at σ=1 of the adelic Epstein integral on GL₃
LanglandsTunnell.CubicInduction.AdelicEpstein.exists_forall_epstein_eq_div_sub_one_add_of_pureTensor13 below · depth 26 - Box sheet is a fundamental domain for rational unipotent points
LanglandsTunnell.CubicInduction.isFundamentalDomain_boxSheet_rationalUnipotent31 below · depth 26 - Parseval identity for the GL₃ box-conditioned Whittaker expansion
LanglandsTunnell.CubicInduction.lintegral_box_norm_sq_radicalCoefficient_eq_tsum_norm_sq_whittaker3_diag10 below · depth 26 - Parseval identity along the (2,1) unipotent radical of GL₃
LanglandsTunnell.CubicInduction.lintegral_box_norm_sq_radicalP21_eq_tsum_norm_sq_radicalCoefficient10 below · depth 26 - Transport of radical Fourier coefficients along GL₂(ℚ)
LanglandsTunnell.CubicInduction.radicalCoefficient_eq_radicalCoefficient_psi_neg_iotaGL_globalPoints_mul4 below · depth 26 - Box-indicator decomposition of Schwartz–Bruhat functions on finite adeles
NumberField.AdelicBox.exists_eq_sum_indicator_pi_image_integralFiniteAdeles1 below · depth 26
… and 407 more statements (search for the module name to find them).