import OAI.NumberTheory.DirichletL.Mellin.SixthPowerAveragenamespace OAInoncomputable sectionnamespace SmoothMobiusCorrectionopen scoped BigOperatorsopen MulChar AddCharopen scoped BigOperatorsopen Filter Asymptotics MeasureTheoryopen scoped Topologyopen MeasureTheory Realopen scoped FourierTransform SchwartzMapopen Finset Complexopen scoped Classicalopen scoped Classicalopen Filter Real Asymptoticsopen ActualEisensteinCubicopen Filteropen ActualEisensteinCubic RationalPrimeExtraction ShortDraftLatticeCountopen ActualEisensteinCubic ShortDraftLatticeCountopen Filteropen scoped Topologyopen EisensteinEmbedding ConcreteTraceCRT ActualEisensteinCubicopen MulChar AddCharopen Filter Asymptoticsopen scoped LSeries.notation ArithmeticFunction.Moebiusopen Filteropen MulChar AddCharopen MulChar AddCharopen scoped LSeries.notation ArithmeticFunction.Moebiusopen Filter Asymptotics MeasureTheoryopen scoped Topologyopen Filter Asymptoticsopen Ideal NumberField RingOfIntegers UniqueFactorizationMonoidopen Ideal NumberField RingOfIntegers UniqueFactorizationMonoidopen Ideal NumberField RingOfIntegers UniqueFactorizationMonoidopen Ideal NumberField RingOfIntegers UniqueFactorizationMonoidopen Ideal NumberField RingOfIntegers UniqueFactorizationMonoidopen Filter Asymptoticsopen Filter Asymptotics MeasureTheoryopen scoped Topologyopen Filter Asymptotics Ideal NumberFieldopen Filteropen Filter Asymptotics MeasureTheoryopen scoped Topologyopen Filter Asymptotics MeasureTheoryopen scoped Topologyopen Filter Asymptotics MeasureTheoryopen scoped Topologyopen MeasureTheory Realopen scoped ContDiff FourierTransform SchwartzMapopen scoped BigOperators Classicalopen scoped BigOperators Classicalopen scoped BigOperators Classicalopen scoped BigOperators Classical SchwartzMap ContDiffopen scoped BigOperators Classical SchwartzMap ContDiffopen scoped BigOperators Classicalopen scoped BigOperators Classical SchwartzMap ContDiffopen scoped BigOperators Classicalopen scoped BigOperators Classical SchwartzMap ContDiffopen scoped BigOperators Classical SchwartzMap ContDiffopen scoped BigOperators Classical SchwartzMap ContDiffopen scoped BigOperators Classicalopen scoped BigOperators Classical SchwartzMap ContDiffopen MeasureTheory Setopen scoped BigOperatorsopen scoped BigOperators Classicalopen scoped BigOperators Classicalopen ActualEisensteinCubic UniqueFactorizationMonoidopen scoped BigOperatorsopen scoped BigOperatorsopen scoped BigOperators Classical SchwartzMapopen scoped BigOperators Classicalopen scoped BigOperators Classicalsectionopen ActualEisensteinCubicopen IdealMobiusDivisorSum hiding Oopen UniqueFactorizationMonoidopen CanonicalRowCompletion (primeValueHom primeValueHom_prime)abbrev PrimeIdeal := {P : Ideal ActualEisensteinCubic.O // Prime P}def primeProduct (s : Finset PrimeIdeal) : Ideal ActualEisensteinCubic.O := ∏ P ∈ s, P.valdef primeSet (I : Ideal ActualEisensteinCubic.O) : Finset PrimeIdeal := (primeSupport I).attach.image (fun P => ⟨P.val, support_prime P.property⟩)@[simp] theorem mem_primeSet (I : Ideal ActualEisensteinCubic.O) (P : PrimeIdeal) : P ∈ primeSet I ↔ P.val ∈ primeSupport I := I:Ideal ActualEisensteinCubic.OP:PrimeIdeal⊢ P ∈ primeSet I ↔ ↑P ∈ primeSupport I I:Ideal ActualEisensteinCubic.OP:PrimeIdeal⊢ (∃ a, ⟨↑a, ⋯⟩ = P) ↔ ↑P ∈ primeSupport I I:Ideal ActualEisensteinCubic.OP:PrimeIdeal⊢ (∃ a, ⟨↑a, ⋯⟩ = P) → ↑P ∈ primeSupport II:Ideal ActualEisensteinCubic.OP:PrimeIdeal⊢ ↑P ∈ primeSupport I → ∃ a, ⟨↑a, ⋯⟩ = P I:Ideal ActualEisensteinCubic.OP:PrimeIdeal⊢ (∃ a, ⟨↑a, ⋯⟩ = P) → ↑P ∈ primeSupport I I:Ideal ActualEisensteinCubic.OP:PrimeIdealQ:↥(primeSupport I)hQ:⟨↑Q, ⋯⟩ = P⊢ ↑P ∈ primeSupport I I:Ideal ActualEisensteinCubic.OP:PrimeIdealQ:↥(primeSupport I)hQ:⟨↑Q, ⋯⟩ = Phv:↑⟨↑Q, ⋯⟩ = ↑P⊢ ↑P ∈ primeSupport I All goals completed! 🐙 I:Ideal ActualEisensteinCubic.OP:PrimeIdeal⊢ ↑P ∈ primeSupport I → ∃ a, ⟨↑a, ⋯⟩ = P I:Ideal ActualEisensteinCubic.OP:PrimeIdealh:↑P ∈ primeSupport I⊢ ∃ a, ⟨↑a, ⋯⟩ = P All goals completed! 🐙theorem primeProduct_ne_zero (s : Finset PrimeIdeal) : primeProduct s ≠ 0 := Finset.prod_ne_zero_iff.mpr (fun P _ => P.property.ne_zero)theorem factors_primeProduct (s : Finset PrimeIdeal) : normalizedFactors (primeProduct s) = s.val.map Subtype.val := s:Finset PrimeIdeal⊢ normalizedFactors (primeProduct s) = Multiset.map Subtype.val s.val s:Finset PrimeIdealh:normalizedFactors (Multiset.map (fun P => ↑P) s.val).prod = Multiset.map (fun P => ↑P) s.val⊢ normalizedFactors (primeProduct s) = Multiset.map Subtype.val s.val All goals completed! 🐙theorem primeSet_primeProduct (s : Finset PrimeIdeal) : primeSet (primeProduct s) = s := s:Finset PrimeIdeal⊢ primeSet (primeProduct s) = s s:Finset PrimeIdealP:PrimeIdeal⊢ P ∈ primeSet (primeProduct s) ↔ P ∈ s s:Finset PrimeIdealP:PrimeIdeal⊢ ↑P ∈ primeSupport (primeProduct s) ↔ P ∈ s s:Finset PrimeIdealP:PrimeIdeal⊢ (∃ a ∈ s, ↑a = ↑P) ↔ P ∈ s s:Finset PrimeIdealP:PrimeIdeal⊢ (∃ a ∈ s, ↑a = ↑P) → P ∈ ss:Finset PrimeIdealP:PrimeIdeal⊢ P ∈ s → ∃ a ∈ s, ↑a = ↑P s:Finset PrimeIdealP:PrimeIdeal⊢ (∃ a ∈ s, ↑a = ↑P) → P ∈ s s:Finset PrimeIdealP:PrimeIdealQ:{ P // Prime P }hQ:Q ∈ she:↑Q = ↑P⊢ P ∈ s s:Finset PrimeIdealP:PrimeIdealQ:{ P // Prime P }hQ:Q ∈ she:↑Q = ↑Pthis:Q = P⊢ P ∈ s All goals completed! 🐙 s:Finset PrimeIdealP:PrimeIdeal⊢ P ∈ s → ∃ a ∈ s, ↑a = ↑P s:Finset PrimeIdealP:PrimeIdealh:P ∈ s⊢ ∃ a ∈ s, ↑a = ↑P All goals completed! 🐙theorem primeProduct_injective : Function.Injective primeProduct := ⊢ Function.Injective primeProduct s:Finset PrimeIdealt:Finset PrimeIdealh:primeProduct s = primeProduct t⊢ s = t All goals completed! 🐙theorem primeProduct_squarefree (s : Finset PrimeIdeal) : Squarefree (primeProduct s) := s:Finset PrimeIdeal⊢ Squarefree (primeProduct s) s:Finset PrimeIdeal⊢ (Multiset.map Subtype.val s.val).Nodup All goals completed! 🐙theorem primeProduct_primeSet (I : Ideal ActualEisensteinCubic.O) (hI : Squarefree I) : primeProduct (primeSet I) = I := I:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ primeProduct (primeSet I) = I I:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ ∏ P ∈ Finset.image (fun P => ⟨↑P, ⋯⟩) (primeSupport I).attach, ↑P = I I:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ ∏ x ∈ (primeSupport I).attach, ↑⟨↑x, ⋯⟩ = II:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ InjOn (fun P => ⟨↑P, ⋯⟩) ↑(primeSupport I).attach I:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ ∏ x ∈ (primeSupport I).attach, ↑⟨↑x, ⋯⟩ = I I:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ ∏ P ∈ (primeSupport I).attach, (fun Q => Q) ↑P = I All goals completed! 🐙 I:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ InjOn (fun P => ⟨↑P, ⋯⟩) ↑(primeSupport I).attach I:Ideal ActualEisensteinCubic.OhI:Squarefree IP:↥(primeSupport I)hP:P ∈ ↑(primeSupport I).attachQ:↥(primeSupport I)hQ:Q ∈ ↑(primeSupport I).attachhe:(fun P => ⟨↑P, ⋯⟩) P = (fun P => ⟨↑P, ⋯⟩) Q⊢ P = Q All goals completed! 🐙def mobiusPrimeCoeff (w : Ideal ActualEisensteinCubic.O → ℂ) (I : Ideal ActualEisensteinCubic.O) : ℂ := (moebius I : ℂ) * primeValueHom w Itheorem mobiusPrimeCoeff_nonsquarefree (w : Ideal ActualEisensteinCubic.O → ℂ) (I : Ideal ActualEisensteinCubic.O) (hI : ¬Squarefree I) : mobiusPrimeCoeff w I=0 := w:Ideal ActualEisensteinCubic.O → ℂI:Ideal ActualEisensteinCubic.OhI:¬Squarefree I⊢ mobiusPrimeCoeff w I = 0 All goals completed! 🐙theorem mobiusPrimeCoeff_primeProduct (w : Ideal ActualEisensteinCubic.O → ℂ) (s : Finset PrimeIdeal) : mobiusPrimeCoeff w (primeProduct s) = ∏ P ∈ s, -w P.val := w:Ideal ActualEisensteinCubic.O → ℂs:Finset PrimeIdeal⊢ mobiusPrimeCoeff w (primeProduct s) = ∏ P ∈ s, -w ↑P w:Ideal ActualEisensteinCubic.O → ℂs:Finset PrimeIdealhm:↑(moebius (primeProduct s)) = (-1) ^ #s⊢ mobiusPrimeCoeff w (primeProduct s) = ∏ P ∈ s, -w ↑P w:Ideal ActualEisensteinCubic.O → ℂs:Finset PrimeIdealhm:↑(moebius (primeProduct s)) = (-1) ^ #s⊢ (-1) ^ #s * (primeValueHom w) (primeProduct s) = ∏ P ∈ s, -w ↑P w:Ideal ActualEisensteinCubic.O → ℂs:Finset PrimeIdealhm:↑(moebius (primeProduct s)) = (-1) ^ #s⊢ (-1) ^ #s * ∏ x ∈ s, w ↑x = ∏ P ∈ s, -w ↑P All goals completed! 🐙theorem mobiusPrimeCoeff_tsum (w : Ideal ActualEisensteinCubic.O → ℂ) : (∑' I : Ideal ActualEisensteinCubic.O, mobiusPrimeCoeff w I) = ∑' s : Finset PrimeIdeal, ∏ P ∈ s, -w P.val := w:Ideal ActualEisensteinCubic.O → ℂ⊢ ∑' (I : Ideal ActualEisensteinCubic.O), mobiusPrimeCoeff w I = ∑' (s : Finset PrimeIdeal), ∏ P ∈ s, -w ↑P w:Ideal ActualEisensteinCubic.O → ℂ⊢ Function.Injective fun s => primeProduct ↑sw:Ideal ActualEisensteinCubic.O → ℂ⊢ Function.support (mobiusPrimeCoeff w) ⊆ Set.range fun s => primeProduct ↑sw:Ideal ActualEisensteinCubic.O → ℂ⊢ ∀ (x : ↑(Function.support fun y => ∏ P ∈ y, -w ↑P)), mobiusPrimeCoeff w (primeProduct ↑x) = ∏ P ∈ ↑x, -w ↑P w:Ideal ActualEisensteinCubic.O → ℂ⊢ Function.Injective fun s => primeProduct ↑s All goals completed! 🐙 w:Ideal ActualEisensteinCubic.O → ℂ⊢ Function.support (mobiusPrimeCoeff w) ⊆ Set.range fun s => primeProduct ↑s w:Ideal ActualEisensteinCubic.O → ℂI:Ideal ActualEisensteinCubic.OhI:I ∈ Function.support (mobiusPrimeCoeff w)⊢ I ∈ Set.range fun s => primeProduct ↑s w:Ideal ActualEisensteinCubic.O → ℂI:Ideal ActualEisensteinCubic.OhI:I ∈ Function.support (mobiusPrimeCoeff w)hs:Squarefree I⊢ I ∈ Set.range fun s => primeProduct ↑s w:Ideal ActualEisensteinCubic.O → ℂI:Ideal ActualEisensteinCubic.OhI:I ∈ Function.support (mobiusPrimeCoeff w)hs:Squarefree Ihp:∏ P ∈ primeSet I, -w ↑P ≠ 0⊢ I ∈ Set.range fun s => primeProduct ↑s All goals completed! 🐙 w:Ideal ActualEisensteinCubic.O → ℂ⊢ ∀ (x : ↑(Function.support fun y => ∏ P ∈ y, -w ↑P)), mobiusPrimeCoeff w (primeProduct ↑x) = ∏ P ∈ ↑x, -w ↑P w:Ideal ActualEisensteinCubic.O → ℂs:↑(Function.support fun y => ∏ P ∈ y, -w ↑P)⊢ mobiusPrimeCoeff w (primeProduct ↑s) = ∏ P ∈ ↑s, -w ↑P All goals completed! 🐙theorem mobiusPrimeCoeff_euler (w : Ideal ActualEisensteinCubic.O → ℂ) (hw : Summable (fun P : PrimeIdeal => ‖w P.val‖)) : (∑' I : Ideal ActualEisensteinCubic.O, mobiusPrimeCoeff w I) = ∏' P : PrimeIdeal, (1-w P.val) := w:Ideal ActualEisensteinCubic.O → ℂhw:Summable fun P => ‖w ↑P‖⊢ ∑' (I : Ideal ActualEisensteinCubic.O), mobiusPrimeCoeff w I = ∏' (P : PrimeIdeal), (1 - w ↑P) w:Ideal ActualEisensteinCubic.O → ℂhw:Summable fun P => ‖w ↑P‖⊢ ∑' (s : Finset PrimeIdeal), ∏ P ∈ s, -w ↑P = ∏' (P : PrimeIdeal), (1 - w ↑P) w:Ideal ActualEisensteinCubic.O → ℂhw:Summable fun P => ‖w ↑P‖hs:Summable fun P => ‖-w ↑P‖⊢ ∑' (s : Finset PrimeIdeal), ∏ P ∈ s, -w ↑P = ∏' (P : PrimeIdeal), (1 - w ↑P) All goals completed! 🐙endsectionopen ActualEisensteinCubicopen Filterlemma prime_norm_two_le (P : PrimeIdeal) : 2 ≤ Ideal.absNorm P.val := P:PrimeIdeal⊢ 2 ≤ absNorm ↑P P:PrimeIdealh0:absNorm ↑P ≠ 0⊢ 2 ≤ absNorm ↑P P:PrimeIdealh0:absNorm ↑P ≠ 0h1:absNorm ↑P ≠ 1⊢ 2 ≤ absNorm ↑P All goals completed! 🐙lemma prime_norm_pos (P : PrimeIdeal) : (0 : ℝ) < Ideal.absNorm P.val := P:PrimeIdeal⊢ 0 < ↑(absNorm ↑P) P:PrimeIdealh:2 ≤ absNorm ↑P⊢ 0 < ↑(absNorm ↑P) exact_mod_cast (P:PrimeIdealh:2 ≤ absNorm ↑P⊢ 0 < absNorm ↑P All goals completed! 🐙 : 0 < Ideal.absNorm P.val)def primeNormPower (P : PrimeIdeal) (s : ℂ) : ℂ := (Ideal.absNorm P.val : ℂ)^(-s)def primeCharacterTerm {q : ℕ} (χ : DirichletCharacter ℂ q) (P : PrimeIdeal) (s : ℂ) : ℂ := χ (Ideal.absNorm P.val) * primeNormPower P sdef primeDensity (P : PrimeIdeal) : ℂ := 1-(1:ℂ)/(Ideal.absNorm P.val:ℂ)lemma norm_primeNormPower (P : PrimeIdeal) (s : ℂ) : ‖primeNormPower P s‖=(Ideal.absNorm P.val : ℝ)^(-s.re) := P:PrimeIdeals:ℂ⊢ ‖primeNormPower P s‖ = ↑(absNorm ↑P) ^ (-s.re) All goals completed! 🐙lemma primeDensity_norm_le_one (P : PrimeIdeal) : ‖primeDensity P‖≤1 := P:PrimeIdeal⊢ ‖primeDensity P‖ ≤ 1 P:PrimeIdealhn:0 < ↑(absNorm ↑P)⊢ ‖primeDensity P‖ ≤ 1 P:PrimeIdealhn:0 < ↑(absNorm ↑P)hn1:1 ≤ ↑(absNorm ↑P)⊢ ‖primeDensity P‖ ≤ 1 P:PrimeIdealhn:0 < ↑(absNorm ↑P)hn1:1 ≤ ↑(absNorm ↑P)he:primeDensity P = ↑(1 - 1 / ↑(absNorm ↑P))⊢ ‖primeDensity P‖ ≤ 1 P:PrimeIdealhn:0 < ↑(absNorm ↑P)hn1:1 ≤ ↑(absNorm ↑P)he:primeDensity P = ↑(1 - 1 / ↑(absNorm ↑P))⊢ 1 - 1 / ↑(absNorm ↑P) ≤ 1P:PrimeIdealhn:0 < ↑(absNorm ↑P)hn1:1 ≤ ↑(absNorm ↑P)he:primeDensity P = ↑(1 - 1 / ↑(absNorm ↑P))⊢ 0 ≤ 1 - 1 / ↑(absNorm ↑P) P:PrimeIdealhn:0 < ↑(absNorm ↑P)hn1:1 ≤ ↑(absNorm ↑P)he:primeDensity P = ↑(1 - 1 / ↑(absNorm ↑P))⊢ 1 - 1 / ↑(absNorm ↑P) ≤ 1 P:PrimeIdealhn:0 < ↑(absNorm ↑P)hn1:1 ≤ ↑(absNorm ↑P)he:primeDensity P = ↑(1 - 1 / ↑(absNorm ↑P))this:0 ≤ 1 / ↑(absNorm ↑P)⊢ 1 - 1 / ↑(absNorm ↑P) ≤ 1 All goals completed! 🐙 P:PrimeIdealhn:0 < ↑(absNorm ↑P)hn1:1 ≤ ↑(absNorm ↑P)he:primeDensity P = ↑(1 - 1 / ↑(absNorm ↑P))⊢ 0 ≤ 1 - 1 / ↑(absNorm ↑P) All goals completed! 🐙lemma primeCharacterTerm_norm_le {q : ℕ} (χ : DirichletCharacter ℂ q) (P : PrimeIdeal) (s : ℂ) (σ : ℝ) (hs : σ≤s.re) : ‖primeCharacterTerm χ P s‖≤(Ideal.absNorm P.val:ℝ)^(-σ) := q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂσ:ℝhs:σ ≤ s.re⊢ ‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-σ) q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂσ:ℝhs:σ ≤ s.re⊢ ‖χ ↑(absNorm ↑P)‖ * ↑(absNorm ↑P) ^ (-s.re) ≤ ↑(absNorm ↑P) ^ (-σ) q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂσ:ℝhs:σ ≤ s.rehn1:1 ≤ ↑(absNorm ↑P)⊢ ‖χ ↑(absNorm ↑P)‖ * ↑(absNorm ↑P) ^ (-s.re) ≤ ↑(absNorm ↑P) ^ (-σ) calc _ ≤ 1*(Ideal.absNorm P.val:ℝ)^(-s.re) := mul_le_mul_of_nonneg_right (χ.norm_le_one _) (q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂσ:ℝhs:σ ≤ s.rehn1:1 ≤ ↑(absNorm ↑P)⊢ 0 ≤ ↑(absNorm ↑P) ^ (-s.re) All goals completed! 🐙) _ ≤ _ := q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂσ:ℝhs:σ ≤ s.rehn1:1 ≤ ↑(absNorm ↑P)⊢ 1 * ↑(absNorm ↑P) ^ (-s.re) ≤ ↑(absNorm ↑P) ^ (-σ) q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂσ:ℝhs:σ ≤ s.rehn1:1 ≤ ↑(absNorm ↑P)⊢ ↑(absNorm ↑P) ^ (-s.re) ≤ ↑(absNorm ↑P) ^ (-σ); All goals completed! 🐙lemma primeCharacterTerm_norm_lt_one {q : ℕ} (χ : DirichletCharacter ℂ q) (P : PrimeIdeal) (s : ℂ) (hs : 0<s.re) : ‖primeCharacterTerm χ P s‖<1 := q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂhs:0 < s.re⊢ ‖primeCharacterTerm χ P s‖ < 1 q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂhs:0 < s.re⊢ ↑(absNorm ↑P) ^ (-s.re) < 1 exact Real.rpow_lt_one_of_one_lt_of_neg (q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂhs:0 < s.re⊢ 1 < ↑(absNorm ↑P) q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂhs:0 < s.rethis:2 ≤ absNorm ↑P⊢ 1 < ↑(absNorm ↑P);exact_mod_cast (q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂhs:0 < s.rethis:2 ≤ absNorm ↑P⊢ 1 < absNorm ↑P All goals completed! 🐙:1<Ideal.absNorm P.val)) (q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂhs:0 < s.re⊢ -s.re < 0 All goals completed! 🐙)lemma one_sub_ne_zero {x : ℂ} (hx : ‖x‖<1) : 1-x≠0 := x:ℂhx:‖x‖ < 1⊢ 1 - x ≠ 0 x:ℂhx:‖x‖ < 1h:1 - x = 0⊢ False x:ℂhx:‖x‖ < 1h:1 - x = 0he:x = 1⊢ False All goals completed! 🐙lemma correctionDenominator_ne_zero {q : ℕ} (χ : DirichletCharacter ℂ q) (P : PrimeIdeal) (s : ℂ) (hs : 0<s.re) : 1-primeDensity P*primeCharacterTerm χ P s≠0 := q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂhs:0 < s.re⊢ 1 - primeDensity P * primeCharacterTerm χ P s ≠ 0 q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂhs:0 < s.re⊢ ‖primeDensity P * primeCharacterTerm χ P s‖ < 1 q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂhs:0 < s.re⊢ ‖primeDensity P‖ * ‖primeCharacterTerm χ P s‖ < 1 calc _ ≤ 1*‖primeCharacterTerm χ P s‖ := mul_le_mul_of_nonneg_right (primeDensity_norm_le_one P) (norm_nonneg _) _ < 1 := q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂhs:0 < s.re⊢ 1 * ‖primeCharacterTerm χ P s‖ < 1 q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeals:ℂhs:0 < s.re⊢ ‖primeCharacterTerm χ P s‖ < 1;All goals completed! 🐙def correctionTerm {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (P : PrimeIdeal) (s : ℂ) : ℂ := if P.val∈S then 0 else -((1:ℂ)/(Ideal.absNorm P.val:ℂ))*primeCharacterTerm χ P s / (1-primeDensity P*primeCharacterTerm χ P s)def eulerCorrection {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (s : ℂ) : ℂ := ∏' P : PrimeIdeal, (1+correctionTerm χ S P s)lemma correctionTerm_factor {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (P : PrimeIdeal) (s : ℂ) (hs : 0<s.re) : 1+correctionTerm χ S P s = if P.val∈S then 1 else (1-primeCharacterTerm χ P s)/(1-primeDensity P*primeCharacterTerm χ P s) := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.re⊢ 1 + correctionTerm χ S P s = if ↑P ∈ S then 1 else (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∈ S⊢ 1 + correctionTerm χ S P s = if ↑P ∈ S then 1 else (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s)q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∉ S⊢ 1 + correctionTerm χ S P s = if ↑P ∈ S then 1 else (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∈ S⊢ 1 + correctionTerm χ S P s = if ↑P ∈ S then 1 else (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s) All goals completed! 🐙 q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∉ S⊢ 1 + correctionTerm χ S P s = if ↑P ∈ S then 1 else (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∉ S⊢ 1 + -(1 / ↑(absNorm ↑P)) * primeCharacterTerm χ P s / (1 - primeDensity P * primeCharacterTerm χ P s) = (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∉ Shd:1 - primeDensity P * primeCharacterTerm χ P s ≠ 0⊢ 1 + -(1 / ↑(absNorm ↑P)) * primeCharacterTerm χ P s / (1 - primeDensity P * primeCharacterTerm χ P s) = (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∉ Shd:1 - primeDensity P * primeCharacterTerm χ P s ≠ 0⊢ (1 + -(1 / ↑(absNorm ↑P)) * primeCharacterTerm χ P s / (1 - primeDensity P * primeCharacterTerm χ P s)) * (1 - primeDensity P * primeCharacterTerm χ P s) = 1 - primeCharacterTerm χ P s q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∉ Shd:1 - primeDensity P * primeCharacterTerm χ P s ≠ 0⊢ 1 - primeDensity P * primeCharacterTerm χ P s + -(1 / ↑(absNorm ↑P)) * primeCharacterTerm χ P s = 1 - primeCharacterTerm χ P s q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∉ Shd:1 - primeDensity P * primeCharacterTerm χ P s ≠ 0⊢ 1 - (1 - 1 / ↑(absNorm ↑P)) * primeCharacterTerm χ P s + -(1 / ↑(absNorm ↑P)) * primeCharacterTerm χ P s = 1 - primeCharacterTerm χ P s All goals completed! 🐙lemma correctionFactor_ne_zero {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (P : PrimeIdeal) (s : ℂ) (hs : 0<s.re) : 1+correctionTerm χ S P s≠0 := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.re⊢ 1 + correctionTerm χ S P s ≠ 0 q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.re⊢ (if ↑P ∈ S then 1 else (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s)) ≠ 0 q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.reh✝:↑P ∈ S⊢ 1 ≠ 0q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.reh✝:↑P ∉ S⊢ (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s) ≠ 0 q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.reh✝:↑P ∈ S⊢ 1 ≠ 0 All goals completed! 🐙 q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.reh✝:↑P ∉ S⊢ (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s) ≠ 0 All goals completed! 🐙lemma correctionTerm_uniform_bound {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (σ : ℝ) (hσ : 0<σ) (P : PrimeIdeal) (s : ℂ) (hs : σ≤s.re) : ‖correctionTerm χ S P s‖ ≤ (1-(2:ℝ)^(-σ))⁻¹*(Ideal.absNorm P.val:ℝ)^(-(1+σ)) := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.re⊢ ‖correctionTerm χ S P s‖ ≤ (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ)) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)⊢ ‖correctionTerm χ S P s‖ ≤ (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ)) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)⊢ ‖correctionTerm χ S P s‖ ≤ (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ)) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1⊢ ‖correctionTerm χ S P s‖ ≤ (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ)) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1hr0:0 < 1 - 2 ^ (-σ)⊢ ‖correctionTerm χ S P s‖ ≤ (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ)) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1hr0:0 < 1 - 2 ^ (-σ)hx:‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-σ)⊢ ‖correctionTerm χ S P s‖ ≤ (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ)) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1hr0:0 < 1 - 2 ^ (-σ)hx:‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-σ)hx2:‖primeCharacterTerm χ P s‖ ≤ 2 ^ (-σ)⊢ ‖correctionTerm χ S P s‖ ≤ (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ)) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1hr0:0 < 1 - 2 ^ (-σ)hx:‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-σ)hx2:‖primeCharacterTerm χ P s‖ ≤ 2 ^ (-σ)hd:1 - 2 ^ (-σ) ≤ ‖1 - primeDensity P * primeCharacterTerm χ P s‖⊢ ‖correctionTerm χ S P s‖ ≤ (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ)) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1hr0:0 < 1 - 2 ^ (-σ)hx:‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-σ)hx2:‖primeCharacterTerm χ P s‖ ≤ 2 ^ (-σ)hd:1 - 2 ^ (-σ) ≤ ‖1 - primeDensity P * primeCharacterTerm χ P s‖hP:↑P ∈ S⊢ ‖correctionTerm χ S P s‖ ≤ (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ))q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1hr0:0 < 1 - 2 ^ (-σ)hx:‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-σ)hx2:‖primeCharacterTerm χ P s‖ ≤ 2 ^ (-σ)hd:1 - 2 ^ (-σ) ≤ ‖1 - primeDensity P * primeCharacterTerm χ P s‖hP:↑P ∉ S⊢ ‖correctionTerm χ S P s‖ ≤ (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ)) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1hr0:0 < 1 - 2 ^ (-σ)hx:‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-σ)hx2:‖primeCharacterTerm χ P s‖ ≤ 2 ^ (-σ)hd:1 - 2 ^ (-σ) ≤ ‖1 - primeDensity P * primeCharacterTerm χ P s‖hP:↑P ∈ S⊢ ‖correctionTerm χ S P s‖ ≤ (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ)) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1hr0:0 < 1 - 2 ^ (-σ)hx:‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-σ)hx2:‖primeCharacterTerm χ P s‖ ≤ 2 ^ (-σ)hd:1 - 2 ^ (-σ) ≤ ‖1 - primeDensity P * primeCharacterTerm χ P s‖hP:↑P ∈ S⊢ 0 ≤ (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ)) All goals completed! 🐙 q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1hr0:0 < 1 - 2 ^ (-σ)hx:‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-σ)hx2:‖primeCharacterTerm χ P s‖ ≤ 2 ^ (-σ)hd:1 - 2 ^ (-σ) ≤ ‖1 - primeDensity P * primeCharacterTerm χ P s‖hP:↑P ∉ S⊢ ‖correctionTerm χ S P s‖ ≤ (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ)) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1hr0:0 < 1 - 2 ^ (-σ)hx:‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-σ)hx2:‖primeCharacterTerm χ P s‖ ≤ 2 ^ (-σ)hd:1 - 2 ^ (-σ) ≤ ‖1 - primeDensity P * primeCharacterTerm χ P s‖hP:↑P ∉ S⊢ 1 / ↑(absNorm ↑P) * ‖primeCharacterTerm χ P s‖ / ‖1 - primeDensity P * primeCharacterTerm χ P s‖ ≤ (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ)) calc _ ≤ ((1:ℝ)/(Ideal.absNorm P.val:ℝ)*(Ideal.absNorm P.val:ℝ)^(-σ))/(1-(2:ℝ)^(-σ)) := div_le_div₀ (q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1hr0:0 < 1 - 2 ^ (-σ)hx:‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-σ)hx2:‖primeCharacterTerm χ P s‖ ≤ 2 ^ (-σ)hd:1 - 2 ^ (-σ) ≤ ‖1 - primeDensity P * primeCharacterTerm χ P s‖hP:↑P ∉ S⊢ 0 ≤ 1 / ↑(absNorm ↑P) * ↑(absNorm ↑P) ^ (-σ) All goals completed! 🐙) (mul_le_mul_of_nonneg_left hx (q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1hr0:0 < 1 - 2 ^ (-σ)hx:‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-σ)hx2:‖primeCharacterTerm χ P s‖ ≤ 2 ^ (-σ)hd:1 - 2 ^ (-σ) ≤ ‖1 - primeDensity P * primeCharacterTerm χ P s‖hP:↑P ∉ S⊢ 0 ≤ 1 / ↑(absNorm ↑P) All goals completed! 🐙)) hr0 hd _ = _ := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1hr0:0 < 1 - 2 ^ (-σ)hx:‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-σ)hx2:‖primeCharacterTerm χ P s‖ ≤ 2 ^ (-σ)hd:1 - 2 ^ (-σ) ≤ ‖1 - primeDensity P * primeCharacterTerm χ P s‖hP:↑P ∉ S⊢ 1 / ↑(absNorm ↑P) * ↑(absNorm ↑P) ^ (-σ) / (1 - 2 ^ (-σ)) = (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + σ)) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σP:PrimeIdeals:ℂhs:σ ≤ s.rehn:0 < ↑(absNorm ↑P)hn2:2 ≤ ↑(absNorm ↑P)hr:2 ^ (-σ) < 1hr0:0 < 1 - 2 ^ (-σ)hx:‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-σ)hx2:‖primeCharacterTerm χ P s‖ ≤ 2 ^ (-σ)hd:1 - 2 ^ (-σ) ≤ ‖1 - primeDensity P * primeCharacterTerm χ P s‖hP:↑P ∉ S⊢ 1 / ↑(absNorm ↑P) * ↑(absNorm ↑P) ^ (-σ) / (1 - 2 ^ (-σ)) = (1 - 2 ^ (-σ))⁻¹ * ((↑(absNorm ↑P))⁻¹ * ↑(absNorm ↑P) ^ (-σ)) All goals completed! 🐙lemma prime_norm_series_summable (σ : ℝ) (hσ : 0<σ) : Summable (fun P : PrimeIdeal => (Ideal.absNorm P.val:ℝ)^(-(1+σ))) := σ:ℝhσ:0 < σ⊢ Summable fun P => ↑(absNorm ↑P) ^ (-(1 + σ)) σ:ℝhσ:0 < σht:Summable ((fun I => ‖CubicEisenstein.fullIdealWeight (1 + ↑σ) I‖) ∘ fun P => ↑P)⊢ Summable fun P => ↑(absNorm ↑P) ^ (-(1 + σ)) σ:ℝhσ:0 < σht:Summable ((fun I => ‖CubicEisenstein.fullIdealWeight (1 + ↑σ) I‖) ∘ fun P => ↑P)⊢ ∀ (b : PrimeIdeal), ((fun I => ‖CubicEisenstein.fullIdealWeight (1 + ↑σ) I‖) ∘ fun P => ↑P) b = ↑(absNorm ↑b) ^ (-(1 + σ)) σ:ℝhσ:0 < σht:Summable ((fun I => ‖CubicEisenstein.fullIdealWeight (1 + ↑σ) I‖) ∘ fun P => ↑P)P:PrimeIdeal⊢ ((fun I => ‖CubicEisenstein.fullIdealWeight (1 + ↑σ) I‖) ∘ fun P => ↑P) P = ↑(absNorm ↑P) ^ (-(1 + σ)) σ:ℝhσ:0 < σht:Summable ((fun I => ‖CubicEisenstein.fullIdealWeight (1 + ↑σ) I‖) ∘ fun P => ↑P)P:PrimeIdeal⊢ ‖↑(absNorm ↑P) ^ (-(1 + ↑σ))‖ = ↑(absNorm ↑P) ^ (-(1 + σ)) All goals completed! 🐙lemma correctionTerm_summable {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (s : ℂ) (hs : 0<s.re) : Summable (fun P : PrimeIdeal => ‖correctionTerm χ S P s‖) := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:0 < s.re⊢ Summable fun P => ‖correctionTerm χ S P s‖ q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:0 < s.re⊢ Summable fun P => (1 - 2 ^ (-s.re))⁻¹ * ↑(absNorm ↑P) ^ (-(1 + s.re)) All goals completed! 🐙theorem eulerCorrection_ne_zero {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (s : ℂ) (hs : 0<s.re) : eulerCorrection χ S s≠0 := tprod_one_add_ne_zero_of_summable (fun P => correctionFactor_ne_zero χ S P s hs) (correctionTerm_summable χ S s hs)lemma primeCharacterTerm_differentiable {q : ℕ} (χ : DirichletCharacter ℂ q) (P : PrimeIdeal) : Differentiable ℂ (primeCharacterTerm χ P) := q:ℕχ:DirichletCharacter ℂ qP:PrimeIdeal⊢ Differentiable ℂ (primeCharacterTerm χ P) q:ℕχ:DirichletCharacter ℂ qP:PrimeIdealhn:↑(absNorm ↑P) ≠ 0⊢ Differentiable ℂ (primeCharacterTerm χ P) All goals completed! 🐙lemma correctionTerm_differentiableOn {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (P : PrimeIdeal) (σ : ℝ) (hσ : 0≤σ) : DifferentiableOn ℂ (correctionTerm χ S P) {s:ℂ | σ<s.re} := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdealσ:ℝhσ:0 ≤ σ⊢ DifferentiableOn ℂ (correctionTerm χ S P) {s | σ < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdealσ:ℝhσ:0 ≤ σ⊢ DifferentiableOn ℂ (fun s => if ↑P ∈ S then 0 else -(1 / ↑(absNorm ↑P)) * primeCharacterTerm χ P s / (1 - primeDensity P * primeCharacterTerm χ P s)) {s | σ < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdealσ:ℝhσ:0 ≤ σhP:↑P ∈ S⊢ DifferentiableOn ℂ (fun s => if ↑P ∈ S then 0 else -(1 / ↑(absNorm ↑P)) * primeCharacterTerm χ P s / (1 - primeDensity P * primeCharacterTerm χ P s)) {s | σ < s.re}q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdealσ:ℝhσ:0 ≤ σhP:↑P ∉ S⊢ DifferentiableOn ℂ (fun s => if ↑P ∈ S then 0 else -(1 / ↑(absNorm ↑P)) * primeCharacterTerm χ P s / (1 - primeDensity P * primeCharacterTerm χ P s)) {s | σ < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdealσ:ℝhσ:0 ≤ σhP:↑P ∈ S⊢ DifferentiableOn ℂ (fun s => if ↑P ∈ S then 0 else -(1 / ↑(absNorm ↑P)) * primeCharacterTerm χ P s / (1 - primeDensity P * primeCharacterTerm χ P s)) {s | σ < s.re} All goals completed! 🐙 q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdealσ:ℝhσ:0 ≤ σhP:↑P ∉ S⊢ DifferentiableOn ℂ (fun s => if ↑P ∈ S then 0 else -(1 / ↑(absNorm ↑P)) * primeCharacterTerm χ P s / (1 - primeDensity P * primeCharacterTerm χ P s)) {s | σ < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdealσ:ℝhσ:0 ≤ σhP:↑P ∉ S⊢ DifferentiableOn ℂ (fun s => -(1 / ↑(absNorm ↑P)) * primeCharacterTerm χ P s / (1 - primeDensity P * primeCharacterTerm χ P s)) {s | σ < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdealσ:ℝhσ:0 ≤ σhP:↑P ∉ Ss:ℂhs:s ∈ {s | σ < s.re}⊢ DifferentiableWithinAt ℂ (fun s => -(1 / ↑(absNorm ↑P)) * primeCharacterTerm χ P s / (1 - primeDensity P * primeCharacterTerm χ P s)) {s | σ < s.re} s q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdealσ:ℝhσ:0 ≤ σhP:↑P ∉ Ss:ℂhs:s ∈ {s | σ < s.re}hx:DifferentiableAt ℂ (primeCharacterTerm χ P) s⊢ DifferentiableWithinAt ℂ (fun s => -(1 / ↑(absNorm ↑P)) * primeCharacterTerm χ P s / (1 - primeDensity P * primeCharacterTerm χ P s)) {s | σ < s.re} s All goals completed! 🐙lemma eulerCorrection_locally_uniform {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (σ : ℝ) (hσ : 0<σ) : HasProdLocallyUniformlyOn (fun P s => 1+correctionTerm χ S P s) (eulerCorrection χ S) {s:ℂ | σ<s.re} := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σ⊢ HasProdLocallyUniformlyOn (fun P s => 1 + correctionTerm χ S P s) (eulerCorrection χ S) {s | σ < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σhu:Summable fun i => (1 - 2 ^ (-σ))⁻¹ * ↑(absNorm ↑i) ^ (-(1 + σ))⊢ HasProdLocallyUniformlyOn (fun P s => 1 + correctionTerm χ S P s) (eulerCorrection χ S) {s | σ < s.re} All goals completed! 🐙theorem eulerCorrection_differentiableOn_halfplane {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (σ : ℝ) (hσ : 0<σ) : DifferentiableOn ℂ (eulerCorrection χ S) {s:ℂ | σ<s.re} := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σ⊢ DifferentiableOn ℂ (eulerCorrection χ S) {s | σ < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σ⊢ ∀ᶠ (n : Finset PrimeIdeal) in atTop, DifferentiableOn ℂ (fun x2 => ∏ i ∈ n, (fun P s => 1 + correctionTerm χ S P s) i x2) {s | σ < s.re}q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σ⊢ IsOpen {s | σ < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σ⊢ ∀ᶠ (n : Finset PrimeIdeal) in atTop, DifferentiableOn ℂ (fun x2 => ∏ i ∈ n, (fun P s => 1 + correctionTerm χ S P s) i x2) {s | σ < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σ⊢ ∀ (x : Finset PrimeIdeal), DifferentiableOn ℂ (fun x2 => ∏ i ∈ x, (fun P s => 1 + correctionTerm χ S P s) i x2) {s | σ < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σt:Finset PrimeIdeal⊢ DifferentiableOn ℂ (fun x2 => ∏ i ∈ t, (fun P s => 1 + correctionTerm χ S P s) i x2) {s | σ < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σt:Finset PrimeIdeal⊢ DifferentiableOn ℂ (fun z => ∏ P ∈ t, (1 + correctionTerm χ S P z)) {s | σ < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σt:Finset PrimeIdeal⊢ ∀ i ∈ t, DifferentiableOn ℂ (fun x => 1 + correctionTerm χ S i x) {s | σ < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σt:Finset PrimeIdealP:PrimeIdealhP:P ∈ t⊢ DifferentiableOn ℂ (fun x => 1 + correctionTerm χ S P x) {s | σ < s.re} All goals completed! 🐙 q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)σ:ℝhσ:0 < σ⊢ IsOpen {s | σ < s.re} All goals completed! 🐙theorem eulerCorrection_differentiableOn {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) : DifferentiableOn ℂ (eulerCorrection χ S) {s:ℂ | 0<s.re} := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)⊢ DifferentiableOn ℂ (eulerCorrection χ S) {s | 0 < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:s ∈ {s | 0 < s.re}⊢ DifferentiableWithinAt ℂ (eulerCorrection χ S) {s | 0 < s.re} s q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:s ∈ {s | 0 < s.re}hh:DifferentiableOn ℂ (eulerCorrection χ S) {s_1 | s.re / 2 < s_1.re}⊢ DifferentiableWithinAt ℂ (eulerCorrection χ S) {s | 0 < s.re} s exact (hh.differentiableAt ((isOpen_lt continuous_const Complex.continuous_re).mem_nhds (show s∈{z:ℂ | s.re/2<z.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)⊢ DifferentiableOn ℂ (eulerCorrection χ S) {s | 0 < s.re} q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:0 < s.rehh:DifferentiableOn ℂ (eulerCorrection χ S) {s_1 | s.re / 2 < s_1.re}⊢ s.re / 2 < s.re;All goals completed! 🐙))).differentiableWithinAtendsectionopen ActualEisensteinCubicopen ShortDraftHeckeBridge hiding Oopen IdealMobiusDivisorSum hiding Oopen UniqueFactorizationMonoidopen CanonicalRowCompletion (primeValueHom primeValueHom_prime)lemma prod_primeSet {M : Type*} [CommMonoid M] (I : Ideal ActualEisensteinCubic.O) (f : Ideal ActualEisensteinCubic.O→M) : (∏P∈primeSet I,f P.val)=∏P∈primeSupport I,f P := M:Type u_1inst✝:CommMonoid MI:Ideal ActualEisensteinCubic.Of:Ideal ActualEisensteinCubic.O → M⊢ ∏ P ∈ primeSet I, f ↑P = ∏ P ∈ primeSupport I, f P M:Type u_1inst✝:CommMonoid MI:Ideal ActualEisensteinCubic.Of:Ideal ActualEisensteinCubic.O → M⊢ ∏ P ∈ Finset.image (fun P => ⟨↑P, ⋯⟩) (primeSupport I).attach, f ↑P = ∏ P ∈ primeSupport I, f P M:Type u_1inst✝:CommMonoid MI:Ideal ActualEisensteinCubic.Of:Ideal ActualEisensteinCubic.O → M⊢ ∏ x ∈ (primeSupport I).attach, f ↑⟨↑x, ⋯⟩ = ∏ P ∈ primeSupport I, f PM:Type u_1inst✝:CommMonoid MI:Ideal ActualEisensteinCubic.Of:Ideal ActualEisensteinCubic.O → M⊢ InjOn (fun P => ⟨↑P, ⋯⟩) ↑(primeSupport I).attach M:Type u_1inst✝:CommMonoid MI:Ideal ActualEisensteinCubic.Of:Ideal ActualEisensteinCubic.O → M⊢ ∏ x ∈ (primeSupport I).attach, f ↑⟨↑x, ⋯⟩ = ∏ P ∈ primeSupport I, f P All goals completed! 🐙 M:Type u_1inst✝:CommMonoid MI:Ideal ActualEisensteinCubic.Of:Ideal ActualEisensteinCubic.O → M⊢ InjOn (fun P => ⟨↑P, ⋯⟩) ↑(primeSupport I).attach M:Type u_1inst✝:CommMonoid MI:Ideal ActualEisensteinCubic.Of:Ideal ActualEisensteinCubic.O → MP:↥(primeSupport I)hP:P ∈ ↑(primeSupport I).attachQ:↥(primeSupport I)hQ:Q ∈ ↑(primeSupport I).attachhe:(fun P => ⟨↑P, ⋯⟩) P = (fun P => ⟨↑P, ⋯⟩) Q⊢ P = Q All goals completed! 🐙lemma primeValueHom_squarefree (w : Ideal ActualEisensteinCubic.O→ℂ) (I : Ideal ActualEisensteinCubic.O) (hI : Squarefree I) : primeValueHom w I=∏P∈primeSet I,w P.val := w:Ideal ActualEisensteinCubic.O → ℂI:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ (primeValueHom w) I = ∏ P ∈ primeSet I, w ↑P calc _ = primeValueHom w (primeProduct (primeSet I)) := congrArg (primeValueHom w) (primeProduct_primeSet I hI).symm _ = _ := w:Ideal ActualEisensteinCubic.O → ℂI:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ (primeValueHom w) (primeProduct (primeSet I)) = ∏ P ∈ primeSet I, w ↑P All goals completed! 🐙lemma outside_primeProduct_iff (S : Finset (Ideal ActualEisensteinCubic.O)) (hS : ∀P∈S,Prime P) (t : Finset PrimeIdeal) : (∀P∈S,¬P∣primeProduct t) ↔ ∀Q∈t,Q.val∉S := S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdeal⊢ (∀ P ∈ S, ¬P ∣ primeProduct t) ↔ ∀ Q ∈ t, ↑Q ∉ S S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdeal⊢ (∀ P ∈ S, ¬P ∣ primeProduct t) → ∀ Q ∈ t, ↑Q ∉ SS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdeal⊢ (∀ Q ∈ t, ↑Q ∉ S) → ∀ P ∈ S, ¬P ∣ primeProduct t S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdeal⊢ (∀ P ∈ S, ¬P ∣ primeProduct t) → ∀ Q ∈ t, ↑Q ∉ S S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealh:∀ P ∈ S, ¬P ∣ primeProduct tQ:PrimeIdealhQ:Q ∈ thQS:↑Q ∈ S⊢ False S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealh:∀ P ∈ S, ¬P ∣ primeProduct tQ:PrimeIdealhQ:Q ∈ thQS:↑Q ∈ S⊢ ↑Q ∣ primeProduct t All goals completed! 🐙 S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdeal⊢ (∀ Q ∈ t, ↑Q ∉ S) → ∀ P ∈ S, ¬P ∣ primeProduct t S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealh:∀ Q ∈ t, ↑Q ∉ SP:Ideal ActualEisensteinCubic.OhP:P ∈ Shd:P ∣ primeProduct t⊢ False S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealh:∀ Q ∈ t, ↑Q ∉ SP:Ideal ActualEisensteinCubic.OhP:P ∈ Shd:P ∣ primeProduct tQ:PrimeIdealhQ:Q ∈ thPQ:P ∣ ↑Q⊢ False S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealh:∀ Q ∈ t, ↑Q ∉ SP:Ideal ActualEisensteinCubic.OhP:P ∈ Shd:P ∣ primeProduct tQ:PrimeIdealhQ:Q ∈ thPQ:P ∣ ↑Qhe:P = ↑Q⊢ False All goals completed! 🐙def outsideMask (S : Finset (Ideal ActualEisensteinCubic.O)) (I : Ideal ActualEisensteinCubic.O) : ℂ := if ∀P∈S,¬P∣I then 1 else 0lemma prod_cut_primes (S : Finset (Ideal ActualEisensteinCubic.O)) (hS : ∀P∈S,Prime P) (t : Finset PrimeIdeal) (f : Ideal ActualEisensteinCubic.O→ℂ) : (∏Q∈t,if Q.val∈S then 0 else f Q.val)=outsideMask S (primeProduct t)*(∏Q∈t,f Q.val) := S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealf:Ideal ActualEisensteinCubic.O → ℂ⊢ (∏ Q ∈ t, if ↑Q ∈ S then 0 else f ↑Q) = outsideMask S (primeProduct t) * ∏ Q ∈ t, f ↑Q S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealf:Ideal ActualEisensteinCubic.O → ℂho:∀ P ∈ S, ¬P ∣ primeProduct t⊢ (∏ Q ∈ t, if ↑Q ∈ S then 0 else f ↑Q) = outsideMask S (primeProduct t) * ∏ Q ∈ t, f ↑QS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealf:Ideal ActualEisensteinCubic.O → ℂho:¬∀ P ∈ S, ¬P ∣ primeProduct t⊢ (∏ Q ∈ t, if ↑Q ∈ S then 0 else f ↑Q) = outsideMask S (primeProduct t) * ∏ Q ∈ t, f ↑Q S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealf:Ideal ActualEisensteinCubic.O → ℂho:∀ P ∈ S, ¬P ∣ primeProduct t⊢ (∏ Q ∈ t, if ↑Q ∈ S then 0 else f ↑Q) = outsideMask S (primeProduct t) * ∏ Q ∈ t, f ↑Q S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealf:Ideal ActualEisensteinCubic.O → ℂho:∀ P ∈ S, ¬P ∣ primeProduct t⊢ (∏ Q ∈ t, if ↑Q ∈ S then 0 else f ↑Q) = ∏ Q ∈ t, f ↑Q S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealf:Ideal ActualEisensteinCubic.O → ℂho:∀ P ∈ S, ¬P ∣ primeProduct t⊢ ∀ x ∈ t, (if ↑x ∈ S then 0 else f ↑x) = f ↑x S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealf:Ideal ActualEisensteinCubic.O → ℂho:∀ P ∈ S, ¬P ∣ primeProduct tQ:PrimeIdealhQ:Q ∈ t⊢ (if ↑Q ∈ S then 0 else f ↑Q) = f ↑Q All goals completed! 🐙 S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealf:Ideal ActualEisensteinCubic.O → ℂho:¬∀ P ∈ S, ¬P ∣ primeProduct t⊢ (∏ Q ∈ t, if ↑Q ∈ S then 0 else f ↑Q) = outsideMask S (primeProduct t) * ∏ Q ∈ t, f ↑Q S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealf:Ideal ActualEisensteinCubic.O → ℂho:¬∀ P ∈ S, ¬P ∣ primeProduct t⊢ (∏ Q ∈ t, if ↑Q ∈ S then 0 else f ↑Q) = 0 S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealf:Ideal ActualEisensteinCubic.O → ℂho:¬∀ P ∈ S, ¬P ∣ primeProduct thh:¬∀ Q ∈ t, ↑Q ∉ S⊢ (∏ Q ∈ t, if ↑Q ∈ S then 0 else f ↑Q) = 0 S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealf:Ideal ActualEisensteinCubic.O → ℂho:¬∀ P ∈ S, ¬P ∣ primeProduct thh:∃ Q ∈ t, ↑Q ∈ S⊢ (∏ Q ∈ t, if ↑Q ∈ S then 0 else f ↑Q) = 0 S:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Pt:Finset PrimeIdealf:Ideal ActualEisensteinCubic.O → ℂho:¬∀ P ∈ S, ¬P ∣ primeProduct tQ:PrimeIdealhQ:Q ∈ thQS:↑Q ∈ S⊢ (∏ Q ∈ t, if ↑Q ∈ S then 0 else f ↑Q) = 0 All goals completed! 🐙lemma nat_cpow_prod {ι : Type*} (t : Finset ι) (N : ι→ℕ) (s : ℂ) : ((∏i∈t,N i : ℕ):ℂ)^s=∏i∈t,(N i:ℂ)^s := ι:Type u_1t:Finset ιN:ι → ℕs:ℂ⊢ ↑(∏ i ∈ t, N i) ^ s = ∏ i ∈ t, ↑(N i) ^ s classical induction t using Finset.induction_on with ι:Type u_1N:ι → ℕs:ℂ⊢ ↑(∏ i ∈ ∅, N i) ^ s = ∏ i ∈ ∅, ↑(N i) ^ s All goals completed! 🐙 ι:Type u_1N:ι → ℕs:ℂi:ιt:Finset ιhi:i ∉ tih:↑(∏ i ∈ t, N i) ^ s = ∏ i ∈ t, ↑(N i) ^ s⊢ ↑(∏ i ∈ insert i t, N i) ^ s = ∏ i ∈ insert i t, ↑(N i) ^ s All goals completed! 🐙lemma primeNormTerm_prod {q : ℕ} (χ : DirichletCharacter ℂ q) (t : Finset PrimeIdeal) (s : ℂ) : (∏P∈t,χ (Ideal.absNorm P.val)*(Ideal.absNorm P.val:ℂ)^(-s))= χ (Ideal.absNorm (primeProduct t))*(Ideal.absNorm (primeProduct t):ℂ)^(-s) := q:ℕχ:DirichletCharacter ℂ qt:Finset PrimeIdeals:ℂ⊢ ∏ P ∈ t, χ ↑(absNorm ↑P) * ↑(absNorm ↑P) ^ (-s) = χ ↑(absNorm (primeProduct t)) * ↑(absNorm (primeProduct t)) ^ (-s) q:ℕχ:DirichletCharacter ℂ qt:Finset PrimeIdeals:ℂ⊢ (∏ x ∈ t, χ ↑(absNorm ↑x)) * ∏ x ∈ t, ↑(absNorm ↑x) ^ (-s) = χ ↑(absNorm (primeProduct t)) * ↑(absNorm (primeProduct t)) ^ (-s) q:ℕχ:DirichletCharacter ℂ qt:Finset PrimeIdeals:ℂ⊢ (∏ x ∈ t, χ ↑(absNorm ↑x)) * ∏ x ∈ t, ↑(absNorm ↑x) ^ (-s) = (∏ x ∈ t, χ ↑(absNorm ↑x)) * (∏ i ∈ t, ↑(absNorm ↑i)) ^ (-s) q:ℕχ:DirichletCharacter ℂ qt:Finset PrimeIdeals:ℂ⊢ ∏ x ∈ t, ↑(absNorm ↑x) ^ (-s) = (∏ i ∈ t, ↑(absNorm ↑i)) ^ (-s) All goals completed! 🐙def ordinaryPrimeValue {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (s : ℂ) (I : Ideal ActualEisensteinCubic.O) : ℂ := if I∈S then 0 else χ (Ideal.absNorm I)*(Ideal.absNorm I:ℂ)^(-s)def dampedPrimeValue {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (s : ℂ) (I : Ideal ActualEisensteinCubic.O) : ℂ := if I∈S then 0 else (1-(1:ℂ)/(Ideal.absNorm I:ℂ))*(χ (Ideal.absNorm I)*(Ideal.absNorm I:ℂ)^(-s))def ordinarySeriesTerm {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (s : ℂ) (I : Ideal ActualEisensteinCubic.O) : ℂ := outsideMask S I * baseChangeWeight χ I * CubicEisenstein.fullIdealWeight s Idef dampedSeriesTerm {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (s : ℂ) (I : Ideal ActualEisensteinCubic.O) : ℂ := ordinarySeriesTerm χ S s I * SixthPowerAverage.totientDensity Ilemma ordinarySeriesTerm_eq {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (hS : ∀P∈S,Prime P) (s : ℂ) (I : Ideal ActualEisensteinCubic.O) : ordinarySeriesTerm χ S s I = mobiusPrimeCoeff (ordinaryPrimeValue χ S s) I := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.O⊢ ordinarySeriesTerm χ S s I = mobiusPrimeCoeff (ordinaryPrimeValue χ S s) I q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ ordinarySeriesTerm χ S s I = mobiusPrimeCoeff (ordinaryPrimeValue χ S s) Iq:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:¬Squarefree I⊢ ordinarySeriesTerm χ S s I = mobiusPrimeCoeff (ordinaryPrimeValue χ S s) I q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ ordinarySeriesTerm χ S s I = mobiusPrimeCoeff (ordinaryPrimeValue χ S s) I q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ ordinarySeriesTerm χ S s I = ↑(moebius I) * ∏ P ∈ primeSet I, ordinaryPrimeValue χ S s ↑P q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ ordinarySeriesTerm χ S s I = ↑(moebius I) * ∏ P ∈ primeSet I, if ↑P ∈ S then 0 else χ ↑(absNorm ↑P) * ↑(absNorm ↑P) ^ (-s) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ ordinarySeriesTerm χ S s I = ↑(moebius I) * (outsideMask S I * (χ ↑(absNorm I) * ↑(absNorm I) ^ (-s))) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ outsideMask S I * (↑(moebius I) * χ ↑(absNorm I)) * ↑(absNorm I) ^ (-s) = ↑(moebius I) * (outsideMask S I * (χ ↑(absNorm I) * ↑(absNorm I) ^ (-s))) All goals completed! 🐙 q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:¬Squarefree I⊢ ordinarySeriesTerm χ S s I = mobiusPrimeCoeff (ordinaryPrimeValue χ S s) I All goals completed! 🐙lemma dampedSeriesTerm_eq {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (hS : ∀P∈S,Prime P) (s : ℂ) (I : Ideal ActualEisensteinCubic.O) : dampedSeriesTerm χ S s I = mobiusPrimeCoeff (dampedPrimeValue χ S s) I := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.O⊢ dampedSeriesTerm χ S s I = mobiusPrimeCoeff (dampedPrimeValue χ S s) I q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ dampedSeriesTerm χ S s I = mobiusPrimeCoeff (dampedPrimeValue χ S s) Iq:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:¬Squarefree I⊢ dampedSeriesTerm χ S s I = mobiusPrimeCoeff (dampedPrimeValue χ S s) I q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ dampedSeriesTerm χ S s I = mobiusPrimeCoeff (dampedPrimeValue χ S s) I q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ dampedSeriesTerm χ S s I = ↑(moebius I) * ∏ P ∈ primeSet I, dampedPrimeValue χ S s ↑P q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ dampedSeriesTerm χ S s I = ↑(moebius I) * ∏ P ∈ primeSet I, if ↑P ∈ S then 0 else (1 - 1 / ↑(absNorm ↑P)) * (χ ↑(absNorm ↑P) * ↑(absNorm ↑P) ^ (-s)) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ dampedSeriesTerm χ S s I = ↑(moebius I) * (outsideMask S I * ((∏ P ∈ primeSupport I, (1 - 1 / ↑(absNorm P))) * (χ ↑(absNorm I) * ↑(absNorm I) ^ (-s)))) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:Squarefree I⊢ outsideMask S I * (↑(moebius I) * χ ↑(absNorm I)) * ↑(absNorm I) ^ (-s) * ∏ P ∈ primeSupport I, (1 - 1 / ↑(absNorm P)) = ↑(moebius I) * (outsideMask S I * ((∏ P ∈ primeSupport I, (1 - 1 / ↑(absNorm P))) * (χ ↑(absNorm I) * ↑(absNorm I) ^ (-s)))) All goals completed! 🐙 q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂI:Ideal ActualEisensteinCubic.OhI:¬Squarefree I⊢ dampedSeriesTerm χ S s I = mobiusPrimeCoeff (dampedPrimeValue χ S s) I All goals completed! 🐙endopen ActualEisensteinCubiclemma ordinaryPrimeValue_norm_le {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (P : PrimeIdeal) (s : ℂ) : ‖ordinaryPrimeValue χ S s P.val‖≤(Ideal.absNorm P.val:ℝ)^(-s.re) := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂ⊢ ‖ordinaryPrimeValue χ S s ↑P‖ ≤ ↑(absNorm ↑P) ^ (-s.re) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhP:↑P ∈ S⊢ ‖ordinaryPrimeValue χ S s ↑P‖ ≤ ↑(absNorm ↑P) ^ (-s.re)q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhP:↑P ∉ S⊢ ‖ordinaryPrimeValue χ S s ↑P‖ ≤ ↑(absNorm ↑P) ^ (-s.re) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhP:↑P ∈ S⊢ ‖ordinaryPrimeValue χ S s ↑P‖ ≤ ↑(absNorm ↑P) ^ (-s.re) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhP:↑P ∈ S⊢ 0 ≤ ↑(absNorm ↑P) ^ (-s.re) All goals completed! 🐙 q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhP:↑P ∉ S⊢ ‖ordinaryPrimeValue χ S s ↑P‖ ≤ ↑(absNorm ↑P) ^ (-s.re) All goals completed! 🐙lemma dampedPrimeValue_norm_le {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (P : PrimeIdeal) (s : ℂ) : ‖dampedPrimeValue χ S s P.val‖≤(Ideal.absNorm P.val:ℝ)^(-s.re) := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂ⊢ ‖dampedPrimeValue χ S s ↑P‖ ≤ ↑(absNorm ↑P) ^ (-s.re) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhP:↑P ∈ S⊢ ‖dampedPrimeValue χ S s ↑P‖ ≤ ↑(absNorm ↑P) ^ (-s.re)q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhP:↑P ∉ S⊢ ‖dampedPrimeValue χ S s ↑P‖ ≤ ↑(absNorm ↑P) ^ (-s.re) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhP:↑P ∈ S⊢ ‖dampedPrimeValue χ S s ↑P‖ ≤ ↑(absNorm ↑P) ^ (-s.re) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhP:↑P ∈ S⊢ 0 ≤ ↑(absNorm ↑P) ^ (-s.re) All goals completed! 🐙 q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhP:↑P ∉ S⊢ ‖dampedPrimeValue χ S s ↑P‖ ≤ ↑(absNorm ↑P) ^ (-s.re) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhP:↑P ∉ S⊢ ‖if ↑P ∈ S then 0 else primeDensity P * primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-s.re) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhP:↑P ∉ S⊢ ‖primeDensity P‖ * ‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-s.re) exact (mul_le_mul_of_nonneg_right (primeDensity_norm_le_one P) (norm_nonneg _)).trans (q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhP:↑P ∉ S⊢ 1 * ‖primeCharacterTerm χ P s‖ ≤ ↑(absNorm ↑P) ^ (-s.re) All goals completed! 🐙)lemma prime_reciprocal_series_summable (s : ℂ) (hs : 1<s.re) : Summable (fun P : PrimeIdeal => (Ideal.absNorm P.val:ℝ)^(-s.re)) := s:ℂhs:1 < s.re⊢ Summable fun P => ↑(absNorm ↑P) ^ (-s.re) s:ℂhs:1 < s.rehh:Summable fun P => ↑(absNorm ↑P) ^ (-(1 + (s.re - 1)))⊢ Summable fun P => ↑(absNorm ↑P) ^ (-s.re) simpa only [show 1+(s.re-1)=s.re s:ℂhs:1 < s.re⊢ Summable fun P => ↑(absNorm ↑P) ^ (-s.re) All goals completed! 🐙] using hhlemma ordinaryPrimeValue_summable {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (s : ℂ) (hs : 1<s.re) : Summable (fun P : PrimeIdeal => ‖ordinaryPrimeValue χ S s P.val‖) := Summable.of_nonneg_of_le (fun _ => norm_nonneg _) (fun P => ordinaryPrimeValue_norm_le χ S P s) (prime_reciprocal_series_summable s hs)lemma dampedPrimeValue_summable {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (s : ℂ) (hs : 1<s.re) : Summable (fun P : PrimeIdeal => ‖dampedPrimeValue χ S s P.val‖) := Summable.of_nonneg_of_le (fun _ => norm_nonneg _) (fun P => dampedPrimeValue_norm_le χ S P s) (prime_reciprocal_series_summable s hs)lemma ordinarySeries_euler {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (hS : ∀P∈S,Prime P) (s : ℂ) (hs : 1<s.re) : (∑'I : Ideal ActualEisensteinCubic.O,ordinarySeriesTerm χ S s I)= ∏'P : PrimeIdeal,(1-ordinaryPrimeValue χ S s P.val) := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), ordinarySeriesTerm χ S s I = ∏' (P : PrimeIdeal), (1 - ordinaryPrimeValue χ S s ↑P) simp_rw q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), ordinarySeriesTerm χ S s I = ∏' (P : PrimeIdeal), (1 - ordinaryPrimeValue χ S s ↑P)q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), mobiusPrimeCoeff (ordinaryPrimeValue χ S s) I = ∏' (P : PrimeIdeal), (1 - ordinaryPrimeValue χ S s ↑P)] All goals completed! 🐙lemma dampedSeries_euler {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (hS : ∀P∈S,Prime P) (s : ℂ) (hs : 1<s.re) : (∑'I : Ideal ActualEisensteinCubic.O,dampedSeriesTerm χ S s I)= ∏'P : PrimeIdeal,(1-dampedPrimeValue χ S s P.val) := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), dampedSeriesTerm χ S s I = ∏' (P : PrimeIdeal), (1 - dampedPrimeValue χ S s ↑P) simp_rw q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), dampedSeriesTerm χ S s I = ∏' (P : PrimeIdeal), (1 - dampedPrimeValue χ S s ↑P)q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), mobiusPrimeCoeff (dampedPrimeValue χ S s) I = ∏' (P : PrimeIdeal), (1 - dampedPrimeValue χ S s ↑P)] All goals completed! 🐙lemma local_correction_identity {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (P : PrimeIdeal) (s : ℂ) (hs : 0<s.re) : (1-dampedPrimeValue χ S s P.val)*(1+correctionTerm χ S P s)= 1-ordinaryPrimeValue χ S s P.val := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.re⊢ (1 - dampedPrimeValue χ S s ↑P) * (1 + correctionTerm χ S P s) = 1 - ordinaryPrimeValue χ S s ↑P q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.re⊢ ((1 - dampedPrimeValue χ S s ↑P) * if ↑P ∈ S then 1 else (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s)) = 1 - ordinaryPrimeValue χ S s ↑P q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∈ S⊢ ((1 - dampedPrimeValue χ S s ↑P) * if ↑P ∈ S then 1 else (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s)) = 1 - ordinaryPrimeValue χ S s ↑Pq:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∉ S⊢ ((1 - dampedPrimeValue χ S s ↑P) * if ↑P ∈ S then 1 else (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s)) = 1 - ordinaryPrimeValue χ S s ↑P q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∈ S⊢ ((1 - dampedPrimeValue χ S s ↑P) * if ↑P ∈ S then 1 else (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s)) = 1 - ordinaryPrimeValue χ S s ↑P All goals completed! 🐙 q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∉ S⊢ ((1 - dampedPrimeValue χ S s ↑P) * if ↑P ∈ S then 1 else (1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s)) = 1 - ordinaryPrimeValue χ S s ↑P q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∉ S⊢ (1 - (1 - 1 / ↑(absNorm ↑P)) * (χ ↑(absNorm ↑P) * ↑(absNorm ↑P) ^ (-s))) * ((1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s)) = 1 - χ ↑(absNorm ↑P) * ↑(absNorm ↑P) ^ (-s) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)P:PrimeIdeals:ℂhs:0 < s.rehP:↑P ∉ S⊢ (1 - primeDensity P * primeCharacterTerm χ P s) * ((1 - primeCharacterTerm χ P s) / (1 - primeDensity P * primeCharacterTerm χ P s)) = 1 - primeCharacterTerm χ P s All goals completed! 🐙theorem actual_dirichlet_correction {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (hS : ∀P∈S,Prime P) (s : ℂ) (hs : 1<s.re) : (∑'I : Ideal ActualEisensteinCubic.O,ordinarySeriesTerm χ S s I)= eulerCorrection χ S s*(∑'I : Ideal ActualEisensteinCubic.O,dampedSeriesTerm χ S s I) := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), ordinarySeriesTerm χ S s I = eulerCorrection χ S s * ∑' (I : Ideal ActualEisensteinCubic.O), dampedSeriesTerm χ S s I q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.re⊢ ∏' (P : PrimeIdeal), (1 - ordinaryPrimeValue χ S s ↑P) = (∏' (P : PrimeIdeal), (1 - dampedPrimeValue χ S s ↑P)) * eulerCorrection χ S s q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.rehd:Multipliable fun P => 1 - dampedPrimeValue χ S s ↑P⊢ ∏' (P : PrimeIdeal), (1 - ordinaryPrimeValue χ S s ↑P) = (∏' (P : PrimeIdeal), (1 - dampedPrimeValue χ S s ↑P)) * eulerCorrection χ S s q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.rehd:Multipliable fun P => 1 - dampedPrimeValue χ S s ↑Phc:Multipliable fun i => 1 + correctionTerm χ S i s⊢ ∏' (P : PrimeIdeal), (1 - ordinaryPrimeValue χ S s ↑P) = (∏' (P : PrimeIdeal), (1 - dampedPrimeValue χ S s ↑P)) * eulerCorrection χ S s q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.rehd:Multipliable fun P => 1 - dampedPrimeValue χ S s ↑Phc:Multipliable fun i => 1 + correctionTerm χ S i s⊢ ∏' (P : PrimeIdeal), (1 - ordinaryPrimeValue χ S s ↑P) = (∏' (P : PrimeIdeal), (1 - dampedPrimeValue χ S s ↑P)) * ∏' (P : PrimeIdeal), (1 + correctionTerm χ S P s) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.rehd:Multipliable fun P => 1 - dampedPrimeValue χ S s ↑Phc:Multipliable fun i => 1 + correctionTerm χ S i s⊢ ∏' (P : PrimeIdeal), (1 - ordinaryPrimeValue χ S s ↑P) = ∏' (b : PrimeIdeal), (1 - dampedPrimeValue χ S s ↑b) * (1 + correctionTerm χ S b s) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.rehd:Multipliable fun P => 1 - dampedPrimeValue χ S s ↑Phc:Multipliable fun i => 1 + correctionTerm χ S i s⊢ ∀ (b : PrimeIdeal), 1 - ordinaryPrimeValue χ S s ↑b = (1 - dampedPrimeValue χ S s ↑b) * (1 + correctionTerm χ S b s) q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.rehd:Multipliable fun P => 1 - dampedPrimeValue χ S s ↑Phc:Multipliable fun i => 1 + correctionTerm χ S i sP:PrimeIdeal⊢ 1 - ordinaryPrimeValue χ S s ↑P = (1 - dampedPrimeValue χ S s ↑P) * (1 + correctionTerm χ S P s) exact (local_correction_identity χ S P s (q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.rehd:Multipliable fun P => 1 - dampedPrimeValue χ S s ↑Phc:Multipliable fun i => 1 + correctionTerm χ S i sP:PrimeIdeal⊢ 0 < s.re All goals completed! 🐙)).symmopen scoped BigOperators Classicalopen ActualEisensteinCubicopen ShortDraftHeckeBridge hiding Olemma normFiber_tsum (a : Ideal ActualEisensteinCubic.O→ℂ) (n : ℕ) : (∑'I : {I : Ideal ActualEisensteinCubic.O // Ideal.absNorm I=n},a I.val)=normFiberCoeff a n := a:Ideal ActualEisensteinCubic.O → ℂn:ℕ⊢ ∑' (I : { I // absNorm I = n }), a ↑I = normFiberCoeff a n a:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintype⊢ ∑' (I : { I // absNorm I = n }), a ↑I = normFiberCoeff a n a:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintype⊢ ∑ b, a ↑b = normFiberCoeff a n a:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintype⊢ normFiberCoeff a n = ∑ b, a ↑b a:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintype⊢ ∑ I ∈ FiniteSFactor.fiber n, a I = ∑ b, a ↑b a:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintype⊢ ∀ (a : Ideal ActualEisensteinCubic.O) (ha : a ∈ FiniteSFactor.fiber n), ⟨a, ⋯⟩ ∈ Finset.univa:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintype⊢ ∀ (a₁ : Ideal ActualEisensteinCubic.O) (ha₁ : a₁ ∈ FiniteSFactor.fiber n) (a₂ : Ideal ActualEisensteinCubic.O) (ha₂ : a₂ ∈ FiniteSFactor.fiber n), ⟨a₁, ⋯⟩ = ⟨a₂, ⋯⟩ → a₁ = a₂a:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintype⊢ ∀ b ∈ Finset.univ, ∃ a, ∃ (ha : a ∈ FiniteSFactor.fiber n), ⟨a, ⋯⟩ = ba:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintype⊢ ∀ (a_1 : Ideal ActualEisensteinCubic.O) (ha : a_1 ∈ FiniteSFactor.fiber n), a a_1 = a ↑⟨a_1, ⋯⟩ a:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintype⊢ ∀ (a : Ideal ActualEisensteinCubic.O) (ha : a ∈ FiniteSFactor.fiber n), ⟨a, ⋯⟩ ∈ Finset.univ a:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintypeI:Ideal ActualEisensteinCubic.OhI:I ∈ FiniteSFactor.fiber n⊢ ⟨I, ⋯⟩ ∈ Finset.univ All goals completed! 🐙 a:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintype⊢ ∀ (a₁ : Ideal ActualEisensteinCubic.O) (ha₁ : a₁ ∈ FiniteSFactor.fiber n) (a₂ : Ideal ActualEisensteinCubic.O) (ha₂ : a₂ ∈ FiniteSFactor.fiber n), ⟨a₁, ⋯⟩ = ⟨a₂, ⋯⟩ → a₁ = a₂ a:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintypeI:Ideal ActualEisensteinCubic.OhI:I ∈ FiniteSFactor.fiber nJ:Ideal ActualEisensteinCubic.OhJ:J ∈ FiniteSFactor.fiber nhe:⟨I, ⋯⟩ = ⟨J, ⋯⟩⊢ I = J All goals completed! 🐙 a:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintype⊢ ∀ b ∈ Finset.univ, ∃ a, ∃ (ha : a ∈ FiniteSFactor.fiber n), ⟨a, ⋯⟩ = b a:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintypeI:{ I // absNorm I = n }hI:I ∈ Finset.univ⊢ ∃ a, ∃ (ha : a ∈ FiniteSFactor.fiber n), ⟨a, ⋯⟩ = I All goals completed! 🐙 a:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintype⊢ ∀ (a_1 : Ideal ActualEisensteinCubic.O) (ha : a_1 ∈ FiniteSFactor.fiber n), a a_1 = a ↑⟨a_1, ⋯⟩ a:Ideal ActualEisensteinCubic.O → ℂn:ℕthis:Fintype { I // absNorm I = n } := ⋯.fintypeI:Ideal ActualEisensteinCubic.OhI:I ∈ FiniteSFactor.fiber n⊢ a I = a ↑⟨I, ⋯⟩ All goals completed! 🐙lemma idealDirichlet_fiber (a : Ideal ActualEisensteinCubic.O→ℂ) (s : ℂ) (n : ℕ) : (∑'I : {I : Ideal ActualEisensteinCubic.O // Ideal.absNorm I=n},a I.val*CubicEisenstein.fullIdealWeight s I.val)= LSeries.term (normFiberCoeff a) s n := a:Ideal ActualEisensteinCubic.O → ℂs:ℂn:ℕ⊢ ∑' (I : { I // absNorm I = n }), a ↑I * CubicEisenstein.fullIdealWeight s ↑I = LSeries.term (normFiberCoeff a) s n a:Ideal ActualEisensteinCubic.O → ℂs:ℂn:ℕhn:n = 0⊢ ∑' (I : { I // absNorm I = n }), a ↑I * CubicEisenstein.fullIdealWeight s ↑I = LSeries.term (normFiberCoeff a) s na:Ideal ActualEisensteinCubic.O → ℂs:ℂn:ℕhn:¬n = 0⊢ ∑' (I : { I // absNorm I = n }), a ↑I * CubicEisenstein.fullIdealWeight s ↑I = LSeries.term (normFiberCoeff a) s n a:Ideal ActualEisensteinCubic.O → ℂs:ℂn:ℕhn:n = 0⊢ ∑' (I : { I // absNorm I = n }), a ↑I * CubicEisenstein.fullIdealWeight s ↑I = LSeries.term (normFiberCoeff a) s n a:Ideal ActualEisensteinCubic.O → ℂs:ℂ⊢ ∑' (I : { I // absNorm I = 0 }), a ↑I * CubicEisenstein.fullIdealWeight s ↑I = LSeries.term (normFiberCoeff a) s 0 a:Ideal ActualEisensteinCubic.O → ℂs:ℂhz:∀ (I : { I // absNorm I = 0 }), CubicEisenstein.fullIdealWeight s ↑I = 0⊢ ∑' (I : { I // absNorm I = 0 }), a ↑I * CubicEisenstein.fullIdealWeight s ↑I = LSeries.term (normFiberCoeff a) s 0 All goals completed! 🐙 a:Ideal ActualEisensteinCubic.O → ℂs:ℂn:ℕhn:¬n = 0⊢ ∑' (I : { I // absNorm I = n }), a ↑I * CubicEisenstein.fullIdealWeight s ↑I = LSeries.term (normFiberCoeff a) s n a:Ideal ActualEisensteinCubic.O → ℂs:ℂn:ℕhn:¬n = 0ht:∀ (I : { I // absNorm I = n }), CubicEisenstein.fullIdealWeight s ↑I = ↑n ^ (-s)⊢ ∑' (I : { I // absNorm I = n }), a ↑I * CubicEisenstein.fullIdealWeight s ↑I = LSeries.term (normFiberCoeff a) s n simp_rw a:Ideal ActualEisensteinCubic.O → ℂs:ℂn:ℕhn:¬n = 0ht:∀ (I : { I // absNorm I = n }), CubicEisenstein.fullIdealWeight s ↑I = ↑n ^ (-s)⊢ ∑' (I : { I // absNorm I = n }), a ↑I * CubicEisenstein.fullIdealWeight s ↑I = LSeries.term (normFiberCoeff a) s na:Ideal ActualEisensteinCubic.O → ℂs:ℂn:ℕhn:¬n = 0ht:∀ (I : { I // absNorm I = n }), CubicEisenstein.fullIdealWeight s ↑I = ↑n ^ (-s)⊢ ∑' (I : { I // absNorm I = n }), a ↑I * ↑n ^ (-s) = LSeries.term (normFiberCoeff a) s n] All goals completed! 🐙lemma idealDirichlet_summable (a : Ideal ActualEisensteinCubic.O→ℂ) (ha : ∀I,‖a I‖≤1) (s : ℂ) (hs : 1<s.re) : Summable (fun I : Ideal ActualEisensteinCubic.O => a I*CubicEisenstein.fullIdealWeight s I) := a:Ideal ActualEisensteinCubic.O → ℂha:∀ (I : Ideal ActualEisensteinCubic.O), ‖a I‖ ≤ 1s:ℂhs:1 < s.re⊢ Summable fun I => a I * CubicEisenstein.fullIdealWeight s I a:Ideal ActualEisensteinCubic.O → ℂha:∀ (I : Ideal ActualEisensteinCubic.O), ‖a I‖ ≤ 1s:ℂhs:1 < s.re⊢ Summable fun a_1 => ‖a a_1 * CubicEisenstein.fullIdealWeight s a_1‖ a:Ideal ActualEisensteinCubic.O → ℂha:∀ (I : Ideal ActualEisensteinCubic.O), ‖a I‖ ≤ 1s:ℂhs:1 < s.reI:Ideal CubicEisenstein.O⊢ ‖a I * CubicEisenstein.fullIdealWeight s I‖ ≤ ‖CubicEisenstein.fullIdealWeight s I‖ a:Ideal ActualEisensteinCubic.O → ℂha:∀ (I : Ideal ActualEisensteinCubic.O), ‖a I‖ ≤ 1s:ℂhs:1 < s.reI:Ideal CubicEisenstein.O⊢ ‖a I‖ * ‖CubicEisenstein.fullIdealWeight s I‖ ≤ ‖CubicEisenstein.fullIdealWeight s I‖ All goals completed! 🐙theorem idealDirichlet_eq_LSeries (a : Ideal ActualEisensteinCubic.O→ℂ) (ha : ∀I,‖a I‖≤1) (s : ℂ) (hs : 1<s.re) : (∑'I : Ideal ActualEisensteinCubic.O,a I*CubicEisenstein.fullIdealWeight s I)=LSeries (normFiberCoeff a) s := a:Ideal ActualEisensteinCubic.O → ℂha:∀ (I : Ideal ActualEisensteinCubic.O), ‖a I‖ ≤ 1s:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), a I * CubicEisenstein.fullIdealWeight s I = L (normFiberCoeff a) s a:Ideal ActualEisensteinCubic.O → ℂha:∀ (I : Ideal ActualEisensteinCubic.O), ‖a I‖ ≤ 1s:ℂhs:1 < s.rehh:HasSum (fun c => ∑' (b : ↑(⇑absNorm ⁻¹' {c})), a ↑b * CubicEisenstein.fullIdealWeight s ↑b) (∑' (b : Ideal ActualEisensteinCubic.O), a b * CubicEisenstein.fullIdealWeight s b)⊢ ∑' (I : Ideal ActualEisensteinCubic.O), a I * CubicEisenstein.fullIdealWeight s I = L (normFiberCoeff a) s a:Ideal ActualEisensteinCubic.O → ℂha:∀ (I : Ideal ActualEisensteinCubic.O), ‖a I‖ ≤ 1s:ℂhs:1 < s.rehh:HasSum (fun n => ∑' (I : { I // absNorm I = n }), a ↑I * CubicEisenstein.fullIdealWeight s ↑I) (∑' (b : Ideal ActualEisensteinCubic.O), a b * CubicEisenstein.fullIdealWeight s b)⊢ ∑' (I : Ideal ActualEisensteinCubic.O), a I * CubicEisenstein.fullIdealWeight s I = L (normFiberCoeff a) s simp_rw a:Ideal ActualEisensteinCubic.O → ℂha:∀ (I : Ideal ActualEisensteinCubic.O), ‖a I‖ ≤ 1s:ℂhs:1 < s.rehh:HasSum (fun n => ∑' (I : { I // absNorm I = n }), a ↑I * CubicEisenstein.fullIdealWeight s ↑I) (∑' (b : Ideal ActualEisensteinCubic.O), a b * CubicEisenstein.fullIdealWeight s b)⊢ ∑' (I : Ideal ActualEisensteinCubic.O), a I * CubicEisenstein.fullIdealWeight s I = L (normFiberCoeff a) sa:Ideal ActualEisensteinCubic.O → ℂha:∀ (I : Ideal ActualEisensteinCubic.O), ‖a I‖ ≤ 1s:ℂhs:1 < s.rehh:HasSum (fun n => LSeries.term (normFiberCoeff a) s n) (∑' (b : Ideal ActualEisensteinCubic.O), a b * CubicEisenstein.fullIdealWeight s b)⊢ ∑' (I : Ideal ActualEisensteinCubic.O), a I * CubicEisenstein.fullIdealWeight s I = L (normFiberCoeff a) s] at hh All goals completed! 🐙lemma ordinarySeriesTerm_outside {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (s : ℂ) (I : Ideal ActualEisensteinCubic.O) : ordinarySeriesTerm χ S s I= FiniteSFactor.outsideWeight S (baseChangeWeight χ) I*CubicEisenstein.fullIdealWeight s I := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂI:Ideal ActualEisensteinCubic.O⊢ ordinarySeriesTerm χ S s I = FiniteSFactor.outsideWeight S (baseChangeWeight χ) I * CubicEisenstein.fullIdealWeight s I q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂI:Ideal ActualEisensteinCubic.O⊢ (if ∀ P ∈ S, ¬P ∣ I then 1 else 0) * baseChangeWeight χ I * CubicEisenstein.fullIdealWeight s I = (if ∀ P ∈ S, ¬P ∣ I then baseChangeWeight χ I else 0) * CubicEisenstein.fullIdealWeight s I q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂI:Ideal ActualEisensteinCubic.Oh✝:∀ P ∈ S, ¬P ∣ I⊢ 1 * baseChangeWeight χ I * CubicEisenstein.fullIdealWeight s I = baseChangeWeight χ I * CubicEisenstein.fullIdealWeight s Iq:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂI:Ideal ActualEisensteinCubic.Oh✝:¬∀ P ∈ S, ¬P ∣ I⊢ 0 * baseChangeWeight χ I * CubicEisenstein.fullIdealWeight s I = 0 * CubicEisenstein.fullIdealWeight s I q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂI:Ideal ActualEisensteinCubic.Oh✝:∀ P ∈ S, ¬P ∣ I⊢ 1 * baseChangeWeight χ I * CubicEisenstein.fullIdealWeight s I = baseChangeWeight χ I * CubicEisenstein.fullIdealWeight s Iq:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂI:Ideal ActualEisensteinCubic.Oh✝:¬∀ P ∈ S, ¬P ∣ I⊢ 0 * baseChangeWeight χ I * CubicEisenstein.fullIdealWeight s I = 0 * CubicEisenstein.fullIdealWeight s I All goals completed! 🐙lemma dampedSeriesTerm_outside {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (s : ℂ) (I : Ideal ActualEisensteinCubic.O) : dampedSeriesTerm χ S s I= SixthPowerAverage.outsideWeight χ S I*CubicEisenstein.fullIdealWeight s I := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂI:Ideal ActualEisensteinCubic.O⊢ dampedSeriesTerm χ S s I = SixthPowerAverage.outsideWeight χ S I * CubicEisenstein.fullIdealWeight s I q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂI:Ideal ActualEisensteinCubic.O⊢ (if ∀ P ∈ S, ¬P ∣ I then 1 else 0) * baseChangeWeight χ I * CubicEisenstein.fullIdealWeight s I * SixthPowerAverage.totientDensity I = (if ∀ P ∈ S, ¬P ∣ I then baseChangeWeight χ I * SixthPowerAverage.totientDensity I else 0) * CubicEisenstein.fullIdealWeight s I q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂI:Ideal ActualEisensteinCubic.Oh✝:∀ P ∈ S, ¬P ∣ I⊢ 1 * baseChangeWeight χ I * CubicEisenstein.fullIdealWeight s I * SixthPowerAverage.totientDensity I = baseChangeWeight χ I * SixthPowerAverage.totientDensity I * CubicEisenstein.fullIdealWeight s Iq:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂI:Ideal ActualEisensteinCubic.Oh✝:¬∀ P ∈ S, ¬P ∣ I⊢ 0 * baseChangeWeight χ I * CubicEisenstein.fullIdealWeight s I * SixthPowerAverage.totientDensity I = 0 * CubicEisenstein.fullIdealWeight s I q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂI:Ideal ActualEisensteinCubic.Oh✝:∀ P ∈ S, ¬P ∣ I⊢ 1 * baseChangeWeight χ I * CubicEisenstein.fullIdealWeight s I * SixthPowerAverage.totientDensity I = baseChangeWeight χ I * SixthPowerAverage.totientDensity I * CubicEisenstein.fullIdealWeight s Iq:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂI:Ideal ActualEisensteinCubic.Oh✝:¬∀ P ∈ S, ¬P ∣ I⊢ 0 * baseChangeWeight χ I * CubicEisenstein.fullIdealWeight s I * SixthPowerAverage.totientDensity I = 0 * CubicEisenstein.fullIdealWeight s I All goals completed! 🐙lemma ordinarySeries_eq_LSeries {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (s : ℂ) (hs : 1<s.re) : (∑'I : Ideal ActualEisensteinCubic.O,ordinarySeriesTerm χ S s I)= LSeries (FiniteSFactor.outsideCoeff S (baseChangeWeight χ)) s := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), ordinarySeriesTerm χ S s I = L (FiniteSFactor.outsideCoeff S (baseChangeWeight χ)) s simp_rw q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), ordinarySeriesTerm χ S s I = L (FiniteSFactor.outsideCoeff S (baseChangeWeight χ)) sq:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), FiniteSFactor.outsideWeight S (baseChangeWeight χ) I * CubicEisenstein.fullIdealWeight s I = L (FiniteSFactor.outsideCoeff S (baseChangeWeight χ)) s] q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.re⊢ ∀ (I : Ideal ActualEisensteinCubic.O), ‖FiniteSFactor.outsideWeight S (baseChangeWeight χ) I‖ ≤ 1q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.re⊢ 1 < s.re q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.reI:Ideal ActualEisensteinCubic.O⊢ ‖FiniteSFactor.outsideWeight S (baseChangeWeight χ) I‖ ≤ 1q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.re⊢ 1 < s.re q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.reI:Ideal ActualEisensteinCubic.O⊢ ‖if ∀ P ∈ S, ¬P ∣ I then baseChangeWeight χ I else 0‖ ≤ 1q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.re⊢ 1 < s.re q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.reI:Ideal ActualEisensteinCubic.Oh✝:∀ P ∈ S, ¬P ∣ I⊢ ‖baseChangeWeight χ I‖ ≤ 1q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.reI:Ideal ActualEisensteinCubic.Oh✝:¬∀ P ∈ S, ¬P ∣ I⊢ ‖0‖ ≤ 1q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.re⊢ 1 < s.re q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.reI:Ideal ActualEisensteinCubic.Oh✝:∀ P ∈ S, ¬P ∣ I⊢ ‖baseChangeWeight χ I‖ ≤ 1 All goals completed! 🐙 q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.reI:Ideal ActualEisensteinCubic.Oh✝:¬∀ P ∈ S, ¬P ∣ I⊢ ‖0‖ ≤ 1 All goals completed! 🐙 All goals completed! 🐙lemma dampedSeries_eq_LSeries {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (s : ℂ) (hs : 1<s.re) : (∑'I : Ideal ActualEisensteinCubic.O,dampedSeriesTerm χ S s I)= LSeries (SixthPowerAverage.weightedCoeff χ S) s := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), dampedSeriesTerm χ S s I = L (SixthPowerAverage.weightedCoeff χ S) s simp_rw q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), dampedSeriesTerm χ S s I = L (SixthPowerAverage.weightedCoeff χ S) sq:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)s:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), SixthPowerAverage.outsideWeight χ S I * CubicEisenstein.fullIdealWeight s I = L (SixthPowerAverage.weightedCoeff χ S) s] All goals completed! 🐙theorem actual_LSeries_correction {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (hS : ∀P∈S,Prime P) (s : ℂ) (hs : 1<s.re) : LSeries (FiniteSFactor.outsideCoeff S (baseChangeWeight χ)) s= eulerCorrection χ S s*LSeries (SixthPowerAverage.weightedCoeff χ S) s := q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.re⊢ L (FiniteSFactor.outsideCoeff S (baseChangeWeight χ)) s = eulerCorrection χ S s * L (SixthPowerAverage.weightedCoeff χ S) s q:ℕχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:1 < s.re⊢ ∑' (I : Ideal ActualEisensteinCubic.O), ordinarySeriesTerm χ S s I = eulerCorrection χ S s * ∑' (I : Ideal ActualEisensteinCubic.O), dampedSeriesTerm χ S s I All goals completed! 🐙theorem full_LSeries_correction {q : ℕ} [NeZero q] (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) (hS : ∀P∈S,Prime P) (s : ℂ) (hs : 2<s.re) : LSeries (normFiberCoeff (baseChangeWeight χ)) s= (CompactMellinBridge.finiteEulerFactor χ S s*eulerCorrection χ S s)* LSeries (SixthPowerAverage.weightedCoeff χ S) s := q:ℕinst✝:NeZero qχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:2 < s.re⊢ L (normFiberCoeff (baseChangeWeight χ)) s = CompactMellinBridge.finiteEulerFactor χ S s * eulerCorrection χ S s * L (SixthPowerAverage.weightedCoeff χ S) s q:ℕinst✝:NeZero qχ:DirichletCharacter ℂ qS:Finset (Ideal ActualEisensteinCubic.O)hS:∀ P ∈ S, Prime Ps:ℂhs:2 < s.re⊢ (∏ P ∈ S, (1 - χ ↑(absNorm P) * ↑(absNorm P) ^ (-s))) * (eulerCorrection χ S s * L (SixthPowerAverage.weightedCoeff χ S) s) = CompactMellinBridge.finiteEulerFactor χ S s * eulerCorrection χ S s * L (SixthPowerAverage.weightedCoeff χ S) s All goals completed! 🐙theorem eulerCorrection_analytic {q : ℕ} (χ : DirichletCharacter ℂ q) (S : Finset (Ideal ActualEisensteinCubic.O)) : AnalyticOnNhd ℂ (eulerCorrection χ S) {s : ℂ | 0<s.re} := (Complex.analyticOnNhd_iff_differentiableOn (Complex.isOpen_re_gt 0)).mpr (eulerCorrection_differentiableOn χ S)end SmoothMobiusCorrectionendend OAI