Definitions/Def_AutomorphicForm_CentreCutSiegelSet.lean
Centre-cut Siegel sets and capped compact blocks for adelic GL(2)
Fix a number field F and work in the project's adelic group AdelicGL2 (π F) F of invertible 2\times 2 matrices over the adele ring of F, with its finite and archimedean projections glFin, glArch and, for each infinite place w, the component map archComponent F w landing in \mathrm{GL}_2(F_w). The module defines, for real parameters c,u,d_1,d_2, the set centreCutSiegelSet F c u dβ dβ of all g such that (i) the finite part of g lies in the subgroup finiteIntegralGL2 (integral matrices, integral inverse), and, for every infinite place w, (ii) localHeight of g_w is \ge c, (iii) xWindowSq of g_w is \le u^2, (iv) archDetNorm w g lies in the closed interval [d_1,d_2]. The three archimedean quantities are defined in the imported modules; the proofs here use the identities \texttt{localHeight}(g)=\lVert\det g\rVert/\texttt{rowNormSq}(g) and \texttt{topNormSq}(g)=\texttt{rowNormSq}(g)\,(\texttt{xWindowSq}(g)+\texttt{localHeight}(g)^2), with rowNormSq, topNormSq the squared norms of the second, respectively first, row, and archDetNorm w g =\lVert\det g_w\rVert. Note that the determinant window is imposed separately at each infinite place. The second definition, cappedSiegelBlock F c u dβ dβ, intersects the above with the ceiling condition \texttt{localHeight}(g_w)\le 4c at every infinite place.
The accompanying lemmas give: the membership unfolding; membership of 1 under c\le 1, d_1\le 1\le d_2; failure of stability under the centre (for d_2<4 there is a central element, a scalar 2 at one infinite place, moving 1 out of the set); containment in integralWindowedSiegelSet F (c ^ β w, w.mult) u; measurability and closedness; continuity of the local height and of the x-window at a fixed place; membership of 1 in the interior under the strict margins c<1, u\ne 0, d_1<1<d_2, hence a nonempty open subset. A generic section bounds, over any normed field K, the entries of g and of g^{-1} in terms of c,u,d_1,d_2 under the clauses c\le\texttt{localHeight}(g)\le 4c, \texttt{xWindowSq}(g)\le u^2, \lVert\det g\rVert\in[d_1,d_2], and deduces compactness of that block of \mathrm{GL}_2(K) when K is proper and c,d_1>0; properSpace_completion supplies properness of F_w, and isCompact_cappedSiegelBlock transfers the argument to the adelic capped block. No covering statement and no Haar-measure statement is made here.
Relation to Mathlib
Mathlib has no Siegel sets for adelic \mathrm{GL}_2; the sets and the height/window functions are the project's own (the latter from the imported modules). properSpace_completion proves a ProperSpace instance for InfinitePlace.Completion used locally rather than taken from Mathlib; the compactness arguments otherwise run through Mathlib's Units.embedProduct and product-of-closed-balls machinery.
Where it is used
These sets provide the measure-theoretic domain on \mathrm{GL}_2(\mathbb{A}_F) used in the project's adelic volume computations for automorphic forms on \mathrm{GL}_2: the determinant windows remove the central directions along which a pure product-height Siegel set has zero or infinite Haar measure, and the capped blocks supply the compact pieces out of which finiteness and positivity of the volume are assembled.
References
- A. Borel, Introduction aux groupes arithmΓ©tiques, Publications de l'Institut de MathΓ©matique de l'UniversitΓ© de Strasbourg XV, Hermann, 1969
- D. Bump, Automorphic Forms and Representations, Cambridge Studies in Advanced Mathematics 55, Cambridge University Press, 1997
- V. Platonov and A. Rapinchuk, Algebraic Groups and Number Theory, Pure and Applied Mathematics 139, Academic Press, 1994
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 562 lines
- 22 declarations
- used in the statements of 37 theorems and imported by 65 proofs
- imports 1 definition modules
Source file: Definitions/Def_AutomorphicForm_CentreCutSiegelSet.lean
Imports
Declarations
- def
AutomorphicForm.WindowedSiegel.centreCutSiegelSet - theorem
AutomorphicForm.WindowedSiegel.mem_centreCutSiegelSet_iff - theorem
AutomorphicForm.WindowedSiegel.one_mem_centreCutSiegelSet - theorem
AutomorphicForm.WindowedSiegel.not_centrally_stable_centreCutSiegelSet - theorem
AutomorphicForm.WindowedSiegel.centreCutSiegelSet_subset_integralWindowedSiegelSet - theorem
AutomorphicForm.WindowedSiegel.measurableSet_centreCutSiegelSet - theorem
AutomorphicForm.WindowedSiegel.continuous_localHeight_place - theorem
AutomorphicForm.WindowedSiegel.continuous_xWindowSq_place - theorem
AutomorphicForm.WindowedSiegel.one_mem_interior_centreCutSiegelSet - theorem
AutomorphicForm.WindowedSiegel.exists_isOpen_subset_centreCutSiegelSet - theorem
AutomorphicForm.WindowedSiegel.rowNormSq_le_of_clauses - theorem
AutomorphicForm.WindowedSiegel.topNormSq_le_of_clauses - theorem
AutomorphicForm.WindowedSiegel.entry_norm_le_of_clauses - theorem
AutomorphicForm.WindowedSiegel.inv_entry_norm_le_of_clauses - theorem
AutomorphicForm.WindowedSiegel.isCompact_glBlock - theorem
AutomorphicForm.WindowedSiegel.properSpace_completion - theorem
AutomorphicForm.WindowedSiegel.isCompact_archBlock - def
AutomorphicForm.WindowedSiegel.cappedSiegelBlock - theorem
AutomorphicForm.WindowedSiegel.mem_cappedSiegelBlock_iff - theorem
AutomorphicForm.WindowedSiegel.isClosed_centreCutSiegelSet - theorem
AutomorphicForm.WindowedSiegel.isClosed_cappedSiegelBlock - theorem
AutomorphicForm.WindowedSiegel.isCompact_cappedSiegelBlock
Source
import Definitions.Def_NumberField_AdelicVolume open MeasureTheory Set IsDedekindDomain NumberField Metric noncomputable section namespace AutomorphicForm namespace WindowedSiegel open NumberField.AdelicLevel NumberField.AdelicVolume NumberField.AdelicCentre variable (F : Type) [Field F] [NumberField F] def centreCutSiegelSet (c u dβ dβ : β) : Set (AdelicGL2 (π F) F) := {g | glFin (π F) F g β finiteIntegralGL2 (π F) F β§ (β w : InfinitePlace F, c β€ localHeight (archComponent F w (glArch (π F) F g))) β§ (β w : InfinitePlace F, xWindowSq (archComponent F w (glArch (π F) F g)) β€ u ^ 2) β§ (β w : InfinitePlace F, archDetNorm w g β Icc dβ dβ)} variable {F} theorem mem_centreCutSiegelSet_iff {c u dβ dβ : β} {g : AdelicGL2 (π F) F} : g β centreCutSiegelSet F c u dβ dβ β glFin (π F) F g β finiteIntegralGL2 (π F) F β§ (β w : InfinitePlace F, c β€ localHeight (archComponent F w (glArch (π F) F g))) β§ (β w : InfinitePlace F, xWindowSq (archComponent F w (glArch (π F) F g)) β€ u ^ 2) β§ (β w : InfinitePlace F, archDetNorm w g β Icc dβ dβ) := Iff.rfl theorem one_mem_centreCutSiegelSet {c u dβ dβ : β} (hc : c β€ 1) (hdβ : dβ β€ 1) (hdβ : 1 β€ dβ) : (1 : AdelicGL2 (π F) F) β centreCutSiegelSet F c u dβ dβ := by refine β¨?_, fun w => ?_, fun w => ?_, fun w => ?_β© Β· rw [map_one] exact Subgroup.one_mem _ Β· rw [map_one, map_one, localHeight_one] exact hc Β· rw [map_one, map_one, xWindowSq_one] positivity Β· unfold archDetNorm rw [map_one, map_one, Units.val_one, Matrix.det_one, norm_one] exact β¨hdβ, hdββ© theorem not_centrally_stable_centreCutSiegelSet {c u dβ dβ : β} (hc : c β€ 1) (hdβ : dβ β€ 1) (hdβ : 1 β€ dβ) (hdβ4 : dβ < 4) : β z g, g β centreCutSiegelSet F c u dβ dβ β§ z * g β centreCutSiegelSet F c u dβ dβ β§ z β Subgroup.center (AdelicGL2 (π F) F) := by obtain β¨vββ© := (inferInstance : Nonempty (InfinitePlace F)) have haβ : β(2 : vβ.Completion)β = 2 := norm_two_completion vβ have ha0 : (2 : vβ.Completion) β 0 := by intro h rw [h, norm_zero] at haβ norm_num at haβ refine β¨centralScalar (π F) F (archCentralUnit F vβ (Units.mk0 2 ha0)), 1, one_mem_centreCutSiegelSet hc hdβ hdβ, fun hmem => ?_, ?_β© case refine_2 => rw [center_eq_range_scalar] exact β¨_, rflβ© have h4 := (mem_centreCutSiegelSet_iff.mp hmem).2.2.2 vβ rw [archDetNorm_centralScalar_mul] at h4 unfold archDetNorm at h4 rw [map_one, map_one, Units.val_one, Matrix.det_one, norm_one, mul_one, Units.val_mk0, haβ] at h4 have : (2 : β) * 2 β€ dβ := h4.2 linarith theorem centreCutSiegelSet_subset_integralWindowedSiegelSet {c u dβ dβ : β} (hc : 0 β€ c) : centreCutSiegelSet F c u dβ dβ β integralWindowedSiegelSet F (c ^ (β w : InfinitePlace F, w.mult)) u := by rintro g β¨hK, hfloor, hwin, -β© refine β¨hK, ?_, hwinβ© unfold archHeight rw [β Finset.prod_pow_eq_pow_sum] exact Finset.prod_le_prod (fun w _ => pow_nonneg hc _) (fun w _ => pow_le_pow_leftβ hc (hfloor w) _) theorem measurableSet_centreCutSiegelSet {mS : MeasurableSpace (AdelicGL2 (π F) F)} [BorelSpace (AdelicGL2 (π F) F)] (c u dβ dβ : β) : MeasurableSet (centreCutSiegelSet F c u dβ dβ) := by have hK : IsOpen {g : AdelicGL2 (π F) F | glFin (π F) F g β finiteIntegralGL2 (π F) F} := (isOpen_finiteLevelZero (R := π F) (K := F) (N := β€) (by simp)).preimage (continuous_glFin (π F) F) have hfloor : β w : InfinitePlace F, IsClosed {g : AdelicGL2 (π F) F | c β€ localHeight (archComponent F w (glArch (π F) F g))} := fun w => isClosed_le continuous_const ((continuous_localHeight).comp ((continuous_archComponent F w).comp (continuous_glArch (π F) F))) have hwin : β w : InfinitePlace F, IsClosed {g : AdelicGL2 (π F) F | xWindowSq (archComponent F w (glArch (π F) F g)) β€ u ^ 2} := fun w => isClosed_le ((continuous_xWindowSq).comp ((continuous_archComponent F w).comp (continuous_glArch (π F) F))) continuous_const have hdet : β w : InfinitePlace F, IsClosed {g : AdelicGL2 (π F) F | archDetNorm w g β Icc dβ dβ} := fun w => isClosed_Icc.preimage (continuous_archDetNorm w) have : centreCutSiegelSet F c u dβ dβ = {g | glFin (π F) F g β finiteIntegralGL2 (π F) F} β© ((β w : InfinitePlace F, {g | c β€ localHeight (archComponent F w (glArch (π F) F g))}) β© ((β w : InfinitePlace F, {g | xWindowSq (archComponent F w (glArch (π F) F g)) β€ u ^ 2}) β© (β w : InfinitePlace F, {g | archDetNorm w g β Icc dβ dβ}))) := by ext g simp only [mem_centreCutSiegelSet_iff, mem_inter_iff, mem_setOf_eq, mem_iInter] rw [this] exact hK.measurableSet.inter (((isClosed_iInter hfloor).measurableSet).inter (((isClosed_iInter hwin).measurableSet).inter ((isClosed_iInter hdet).measurableSet))) theorem continuous_localHeight_place (w : InfinitePlace F) : Continuous fun g : AdelicGL2 (π F) F => localHeight (archComponent F w (glArch (π F) F g)) := continuous_localHeight.comp ((continuous_archComponent F w).comp (continuous_glArch (π F) F)) theorem continuous_xWindowSq_place (w : InfinitePlace F) : Continuous fun g : AdelicGL2 (π F) F => xWindowSq (archComponent F w (glArch (π F) F g)) := continuous_xWindowSq.comp ((continuous_archComponent F w).comp (continuous_glArch (π F) F)) theorem one_mem_interior_centreCutSiegelSet {c u dβ dβ : β} (hc : c < 1) (hu : u β 0) (hdβ : dβ < 1) (hdβ : 1 < dβ) : (1 : AdelicGL2 (π F) F) β interior (centreCutSiegelSet F c u dβ dβ) := by have hK : IsOpen {g : AdelicGL2 (π F) F | glFin (π F) F g β finiteIntegralGL2 (π F) F} := (isOpen_finiteLevelZero (R := π F) (K := F) (N := β€) (by simp)).preimage (continuous_glFin (π F) F) have hfloor : IsOpen {g : AdelicGL2 (π F) F | β w : InfinitePlace F, c < localHeight (archComponent F w (glArch (π F) F g))} := by have hset : {g : AdelicGL2 (π F) F | β w : InfinitePlace F, c < localHeight (archComponent F w (glArch (π F) F g))} = β w : InfinitePlace F, {g : AdelicGL2 (π F) F | c < localHeight (archComponent F w (glArch (π F) F g))} := by ext g simp [Set.mem_iInter] rw [hset] exact isOpen_iInter_of_finite fun w => isOpen_lt continuous_const (continuous_localHeight_place w) have hwin : IsOpen {g : AdelicGL2 (π F) F | β w : InfinitePlace F, xWindowSq (archComponent F w (glArch (π F) F g)) < u ^ 2} := by have hset : {g : AdelicGL2 (π F) F | β w : InfinitePlace F, xWindowSq (archComponent F w (glArch (π F) F g)) < u ^ 2} = β w : InfinitePlace F, {g : AdelicGL2 (π F) F | xWindowSq (archComponent F w (glArch (π F) F g)) < u ^ 2} := by ext g simp [Set.mem_iInter] rw [hset] exact isOpen_iInter_of_finite fun w => isOpen_lt (continuous_xWindowSq_place w) continuous_const have hdet : IsOpen {g : AdelicGL2 (π F) F | β w : InfinitePlace F, archDetNorm w g β Ioo dβ dβ} := by have hset : {g : AdelicGL2 (π F) F | β w : InfinitePlace F, archDetNorm w g β Ioo dβ dβ} = β w : InfinitePlace F, {g : AdelicGL2 (π F) F | archDetNorm w g β Ioo dβ dβ} := by ext g simp [Set.mem_iInter] rw [hset] exact isOpen_iInter_of_finite fun w => isOpen_Ioo.preimage (continuous_archDetNorm w) rw [mem_interior] refine β¨{g : AdelicGL2 (π F) F | glFin (π F) F g β finiteIntegralGL2 (π F) F} β© ({g | β w : InfinitePlace F, c < localHeight (archComponent F w (glArch (π F) F g))} β© ({g | β w : InfinitePlace F, xWindowSq (archComponent F w (glArch (π F) F g)) < u ^ 2} β© {g | β w : InfinitePlace F, archDetNorm w g β Ioo dβ dβ})), fun g hg => β¨hg.1, fun w => (hg.2.1 w).le, fun w => (hg.2.2.1 w).le, fun w => β¨(hg.2.2.2 w).1.le, (hg.2.2.2 w).2.leβ©β©, hK.inter (hfloor.inter (hwin.inter hdet)), ?_, ?_, ?_, ?_β© Β· show glFin (π F) F 1 β finiteIntegralGL2 (π F) F rw [map_one] exact Subgroup.one_mem _ Β· intro w show c < localHeight (archComponent F w (glArch (π F) F 1)) rw [map_one, map_one, localHeight_one] exact hc Β· intro w show xWindowSq (archComponent F w (glArch (π F) F 1)) < u ^ 2 rw [map_one, map_one, xWindowSq_one] positivity Β· intro w show archDetNorm w 1 β Ioo dβ dβ unfold archDetNorm rw [map_one, map_one, Units.val_one, Matrix.det_one, norm_one] exact β¨hdβ, hdββ© theorem exists_isOpen_subset_centreCutSiegelSet {c u dβ dβ : β} (hc : c < 1) (hu : u β 0) (hdβ : dβ < 1) (hdβ : 1 < dβ) : β U : Set (AdelicGL2 (π F) F), IsOpen U β§ U.Nonempty β§ U β centreCutSiegelSet F c u dβ dβ := β¨interior (centreCutSiegelSet F c u dβ dβ), isOpen_interior, β¨1, one_mem_interior_centreCutSiegelSet hc hu hdβ hdββ©, interior_subsetβ© section GenericBlock variable {K : Type*} [NormedField K] theorem rowNormSq_le_of_clauses {g : GL (Fin 2) K} {c dβ : β} (hc : 0 < c) (hlh : c β€ localHeight g) (hdet : β((g : Matrix (Fin 2) (Fin 2) K)).detβ β€ dβ) : rowNormSq (g : Matrix (Fin 2) (Fin 2) K) β€ dβ / c := by have hrow := rowNormSq_pos g have h1 : c * rowNormSq (g : Matrix (Fin 2) (Fin 2) K) β€ β((g : Matrix (Fin 2) (Fin 2) K)).detβ := by have h2 : c β€ β((g : Matrix (Fin 2) (Fin 2) K)).detβ / rowNormSq (g : Matrix (Fin 2) (Fin 2) K) := hlh rw [le_div_iffβ hrow] at h2 linarith rw [le_div_iffβ hc] nlinarith theorem topNormSq_le_of_clauses {g : GL (Fin 2) K} {c u dβ : β} (hc : 0 < c) (hlh : c β€ localHeight g) (hlh4 : localHeight g β€ 4 * c) (hxw : xWindowSq g β€ u ^ 2) (hdet : β((g : Matrix (Fin 2) (Fin 2) K)).detβ β€ dβ) : topNormSq (g : Matrix (Fin 2) (Fin 2) K) β€ dβ / c * (u ^ 2 + (4 * c) ^ 2) := by have hrow := rowNormSq_pos g have hrowle := rowNormSq_le_of_clauses hc hlh hdet have htop : topNormSq (g : Matrix (Fin 2) (Fin 2) K) = rowNormSq (g : Matrix (Fin 2) (Fin 2) K) * (xWindowSq g + localHeight g ^ 2) := by unfold xWindowSq field_simp ring rw [htop] have hlh0 : 0 β€ localHeight g := le_trans hc.le hlh have hxlh : xWindowSq g + localHeight g ^ 2 β€ u ^ 2 + (4 * c) ^ 2 := by have : localHeight g ^ 2 β€ (4 * c) ^ 2 := by nlinarith linarith have hxlh0 : 0 β€ xWindowSq g + localHeight g ^ 2 := by have h1 : 0 β€ topNormSq (g : Matrix (Fin 2) (Fin 2) K) := by unfold topNormSq; positivity nlinarith [htop, hrow] have hd20 : 0 β€ dβ / c := hrow.le.trans hrowle exact mul_le_mul hrowle hxlh hxlh0 hd20 theorem entry_norm_le_of_clauses {g : GL (Fin 2) K} {c u dβ dβ : β} (hc : 0 < c) (hlh : c β€ localHeight g) (hlh4 : localHeight g β€ 4 * c) (hxw : xWindowSq g β€ u ^ 2) (hdet : β((g : Matrix (Fin 2) (Fin 2) K)).detβ β Icc dβ dβ) (i j : Fin 2) : β(g : Matrix (Fin 2) (Fin 2) K) i jβ β€ Real.sqrt (dβ / c * (1 + u ^ 2 + (4 * c) ^ 2)) := by have hrowle := rowNormSq_le_of_clauses hc hlh hdet.2 have htople := topNormSq_le_of_clauses hc hlh hlh4 hxw hdet.2 have hdβ0 : 0 β€ dβ / c := div_nonneg (le_trans (norm_nonneg _) hdet.2) hc.le have h00 : β(g : Matrix (Fin 2) (Fin 2) K) 0 0β ^ 2 β€ topNormSq (g : Matrix (Fin 2) (Fin 2) K) := by unfold topNormSq nlinarith [sq_nonneg β(g : Matrix (Fin 2) (Fin 2) K) 0 1β] have h01 : β(g : Matrix (Fin 2) (Fin 2) K) 0 1β ^ 2 β€ topNormSq (g : Matrix (Fin 2) (Fin 2) K) := by unfold topNormSq nlinarith [sq_nonneg β(g : Matrix (Fin 2) (Fin 2) K) 0 0β] have h10 : β(g : Matrix (Fin 2) (Fin 2) K) 1 0β ^ 2 β€ rowNormSq (g : Matrix (Fin 2) (Fin 2) K) := by unfold rowNormSq nlinarith [sq_nonneg β(g : Matrix (Fin 2) (Fin 2) K) 1 1β] have h11 : β(g : Matrix (Fin 2) (Fin 2) K) 1 1β ^ 2 β€ rowNormSq (g : Matrix (Fin 2) (Fin 2) K) := by unfold rowNormSq nlinarith [sq_nonneg β(g : Matrix (Fin 2) (Fin 2) K) 1 0β] have hsplit : dβ / c * (1 + u ^ 2 + (4 * c) ^ 2) = dβ / c + dβ / c * (u ^ 2 + (4 * c) ^ 2) := by ring have hterm : 0 β€ dβ / c * (u ^ 2 + (4 * c) ^ 2) := mul_nonneg hdβ0 (by positivity) have hRtop : topNormSq (g : Matrix (Fin 2) (Fin 2) K) β€ dβ / c * (1 + u ^ 2 + (4 * c) ^ 2) := by rw [hsplit] linarith have hRrow : rowNormSq (g : Matrix (Fin 2) (Fin 2) K) β€ dβ / c * (1 + u ^ 2 + (4 * c) ^ 2) := by rw [hsplit] linarith refine Real.le_sqrt_of_sq_le ?_ fin_cases i <;> fin_cases j Β· exact h00.trans hRtop Β· exact h01.trans hRtop Β· exact h10.trans hRrow Β· exact h11.trans hRrow theorem inv_entry_norm_le_of_clauses {g : GL (Fin 2) K} {c u dβ dβ : β} (hc : 0 < c) (hdβ : 0 < dβ) (hlh : c β€ localHeight g) (hlh4 : localHeight g β€ 4 * c) (hxw : xWindowSq g β€ u ^ 2) (hdet : β((g : Matrix (Fin 2) (Fin 2) K)).detβ β Icc dβ dβ) (i j : Fin 2) : β((gβ»ΒΉ : GL (Fin 2) K) : Matrix (Fin 2) (Fin 2) K) i jβ β€ Real.sqrt (dβ / c * (1 + u ^ 2 + (4 * c) ^ 2)) / dβ := by have hB := entry_norm_le_of_clauses hc hlh hlh4 hxw hdet have hdet0 : ((g : Matrix (Fin 2) (Fin 2) K)).det β 0 := by intro h rw [h, norm_zero] at hdet exact absurd hdet.1 (not_le.mpr hdβ) have hcoe : ((gβ»ΒΉ : GL (Fin 2) K) : Matrix (Fin 2) (Fin 2) K) = ((g : Matrix (Fin 2) (Fin 2) K))β»ΒΉ := Matrix.coe_units_inv g rw [hcoe, Matrix.inv_def, Ring.inverse_eq_inv, Matrix.smul_apply, norm_smul, norm_inv] have hadj : β((g : Matrix (Fin 2) (Fin 2) K)).adjugate i jβ β€ Real.sqrt (dβ / c * (1 + u ^ 2 + (4 * c) ^ 2)) := by rw [Matrix.adjugate_fin_two] fin_cases i <;> fin_cases j Β· show β(g : Matrix (Fin 2) (Fin 2) K) 1 1β β€ _ exact hB 1 1 Β· show β-(g : Matrix (Fin 2) (Fin 2) K) 0 1β β€ _ rw [norm_neg]; exact hB 0 1 Β· show β-(g : Matrix (Fin 2) (Fin 2) K) 1 0β β€ _ rw [norm_neg]; exact hB 1 0 Β· show β(g : Matrix (Fin 2) (Fin 2) K) 0 0β β€ _ exact hB 0 0 have hdinv : β((g : Matrix (Fin 2) (Fin 2) K)).detββ»ΒΉ β€ dββ»ΒΉ := by rw [β one_div, β one_div] exact one_div_le_one_div_of_le hdβ hdet.1 have h0 : (0 : β) β€ β((g : Matrix (Fin 2) (Fin 2) K)).detββ»ΒΉ := by positivity calc β((g : Matrix (Fin 2) (Fin 2) K)).detββ»ΒΉ * β((g : Matrix (Fin 2) (Fin 2) K)).adjugate i jβ β€ dββ»ΒΉ * Real.sqrt (dβ / c * (1 + u ^ 2 + (4 * c) ^ 2)) := by exact mul_le_mul hdinv hadj (norm_nonneg _) (by positivity) _ = Real.sqrt (dβ / c * (1 + u ^ 2 + (4 * c) ^ 2)) / dβ := by ring theorem isCompact_glBlock [ProperSpace K] {c u dβ dβ : β} (hc : 0 < c) (hdβ : 0 < dβ) : IsCompact {g : GL (Fin 2) K | (c β€ localHeight g β§ localHeight g β€ 4 * c) β§ xWindowSq g β€ u ^ 2 β§ β((g : Matrix (Fin 2) (Fin 2) K)).detβ β Icc dβ dβ} := by set B := Real.sqrt (dβ / c * (1 + u ^ 2 + (4 * c) ^ 2)) with hB_def set C : Set (Matrix (Fin 2) (Fin 2) K) := Set.pi Set.univ fun _ : Fin 2 => Set.pi Set.univ fun _ : Fin 2 => closedBall (0 : K) B with hC_def set C' : Set (Matrix (Fin 2) (Fin 2) K) := Set.pi Set.univ fun _ : Fin 2 => Set.pi Set.univ fun _ : Fin 2 => closedBall (0 : K) (B / dβ) with hC'_def have hC : IsCompact C := isCompact_univ_pi fun _ => isCompact_univ_pi fun _ => isCompact_closedBall _ _ have hC' : IsCompact C' := isCompact_univ_pi fun _ => isCompact_univ_pi fun _ => isCompact_closedBall _ _ have hK : IsCompact ((Units.embedProduct (Matrix (Fin 2) (Fin 2) K)) β»ΒΉ' (C ΓΛ’ (MulOpposite.op '' C'))) := Units.isClosedEmbedding_embedProduct.isCompact_preimage (hC.prod (hC'.image MulOpposite.continuous_op)) have hclosed : IsClosed {g : GL (Fin 2) K | (c β€ localHeight g β§ localHeight g β€ 4 * c) β§ xWindowSq g β€ u ^ 2 β§ β((g : Matrix (Fin 2) (Fin 2) K)).detβ β Icc dβ dβ} := by refine IsClosed.inter (IsClosed.inter ?_ ?_) (IsClosed.inter ?_ ?_) Β· exact isClosed_le continuous_const continuous_localHeight Β· exact isClosed_le continuous_localHeight continuous_const Β· exact isClosed_le continuous_xWindowSq continuous_const Β· exact (isClosed_Icc).preimage continuous_det_gl.norm refine hK.of_isClosed_subset hclosed ?_ rintro g β¨β¨hlh, hlh4β©, hxw, hdetβ© have hent := entry_norm_le_of_clauses hc hlh hlh4 hxw hdet have hinv := inv_entry_norm_le_of_clauses hc hdβ hlh hlh4 hxw hdet refine β¨fun i _ => fun j _ => ?_, ?_β© Β· rw [mem_closedBall_zero_iff] exact hent i j Β· refine β¨((gβ»ΒΉ : GL (Fin 2) K) : Matrix (Fin 2) (Fin 2) K), fun i _ => fun j _ => ?_, rflβ© rw [mem_closedBall_zero_iff] exact hinv i j end GenericBlock section PerPlace omit [NumberField F] in theorem properSpace_completion (w : InfinitePlace F) : ProperSpace w.Completion := by obtain β¨r, rpos, hrβ© := exists_isCompact_closedBall (0 : w.Completion) have h2 : β(2 : w.Completion)β = 2 := norm_two_completion w have h20 : (2 : w.Completion) β 0 := by intro h rw [h, norm_zero] at h2 norm_num at h2 have hC : β n : β, IsCompact (Metric.closedBall (0 : w.Completion) (2 ^ n * r)) := by intro n have h2n : (2 : w.Completion) ^ n β 0 := pow_ne_zero _ h20 have hs := hr.smul ((2 : w.Completion) ^ n) rw [_root_.smul_closedBall' h2n, smul_zero, norm_pow, h2] at hs exact hs have hTop : Filter.Tendsto (fun n : β => (2 : β) ^ n * r) Filter.atTop Filter.atTop := Filter.Tendsto.atTop_mul_const rpos (tendsto_pow_atTop_atTop_of_one_lt (by norm_num : (1 : β) < 2)) exact ProperSpace.of_seq_closedBall hTop (Filter.Eventually.of_forall hC) omit [NumberField F] in theorem isCompact_archBlock (w : InfinitePlace F) {c u dβ dβ : β} (hc : 0 < c) (hdβ : 0 < dβ) : IsCompact {g : GL (Fin 2) w.Completion | (c β€ localHeight g β§ localHeight g β€ 4 * c) β§ xWindowSq g β€ u ^ 2 β§ β((g : Matrix (Fin 2) (Fin 2) w.Completion)).detβ β Icc dβ dβ} := by haveI := properSpace_completion w exact isCompact_glBlock hc hdβ end PerPlace variable (F) def cappedSiegelBlock (c u dβ dβ : β) : Set (AdelicGL2 (π F) F) := centreCutSiegelSet F c u dβ dβ β© {g | β w : InfinitePlace F, localHeight (archComponent F w (glArch (π F) F g)) β€ 4 * c} variable {F} theorem mem_cappedSiegelBlock_iff {c u dβ dβ : β} {g : AdelicGL2 (π F) F} : g β cappedSiegelBlock F c u dβ dβ β g β centreCutSiegelSet F c u dβ dβ β§ β w : InfinitePlace F, localHeight (archComponent F w (glArch (π F) F g)) β€ 4 * c := Iff.rfl theorem isClosed_centreCutSiegelSet (c u dβ dβ : β) : IsClosed (centreCutSiegelSet F c u dβ dβ) := by have hK : IsClosed {g : AdelicGL2 (π F) F | glFin (π F) F g β finiteIntegralGL2 (π F) F} := ((finiteIntegralGL2 (π F) F).isClosed_of_isOpen (isOpen_finiteLevelZero (R := π F) (K := F) (N := β€) (by simp))).preimage (continuous_glFin (π F) F) have hfloor : IsClosed {g : AdelicGL2 (π F) F | β w : InfinitePlace F, c β€ localHeight (archComponent F w (glArch (π F) F g))} := by have hset : {g : AdelicGL2 (π F) F | β w : InfinitePlace F, c β€ localHeight (archComponent F w (glArch (π F) F g))} = β w : InfinitePlace F, {g : AdelicGL2 (π F) F | c β€ localHeight (archComponent F w (glArch (π F) F g))} := by ext g simp [Set.mem_iInter] rw [hset] exact isClosed_iInter fun w => isClosed_le continuous_const (continuous_localHeight_place w) have hwin : IsClosed {g : AdelicGL2 (π F) F | β w : InfinitePlace F, xWindowSq (archComponent F w (glArch (π F) F g)) β€ u ^ 2} := by have hset : {g : AdelicGL2 (π F) F | β w : InfinitePlace F, xWindowSq (archComponent F w (glArch (π F) F g)) β€ u ^ 2} = β w : InfinitePlace F, {g : AdelicGL2 (π F) F | xWindowSq (archComponent F w (glArch (π F) F g)) β€ u ^ 2} := by ext g simp [Set.mem_iInter] rw [hset] exact isClosed_iInter fun w => isClosed_le (continuous_xWindowSq_place w) continuous_const have hdet : IsClosed {g : AdelicGL2 (π F) F | β w : InfinitePlace F, archDetNorm w g β Icc dβ dβ} := by have hset : {g : AdelicGL2 (π F) F | β w : InfinitePlace F, archDetNorm w g β Icc dβ dβ} = β w : InfinitePlace F, {g : AdelicGL2 (π F) F | archDetNorm w g β Icc dβ dβ} := by ext g simp [Set.mem_iInter] rw [hset] exact isClosed_iInter fun w => isClosed_Icc.preimage (continuous_archDetNorm w) have hdecomp : centreCutSiegelSet F c u dβ dβ = {g : AdelicGL2 (π F) F | glFin (π F) F g β finiteIntegralGL2 (π F) F} β© ({g : AdelicGL2 (π F) F | β w : InfinitePlace F, c β€ localHeight (archComponent F w (glArch (π F) F g))} β© ({g : AdelicGL2 (π F) F | β w : InfinitePlace F, xWindowSq (archComponent F w (glArch (π F) F g)) β€ u ^ 2} β© {g : AdelicGL2 (π F) F | β w : InfinitePlace F, archDetNorm w g β Icc dβ dβ})) := by ext g simp only [mem_centreCutSiegelSet_iff, Set.mem_inter_iff, Set.mem_setOf_eq] rw [hdecomp] exact hK.inter (hfloor.inter (hwin.inter hdet)) theorem isClosed_cappedSiegelBlock (c u dβ dβ : β) : IsClosed (cappedSiegelBlock F c u dβ dβ) := by refine (isClosed_centreCutSiegelSet c u dβ dβ).inter ?_ have hset : {g : AdelicGL2 (π F) F | β w : InfinitePlace F, localHeight (archComponent F w (glArch (π F) F g)) β€ 4 * c} = β w : InfinitePlace F, {g : AdelicGL2 (π F) F | localHeight (archComponent F w (glArch (π F) F g)) β€ 4 * c} := by ext g simp [Set.mem_iInter] rw [hset] exact isClosed_iInter fun w => isClosed_le (continuous_localHeight_place w) continuous_const theorem isCompact_cappedSiegelBlock {c u dβ dβ : β} (hc : 0 < c) (hdβ : 0 < dβ) : IsCompact (cappedSiegelBlock F c u dβ dβ) := by classical set B := Real.sqrt (dβ / c * (1 + u ^ 2 + (4 * c) ^ 2)) with hB_def set A : Set (AdeleRing (π F) F) := (Set.pi Set.univ fun w : InfinitePlace F => Metric.closedBall (0 : w.Completion) B) ΓΛ’ integralFiniteAdeles (π F) F with hA_def set A' : Set (AdeleRing (π F) F) := (Set.pi Set.univ fun w : InfinitePlace F => Metric.closedBall (0 : w.Completion) (B / dβ)) ΓΛ’ integralFiniteAdeles (π F) F with hA'_def have hApi : IsCompact A := by refine IsCompact.prod (isCompact_univ_pi fun w => ?_) (isCompact_integralFiniteAdeles (π F) F) haveI := properSpace_completion (F := F) w exact isCompact_closedBall _ _ have hA'pi : IsCompact A' := by refine IsCompact.prod (isCompact_univ_pi fun w => ?_) (isCompact_integralFiniteAdeles (π F) F) haveI := properSpace_completion (F := F) w exact isCompact_closedBall _ _ set C : Set (Matrix (Fin 2) (Fin 2) (AdeleRing (π F) F)) := Set.pi Set.univ fun _ : Fin 2 => Set.pi Set.univ fun _ : Fin 2 => A with hC_def set C' : Set (Matrix (Fin 2) (Fin 2) (AdeleRing (π F) F)) := Set.pi Set.univ fun _ : Fin 2 => Set.pi Set.univ fun _ : Fin 2 => A' with hC'_def have hC : IsCompact C := isCompact_univ_pi fun _ => isCompact_univ_pi fun _ => hApi have hC' : IsCompact C' := isCompact_univ_pi fun _ => isCompact_univ_pi fun _ => hA'pi have hK : IsCompact ((Units.embedProduct (Matrix (Fin 2) (Fin 2) (AdeleRing (π F) F))) β»ΒΉ' (C ΓΛ’ (MulOpposite.op '' C'))) := Units.isClosedEmbedding_embedProduct.isCompact_preimage (hC.prod (hC'.image MulOpposite.continuous_op)) refine hK.of_isClosed_subset (isClosed_cappedSiegelBlock c u dβ dβ) ?_ rintro g β¨β¨hKf, hfloor, hwin, hdetβ©, hcapβ© have hKf2 := mem_finiteIntegralGL2_iff.mp hKf have harch : β (w : InfinitePlace F) (i j : Fin 2), β(archComponent F w (glArch (π F) F g) : Matrix (Fin 2) (Fin 2) w.Completion) i jβ β€ B := fun w i j => entry_norm_le_of_clauses hc (hfloor w) (hcap w) (hwin w) (hdet w) i j have harch' : β (w : InfinitePlace F) (i j : Fin 2), β(((archComponent F w (glArch (π F) F g))β»ΒΉ : GL (Fin 2) w.Completion) : Matrix (Fin 2) (Fin 2) w.Completion) i jβ β€ B / dβ := fun w i j => inv_entry_norm_le_of_clauses hc hdβ (hfloor w) (hcap w) (hwin w) (hdet w) i j constructor Β· intro i _ j _ constructor Β· intro w _ rw [mem_closedBall_zero_iff] show β((g : Matrix (Fin 2) (Fin 2) (AdeleRing (π F) F)) i j).1 wβ β€ B have hbridge : ((g : Matrix (Fin 2) (Fin 2) (AdeleRing (π F) F)) i j).1 w = (archComponent F w (glArch (π F) F g) : Matrix (Fin 2) (Fin 2) w.Completion) i j := rfl rw [hbridge] exact harch w i j Β· exact hKf2.1 i j Β· refine β¨((gβ»ΒΉ : AdelicGL2 (π F) F) : Matrix (Fin 2) (Fin 2) (AdeleRing (π F) F)), ?_, rflβ© intro i _ j _ constructor Β· intro w _ rw [mem_closedBall_zero_iff] show β(((gβ»ΒΉ : AdelicGL2 (π F) F) : Matrix (Fin 2) (Fin 2) (AdeleRing (π F) F)) i j).1 wβ β€ B / dβ have hbridge : (((gβ»ΒΉ : AdelicGL2 (π F) F) : Matrix (Fin 2) (Fin 2) (AdeleRing (π F) F)) i j).1 w = (((archComponent F w (glArch (π F) F g))β»ΒΉ : GL (Fin 2) w.Completion) : Matrix (Fin 2) (Fin 2) w.Completion) i j := by have h1 : (((gβ»ΒΉ : AdelicGL2 (π F) F) : Matrix (Fin 2) (Fin 2) (AdeleRing (π F) F)) i j).1 w = (archComponent F w (glArch (π F) F (gβ»ΒΉ : AdelicGL2 (π F) F)) : Matrix (Fin 2) (Fin 2) w.Completion) i j := rfl rw [h1, map_inv (glArch (π F) F), map_inv (archComponent F w)] rw [hbridge] exact harch' w i j Β· exact hKf2.2 i j end WindowedSiegel end AutomorphicForm end
Statements phrased using this module (37)
- Right convolution preserves cuspidality, smoothness, level and Hecke eigenvalues
AutomorphicForm.isCuspidalFn_isKfSmooth_levelInvariant_isHeckeCosetEigenfunctionAt_rightConv_of_isFactorizableTestFn_of_support_subset2 below Β· depth 14 - Compactness of the centre-cut Siegel set under height caps
AutomorphicForm.WindowedSiegel.isCompact_centreCutSiegelSet_inter_heightCap0 below Β· depth 15 - Extending the determinant window of an LΒ² automorphic function
AutomorphicForm.memLp_iUnion_centreCutSiegelSet_of_detWindow_le0 below Β· depth 16 - Decay bound for cuspidal functions on a centre-cut Siegel window
AutomorphicForm.exists_forall_norm_le_mul_prod_rpow_neg_of_hasDerivAt_chains_of_constantTerm_eq_zero_of_mem_idealBall32 below Β· depth 17 - Transfer of unramified Whittaker data to a SchwartzβBruhat average
AutomorphicForm.whittakerCoefficient_unipotentAverage_unramified_package84 below Β· depth 17 - Estimates for the Whittaker series of a nice JL datum
LanglandsTunnell.Converse.CuspSynthesis.exists_growth_exponent_and_local_majorant_and_bounded_on_siegel_of_isJLNice23 below Β· depth 17 - Whittaker coefficients on a window vanish outside one fractional ideal
AutomorphicForm.exists_fractionalIdeal_forall_whittakerCoefficient_eq_zero_of_not_mem_of_forall_mul_idealBall_eq15 below Β· depth 18 - Holomorphy of the RankinβSelberg slab integral over a centre-cut Siegel cover
AutomorphicForm.exists_analyticOnNhd_eq_sub_mul_peterssonIntegral_of_norm_le_archHeight_pow_centreCutSiegelSet3 below Β· depth 19 - From a slab fundamental domain to centre-cut Siegel windows
AutomorphicForm.isotypicCuspSubmodule_inf_archCutSubmodule_le_of_isFundamentalDomain_of_pos336 below Β· depth 19 - Flat Eisenstein series bounded on centre-cut Siegel sets
AutomorphicForm.exists_flatEisenstein_mul_le_mul_archHeight_rpow_of_mem_centreCutSiegelSet5 below Β· depth 20 - Centre-cut Siegel windows are neighbourhoods in adelic GLβ
AutomorphicForm.exists_iUnion_centreCutSiegelSet_mem_nhds0 below Β· depth 20 - Dichotomy for type-cut isotypic cusp spaces over a covering Siegel window
AutomorphicForm.forall_isotypicCuspSubmodule_inf_archCutSubmodule_eq_bot_or_forall_eq_of_coversModCentre338 below Β· depth 20 - Export package for translates of a smoothed cuspidal realisation
AutomorphicForm.SmoothCuspRealizationAt.exports_rightConv_sum_translate_of_isCuspConstituent109 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 - Integrability of a Bruhat majorant on translated centre-cut Siegel sets
AutomorphicForm.integrableOn_norm_sq_mul_bruhatMajorant_mul_ideleNorm_rpow_inter_centreCutSiegelSet8 below Β· depth 22 - Height bound for non-triangular rational translates on Siegel translates
AutomorphicForm.WindowedSiegel.exists_forall_adelicHeight_globalPoints_mul_le_of_subset_iUnion_mul_centreCutSiegelSet1 below Β· depth 26 - Bounded-height part of a centre-cut Siegel set lies in a compact
AutomorphicForm.exists_isCompact_forall_mem_centreCutSiegelSet_archHeight_le_mem1 below Β· depth 26 - Uniform bound for the truncated twisted GLβ kernel on Siegel translates
AutomorphicForm.exists_forall_norm_lambdaT_twistedAdelicKernel_centralScalar_mul_le_of_subset_centreCutSiegelSet_translates70 below Β· depth 27 - Bounded truncated twisted GLβ kernel on Siegel translates
AutomorphicForm.exists_forall_norm_finsum_sub_indicator_highSet_constantTerm_finsum_borel_le_of_subset_centreCutSiegelSet_translates70 below Β· depth 28 - Cuspidal decay of the twisted Borel kernel minus its constant term
AutomorphicForm.exists_forall_norm_twistedBorelKernel_sub_constantTerm_centralScalar_mul_le_inv_adelicHeight_pow59 below Β· depth 28 - Height floor on compact translates of a centre-cut Siegel set
AutomorphicForm.exists_pos_forall_le_adelicHeight_mul_of_mem_centreCutSiegelSet_of_isCompact0 below Β· depth 28 - Right convolution preserves cuspidality, smoothness and Hecke eigenvalues
AutomorphicForm.isCuspidalFn_isKfSmooth_levelInvariant_isHeckeCosetEigenfunctionAt_rightConv_of_isFactorizableTestFn_of_support_subset_principal2 below Β· depth 28 - Boundedness of Οβdet on a determinant slab in Siegel sets
AutomorphicForm.exists_forall_norm_chiDet_le_of_mem_setOf_ideleNorm_det_inter_iUnion_image_centreCutSiegelSet4 below Β· depth 29 - Rapid cuspidal decay of twisted GLβ kernel minus constant term
AutomorphicForm.exists_forall_norm_finsum_borel_div_mem_sub_constantTerm_centralScalar_mul_le_inv_adelicHeight_pow59 below Β· depth 29 - Increment of the truncated Petersson pairing across a height shell
AutomorphicForm.peterssonIntegral_lambdaT_sub_eq_integral_constantTerm_mul_conj_constantTerm31 below Β· depth 29 - Iwasawa unfolding of the unipotent term, semi-locally factorizable case
UnipotentTermUnfolding.exists_forall_integrableOn_and_lintegral_ne_top_and_setIntegral_unipotentTerm_eq_mul_integral_iwasawa_of_isSemiLocalFactorization102 below Β· depth 29 - Fibrewise finiteness of the unipotent term in Iwasawa coordinates
UnipotentTermUnfolding.forall_exists_lintegral_iwasawa_tsum_tsum_enorm_sub_ne_top_of_isSemiLocalFactorization102 below Β· depth 29 - Twisted-class truncation weights collapse onto the Borel part
AutomorphicForm.exists_forall_tsum_indicator_add_indicator_weyl_mul_integral_eq_indicator_mul_setIntegral_mul_finsum_borel_sigmaConjClassOrbit8 below Β· depth 30 - Finiteness of the cusp-kernel truncation error over a Siegel shell
UnipotentTermCuspBound.exists_forall_setLIntegral_tsum_setLIntegral_enorm_cuspKernel_sub_cuspTruncation_ne_top91 below Β· depth 30 - Finiteness of the truncated unipotent-type term over Borel fibres
UnipotentTermCuspBound.exists_forall_setLIntegral_tsum_setLIntegral_enorm_mul_tsum_tsum_enorm_sub_ne_top90 below Β· depth 30 - Iwasawa unfolding of the unipotent cusp-kernel term
UnipotentTermUnfolding.exists_forall_setIntegral_unipotentTerm_eq_mul_integral_iwasawa30 below Β· depth 30 - Unit translation into an ample centre-cut Siegel set
AutomorphicForm.exists_forall_mem_centreCutSiegelSet_globalPoints_mul_mem_centreCutSiegelSetAmple1 below Β· depth 31 - Rapid decay of the ΞΎ-averaged twisted kernel minus its constant term
AutomorphicForm.exists_forall_norm_setIntegral_mul_finsum_borel_div_mem_sub_constantTerm_centralScalar_mul_le_inv_adelicHeight_pow70 below Β· depth 31 - Self-adjointness of Arthur truncation on a Siegel-covered fundamental domain
AutomorphicForm.exists_forall_setIntegral_lambdaT_mul_conj_eq_setIntegral_lambdaT_mul_conj_lambdaT_of_subset_iUnion_image_centreCutSiegelSet24 below Β· depth 31 - Vanishing of the truncated constant-term defect integral
AutomorphicForm.exists_pos_forall_setIntegral_sub_constantTerm_mul_eq_zero_inter_lt_adelicHeight_of_subset_iUnion_image_centreCutSiegelSet24 below Β· depth 31 - Polynomial local LΒ² bounds for unitary GLβ Eisenstein series
AutomorphicForm.forall_exists_eLpNorm_axis_continuation_restrict_le_mul_pow_of_isCompact_of_ne_bot413 below Β· depth 36 - Uniform LΒ² bound for truncated Eisenstein series on the unitary axis
AutomorphicForm.forall_exists_setIntegral_norm_sq_lambdaT_axis_continuation_le_mul_mul_pow_of_isArchCompAt_of_ne_bot409 below Β· depth 37