Skip to content
import OAI.NumberTheory.DirichletL.GaussSum.ActiveConductor
import OAI.NumberTheory.DirichletL.GaussSum.CubicTracenamespace OAInoncomputable sectionopen 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 Classicalnamespace MixedGaussConversionabbrev O := ActualEisensteinCubic.Oopen ActualEisensteinCubic ConcreteTraceCRT FiniteGaussPhasedef localGauss (p : O) (hp : p ≠ 0) [ (Ideal.span {p}).IsMaximal]
(hg : lambda ∉ Ideal.span {p}) (j : ℕ) : ℂ :=
ConcreteBreveE.normalizedTraceGauss p hp (canonicalSextic (Ideal.span {p}) hg ^ j)def localCoefficient (p : O) (hp : p ≠ 0) [ (Ideal.span {p}).IsMaximal]
(hg : lambda ∉ Ideal.span {p}) : ℂ :=
star (angularFactor p) * localGauss p hp hg 2def localG (p : O) (hp : p ≠ 0) [ (Ideal.span {p}).IsMaximal]
(hg : lambda ∉ Ideal.span {p}) : ℂ :=
breveLocalG (Ideal.span {p}) hg p rfl hptheorem norm_localGauss (p : O) (hp : p ≠ 0) [ (Ideal.span {p}).IsMaximal]
(hg : lambda ∉ Ideal.span {p}) (hchar : ringChar (O ⧸ Ideal.span {p}) ≠ 2)
(j : ℕ) (hj0 : j ≠ 0) (hj6 : j < 6) : ‖localGauss p hp hg j‖ = 1 := p:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2j:ℕhj0:j ≠ 0hj6:j < 6⊢ ‖localGauss p hp hg j‖ = 1
p:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2j:ℕhj0:j ≠ 0hj6:j < 6q:Unit → O := fun x => p⊢ ‖localGauss p hp hg j‖ = 1
p:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2j:ℕhj0:j ≠ 0hj6:j < 6q:Unit → O := fun x => phcop:Pairwise (Function.onFun IsCoprime fun i => span {q i})⊢ ‖localGauss p hp hg j‖ = 1
have h := norm_canonicalProductGauss q (fun _ => hp) hcop (fun _ => hg)
(fun _ => hchar) (fun _ => j) (fun _ => hj0) (fun _ => hj6)p:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2j:ℕhj0:j ≠ 0hj6:j < 6q:Unit → O := fun x => phcop:Pairwise (Function.onFun IsCoprime fun i => span {q i})h:‖canonicalProductGauss q ⋯ hcop ⋯ fun x => j‖ = 1⊢ ‖localGauss p hp hg j‖ = 1
rw [canonicalProductGauss_constant_power q (fun _ => hp) hcop (fun _ => hg) j hj0p:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2j:ℕhj0:j ≠ 0hj6:j < 6q:Unit → O := fun x => phcop:Pairwise (Function.onFun IsCoprime fun i => span {q i})h:‖(∏ i, ∏ k ∈ univ.erase i, (canonicalSextic (span {q i}) hg) ((Ideal.Quotient.mk (span {q i})) (q k))) ^ j *
∏ i, ConcreteBreveE.normalizedTraceGauss (q i) hp (canonicalSextic (span {q i}) hg ^ j)‖ =
1⊢ ‖localGauss p hp hg j‖ = 1] at hp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2j:ℕhj0:j ≠ 0hj6:j < 6q:Unit → O := fun x => phcop:Pairwise (Function.onFun IsCoprime fun i => span {q i})h:‖(∏ i, ∏ k ∈ univ.erase i, (canonicalSextic (span {q i}) hg) ((Ideal.Quotient.mk (span {q i})) (q k))) ^ j *
∏ i, ConcreteBreveE.normalizedTraceGauss (q i) hp (canonicalSextic (span {q i}) hg ^ j)‖ =
1⊢ ‖localGauss p hp hg j‖ = 1
simpa only [q, Fintype.prod_unique, Finset.univ_unique, Finset.erase_singleton,
Finset.prod_empty, Finset.prod_singleton, one_pow, one_mul, localGauss] using hAll goals completed! 🐙theorem canonicalSextic_fifth_eq_inverse (p : O) [(Ideal.span {p}).IsMaximal]
(hg : lambda ∉ Ideal.span {p}) :
canonicalSextic (Ideal.span {p}) hg ^ 5 = (canonicalSextic (Ideal.span {p}) hg)⁻¹ := byp:Oinst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}⊢ canonicalSextic (span {p}) hg ^ 5 = (canonicalSextic (span {p}) hg)⁻¹
apply DFunLike.extp:Oinst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}⊢ ∀ (x : ActualEisensteinCubic.O ⧸ span {p}), (canonicalSextic (span {p}) hg ^ 5) x = (canonicalSextic (span {p}) hg)⁻¹ x
intro xp:Oinst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}x:ActualEisensteinCubic.O ⧸ span {p}⊢ (canonicalSextic (span {p}) hg ^ 5) x = (canonicalSextic (span {p}) hg)⁻¹ x
obtain ⟨a, rfl⟩ := Ideal.Quotient.mk_surjective xp:Oinst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}a:ActualEisensteinCubic.O⊢ (canonicalSextic (span {p}) hg ^ 5) ((Ideal.Quotient.mk (span {p})) a) =
(canonicalSextic (span {p}) hg)⁻¹ ((Ideal.Quotient.mk (span {p})) a)
rw [MulChar.pow_apply' _ (byp:Oinst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}a:ActualEisensteinCubic.O⊢ 5 ≠ 0 decideAll goals completed! 🐙 : (5 : ℕ) ≠ 0), ← MulChar.star_apply',p:Oinst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}a:ActualEisensteinCubic.O⊢ (canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) a) ^ 5 =
star ((canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) a))
canonicalSextic_conj_as_row_labelp:Oinst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}a:ActualEisensteinCubic.O⊢ (canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) a) ^ 5 =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) a) *
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) a) ^ 4]p:Oinst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}a:ActualEisensteinCubic.O⊢ (canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) a) ^ 5 =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) a) *
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) a) ^ 4
ringAll goals completed! 🐙theorem localGauss_five_eq (p : O) (hp : p ≠ 0) [(Ideal.span {p}).IsMaximal]
(hg : lambda ∉ Ideal.span {p}) :
localGauss p hp hg 5 = breveGammaMinus1 (Ideal.span {p}) hg p rfl hp := byp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}⊢ localGauss p hp hg 5 = breveGammaMinus1 (span {p}) hg p ⋯ hp
rw [localGauss,p:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}⊢ ConcreteBreveE.normalizedTraceGauss p hp (canonicalSextic (span {p}) hg ^ 5) = breveGammaMinus1 (span {p}) hg p ⋯ hp canonicalSextic_fifth_eq_inversep:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}⊢ ConcreteBreveE.normalizedTraceGauss p hp (canonicalSextic (span {p}) hg)⁻¹ = breveGammaMinus1 (span {p}) hg p ⋯ hp]p:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}⊢ ConcreteBreveE.normalizedTraceGauss p hp (canonicalSextic (span {p}) hg)⁻¹ = breveGammaMinus1 (span {p}) hg p ⋯ hp
rflAll goals completed! 🐙theorem local_sign_conversion (p : O) (hp : p ≠ 0) [(Ideal.span {p}).IsMaximal]
(hg : lambda ∉ Ideal.span {p}) (hchar : ringChar (O ⧸ Ideal.span {p}) ≠ 2)
(hprimary : lambda ^ 2 ∣ p - 1) :
(-localGauss p hp hg 1) * star (localG p hp hg) = star (localCoefficient p hp hg) ∧
(-localGauss p hp hg 5) * localG p hp hg =
canonicalSextic (Ideal.span {p}) hg (Ideal.Quotient.mk (Ideal.span {p}) (-1 : O)) *
localCoefficient p hp hg := byp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1⊢ -localGauss p hp hg 1 * star (localG p hp hg) = star (localCoefficient p hp hg) ∧
-localGauss p hp hg 5 * localG p hp hg =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) * localCoefficient p hp hg
have h := first_poisson_prime_sign_pairing (Ideal.span {p}) hg hchar p rfl hp hprimary 1p:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:have alpha := eisEmbedding p / ↑‖eisEmbedding p‖;
have g1 := breveGamma1 (span {p}) hg p ⋯ hp;
have g2 := breveGamma2 (span {p}) hg p ⋯ hp;
have gm := breveGammaMinus1 (span {p}) hg p ⋯ hp;
have G := breveLocalG (span {p}) hg p ⋯ hp;
have t := (canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) 1);
have eps := (canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1));
-star g1 * G * t = star alpha * g2 * t ∧
-gm * G * t = eps * (star alpha * g2) * t ∧
-g1 * star G * t⁻¹ = alpha * star g2 * t⁻¹ ∧ -star gm * star G * t⁻¹ = star eps * (alpha * star g2) * t⁻¹⊢ -localGauss p hp hg 1 * star (localG p hp hg) = star (localCoefficient p hp hg) ∧
-localGauss p hp hg 5 * localG p hp hg =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) * localCoefficient p hp hg
dsimp only at hp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:-star (breveGamma1 (span {p}) hg p ⋯ hp) * breveLocalG (span {p}) hg p ⋯ hp *
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) 1) =
star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp *
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) 1) ∧
-breveGammaMinus1 (span {p}) hg p ⋯ hp * breveLocalG (span {p}) hg p ⋯ hp *
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) 1) =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) *
(star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp) *
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) 1) ∧
-breveGamma1 (span {p}) hg p ⋯ hp * star (breveLocalG (span {p}) hg p ⋯ hp) *
((canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) 1))⁻¹ =
eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp) *
((canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) 1))⁻¹ ∧
-star (breveGammaMinus1 (span {p}) hg p ⋯ hp) * star (breveLocalG (span {p}) hg p ⋯ hp) *
((canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) 1))⁻¹ =
star ((canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1))) *
(eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp)) *
((canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) 1))⁻¹⊢ -localGauss p hp hg 1 * star (localG p hp hg) = star (localCoefficient p hp hg) ∧
-localGauss p hp hg 5 * localG p hp hg =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) * localCoefficient p hp hg
simp only [map_one, mul_one, inv_one] at hp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:-star (breveGamma1 (span {p}) hg p ⋯ hp) * breveLocalG (span {p}) hg p ⋯ hp =
star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp ∧
-breveGammaMinus1 (span {p}) hg p ⋯ hp * breveLocalG (span {p}) hg p ⋯ hp =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) *
(star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp) ∧
-breveGamma1 (span {p}) hg p ⋯ hp * star (breveLocalG (span {p}) hg p ⋯ hp) =
eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp) ∧
-star (breveGammaMinus1 (span {p}) hg p ⋯ hp) * star (breveLocalG (span {p}) hg p ⋯ hp) =
star ((canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1))) *
(eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp))⊢ -localGauss p hp hg 1 * star (localG p hp hg) = star (localCoefficient p hp hg) ∧
-localGauss p hp hg 5 * localG p hp hg =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) * localCoefficient p hp hg
constructorleftp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:-star (breveGamma1 (span {p}) hg p ⋯ hp) * breveLocalG (span {p}) hg p ⋯ hp =
star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp ∧
-breveGammaMinus1 (span {p}) hg p ⋯ hp * breveLocalG (span {p}) hg p ⋯ hp =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) *
(star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp) ∧
-breveGamma1 (span {p}) hg p ⋯ hp * star (breveLocalG (span {p}) hg p ⋯ hp) =
eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp) ∧
-star (breveGammaMinus1 (span {p}) hg p ⋯ hp) * star (breveLocalG (span {p}) hg p ⋯ hp) =
star ((canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1))) *
(eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp))⊢ -localGauss p hp hg 1 * star (localG p hp hg) = star (localCoefficient p hp hg)rightp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:-star (breveGamma1 (span {p}) hg p ⋯ hp) * breveLocalG (span {p}) hg p ⋯ hp =
star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp ∧
-breveGammaMinus1 (span {p}) hg p ⋯ hp * breveLocalG (span {p}) hg p ⋯ hp =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) *
(star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp) ∧
-breveGamma1 (span {p}) hg p ⋯ hp * star (breveLocalG (span {p}) hg p ⋯ hp) =
eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp) ∧
-star (breveGammaMinus1 (span {p}) hg p ⋯ hp) * star (breveLocalG (span {p}) hg p ⋯ hp) =
star ((canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1))) *
(eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp))⊢ -localGauss p hp hg 5 * localG p hp hg =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) * localCoefficient p hp hg
·leftp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:-star (breveGamma1 (span {p}) hg p ⋯ hp) * breveLocalG (span {p}) hg p ⋯ hp =
star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp ∧
-breveGammaMinus1 (span {p}) hg p ⋯ hp * breveLocalG (span {p}) hg p ⋯ hp =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) *
(star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp) ∧
-breveGamma1 (span {p}) hg p ⋯ hp * star (breveLocalG (span {p}) hg p ⋯ hp) =
eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp) ∧
-star (breveGammaMinus1 (span {p}) hg p ⋯ hp) * star (breveLocalG (span {p}) hg p ⋯ hp) =
star ((canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1))) *
(eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp))⊢ -localGauss p hp hg 1 * star (localG p hp hg) = star (localCoefficient p hp hg) simpa only [localGauss, localG, localCoefficient, angularFactor, pow_one,
ConcreteBreveE.normalizedTraceGauss, breveGamma1, breveGamma2, star_mul, star_star,
mul_comm] using h.2.2.1All goals completed! 🐙
·rightp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:-star (breveGamma1 (span {p}) hg p ⋯ hp) * breveLocalG (span {p}) hg p ⋯ hp =
star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp ∧
-breveGammaMinus1 (span {p}) hg p ⋯ hp * breveLocalG (span {p}) hg p ⋯ hp =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) *
(star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp) ∧
-breveGamma1 (span {p}) hg p ⋯ hp * star (breveLocalG (span {p}) hg p ⋯ hp) =
eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp) ∧
-star (breveGammaMinus1 (span {p}) hg p ⋯ hp) * star (breveLocalG (span {p}) hg p ⋯ hp) =
star ((canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1))) *
(eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp))⊢ -localGauss p hp hg 5 * localG p hp hg =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) * localCoefficient p hp hg rw [localGauss_five_eqrightp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:-star (breveGamma1 (span {p}) hg p ⋯ hp) * breveLocalG (span {p}) hg p ⋯ hp =
star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp ∧
-breveGammaMinus1 (span {p}) hg p ⋯ hp * breveLocalG (span {p}) hg p ⋯ hp =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) *
(star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp) ∧
-breveGamma1 (span {p}) hg p ⋯ hp * star (breveLocalG (span {p}) hg p ⋯ hp) =
eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp) ∧
-star (breveGammaMinus1 (span {p}) hg p ⋯ hp) * star (breveLocalG (span {p}) hg p ⋯ hp) =
star ((canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1))) *
(eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp))⊢ -breveGammaMinus1 (span {p}) hg p ⋯ hp * localG p hp hg =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) * localCoefficient p hp hg]rightp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:-star (breveGamma1 (span {p}) hg p ⋯ hp) * breveLocalG (span {p}) hg p ⋯ hp =
star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp ∧
-breveGammaMinus1 (span {p}) hg p ⋯ hp * breveLocalG (span {p}) hg p ⋯ hp =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) *
(star (eisEmbedding p / ↑‖eisEmbedding p‖) * breveGamma2 (span {p}) hg p ⋯ hp) ∧
-breveGamma1 (span {p}) hg p ⋯ hp * star (breveLocalG (span {p}) hg p ⋯ hp) =
eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp) ∧
-star (breveGammaMinus1 (span {p}) hg p ⋯ hp) * star (breveLocalG (span {p}) hg p ⋯ hp) =
star ((canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1))) *
(eisEmbedding p / ↑‖eisEmbedding p‖ * star (breveGamma2 (span {p}) hg p ⋯ hp))⊢ -breveGammaMinus1 (span {p}) hg p ⋯ hp * localG p hp hg =
(canonicalSextic (span {p}) hg) ((Ideal.Quotient.mk (span {p})) (-1)) * localCoefficient p hp hg
exact h.2.1All goals completed! 🐙theorem norm_localG (p : O) (hp : p ≠ 0) [(Ideal.span {p}).IsMaximal]
(hg : lambda ∉ Ideal.span {p}) (hchar : ringChar (O ⧸ Ideal.span {p}) ≠ 2)
(hprimary : lambda ^ 2 ∣ p - 1) : ‖localG p hp hg‖ = 1 := byp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1⊢ ‖localG p hp hg‖ = 1
have h := congrArg norm (local_sign_conversion p hp hg hchar hprimary).1p:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:‖-localGauss p hp hg 1 * star (localG p hp hg)‖ = ‖star (localCoefficient p hp hg)‖⊢ ‖localG p hp hg‖ = 1
simp only [norm_mul, norm_neg, norm_star, localCoefficient] at hp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:‖localGauss p hp hg 1‖ * ‖localG p hp hg‖ = ‖angularFactor p‖ * ‖localGauss p hp hg 2‖⊢ ‖localG p hp hg‖ = 1
rw [norm_localGauss p hp hg hchar 1 (byp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:‖localGauss p hp hg 1‖ * ‖localG p hp hg‖ = ‖angularFactor p‖ * ‖localGauss p hp hg 2‖⊢ 1 ≠ 0 decideAll goals completed! 🐙) (byp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:‖localGauss p hp hg 1‖ * ‖localG p hp hg‖ = ‖angularFactor p‖ * ‖localGauss p hp hg 2‖⊢ 1 < 6 decideAll goals completed! 🐙), one_mul,p:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:‖localG p hp hg‖ = ‖angularFactor p‖ * ‖localGauss p hp hg 2‖⊢ ‖localG p hp hg‖ = 1
norm_angularFactor p hp,p:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:‖localG p hp hg‖ = 1 * ‖localGauss p hp hg 2‖⊢ ‖localG p hp hg‖ = 1
norm_localGauss p hp hg hchar 2 (byp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:‖localG p hp hg‖ = 1 * ‖localGauss p hp hg 2‖⊢ 2 ≠ 0 decideAll goals completed! 🐙) (byp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:‖localG p hp hg‖ = 1 * ‖localGauss p hp hg 2‖⊢ 2 < 6 decideAll goals completed! 🐙), one_mulp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:‖localG p hp hg‖ = 1⊢ ‖localG p hp hg‖ = 1] at hp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1h:‖localG p hp hg‖ = 1⊢ ‖localG p hp hg‖ = 1
exact hAll goals completed! 🐙def convertedLocal (p : O) (hp : p ≠ 0) [(Ideal.span {p}).IsMaximal]
(hg : lambda ∉ Ideal.span {p}) (inverse : Bool) : ℂ :=
if inverse then
(canonicalSextic (Ideal.span {p}) hg (Ideal.Quotient.mk (Ideal.span {p}) (-1 : O)) *
localCoefficient p hp hg) / localG p hp hg
else star (localCoefficient p hp hg) / star (localG p hp hg)theorem neg_localGauss_eq_converted (p : O) (hp : p ≠ 0) [(Ideal.span {p}).IsMaximal]
(hg : lambda ∉ Ideal.span {p}) (hchar : ringChar (O ⧸ Ideal.span {p}) ≠ 2)
(hprimary : lambda ^ 2 ∣ p - 1) (inverse : Bool) :
-localGauss p hp hg (if inverse then 5 else 1) = convertedLocal p hp hg inverse := byp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1inverse:Bool⊢ -localGauss p hp hg (if inverse = true then 5 else 1) = convertedLocal p hp hg inverse
have hG : localG p hp hg ≠ 0 := by
intro hzp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1inverse:Boolhz:localG p hp hg = 0⊢ False
have hn := norm_localG p hp hg hchar hprimaryp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1inverse:Boolhz:localG p hp hg = 0hn:‖localG p hp hg‖ = 1⊢ False
rw [hz,p:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1inverse:Boolhz:localG p hp hg = 0hn:‖0‖ = 1⊢ False norm_zerop:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1inverse:Boolhz:localG p hp hg = 0hn:0 = 1⊢ False] at hnp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1inverse:Boolhz:localG p hp hg = 0hn:0 = 1⊢ False
exact zero_ne_one hnp:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1inverse:BoolhG:localG p hp hg ≠ 0⊢ -localGauss p hp hg (if inverse = true then 5 else 1) = convertedLocal p hp hg inverse
cases inversefalsep:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1hG:localG p hp hg ≠ 0⊢ -localGauss p hp hg (if false = true then 5 else 1) = convertedLocal p hp hg falsetruep:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1hG:localG p hp hg ≠ 0⊢ -localGauss p hp hg (if true = true then 5 else 1) = convertedLocal p hp hg true
·falsep:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1hG:localG p hp hg ≠ 0⊢ -localGauss p hp hg (if false = true then 5 else 1) = convertedLocal p hp hg false exact (eq_div_iff (star_ne_zero.mpr hG)).mpr
(local_sign_conversion p hp hg hchar hprimary).1All goals completed! 🐙
·truep:Ohp:p ≠ 0inst✝:(span {p}).IsMaximalhg:lambda ∉ span {p}hchar:ringChar (O ⧸ span {p}) ≠ 2hprimary:lambda ^ 2 ∣ p - 1hG:localG p hp hg ≠ 0⊢ -localGauss p hp hg (if true = true then 5 else 1) = convertedLocal p hp hg true exact (eq_div_iff hG).mpr (local_sign_conversion p hp hg hchar hprimary).2All goals completed! 🐙theorem moebius_mixed_gauss_conversion {ι : Type*} [Fintype ι]
(p : ι → O) (hp : ∀ i, p i ≠ 0) [∀ i, (Ideal.span {p i}).IsMaximal]
(hcop : Pairwise (Function.onFun IsCoprime (fun i => Ideal.span {p i})))
(hgood : ∀ i, lambda ∉ Ideal.span {p i})
(hchar : ∀ i, ringChar (O ⧸ Ideal.span {p i}) ≠ 2)
(hprimary : ∀ i, lambda ^ 2 ∣ p i - 1) (inverse : ι → Bool) :
(UniqueFactorizationMonoid.moebius (Ideal.span {∏ i, p i}) : ℂ) *
canonicalProductGauss p hp hcop hgood (fun i => if inverse i then 5 else 1) =
(∏ i, ∏ k ∈ Finset.univ.erase i,
(canonicalSextic (Ideal.span {p i}) (hgood i) ^ (if inverse i then 5 else 1))
(Ideal.Quotient.mk (Ideal.span {p i}) (p k))) *
∏ i, convertedLocal (p i) (hp i) (hgood i) (inverse i) := byι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Bool⊢ (↑(moebius (span {∏ i, p i})) * canonicalProductGauss p hp hcop hgood fun i => if inverse i = true then 5 else 1) =
(∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1) ((Ideal.Quotient.mk (span {p i})) (p k))) *
∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i)
rw [product_moebius_eq_sign p hcop,ι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Bool⊢ ((-1) ^ Fintype.card ι * canonicalProductGauss p hp hcop hgood fun i => if inverse i = true then 5 else 1) =
(∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1) ((Ideal.Quotient.mk (span {p i})) (p k))) *
∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i) canonicalProductGauss_cross_factorsι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Bool⊢ (-1) ^ Fintype.card ι *
((∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1)
((Ideal.Quotient.mk (span {p i})) (p k))) *
∏ i,
ConcreteBreveE.normalizedTraceGauss (p i) ⋯
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1)) =
(∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1) ((Ideal.Quotient.mk (span {p i})) (p k))) *
∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i)]ι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Bool⊢ (-1) ^ Fintype.card ι *
((∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1)
((Ideal.Quotient.mk (span {p i})) (p k))) *
∏ i,
ConcreteBreveE.normalizedTraceGauss (p i) ⋯
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1)) =
(∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1) ((Ideal.Quotient.mk (span {p i})) (p k))) *
∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i)
have hprod : (-1 : ℂ) ^ Fintype.card ι *
(∏ i, localGauss (p i) (hp i) (hgood i) (if inverse i then 5 else 1)) =
∏ i, convertedLocal (p i) (hp i) (hgood i) (inverse i) := byι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Bool⊢ (↑(moebius (span {∏ i, p i})) * canonicalProductGauss p hp hcop hgood fun i => if inverse i = true then 5 else 1) =
(∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1) ((Ideal.Quotient.mk (span {p i})) (p k))) *
∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i)
rw [← Finset.card_univ,ι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Bool⊢ (-1) ^ #univ * ∏ i, localGauss (p i) ⋯ ⋯ (if inverse i = true then 5 else 1) = ∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i) ← Finset.prod_negι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Bool⊢ ∏ x, -localGauss (p x) ⋯ ⋯ (if inverse x = true then 5 else 1) = ∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i)]ι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Bool⊢ ∏ x, -localGauss (p x) ⋯ ⋯ (if inverse x = true then 5 else 1) = ∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i)
apply Finset.prod_congr rflι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Bool⊢ ∀ x ∈ univ, -localGauss (p x) ⋯ ⋯ (if inverse x = true then 5 else 1) = convertedLocal (p x) ⋯ ⋯ (inverse x)
intro i _ι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Booli:ιa✝:i ∈ univ⊢ -localGauss (p i) ⋯ ⋯ (if inverse i = true then 5 else 1) = convertedLocal (p i) ⋯ ⋯ (inverse i)
exact neg_localGauss_eq_converted (p i) (hp i) (hgood i) (hchar i) (hprimary i) (inverse i)ι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Boolhprod:(-1) ^ Fintype.card ι * ∏ i, localGauss (p i) ⋯ ⋯ (if inverse i = true then 5 else 1) =
∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i)⊢ (-1) ^ Fintype.card ι *
((∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1)
((Ideal.Quotient.mk (span {p i})) (p k))) *
∏ i,
ConcreteBreveE.normalizedTraceGauss (p i) ⋯
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1)) =
(∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1) ((Ideal.Quotient.mk (span {p i})) (p k))) *
∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i)
calc
_ = (∏ i, ∏ k ∈ Finset.univ.erase i,
(canonicalSextic (Ideal.span {p i}) (hgood i) ^ (if inverse i then 5 else 1))
(Ideal.Quotient.mk (Ideal.span {p i}) (p k))) *
((-1 : ℂ) ^ Fintype.card ι *
∏ i, localGauss (p i) (hp i) (hgood i) (if inverse i then 5 else 1)) := byι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Boolhprod:(-1) ^ Fintype.card ι * ∏ i, localGauss (p i) ⋯ ⋯ (if inverse i = true then 5 else 1) =
∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i)⊢ (-1) ^ Fintype.card ι *
((∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1)
((Ideal.Quotient.mk (span {p i})) (p k))) *
∏ i,
ConcreteBreveE.normalizedTraceGauss (p i) ⋯
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1)) =
(∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1) ((Ideal.Quotient.mk (span {p i})) (p k))) *
((-1) ^ Fintype.card ι * ∏ i, localGauss (p i) ⋯ ⋯ (if inverse i = true then 5 else 1))
unfold localGaussι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Boolhprod:(-1) ^ Fintype.card ι * ∏ i, localGauss (p i) ⋯ ⋯ (if inverse i = true then 5 else 1) =
∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i)⊢ (-1) ^ Fintype.card ι *
((∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1)
((Ideal.Quotient.mk (span {p i})) (p k))) *
∏ i,
ConcreteBreveE.normalizedTraceGauss (p i) ⋯
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1)) =
(∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1) ((Ideal.Quotient.mk (span {p i})) (p k))) *
((-1) ^ Fintype.card ι *
∏ i,
ConcreteBreveE.normalizedTraceGauss (p i) ⋯
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1))
ringAll goals completed! 🐙
_ = _ := byι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Boolhprod:(-1) ^ Fintype.card ι * ∏ i, localGauss (p i) ⋯ ⋯ (if inverse i = true then 5 else 1) =
∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i)⊢ (∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1) ((Ideal.Quotient.mk (span {p i})) (p k))) *
((-1) ^ Fintype.card ι * ∏ i, localGauss (p i) ⋯ ⋯ (if inverse i = true then 5 else 1)) =
(∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1) ((Ideal.Quotient.mk (span {p i})) (p k))) *
∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i) rw [hprodι:Type u_1inst✝¹:Fintype ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhcop:Pairwise (Function.onFun IsCoprime fun i => span {p i})hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1inverse:ι → Boolhprod:(-1) ^ Fintype.card ι * ∏ i, localGauss (p i) ⋯ ⋯ (if inverse i = true then 5 else 1) =
∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i)⊢ (∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1) ((Ideal.Quotient.mk (span {p i})) (p k))) *
∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i) =
(∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p i}) ⋯ ^ if inverse i = true then 5 else 1) ((Ideal.Quotient.mk (span {p i})) (p k))) *
∏ i, convertedLocal (p i) ⋯ ⋯ (inverse i)]All goals completed! 🐙end MixedGaussConversionopen scoped BigOperators Classical SchwartzMap ContDiffnamespace GaussGeneratorTransportopen ActualEisensteinCubic ConcreteTraceCRT EisensteinSchwartzPoisson FiniteGaussPhaseopen MixedGaussConversiontheorem pair_moebius_eq_active
{ι : Type*} [DecidableEq ι] (p : ι → O) [∀ i, (Ideal.span {p i}).IsMaximal]
(hinj : Function.Injective (fun i => Ideal.span {p i})) (S T : Finset ι) :
(UniqueFactorizationMonoid.moebius (∏ i ∈ S, Ideal.span {p i}) : ℂ) *
(UniqueFactorizationMonoid.moebius (∏ i ∈ T, Ideal.span {p i}) : ℂ) =
(UniqueFactorizationMonoid.moebius
(Ideal.span {∏ i : activeSupport S T, p i.val}) : ℂ) := byι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ι⊢ ↑(moebius (∏ i ∈ S, span {p i})) * ↑(moebius (∏ i ∈ T, span {p i})) = ↑(moebius (span {∏ i, p ↑i}))
have hprime (i : ι) : Prime (Ideal.span {p i}) :=
Ideal.prime_of_isPrime (NeZero.ne (Ideal.span {p i})) inferInstanceι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})⊢ ↑(moebius (∏ i ∈ S, span {p i})) * ↑(moebius (∏ i ∈ T, span {p i})) = ↑(moebius (span {∏ i, p ↑i}))
have hcop := activePrimes_pairwise_isCoprime (fun i => Ideal.span {p i}) hinj S Tι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))⊢ ↑(moebius (∏ i ∈ S, span {p i})) * ↑(moebius (∏ i ∈ T, span {p i})) = ↑(moebius (span {∏ i, p ↑i}))
rw [prime_product_moebius (fun i => Ideal.span {p i}) hprime hinj S,ι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))⊢ (-1) ^ #S * ↑(moebius (∏ i ∈ T, span {p i})) = ↑(moebius (span {∏ i, p ↑i}))
prime_product_moebius (fun i => Ideal.span {p i}) hprime hinj T,ι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))⊢ (-1) ^ #S * (-1) ^ #T = ↑(moebius (span {∏ i, p ↑i}))
product_moebius_eq_sign (fun i : activeSupport S T => p i.val) hcop,ι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))⊢ (-1) ^ #S * (-1) ^ #T = (-1) ^ Fintype.card ↥(activeSupport S T) ← pow_addι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))⊢ (-1) ^ (#S + #T) = (-1) ^ Fintype.card ↥(activeSupport S T)]ι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))⊢ (-1) ^ (#S + #T) = (-1) ^ Fintype.card ↥(activeSupport S T)
have hd : Disjoint (S \ T) (T \ S) := byι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ι⊢ ↑(moebius (∏ i ∈ S, span {p i})) * ↑(moebius (∏ i ∈ T, span {p i})) = ↑(moebius (span {∏ i, p ↑i}))
apply Finset.disjoint_left.mprι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))⊢ ∀ ⦃a : ι⦄, a ∈ S \ T → a ∉ T \ S
intro i hi hjι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))i:ιhi:i ∈ S \ Thj:i ∈ T \ S⊢ False
exact (Finset.mem_sdiff.mp hi).2 (Finset.mem_sdiff.mp hj).1ι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))hd:Disjoint (S \ T) (T \ S)⊢ (-1) ^ (#S + #T) = (-1) ^ Fintype.card ↥(activeSupport S T)
have ha : Fintype.card (activeSupport S T) = (S \ T).card + (T \ S).card := byι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ι⊢ ↑(moebius (∏ i ∈ S, span {p i})) * ↑(moebius (∏ i ∈ T, span {p i})) = ↑(moebius (span {∏ i, p ↑i}))
rw [Fintype.card_coe,ι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))hd:Disjoint (S \ T) (T \ S)⊢ #(activeSupport S T) = #(S \ T) + #(T \ S) activeSupport,ι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))hd:Disjoint (S \ T) (T \ S)⊢ #(S \ T ∪ T \ S) = #(S \ T) + #(T \ S) Finset.card_union_of_disjoint hdι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))hd:Disjoint (S \ T) (T \ S)⊢ #(S \ T) + #(T \ S) = #(S \ T) + #(T \ S)]ι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))hd:Disjoint (S \ T) (T \ S)ha:Fintype.card ↥(activeSupport S T) = #(S \ T) + #(T \ S)⊢ (-1) ^ (#S + #T) = (-1) ^ Fintype.card ↥(activeSupport S T)
have hs := Finset.card_sdiff_add_card_inter S Tι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))hd:Disjoint (S \ T) (T \ S)ha:Fintype.card ↥(activeSupport S T) = #(S \ T) + #(T \ S)hs:#(S \ T) + #(S ∩ T) = #S⊢ (-1) ^ (#S + #T) = (-1) ^ Fintype.card ↥(activeSupport S T)
have ht := Finset.card_sdiff_add_card_inter T Sι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))hd:Disjoint (S \ T) (T \ S)ha:Fintype.card ↥(activeSupport S T) = #(S \ T) + #(T \ S)hs:#(S \ T) + #(S ∩ T) = #Sht:#(T \ S) + #(T ∩ S) = #T⊢ (-1) ^ (#S + #T) = (-1) ^ Fintype.card ↥(activeSupport S T)
rw [Finset.inter_comm T Sι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))hd:Disjoint (S \ T) (T \ S)ha:Fintype.card ↥(activeSupport S T) = #(S \ T) + #(T \ S)hs:#(S \ T) + #(S ∩ T) = #Sht:#(T \ S) + #(S ∩ T) = #T⊢ (-1) ^ (#S + #T) = (-1) ^ Fintype.card ↥(activeSupport S T)] at htι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))hd:Disjoint (S \ T) (T \ S)ha:Fintype.card ↥(activeSupport S T) = #(S \ T) + #(T \ S)hs:#(S \ T) + #(S ∩ T) = #Sht:#(T \ S) + #(S ∩ T) = #T⊢ (-1) ^ (#S + #T) = (-1) ^ Fintype.card ↥(activeSupport S T)
have hcard : S.card + T.card = Fintype.card (activeSupport S T) + 2 * (S ∩ T).card := byι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ι⊢ ↑(moebius (∏ i ∈ S, span {p i})) * ↑(moebius (∏ i ∈ T, span {p i})) = ↑(moebius (span {∏ i, p ↑i})) omegaι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))hd:Disjoint (S \ T) (T \ S)ha:Fintype.card ↥(activeSupport S T) = #(S \ T) + #(T \ S)hs:#(S \ T) + #(S ∩ T) = #Sht:#(T \ S) + #(S ∩ T) = #Thcard:#S + #T = Fintype.card ↥(activeSupport S T) + 2 * #(S ∩ T)⊢ (-1) ^ (#S + #T) = (-1) ^ Fintype.card ↥(activeSupport S T)
rw [hcard,ι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))hd:Disjoint (S \ T) (T \ S)ha:Fintype.card ↥(activeSupport S T) = #(S \ T) + #(T \ S)hs:#(S \ T) + #(S ∩ T) = #Sht:#(T \ S) + #(S ∩ T) = #Thcard:#S + #T = Fintype.card ↥(activeSupport S T) + 2 * #(S ∩ T)⊢ (-1) ^ (Fintype.card ↥(activeSupport S T) + 2 * #(S ∩ T)) = (-1) ^ Fintype.card ↥(activeSupport S T) pow_add,ι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))hd:Disjoint (S \ T) (T \ S)ha:Fintype.card ↥(activeSupport S T) = #(S \ T) + #(T \ S)hs:#(S \ T) + #(S ∩ T) = #Sht:#(T \ S) + #(S ∩ T) = #Thcard:#S + #T = Fintype.card ↥(activeSupport S T) + 2 * #(S ∩ T)⊢ (-1) ^ Fintype.card ↥(activeSupport S T) * (-1) ^ (2 * #(S ∩ T)) = (-1) ^ Fintype.card ↥(activeSupport S T) pow_mulι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))hd:Disjoint (S \ T) (T \ S)ha:Fintype.card ↥(activeSupport S T) = #(S \ T) + #(T \ S)hs:#(S \ T) + #(S ∩ T) = #Sht:#(T \ S) + #(S ∩ T) = #Thcard:#S + #T = Fintype.card ↥(activeSupport S T) + 2 * #(S ∩ T)⊢ (-1) ^ Fintype.card ↥(activeSupport S T) * ((-1) ^ 2) ^ #(S ∩ T) = (-1) ^ Fintype.card ↥(activeSupport S T)]ι:Type u_1inst✝¹:DecidableEq ιp:ι → Oinst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}S:Finset ιT:Finset ιhprime:∀ (i : ι), Prime (span {p i})hcop:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T))hd:Disjoint (S \ T) (T \ S)ha:Fintype.card ↥(activeSupport S T) = #(S \ T) + #(T \ S)hs:#(S \ T) + #(S ∩ T) = #Sht:#(T \ S) + #(S ∩ T) = #Thcard:#S + #T = Fintype.card ↥(activeSupport S T) + 2 * #(S ∩ T)⊢ (-1) ^ Fintype.card ↥(activeSupport S T) * ((-1) ^ 2) ^ #(S ∩ T) = (-1) ^ Fintype.card ↥(activeSupport S T)
norm_numAll goals completed! 🐙def activeConvertedGauss
{ι : Type*} [DecidableEq ι] (p : ι → O) (hp : ∀ i, p i ≠ 0)
[∀ i, (Ideal.span {p i}).IsMaximal]
(hgood : ∀ i, lambda ∉ Ideal.span {p i}) (S T : Finset ι) : ℂ :=
(∏ i : activeSupport S T,
∏ k ∈ @Finset.erase (activeSupport S T)
(fun a b => Classical.propDecidable (a = b)) Finset.univ i,
(canonicalSextic (Ideal.span {p i.val}) (hgood i.val) ^ activeExponent S T i)
(Ideal.Quotient.mk (Ideal.span {p i.val}) (p k.val))) *
∏ i : activeSupport S T,
convertedLocal (p i.val) (hp i.val) (hgood i.val) (decide (i.val ∈ S \ T))def activePairDualSeries
{ι : Type*} [DecidableEq ι] (p : ι → O) [∀ i, (Ideal.span {p i}).IsMaximal]
(hgood : ∀ i, lambda ∉ Ideal.span {p i})
(S T : Finset ι) (W : 𝓢(ℝ, ℂ)) (scale : ℝ) : ℂ :=
let row := finiteSexticRow (activePrimes (fun i => Ideal.span {p i}) S T)
(fun i => hgood i.val) (activeExponent S T)
let n := ∏ i : activeSupport S T, p i.val
∑ E ∈ (S ∩ T).powerset,
let d := primeSubsetGenerator (fun i => Ideal.span {p i}) E
((UniqueFactorizationMonoid.moebius (∏ i ∈ E, Ideal.span {p i}) : ℂ) * row d /
(‖eisEmbedding d‖ ^ 2 : ℝ)) *
∑' h : O, star (row h) * paperRadialFourier W
(scale * ‖eisEmbedding h‖ ^ 2 /
(‖eisEmbedding d‖ ^ 2 * ‖eisEmbedding n‖ ^ 2))def convertedPairPoissonKernel
{ι : Type*} [DecidableEq ι] (p : ι → O) (hp : ∀ i, p i ≠ 0)
[∀ i, (Ideal.span {p i}).IsMaximal]
(hgood : ∀ i, lambda ∉ Ideal.span {p i})
(S T : Finset ι) (W : 𝓢(ℝ, ℂ)) (scale : ℝ) : ℂ :=
((scale : ℂ) / (‖eisEmbedding (∏ i : activeSupport S T, p i.val)‖ : ℂ)) *
activeConvertedGauss p hp hgood S T * activePairDualSeries p hgood S T W scaletheorem moebius_squarefreePairPoissonKernel_conversion
{ι : Type*} [DecidableEq ι] (p : ι → O) (hp : ∀ i, p i ≠ 0)
[∀ i, (Ideal.span {p i}).IsMaximal]
(hinj : Function.Injective (fun i => Ideal.span {p i}))
(hgood : ∀ i, lambda ∉ Ideal.span {p i})
(hchar : ∀ i, ringChar (O ⧸ Ideal.span {p i}) ≠ 2)
(hprimary : ∀ i, lambda ^ 2 ∣ p i - 1)
(S T : Finset ι) (W : 𝓢(ℝ, ℂ)) (scale : ℝ) :
((UniqueFactorizationMonoid.moebius (∏ i ∈ S, Ideal.span {p i}) : ℂ) *
(UniqueFactorizationMonoid.moebius (∏ i ∈ T, Ideal.span {p i}) : ℂ)) *
squarefreePairPoissonKernel (fun i => Ideal.span {p i}) hinj hgood S T W scale =
convertedPairPoissonKernel p hp hgood S T W scale := byι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝ⊢ ↑(moebius (∏ i ∈ S, span {p i})) * ↑(moebius (∏ i ∈ T, span {p i})) *
squarefreePairPoissonKernel (fun i => span {p i}) hinj hgood S T W scale =
convertedPairPoissonKernel p hp hgood S T W scale
let q : activeSupport S T → O := fun i => p i.valι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑i⊢ ↑(moebius (∏ i ∈ S, span {p i})) * ↑(moebius (∏ i ∈ T, span {p i})) *
squarefreePairPoissonKernel (fun i => span {p i}) hinj hgood S T W scale =
convertedPairPoissonKernel p hp hgood S T W scale
let hQ := activePrimes_pairwise_isCoprime (fun i => Ideal.span {p i}) hinj S Tι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···⊢ ↑(moebius (∏ i ∈ S, span {p i})) * ↑(moebius (∏ i ∈ T, span {p i})) *
squarefreePairPoissonKernel (fun i => span {p i}) hinj hgood S T W scale =
convertedPairPoissonKernel p hp hgood S T W scale
have hg : (UniqueFactorizationMonoid.moebius (Ideal.span {∏ i, q i}) : ℂ) *
canonicalProductGauss q (fun i => hp i.val) hQ (fun i => hgood i.val)
(activeExponent S T) = activeConvertedGauss p hp hgood S T := by
have he : activeExponent S T =
(fun i : activeSupport S T => if decide (i.val ∈ S \ T) then 5 else 1) := byι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝ⊢ ↑(moebius (∏ i ∈ S, span {p i})) * ↑(moebius (∏ i ∈ T, span {p i})) *
squarefreePairPoissonKernel (fun i => span {p i}) hinj hgood S T W scale =
convertedPairPoissonKernel p hp hgood S T W scale
funext iι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···i:↥(activeSupport S T)⊢ activeExponent S T i = if decide (↑i ∈ S \ T) = true then 5 else 1
simp only [activeExponent, decide_eq_true_eq]ι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···he:activeExponent S T = fun i => if decide (↑i ∈ S \ T) = true then 5 else 1⊢ ↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T) = activeConvertedGauss p hp hgood S T
unfold activeConvertedGaussι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···he:activeExponent S T = fun i => if decide (↑i ∈ S \ T) = true then 5 else 1⊢ ↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T) =
(∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p ↑i}) ⋯ ^ activeExponent S T i) ((Ideal.Quotient.mk (span {p ↑i})) (p ↑k))) *
∏ i, convertedLocal (p ↑i) ⋯ ⋯ (decide (↑i ∈ S \ T))
rw [heι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···he:activeExponent S T = fun i => if decide (↑i ∈ S \ T) = true then 5 else 1⊢ (↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ fun i => if decide (↑i ∈ S \ T) = true then 5 else 1) =
(∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p ↑i}) ⋯ ^ (fun i => if decide (↑i ∈ S \ T) = true then 5 else 1) i)
((Ideal.Quotient.mk (span {p ↑i})) (p ↑k))) *
∏ i, convertedLocal (p ↑i) ⋯ ⋯ (decide (↑i ∈ S \ T))]ι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···he:activeExponent S T = fun i => if decide (↑i ∈ S \ T) = true then 5 else 1⊢ (↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ fun i => if decide (↑i ∈ S \ T) = true then 5 else 1) =
(∏ i,
∏ k ∈ univ.erase i,
(canonicalSextic (span {p ↑i}) ⋯ ^ (fun i => if decide (↑i ∈ S \ T) = true then 5 else 1) i)
((Ideal.Quotient.mk (span {p ↑i})) (p ↑k))) *
∏ i, convertedLocal (p ↑i) ⋯ ⋯ (decide (↑i ∈ S \ T))
exact moebius_mixed_gauss_conversion q (fun i => hp i.val) hQ (fun i => hgood i.val)
(fun i => hchar i.val) (fun i => hprimary i.val) (fun i => decide (i.val ∈ S \ T))ι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···hg:↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T) = activeConvertedGauss p hp hgood S T⊢ ↑(moebius (∏ i ∈ S, span {p i})) * ↑(moebius (∏ i ∈ T, span {p i})) *
squarefreePairPoissonKernel (fun i => span {p i}) hinj hgood S T W scale =
convertedPairPoissonKernel p hp hgood S T W scale
rw [pair_moebius_eq_active p hinj S T,ι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···hg:↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T) = activeConvertedGauss p hp hgood S T⊢ ↑(moebius (span {∏ i, p ↑i})) * squarefreePairPoissonKernel (fun i => span {p i}) hinj hgood S T W scale =
convertedPairPoissonKernel p hp hgood S T W scale squarefreePairPoissonKernel_eq_product p hp hinj hgoodι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···hg:↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T) = activeConvertedGauss p hp hgood S T⊢ ↑(moebius (span {∏ i, p ↑i})) * squarefreePairProductPoissonKernel p hp hinj hgood S T W scale =
convertedPairPoissonKernel p hp hgood S T W scale]ι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···hg:↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T) = activeConvertedGauss p hp hgood S T⊢ ↑(moebius (span {∏ i, p ↑i})) * squarefreePairProductPoissonKernel p hp hinj hgood S T W scale =
convertedPairPoissonKernel p hp hgood S T W scale
change (UniqueFactorizationMonoid.moebius (Ideal.span {∏ i, q i}) : ℂ) *
(((scale : ℂ) * canonicalProductGauss q (fun i => hp i.val) hQ
(fun i => hgood i.val) (activeExponent S T) / (‖eisEmbedding (∏ i, q i)‖ : ℂ)) *
activePairDualSeries p hgood S T W scale) = _ι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···hg:↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T) = activeConvertedGauss p hp hgood S T⊢ ↑(moebius (span {∏ i, q i})) *
(↑scale * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T) / ↑‖eisEmbedding (∏ i, q i)‖ *
activePairDualSeries p hgood S T W scale) =
convertedPairPoissonKernel p hp hgood S T W scale
calc
_ = ((scale : ℂ) / (‖eisEmbedding (∏ i, q i)‖ : ℂ)) *
((UniqueFactorizationMonoid.moebius (Ideal.span {∏ i, q i}) : ℂ) *
canonicalProductGauss q (fun i => hp i.val) hQ (fun i => hgood i.val)
(activeExponent S T)) * activePairDualSeries p hgood S T W scale := byι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···hg:↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T) = activeConvertedGauss p hp hgood S T⊢ ↑(moebius (span {∏ i, q i})) *
(↑scale * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T) / ↑‖eisEmbedding (∏ i, q i)‖ *
activePairDualSeries p hgood S T W scale) =
↑scale / ↑‖eisEmbedding (∏ i, q i)‖ *
(↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T)) *
activePairDualSeries p hgood S T W scale ringAll goals completed! 🐙
_ = _ := byι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···hg:↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T) = activeConvertedGauss p hp hgood S T⊢ ↑scale / ↑‖eisEmbedding (∏ i, q i)‖ *
(↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T)) *
activePairDualSeries p hgood S T W scale =
convertedPairPoissonKernel p hp hgood S T W scale rw [hgι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···hg:↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T) = activeConvertedGauss p hp hgood S T⊢ ↑scale / ↑‖eisEmbedding (∏ i, q i)‖ * activeConvertedGauss p hp hgood S T * activePairDualSeries p hgood S T W scale =
convertedPairPoissonKernel p hp hgood S T W scale]ι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝq:↥(activeSupport S T) → O := fun i => p ↑ihQ:Pairwise (Function.onFun IsCoprime (activePrimes (fun i => span {p i}) S T)) := ···hg:↑(moebius (span {∏ i, q i})) * canonicalProductGauss q ⋯ hQ ⋯ (activeExponent S T) = activeConvertedGauss p hp hgood S T⊢ ↑scale / ↑‖eisEmbedding (∏ i, q i)‖ * activeConvertedGauss p hp hgood S T * activePairDualSeries p hgood S T W scale =
convertedPairPoissonKernel p hp hgood S T W scale; rflAll goals completed! 🐙theorem moebius_pair_radial_poisson_converted
{ι : Type*} [DecidableEq ι] (p : ι → O) (hp : ∀ i, p i ≠ 0)
[∀ i, (Ideal.span {p i}).IsMaximal]
(hinj : Function.Injective (fun i => Ideal.span {p i}))
(hgood : ∀ i, lambda ∉ Ideal.span {p i})
(hchar : ∀ i, ringChar (O ⧸ Ideal.span {p i}) ≠ 2)
(hprimary : ∀ i, lambda ^ 2 ∣ p i - 1)
(S T : Finset ι) (W : 𝓢(ℝ, ℂ)) (scale : ℝ) (hscale : 0 < scale) :
((UniqueFactorizationMonoid.moebius (∏ i ∈ S, Ideal.span {p i}) : ℂ) *
(UniqueFactorizationMonoid.moebius (∏ i ∈ T, Ideal.span {p i}) : ℂ)) *
(∑' z : O, (star (finiteSquarefreeRow (fun i => Ideal.span {p i}) hgood S z) *
finiteSquarefreeRow (fun i => Ideal.span {p i}) hgood T z) *
W (‖eisEmbedding z‖ ^ 2 / scale)) =
convertedPairPoissonKernel p hp hgood S T W scale := byι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ↑(moebius (∏ i ∈ S, span {p i})) * ↑(moebius (∏ i ∈ T, span {p i})) *
∑' (z : O),
star (finiteSquarefreeRow (fun i => span {p i}) hgood S z) * finiteSquarefreeRow (fun i => span {p i}) hgood T z *
W (‖eisEmbedding z‖ ^ 2 / scale) =
convertedPairPoissonKernel p hp hgood S T W scale
rw [finiteSquarefreeRow_pair_radial_poisson (fun i => Ideal.span {p i}) hinj hgood hchar
S T W scale hscaleι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ↑(moebius (∏ i ∈ S, span {p i})) * ↑(moebius (∏ i ∈ T, span {p i})) *
squarefreePairPoissonKernel (fun i => span {p i}) hinj hgood S T W scale =
convertedPairPoissonKernel p hp hgood S T W scale]ι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0inst✝:∀ (i : ι), (span {p i}).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ span {p i}hchar:∀ (i : ι), ringChar (O ⧸ span {p i}) ≠ 2hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ↑(moebius (∏ i ∈ S, span {p i})) * ↑(moebius (∏ i ∈ T, span {p i})) *
squarefreePairPoissonKernel (fun i => span {p i}) hinj hgood S T W scale =
convertedPairPoissonKernel p hp hgood S T W scale
exact moebius_squarefreePairPoissonKernel_conversion p hp hinj hgood hchar hprimary S T W scaleAll goals completed! 🐙theorem moebius_pair_kernel_conversion_of_generators
{ι : Type*} [DecidableEq ι] (P : ι → Ideal O) [∀ i, (P i).IsMaximal]
(hinj : Function.Injective P) (hgood : ∀ i, lambda ∉ P i)
(hchar : ∀ i, ringChar (O ⧸ P i) ≠ 2)
(p : ι → O) (hP : ∀ i, P i = Ideal.span {p i}) (hp : ∀ i, p i ≠ 0)
(hprimary : ∀ i, lambda ^ 2 ∣ p i - 1)
(S T : Finset ι) (W : 𝓢(ℝ, ℂ)) (scale : ℝ) :
letI : ∀ i, (Ideal.span {p i}).IsMaximal := fun i =>
(hP i) ▸ (inferInstance : (P i).IsMaximal)
let hg : ∀ i, lambda ∉ Ideal.span {p i} := fun i => (hP i) ▸ hgood i
((UniqueFactorizationMonoid.moebius (∏ i ∈ S, P i) : ℂ) *
(UniqueFactorizationMonoid.moebius (∏ i ∈ T, P i) : ℂ)) *
squarefreePairPoissonKernel P hinj hgood S T W scale =
convertedPairPoissonKernel p hp hg S T W scale := byι:Type u_1inst✝¹:DecidableEq ιP:ι → Ideal Oinst✝:∀ (i : ι), (P i).IsMaximalhinj:Function.Injective Phgood:∀ (i : ι), lambda ∉ P ihchar:∀ (i : ι), ringChar (O ⧸ P i) ≠ 2p:ι → OhP:∀ (i : ι), P i = span {p i}hp:∀ (i : ι), p i ≠ 0hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝ⊢ let hg := ⋯;
↑(moebius (∏ i ∈ S, P i)) * ↑(moebius (∏ i ∈ T, P i)) * squarefreePairPoissonKernel P hinj hgood S T W scale =
convertedPairPoissonKernel p hp hg S T W scale
have hPeq : P = fun i => Ideal.span {p i} := funext hPι:Type u_1inst✝¹:DecidableEq ιP:ι → Ideal Oinst✝:∀ (i : ι), (P i).IsMaximalhinj:Function.Injective Phgood:∀ (i : ι), lambda ∉ P ihchar:∀ (i : ι), ringChar (O ⧸ P i) ≠ 2p:ι → OhP:∀ (i : ι), P i = span {p i}hp:∀ (i : ι), p i ≠ 0hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝhPeq:P = fun i => span {p i}⊢ let hg := ⋯;
↑(moebius (∏ i ∈ S, P i)) * ↑(moebius (∏ i ∈ T, P i)) * squarefreePairPoissonKernel P hinj hgood S T W scale =
convertedPairPoissonKernel p hp hg S T W scale
subst Pι:Type u_1inst✝¹:DecidableEq ιp:ι → Ohp:∀ (i : ι), p i ≠ 0hprimary:∀ (i : ι), lambda ^ 2 ∣ p i - 1S:Finset ιT:Finset ιW:𝓢(ℝ, ℂ)scale:ℝinst✝:∀ (i : ι), ((fun i => span {p i}) i).IsMaximalhinj:Function.Injective fun i => span {p i}hgood:∀ (i : ι), lambda ∉ (fun i => span {p i}) ihchar:∀ (i : ι), ringChar (O ⧸ (fun i => span {p i}) i) ≠ 2hP:∀ (i : ι), (fun i => span {p i}) i = span {p i}⊢ let hg := ⋯;
↑(moebius (∏ i ∈ S, (fun i => span {p i}) i)) * ↑(moebius (∏ i ∈ T, (fun i => span {p i}) i)) *
squarefreePairPoissonKernel (fun i => span {p i}) hinj hgood S T W scale =
convertedPairPoissonKernel p hp hg S T W scale
exact moebius_squarefreePairPoissonKernel_conversion p hp hinj hgood hchar hprimary S T W scaleAll goals completed! 🐙end GaussGeneratorTransportopen scoped BigOperators Classical SchwartzMap ContDiffnamespace ConcretePrimeRowBridgeopen ActualEisensteinCubic ShortDraftHeckeBridge ConcreteTraceCRT EisensteinSchwartzPoissonnoncomputable def mobiusIdealColumn (C : Ideal O → ℂ) (I : Ideal O) : ℂ :=
(UniqueFactorizationMonoid.moebius I : ℂ) * C Inoncomputable def conjugateIdealRowSum
(F : Finset (Ideal O)) (hFpos : ∀ I ∈ F, I ≠ ⊥)
(hFgood : ∀ I ∈ F,
∀ P ∈ UniqueFactorizationMonoid.normalizedFactors I, goodLambda ∉ P)
(C : Ideal O → ℂ) (y : O) : ℂ :=
∑ I ∈ F, mobiusIdealColumn C I * star (idealSexticRow F hFpos hFgood I y)theorem conjugateIdealRowSum_eq_star
(F : Finset (Ideal O)) (hFpos : ∀ I ∈ F, I ≠ ⊥)
(hFgood : ∀ I ∈ F,
∀ P ∈ UniqueFactorizationMonoid.normalizedFactors I, goodLambda ∉ P)
(C : Ideal O → ℂ) (y : O) :
conjugateIdealRowSum F hFpos hFgood C y =
star (∑ I ∈ F, star (mobiusIdealColumn C I) * idealSexticRow F hFpos hFgood I y) := byF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂy:O⊢ conjugateIdealRowSum F hFpos hFgood C y =
star (∑ I ∈ F, star (mobiusIdealColumn C I) * idealSexticRow F hFpos hFgood I y)
simp only [conjugateIdealRowSum, star_sum, star_mul, star_star, mul_comm]All goals completed! 🐙theorem conjugateIdealRowSum_smoothed_summable
(F : Finset (Ideal O)) (hFpos : ∀ I ∈ F, I ≠ ⊥)
(hFgood : ∀ I ∈ F,
∀ P ∈ UniqueFactorizationMonoid.normalizedFactors I, goodLambda ∉ P)
(C : Ideal O → ℂ) (W : 𝓢(ℝ, ℂ)) (scale : ℝ) (hscale : 0 < scale) :
Summable (fun y : O => W (‖eisEmbedding y‖ ^ 2 / scale) *
(↑(‖conjugateIdealRowSum F hFpos hFgood C y‖ ^ 2) : ℂ)) := byF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ Summable fun y => W (‖eisEmbedding y‖ ^ 2 / scale) * ↑(‖conjugateIdealRowSum F hFpos hFgood C y‖ ^ 2)
simp_rw [F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ Summable fun y => W (‖eisEmbedding y‖ ^ 2 / scale) * ↑(‖conjugateIdealRowSum F hFpos hFgood C y‖ ^ 2)conjugateIdealRowSum_eq_star,F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ Summable fun y =>
W (‖eisEmbedding y‖ ^ 2 / scale) *
↑(‖star (∑ I ∈ F, star (mobiusIdealColumn C I) * idealSexticRow F hFpos hFgood I y)‖ ^ 2) norm_starF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ Summable fun y =>
W (‖eisEmbedding y‖ ^ 2 / scale) * ↑(‖∑ I ∈ F, star (mobiusIdealColumn C I) * idealSexticRow F hFpos hFgood I y‖ ^ 2)]
let : ∀ i : primePool F, (i.val).IsMaximal := primePool_maximal F hFposF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···⊢ Summable fun y =>
W (‖eisEmbedding y‖ ^ 2 / scale) * ↑(‖∑ I ∈ F, star (mobiusIdealColumn C I) * idealSexticRow F hFpos hFgood I y‖ ^ 2)
exact finiteSquarefreeRow_smoothed_mean_square_summable
(fun i : primePool F => i.val) (primePool_good F hFgood)
F (idealSupport F) (fun I => star (mobiusIdealColumn C I)) W scale hscaleAll goals completed! 🐙theorem conjugateIdealRowSum_smoothed_poisson
(F : Finset (Ideal O)) (hFpos : ∀ I ∈ F, I ≠ ⊥)
(hFgood : ∀ I ∈ F,
∀ P ∈ UniqueFactorizationMonoid.normalizedFactors I, goodLambda ∉ P)
(hchar : ∀ i : primePool F, ringChar (O ⧸ i.val) ≠ 2)
(C : Ideal O → ℂ) (W : 𝓢(ℝ, ℂ)) (scale : ℝ) (hscale : 0 < scale) :
(∑' y : O, W (‖eisEmbedding y‖ ^ 2 / scale) *
(↑(‖conjugateIdealRowSum F hFpos hFgood C y‖ ^ 2) : ℂ)) =
∑ I ∈ F, ∑ J ∈ F,
(star (mobiusIdealColumn C I) * mobiusIdealColumn C J) *
idealPairPoissonKernel F hFpos hFgood J I W scale := byF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ∑' (y : O), W (‖eisEmbedding y‖ ^ 2 / scale) * ↑(‖conjugateIdealRowSum F hFpos hFgood C y‖ ^ 2) =
∑ I ∈ F,
∑ J ∈ F, star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale
simp_rw [F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ∑' (y : O), W (‖eisEmbedding y‖ ^ 2 / scale) * ↑(‖conjugateIdealRowSum F hFpos hFgood C y‖ ^ 2) =
∑ I ∈ F,
∑ J ∈ F, star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scaleconjugateIdealRowSum_eq_star,F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ∑' (y : O),
W (‖eisEmbedding y‖ ^ 2 / scale) *
↑(‖star (∑ I ∈ F, star (mobiusIdealColumn C I) * idealSexticRow F hFpos hFgood I y)‖ ^ 2) =
∑ I ∈ F,
∑ J ∈ F, star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale norm_starF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ∑' (y : O),
W (‖eisEmbedding y‖ ^ 2 / scale) *
↑(‖∑ I ∈ F, star (mobiusIdealColumn C I) * idealSexticRow F hFpos hFgood I y‖ ^ 2) =
∑ I ∈ F,
∑ J ∈ F, star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale]
let : ∀ i : primePool F, (i.val).IsMaximal := primePool_maximal F hFposF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···⊢ ∑' (y : O),
W (‖eisEmbedding y‖ ^ 2 / scale) *
↑(‖∑ I ∈ F, star (mobiusIdealColumn C I) * idealSexticRow F hFpos hFgood I y‖ ^ 2) =
∑ I ∈ F,
∑ J ∈ F, star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale
change (∑' y : O, W (‖eisEmbedding y‖ ^ 2 / scale) *
(↑(‖∑ I ∈ F, star (mobiusIdealColumn C I) *
finiteSquarefreeRow (fun i : primePool F => i.val) (primePool_good F hFgood)
(idealSupport F I) y‖ ^ 2) : ℂ)) = _F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···⊢ ∑' (y : O),
W (‖eisEmbedding y‖ ^ 2 / scale) *
↑(‖∑ I ∈ F, star (mobiusIdealColumn C I) * finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F I) y‖ ^ 2) =
∑ I ∈ F,
∑ J ∈ F, star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale
rw [finiteSquarefreeRow_smoothed_mean_square_expand
(fun i : primePool F => i.val) (primePool_good F hFgood)
F (idealSupport F) (fun I => star (mobiusIdealColumn C I)) W scale hscale,F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···⊢ ∑ n ∈ F,
∑ m ∈ F,
star (star (mobiusIdealColumn C n)) * star (mobiusIdealColumn C m) *
∑' (u : ActualEisensteinCubic.O),
star (finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F n) u) *
finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F m) u *
W (‖eisEmbedding u‖ ^ 2 / scale) =
∑ I ∈ F,
∑ J ∈ F, star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale
Finset.sum_commF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···⊢ ∑ y ∈ F,
∑ x ∈ F,
star (star (mobiusIdealColumn C x)) * star (mobiusIdealColumn C y) *
∑' (u : ActualEisensteinCubic.O),
star (finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F x) u) *
finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F y) u *
W (‖eisEmbedding u‖ ^ 2 / scale) =
∑ I ∈ F,
∑ J ∈ F, star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale]F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···⊢ ∑ y ∈ F,
∑ x ∈ F,
star (star (mobiusIdealColumn C x)) * star (mobiusIdealColumn C y) *
∑' (u : ActualEisensteinCubic.O),
star (finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F x) u) *
finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F y) u *
W (‖eisEmbedding u‖ ^ 2 / scale) =
∑ I ∈ F,
∑ J ∈ F, star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale
apply Finset.sum_congr rflF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···⊢ ∀ x ∈ F,
∑ x_1 ∈ F,
star (star (mobiusIdealColumn C x_1)) * star (mobiusIdealColumn C x) *
∑' (u : ActualEisensteinCubic.O),
star (finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F x_1) u) *
finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F x) u *
W (‖eisEmbedding u‖ ^ 2 / scale) =
∑ J ∈ F, star (mobiusIdealColumn C x) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J x W scale
intro I hIF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···I:Ideal OhI:I ∈ F⊢ ∑ x ∈ F,
star (star (mobiusIdealColumn C x)) * star (mobiusIdealColumn C I) *
∑' (u : ActualEisensteinCubic.O),
star (finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F x) u) *
finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F I) u *
W (‖eisEmbedding u‖ ^ 2 / scale) =
∑ J ∈ F, star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale
apply Finset.sum_congr rflF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···I:Ideal OhI:I ∈ F⊢ ∀ x ∈ F,
star (star (mobiusIdealColumn C x)) * star (mobiusIdealColumn C I) *
∑' (u : ActualEisensteinCubic.O),
star (finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F x) u) *
finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F I) u *
W (‖eisEmbedding u‖ ^ 2 / scale) =
star (mobiusIdealColumn C I) * mobiusIdealColumn C x * idealPairPoissonKernel F hFpos hFgood x I W scale
intro J hJF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···I:Ideal OhI:I ∈ FJ:Ideal OhJ:J ∈ F⊢ star (star (mobiusIdealColumn C J)) * star (mobiusIdealColumn C I) *
∑' (u : ActualEisensteinCubic.O),
star (finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F J) u) *
finiteSquarefreeRow (fun i => ↑i) ⋯ (idealSupport F I) u *
W (‖eisEmbedding u‖ ^ 2 / scale) =
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale
rw [finiteSquarefreeRow_pair_radial_poisson
(fun i : primePool F => i.val) Subtype.val_injective (primePool_good F hFgood)
hchar (idealSupport F J) (idealSupport F I) W scale hscale,F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···I:Ideal OhI:I ∈ FJ:Ideal OhJ:J ∈ F⊢ star (star (mobiusIdealColumn C J)) * star (mobiusIdealColumn C I) *
squarefreePairPoissonKernel (fun i => ↑i) ⋯ ⋯ (idealSupport F J) (idealSupport F I) W scale =
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale star_starF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···I:Ideal OhI:I ∈ FJ:Ideal OhJ:J ∈ F⊢ mobiusIdealColumn C J * star (mobiusIdealColumn C I) *
squarefreePairPoissonKernel (fun i => ↑i) ⋯ ⋯ (idealSupport F J) (idealSupport F I) W scale =
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale]F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···I:Ideal OhI:I ∈ FJ:Ideal OhJ:J ∈ F⊢ mobiusIdealColumn C J * star (mobiusIdealColumn C I) *
squarefreePairPoissonKernel (fun i => ↑i) ⋯ ⋯ (idealSupport F J) (idealSupport F I) W scale =
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale
rw [mul_comm (mobiusIdealColumn C J)F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···I:Ideal OhI:I ∈ FJ:Ideal OhJ:J ∈ F⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J *
squarefreePairPoissonKernel (fun i => ↑i) ⋯ ⋯ (idealSupport F J) (idealSupport F I) W scale =
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale]F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scalethis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···I:Ideal OhI:I ∈ FJ:Ideal OhJ:J ∈ F⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J *
squarefreePairPoissonKernel (fun i => ↑i) ⋯ ⋯ (idealSupport F J) (idealSupport F I) W scale =
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale
rflAll goals completed! 🐙theorem mobiusIdealColumn_eq_zero_of_not_squarefree
(C : Ideal O → ℂ) {I : Ideal O} (hI : ¬ Squarefree I) :
mobiusIdealColumn C I = 0 := byC:Ideal O → ℂI:Ideal OhI:¬Squarefree I⊢ mobiusIdealColumn C I = 0
simp only [mobiusIdealColumn, UniqueFactorizationMonoid.moebius_of_not_squarefree hI,
Int.cast_zero, zero_mul]All goals completed! 🐙theorem conjugateIdealRowSum_zeroMode_offDiagonal
(F : Finset (Ideal O)) (hFpos : ∀ I ∈ F, I ≠ ⊥)
(hFgood : ∀ I ∈ F,
∀ P ∈ UniqueFactorizationMonoid.normalizedFactors I, goodLambda ∉ P)
(C : Ideal O → ℂ) {I J : Ideal O} (hI : I ∈ F) (hJ : J ∈ F) (hIJ : I ≠ J)
(W : 𝓢(ℝ, ℂ)) (scale : ℝ) :
(star (mobiusIdealColumn C I) * mobiusIdealColumn C J) *
idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0 := byF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂI:Ideal OJ:Ideal OhI:I ∈ FhJ:J ∈ FhIJ:I ≠ JW:𝓢(ℝ, ℂ)scale:ℝ⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0
by_cases hsI : Squarefree IposF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂI:Ideal OJ:Ideal OhI:I ∈ FhJ:J ∈ FhIJ:I ≠ JW:𝓢(ℝ, ℂ)scale:ℝhsI:Squarefree I⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0negF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂI:Ideal OJ:Ideal OhI:I ∈ FhJ:J ∈ FhIJ:I ≠ JW:𝓢(ℝ, ℂ)scale:ℝhsI:¬Squarefree I⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0
·posF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂI:Ideal OJ:Ideal OhI:I ∈ FhJ:J ∈ FhIJ:I ≠ JW:𝓢(ℝ, ℂ)scale:ℝhsI:Squarefree I⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0 by_cases hsJ : Squarefree JposF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂI:Ideal OJ:Ideal OhI:I ∈ FhJ:J ∈ FhIJ:I ≠ JW:𝓢(ℝ, ℂ)scale:ℝhsI:Squarefree IhsJ:Squarefree J⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0negF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂI:Ideal OJ:Ideal OhI:I ∈ FhJ:J ∈ FhIJ:I ≠ JW:𝓢(ℝ, ℂ)scale:ℝhsI:Squarefree IhsJ:¬Squarefree J⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0
·posF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂI:Ideal OJ:Ideal OhI:I ∈ FhJ:J ∈ FhIJ:I ≠ JW:𝓢(ℝ, ℂ)scale:ℝhsI:Squarefree IhsJ:Squarefree J⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0 have hsupport : idealSupport F J ≠ idealSupport F I := fun h =>
hIJ (idealSupport_injective_on_squarefree F hJ hI hsJ hsI h).symmposF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂI:Ideal OJ:Ideal OhI:I ∈ FhJ:J ∈ FhIJ:I ≠ JW:𝓢(ℝ, ℂ)scale:ℝhsI:Squarefree IhsJ:Squarefree Jhsupport:idealSupport F J ≠ idealSupport F I⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0
let : ∀ i : primePool F, (i.val).IsMaximal := primePool_maximal F hFposposF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂI:Ideal OJ:Ideal OhI:I ∈ FhJ:J ∈ FhIJ:I ≠ JW:𝓢(ℝ, ℂ)scale:ℝhsI:Squarefree IhsJ:Squarefree Jhsupport:idealSupport F J ≠ idealSupport F Ithis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0
have hz : idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0 :=
squarefreePairPoissonZeroMode_eq_zero_of_ne (fun i : primePool F => i.val)
Subtype.val_injective (primePool_good F hFgood) hsupport W scaleposF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂI:Ideal OJ:Ideal OhI:I ∈ FhJ:J ∈ FhIJ:I ≠ JW:𝓢(ℝ, ℂ)scale:ℝhsI:Squarefree IhsJ:Squarefree Jhsupport:idealSupport F J ≠ idealSupport F Ithis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···hz:idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0
rw [hz,posF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂI:Ideal OJ:Ideal OhI:I ∈ FhJ:J ∈ FhIJ:I ≠ JW:𝓢(ℝ, ℂ)scale:ℝhsI:Squarefree IhsJ:Squarefree Jhsupport:idealSupport F J ≠ idealSupport F Ithis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···hz:idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J * 0 = 0 mul_zeroposF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂI:Ideal OJ:Ideal OhI:I ∈ FhJ:J ∈ FhIJ:I ≠ JW:𝓢(ℝ, ℂ)scale:ℝhsI:Squarefree IhsJ:Squarefree Jhsupport:idealSupport F J ≠ idealSupport F Ithis:∀ (i : ↥(primePool F)), (↑i).IsMaximal := ···hz:idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0⊢ 0 = 0]All goals completed! 🐙
·negF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂI:Ideal OJ:Ideal OhI:I ∈ FhJ:J ∈ FhIJ:I ≠ JW:𝓢(ℝ, ℂ)scale:ℝhsI:Squarefree IhsJ:¬Squarefree J⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0 simp [mobiusIdealColumn_eq_zero_of_not_squarefree C hsJ]All goals completed! 🐙
·negF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂI:Ideal OJ:Ideal OhI:I ∈ FhJ:J ∈ FhIJ:I ≠ JW:𝓢(ℝ, ℂ)scale:ℝhsI:¬Squarefree I⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0 simp [mobiusIdealColumn_eq_zero_of_not_squarefree C hsI]All goals completed! 🐙theorem conjugateIdealRowSum_zeroMode_formula
(F : Finset (Ideal O)) (hFpos : ∀ I ∈ F, I ≠ ⊥)
(hFgood : ∀ I ∈ F,
∀ P ∈ UniqueFactorizationMonoid.normalizedFactors I, goodLambda ∉ P)
(C : Ideal O → ℂ) (W : 𝓢(ℝ, ℂ)) (scale : ℝ) :
(∑ I ∈ F, ∑ J ∈ F,
(star (mobiusIdealColumn C I) * mobiusIdealColumn C J) *
idealPairPoissonZeroMode F hFpos hFgood J I W scale) =
(scale : ℂ) * paperRadialFourier W 0 *
∑ I ∈ F, (↑(‖mobiusIdealColumn C I‖ ^ 2) : ℂ) * idealPrimeDensity F I := byF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝ⊢ ∑ I ∈ F,
∑ J ∈ F,
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale =
↑scale * paperRadialFourier (⇑W) 0 * ∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I)
rw [Finset.mul_sumF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝ⊢ ∑ I ∈ F,
∑ J ∈ F,
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale =
∑ i ∈ F, ↑scale * paperRadialFourier (⇑W) 0 * (↑(‖mobiusIdealColumn C i‖ ^ 2) * ↑(idealPrimeDensity F i))]F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝ⊢ ∑ I ∈ F,
∑ J ∈ F,
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale =
∑ i ∈ F, ↑scale * paperRadialFourier (⇑W) 0 * (↑(‖mobiusIdealColumn C i‖ ^ 2) * ↑(idealPrimeDensity F i))
apply Finset.sum_congr rflF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝ⊢ ∀ x ∈ F,
∑ J ∈ F, star (mobiusIdealColumn C x) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J x W scale =
↑scale * paperRadialFourier (⇑W) 0 * (↑(‖mobiusIdealColumn C x‖ ^ 2) * ↑(idealPrimeDensity F x))
intro I hIF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ∑ J ∈ F, star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale =
↑scale * paperRadialFourier (⇑W) 0 * (↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I))
rw [Finset.sum_eq_single IF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C I * idealPairPoissonZeroMode F hFpos hFgood I I W scale =
↑scale * paperRadialFourier (⇑W) 0 * (↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I))h₀F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ∀ b ∈ F,
b ≠ I → star (mobiusIdealColumn C I) * mobiusIdealColumn C b * idealPairPoissonZeroMode F hFpos hFgood b I W scale = 0h₁F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ I ∉ F → star (mobiusIdealColumn C I) * mobiusIdealColumn C I * idealPairPoissonZeroMode F hFpos hFgood I I W scale = 0]F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C I * idealPairPoissonZeroMode F hFpos hFgood I I W scale =
↑scale * paperRadialFourier (⇑W) 0 * (↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I))h₀F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ∀ b ∈ F,
b ≠ I → star (mobiusIdealColumn C I) * mobiusIdealColumn C b * idealPairPoissonZeroMode F hFpos hFgood b I W scale = 0h₁F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ I ∉ F → star (mobiusIdealColumn C I) * mobiusIdealColumn C I * idealPairPoissonZeroMode F hFpos hFgood I I W scale = 0
·F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C I * idealPairPoissonZeroMode F hFpos hFgood I I W scale =
↑scale * paperRadialFourier (⇑W) 0 * (↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I)) rw [idealPairPoissonZeroMode_diag,F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C I * (↑scale * paperRadialFourier (⇑W) 0 * ↑(idealPrimeDensity F I)) =
↑scale * paperRadialFourier (⇑W) 0 * (↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I)) Complex.sq_norm,F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C I * (↑scale * paperRadialFourier (⇑W) 0 * ↑(idealPrimeDensity F I)) =
↑scale * paperRadialFourier (⇑W) 0 * (↑(normSq (mobiusIdealColumn C I)) * ↑(idealPrimeDensity F I)) Complex.normSq_eq_conj_mul_selfF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C I * (↑scale * paperRadialFourier (⇑W) 0 * ↑(idealPrimeDensity F I)) =
↑scale * paperRadialFourier (⇑W) 0 *
((starRingEnd ℂ) (mobiusIdealColumn C I) * mobiusIdealColumn C I * ↑(idealPrimeDensity F I))]F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C I * (↑scale * paperRadialFourier (⇑W) 0 * ↑(idealPrimeDensity F I)) =
↑scale * paperRadialFourier (⇑W) 0 *
((starRingEnd ℂ) (mobiusIdealColumn C I) * mobiusIdealColumn C I * ↑(idealPrimeDensity F I))
change (star _ * _) * _ = _ * ((star _ * _) * _)F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C I * (↑scale * paperRadialFourier (⇑W) 0 * ↑(idealPrimeDensity F I)) =
↑scale * paperRadialFourier (⇑W) 0 * (star (mobiusIdealColumn C I) * mobiusIdealColumn C I * ↑(idealPrimeDensity F I))
ringAll goals completed! 🐙
·h₀F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ∀ b ∈ F,
b ≠ I → star (mobiusIdealColumn C I) * mobiusIdealColumn C b * idealPairPoissonZeroMode F hFpos hFgood b I W scale = 0 intro J hJ hJIh₀F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ FJ:Ideal OhJ:J ∈ FhJI:J ≠ I⊢ star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale = 0
exact conjugateIdealRowSum_zeroMode_offDiagonal F hFpos hFgood C hI hJ hJI.symm W scaleAll goals completed! 🐙
·h₁F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ I ∉ F → star (mobiusIdealColumn C I) * mobiusIdealColumn C I * idealPairPoissonZeroMode F hFpos hFgood I I W scale = 0 exact fun h => (h hI).elimAll goals completed! 🐙theorem conjugateIdealRowSum_smoothed_poisson_zero_split
(F : Finset (Ideal O)) (hFpos : ∀ I ∈ F, I ≠ ⊥)
(hFgood : ∀ I ∈ F,
∀ P ∈ UniqueFactorizationMonoid.normalizedFactors I, goodLambda ∉ P)
(hchar : ∀ i : primePool F, ringChar (O ⧸ i.val) ≠ 2)
(C : Ideal O → ℂ) (W : 𝓢(ℝ, ℂ)) (scale : ℝ) (hscale : 0 < scale) :
(∑' y : O, W (‖eisEmbedding y‖ ^ 2 / scale) *
(↑(‖conjugateIdealRowSum F hFpos hFgood C y‖ ^ 2) : ℂ)) =
(scale : ℂ) * paperRadialFourier W 0 *
(∑ I ∈ F, (↑(‖mobiusIdealColumn C I‖ ^ 2) : ℂ) * idealPrimeDensity F I) +
∑ I ∈ F, ∑ J ∈ F,
(star (mobiusIdealColumn C I) * mobiusIdealColumn C J) *
idealPairPoissonNonzeroMode F hFpos hFgood J I W scale := byF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ∑' (y : O), W (‖eisEmbedding y‖ ^ 2 / scale) * ↑(‖conjugateIdealRowSum F hFpos hFgood C y‖ ^ 2) =
↑scale * paperRadialFourier (⇑W) 0 * ∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I) +
∑ I ∈ F,
∑ J ∈ F,
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonNonzeroMode F hFpos hFgood J I W scale
rw [conjugateIdealRowSum_smoothed_poisson F hFpos hFgood hchar C W scale hscaleF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ∑ I ∈ F,
∑ J ∈ F, star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale =
↑scale * paperRadialFourier (⇑W) 0 * ∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I) +
∑ I ∈ F,
∑ J ∈ F,
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonNonzeroMode F hFpos hFgood J I W scale]F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ∑ I ∈ F,
∑ J ∈ F, star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale =
↑scale * paperRadialFourier (⇑W) 0 * ∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I) +
∑ I ∈ F,
∑ J ∈ F,
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonNonzeroMode F hFpos hFgood J I W scale
simp_rw [F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ∑ I ∈ F,
∑ J ∈ F, star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonKernel F hFpos hFgood J I W scale =
↑scale * paperRadialFourier (⇑W) 0 * ∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I) +
∑ I ∈ F,
∑ J ∈ F,
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonNonzeroMode F hFpos hFgood J I W scaleidealPairPoissonKernel_zero_split F hFpos hFgood _ _ W scale hscale,F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ∑ x ∈ F,
∑ x_1 ∈ F,
star (mobiusIdealColumn C x) * mobiusIdealColumn C x_1 *
(idealPairPoissonZeroMode F hFpos hFgood x_1 x W scale +
idealPairPoissonNonzeroMode F hFpos hFgood x_1 x W scale) =
↑scale * paperRadialFourier (⇑W) 0 * ∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I) +
∑ I ∈ F,
∑ J ∈ F,
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonNonzeroMode F hFpos hFgood J I W scale
mul_add,F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ∑ x ∈ F,
∑ x_1 ∈ F,
(star (mobiusIdealColumn C x) * mobiusIdealColumn C x_1 * idealPairPoissonZeroMode F hFpos hFgood x_1 x W scale +
star (mobiusIdealColumn C x) * mobiusIdealColumn C x_1 *
idealPairPoissonNonzeroMode F hFpos hFgood x_1 x W scale) =
↑scale * paperRadialFourier (⇑W) 0 * ∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I) +
∑ I ∈ F,
∑ J ∈ F,
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonNonzeroMode F hFpos hFgood J I W scale Finset.sum_add_distribF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ∑ x ∈ F,
∑ x_1 ∈ F,
star (mobiusIdealColumn C x) * mobiusIdealColumn C x_1 * idealPairPoissonZeroMode F hFpos hFgood x_1 x W scale +
∑ x ∈ F,
∑ x_1 ∈ F,
star (mobiusIdealColumn C x) * mobiusIdealColumn C x_1 *
idealPairPoissonNonzeroMode F hFpos hFgood x_1 x W scale =
↑scale * paperRadialFourier (⇑W) 0 * ∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I) +
∑ x ∈ F,
∑ x_1 ∈ F,
star (mobiusIdealColumn C x) * mobiusIdealColumn C x_1 *
idealPairPoissonNonzeroMode F hFpos hFgood x_1 x W scale]
rw [conjugateIdealRowSum_zeroMode_formula F hFpos hFgood C W scaleF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Phchar:∀ (i : ↥(primePool F)), ringChar (O ⧸ ↑i) ≠ 2C:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝhscale:0 < scale⊢ ↑scale * paperRadialFourier (⇑W) 0 * ∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I) +
∑ x ∈ F,
∑ x_1 ∈ F,
star (mobiusIdealColumn C x) * mobiusIdealColumn C x_1 *
idealPairPoissonNonzeroMode F hFpos hFgood x_1 x W scale =
↑scale * paperRadialFourier (⇑W) 0 * ∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I) +
∑ x ∈ F,
∑ x_1 ∈ F,
star (mobiusIdealColumn C x) * mobiusIdealColumn C x_1 *
idealPairPoissonNonzeroMode F hFpos hFgood x_1 x W scale]All goals completed! 🐙theorem norm_mobiusIdealColumn_le (C : Ideal O → ℂ) (I : Ideal O) :
‖mobiusIdealColumn C I‖ ≤ ‖C I‖ := byC:Ideal O → ℂI:Ideal O⊢ ‖mobiusIdealColumn C I‖ ≤ ‖C I‖
by_cases hI : Squarefree IposC:Ideal O → ℂI:Ideal OhI:Squarefree I⊢ ‖mobiusIdealColumn C I‖ ≤ ‖C I‖negC:Ideal O → ℂI:Ideal OhI:¬Squarefree I⊢ ‖mobiusIdealColumn C I‖ ≤ ‖C I‖
·posC:Ideal O → ℂI:Ideal OhI:Squarefree I⊢ ‖mobiusIdealColumn C I‖ ≤ ‖C I‖ simp only [mobiusIdealColumn, hI.moebius_eq, Int.cast_pow, Int.cast_neg,
Int.cast_one, norm_mul, norm_pow, norm_neg, norm_one, one_pow, one_mul, le_refl]All goals completed! 🐙
·negC:Ideal O → ℂI:Ideal OhI:¬Squarefree I⊢ ‖mobiusIdealColumn C I‖ ≤ ‖C I‖ rw [mobiusIdealColumn_eq_zero_of_not_squarefree C hI,negC:Ideal O → ℂI:Ideal OhI:¬Squarefree I⊢ ‖0‖ ≤ ‖C I‖ norm_zeronegC:Ideal O → ℂI:Ideal OhI:¬Squarefree I⊢ 0 ≤ ‖C I‖]negC:Ideal O → ℂI:Ideal OhI:¬Squarefree I⊢ 0 ≤ ‖C I‖
exact norm_nonneg _All goals completed! 🐙theorem norm_conjugateIdealRowSum_zeroMode_le
(F : Finset (Ideal O)) (hFpos : ∀ I ∈ F, I ≠ ⊥)
(hFgood : ∀ I ∈ F,
∀ P ∈ UniqueFactorizationMonoid.normalizedFactors I, goodLambda ∉ P)
(C : Ideal O → ℂ) (W : 𝓢(ℝ, ℂ)) (scale : ℝ) :
‖∑ I ∈ F, ∑ J ∈ F,
(star (mobiusIdealColumn C I) * mobiusIdealColumn C J) *
idealPairPoissonZeroMode F hFpos hFgood J I W scale‖ ≤
(|scale| * ‖paperRadialFourier W 0‖) * ∑ I ∈ F, ‖C I‖ ^ 2 := byF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝ⊢ ‖∑ I ∈ F,
∑ J ∈ F,
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale‖ ≤
|scale| * ‖paperRadialFourier (⇑W) 0‖ * ∑ I ∈ F, ‖C I‖ ^ 2
rw [conjugateIdealRowSum_zeroMode_formula F hFpos hFgood C W scale,F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝ⊢ ‖↑scale * paperRadialFourier (⇑W) 0 * ∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I)‖ ≤
|scale| * ‖paperRadialFourier (⇑W) 0‖ * ∑ I ∈ F, ‖C I‖ ^ 2
norm_mul,F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝ⊢ ‖↑scale * paperRadialFourier (⇑W) 0‖ * ‖∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I)‖ ≤
|scale| * ‖paperRadialFourier (⇑W) 0‖ * ∑ I ∈ F, ‖C I‖ ^ 2 norm_mul,F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝ⊢ ‖↑scale‖ * ‖paperRadialFourier (⇑W) 0‖ * ‖∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I)‖ ≤
|scale| * ‖paperRadialFourier (⇑W) 0‖ * ∑ I ∈ F, ‖C I‖ ^ 2 Complex.norm_real,F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝ⊢ ‖scale‖ * ‖paperRadialFourier (⇑W) 0‖ * ‖∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I)‖ ≤
|scale| * ‖paperRadialFourier (⇑W) 0‖ * ∑ I ∈ F, ‖C I‖ ^ 2 Real.norm_eq_absF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝ⊢ |scale| * ‖paperRadialFourier (⇑W) 0‖ * ‖∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I)‖ ≤
|scale| * ‖paperRadialFourier (⇑W) 0‖ * ∑ I ∈ F, ‖C I‖ ^ 2]F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝ⊢ |scale| * ‖paperRadialFourier (⇑W) 0‖ * ‖∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I)‖ ≤
|scale| * ‖paperRadialFourier (⇑W) 0‖ * ∑ I ∈ F, ‖C I‖ ^ 2
gcongrhbcF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝ⊢ ‖∑ I ∈ F, ↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I)‖ ≤ ∑ I ∈ F, ‖C I‖ ^ 2
refine (norm_sum_le _ _).trans (Finset.sum_le_sum fun I hI => ?_)hbcF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖↑(‖mobiusIdealColumn C I‖ ^ 2) * ↑(idealPrimeDensity F I)‖ ≤ ‖C I‖ ^ 2
rw [norm_mul,hbcF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖↑(‖mobiusIdealColumn C I‖ ^ 2)‖ * ‖↑(idealPrimeDensity F I)‖ ≤ ‖C I‖ ^ 2 Complex.norm_real,hbcF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖‖mobiusIdealColumn C I‖ ^ 2‖ * ‖↑(idealPrimeDensity F I)‖ ≤ ‖C I‖ ^ 2 Real.norm_eq_abs,hbcF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ |‖mobiusIdealColumn C I‖ ^ 2| * ‖↑(idealPrimeDensity F I)‖ ≤ ‖C I‖ ^ 2 abs_of_nonneg (sq_nonneg _),hbcF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖mobiusIdealColumn C I‖ ^ 2 * ‖↑(idealPrimeDensity F I)‖ ≤ ‖C I‖ ^ 2
Complex.norm_real,hbcF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖mobiusIdealColumn C I‖ ^ 2 * ‖idealPrimeDensity F I‖ ≤ ‖C I‖ ^ 2 Real.norm_eq_abs,hbcF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖mobiusIdealColumn C I‖ ^ 2 * |idealPrimeDensity F I| ≤ ‖C I‖ ^ 2
abs_of_nonneg (idealPrimeDensity_mem_Icc F hFpos I).1hbcF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖mobiusIdealColumn C I‖ ^ 2 * idealPrimeDensity F I ≤ ‖C I‖ ^ 2]hbcF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖mobiusIdealColumn C I‖ ^ 2 * idealPrimeDensity F I ≤ ‖C I‖ ^ 2
calc
_ ≤ ‖mobiusIdealColumn C I‖ ^ 2 := mul_le_of_le_one_right
(sq_nonneg _) (idealPrimeDensity_mem_Icc F hFpos I).2
_ ≤ ‖C I‖ ^ 2 := byF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖mobiusIdealColumn C I‖ ^ 2 ≤ ‖C I‖ ^ 2 gcongrhabF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ PC:Ideal O → ℂW:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖mobiusIdealColumn C I‖ ≤ ‖C I‖; exact norm_mobiusIdealColumn_le C IAll goals completed! 🐙theorem norm_secondPoisson_zeroMode_fixed_factors
(F : Finset (Ideal O)) (hFpos : ∀ I ∈ F, I ≠ ⊥)
(hFgood : ∀ I ∈ F,
∀ P ∈ UniqueFactorizationMonoid.normalizedFactors I, goodLambda ∉ P)
(ξ ρ : Ideal O → ℂ) (A : ℕ → ℂ)
(hξ : ∀ I ∈ F, ‖ξ I‖ ≤ 1) (hρ : ∀ I ∈ F, ‖ρ I‖ ≤ 1)
(W : 𝓢(ℝ, ℂ)) (scale : ℝ) :
let C : Ideal O → ℂ := fun I => ξ I * ρ I * A (Ideal.absNorm I)
‖∑ I ∈ F, ∑ J ∈ F,
(star (mobiusIdealColumn C I) * mobiusIdealColumn C J) *
idealPairPoissonZeroMode F hFpos hFgood J I W scale‖ ≤
(|scale| * ‖paperRadialFourier W 0‖) * ∑ I ∈ F, ‖A (Ideal.absNorm I)‖ ^ 2 := byF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Pξ:Ideal O → ℂρ:Ideal O → ℂA:ℕ → ℂhξ:∀ I ∈ F, ‖ξ I‖ ≤ 1hρ:∀ I ∈ F, ‖ρ I‖ ≤ 1W:𝓢(ℝ, ℂ)scale:ℝ⊢ let C := fun I => ξ I * ρ I * A (absNorm I);
‖∑ I ∈ F,
∑ J ∈ F,
star (mobiusIdealColumn C I) * mobiusIdealColumn C J * idealPairPoissonZeroMode F hFpos hFgood J I W scale‖ ≤
|scale| * ‖paperRadialFourier (⇑W) 0‖ * ∑ I ∈ F, ‖A (absNorm I)‖ ^ 2
dsimp onlyF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Pξ:Ideal O → ℂρ:Ideal O → ℂA:ℕ → ℂhξ:∀ I ∈ F, ‖ξ I‖ ≤ 1hρ:∀ I ∈ F, ‖ρ I‖ ≤ 1W:𝓢(ℝ, ℂ)scale:ℝ⊢ ‖∑ I ∈ F,
∑ J ∈ F,
star (mobiusIdealColumn (fun I => ξ I * ρ I * A (absNorm I)) I) *
mobiusIdealColumn (fun I => ξ I * ρ I * A (absNorm I)) J *
idealPairPoissonZeroMode F hFpos hFgood J I W scale‖ ≤
|scale| * ‖paperRadialFourier (⇑W) 0‖ * ∑ I ∈ F, ‖A (absNorm I)‖ ^ 2
refine (norm_conjugateIdealRowSum_zeroMode_le F hFpos hFgood
(fun I => ξ I * ρ I * A (Ideal.absNorm I)) W scale).trans ?_F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Pξ:Ideal O → ℂρ:Ideal O → ℂA:ℕ → ℂhξ:∀ I ∈ F, ‖ξ I‖ ≤ 1hρ:∀ I ∈ F, ‖ρ I‖ ≤ 1W:𝓢(ℝ, ℂ)scale:ℝ⊢ |scale| * ‖paperRadialFourier (⇑W) 0‖ * ∑ I ∈ F, ‖ξ I * ρ I * A (absNorm I)‖ ^ 2 ≤
|scale| * ‖paperRadialFourier (⇑W) 0‖ * ∑ I ∈ F, ‖A (absNorm I)‖ ^ 2
gcongr with I hIhabF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Pξ:Ideal O → ℂρ:Ideal O → ℂA:ℕ → ℂhξ:∀ I ∈ F, ‖ξ I‖ ≤ 1hρ:∀ I ∈ F, ‖ρ I‖ ≤ 1W:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖ξ I * ρ I * A (absNorm I)‖ ≤ ‖A (absNorm I)‖
simp only [norm_mul]habF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Pξ:Ideal O → ℂρ:Ideal O → ℂA:ℕ → ℂhξ:∀ I ∈ F, ‖ξ I‖ ≤ 1hρ:∀ I ∈ F, ‖ρ I‖ ≤ 1W:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖ξ I‖ * ‖ρ I‖ * ‖A (absNorm I)‖ ≤ ‖A (absNorm I)‖
calc
‖ξ I‖ * ‖ρ I‖ * ‖A (Ideal.absNorm I)‖ ≤
1 * 1 * ‖A (Ideal.absNorm I)‖ := byF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Pξ:Ideal O → ℂρ:Ideal O → ℂA:ℕ → ℂhξ:∀ I ∈ F, ‖ξ I‖ ≤ 1hρ:∀ I ∈ F, ‖ρ I‖ ≤ 1W:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖ξ I‖ * ‖ρ I‖ * ‖A (absNorm I)‖ ≤ 1 * 1 * ‖A (absNorm I)‖ gcongrh₁F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Pξ:Ideal O → ℂρ:Ideal O → ℂA:ℕ → ℂhξ:∀ I ∈ F, ‖ξ I‖ ≤ 1hρ:∀ I ∈ F, ‖ρ I‖ ≤ 1W:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖ξ I‖ ≤ 1h₂F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Pξ:Ideal O → ℂρ:Ideal O → ℂA:ℕ → ℂhξ:∀ I ∈ F, ‖ξ I‖ ≤ 1hρ:∀ I ∈ F, ‖ρ I‖ ≤ 1W:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖ρ I‖ ≤ 1; exact hξ I hIh₂F:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Pξ:Ideal O → ℂρ:Ideal O → ℂA:ℕ → ℂhξ:∀ I ∈ F, ‖ξ I‖ ≤ 1hρ:∀ I ∈ F, ‖ρ I‖ ≤ 1W:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ ‖ρ I‖ ≤ 1; exact hρ I hIAll goals completed! 🐙
_ = _ := byF:Finset (Ideal O)hFpos:∀ I ∈ F, I ≠ ⊥hFgood:∀ I ∈ F, ∀ P ∈ normalizedFactors I, goodLambda ∉ Pξ:Ideal O → ℂρ:Ideal O → ℂA:ℕ → ℂhξ:∀ I ∈ F, ‖ξ I‖ ≤ 1hρ:∀ I ∈ F, ‖ρ I‖ ≤ 1W:𝓢(ℝ, ℂ)scale:ℝI:Ideal OhI:I ∈ F⊢ 1 * 1 * ‖A (absNorm I)‖ = ‖A (absNorm I)‖ ringAll goals completed! 🐙end ConcretePrimeRowBridgeopen MeasureTheory Setopen scoped BigOperatorsnamespace EisensteinSchwartzPoissontheorem scaled_cauchy_antitone (b : ℝ) :
AntitoneOn (fun x : ℝ => (1 + (b * x) ^ 2)⁻¹) (Ici 0) := byb:ℝ⊢ AntitoneOn (fun x => (1 + (b * x) ^ 2)⁻¹) (Set.Ici 0)
intro x hx y hy hxyb:ℝx:ℝhx:x ∈ Set.Ici 0y:ℝhy:y ∈ Set.Ici 0hxy:x ≤ y⊢ (fun x => (1 + (b * x) ^ 2)⁻¹) y ≤ (fun x => (1 + (b * x) ^ 2)⁻¹) x
change 0 ≤ x at hxb:ℝx:ℝy:ℝhy:y ∈ Set.Ici 0hxy:x ≤ yhx:0 ≤ x⊢ (fun x => (1 + (b * x) ^ 2)⁻¹) y ≤ (fun x => (1 + (b * x) ^ 2)⁻¹) x
change 0 ≤ y at hyb:ℝx:ℝy:ℝhxy:x ≤ yhx:0 ≤ xhy:0 ≤ y⊢ (fun x => (1 + (b * x) ^ 2)⁻¹) y ≤ (fun x => (1 + (b * x) ^ 2)⁻¹) x
apply inv_anti₀ (byb:ℝx:ℝy:ℝhxy:x ≤ yhx:0 ≤ xhy:0 ≤ y⊢ 0 < 1 + (b * x) ^ 2 positivityAll goals completed! 🐙)
nlinarith [sq_nonneg b, sq_nonneg (y - x),
mul_nonneg (sq_nonneg b) (show 0 ≤ y ^ 2 - x ^ 2 byb:ℝ⊢ AntitoneOn (fun x => (1 + (b * x) ^ 2)⁻¹) (Set.Ici 0) nlinarithAll goals completed! 🐙)]theorem scaled_cauchy_nat_bound (b : ℝ) (hb : 0 < b) :
(∑' n : ℕ, (1 + (b * (n : ℝ)) ^ 2)⁻¹) ≤ 1 + Real.pi / (2 * b) := byb:ℝhb:0 < b⊢ ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / (2 * b)
have hi := (integrable_inv_one_add_mul_sq hb.ne').integrableOn (s := Ioi 0)b:ℝhb:0 < bhi:IntegrableOn (fun x => (1 + (b * x) ^ 2)⁻¹) (Set.Ioi 0) volume⊢ ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / (2 * b)
have ht := (scaled_cauchy_antitone b).tsum_le_integral hi
(fun t ht => byb:ℝhb:0 < bhi:IntegrableOn (fun x => (1 + (b * x) ^ 2)⁻¹) (Set.Ioi 0) volumet:ℝht:t ∈ Set.Ioi 0⊢ 0 ≤ (1 + (b * t) ^ 2)⁻¹ positivityAll goals completed! 🐙)b:ℝhb:0 < bhi:IntegrableOn (fun x => (1 + (b * x) ^ 2)⁻¹) (Set.Ioi 0) volumeht:∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ (1 + (b * 0) ^ 2)⁻¹ + ∫ (x : ℝ) in Set.Ioi 0, (1 + (b * x) ^ 2)⁻¹⊢ ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / (2 * b)
have he : (∫ x : ℝ in Ioi 0, (1 + (b * x) ^ 2)⁻¹) = Real.pi / (2 * b) := by
rw [integral_comp_mul_left_Ioi (fun x : ℝ => (1 + x ^ 2)⁻¹) 0 hbb:ℝhb:0 < bhi:IntegrableOn (fun x => (1 + (b * x) ^ 2)⁻¹) (Set.Ioi 0) volumeht:∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ (1 + (b * 0) ^ 2)⁻¹ + ∫ (x : ℝ) in Set.Ioi 0, (1 + (b * x) ^ 2)⁻¹⊢ b⁻¹ • ∫ (x : ℝ) in Set.Ioi (b * 0), (1 + x ^ 2)⁻¹ = π / (2 * b)]b:ℝhb:0 < bhi:IntegrableOn (fun x => (1 + (b * x) ^ 2)⁻¹) (Set.Ioi 0) volumeht:∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ (1 + (b * 0) ^ 2)⁻¹ + ∫ (x : ℝ) in Set.Ioi 0, (1 + (b * x) ^ 2)⁻¹⊢ b⁻¹ • ∫ (x : ℝ) in Set.Ioi (b * 0), (1 + x ^ 2)⁻¹ = π / (2 * b)
simp only [mul_zero, integral_Ioi_inv_one_add_sq, Real.arctan_zero, sub_zero,
smul_eq_mul]b:ℝhb:0 < bhi:IntegrableOn (fun x => (1 + (b * x) ^ 2)⁻¹) (Set.Ioi 0) volumeht:∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ (1 + (b * 0) ^ 2)⁻¹ + ∫ (x : ℝ) in Set.Ioi 0, (1 + (b * x) ^ 2)⁻¹⊢ b⁻¹ * (π / 2) = π / (2 * b)
ringb:ℝhb:0 < bhi:IntegrableOn (fun x => (1 + (b * x) ^ 2)⁻¹) (Set.Ioi 0) volumeht:∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ (1 + (b * 0) ^ 2)⁻¹ + ∫ (x : ℝ) in Set.Ioi 0, (1 + (b * x) ^ 2)⁻¹he:∫ (x : ℝ) in Set.Ioi 0, (1 + (b * x) ^ 2)⁻¹ = π / (2 * b)⊢ ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / (2 * b)
simpa [he] using htAll goals completed! 🐙theorem summable_scaled_cauchy_nat (b : ℝ) (hb : 0 < b) :
Summable (fun n : ℕ => (1 + (b * (n : ℝ)) ^ 2)⁻¹) := byb:ℝhb:0 < b⊢ Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹
exact (scaled_cauchy_antitone b).summable_of_integrableOn_Ioi_zero
(integrable_inv_one_add_mul_sq hb.ne').integrableOn (fun _ _ => byb:ℝhb:0 < bx✝¹:ℝx✝:x✝¹ ∈ Set.Ioi 0⊢ 0 ≤ (1 + (b * x✝¹) ^ 2)⁻¹ positivityAll goals completed! 🐙)theorem summable_scaled_cauchy_int (b : ℝ) (hb : 0 < b) :
Summable (fun n : ℤ => (1 + (b * (n : ℝ)) ^ 2)⁻¹) := byb:ℝhb:0 < b⊢ Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹
rw [summable_int_iff_summable_nat_and_negb:ℝhb:0 < b⊢ (Summable fun n => (1 + (b * ↑↑n) ^ 2)⁻¹) ∧ Summable fun n => (1 + (b * ↑(-↑n)) ^ 2)⁻¹]b:ℝhb:0 < b⊢ (Summable fun n => (1 + (b * ↑↑n) ^ 2)⁻¹) ∧ Summable fun n => (1 + (b * ↑(-↑n)) ^ 2)⁻¹
constructorleftb:ℝhb:0 < b⊢ Summable fun n => (1 + (b * ↑↑n) ^ 2)⁻¹rightb:ℝhb:0 < b⊢ Summable fun n => (1 + (b * ↑(-↑n)) ^ 2)⁻¹
·leftb:ℝhb:0 < b⊢ Summable fun n => (1 + (b * ↑↑n) ^ 2)⁻¹ simpa using summable_scaled_cauchy_nat b hbAll goals completed! 🐙
·rightb:ℝhb:0 < b⊢ Summable fun n => (1 + (b * ↑(-↑n)) ^ 2)⁻¹ simpa [mul_neg] using summable_scaled_cauchy_nat b hbAll goals completed! 🐙theorem scaled_cauchy_int_bound (b : ℝ) (hb : 0 < b) :
(∑' n : ℤ, (1 + (b * (n : ℝ)) ^ 2)⁻¹) ≤ 1 + Real.pi / b := byb:ℝhb:0 < b⊢ ∑' (n : ℤ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / b
have hs := summable_scaled_cauchy_nat b hbb:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹⊢ ∑' (n : ℤ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / b
have hs1 := (summable_nat_add_iff 1).mpr hsb:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹⊢ ∑' (n : ℤ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / b
have hneg : Summable (fun n : ℕ =>
(1 + (b * ((-(n + 1) : ℤ) : ℝ)) ^ 2)⁻¹) := by
convert hs1 using 1e'_5b:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹⊢ (fun n => (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹) = fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹
ext ne'_5b:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹n:ℕ⊢ (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹ = (1 + (b * ↑(n + 1)) ^ 2)⁻¹
push_caste'_5b:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹n:ℕ⊢ (1 + (b * -(↑n + 1)) ^ 2)⁻¹ = (1 + (b * (↑n + 1)) ^ 2)⁻¹
congr 1e'_5b:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹n:ℕ⊢ 1 + (b * -(↑n + 1)) ^ 2 = 1 + (b * (↑n + 1)) ^ 2
ringb:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹hneg:Summable fun n => (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹⊢ ∑' (n : ℤ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / b
rw [tsum_of_nat_of_neg_add_one
(f := fun n : ℤ => (1 + (b * (n : ℝ)) ^ 2)⁻¹)
(byb:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹hneg:Summable fun n => (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹⊢ Summable fun n => (1 + (b * ↑↑n) ^ 2)⁻¹ simpa only [Int.cast_natCast] using hsAll goals completed! 🐙) hneg]b:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹hneg:Summable fun n => (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹⊢ ∑' (n : ℕ), (1 + (b * ↑↑n) ^ 2)⁻¹ + ∑' (n : ℕ), (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹ ≤ 1 + π / b
simp only [Int.cast_natCast, Int.cast_neg, Int.cast_add, Int.cast_one, mul_neg,
neg_sq]b:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹hneg:Summable fun n => (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹⊢ ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ + ∑' (n : ℕ), (1 + (b * (↑n + 1)) ^ 2)⁻¹ ≤ 1 + π / b
have hz := hs.tsum_eq_zero_addb:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹hneg:Summable fun n => (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹hz:∑' (b_1 : ℕ), (1 + (b * ↑b_1) ^ 2)⁻¹ = (1 + (b * ↑0) ^ 2)⁻¹ + ∑' (b_1 : ℕ), (1 + (b * ↑(b_1 + 1)) ^ 2)⁻¹⊢ ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ + ∑' (n : ℕ), (1 + (b * (↑n + 1)) ^ 2)⁻¹ ≤ 1 + π / b
have he : (∑' n : ℕ, (1 + (b * (↑n + 1)) ^ 2)⁻¹) =
(∑' n : ℕ, (1 + (b * (n : ℝ)) ^ 2)⁻¹) - 1 := byb:ℝhb:0 < b⊢ ∑' (n : ℤ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / b
apply eq_sub_iff_add_eq.mprb:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹hneg:Summable fun n => (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹hz:∑' (b_1 : ℕ), (1 + (b * ↑b_1) ^ 2)⁻¹ = (1 + (b * ↑0) ^ 2)⁻¹ + ∑' (b_1 : ℕ), (1 + (b * ↑(b_1 + 1)) ^ 2)⁻¹⊢ ∑' (n : ℕ), (1 + (b * (↑n + 1)) ^ 2)⁻¹ + 1 = ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹
simpa [add_comm] using hz.symmb:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹hneg:Summable fun n => (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹hz:∑' (b_1 : ℕ), (1 + (b * ↑b_1) ^ 2)⁻¹ = (1 + (b * ↑0) ^ 2)⁻¹ + ∑' (b_1 : ℕ), (1 + (b * ↑(b_1 + 1)) ^ 2)⁻¹he:∑' (n : ℕ), (1 + (b * (↑n + 1)) ^ 2)⁻¹ = ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ - 1⊢ ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ + ∑' (n : ℕ), (1 + (b * (↑n + 1)) ^ 2)⁻¹ ≤ 1 + π / b
rw [heb:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹hneg:Summable fun n => (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹hz:∑' (b_1 : ℕ), (1 + (b * ↑b_1) ^ 2)⁻¹ = (1 + (b * ↑0) ^ 2)⁻¹ + ∑' (b_1 : ℕ), (1 + (b * ↑(b_1 + 1)) ^ 2)⁻¹he:∑' (n : ℕ), (1 + (b * (↑n + 1)) ^ 2)⁻¹ = ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ - 1⊢ ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ + (∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ - 1) ≤ 1 + π / b]b:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹hneg:Summable fun n => (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹hz:∑' (b_1 : ℕ), (1 + (b * ↑b_1) ^ 2)⁻¹ = (1 + (b * ↑0) ^ 2)⁻¹ + ∑' (b_1 : ℕ), (1 + (b * ↑(b_1 + 1)) ^ 2)⁻¹he:∑' (n : ℕ), (1 + (b * (↑n + 1)) ^ 2)⁻¹ = ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ - 1⊢ ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ + (∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ - 1) ≤ 1 + π / b
have := scaled_cauchy_nat_bound b hbb:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹hneg:Summable fun n => (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹hz:∑' (b_1 : ℕ), (1 + (b * ↑b_1) ^ 2)⁻¹ = (1 + (b * ↑0) ^ 2)⁻¹ + ∑' (b_1 : ℕ), (1 + (b * ↑(b_1 + 1)) ^ 2)⁻¹he:∑' (n : ℕ), (1 + (b * (↑n + 1)) ^ 2)⁻¹ = ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ - 1this:∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / (2 * b)⊢ ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ + (∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ - 1) ≤ 1 + π / b
have hh : Real.pi / (2 * b) = (Real.pi / b) / 2 := byb:ℝhb:0 < b⊢ ∑' (n : ℤ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / b ringb:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹hneg:Summable fun n => (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹hz:∑' (b_1 : ℕ), (1 + (b * ↑b_1) ^ 2)⁻¹ = (1 + (b * ↑0) ^ 2)⁻¹ + ∑' (b_1 : ℕ), (1 + (b * ↑(b_1 + 1)) ^ 2)⁻¹he:∑' (n : ℕ), (1 + (b * (↑n + 1)) ^ 2)⁻¹ = ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ - 1this:∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / (2 * b)hh:π / (2 * b) = π / b / 2⊢ ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ + (∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ - 1) ≤ 1 + π / b
rw [hhb:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹hneg:Summable fun n => (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹hz:∑' (b_1 : ℕ), (1 + (b * ↑b_1) ^ 2)⁻¹ = (1 + (b * ↑0) ^ 2)⁻¹ + ∑' (b_1 : ℕ), (1 + (b * ↑(b_1 + 1)) ^ 2)⁻¹he:∑' (n : ℕ), (1 + (b * (↑n + 1)) ^ 2)⁻¹ = ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ - 1this:∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / b / 2hh:π / (2 * b) = π / b / 2⊢ ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ + (∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ - 1) ≤ 1 + π / b] at thisb:ℝhb:0 < bhs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hs1:Summable fun n => (1 + (b * ↑(n + 1)) ^ 2)⁻¹hneg:Summable fun n => (1 + (b * ↑(-(↑n + 1))) ^ 2)⁻¹hz:∑' (b_1 : ℕ), (1 + (b * ↑b_1) ^ 2)⁻¹ = (1 + (b * ↑0) ^ 2)⁻¹ + ∑' (b_1 : ℕ), (1 + (b * ↑(b_1 + 1)) ^ 2)⁻¹he:∑' (n : ℕ), (1 + (b * (↑n + 1)) ^ 2)⁻¹ = ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ - 1this:∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / b / 2hh:π / (2 * b) = π / b / 2⊢ ∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ + (∑' (n : ℕ), (1 + (b * ↑n) ^ 2)⁻¹ - 1) ≤ 1 + π / b
linarithAll goals completed! 🐙open ConcreteTraceCRT ActualEisensteinCubictheorem scaled_eisenstein_cauchy_summable (K : ℝ) (hK : 0 < K) :
Summable (fun h : O => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) := byK:ℝhK:0 < K⊢ Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹
let b := Real.sqrt KK:ℝhK:0 < Kb:ℝ := √K⊢ Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹
have hb : 0 < b := Real.sqrt_pos.mpr hKK:ℝhK:0 < Kb:ℝ := √Khb:0 < b⊢ Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹
have hbsq : b ^ 2 = K := Real.sq_sqrt hK.leK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = K⊢ Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹
have hs := summable_scaled_cauchy_int b hbK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹⊢ Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹
have hp := hs.mul_of_nonneg hs (fun _ => byK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹x✝:ℤ⊢ 0 x✝ ≤ (fun n => (1 + (b * ↑n) ^ 2)⁻¹) x✝ positivityAll goals completed! 🐙) (fun _ => byK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹x✝:ℤ⊢ 0 x✝ ≤ (1 + (b * ↑x✝) ^ 2)⁻¹ positivityAll goals completed! 🐙)K:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹⊢ Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹
apply (latticeCoordEquiv.symm.summable_iff).mpK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹⊢ Summable ((fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ ⇑latticeCoordEquiv.symm)
change Summable (fun p : ℤ × ℤ =>
((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹)K:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹⊢ Summable fun p => ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹
apply Summable.of_nonneg_of_le (fun _ => byK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹x✝:ℤ × ℤ⊢ 0 ≤ ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm x✝)‖ ^ 2) ^ 2)⁻¹ positivityAll goals completed! 🐙) _ (hp.mul_left 4)
intro pK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹p:ℤ × ℤ⊢ ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹ ≤ 4 * ((1 + (b * ↑p.1) ^ 2)⁻¹ * (1 + (b * ↑p.2) ^ 2)⁻¹)
apply inverse_square_le_cauchy_product (b * (p.1 : ℝ)) (b * (p.2 : ℝ))
(K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) (byK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹p:ℤ × ℤ⊢ 0 ≤ K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2 positivityAll goals completed! 🐙)
change ((b * (p.1 : ℝ)) ^ 2 + (b * (p.2 : ℝ)) ^ 2) / 2 ≤
K * ‖eisEmbedding (ActualEisensteinCoordinates.eval p.1 p.2)‖ ^ 2K:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹p:ℤ × ℤ⊢ ((b * ↑p.1) ^ 2 + (b * ↑p.2) ^ 2) / 2 ≤ K * ‖eisEmbedding (ActualEisensteinCoordinates.eval p.1 p.2)‖ ^ 2
rw [eisEmbedding_eval_norm_sqK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹p:ℤ × ℤ⊢ ((b * ↑p.1) ^ 2 + (b * ↑p.2) ^ 2) / 2 ≤ K * ↑(p.1 * p.1 - p.1 * p.2 + p.2 * p.2)]K:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹p:ℤ × ℤ⊢ ((b * ↑p.1) ^ 2 + (b * ↑p.2) ^ 2) / 2 ≤ K * ↑(p.1 * p.1 - p.1 * p.2 + p.2 * p.2)
push_castK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹p:ℤ × ℤ⊢ ((b * ↑p.1) ^ 2 + (b * ↑p.2) ^ 2) / 2 ≤ K * (↑p.1 * ↑p.1 - ↑p.1 * ↑p.2 + ↑p.2 * ↑p.2)
nlinarith [mul_nonneg hK.le (sq_nonneg ((p.1 : ℝ) - (p.2 : ℝ)))]All goals completed! 🐙theorem scaled_eisenstein_cauchy_bound (K : ℝ) (hK : 0 < K) :
(∑' h : O, ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ≤
4 * (1 + Real.pi / Real.sqrt K) ^ 2 := byK:ℝhK:0 < K⊢ ∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2
let b := Real.sqrt KK:ℝhK:0 < Kb:ℝ := √K⊢ ∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2
have hb : 0 < b := Real.sqrt_pos.mpr hKK:ℝhK:0 < Kb:ℝ := √Khb:0 < b⊢ ∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2
have hbsq : b ^ 2 = K := Real.sq_sqrt hK.leK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = K⊢ ∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2
have hs := summable_scaled_cauchy_int b hbK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹⊢ ∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2
have hp := hs.mul_of_nonneg hs (fun _ => byK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹x✝:ℤ⊢ 0 x✝ ≤ (fun n => (1 + (b * ↑n) ^ 2)⁻¹) x✝ positivityAll goals completed! 🐙) (fun _ => byK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹x✝:ℤ⊢ 0 x✝ ≤ (1 + (b * ↑x✝) ^ 2)⁻¹ positivityAll goals completed! 🐙)K:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹⊢ ∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2
have he : (∑' h : O, ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) =
∑' p : ℤ × ℤ, ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹ :=
(latticeCoordEquiv.symm.tsum_eq _).symmK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹⊢ ∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2
rw [heK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹⊢ ∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2]K:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹⊢ ∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2
calc
_ ≤ ∑' p : ℤ × ℤ, 4 * ((1 + (b * (p.1 : ℝ)) ^ 2)⁻¹ *
(1 + (b * (p.2 : ℝ)) ^ 2)⁻¹) := byK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹⊢ ∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹ ≤
∑' (p : ℤ × ℤ), 4 * ((1 + (b * ↑p.1) ^ 2)⁻¹ * (1 + (b * ↑p.2) ^ 2)⁻¹)
apply ((latticeCoordEquiv.symm.summable_iff).mpr
(scaled_eisenstein_cauchy_summable K hK)).tsum_le_tsum _ (hp.mul_left 4)K:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹⊢ ∀ (i : ℤ × ℤ),
((fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ ⇑latticeCoordEquiv.symm) i ≤
4 * ((1 + (b * ↑i.1) ^ 2)⁻¹ * (1 + (b * ↑i.2) ^ 2)⁻¹)
intro pK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹p:ℤ × ℤ⊢ ((fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ ⇑latticeCoordEquiv.symm) p ≤
4 * ((1 + (b * ↑p.1) ^ 2)⁻¹ * (1 + (b * ↑p.2) ^ 2)⁻¹)
apply inverse_square_le_cauchy_product _ _ _ (byK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹p:ℤ × ℤ⊢ 0 ≤ K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2 positivityAll goals completed! 🐙)
change ((b * (p.1 : ℝ)) ^ 2 + (b * (p.2 : ℝ)) ^ 2) / 2 ≤
K * ‖eisEmbedding (ActualEisensteinCoordinates.eval p.1 p.2)‖ ^ 2K:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹p:ℤ × ℤ⊢ ((b * ↑p.1) ^ 2 + (b * ↑p.2) ^ 2) / 2 ≤ K * ‖eisEmbedding (ActualEisensteinCoordinates.eval p.1 p.2)‖ ^ 2
rw [eisEmbedding_eval_norm_sqK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹p:ℤ × ℤ⊢ ((b * ↑p.1) ^ 2 + (b * ↑p.2) ^ 2) / 2 ≤ K * ↑(p.1 * p.1 - p.1 * p.2 + p.2 * p.2)]K:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹p:ℤ × ℤ⊢ ((b * ↑p.1) ^ 2 + (b * ↑p.2) ^ 2) / 2 ≤ K * ↑(p.1 * p.1 - p.1 * p.2 + p.2 * p.2)
push_castK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹p:ℤ × ℤ⊢ ((b * ↑p.1) ^ 2 + (b * ↑p.2) ^ 2) / 2 ≤ K * (↑p.1 * ↑p.1 - ↑p.1 * ↑p.2 + ↑p.2 * ↑p.2)
nlinarith [mul_nonneg hK.le (sq_nonneg ((p.1 : ℝ) - (p.2 : ℝ)))]All goals completed! 🐙
_ = 4 * (∑' n : ℤ, (1 + (b * (n : ℝ)) ^ 2)⁻¹) ^ 2 := byK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹⊢ ∑' (p : ℤ × ℤ), 4 * ((1 + (b * ↑p.1) ^ 2)⁻¹ * (1 + (b * ↑p.2) ^ 2)⁻¹) = 4 * (∑' (n : ℤ), (1 + (b * ↑n) ^ 2)⁻¹) ^ 2
rw [tsum_mul_left,K:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹⊢ 4 * ∑' (x : ℤ × ℤ), (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹ = 4 * (∑' (n : ℤ), (1 + (b * ↑n) ^ 2)⁻¹) ^ 2 ← hs.tsum_mul_tsum hs hp,K:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹⊢ 4 * ((∑' (x : ℤ), (1 + (b * ↑x) ^ 2)⁻¹) * ∑' (y : ℤ), (1 + (b * ↑y) ^ 2)⁻¹) = 4 * (∑' (n : ℤ), (1 + (b * ↑n) ^ 2)⁻¹) ^ 2 pow_twoK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹⊢ 4 * ((∑' (x : ℤ), (1 + (b * ↑x) ^ 2)⁻¹) * ∑' (y : ℤ), (1 + (b * ↑y) ^ 2)⁻¹) =
4 * ((∑' (n : ℤ), (1 + (b * ↑n) ^ 2)⁻¹) * ∑' (n : ℤ), (1 + (b * ↑n) ^ 2)⁻¹)]All goals completed! 🐙
_ ≤ 4 * (1 + Real.pi / b) ^ 2 := byK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹⊢ 4 * (∑' (n : ℤ), (1 + (b * ↑n) ^ 2)⁻¹) ^ 2 ≤ 4 * (1 + π / b) ^ 2
gcongrhabK:ℝhK:0 < Kb:ℝ := √Khb:0 < bhbsq:b ^ 2 = Khs:Summable fun n => (1 + (b * ↑n) ^ 2)⁻¹hp:Summable fun x => (1 + (b * ↑x.1) ^ 2)⁻¹ * (1 + (b * ↑x.2) ^ 2)⁻¹he:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ =
∑' (p : ℤ × ℤ), ((1 + K * ‖eisEmbedding (latticeCoordEquiv.symm p)‖ ^ 2) ^ 2)⁻¹⊢ ∑' (n : ℤ), (1 + (b * ↑n) ^ 2)⁻¹ ≤ 1 + π / b
exact scaled_cauchy_int_bound b hbAll goals completed! 🐙theorem scaled_eisenstein_cauchy_small (K : ℝ) (hK : 0 < K) (hK1 : K ≤ 1) :
K * (∑' h : O, ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ≤
4 * (1 + Real.pi) ^ 2 := byK:ℝhK:0 < KhK1:K ≤ 1⊢ K * ∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π) ^ 2
have hs := scaled_eisenstein_cauchy_bound K hKK:ℝhK:0 < KhK1:K ≤ 1hs:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2⊢ K * ∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π) ^ 2
have hb : 0 < Real.sqrt K := Real.sqrt_pos.mpr hKK:ℝhK:0 < KhK1:K ≤ 1hs:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2hb:0 < √K⊢ K * ∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π) ^ 2
have hb1 : Real.sqrt K ≤ 1 := by simpa using Real.sqrt_le_sqrt hK1K:ℝhK:0 < KhK1:K ≤ 1hs:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2hb:0 < √Khb1:√K ≤ 1⊢ K * ∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π) ^ 2
have hsq := Real.sq_sqrt hK.leK:ℝhK:0 < KhK1:K ≤ 1hs:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2hb:0 < √Khb1:√K ≤ 1hsq:√K ^ 2 = K⊢ K * ∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π) ^ 2
calc
_ ≤ K * (4 * (1 + Real.pi / Real.sqrt K) ^ 2) :=
mul_le_mul_of_nonneg_left hs hK.le
_ = 4 * (Real.sqrt K + Real.pi) ^ 2 := byK:ℝhK:0 < KhK1:K ≤ 1hs:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2hb:0 < √Khb1:√K ≤ 1hsq:√K ^ 2 = K⊢ K * (4 * (1 + π / √K) ^ 2) = 4 * (√K + π) ^ 2
nth_rw 1 [← hsqK:ℝhK:0 < KhK1:K ≤ 1hs:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2hb:0 < √Khb1:√K ≤ 1hsq:√K ^ 2 = K⊢ √K ^ 2 * (4 * (1 + π / √K) ^ 2) = 4 * (√K + π) ^ 2]K:ℝhK:0 < KhK1:K ≤ 1hs:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2hb:0 < √Khb1:√K ≤ 1hsq:√K ^ 2 = K⊢ √K ^ 2 * (4 * (1 + π / √K) ^ 2) = 4 * (√K + π) ^ 2
field_simpAll goals completed! 🐙
_ ≤ _ := byK:ℝhK:0 < KhK1:K ≤ 1hs:∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ ≤ 4 * (1 + π / √K) ^ 2hb:0 < √Khb1:√K ≤ 1hsq:√K ^ 2 = K⊢ 4 * (√K + π) ^ 2 ≤ 4 * (1 + π) ^ 2 gcongrAll goals completed! 🐙theorem one_le_eisenstein_norm_sq (h : O) (hh : h ≠ 0) :
1 ≤ ‖eisEmbedding h‖ ^ 2 := byh:Ohh:h ≠ 0⊢ 1 ≤ ‖eisEmbedding h‖ ^ 2
rw [eisEmbedding_norm_sq_eq_absNorm_spanh:Ohh:h ≠ 0⊢ 1 ≤ ↑(absNorm (span {h}))]h:Ohh:h ≠ 0⊢ 1 ≤ ↑(absNorm (span {h}))
exact_mod_cast Nat.one_le_iff_ne_zero.mpr (show Ideal.absNorm (Ideal.span {h}) ≠ 0 byh:Ohh:h ≠ 0⊢ 1 ≤ ‖eisEmbedding h‖ ^ 2
rw [ne_eq,h:Ohh:h ≠ 0⊢ ¬absNorm (span {h}) = 0 Ideal.absNorm_eq_zero_iff,h:Ohh:h ≠ 0⊢ ¬span {h} = ⊥ Ideal.span_singleton_eq_both:Ohh:h ≠ 0⊢ ¬h = 0]h:Ohh:h ≠ 0⊢ ¬h = 0
exact hhAll goals completed! 🐙)theorem cauchy_large_scale_pointwise (K q : ℝ) (hK : 1 ≤ K) (hq : 1 ≤ q) :
K * ((1 + K * q) ^ 2)⁻¹ ≤ 4 * ((1 + q) ^ 2)⁻¹ := byK:ℝq:ℝhK:1 ≤ Khq:1 ≤ q⊢ K * ((1 + K * q) ^ 2)⁻¹ ≤ 4 * ((1 + q) ^ 2)⁻¹
have hKp : 0 < K := by linarithK:ℝq:ℝhK:1 ≤ Khq:1 ≤ qhKp:0 < K⊢ K * ((1 + K * q) ^ 2)⁻¹ ≤ 4 * ((1 + q) ^ 2)⁻¹
have hqp : 0 < q := by linarithK:ℝq:ℝhK:1 ≤ Khq:1 ≤ qhKp:0 < Khqp:0 < q⊢ K * ((1 + K * q) ^ 2)⁻¹ ≤ 4 * ((1 + q) ^ 2)⁻¹
have h1 : K * (1 + q) ≤ 2 * (1 + K * q) := by nlinarithK:ℝq:ℝhK:1 ≤ Khq:1 ≤ qhKp:0 < Khqp:0 < qh1:K * (1 + q) ≤ 2 * (1 + K * q)⊢ K * ((1 + K * q) ^ 2)⁻¹ ≤ 4 * ((1 + q) ^ 2)⁻¹
have h2 := pow_le_pow_left₀ (byK:ℝq:ℝhK:1 ≤ Khq:1 ≤ qhKp:0 < Khqp:0 < qh1:K * (1 + q) ≤ 2 * (1 + K * q)⊢ 0 ≤ K * (1 + q) positivityAll goals completed! 🐙 : 0 ≤ K * (1 + q)) h1 2K:ℝq:ℝhK:1 ≤ Khq:1 ≤ qhKp:0 < Khqp:0 < qh1:K * (1 + q) ≤ 2 * (1 + K * q)h2:(K * (1 + q)) ^ 2 ≤ (2 * (1 + K * q)) ^ 2⊢ K * ((1 + K * q) ^ 2)⁻¹ ≤ 4 * ((1 + q) ^ 2)⁻¹
have h3 : K * (1 + q) ^ 2 ≤ K ^ 2 * (1 + q) ^ 2 := by
nlinarith [sq_nonneg (1 + q)]K:ℝq:ℝhK:1 ≤ Khq:1 ≤ qhKp:0 < Khqp:0 < qh1:K * (1 + q) ≤ 2 * (1 + K * q)h2:(K * (1 + q)) ^ 2 ≤ (2 * (1 + K * q)) ^ 2h3:K * (1 + q) ^ 2 ≤ K ^ 2 * (1 + q) ^ 2⊢ K * ((1 + K * q) ^ 2)⁻¹ ≤ 4 * ((1 + q) ^ 2)⁻¹
apply (div_le_div_iff₀ (byK:ℝq:ℝhK:1 ≤ Khq:1 ≤ qhKp:0 < Khqp:0 < qh1:K * (1 + q) ≤ 2 * (1 + K * q)h2:(K * (1 + q)) ^ 2 ≤ (2 * (1 + K * q)) ^ 2h3:K * (1 + q) ^ 2 ≤ K ^ 2 * (1 + q) ^ 2⊢ 0 < (1 + K * q) ^ 2 positivityAll goals completed! 🐙 : 0 < (1 + K * q) ^ 2)
(byK:ℝq:ℝhK:1 ≤ Khq:1 ≤ qhKp:0 < Khqp:0 < qh1:K * (1 + q) ≤ 2 * (1 + K * q)h2:(K * (1 + q)) ^ 2 ≤ (2 * (1 + K * q)) ^ 2h3:K * (1 + q) ^ 2 ≤ K ^ 2 * (1 + q) ^ 2⊢ 0 < (1 + q) ^ 2 positivityAll goals completed! 🐙 : 0 < (1 + q) ^ 2)).mpr
nlinarithAll goals completed! 🐙theorem lattice_profile_nonzero_scaled_bound
(F : ℝ → ℂ) (B : ℝ) (hB : 0 ≤ B)
(hF : ∀ t : ℝ, 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ B)
(K : ℝ) (hK : 0 < K) :
K * (∑' h : {h : O // h ≠ 0}, ‖F (K * ‖eisEmbedding h.val‖ ^ 2)‖) ≤
(4 * (1 + Real.pi) ^ 2 + 4 * eisensteinCauchyMass) * B := byF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < K⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B
have hm (h : O) : ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤
B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹ := by
rw [← div_eq_mul_invF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Kh:O⊢ ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B / (1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2]F:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Kh:O⊢ ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B / (1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2
apply (le_div_iff₀ (byF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Kh:O⊢ 0 < (1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2 positivityAll goals completed! 🐙)).mpr
simpa only [mul_comm] using hF (K * ‖eisEmbedding h‖ ^ 2) (byF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Kh:O⊢ 0 ≤ K * ‖eisEmbedding h‖ ^ 2 positivityAll goals completed! 🐙)F:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B
have hs := scaled_eisenstein_cauchy_summable K hKF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B
have hf : Summable (fun h : O => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) :=
Summable.of_nonneg_of_le (fun _ => norm_nonneg _) hm (hs.mul_left B)F:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B
have hsub := hf.subtype (fun h : O => h ≠ 0)F:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B
have hc := eisenstein_cauchy_summable.subtype (fun h : O => h ≠ 0)F:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B
by_cases hK1 : K ≤ 1posF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:K ≤ 1⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * BnegF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:¬K ≤ 1⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B
·posF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:K ≤ 1⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B have htotal : (∑' h : {h : O // h ≠ 0}, ‖F (K * ‖eisEmbedding h.val‖ ^ 2)‖) ≤
∑' h : O, ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ :=
hsub.tsum_le_tsum_of_inj Subtype.val Subtype.val_injective
(fun _ _ => norm_nonneg _) (fun _ => le_rfl) hfposF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:K ≤ 1htotal:∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ ∑' (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B
have hbound := hf.tsum_le_tsum hm (hs.mul_left B)posF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:K ≤ 1htotal:∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ ∑' (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hbound:∑' (i : O), ‖F (K * ‖eisEmbedding i‖ ^ 2)‖ ≤ ∑' (i : O), B * ((1 + K * ‖eisEmbedding i‖ ^ 2) ^ 2)⁻¹⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B
rw [tsum_mul_leftposF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:K ≤ 1htotal:∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ ∑' (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hbound:∑' (i : O), ‖F (K * ‖eisEmbedding i‖ ^ 2)‖ ≤ B * ∑' (x : O), ((1 + K * ‖eisEmbedding x‖ ^ 2) ^ 2)⁻¹⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B] at hboundposF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:K ≤ 1htotal:∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ ∑' (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hbound:∑' (i : O), ‖F (K * ‖eisEmbedding i‖ ^ 2)‖ ≤ B * ∑' (x : O), ((1 + K * ‖eisEmbedding x‖ ^ 2) ^ 2)⁻¹⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B
calc
_ ≤ K * (B * ∑' h : O, ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) :=
mul_le_mul_of_nonneg_left (htotal.trans hbound) hK.le
_ = B * (K * ∑' h : O, ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) := byF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:K ≤ 1htotal:∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ ∑' (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hbound:∑' (i : O), ‖F (K * ‖eisEmbedding i‖ ^ 2)‖ ≤ B * ∑' (x : O), ((1 + K * ‖eisEmbedding x‖ ^ 2) ^ 2)⁻¹⊢ K * (B * ∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) =
B * (K * ∑' (h : O), ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ringAll goals completed! 🐙
_ ≤ B * (4 * (1 + Real.pi) ^ 2) :=
mul_le_mul_of_nonneg_left (scaled_eisenstein_cauchy_small K hK hK1) hB
_ ≤ _ := byF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:K ≤ 1htotal:∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ ∑' (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hbound:∑' (i : O), ‖F (K * ‖eisEmbedding i‖ ^ 2)‖ ≤ B * ∑' (x : O), ((1 + K * ‖eisEmbedding x‖ ^ 2) ^ 2)⁻¹⊢ B * (4 * (1 + π) ^ 2) ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B nlinarith [eisensteinCauchyMass_nonneg]All goals completed! 🐙
·negF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:¬K ≤ 1⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B have hp (h : {h : O // h ≠ 0}) :
K * ‖F (K * ‖eisEmbedding h.val‖ ^ 2)‖ ≤
(4 * B) * ((1 + ‖eisEmbedding h.val‖ ^ 2) ^ 2)⁻¹ := by
calc
_ ≤ K * (B * ((1 + K * ‖eisEmbedding h.val‖ ^ 2) ^ 2)⁻¹) :=
mul_le_mul_of_nonneg_left (hm h.val) hK.le
_ = B * (K * ((1 + K * ‖eisEmbedding h.val‖ ^ 2) ^ 2)⁻¹) := byF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:¬K ≤ 1h:{ h // h ≠ 0 }⊢ K * (B * ((1 + K * ‖eisEmbedding ↑h‖ ^ 2) ^ 2)⁻¹) = B * (K * ((1 + K * ‖eisEmbedding ↑h‖ ^ 2) ^ 2)⁻¹) ringAll goals completed! 🐙
_ ≤ B * (4 * ((1 + ‖eisEmbedding h.val‖ ^ 2) ^ 2)⁻¹) :=
mul_le_mul_of_nonneg_left (cauchy_large_scale_pointwise K _
(le_of_not_ge hK1) (one_le_eisenstein_norm_sq h.val h.property)) hB
_ = _ := byF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:¬K ≤ 1h:{ h // h ≠ 0 }⊢ B * (4 * ((1 + ‖eisEmbedding ↑h‖ ^ 2) ^ 2)⁻¹) = 4 * B * ((1 + ‖eisEmbedding ↑h‖ ^ 2) ^ 2)⁻¹ ringnegF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:¬K ≤ 1hp:∀ (h : { h // h ≠ 0 }), K * ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ 4 * B * ((1 + ‖eisEmbedding ↑h‖ ^ 2) ^ 2)⁻¹⊢ K * ∑' (h : { h // h ≠ 0 }), ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B
calc
_ = ∑' h : {h : O // h ≠ 0}, K * ‖F (K * ‖eisEmbedding h.val‖ ^ 2)‖ := tsum_mul_left.symm
_ ≤ ∑' h : {h : O // h ≠ 0}, (4 * B) * ((1 + ‖eisEmbedding h.val‖ ^ 2) ^ 2)⁻¹ :=
(hsub.mul_left K).tsum_le_tsum hp (hc.mul_left (4 * B))
_ = (4 * B) * ∑' h : {h : O // h ≠ 0}, ((1 + ‖eisEmbedding h.val‖ ^ 2) ^ 2)⁻¹ := tsum_mul_left
_ ≤ (4 * B) * eisensteinCauchyMass := mul_le_mul_of_nonneg_left
(eisensteinCauchyMass_subtype (fun h : O => h ≠ 0)) (byF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:¬K ≤ 1hp:∀ (h : { h // h ≠ 0 }), K * ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ 4 * B * ((1 + ‖eisEmbedding ↑h‖ ^ 2) ^ 2)⁻¹⊢ 0 ≤ 4 * B positivityAll goals completed! 🐙)
_ ≤ _ := byF:ℝ → ℂB:ℝhB:0 ≤ BhF:∀ (t : ℝ), 0 ≤ t → (1 + t) ^ 2 * ‖F t‖ ≤ BK:ℝhK:0 < Khm:∀ (h : O), ‖F (K * ‖eisEmbedding h‖ ^ 2)‖ ≤ B * ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hs:Summable fun h => ((1 + K * ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹hf:Summable fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖hsub:Summable ((fun h => ‖F (K * ‖eisEmbedding h‖ ^ 2)‖) ∘ Subtype.val)hc:Summable ((fun h => ((1 + ‖eisEmbedding h‖ ^ 2) ^ 2)⁻¹) ∘ Subtype.val)hK1:¬K ≤ 1hp:∀ (h : { h // h ≠ 0 }), K * ‖F (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤ 4 * B * ((1 + ‖eisEmbedding ↑h‖ ^ 2) ^ 2)⁻¹⊢ 4 * B * eisensteinCauchyMass ≤ (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * B nlinarith [sq_nonneg (1 + Real.pi)]All goals completed! 🐙theorem paperRadialFourier_nonzero_lattice_uniform :
∃ (s : Finset (ℕ × ℕ)) (C : ℝ), 0 < C ∧
∀ (W : SchwartzMap ℝ ℂ) (K : ℝ), 0 < K →
K * (∑' h : {h : O // h ≠ 0},
‖paperRadialFourier W (K * ‖eisEmbedding h.val‖ ^ 2)‖) ≤
C * s.sup (schwartzSeminormFamily ℝ ℝ ℂ) W := by⊢ ∃ s C,
0 < C ∧
∀ (W : 𝓢(ℝ, ℂ)) (K : ℝ),
0 < K →
K * ∑' (h : { h // h ≠ 0 }), ‖paperRadialFourier (⇑W) (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤
C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) W
obtain ⟨s, C, hC, hb⟩ := paperRadialFourier_source_weighted_bound 2s:Finset (ℕ × ℕ)C:ℝhC:0 < Chb:∀ (W : 𝓢(ℝ, ℂ)) (t : ℝ),
0 ≤ t → (1 + t) ^ 2 * ‖paperRadialFourier (⇑W) t‖ ≤ C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) W⊢ ∃ s C,
0 < C ∧
∀ (W : 𝓢(ℝ, ℂ)) (K : ℝ),
0 < K →
K * ∑' (h : { h // h ≠ 0 }), ‖paperRadialFourier (⇑W) (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤
C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) W
refine ⟨s, (4 * (1 + Real.pi) ^ 2 + 4 * eisensteinCauchyMass) * C, ?_, ?_⟩refine_1s:Finset (ℕ × ℕ)C:ℝhC:0 < Chb:∀ (W : 𝓢(ℝ, ℂ)) (t : ℝ),
0 ≤ t → (1 + t) ^ 2 * ‖paperRadialFourier (⇑W) t‖ ≤ C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) W⊢ 0 < (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * Crefine_2s:Finset (ℕ × ℕ)C:ℝhC:0 < Chb:∀ (W : 𝓢(ℝ, ℂ)) (t : ℝ),
0 ≤ t → (1 + t) ^ 2 * ‖paperRadialFourier (⇑W) t‖ ≤ C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) W⊢ ∀ (W : 𝓢(ℝ, ℂ)) (K : ℝ),
0 < K →
K * ∑' (h : { h // h ≠ 0 }), ‖paperRadialFourier (⇑W) (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤
(4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) W
·refine_1s:Finset (ℕ × ℕ)C:ℝhC:0 < Chb:∀ (W : 𝓢(ℝ, ℂ)) (t : ℝ),
0 ≤ t → (1 + t) ^ 2 * ‖paperRadialFourier (⇑W) t‖ ≤ C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) W⊢ 0 < (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * C have := eisensteinCauchyMass_nonnegrefine_1s:Finset (ℕ × ℕ)C:ℝhC:0 < Chb:∀ (W : 𝓢(ℝ, ℂ)) (t : ℝ),
0 ≤ t → (1 + t) ^ 2 * ‖paperRadialFourier (⇑W) t‖ ≤ C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) Wthis:0 ≤ eisensteinCauchyMass⊢ 0 < (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * C
have := Real.pi_posrefine_1s:Finset (ℕ × ℕ)C:ℝhC:0 < Chb:∀ (W : 𝓢(ℝ, ℂ)) (t : ℝ),
0 ≤ t → (1 + t) ^ 2 * ‖paperRadialFourier (⇑W) t‖ ≤ C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) Wthis✝:0 ≤ eisensteinCauchyMassthis:0 < π⊢ 0 < (4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * C
positivityAll goals completed! 🐙
·refine_2s:Finset (ℕ × ℕ)C:ℝhC:0 < Chb:∀ (W : 𝓢(ℝ, ℂ)) (t : ℝ),
0 ≤ t → (1 + t) ^ 2 * ‖paperRadialFourier (⇑W) t‖ ≤ C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) W⊢ ∀ (W : 𝓢(ℝ, ℂ)) (K : ℝ),
0 < K →
K * ∑' (h : { h // h ≠ 0 }), ‖paperRadialFourier (⇑W) (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤
(4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) W intro W K hKrefine_2s:Finset (ℕ × ℕ)C:ℝhC:0 < Chb:∀ (W : 𝓢(ℝ, ℂ)) (t : ℝ),
0 ≤ t → (1 + t) ^ 2 * ‖paperRadialFourier (⇑W) t‖ ≤ C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) WW:𝓢(ℝ, ℂ)K:ℝhK:0 < K⊢ K * ∑' (h : { h // h ≠ 0 }), ‖paperRadialFourier (⇑W) (K * ‖eisEmbedding ↑h‖ ^ 2)‖ ≤
(4 * (1 + π) ^ 2 + 4 * eisensteinCauchyMass) * C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) W
simpa only [mul_assoc] using lattice_profile_nonzero_scaled_bound
(paperRadialFourier W) (C * s.sup (schwartzSeminormFamily ℝ ℝ ℂ) W)
(bys:Finset (ℕ × ℕ)C:ℝhC:0 < Chb:∀ (W : 𝓢(ℝ, ℂ)) (t : ℝ),
0 ≤ t → (1 + t) ^ 2 * ‖paperRadialFourier (⇑W) t‖ ≤ C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) WW:𝓢(ℝ, ℂ)K:ℝhK:0 < K⊢ 0 ≤ C * (s.sup (schwartzSeminormFamily ℝ ℝ ℂ)) W positivityAll goals completed! 🐙) (hb W) K hKend EisensteinSchwartzPoissonendend OAI