import Definitions.Def_AutomorphicForm_ProductionPinsGeneral import Definitions.Def_AutomorphicForm_WhittakerCoefficient import Definitions.Def_NumberField_AdelicTraceFin set_option autoImplicit false noncomputable section open NumberField AutomorphicForm.WindowedSiegel namespace AutomorphicForm variable (F : Type) [Field F] [NumberField F] def IsBoundedOnSiegelWindows (ฯ† : AdelicGL2 (๐“ž F) F โ†’ โ„‚) : Prop := โˆ€ (c u dโ‚ dโ‚‚ : โ„) (T : Finset (AdelicGL2 (๐“ž F) F)), 0 < c โ†’ 0 < dโ‚ โ†’ โˆƒ C : โ„, โˆ€ g โˆˆ (โ‹ƒ x โˆˆ T, (ยท * x) '' centreCutSiegelSet F c u dโ‚ dโ‚‚), โ€–ฯ† gโ€– โ‰ค C def IsBoundedGenuineFn (pins : CarrierPins F) (ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚) (ฯ† : AdelicGL2 (๐“ž F) F โ†’ โ„‚) : Prop := Continuous ฯ† โˆง IsBoundedOnSiegelWindows F ฯ† โˆง (โˆ€ (ฮฑ : F) (g : AdelicGL2 (๐“ž F) F), WhittakerCoefficientIntegrable F pins ฯˆ ฯ† ฮฑ g) โˆง โˆ€ g : AdelicGL2 (๐“ž F) F, Summable (fun ฮฑ : F => whittakerCoefficient F pins ฯˆ ฯ† ฮฑ g) def IsBoundedGenuineCuspRealizationAt (pins : CarrierPins F) (ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚) (ฮฆ : HeckeEigensystem F โ„‚) (R : SmoothCuspRealizationAt F pins ฮฆ) : Prop := IsBoundedGenuineFn F pins ฯˆ R.toFun def IsBoundedGenuineCuspRealizable (pins : CarrierPins F) (ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚) (ฮฆ : HeckeEigensystem F โ„‚) : Prop := โˆƒ R : SmoothCuspRealizationAt F pins ฮฆ, IsBoundedGenuineCuspRealizationAt F pins ฯˆ ฮฆ R def IsArithBoundedGenuineCuspRealizable (pins : CarrierPins F) (ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚) (ฮฆ : HeckeEigensystem F โ„‚) : Prop := IsBoundedGenuineCuspRealizable F pins ฯˆ ฮฆ.toRawCentral def IsArithBoundedGenuineCuspRealizableVia (pins : CarrierPins F) (ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚) {R : Type*} [CommRing R] (ฮน : R โ†’+* โ„‚) (ฮฆ : HeckeEigensystem F R) : Prop := IsArithBoundedGenuineCuspRealizable F pins ฯˆ (ฮฆ.map ฮน) def boundedGenuineCuspNotionOf (pins : โˆ€ (F : Type) [Field F] [NumberField F], CarrierPins F) : CuspidalityNotion โ„‚ where IsCusp := fun F _i1 _i2 ฮฆ => @IsArithBoundedGenuineCuspRealizable F _i1 _i2 (pins F) (@NumberField.StandardAddChar.stdAddChar F _i1 _i2) ฮฆ variable {F} theorem boundedGenuineCuspNotionOf_isCusp_iff (pins : โˆ€ (F : Type) [Field F] [NumberField F], CarrierPins F) (ฮฆ : HeckeEigensystem F โ„‚) : (boundedGenuineCuspNotionOf pins).IsCusp F ฮฆ โ†” IsArithBoundedGenuineCuspRealizable F (pins F) (NumberField.StandardAddChar.stdAddChar F) ฮฆ := Iff.rfl theorem isBoundedGenuineFn_iff (pins : CarrierPins F) (ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚) (ฯ† : AdelicGL2 (๐“ž F) F โ†’ โ„‚) : IsBoundedGenuineFn F pins ฯˆ ฯ† โ†” Continuous ฯ† โˆง (โˆ€ (c u dโ‚ dโ‚‚ : โ„) (T : Finset (AdelicGL2 (๐“ž F) F)), 0 < c โ†’ 0 < dโ‚ โ†’ โˆƒ C : โ„, โˆ€ g โˆˆ (โ‹ƒ x โˆˆ T, (ยท * x) '' centreCutSiegelSet F c u dโ‚ dโ‚‚), โ€–ฯ† gโ€– โ‰ค C) โˆง (โˆ€ (ฮฑ : F) (g : AdelicGL2 (๐“ž F) F), WhittakerCoefficientIntegrable F pins ฯˆ ฯ† ฮฑ g) โˆง โˆ€ g : AdelicGL2 (๐“ž F) F, Summable (fun ฮฑ : F => whittakerCoefficient F pins ฯˆ ฯ† ฮฑ g) := Iff.rfl theorem isBoundedGenuineCuspRealizable_iff (pins : CarrierPins F) (ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚) (ฮฆ : HeckeEigensystem F โ„‚) : IsBoundedGenuineCuspRealizable F pins ฯˆ ฮฆ โ†” โˆƒ R : SmoothCuspRealizationAt F pins ฮฆ, Continuous R.toFun โˆง (โˆ€ (c u dโ‚ dโ‚‚ : โ„) (T : Finset (AdelicGL2 (๐“ž F) F)), 0 < c โ†’ 0 < dโ‚ โ†’ โˆƒ C : โ„, โˆ€ g โˆˆ (โ‹ƒ x โˆˆ T, (ยท * x) '' centreCutSiegelSet F c u dโ‚ dโ‚‚), โ€–R.toFun gโ€– โ‰ค C) โˆง (โˆ€ (ฮฑ : F) (g : AdelicGL2 (๐“ž F) F), WhittakerCoefficientIntegrable F pins ฯˆ R.toFun ฮฑ g) โˆง โˆ€ g : AdelicGL2 (๐“ž F) F, Summable (fun ฮฑ : F => whittakerCoefficient F pins ฯˆ R.toFun ฮฑ g) := Iff.rfl theorem isBoundedGenuineFn_productionPinsOf_iff (D D' : Set (AdelicGL2 (๐“ž F) F)) (U U' : Ideal (๐“ž F) โ†’ Subgroup (AdelicGL2 (๐“ž F) F)) (gen gen' : IsDedekindDomain.HeightOneSpectrum (๐“ž F) โ†’ AdelicGL2 (๐“ž F) F) (B : Set (AdeleRing (๐“ž F) F)) (ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚) (ฯ† : AdelicGL2 (๐“ž F) F โ†’ โ„‚) : IsBoundedGenuineFn F (productionPinsOf F D U gen B) ฯˆ ฯ† โ†” IsBoundedGenuineFn F (productionPinsOf F D' U' gen' B) ฯˆ ฯ† := Iff.rfl namespace IsBoundedGenuineFn variable {pins : CarrierPins F} {ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚} {ฯ† : AdelicGL2 (๐“ž F) F โ†’ โ„‚} theorem continuous (h : IsBoundedGenuineFn F pins ฯˆ ฯ†) : Continuous ฯ† := h.1 theorem isBoundedOnSiegelWindows (h : IsBoundedGenuineFn F pins ฯˆ ฯ†) : IsBoundedOnSiegelWindows F ฯ† := h.2.1 theorem exists_bound_on_window (h : IsBoundedGenuineFn F pins ฯˆ ฯ†) (c u dโ‚ dโ‚‚ : โ„) (T : Finset (AdelicGL2 (๐“ž F) F)) (hc : 0 < c) (hdโ‚ : 0 < dโ‚) : โˆƒ C : โ„, โˆ€ g โˆˆ (โ‹ƒ x โˆˆ T, (ยท * x) '' centreCutSiegelSet F c u dโ‚ dโ‚‚), โ€–ฯ† gโ€– โ‰ค C := h.2.1 c u dโ‚ dโ‚‚ T hc hdโ‚ theorem whittakerCoefficientIntegrable (h : IsBoundedGenuineFn F pins ฯˆ ฯ†) (ฮฑ : F) (g : AdelicGL2 (๐“ž F) F) : WhittakerCoefficientIntegrable F pins ฯˆ ฯ† ฮฑ g := h.2.2.1 ฮฑ g theorem summable_whittakerCoefficient (h : IsBoundedGenuineFn F pins ฯˆ ฯ†) (g : AdelicGL2 (๐“ž F) F) : Summable (fun ฮฑ : F => whittakerCoefficient F pins ฯˆ ฯ† ฮฑ g) := h.2.2.2 g end IsBoundedGenuineFn private theorem det_unipotentGL2 {A : Type*} [CommRing A] (x : A) : Matrix.GeneralLinearGroup.det (unipotentGL2 x) = 1 := by ext simp [Matrix.det_fin_two_of] theorem whittakerCoefficient_detTwist (pins : CarrierPins F) (ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚) (c : (AdeleRing (๐“ž F) F)หฃ โ†’ โ„‚) (ฯ† : AdelicGL2 (๐“ž F) F โ†’ โ„‚) (ฮฑ : F) (g : AdelicGL2 (๐“ž F) F) : whittakerCoefficient F pins ฯˆ (fun g => c (Matrix.GeneralLinearGroup.det g) * ฯ† g) ฮฑ g = c (Matrix.GeneralLinearGroup.det g) * whittakerCoefficient F pins ฯˆ ฯ† ฮฑ g := by letI := pins.nS simp only [whittakerCoefficient, map_mul, det_unipotentGL2, one_mul, mul_assoc] exact MeasureTheory.integral_const_mul _ _ theorem IsBoundedGenuineFn.detTwist {pins : CarrierPins F} {ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚} {ฯ† : AdelicGL2 (๐“ž F) F โ†’ โ„‚} (h : IsBoundedGenuineFn F pins ฯˆ ฯ†) (c : (AdeleRing (๐“ž F) F)หฃ โ†’ โ„‚) (hc : Continuous fun g : AdelicGL2 (๐“ž F) F => c (Matrix.GeneralLinearGroup.det g)) (hcโ‚ : โˆ€ u : (AdeleRing (๐“ž F) F)หฃ, โ€–c uโ€– โ‰ค 1) : IsBoundedGenuineFn F pins ฯˆ (fun g => c (Matrix.GeneralLinearGroup.det g) * ฯ† g) := by obtain โŸจhฯ†, hb, hint, hsumโŸฉ := h refine โŸจhc.mul hฯ†, fun c' u dโ‚ dโ‚‚ T hc' hdโ‚ => ?_, fun ฮฑ g => ?_, fun g => ?_โŸฉ ยท obtain โŸจC, hCโŸฉ := hb c' u dโ‚ dโ‚‚ T hc' hdโ‚ refine โŸจC, fun g hg => ?_โŸฉ calc โ€–c (Matrix.GeneralLinearGroup.det g) * ฯ† gโ€– = โ€–c (Matrix.GeneralLinearGroup.det g)โ€– * โ€–ฯ† gโ€– := norm_mul _ _ _ โ‰ค โ€–ฯ† gโ€– := mul_le_of_le_one_left (norm_nonneg _) (hcโ‚ _) _ โ‰ค C := hC g hg ยท have hi := hint ฮฑ g letI := pins.nS change MeasureTheory.Integrable _ _ at hi โŠข simp only [map_mul, det_unipotentGL2, one_mul, mul_assoc] exact hi.const_mul _ ยท have key : (fun ฮฑ : F => whittakerCoefficient F pins ฯˆ (fun g => c (Matrix.GeneralLinearGroup.det g) * ฯ† g) ฮฑ g) = fun ฮฑ : F => c (Matrix.GeneralLinearGroup.det g) * whittakerCoefficient F pins ฯˆ ฯ† ฮฑ g := funext fun ฮฑ => whittakerCoefficient_detTwist pins ฯˆ c ฯ† ฮฑ g rw [key] exact (hsum g).mul_left _ namespace IsBoundedGenuineCuspRealizationAt variable {pins : CarrierPins F} {ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚} {ฮฆ : HeckeEigensystem F โ„‚} {R : SmoothCuspRealizationAt F pins ฮฆ} theorem isBoundedGenuineFn (h : IsBoundedGenuineCuspRealizationAt F pins ฯˆ ฮฆ R) : IsBoundedGenuineFn F pins ฯˆ R.toFun := h theorem isGenuineCuspRealizationAt (h : IsBoundedGenuineCuspRealizationAt F pins ฯˆ ฮฆ R) : IsGenuineCuspRealizationAt F pins ฮฆ R := h.1 theorem isBoundedOnSiegelWindows (h : IsBoundedGenuineCuspRealizationAt F pins ฯˆ ฮฆ R) : IsBoundedOnSiegelWindows F R.toFun := h.2.1 theorem exists_bound_on_window (h : IsBoundedGenuineCuspRealizationAt F pins ฯˆ ฮฆ R) (c u dโ‚ dโ‚‚ : โ„) (T : Finset (AdelicGL2 (๐“ž F) F)) (hc : 0 < c) (hdโ‚ : 0 < dโ‚) : โˆƒ C : โ„, โˆ€ g โˆˆ (โ‹ƒ x โˆˆ T, (ยท * x) '' centreCutSiegelSet F c u dโ‚ dโ‚‚), โ€–R.toFun gโ€– โ‰ค C := h.2.1 c u dโ‚ dโ‚‚ T hc hdโ‚ theorem whittakerCoefficientIntegrable (h : IsBoundedGenuineCuspRealizationAt F pins ฯˆ ฮฆ R) (ฮฑ : F) (g : AdelicGL2 (๐“ž F) F) : WhittakerCoefficientIntegrable F pins ฯˆ R.toFun ฮฑ g := h.2.2.1 ฮฑ g theorem summable_whittakerCoefficient (h : IsBoundedGenuineCuspRealizationAt F pins ฯˆ ฮฆ R) (g : AdelicGL2 (๐“ž F) F) : Summable (fun ฮฑ : F => whittakerCoefficient F pins ฯˆ R.toFun ฮฑ g) := h.2.2.2 g theorem of_toFun_eq {ฮฆ' : HeckeEigensystem F โ„‚} {R' : SmoothCuspRealizationAt F pins ฮฆ'} (h : IsBoundedGenuineCuspRealizationAt F pins ฯˆ ฮฆ R) (he : R'.toFun = R.toFun) : IsBoundedGenuineCuspRealizationAt F pins ฯˆ ฮฆ' R' := by unfold IsBoundedGenuineCuspRealizationAt rw [he] exact h theorem detTwist {ฮฆ' : HeckeEigensystem F โ„‚} {R' : SmoothCuspRealizationAt F pins ฮฆ'} (h : IsBoundedGenuineCuspRealizationAt F pins ฯˆ ฮฆ R) (c : (AdeleRing (๐“ž F) F)หฃ โ†’ โ„‚) (hc : Continuous fun g : AdelicGL2 (๐“ž F) F => c (Matrix.GeneralLinearGroup.det g)) (hcโ‚ : โˆ€ u : (AdeleRing (๐“ž F) F)หฃ, โ€–c uโ€– โ‰ค 1) (he : R'.toFun = fun g => c (Matrix.GeneralLinearGroup.det g) * R.toFun g) : IsBoundedGenuineCuspRealizationAt F pins ฯˆ ฮฆ' R' := by unfold IsBoundedGenuineCuspRealizationAt rw [he] exact IsBoundedGenuineFn.detTwist h c hc hcโ‚ end IsBoundedGenuineCuspRealizationAt theorem isBoundedGenuineCuspRealizationAt_of_isBoundedGenuineFn {pins : CarrierPins F} {ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚} {ฮฆ : HeckeEigensystem F โ„‚} (R : SmoothCuspRealizationAt F pins ฮฆ) (h : IsBoundedGenuineFn F pins ฯˆ R.toFun) : IsBoundedGenuineCuspRealizationAt F pins ฯˆ ฮฆ R := h theorem IsBoundedGenuineCuspRealizationAt.of_toFun_eq_productionPinsOf {D D' : Set (AdelicGL2 (๐“ž F) F)} {U U' : Ideal (๐“ž F) โ†’ Subgroup (AdelicGL2 (๐“ž F) F)} {gen gen' : IsDedekindDomain.HeightOneSpectrum (๐“ž F) โ†’ AdelicGL2 (๐“ž F) F} {B : Set (AdeleRing (๐“ž F) F)} {ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚} {ฮฆ ฮฆ' : HeckeEigensystem F โ„‚} {R : SmoothCuspRealizationAt F (productionPinsOf F D U gen B) ฮฆ} {R' : SmoothCuspRealizationAt F (productionPinsOf F D' U' gen' B) ฮฆ'} (h : IsBoundedGenuineCuspRealizationAt F (productionPinsOf F D U gen B) ฯˆ ฮฆ R) (he : R'.toFun = R.toFun) : IsBoundedGenuineCuspRealizationAt F (productionPinsOf F D' U' gen' B) ฯˆ ฮฆ' R' := by unfold IsBoundedGenuineCuspRealizationAt rw [he] exact (isBoundedGenuineFn_productionPinsOf_iff D D' U U' gen gen' B ฯˆ R.toFun).mp h theorem IsBoundedGenuineCuspRealizable.isGenuineCuspRealizable {pins : CarrierPins F} {ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚} {ฮฆ : HeckeEigensystem F โ„‚} (h : IsBoundedGenuineCuspRealizable F pins ฯˆ ฮฆ) : IsGenuineCuspRealizable F pins ฮฆ := h.imp fun _ hR => hR.isGenuineCuspRealizationAt theorem IsArithBoundedGenuineCuspRealizable.isArithGenuineCuspRealizable {pins : CarrierPins F} {ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚} {ฮฆ : HeckeEigensystem F โ„‚} (h : IsArithBoundedGenuineCuspRealizable F pins ฯˆ ฮฆ) : IsArithGenuineCuspRealizable F pins ฮฆ := IsBoundedGenuineCuspRealizable.isGenuineCuspRealizable h theorem IsArithBoundedGenuineCuspRealizableVia.isArithGenuineCuspRealizableVia {pins : CarrierPins F} {ฯˆ : AddChar (AdeleRing (๐“ž F) F) โ„‚} {R : Type*} [CommRing R] {ฮน : R โ†’+* โ„‚} {ฮฆ : HeckeEigensystem F R} (h : IsArithBoundedGenuineCuspRealizableVia F pins ฯˆ ฮน ฮฆ) : IsArithGenuineCuspRealizableVia F pins ฮน ฮฆ := IsArithBoundedGenuineCuspRealizable.isArithGenuineCuspRealizable h theorem boundedGenuineCuspNotionOf_isCusp_imp (pins : โˆ€ (F : Type) [Field F] [NumberField F], CarrierPins F) (ฮฆ : HeckeEigensystem F โ„‚) (h : (boundedGenuineCuspNotionOf pins).IsCusp F ฮฆ) : (genuineCuspNotionOf pins).IsCusp F ฮฆ := IsArithBoundedGenuineCuspRealizable.isArithGenuineCuspRealizable h end AutomorphicForm end section Battery open AutomorphicForm #check @IsBoundedOnSiegelWindows #check @IsBoundedGenuineFn #check @IsBoundedGenuineCuspRealizationAt #check @IsBoundedGenuineCuspRealizable #check @IsArithBoundedGenuineCuspRealizable #check @IsArithBoundedGenuineCuspRealizableVia #check @boundedGenuineCuspNotionOf #check @boundedGenuineCuspNotionOf_isCusp_iff #check @isBoundedGenuineFn_iff #check @isBoundedGenuineCuspRealizable_iff #check @isBoundedGenuineFn_productionPinsOf_iff #check @IsBoundedGenuineFn.continuous #check @IsBoundedGenuineFn.isBoundedOnSiegelWindows #check @IsBoundedGenuineFn.exists_bound_on_window #check @IsBoundedGenuineFn.whittakerCoefficientIntegrable #check @IsBoundedGenuineFn.summable_whittakerCoefficient #check @whittakerCoefficient_detTwist #check @IsBoundedGenuineFn.detTwist #check @IsBoundedGenuineCuspRealizationAt.isBoundedGenuineFn #check @IsBoundedGenuineCuspRealizationAt.isGenuineCuspRealizationAt #check @IsBoundedGenuineCuspRealizationAt.isBoundedOnSiegelWindows #check @IsBoundedGenuineCuspRealizationAt.exists_bound_on_window #check @IsBoundedGenuineCuspRealizationAt.whittakerCoefficientIntegrable #check @IsBoundedGenuineCuspRealizationAt.summable_whittakerCoefficient #check @IsBoundedGenuineCuspRealizationAt.of_toFun_eq #check @IsBoundedGenuineCuspRealizationAt.detTwist #check @isBoundedGenuineCuspRealizationAt_of_isBoundedGenuineFn #check @IsBoundedGenuineCuspRealizationAt.of_toFun_eq_productionPinsOf #check @IsBoundedGenuineCuspRealizable.isGenuineCuspRealizable #check @IsArithBoundedGenuineCuspRealizable.isArithGenuineCuspRealizable #check @IsArithBoundedGenuineCuspRealizableVia.isArithGenuineCuspRealizableVia #check @boundedGenuineCuspNotionOf_isCusp_imp #print axioms AutomorphicForm.boundedGenuineCuspNotionOf_isCusp_iff #print axioms AutomorphicForm.isBoundedGenuineFn_iff #print axioms AutomorphicForm.isBoundedGenuineCuspRealizable_iff #print axioms AutomorphicForm.isBoundedGenuineFn_productionPinsOf_iff #print axioms AutomorphicForm.IsBoundedGenuineFn.continuous #print axioms AutomorphicForm.IsBoundedGenuineFn.isBoundedOnSiegelWindows #print axioms AutomorphicForm.IsBoundedGenuineFn.exists_bound_on_window #print axioms AutomorphicForm.IsBoundedGenuineFn.whittakerCoefficientIntegrable #print axioms AutomorphicForm.IsBoundedGenuineFn.summable_whittakerCoefficient #print axioms AutomorphicForm.whittakerCoefficient_detTwist #print axioms AutomorphicForm.IsBoundedGenuineFn.detTwist #print axioms AutomorphicForm.IsBoundedGenuineCuspRealizationAt.isBoundedGenuineFn #print axioms AutomorphicForm.IsBoundedGenuineCuspRealizationAt.isGenuineCuspRealizationAt #print axioms AutomorphicForm.IsBoundedGenuineCuspRealizationAt.isBoundedOnSiegelWindows #print axioms AutomorphicForm.IsBoundedGenuineCuspRealizationAt.exists_bound_on_window #print axioms AutomorphicForm.IsBoundedGenuineCuspRealizationAt.whittakerCoefficientIntegrable #print axioms AutomorphicForm.IsBoundedGenuineCuspRealizationAt.summable_whittakerCoefficient #print axioms AutomorphicForm.IsBoundedGenuineCuspRealizationAt.of_toFun_eq #print axioms AutomorphicForm.IsBoundedGenuineCuspRealizationAt.detTwist #print axioms AutomorphicForm.isBoundedGenuineCuspRealizationAt_of_isBoundedGenuineFn #print axioms AutomorphicForm.IsBoundedGenuineCuspRealizationAt.of_toFun_eq_productionPinsOf #print axioms AutomorphicForm.IsBoundedGenuineCuspRealizable.isGenuineCuspRealizable #print axioms AutomorphicForm.IsArithBoundedGenuineCuspRealizable.isArithGenuineCuspRealizable #print axioms AutomorphicForm.IsArithBoundedGenuineCuspRealizableVia.isArithGenuineCuspRealizableVia #print axioms AutomorphicForm.boundedGenuineCuspNotionOf_isCusp_imp end Battery