import Definitions.Def_LanglandsTunnell_ConverseData set_option autoImplicit false noncomputable section open NumberField AutomorphicForm IsDedekindDomain LanglandsTunnell Polynomial open NumberField.TateGlobal LanglandsTunnell.TateLocal LanglandsTunnell.Converse namespace LanglandsTunnell.HeckeTate variable (F : Type) [Field F] [NumberField F] open Classical in def heckeDatum (ฯ‡ : (AdeleRing (๐“ž F) F)หฃ โ†’* โ„‚หฃ) (uR : โˆ€ w : InfinitePlace F, w.IsReal โ†’ โ„‚) (aR : โˆ€ w : InfinitePlace F, w.IsReal โ†’ ZMod 2) (uC : โˆ€ w : InfinitePlace F, w.IsComplex โ†’ โ„‚) (kC : โˆ€ w : InfinitePlace F, w.IsComplex โ†’ โ„ค) : LDatum (HeightOneSpectrum (๐“ž F)) where norm := fun v => Ideal.absNorm v.asIdeal euler := fun v => if IsUnramifiedCharAt ฯ‡ v then C 1 - C ((ฯ‡ (uniformizerIdele F v) : โ„‚หฃ) : โ„‚) * X else C 1 dual := fun v => if IsUnramifiedCharAt ฯ‡ v then C 1 - C (((ฯ‡ (uniformizerIdele F v))โปยน : โ„‚หฃ) : โ„‚) * X else C 1 gammaR := (Finset.univ : Finset {w : InfinitePlace F // w.IsReal}).sum fun w => ({uR w.1 w.2 + signShift (aR w.1 w.2)} : Multiset โ„‚) gammaC := (Finset.univ : Finset {w : InfinitePlace F // w.IsComplex}).sum fun w => ({uC w.1 w.2 + ((kC w.1 w.2).natAbs : โ„‚) / 2} : Multiset โ„‚) gammaRDual := (Finset.univ : Finset {w : InfinitePlace F // w.IsReal}).sum fun w => ({-uR w.1 w.2 + signShift (aR w.1 w.2)} : Multiset โ„‚) gammaCDual := (Finset.univ : Finset {w : InfinitePlace F // w.IsComplex}).sum fun w => ({-uC w.1 w.2 + ((-kC w.1 w.2).natAbs : โ„‚) / 2} : Multiset โ„‚) abscissa := 1 center := 1 / 2 degree := 1 open Classical in def heckeRootNumber (ฯ‡ : (AdeleRing (๐“ž F) F)หฃ โ†’* โ„‚หฃ) (aR : โˆ€ w : InfinitePlace F, w.IsReal โ†’ ZMod 2) (kC : โˆ€ w : InfinitePlace F, w.IsComplex โ†’ โ„ค) : โ„‚ := ((Finset.univ : Finset {w : InfinitePlace F // w.IsReal}).prod fun w => signEpsilon (aR w.1 w.2)) * ((Finset.univ : Finset {w : InfinitePlace F // w.IsComplex}).prod fun w => Complex.I ^ (kC w.1 w.2).natAbs) * โˆแถ  v : HeightOneSpectrum (๐“ž F), stdRootNumberAt F v (localChar ฯ‡ v) def heckeConductor (ฯ‡ : (AdeleRing (๐“ž F) F)หฃ โ†’* โ„‚หฃ) : โ„ := โˆแถ  v : HeightOneSpectrum (๐“ž F), (Ideal.absNorm v.asIdeal : โ„) ^ (pinnedExp F ฯ‡ v) end LanglandsTunnell.HeckeTate end