import Definitions.Def_AutomorphicForm_WeylIntertwining import Definitions.Def_NumberField_TateGlobalZeta import Definitions.Def_LanglandsTunnell_TateLocalConstantsAt set_option autoImplicit false open NumberField IsDedekindDomain AutomorphicForm namespace EisensteinGeneral.Piece open scoped Classical in structure FactorizationDatum (F : Type) [Field F] [NumberField F] (ฯˆv : (v : HeightOneSpectrum (๐“ž F)) โ†’ AddChar (v.adicCompletion F) โ„‚) (nฯˆ : HeightOneSpectrum (๐“ž F) โ†’ โ„ค) (ฯ‡ : (AdeleRing (๐“ž F) F)หฃ โ†’* โ„‚หฃ) (ฯ– : (v : HeightOneSpectrum (๐“ž F)) โ†’ (v.adicCompletion F)หฃ) (ฮจ : โ„‚ โ†’ AdelicGL2 (๐“ž F) F โ†’ โ„‚) (g : AdelicGL2 (๐“ž F) F) (S : Finset (HeightOneSpectrum (๐“ž F))) where cS : HeightOneSpectrum (๐“ž F) โ†’ โ„• mS : โ„• n : โ„• A : Fin n โ†’ (v : HeightOneSpectrum (๐“ž F)) โ†’ v.adicCompletion F โ†’ โ„‚ B : Fin n โ†’ (v : HeightOneSpectrum (๐“ž F)) โ†’ v.adicCompletion F โ†’ โ„‚ h : Fin n โ†’ (v : HeightOneSpectrum (๐“ž F)) โ†’ โ„‚ โ†’ v.adicCompletion F โ†’ โ„‚ kdat : Fin n โ†’ {w : InfinitePlace F // w.IsReal} โ†’ โ„ค ฯ„r : Fin n โ†’ {w : InfinitePlace F // w.IsReal} โ†’ โ„ abm : Fin n โ†’ {w : InfinitePlace F // w.IsComplex} โ†’ โ„• ร— โ„• ร— โ„• ฯ„c : Fin n โ†’ {w : InfinitePlace F // w.IsComplex} โ†’ โ„ Wr : Fin n โ†’ {w : InfinitePlace F // w.IsReal} โ†’ โ„‚ โ†’ โ„ โ†’ โ„‚ Wc : Fin n โ†’ {w : InfinitePlace F // w.IsComplex} โ†’ โ„‚ โ†’ โ„‚ โ†’ โ„‚ a : (AdeleRing (๐“ž F) F)หฃ u : AdeleRing (๐“ž F) F C : Fin n โ†’ โ„‚ โ†’ โ„‚ hฯ‡ฯ– : โˆ€ v, โ€–((NumberField.TateGlobal.localChar ฯ‡ v (ฯ– v) : โ„‚หฃ) : โ„‚)โ€– = 1 hฯ‡S : โˆ€ v โˆ‰ S, โˆ€ u : (v.adicCompletion F)หฃ, Valued.v (u : v.adicCompletion F) = 1 โ†’ NumberField.TateGlobal.localChar ฯ‡ v u = 1 hnฯˆ : โˆ€ v โˆ‰ S, nฯˆ v = 0 hcS : โˆ€ v โˆˆ S, 1 โ‰ค cS v hฯ‡c : โˆ€ v โˆˆ S, โˆ€ u โˆˆ LanglandsTunnell.TateLocal.higherUnitsAt F v (cS v), NumberField.TateGlobal.localChar ฯ‡ v u = 1 hmS : 1 โ‰ค mS hA : โˆ€ (j : Fin n), โˆ€ v โˆˆ S, โˆ€ x โˆˆ v.adicCompletionIntegers F, โˆ€ y โˆˆ v.adicCompletionIntegers F, Valued.v (y - x) โ‰ค Multiplicative.ofAdd (-(mS : โ„ค)) โ†’ A j v y = A j v x hB : โˆ€ (j : Fin n), โˆ€ v โˆˆ S, โˆ€ x y : v.adicCompletion F, Valued.v (y - x) โ‰ค Multiplicative.ofAdd (-(mS : โ„ค)) โ†’ B j v y = B j v x hoff : โˆ€ (j : Fin n), โˆ€ v โˆ‰ S, โˆ€ (s : โ„‚) (x : v.adicCompletion F), h j v s x = (v.adicCompletionIntegers F : Set (v.adicCompletion F)).indicator (fun _ => (1 : โ„‚)) x + (v.adicCompletionIntegers F : Set (v.adicCompletion F))แถœ.indicator (fun y => LanglandsTunnell.TateLocal.charExt (NumberField.TateGlobal.localChar ฯ‡ v)โปยน y * ((LanglandsTunnell.TateLocal.modulus y : โ„) : โ„‚) ^ (-(2 * s + 1))) x hon : โˆ€ (j : Fin n), โˆ€ v โˆˆ S, โˆ€ (s : โ„‚) (x : v.adicCompletion F), h j v s x = (v.adicCompletionIntegers F : Set (v.adicCompletion F)).indicator (A j v) x + (v.adicCompletionIntegers F : Set (v.adicCompletion F))แถœ.indicator (fun y => LanglandsTunnell.TateLocal.charExt (NumberField.TateGlobal.localChar ฯ‡ v)โปยน y * ((LanglandsTunnell.TateLocal.modulus y : โ„) : โ„‚) ^ (-(2 * s + 1)) * B j v yโปยน) x habm : โˆ€ (j : Fin n) (w : {w : InfinitePlace F // w.IsComplex}), (abm j w).1 + (abm j w).2.1 โ‰ค (abm j w).2.2 hWr : โˆ€ (j : Fin n) (i : {w : InfinitePlace F // w.IsReal}) (s : โ„‚) (x : โ„), Wr j i s x = ((((x : โ„) : โ„‚) - Complex.I) / ((Real.sqrt (1 + x ^ 2) : โ„) : โ„‚)) ^ (kdat j i) * (((1 + x ^ 2 : โ„) : โ„‚)) ^ (-(s + 1 / 2 + ((ฯ„r j i : โ„) : โ„‚) * Complex.I / 2)) hWc : โˆ€ (j : Fin n) (w : {w : InfinitePlace F // w.IsComplex}) (s z : โ„‚), Wc j w s z = z ^ (abm j w).1 * (starRingEnd โ„‚) z ^ (abm j w).2.1 * (((1 + โ€–zโ€– ^ 2 : โ„) : โ„‚)) ^ (-(2 * s + 1 + ((abm j w).2.2 : โ„‚) / 2 + ((ฯ„c j w : โ„) : โ„‚) * Complex.I / 2)) hC : โˆ€ j, Differentiable โ„‚ (C j) hfac : โˆ€ (s : โ„‚) (y : AdeleRing (๐“ž F) F), ฮจ s (adelicWeyl (๐“ž F) F * unipotentGL2 y * g) = โˆ‘ j : Fin n, C j s * (โˆ i : {w : InfinitePlace F // w.IsReal}, Wr j i s ((InfiniteAdeleRing.ringEquiv_mixedSpace F (a โ€ข (y + u)).1).1 i)) * (โˆ w : {w : InfinitePlace F // w.IsComplex}, Wc j w s ((InfiniteAdeleRing.ringEquiv_mixedSpace F (a โ€ข (y + u)).1).2 w)) * โˆแถ  v : HeightOneSpectrum (๐“ž F), h j v s ((a โ€ข (y + u)).2 v) end EisensteinGeneral.Piece