import Definitions.Def_AutomorphicForm_GL2ConjugacyCells import Definitions.Def_AutomorphicForm_AdelicLsXi set_option autoImplicit false open Matrix open scoped NumberField noncomputable section namespace AutomorphicForm variable (F : Type) [Field F] [NumberField F] section Kernel variable {M : Type*} [AddCommMonoid M] def adelicKernel (f : AdelicGL2 (๐“ž F) F โ†’ M) (x y : AdelicGL2 (๐“ž F) F) : M := โˆ‘แถ  ฮณ : GL (Fin 2) F, f (xโปยน * globalPoints (๐“ž F) F ฮณ * y) def adelicKernelCentralPart (f : AdelicGL2 (๐“ž F) F โ†’ M) (x y : AdelicGL2 (๐“ž F) F) : M := โˆ‘แถ  ฮณ โˆˆ centralCell F, f (xโปยน * globalPoints (๐“ž F) F ฮณ * y) def adelicKernelUnipotentPart (f : AdelicGL2 (๐“ž F) F โ†’ M) (x y : AdelicGL2 (๐“ž F) F) : M := โˆ‘แถ  ฮณ โˆˆ unipotentCell F, f (xโปยน * globalPoints (๐“ž F) F ฮณ * y) def adelicKernelHyperbolicPart (f : AdelicGL2 (๐“ž F) F โ†’ M) (x y : AdelicGL2 (๐“ž F) F) : M := โˆ‘แถ  ฮณ โˆˆ hyperbolicCell F, f (xโปยน * globalPoints (๐“ž F) F ฮณ * y) def adelicKernelEllipticPart (f : AdelicGL2 (๐“ž F) F โ†’ M) (x y : AdelicGL2 (๐“ž F) F) : M := โˆ‘แถ  ฮณ โˆˆ ellipticCell F, f (xโปยน * globalPoints (๐“ž F) F ฮณ * y) end Kernel def AdelicKernelLocalFiniteness : Prop := โˆ€ C : Set (AdelicGL2 (๐“ž F) F), IsCompact C โ†’ โˆ€ x y : AdelicGL2 (๐“ž F) F, {ฮณ : GL (Fin 2) F | xโปยน * globalPoints (๐“ž F) F ฮณ * y โˆˆ C}.Finite end AutomorphicForm