import Definitions.Def_AutomorphicForm_CarrierPins import Definitions.Def_AutomorphicForm_ConstantTerm set_option autoImplicit false open IsDedekindDomain NumberField MeasureTheory open AutomorphicForm noncomputable section namespace AutomorphicForm variable (F : Type) [Field F] [NumberField F] def IsPrincipalInvariantAddChar (ψ : AddChar (AdeleRing (π“ž F) F) β„‚) : Prop := βˆ€ Ξ± : F, ψ (algebraMap F (AdeleRing (π“ž F) F) Ξ±) = 1 structure IsGlobalAddChar (ψ : AddChar (AdeleRing (π“ž F) F) β„‚) : Prop where principalInvariant : IsPrincipalInvariantAddChar F ψ continuous : Continuous ψ nontrivial : ψ β‰  1 theorem isPrincipalInvariantAddChar_one : IsPrincipalInvariantAddChar F (1 : AddChar (AdeleRing (π“ž F) F) β„‚) := fun _ => rfl theorem not_isGlobalAddChar_one : Β¬ IsGlobalAddChar F (1 : AddChar (AdeleRing (π“ž F) F) β„‚) := fun h => h.nontrivial rfl def whittakerCoefficient (pins : CarrierPins F) (ψ : AddChar (AdeleRing (π“ž F) F) β„‚) (Ο† : AdelicGL2 (π“ž F) F β†’ β„‚) (Ξ± : F) (g : AdelicGL2 (π“ž F) F) : β„‚ := letI := pins.nS ∫ x, Ο† (unipotentGL2 x * g) * ψ (-(algebraMap F (AdeleRing (π“ž F) F) Ξ± * x)) βˆ‚pins.Ξ½ def WhittakerCoefficientIntegrable (pins : CarrierPins F) (ψ : AddChar (AdeleRing (π“ž F) F) β„‚) (Ο† : AdelicGL2 (π“ž F) F β†’ β„‚) (Ξ± : F) (g : AdelicGL2 (π“ž F) F) : Prop := letI := pins.nS Integrable (fun x => Ο† (unipotentGL2 x * g) * ψ (-(algebraMap F (AdeleRing (π“ž F) F) Ξ± * x))) pins.Ξ½ @[simp] theorem whittakerCoefficient_zero (pins : CarrierPins F) (ψ : AddChar (AdeleRing (π“ž F) F) β„‚) (Ξ± : F) (g : AdelicGL2 (π“ž F) F) : whittakerCoefficient F pins ψ (fun _ => (0 : β„‚)) Ξ± g = 0 := by letI := pins.nS simp only [whittakerCoefficient, zero_mul, integral_zero] theorem whittakerCoefficient_zero_eq_constantTerm (pins : CarrierPins F) (ψ : AddChar (AdeleRing (π“ž F) F) β„‚) (Ο† : AdelicGL2 (π“ž F) F β†’ β„‚) (g : AdelicGL2 (π“ž F) F) : whittakerCoefficient F pins ψ Ο† 0 g = @constantTerm _ pins.nS _ _ pins.Ξ½ unipotentGL2 Ο† g := by letI := pins.nS simp only [whittakerCoefficient, map_zero, zero_mul, neg_zero, AddChar.map_zero_eq_one, mul_one] rfl end AutomorphicForm end