import Definitions.Def_AutomorphicForm_GodementSection import Definitions.Def_AutomorphicForm_WeylIntertwining import Definitions.Def_AutomorphicForm_UnipotentQuotient import Definitions.Def_AutomorphicForm_WindowedSiegelSet import Definitions.Def_LanglandsTunnell_TateLocalZeta set_option autoImplicit false open MeasureTheory NumberField NumberField.AdelicHaar NumberField.AdelicLevel IsDedekindDomain open AutomorphicForm AutomorphicForm.WindowedSiegel noncomputable section namespace LanglandsTunnell.RankinSelberg attribute [local instance] NumberField.AdelicHaar.glBorel NumberField.AdelicHaar.borelSpace_glBorel section Global variable (F : Type) [Field F] [NumberField F] open scoped NNReal in def moduleChar : (AdeleRing (π“ž F) F)Λ£ β†’* ℝˣ := ((NNReal.toRealHom : ℝβ‰₯0 β†’+* ℝ).toMonoidHom.comp (distribHaarChar (AdeleRing (π“ž F) F))).toHomUnits theorem val_moduleChar_apply (x : (AdeleRing (π“ž F) F)Λ£) : ((moduleChar F x : ℝˣ) : ℝ) = NumberField.TateGlobal.ideleNorm F x := rfl theorem moduleChar_pos : βˆ€ x : (AdeleRing (π“ž F) F)Λ£, 0 < ((moduleChar F x : ℝˣ) : ℝ) := fun x => NumberField.TateGlobal.ideleNorm_pos x def godementEisenstein {mI : MeasurableSpace (AdeleRing (π“ž F) F)Λ£} (Ξ½β‚€ : Measure (AdeleRing (π“ž F) F)Λ£) (ΞΌ Ξ½ : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) (Ξ± : (AdeleRing (π“ž F) F)Λ£ β†’* ℝˣ) (hΞ± : βˆ€ x, 0 < ((Ξ± x : ℝˣ) : ℝ)) (Ξ¦ : (Fin 2 β†’ AdeleRing (π“ž F) F) β†’ β„‚) (s : β„‚) (g : AdelicGL2 (π“ž F) F) : β„‚ := godementSection F Ξ½β‚€ ΞΌ Ξ½ Ξ± hΞ± Ξ¦ s g + βˆ‘' ΞΎ : F, godementSection F Ξ½β‚€ ΞΌ Ξ½ Ξ± hΞ± Ξ¦ s (adelicWeyl (π“ž F) F * unipotentGL2 (algebraMap F (AdeleRing (π“ž F) F) ΞΎ) * g) theorem godementEisenstein_def {mI : MeasurableSpace (AdeleRing (π“ž F) F)Λ£} (Ξ½β‚€ : Measure (AdeleRing (π“ž F) F)Λ£) (ΞΌ Ξ½ : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) (Ξ± : (AdeleRing (π“ž F) F)Λ£ β†’* ℝˣ) (hΞ± : βˆ€ x, 0 < ((Ξ± x : ℝˣ) : ℝ)) (Ξ¦ : (Fin 2 β†’ AdeleRing (π“ž F) F) β†’ β„‚) (s : β„‚) (g : AdelicGL2 (π“ž F) F) : godementEisenstein F Ξ½β‚€ ΞΌ Ξ½ Ξ± hΞ± Ξ¦ s g = godementSection F Ξ½β‚€ ΞΌ Ξ½ Ξ± hΞ± Ξ¦ s g + βˆ‘' ΞΎ : F, godementSection F Ξ½β‚€ ΞΌ Ξ½ Ξ± hΞ± Ξ¦ s (adelicWeyl (π“ž F) F * unipotentGL2 (algebraMap F (AdeleRing (π“ž F) F) ΞΎ) * g) := rfl def rs22GlobalIntegral (D : Set (AdelicGL2 (π“ž F) F)) (Ο† Ο†' Es : AdelicGL2 (π“ž F) F β†’ β„‚) : β„‚ := ∫ g in D, Ο† g * Ο†' g * Es g βˆ‚(adelicGLHaar (Fin 2) (π“ž F) F) theorem rs22GlobalIntegral_def (D : Set (AdelicGL2 (π“ž F) F)) (Ο† Ο†' Es : AdelicGL2 (π“ž F) F β†’ β„‚) : rs22GlobalIntegral F D Ο† Ο†' Es = ∫ g in D, Ο† g * Ο†' g * Es g βˆ‚(adelicGLHaar (Fin 2) (π“ž F) F) := rfl @[simp] theorem rs22GlobalIntegral_zero_left (D : Set (AdelicGL2 (π“ž F) F)) (Ο†' Es : AdelicGL2 (π“ž F) F β†’ β„‚) : rs22GlobalIntegral F D 0 Ο†' Es = 0 := by simp [rs22GlobalIntegral] @[simp] theorem rs22GlobalIntegral_zero_right (D : Set (AdelicGL2 (π“ž F) F)) (Ο† Ο†' : AdelicGL2 (π“ž F) F β†’ β„‚) : rs22GlobalIntegral F D Ο† Ο†' 0 = 0 := by simp [rs22GlobalIntegral] theorem rs22GlobalIntegral_add_right (D : Set (AdelicGL2 (π“ž F) F)) (Ο† Ο†' E₁ Eβ‚‚ : AdelicGL2 (π“ž F) F β†’ β„‚) (h₁ : IntegrableOn (fun g => Ο† g * Ο†' g * E₁ g) D (adelicGLHaar (Fin 2) (π“ž F) F)) (hβ‚‚ : IntegrableOn (fun g => Ο† g * Ο†' g * Eβ‚‚ g) D (adelicGLHaar (Fin 2) (π“ž F) F)) : rs22GlobalIntegral F D Ο† Ο†' (E₁ + Eβ‚‚) = rs22GlobalIntegral F D Ο† Ο†' E₁ + rs22GlobalIntegral F D Ο† Ο†' Eβ‚‚ := by simp only [rs22GlobalIntegral, Pi.add_apply, mul_add] exact integral_add h₁ hβ‚‚ theorem rs22GlobalIntegral_smul_right (D : Set (AdelicGL2 (π“ž F) F)) (Ο† Ο†' Es : AdelicGL2 (π“ž F) F β†’ β„‚) (c : β„‚) : rs22GlobalIntegral F D Ο† Ο†' (c β€’ Es) = c * rs22GlobalIntegral F D Ο† Ο†' Es := by simp only [rs22GlobalIntegral, Pi.smul_apply, smul_eq_mul, ← integral_const_mul] congr 1; funext g; ring def rs22Kernel (ΞΌ : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) (Ξ± : (AdeleRing (π“ž F) F)Λ£ β†’* ℝˣ) (hΞ± : βˆ€ x, 0 < ((Ξ± x : ℝˣ) : ℝ)) (Ξ¦ : (Fin 2 β†’ AdeleRing (π“ž F) F) β†’ β„‚) (s : β„‚) (g : AdelicGL2 (π“ž F) F) : β„‚ := ((ΞΌ (Matrix.GeneralLinearGroup.det g) : β„‚Λ£) : β„‚) * ((cpowChar Ξ± hΞ± (s + 1 / 2) (Matrix.GeneralLinearGroup.det g) : β„‚Λ£) : β„‚) * Ξ¦ (bottomRowVec F g 1) theorem rs22Kernel_def (ΞΌ : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) (Ξ± : (AdeleRing (π“ž F) F)Λ£ β†’* ℝˣ) (hΞ± : βˆ€ x, 0 < ((Ξ± x : ℝˣ) : ℝ)) (Ξ¦ : (Fin 2 β†’ AdeleRing (π“ž F) F) β†’ β„‚) (s : β„‚) (g : AdelicGL2 (π“ž F) F) : rs22Kernel F ΞΌ Ξ± hΞ± Ξ¦ s g = ((ΞΌ (Matrix.GeneralLinearGroup.det g) : β„‚Λ£) : β„‚) * ((cpowChar Ξ± hΞ± (s + 1 / 2) (Matrix.GeneralLinearGroup.det g) : β„‚Λ£) : β„‚) * Ξ¦ (bottomRowVec F g 1) := rfl def rs22WhittakerIntegral (W W' : AdelicGL2 (π“ž F) F β†’ β„‚) (ΞΌ : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) (Ξ± : (AdeleRing (π“ž F) F)Λ£ β†’* ℝˣ) (hΞ± : βˆ€ x, 0 < ((Ξ± x : ℝˣ) : ℝ)) (Ξ¦ : (Fin 2 β†’ AdeleRing (π“ž F) F) β†’ β„‚) (s : β„‚) : β„‚ := ∫ q : UnipotentQuotient F, W q.out * W' q.out * rs22Kernel F ΞΌ Ξ± hΞ± Ξ¦ s q.out βˆ‚(unipotentQuotientMeasure F) theorem rs22WhittakerIntegral_def (W W' : AdelicGL2 (π“ž F) F β†’ β„‚) (ΞΌ : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) (Ξ± : (AdeleRing (π“ž F) F)Λ£ β†’* ℝˣ) (hΞ± : βˆ€ x, 0 < ((Ξ± x : ℝˣ) : ℝ)) (Ξ¦ : (Fin 2 β†’ AdeleRing (π“ž F) F) β†’ β„‚) (s : β„‚) : rs22WhittakerIntegral F W W' ΞΌ Ξ± hΞ± Ξ¦ s = ∫ q : UnipotentQuotient F, W q.out * W' q.out * rs22Kernel F ΞΌ Ξ± hΞ± Ξ¦ s q.out βˆ‚(unipotentQuotientMeasure F) := rfl def IsRapidlyDecreasingOnSiegelSets (Ο† : AdelicGL2 (π“ž F) F β†’ β„‚) : Prop := βˆ€ (c u : ℝ) (t : AdelicGL2 (π“ž F) F), 0 < c β†’ βˆ€ N : β„•, βˆƒ C : ℝ, βˆ€ g ∈ integralWindowedSiegelSet F c u, β€–Ο† (g * t)β€– * (1 + archHeight F (glArch (π“ž F) F g)) ^ N ≀ C def IsUniformlySiegelBounded (H : β„‚ β†’ AdelicGL2 (π“ž F) F β†’ β„‚) : Prop := βˆ€ (σ₁ Οƒβ‚‚ c u : ℝ) (t : AdelicGL2 (π“ž F) F), 0 < c β†’ βˆƒ (A : ℝ) (N : β„•), βˆ€ s : β„‚, σ₁ ≀ s.re β†’ s.re ≀ Οƒβ‚‚ β†’ βˆ€ g ∈ integralWindowedSiegelSet F c u, β€–H s (g * t)β€– ≀ A * (1 + archHeight F (glArch (π“ž F) F g)) ^ N theorem isRapidlyDecreasingOnSiegelSets_zero : IsRapidlyDecreasingOnSiegelSets F (fun _ => (0 : β„‚)) := fun _ _ _ _ _ => ⟨0, fun _ _ => by simp⟩ theorem isUniformlySiegelBounded_zero : IsUniformlySiegelBounded F (fun _ _ => (0 : β„‚)) := fun _ _ _ _ _ _ => ⟨0, 0, fun _ _ _ _ _ => by simp⟩ theorem IsRapidlyDecreasingOnSiegelSets.bounded {Ο† : AdelicGL2 (π“ž F) F β†’ β„‚} (h : IsRapidlyDecreasingOnSiegelSets F Ο†) (c u : ℝ) (t : AdelicGL2 (π“ž F) F) (hc : 0 < c) : βˆƒ C : ℝ, βˆ€ g ∈ integralWindowedSiegelSet F c u, β€–Ο† (g * t)β€– ≀ C := by obtain ⟨C, hC⟩ := h c u t hc 0 exact ⟨C, fun g hg => by simpa using hC g hg⟩ end Global section Local def rs22LocalIntegral {G : Type*} [Group G] [TopologicalSpace G] [MeasurableSpace G] (ΞΌG : Measure G) (H : Subgroup G) (ΞΌH : Measure H) (W W' Ξ¦row m : G β†’ β„‚) (Ξ΄ : G β†’ ℝ) (s : β„‚) : β„‚ := ∫ g, W g * W' g * Ξ¦row g * m g * ((Ξ΄ g : ℝ) : β„‚) ^ (s + 1 / 2) βˆ‚(ΞΌG.withDensity (HaarQuotient.density H ΞΌH)) variable {F : Type} [Field F] [NumberField F] abbrev unipotentSubgroup (K : Type*) [CommRing K] : Subgroup (GL (Fin 2) K) := (unipotentGL2Hom (R := K)).range def bottomRow {K : Type*} [CommRing K] (g : GL (Fin 2) K) : Fin 2 β†’ K := fun j => (g : Matrix (Fin 2) (Fin 2) K) 1 j def rs22FinIntegral (v : HeightOneSpectrum (π“ž F)) [MeasurableSpace (GL (Fin 2) (v.adicCompletion F))] (ΞΌG : Measure (GL (Fin 2) (v.adicCompletion F))) (ΞΌN : Measure (unipotentSubgroup (v.adicCompletion F))) (W W' : GL (Fin 2) (v.adicCompletion F) β†’ β„‚) (Ξ¦v : (Fin 2 β†’ v.adicCompletion F) β†’ β„‚) (ΞΌv : (v.adicCompletion F)Λ£ β†’* β„‚Λ£) (s : β„‚) : β„‚ := rs22LocalIntegral ΞΌG (unipotentSubgroup (v.adicCompletion F)) ΞΌN W W' (fun g => Ξ¦v (bottomRow g)) (fun g => ((ΞΌv (Matrix.GeneralLinearGroup.det g) : β„‚Λ£) : β„‚)) (fun g => (LanglandsTunnell.TateLocal.modulus ((Matrix.GeneralLinearGroup.det g : (v.adicCompletion F)Λ£) : v.adicCompletion F) : ℝ)) s def rs22PlaceIntegral (w : InfinitePlace F) [MeasurableSpace (GL (Fin 2) w.Completion)] (ΞΌG : Measure (GL (Fin 2) w.Completion)) (ΞΌN : Measure (unipotentSubgroup w.Completion)) (W W' : GL (Fin 2) w.Completion β†’ β„‚) (Ξ¦w : (Fin 2 β†’ w.Completion) β†’ β„‚) (ΞΌw : (w.Completion)Λ£ β†’* β„‚Λ£) (s : β„‚) : β„‚ := rs22LocalIntegral ΞΌG (unipotentSubgroup w.Completion) ΞΌN W W' (fun g => Ξ¦w (bottomRow g)) (fun g => ((ΞΌw (Matrix.GeneralLinearGroup.det g) : β„‚Λ£) : β„‚)) (fun g => (LanglandsTunnell.TateLocal.modulus ((Matrix.GeneralLinearGroup.det g : (w.Completion)Λ£) : w.Completion) : ℝ)) s open scoped Classical in def unramifiedTest2 (v : HeightOneSpectrum (π“ž F)) : (Fin 2 β†’ v.adicCompletion F) β†’ β„‚ := fun x => if βˆ€ j, x j ∈ v.adicCompletionIntegers F then 1 else 0 theorem unramifiedTest2_apply_of_mem (v : HeightOneSpectrum (π“ž F)) {x : Fin 2 β†’ v.adicCompletion F} (hx : βˆ€ j, x j ∈ v.adicCompletionIntegers F) : unramifiedTest2 v x = 1 := by classical simp [unramifiedTest2, hx] theorem unramifiedTest2_apply_of_not_mem (v : HeightOneSpectrum (π“ž F)) {x : Fin 2 β†’ v.adicCompletion F} (hx : Β¬ βˆ€ j, x j ∈ v.adicCompletionIntegers F) : unramifiedTest2 v x = 0 := by classical simp [unramifiedTest2, hx] @[simp] theorem rs22LocalIntegral_zero_left {G : Type*} [Group G] [TopologicalSpace G] [MeasurableSpace G] (ΞΌG : Measure G) (H : Subgroup G) (ΞΌH : Measure H) (W' Ξ¦row m : G β†’ β„‚) (Ξ΄ : G β†’ ℝ) (s : β„‚) : rs22LocalIntegral ΞΌG H ΞΌH 0 W' Ξ¦row m Ξ΄ s = 0 := by simp [rs22LocalIntegral] end Local end LanglandsTunnell.RankinSelberg end