import Definitions.Def_AutomorphicForm_BorelSubgroup import Definitions.Def_AutomorphicForm_WeylIntertwining import Definitions.Def_NumberField_AdelicHeight import Definitions.Def_NumberField_TateGlobalZeta open MeasureTheory NumberField open NumberField.AdelicHaar attribute [local instance] NumberField.AdelicHaar.glBorel noncomputable section namespace AutomorphicForm variable (F : Type) [Field F] [NumberField F] structure IsSlabProfile (Z : Subgroup (AdeleRing (π“ž F) F)Λ£) (ΞΎ : Z β†’* β„‚Λ£) (Ο† : AdelicGL2 (π“ž F) F β†’ β„‚) : Prop where measurable : Measurable Ο† unipotent_mul : βˆ€ (x : AdeleRing (π“ž F) F) (g : AdelicGL2 (π“ž F) F), Ο† (unipotentGL2 x * g) = Ο† g borel_mul : βˆ€ Ξ³ ∈ borelSubgroup F, βˆ€ g : AdelicGL2 (π“ž F) F, Ο† (globalPoints (π“ž F) F Ξ³ * g) = Ο† g central_transform : βˆ€ (z : Z) (g : AdelicGL2 (π“ž F) F), Ο† (centralScalar (π“ž F) F (z : (AdeleRing (π“ž F) F)Λ£) * g) = ((ΞΎ z : β„‚Λ£) : β„‚) * Ο† g bounded_on_slab : βˆ€ d₁ dβ‚‚ : ℝ, 0 < d₁ β†’ βˆƒ C : ℝ, βˆ€ g : AdelicGL2 (π“ž F) F, NumberField.TateGlobal.ideleNorm F (Matrix.GeneralLinearGroup.det g) ∈ Set.Icc d₁ dβ‚‚ β†’ β€–Ο† gβ€– ≀ C height_band : βˆƒ a b : ℝ, 0 < a ∧ βˆ€ g : AdelicGL2 (π“ž F) F, Ο† g β‰  0 β†’ NumberField.AdelicHeight.adelicHeight F g ∈ Set.Icc a b def pseudoEisenstein (Ο† : AdelicGL2 (π“ž F) F β†’ β„‚) : AdelicGL2 (π“ž F) F β†’ β„‚ := fun g => Ο† g + βˆ‘' Ξ² : F, Ο† (adelicWeyl (π“ž F) F * unipotentGL2 (algebraMap F (AdeleRing (π“ž F) F) Ξ²) * g) variable {F} theorem pseudoEisenstein_apply (Ο† : AdelicGL2 (π“ž F) F β†’ β„‚) (g : AdelicGL2 (π“ž F) F) : pseudoEisenstein F Ο† g = Ο† g + βˆ‘' Ξ² : F, Ο† (adelicWeyl (π“ž F) F * unipotentGL2 (algebraMap F (AdeleRing (π“ž F) F) Ξ²) * g) := rfl theorem isSlabProfile_zero (Z : Subgroup (AdeleRing (π“ž F) F)Λ£) (ΞΎ : Z β†’* β„‚Λ£) : IsSlabProfile F Z ΞΎ (fun _ => (0 : β„‚)) where measurable := measurable_const unipotent_mul := fun _ _ => rfl borel_mul := fun _ _ _ => rfl central_transform := fun _ _ => by simp bounded_on_slab := fun _ _ _ => ⟨0, fun _ _ => by simp⟩ height_band := ⟨1, 1, one_pos, fun _ h => absurd rfl h⟩ theorem pseudoEisenstein_zero : pseudoEisenstein F (fun _ => (0 : β„‚)) = fun _ => (0 : β„‚) := by funext g simp [pseudoEisenstein] end AutomorphicForm end