Imports
/-
Copyright (c) 2026 Google LLC. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
-/
module
public import Cryptids.Riemann120
public import Cryptids.Semantics.Riemann.Schmidt
Arithmetic-to-Analytic Bridge & One-Sided Landau Converse for riemann_120
This standalone file establishes the number-theoretic and complex-analytic bridge between the
self-sieving base-n offset digit deficit (ShuniaCounterexample) and Mathlib's
RiemannHypothesis:
Arithmetic & Logarithmic Lemmas:
log_primorial_eq_theta: Real.log (primorial n) = Chebyshev.theta n
log_shuniaProd_eq: Real.log (shuniaProd n) = Real.log (n.factorial) + Chebyshev.theta n
factorial_centering_bounds: n * log n - n + 1 ≤ log (n!) ≤ n * log n - n + 1 + log n
shuniaProd_not_pow: shuniaProd n ≠ n ^ d for all n ≥ 3
pow_sub_one_le_of_offsetDigits and offsetDigits_pow_gt: sharp power sandwiches for
offsetDigits
shuniaDeficit_mul_log_le and self_sub_theta_le_shuniaDeficit_mul_log: two-sided bridge
between shuniaDeficit n * Real.log n and (n : ℝ) - Chebyshev.theta n
Quartering Clock & Unconditional Small-n Verification (2 ≤ n ≤ 21845):
quarterClock_spec:
4 ^ quarterClock (n - 1) ≤ 3 * n ∧ 3 * n < 4 ^ (quarterClock (n - 1) + 1)
not_shuniaCounterexample_of_le_21845: unconditional verification for all 2 ≤ n ≤ 21845
using factorial centering (n ≤ 1365) and Chebyshev's prime lower bound (1366 ≤ n ≤ 21845)
One-Sided Landau Converse (¬ RiemannHypothesis → ∃ n ≥ 2, ShuniaCounterexample n):
Analytic continuation and residue contradiction for psiNegDefect C α t = C * t ^ α + ψ(t) - t
not_riemannHypothesis_imp_exists_shuniaCounterexample
exists_shuniaCounterexample_iff_not_riemannHypothesis_of_large
@[expose] public sectionopen Complex Finset Filter MeasureTheory Asymptotics Set Topology RiemannSchmidtopen scoped Real Topology Nat ENNReal LSeries.notation ArithmeticFunctionnamespace Riemann120Analyticopen ConjectureMachines.Riemann120
(shuniaProd offsetDigits shuniaDeficit quarterClock ShuniaCounterexample)abbrev primorial : ℕ → ℕ := ConjectureMachines.Riemann120.primorial2. Arithmetic & Logarithmic Lemmas
theorem primorial_eq_root_primorial (n : ℕ) : primorial n = _root_.primorial n := n:ℕ⊢ primorial n = _root_.primorial n
n:ℕ⊢ (filter Nat.Prime (Finset.Icc 1 n)).prod id = ∏ p ∈ Finset.range (n + 1) with Nat.Prime p, p
n:ℕ⊢ filter Nat.Prime (Finset.Icc 1 n) = {p ∈ Finset.range (n + 1) | Nat.Prime p}
n:ℕp:ℕ⊢ p ∈ filter Nat.Prime (Finset.Icc 1 n) ↔ p ∈ {p ∈ Finset.range (n + 1) | Nat.Prime p}
n:ℕp:ℕ⊢ (1 ≤ p ∧ p ≤ n) ∧ Nat.Prime p ↔ p < n + 1 ∧ Nat.Prime p
exact ⟨fun ⟨⟨_, h2⟩, hp⟩ ↦ ⟨n:ℕp:ℕx✝:(1 ≤ p ∧ p ≤ n) ∧ Nat.Prime pleft✝:1 ≤ ph2:p ≤ nhp:Nat.Prime p⊢ p < n + 1 All goals completed! 🐙, hp⟩, fun ⟨h2, hp⟩ ↦ ⟨⟨hp.one_le, n:ℕp:ℕx✝:p < n + 1 ∧ Nat.Prime ph2:p < n + 1hp:Nat.Prime p⊢ p ≤ n All goals completed! 🐙⟩, hp⟩⟩theorem primorial_pos (n : ℕ) : 0 < primorial n := n:ℕ⊢ 0 < primorial n
n:ℕ⊢ 0 < _root_.primorial n
exact _root_.primorial_pos n All goals completed! 🐙theorem shuniaProd_pos (n : ℕ) : 0 < shuniaProd n :=
Nat.mul_pos (Nat.factorial_pos n) (primorial_pos n)theorem four_le_shuniaProd {n : ℕ} (hn : 2 ≤ n) : 4 ≤ shuniaProd n := by n:ℕhn:2 ≤ n⊢ 4 ≤ shuniaProd n
have hfac : 2 ≤ n.factorial := by
calc 2 = (2 : ℕ).factorial := rfl
_ ≤ n.factorial := Nat.factorial_le hn n:ℕhn:2 ≤ nhfac:2 ≤ n !⊢ 4 ≤ shuniaProd n
have hprim : 2 ≤ primorial n := by
have hmem : 2 ∈ (Finset.Icc 1 n).filter Nat.Prime :=
mem_filter.mpr ⟨Finset.mem_Icc.mpr ⟨by n:ℕhn:2 ≤ nhfac:2 ≤ n !⊢ 1 ≤ 2 omega All goals completed! 🐙, hn⟩, Nat.prime_two⟩ n:ℕhn:2 ≤ nhfac:2 ≤ n !hmem:2 ∈ filter Nat.Prime (Finset.Icc 1 n)⊢ 2 ≤ primorial n
exact Nat.le_of_dvd (primorial_pos n) (dvd_prod_of_mem id hmem) n:ℕhn:2 ≤ nhfac:2 ≤ n !hprim:2 ≤ primorial n⊢ 4 ≤ shuniaProd n
unfold shuniaProd primorial ConjectureMachines.Riemann120.primorial at * n:ℕhn:2 ≤ nhfac:2 ≤ n !hprim:2 ≤ (filter Nat.Prime (Finset.Icc 1 n)).prod id⊢ 4 ≤ n ! * (filter Nat.Prime (Finset.Icc 1 n)).prod id
nlinarith All goals completed! 🐙
log(P(n)) = θ(n) for every n : ℕ.
theorem log_primorial_eq_theta (n : ℕ) : Real.log (primorial n) = Chebyshev.theta n := by n:ℕ⊢ Real.log ↑(primorial n) = Chebyshev.theta ↑n
rw [primorial_eq_root_primorial, n:ℕ⊢ Real.log ↑(_root_.primorial n) = Chebyshev.theta ↑n Chebyshev.theta_eq_log_primorial, n:ℕ⊢ Real.log ↑(_root_.primorial n) = Real.log ↑(_root_.primorial ⌊↑n⌋₊) Nat.floor_natCast n:ℕ⊢ Real.log ↑(_root_.primorial n) = Real.log ↑(_root_.primorial n)] All goals completed! 🐙
log(A_n) = log(n!) + θ(n) for every n : ℕ.
theorem log_shuniaProd_eq (n : ℕ) :
Real.log (shuniaProd n) = Real.log (n.factorial) + Chebyshev.theta n := by n:ℕ⊢ Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑n
unfold shuniaProd n:ℕ⊢ Real.log ↑(n ! * ConjectureMachines.Riemann120.primorial n) = Real.log ↑n ! + Chebyshev.theta ↑n
rw [Nat.cast_mul, n:ℕ⊢ Real.log (↑n ! * ↑(ConjectureMachines.Riemann120.primorial n)) = Real.log ↑n ! + Chebyshev.theta ↑n Real.log_mul (by n:ℕ⊢ ↑n ! ≠ 0 positivity All goals completed! 🐙) (by n:ℕ⊢ ↑(ConjectureMachines.Riemann120.primorial n) ≠ 0 exact_mod_cast (primorial_pos n).ne' All goals completed! 🐙),
log_primorial_eq_theta n:ℕ⊢ Real.log ↑n ! + Chebyshev.theta ↑n = Real.log ↑n ! + Chebyshev.theta ↑n] All goals completed! 🐙
Elementary step ((k + 1 : ℕ) : ℝ) * (Real.log k - Real.log (k + 1)) ≤ -1 for k ≥ 1.
lemma succ_mul_log_sub_log_succ_le_neg_one {k : ℕ} (hk : 1 ≤ k) :
((k + 1 : ℕ) : ℝ) * (Real.log k - Real.log (k + 1 : ℕ)) ≤ -1 := by k:ℕhk:1 ≤ k⊢ ↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1
have hk_pos : (0 : ℝ) < k := by positivity k:ℕhk:1 ≤ khk_pos:0 < ↑k⊢ ↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1
have hk1_pos : (0 : ℝ) < (k + 1 : ℕ) := by positivity k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)⊢ ↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1
have hdiv_pos : (0 : ℝ) < (k : ℝ) / (k + 1 : ℕ) := div_pos hk_pos hk1_pos k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hdiv_pos:0 < ↑k / ↑(k + 1)⊢ ↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1
have hexp : (-1 / ((k + 1 : ℕ) : ℝ)) + 1 ≤ Real.exp (-1 / ((k + 1 : ℕ) : ℝ)) :=
Real.add_one_le_exp _ k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hdiv_pos:0 < ↑k / ↑(k + 1)hexp:-1 / ↑(k + 1) + 1 ≤ rexp (-1 / ↑(k + 1))⊢ ↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1
have heq : (-1 / ((k + 1 : ℕ) : ℝ)) + 1 = (k : ℝ) / (k + 1 : ℕ) := by
push_cast k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hdiv_pos:0 < ↑k / ↑(k + 1)hexp:-1 / ↑(k + 1) + 1 ≤ rexp (-1 / ↑(k + 1))⊢ -1 / (↑k + 1) + 1 = ↑k / (↑k + 1); field_simp k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hdiv_pos:0 < ↑k / ↑(k + 1)hexp:-1 / ↑(k + 1) + 1 ≤ rexp (-1 / ↑(k + 1))⊢ -1 + (↑k + 1) = ↑k; ring k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hdiv_pos:0 < ↑k / ↑(k + 1)hexp:-1 / ↑(k + 1) + 1 ≤ rexp (-1 / ↑(k + 1))heq:-1 / ↑(k + 1) + 1 = ↑k / ↑(k + 1)⊢ ↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1
rw [heq k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hdiv_pos:0 < ↑k / ↑(k + 1)hexp:↑k / ↑(k + 1) ≤ rexp (-1 / ↑(k + 1))heq:-1 / ↑(k + 1) + 1 = ↑k / ↑(k + 1)⊢ ↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1] at hexp k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hdiv_pos:0 < ↑k / ↑(k + 1)hexp:↑k / ↑(k + 1) ≤ rexp (-1 / ↑(k + 1))heq:-1 / ↑(k + 1) + 1 = ↑k / ↑(k + 1)⊢ ↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1
have hlog : Real.log ((k : ℝ) / (k + 1 : ℕ)) ≤ -1 / ((k + 1 : ℕ) : ℝ) := by
have h1 := Real.log_le_log hdiv_pos hexp k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hdiv_pos:0 < ↑k / ↑(k + 1)hexp:↑k / ↑(k + 1) ≤ rexp (-1 / ↑(k + 1))heq:-1 / ↑(k + 1) + 1 = ↑k / ↑(k + 1)h1:Real.log (↑k / ↑(k + 1)) ≤ Real.log (rexp (-1 / ↑(k + 1)))⊢ Real.log (↑k / ↑(k + 1)) ≤ -1 / ↑(k + 1)
rwa [Real.log_exp] at h1 k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hdiv_pos:0 < ↑k / ↑(k + 1)hexp:↑k / ↑(k + 1) ≤ rexp (-1 / ↑(k + 1))heq:-1 / ↑(k + 1) + 1 = ↑k / ↑(k + 1)hlog:Real.log (↑k / ↑(k + 1)) ≤ -1 / ↑(k + 1)⊢ ↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1
have hmul : ((k + 1 : ℕ) : ℝ) * Real.log ((k : ℝ) / (k + 1 : ℕ)) ≤ -1 := by
have h := mul_le_mul_of_nonneg_left hlog hk1_pos.le k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hdiv_pos:0 < ↑k / ↑(k + 1)hexp:↑k / ↑(k + 1) ≤ rexp (-1 / ↑(k + 1))heq:-1 / ↑(k + 1) + 1 = ↑k / ↑(k + 1)hlog:Real.log (↑k / ↑(k + 1)) ≤ -1 / ↑(k + 1)h:↑(k + 1) * Real.log (↑k / ↑(k + 1)) ≤ ↑(k + 1) * (-1 / ↑(k + 1))⊢ ↑(k + 1) * Real.log (↑k / ↑(k + 1)) ≤ -1
have hc : ((k + 1 : ℕ) : ℝ) * (-1 / ((k + 1 : ℕ) : ℝ)) = -1 := by k:ℕhk:1 ≤ k⊢ ↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1 field_simp k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hdiv_pos:0 < ↑k / ↑(k + 1)hexp:↑k / ↑(k + 1) ≤ rexp (-1 / ↑(k + 1))heq:-1 / ↑(k + 1) + 1 = ↑k / ↑(k + 1)hlog:Real.log (↑k / ↑(k + 1)) ≤ -1 / ↑(k + 1)h:↑(k + 1) * Real.log (↑k / ↑(k + 1)) ≤ ↑(k + 1) * (-1 / ↑(k + 1))hc:↑(k + 1) * (-1 / ↑(k + 1)) = -1⊢ ↑(k + 1) * Real.log (↑k / ↑(k + 1)) ≤ -1
rwa [hc] at h k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hdiv_pos:0 < ↑k / ↑(k + 1)hexp:↑k / ↑(k + 1) ≤ rexp (-1 / ↑(k + 1))heq:-1 / ↑(k + 1) + 1 = ↑k / ↑(k + 1)hlog:Real.log (↑k / ↑(k + 1)) ≤ -1 / ↑(k + 1)hmul:↑(k + 1) * Real.log (↑k / ↑(k + 1)) ≤ -1⊢ ↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1
rwa [Real.log_div hk_pos.ne' hk1_pos.ne'] at hmul All goals completed! 🐙
Elementary step (k : ℝ) * (Real.log (k + 1) - Real.log k) ≤ 1 for k ≥ 1.
lemma mul_log_succ_sub_log_le_one {k : ℕ} (hk : 1 ≤ k) :
(k : ℝ) * (Real.log (k + 1 : ℕ) - Real.log k) ≤ 1 := by k:ℕhk:1 ≤ k⊢ ↑k * (Real.log ↑(k + 1) - Real.log ↑k) ≤ 1
have hk_pos : (0 : ℝ) < k := by positivity k:ℕhk:1 ≤ khk_pos:0 < ↑k⊢ ↑k * (Real.log ↑(k + 1) - Real.log ↑k) ≤ 1
have hk1_pos : (0 : ℝ) < (k + 1 : ℕ) := by positivity k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)⊢ ↑k * (Real.log ↑(k + 1) - Real.log ↑k) ≤ 1
have hexp : 1 / (k : ℝ) + 1 ≤ Real.exp (1 / (k : ℝ)) := Real.add_one_le_exp _ k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hexp:1 / ↑k + 1 ≤ rexp (1 / ↑k)⊢ ↑k * (Real.log ↑(k + 1) - Real.log ↑k) ≤ 1
have heq : 1 / (k : ℝ) + 1 = ((k + 1 : ℕ) : ℝ) / (k : ℝ) := by
push_cast k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hexp:1 / ↑k + 1 ≤ rexp (1 / ↑k)⊢ 1 / ↑k + 1 = (↑k + 1) / ↑k; field_simp k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hexp:1 / ↑k + 1 ≤ rexp (1 / ↑k)⊢ 1 + ↑k = ↑k + 1; ring k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hexp:1 / ↑k + 1 ≤ rexp (1 / ↑k)heq:1 / ↑k + 1 = ↑(k + 1) / ↑k⊢ ↑k * (Real.log ↑(k + 1) - Real.log ↑k) ≤ 1
rw [heq k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hexp:↑(k + 1) / ↑k ≤ rexp (1 / ↑k)heq:1 / ↑k + 1 = ↑(k + 1) / ↑k⊢ ↑k * (Real.log ↑(k + 1) - Real.log ↑k) ≤ 1] at hexp k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hexp:↑(k + 1) / ↑k ≤ rexp (1 / ↑k)heq:1 / ↑k + 1 = ↑(k + 1) / ↑k⊢ ↑k * (Real.log ↑(k + 1) - Real.log ↑k) ≤ 1
have hlog : Real.log (((k + 1 : ℕ) : ℝ) / (k : ℝ)) ≤ 1 / (k : ℝ) := by
have h1 := Real.log_le_log (div_pos hk1_pos hk_pos) hexp k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hexp:↑(k + 1) / ↑k ≤ rexp (1 / ↑k)heq:1 / ↑k + 1 = ↑(k + 1) / ↑kh1:Real.log (↑(k + 1) / ↑k) ≤ Real.log (rexp (1 / ↑k))⊢ Real.log (↑(k + 1) / ↑k) ≤ 1 / ↑k
rwa [Real.log_exp] at h1 k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hexp:↑(k + 1) / ↑k ≤ rexp (1 / ↑k)heq:1 / ↑k + 1 = ↑(k + 1) / ↑khlog:Real.log (↑(k + 1) / ↑k) ≤ 1 / ↑k⊢ ↑k * (Real.log ↑(k + 1) - Real.log ↑k) ≤ 1
have hmul : (k : ℝ) * Real.log (((k + 1 : ℕ) : ℝ) / (k : ℝ)) ≤ 1 := by
have h := mul_le_mul_of_nonneg_left hlog hk_pos.le k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hexp:↑(k + 1) / ↑k ≤ rexp (1 / ↑k)heq:1 / ↑k + 1 = ↑(k + 1) / ↑khlog:Real.log (↑(k + 1) / ↑k) ≤ 1 / ↑kh:↑k * Real.log (↑(k + 1) / ↑k) ≤ ↑k * (1 / ↑k)⊢ ↑k * Real.log (↑(k + 1) / ↑k) ≤ 1
have hc : (k : ℝ) * (1 / (k : ℝ)) = 1 := by k:ℕhk:1 ≤ k⊢ ↑k * (Real.log ↑(k + 1) - Real.log ↑k) ≤ 1 field_simp k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hexp:↑(k + 1) / ↑k ≤ rexp (1 / ↑k)heq:1 / ↑k + 1 = ↑(k + 1) / ↑khlog:Real.log (↑(k + 1) / ↑k) ≤ 1 / ↑kh:↑k * Real.log (↑(k + 1) / ↑k) ≤ ↑k * (1 / ↑k)hc:↑k * (1 / ↑k) = 1⊢ ↑k * Real.log (↑(k + 1) / ↑k) ≤ 1
rwa [hc] at h k:ℕhk:1 ≤ khk_pos:0 < ↑khk1_pos:0 < ↑(k + 1)hexp:↑(k + 1) / ↑k ≤ rexp (1 / ↑k)heq:1 / ↑k + 1 = ↑(k + 1) / ↑khlog:Real.log (↑(k + 1) / ↑k) ≤ 1 / ↑khmul:↑k * Real.log (↑(k + 1) / ↑k) ≤ 1⊢ ↑k * (Real.log ↑(k + 1) - Real.log ↑k) ≤ 1
rwa [Real.log_div hk1_pos.ne' hk_pos.ne'] at hmul All goals completed! 🐙
Factorial centering bounds:
n * log n - n + 1 ≤ log(n!) ≤ n * log n - n + 1 + log n for all n ≥ 1.
theorem factorial_centering_bounds (n : ℕ) (hn : 1 ≤ n) :
(n : ℝ) * Real.log n - n + 1 ≤ Real.log (n.factorial) ∧
Real.log (n.factorial) ≤ (n : ℝ) * Real.log n - n + 1 + Real.log n := by n:ℕhn:1 ≤ n⊢ ↑n * Real.log ↑n - ↑n + 1 ≤ Real.log ↑n ! ∧ Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑n
induction n with
| zero => zero hn:1 ≤ 0⊢ ↑0 * Real.log ↑0 - ↑0 + 1 ≤ Real.log ↑0! ∧ Real.log ↑0! ≤ ↑0 * Real.log ↑0 - ↑0 + 1 + Real.log ↑0 omega All goals completed! 🐙
| succ k ih => succ k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1⊢ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 ≤ Real.log ↑(k + 1)! ∧
Real.log ↑(k + 1)! ≤ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 + Real.log ↑(k + 1)
rcases eq_or_lt_of_le (Nat.zero_le k) with rfl | hk_pos succ.inl ih:1 ≤ 0 → ↑0 * Real.log ↑0 - ↑0 + 1 ≤ Real.log ↑0! ∧ Real.log ↑0! ≤ ↑0 * Real.log ↑0 - ↑0 + 1 + Real.log ↑0hn:1 ≤ 0 + 1⊢ ↑(0 + 1) * Real.log ↑(0 + 1) - ↑(0 + 1) + 1 ≤ Real.log ↑(0 + 1)! ∧
Real.log ↑(0 + 1)! ≤ ↑(0 + 1) * Real.log ↑(0 + 1) - ↑(0 + 1) + 1 + Real.log ↑(0 + 1)succ.inr k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < k⊢ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 ≤ Real.log ↑(k + 1)! ∧
Real.log ↑(k + 1)! ≤ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 + Real.log ↑(k + 1)
· succ.inl ih:1 ≤ 0 → ↑0 * Real.log ↑0 - ↑0 + 1 ≤ Real.log ↑0! ∧ Real.log ↑0! ≤ ↑0 * Real.log ↑0 - ↑0 + 1 + Real.log ↑0hn:1 ≤ 0 + 1⊢ ↑(0 + 1) * Real.log ↑(0 + 1) - ↑(0 + 1) + 1 ≤ Real.log ↑(0 + 1)! ∧
Real.log ↑(0 + 1)! ≤ ↑(0 + 1) * Real.log ↑(0 + 1) - ↑(0 + 1) + 1 + Real.log ↑(0 + 1) simp All goals completed! 🐙
· succ.inr k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < k⊢ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 ≤ Real.log ↑(k + 1)! ∧
Real.log ↑(k + 1)! ≤ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 + Real.log ↑(k + 1) obtain ⟨hlo, hhi⟩ := ih hk_pos succ.inr k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑k⊢ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 ≤ Real.log ↑(k + 1)! ∧
Real.log ↑(k + 1)! ≤ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 + Real.log ↑(k + 1)
have hfac : Real.log ((k + 1).factorial) =
Real.log (k.factorial) + Real.log (k + 1 : ℕ) := by n:ℕhn:1 ≤ n⊢ ↑n * Real.log ↑n - ↑n + 1 ≤ Real.log ↑n ! ∧ Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑n
rw [Nat.factorial_succ, k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑k⊢ Real.log ↑((k + 1) * k !) = Real.log ↑k ! + Real.log ↑(k + 1) Nat.cast_mul, k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑k⊢ Real.log (↑(k + 1) * ↑k !) = Real.log ↑k ! + Real.log ↑(k + 1)
Real.log_mul (by k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑k⊢ ↑(k + 1) ≠ 0 positivity All goals completed! 🐙) (by k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑k⊢ ↑k ! ≠ 0 positivity All goals completed! 🐙), add_comm k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑k⊢ Real.log ↑k ! + Real.log ↑(k + 1) = Real.log ↑k ! + Real.log ↑(k + 1)] succ.inr k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khfac:Real.log ↑(k + 1)! = Real.log ↑k ! + Real.log ↑(k + 1)⊢ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 ≤ Real.log ↑(k + 1)! ∧
Real.log ↑(k + 1)! ≤ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 + Real.log ↑(k + 1)
have hstep_hi := succ_mul_log_sub_log_succ_le_neg_one hk_pos succ.inr k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khfac:Real.log ↑(k + 1)! = Real.log ↑k ! + Real.log ↑(k + 1)hstep_hi:↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1⊢ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 ≤ Real.log ↑(k + 1)! ∧
Real.log ↑(k + 1)! ≤ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 + Real.log ↑(k + 1)
have hstep_lo := mul_log_succ_sub_log_le_one hk_pos succ.inr k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khfac:Real.log ↑(k + 1)! = Real.log ↑k ! + Real.log ↑(k + 1)hstep_hi:↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1hstep_lo:↑k * (Real.log ↑(k + 1) - Real.log ↑k) ≤ 1⊢ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 ≤ Real.log ↑(k + 1)! ∧
Real.log ↑(k + 1)! ≤ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 + Real.log ↑(k + 1)
rw [hfac succ.inr k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khfac:Real.log ↑(k + 1)! = Real.log ↑k ! + Real.log ↑(k + 1)hstep_hi:↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1hstep_lo:↑k * (Real.log ↑(k + 1) - Real.log ↑k) ≤ 1⊢ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 ≤ Real.log ↑k ! + Real.log ↑(k + 1) ∧
Real.log ↑k ! + Real.log ↑(k + 1) ≤ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 + Real.log ↑(k + 1)] succ.inr k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khfac:Real.log ↑(k + 1)! = Real.log ↑k ! + Real.log ↑(k + 1)hstep_hi:↑(k + 1) * (Real.log ↑k - Real.log ↑(k + 1)) ≤ -1hstep_lo:↑k * (Real.log ↑(k + 1) - Real.log ↑k) ≤ 1⊢ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 ≤ Real.log ↑k ! + Real.log ↑(k + 1) ∧
Real.log ↑k ! + Real.log ↑(k + 1) ≤ ↑(k + 1) * Real.log ↑(k + 1) - ↑(k + 1) + 1 + Real.log ↑(k + 1)
push_cast at hfac hstep_lo hstep_hi ⊢ succ.inr k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khfac:Real.log ↑(k + 1)! = Real.log ↑k ! + Real.log (↑k + 1)hstep_lo:↑k * (Real.log (↑k + 1) - Real.log ↑k) ≤ 1hstep_hi:(↑k + 1) * (Real.log ↑k - Real.log (↑k + 1)) ≤ -1⊢ (↑k + 1) * Real.log (↑k + 1) - (↑k + 1) + 1 ≤ Real.log ↑k ! + Real.log (↑k + 1) ∧
Real.log ↑k ! + Real.log (↑k + 1) ≤ (↑k + 1) * Real.log (↑k + 1) - (↑k + 1) + 1 + Real.log (↑k + 1)
constructor succ.inr.left k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khfac:Real.log ↑(k + 1)! = Real.log ↑k ! + Real.log (↑k + 1)hstep_lo:↑k * (Real.log (↑k + 1) - Real.log ↑k) ≤ 1hstep_hi:(↑k + 1) * (Real.log ↑k - Real.log (↑k + 1)) ≤ -1⊢ (↑k + 1) * Real.log (↑k + 1) - (↑k + 1) + 1 ≤ Real.log ↑k ! + Real.log (↑k + 1)succ.inr.right k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khfac:Real.log ↑(k + 1)! = Real.log ↑k ! + Real.log (↑k + 1)hstep_lo:↑k * (Real.log (↑k + 1) - Real.log ↑k) ≤ 1hstep_hi:(↑k + 1) * (Real.log ↑k - Real.log (↑k + 1)) ≤ -1⊢ Real.log ↑k ! + Real.log (↑k + 1) ≤ (↑k + 1) * Real.log (↑k + 1) - (↑k + 1) + 1 + Real.log (↑k + 1) <;> succ.inr.left k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khfac:Real.log ↑(k + 1)! = Real.log ↑k ! + Real.log (↑k + 1)hstep_lo:↑k * (Real.log (↑k + 1) - Real.log ↑k) ≤ 1hstep_hi:(↑k + 1) * (Real.log ↑k - Real.log (↑k + 1)) ≤ -1⊢ (↑k + 1) * Real.log (↑k + 1) - (↑k + 1) + 1 ≤ Real.log ↑k ! + Real.log (↑k + 1)succ.inr.right k:ℕih:1 ≤ k → ↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k ! ∧ Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khn:1 ≤ k + 1hk_pos:0 < khlo:↑k * Real.log ↑k - ↑k + 1 ≤ Real.log ↑k !hhi:Real.log ↑k ! ≤ ↑k * Real.log ↑k - ↑k + 1 + Real.log ↑khfac:Real.log ↑(k + 1)! = Real.log ↑k ! + Real.log (↑k + 1)hstep_lo:↑k * (Real.log (↑k + 1) - Real.log ↑k) ≤ 1hstep_hi:(↑k + 1) * (Real.log ↑k - Real.log (↑k + 1)) ≤ -1⊢ Real.log ↑k ! + Real.log (↑k + 1) ≤ (↑k + 1) * Real.log (↑k + 1) - (↑k + 1) + 1 + Real.log (↑k + 1) linarith All goals completed! 🐙
For n ≥ 3, A_n = n! * P(n) is never a power of n.
theorem shuniaProd_not_pow (n : ℕ) (hn : 3 ≤ n) (d : ℕ) : shuniaProd n ≠ n ^ d := by n:ℕhn:3 ≤ nd:ℕ⊢ shuniaProd n ≠ n ^ d
intro heq n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ d⊢ False
have hdvd_fac : n - 1 ∣ n.factorial := Nat.dvd_factorial (by n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ d⊢ 0 < n - 1 omega All goals completed! 🐙) (by n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ d⊢ n - 1 ≤ n omega All goals completed! 🐙) n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ dhdvd_fac:n - 1 ∣ n !⊢ False
have hdvd_prod : n - 1 ∣ shuniaProd n := dvd_mul_of_dvd_left hdvd_fac _ n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ dhdvd_fac:n - 1 ∣ n !hdvd_prod:n - 1 ∣ shuniaProd n⊢ False
rw [heq n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ dhdvd_fac:n - 1 ∣ n !hdvd_prod:n - 1 ∣ n ^ d⊢ False] at hdvd_prod n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ dhdvd_fac:n - 1 ∣ n !hdvd_prod:n - 1 ∣ n ^ d⊢ False
have hcop : Nat.Coprime (n - 1) n := by n:ℕhn:3 ≤ nd:ℕ⊢ shuniaProd n ≠ n ^ d
have h1 : n = (n - 1) + 1 := by n:ℕhn:3 ≤ nd:ℕ⊢ shuniaProd n ≠ n ^ d omega n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ dhdvd_fac:n - 1 ∣ n !hdvd_prod:n - 1 ∣ n ^ dh1:n = n - 1 + 1⊢ (n - 1).Coprime n
rw [h1 n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ dhdvd_fac:n - 1 ∣ n !hdvd_prod:n - 1 ∣ n ^ dh1:n = n - 1 + 1⊢ (n - 1 + 1 - 1).Coprime (n - 1 + 1)] n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ dhdvd_fac:n - 1 ∣ n !hdvd_prod:n - 1 ∣ n ^ dh1:n = n - 1 + 1⊢ (n - 1 + 1 - 1).Coprime (n - 1 + 1)
exact Nat.coprime_self_add_right.mpr (Nat.gcd_one_right _) n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ dhdvd_fac:n - 1 ∣ n !hdvd_prod:n - 1 ∣ n ^ dhcop:(n - 1).Coprime n⊢ False
have hdvd1 : n - 1 ∣ 1 := by n:ℕhn:3 ≤ nd:ℕ⊢ shuniaProd n ≠ n ^ d
have hpow := hcop.pow_right d n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ dhdvd_fac:n - 1 ∣ n !hdvd_prod:n - 1 ∣ n ^ dhcop:(n - 1).Coprime nhpow:(n - 1).Coprime (n ^ d)⊢ n - 1 ∣ 1
exact hpow.dvd_of_dvd_mul_left (by n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ dhdvd_fac:n - 1 ∣ n !hdvd_prod:n - 1 ∣ n ^ dhcop:(n - 1).Coprime nhpow:(n - 1).Coprime (n ^ d)⊢ n - 1 ∣ n ^ d * 1 simpa using hdvd_prod All goals completed! 🐙) n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ dhdvd_fac:n - 1 ∣ n !hdvd_prod:n - 1 ∣ n ^ dhcop:(n - 1).Coprime nhdvd1:n - 1 ∣ 1⊢ False
have hle1 : n - 1 ≤ 1 := Nat.le_of_dvd zero_lt_one hdvd1 n:ℕhn:3 ≤ nd:ℕheq:shuniaProd n = n ^ dhdvd_fac:n - 1 ∣ n !hdvd_prod:n - 1 ∣ n ^ dhcop:(n - 1).Coprime nhdvd1:n - 1 ∣ 1hle1:n - 1 ≤ 1⊢ False
omega All goals completed! 🐙theorem offsetDigits_zero (b : ℕ) : offsetDigits b 0 = 0 := by b:ℕ⊢ offsetDigits b 0 = 0
rw [offsetDigits b:ℕ⊢ 0 = 0] All goals completed! 🐙theorem offsetDigits_succ (b B : ℕ) :
offsetDigits b (B + 1) = if 2 ≤ b then 1 + offsetDigits b (B / b) else 0 := by b:ℕB:ℕ⊢ offsetDigits b (B + 1) = if 2 ≤ b then 1 + offsetDigits b (B / b) else 0
rw [offsetDigits b:ℕB:ℕ⊢ (if x : 2 ≤ b then 1 + offsetDigits b (B / b) else 0) = if 2 ≤ b then 1 + offsetDigits b (B / b) else 0] b:ℕB:ℕ⊢ (if x : 2 ≤ b then 1 + offsetDigits b (B / b) else 0) = if 2 ≤ b then 1 + offsetDigits b (B / b) else 0; split_ifs pos b:ℕB:ℕh✝:2 ≤ b⊢ 1 + offsetDigits b (B / b) = 1 + offsetDigits b (B / b)neg b:ℕB:ℕh✝:¬2 ≤ b⊢ 0 = 0 <;> pos b:ℕB:ℕh✝:2 ≤ b⊢ 1 + offsetDigits b (B / b) = 1 + offsetDigits b (B / b)neg b:ℕB:ℕh✝:¬2 ≤ b⊢ 0 = 0 rfl All goals completed! 🐙
For b ≥ 2 and B ≥ 1, offsetDigits b B ≥ 1.
theorem offsetDigits_pos {b B : ℕ} (hb : 2 ≤ b) (hB : 1 ≤ B) :
1 ≤ offsetDigits b B := by b:ℕB:ℕhb:2 ≤ bhB:1 ≤ B⊢ 1 ≤ offsetDigits b B
obtain ⟨k, rfl⟩ := Nat.exists_eq_add_of_le' hB b:ℕhb:2 ≤ bk:ℕhB:1 ≤ k + 1⊢ 1 ≤ offsetDigits b (k + 1)
rw [offsetDigits_succ b:ℕhb:2 ≤ bk:ℕhB:1 ≤ k + 1⊢ 1 ≤ if 2 ≤ b then 1 + offsetDigits b (k / b) else 0] b:ℕhb:2 ≤ bk:ℕhB:1 ≤ k + 1⊢ 1 ≤ if 2 ≤ b then 1 + offsetDigits b (k / b) else 0
simp only [hb, ↓reduceIte] b:ℕhb:2 ≤ bk:ℕhB:1 ≤ k + 1⊢ 1 ≤ 1 + offsetDigits b (k / b)
omega All goals completed! 🐙
Lower bound on B from offsetDigits b B: for b ≥ 2 and B ≥ 1,
b ^ (offsetDigits b B - 1) ≤ B.
theorem pow_sub_one_le_of_offsetDigits {b : ℕ} (hb : 2 ≤ b) :
∀ {B : ℕ}, 1 ≤ B → b ^ (offsetDigits b B - 1) ≤ B
| 0, hB => b:ℕhb:2 ≤ bhB:1 ≤ 0⊢ b ^ (offsetDigits b 0 - 1) ≤ 0 by b:ℕhb:2 ≤ bhB:1 ≤ 0⊢ b ^ (offsetDigits b 0 - 1) ≤ 0 omega All goals completed! 🐙
| B + 1, _ => b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1⊢ b ^ (offsetDigits b (B + 1) - 1) ≤ B + 1 by b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1⊢ b ^ (offsetDigits b (B + 1) - 1) ≤ B + 1
rw [offsetDigits_succ b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1⊢ b ^ ((if 2 ≤ b then 1 + offsetDigits b (B / b) else 0) - 1) ≤ B + 1] b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1⊢ b ^ ((if 2 ≤ b then 1 + offsetDigits b (B / b) else 0) - 1) ≤ B + 1
simp only [hb, ↓reduceIte, Nat.add_sub_cancel_left] b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1⊢ b ^ offsetDigits b (B / b) ≤ B + 1
rcases eq_or_lt_of_le (Nat.zero_le (B / b)) with h0 | hpos inl b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1h0:0 = B / b⊢ b ^ offsetDigits b (B / b) ≤ B + 1inr b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1hpos:0 < B / b⊢ b ^ offsetDigits b (B / b) ≤ B + 1
· inl b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1h0:0 = B / b⊢ b ^ offsetDigits b (B / b) ≤ B + 1 rw [← h0, inl b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1h0:0 = B / b⊢ b ^ offsetDigits b 0 ≤ B + 1 offsetDigits_zero, inl b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1h0:0 = B / b⊢ b ^ 0 ≤ B + 1 pow_zero inl b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1h0:0 = B / b⊢ 1 ≤ B + 1] inl b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1h0:0 = B / b⊢ 1 ≤ B + 1
omega All goals completed! 🐙
· inr b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1hpos:0 < B / b⊢ b ^ offsetDigits b (B / b) ≤ B + 1 calc b ^ offsetDigits b (B / b)
_ = b * b ^ (offsetDigits b (B / b) - 1) := by b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1hpos:0 < B / b⊢ b ^ offsetDigits b (B / b) = b * b ^ (offsetDigits b (B / b) - 1)
have hd := offsetDigits_pos hb hpos b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1hpos:0 < B / bhd:1 ≤ offsetDigits b (B / b)⊢ b ^ offsetDigits b (B / b) = b * b ^ (offsetDigits b (B / b) - 1)
conv_lhs => rw [← Nat.sub_add_cancel hd, pow_succ'] b:ℕhb:2 ≤ bB:ℕx✝:1 ≤ B + 1hpos:0 < B / bhd:1 ≤ offsetDigits b (B / b)| b * b ^ (offsetDigits b (B / b) - 1)
_ ≤ b * (B / b) := Nat.mul_le_mul_left b (pow_sub_one_le_of_offsetDigits hb hpos)
_ ≤ B := Nat.mul_div_le B b
_ ≤ B + 1 := Nat.le_succ B
termination_by B _ => B
decreasing_by exact Nat.lt_succ_of_le (Nat.div_le_self B b) All goals completed! 🐙
Strengthened induction invariant for offsetDigits b B: for b ≥ 2 and every B : ℕ,
B + b ≤ b ^ (offsetDigits b B + 1).
lemma add_le_pow_offsetDigits_add_one {b : ℕ} (hb : 2 ≤ b) :
∀ B : ℕ, B + b ≤ b ^ (offsetDigits b B + 1)
| 0 => b:ℕhb:2 ≤ b⊢ 0 + b ≤ b ^ (offsetDigits b 0 + 1) by b:ℕhb:2 ≤ b⊢ 0 + b ≤ b ^ (offsetDigits b 0 + 1)
rw [offsetDigits_zero, b:ℕhb:2 ≤ b⊢ 0 + b ≤ b ^ (0 + 1) zero_add, b:ℕhb:2 ≤ b⊢ b ≤ b ^ (0 + 1) zero_add, b:ℕhb:2 ≤ b⊢ b ≤ b ^ 1 pow_one b:ℕhb:2 ≤ b⊢ b ≤ b] All goals completed! 🐙
| B + 1 => b:ℕhb:2 ≤ bB:ℕ⊢ B + 1 + b ≤ b ^ (offsetDigits b (B + 1) + 1) by b:ℕhb:2 ≤ bB:ℕ⊢ B + 1 + b ≤ b ^ (offsetDigits b (B + 1) + 1)
rw [offsetDigits_succ b:ℕhb:2 ≤ bB:ℕ⊢ B + 1 + b ≤ b ^ ((if 2 ≤ b then 1 + offsetDigits b (B / b) else 0) + 1)] b:ℕhb:2 ≤ bB:ℕ⊢ B + 1 + b ≤ b ^ ((if 2 ≤ b then 1 + offsetDigits b (B / b) else 0) + 1)
simp only [hb, ↓reduceIte] b:ℕhb:2 ≤ bB:ℕ⊢ B + 1 + b ≤ b ^ (1 + offsetDigits b (B / b) + 1)
have ih := add_le_pow_offsetDigits_add_one hb (B / b) b:ℕhb:2 ≤ bB:ℕih:B / b + b ≤ b ^ (offsetDigits b (B / b) + 1)⊢ B + 1 + b ≤ b ^ (1 + offsetDigits b (B / b) + 1)
have hmul : b * (B / b + b) ≤ b * b ^ (offsetDigits b (B / b) + 1) :=
Nat.mul_le_mul_left b ih b:ℕhb:2 ≤ bB:ℕih:B / b + b ≤ b ^ (offsetDigits b (B / b) + 1)hmul:b * (B / b + b) ≤ b * b ^ (offsetDigits b (B / b) + 1)⊢ B + 1 + b ≤ b ^ (1 + offsetDigits b (B / b) + 1)
have hdiv : B + 1 ≤ b * (B / b) + b := by b:ℕhb:2 ≤ bB:ℕ⊢ B + 1 + b ≤ b ^ (offsetDigits b (B + 1) + 1)
have h1 := Nat.div_add_mod B b b:ℕhb:2 ≤ bB:ℕih:B / b + b ≤ b ^ (offsetDigits b (B / b) + 1)hmul:b * (B / b + b) ≤ b * b ^ (offsetDigits b (B / b) + 1)h1:b * (B / b) + B % b = B⊢ B + 1 ≤ b * (B / b) + b
have h2 := Nat.mod_lt B (by b:ℕhb:2 ≤ bB:ℕih:B / b + b ≤ b ^ (offsetDigits b (B / b) + 1)hmul:b * (B / b + b) ≤ b * b ^ (offsetDigits b (B / b) + 1)h1:b * (B / b) + B % b = B⊢ 0 < b omega All goals completed! 🐙 : 0 < b) b:ℕhb:2 ≤ bB:ℕih:B / b + b ≤ b ^ (offsetDigits b (B / b) + 1)hmul:b * (B / b + b) ≤ b * b ^ (offsetDigits b (B / b) + 1)h1:b * (B / b) + B % b = Bh2:B % b < b⊢ B + 1 ≤ b * (B / b) + b
omega b:ℕhb:2 ≤ bB:ℕih:B / b + b ≤ b ^ (offsetDigits b (B / b) + 1)hmul:b * (B / b + b) ≤ b * b ^ (offsetDigits b (B / b) + 1)hdiv:B + 1 ≤ b * (B / b) + b⊢ B + 1 + b ≤ b ^ (1 + offsetDigits b (B / b) + 1)
have hpow : b ^ (1 + offsetDigits b (B / b) + 1) =
b * b ^ (offsetDigits b (B / b) + 1) := by b:ℕhb:2 ≤ bB:ℕ⊢ B + 1 + b ≤ b ^ (offsetDigits b (B + 1) + 1)
rw [show 1 + offsetDigits b (B / b) + 1 = (offsetDigits b (B / b) + 1) + 1 by b:ℕhb:2 ≤ bB:ℕ⊢ B + 1 + b ≤ b ^ (offsetDigits b (B + 1) + 1) omega All goals completed! 🐙,
pow_succ' b:ℕhb:2 ≤ bB:ℕih:B / b + b ≤ b ^ (offsetDigits b (B / b) + 1)hmul:b * (B / b + b) ≤ b * b ^ (offsetDigits b (B / b) + 1)hdiv:B + 1 ≤ b * (B / b) + b⊢ b * b ^ (offsetDigits b (B / b) + 1) = b * b ^ (offsetDigits b (B / b) + 1)] b:ℕhb:2 ≤ bB:ℕih:B / b + b ≤ b ^ (offsetDigits b (B / b) + 1)hmul:b * (B / b + b) ≤ b * b ^ (offsetDigits b (B / b) + 1)hdiv:B + 1 ≤ b * (B / b) + bhpow:b ^ (1 + offsetDigits b (B / b) + 1) = b * b ^ (offsetDigits b (B / b) + 1)⊢ B + 1 + b ≤ b ^ (1 + offsetDigits b (B / b) + 1)
rw [hpow b:ℕhb:2 ≤ bB:ℕih:B / b + b ≤ b ^ (offsetDigits b (B / b) + 1)hmul:b * (B / b + b) ≤ b * b ^ (offsetDigits b (B / b) + 1)hdiv:B + 1 ≤ b * (B / b) + bhpow:b ^ (1 + offsetDigits b (B / b) + 1) = b * b ^ (offsetDigits b (B / b) + 1)⊢ B + 1 + b ≤ b * b ^ (offsetDigits b (B / b) + 1)] b:ℕhb:2 ≤ bB:ℕih:B / b + b ≤ b ^ (offsetDigits b (B / b) + 1)hmul:b * (B / b + b) ≤ b * b ^ (offsetDigits b (B / b) + 1)hdiv:B + 1 ≤ b * (B / b) + bhpow:b ^ (1 + offsetDigits b (B / b) + 1) = b * b ^ (offsetDigits b (B / b) + 1)⊢ B + 1 + b ≤ b * b ^ (offsetDigits b (B / b) + 1)
nlinarith All goals completed! 🐙
termination_by B => B
decreasing_by exact Nat.lt_succ_of_le (Nat.div_le_self B b) All goals completed! 🐙
Upper bound on B from offsetDigits b B: for b ≥ 2 and every B : ℕ,
B < b ^ (offsetDigits b B + 1).
theorem offsetDigits_pow_gt {b : ℕ} (hb : 2 ≤ b) (B : ℕ) :
B < b ^ (offsetDigits b B + 1) := by b:ℕhb:2 ≤ bB:ℕ⊢ B < b ^ (offsetDigits b B + 1)
have h := add_le_pow_offsetDigits_add_one hb B b:ℕhb:2 ≤ bB:ℕh:B + b ≤ b ^ (offsetDigits b B + 1)⊢ B < b ^ (offsetDigits b B + 1)
omega All goals completed! 🐙
Forward bridge inequality (shuniaDeficit to θ):
for every n ≥ 2 with 1 ≤ shuniaDeficit n, (shuniaDeficit n : ℝ) * log n ≤ n - θ(n) - 1.
theorem shuniaDeficit_mul_log_le {n : ℕ} (hn : 2 ≤ n) (hpos : 1 ≤ shuniaDeficit n) :
(shuniaDeficit n : ℝ) * Real.log n ≤ (n : ℝ) - Chebyshev.theta n - 1 := by n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit n⊢ ↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1
have hprod_le : shuniaProd n ≤ n ^ (offsetDigits n (shuniaProd n - 1) + 1) :=
Nat.le_of_pred_lt (offsetDigits_pow_gt hn (shuniaProd n - 1)) n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nhprod_le:shuniaProd n ≤ n ^ (offsetDigits n (shuniaProd n - 1) + 1)⊢ ↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1
set d := offsetDigits n (shuniaProd n - 1) n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)⊢ ↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1
have hlog_le : Real.log (shuniaProd n) ≤ ((d + 1 : ℕ) : ℝ) * Real.log n := by
have h1 : Real.log (shuniaProd n) ≤ Real.log ((n ^ (d + 1) : ℕ) : ℝ) :=
Real.log_le_log (by n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)⊢ 0 < ↑(shuniaProd n) exact_mod_cast shuniaProd_pos n All goals completed! 🐙) (by n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)⊢ ↑(shuniaProd n) ≤ ↑(n ^ (d + 1)) exact_mod_cast hprod_le All goals completed! 🐙) n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)h1:Real.log ↑(shuniaProd n) ≤ Real.log ↑(n ^ (d + 1))⊢ Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑n
rwa [Nat.cast_pow, Real.log_pow] at h1 n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑n⊢ ↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1
have hlog_pos : 0 < Real.log n := Real.log_pos (by n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑n⊢ 1 < ↑n exact_mod_cast hn All goals completed! 🐙) n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑nhlog_pos:0 < Real.log ↑n⊢ ↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1
have hfac_lo := (factorial_centering_bounds n (by n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑nhlog_pos:0 < Real.log ↑n⊢ 1 ≤ n omega All goals completed! 🐙)).1 n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑nhlog_pos:0 < Real.log ↑nhfac_lo:↑n * Real.log ↑n - ↑n + 1 ≤ Real.log ↑n !⊢ ↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1
have hlog_eq := log_shuniaProd_eq n n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑nhlog_pos:0 < Real.log ↑nhfac_lo:↑n * Real.log ↑n - ↑n + 1 ≤ Real.log ↑n !hlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑n⊢ ↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1
have hd_le : d ≤ n - 1 := by
unfold shuniaDeficit at hpos n:ℕhn:2 ≤ nhpos:1 ≤ n - 1 - offsetDigits n (shuniaProd n - 1)d:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑nhlog_pos:0 < Real.log ↑nhfac_lo:↑n * Real.log ↑n - ↑n + 1 ≤ Real.log ↑n !hlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑n⊢ d ≤ n - 1
omega n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑nhlog_pos:0 < Real.log ↑nhfac_lo:↑n * Real.log ↑n - ↑n + 1 ≤ Real.log ↑n !hlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhd_le:d ≤ n - 1⊢ ↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1
unfold shuniaDeficit n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑nhlog_pos:0 < Real.log ↑nhfac_lo:↑n * Real.log ↑n - ↑n + 1 ≤ Real.log ↑n !hlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhd_le:d ≤ n - 1⊢ ↑(n - 1 - offsetDigits n (shuniaProd n - 1)) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1
have hcast : ((n - 1 - d : ℕ) : ℝ) = (n : ℝ) - 1 - d := by n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit n⊢ ↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1
rw [Nat.cast_sub hd_le, n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑nhlog_pos:0 < Real.log ↑nhfac_lo:↑n * Real.log ↑n - ↑n + 1 ≤ Real.log ↑n !hlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhd_le:d ≤ n - 1⊢ ↑(n - 1) - ↑d = ↑n - 1 - ↑d Nat.cast_sub (by n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑nhlog_pos:0 < Real.log ↑nhfac_lo:↑n * Real.log ↑n - ↑n + 1 ≤ Real.log ↑n !hlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhd_le:d ≤ n - 1⊢ 1 ≤ n omega All goals completed! 🐙 : 1 ≤ n), Nat.cast_one n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑nhlog_pos:0 < Real.log ↑nhfac_lo:↑n * Real.log ↑n - ↑n + 1 ≤ Real.log ↑n !hlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhd_le:d ≤ n - 1⊢ ↑n - 1 - ↑d = ↑n - 1 - ↑d] n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑nhlog_pos:0 < Real.log ↑nhfac_lo:↑n * Real.log ↑n - ↑n + 1 ≤ Real.log ↑n !hlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhd_le:d ≤ n - 1hcast:↑(n - 1 - d) = ↑n - 1 - ↑d⊢ ↑(n - 1 - offsetDigits n (shuniaProd n - 1)) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1
rw [hcast n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑nhlog_pos:0 < Real.log ↑nhfac_lo:↑n * Real.log ↑n - ↑n + 1 ≤ Real.log ↑n !hlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhd_le:d ≤ n - 1hcast:↑(n - 1 - d) = ↑n - 1 - ↑d⊢ (↑n - 1 - ↑d) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1] n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_le:Real.log ↑(shuniaProd n) ≤ ↑(d + 1) * Real.log ↑nhlog_pos:0 < Real.log ↑nhfac_lo:↑n * Real.log ↑n - ↑n + 1 ≤ Real.log ↑n !hlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhd_le:d ≤ n - 1hcast:↑(n - 1 - d) = ↑n - 1 - ↑d⊢ (↑n - 1 - ↑d) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1
push_cast at hlog_le n:ℕhn:2 ≤ nhpos:1 ≤ shuniaDeficit nd:ℕ := offsetDigits n (shuniaProd n - 1)hprod_le:shuniaProd n ≤ n ^ (d + 1)hlog_pos:0 < Real.log ↑nhfac_lo:↑n * Real.log ↑n - ↑n + 1 ≤ Real.log ↑n !hlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhd_le:d ≤ n - 1hcast:↑(n - 1 - d) = ↑n - 1 - ↑dhlog_le:Real.log ↑(shuniaProd n) ≤ (↑d + 1) * Real.log ↑n⊢ (↑n - 1 - ↑d) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1
nlinarith All goals completed! 🐙
Reverse bridge inequality (θ to shuniaDeficit):
for every n ≥ 2, (n : ℝ) - θ(n) ≤ (shuniaDeficit n + 3 : ℝ) * log n + 1.
theorem self_sub_theta_le_shuniaDeficit_mul_log {n : ℕ} (hn : 2 ≤ n) :
(n : ℝ) - Chebyshev.theta n ≤ (shuniaDeficit n + 3 : ℝ) * Real.log n + 1 := by n:ℕhn:2 ≤ n⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1
set d := offsetDigits n (shuniaProd n - 1) n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1
have h4 : 4 ≤ shuniaProd n := four_le_shuniaProd hn n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd n⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1
have hB1 : 1 ≤ shuniaProd n - 1 := by omega n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1
have hd1 : 1 ≤ d := offsetDigits_pos hn hB1 n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ d⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1
have hpow_le : n ^ (d - 1) ≤ shuniaProd n :=
(pow_sub_one_le_of_offsetDigits hn hB1).trans (Nat.sub_le _ 1) n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd n⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1
have hlog_lo : ((d - 1 : ℕ) : ℝ) * Real.log n ≤ Real.log (shuniaProd n) := by
have h1 : Real.log ((n ^ (d - 1) : ℕ) : ℝ) ≤ Real.log (shuniaProd n) :=
Real.log_le_log (by n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd n⊢ 0 < ↑(n ^ (d - 1)) positivity All goals completed! 🐙) (by n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd n⊢ ↑(n ^ (d - 1)) ≤ ↑(shuniaProd n) exact_mod_cast hpow_le All goals completed! 🐙) n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nh1:Real.log ↑(n ^ (d - 1)) ≤ Real.log ↑(shuniaProd n)⊢ ↑(d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)
rwa [Nat.cast_pow, Real.log_pow] at h1 n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:↑(d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1
have hfac_hi := (factorial_centering_bounds n (by n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:↑(d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)⊢ 1 ≤ n omega All goals completed! 🐙)).2 n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:↑(d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑n⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1
have hlog_eq := log_shuniaProd_eq n n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:↑(d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑n⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1
have hlog_pos : 0 < Real.log n := Real.log_pos (by n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:↑(d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑n⊢ 1 < ↑n exact_mod_cast hn All goals completed! 🐙) n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:↑(d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑n⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1
have hd_cast : ((d - 1 : ℕ) : ℝ) = (d : ℝ) - 1 := by
rw [Nat.cast_sub hd1, n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:↑(d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑n⊢ ↑d - ↑1 = ↑d - 1 Nat.cast_one n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:↑(d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑n⊢ ↑d - 1 = ↑d - 1] n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:↑(d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1
rw [hd_cast n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1] at hlog_lo n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1
have hdef_ge : (n : ℝ) - 1 - d ≤ (shuniaDeficit n : ℝ) := by
unfold shuniaDeficit n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1⊢ ↑n - 1 - ↑d ≤ ↑(n - 1 - offsetDigits n (shuniaProd n - 1))
rcases le_or_gt d (n - 1) with hle | hgt inl n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hle:d ≤ n - 1⊢ ↑n - 1 - ↑d ≤ ↑(n - 1 - offsetDigits n (shuniaProd n - 1))inr n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hgt:n - 1 < d⊢ ↑n - 1 - ↑d ≤ ↑(n - 1 - offsetDigits n (shuniaProd n - 1))
· inl n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hle:d ≤ n - 1⊢ ↑n - 1 - ↑d ≤ ↑(n - 1 - offsetDigits n (shuniaProd n - 1)) rw [Nat.cast_sub hle, inl n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hle:d ≤ n - 1⊢ ↑n - 1 - ↑d ≤ ↑(n - 1) - ↑d Nat.cast_sub (by n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hle:d ≤ n - 1⊢ 1 ≤ n omega All goals completed! 🐙 : 1 ≤ n), Nat.cast_one inl n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hle:d ≤ n - 1⊢ ↑n - 1 - ↑d ≤ ↑n - 1 - ↑d] All goals completed! 🐙
· inr n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hgt:n - 1 < d⊢ ↑n - 1 - ↑d ≤ ↑(n - 1 - offsetDigits n (shuniaProd n - 1)) have hzero : n - 1 - d = 0 := Nat.sub_eq_zero_of_le hgt.le inr n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hgt:n - 1 < dhzero:n - 1 - d = 0⊢ ↑n - 1 - ↑d ≤ ↑(n - 1 - offsetDigits n (shuniaProd n - 1))
rw [hzero, inr n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hgt:n - 1 < dhzero:n - 1 - d = 0⊢ ↑n - 1 - ↑d ≤ ↑0 Nat.cast_zero inr n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hgt:n - 1 < dhzero:n - 1 - d = 0⊢ ↑n - 1 - ↑d ≤ 0] inr n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hgt:n - 1 < dhzero:n - 1 - d = 0⊢ ↑n - 1 - ↑d ≤ 0
have : (n - 1 : ℝ) < d := by n:ℕhn:2 ≤ n⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1
have h1 : ((n - 1 : ℕ) : ℝ) < d := by n:ℕhn:2 ≤ n⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1 exact_mod_cast hgt n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hgt:n - 1 < dhzero:n - 1 - d = 0h1:↑(n - 1) < ↑d⊢ ↑n - 1 < ↑d
rwa [Nat.cast_sub (by n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hgt:n - 1 < dhzero:n - 1 - d = 0h1:↑(n - 1) < ↑d⊢ 1 ≤ n omega All goals completed! 🐙 : 1 ≤ n), Nat.cast_one n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hgt:n - 1 < dhzero:n - 1 - d = 0h1:↑n - 1 < ↑d⊢ ↑n - 1 < ↑d] at h1 inr n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hgt:n - 1 < dhzero:n - 1 - d = 0this:↑n - 1 < ↑d⊢ ↑n - 1 - ↑d ≤ 0
linarith n:ℕhn:2 ≤ nd:ℕ := offsetDigits n (shuniaProd n - 1)h4:4 ≤ shuniaProd nhB1:1 ≤ shuniaProd n - 1hd1:1 ≤ dhpow_le:n ^ (d - 1) ≤ shuniaProd nhlog_lo:(↑d - 1) * Real.log ↑n ≤ Real.log ↑(shuniaProd n)hfac_hi:Real.log ↑n ! ≤ ↑n * Real.log ↑n - ↑n + 1 + Real.log ↑nhlog_eq:Real.log ↑(shuniaProd n) = Real.log ↑n ! + Chebyshev.theta ↑nhlog_pos:0 < Real.log ↑nhd_cast:↑(d - 1) = ↑d - 1hdef_ge:↑n - 1 - ↑d ≤ ↑(shuniaDeficit n)⊢ ↑n - Chebyshev.theta ↑n ≤ (↑(shuniaDeficit n) + 3) * Real.log ↑n + 1
nlinarith All goals completed! 🐙
3. Quartering Clock & Unconditional Verification for 2 ≤ n ≤ 21845
lemma quarterClock_bounds_aux :
∀ z : ℕ, 4 ^ quarterClock z ≤ 3 * z + 1 ∧ 3 * z + 3 < 4 ^ (quarterClock z + 1)
| 0 => ⊢ 4 ^ quarterClock 0 ≤ 3 * 0 + 1 ∧ 3 * 0 + 3 < 4 ^ (quarterClock 0 + 1) by ⊢ 4 ^ quarterClock 0 ≤ 3 * 0 + 1 ∧ 3 * 0 + 3 < 4 ^ (quarterClock 0 + 1) simp [quarterClock] All goals completed! 🐙
| z + 1 => z:ℕ⊢ 4 ^ quarterClock (z + 1) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 ^ (quarterClock (z + 1) + 1) by z:ℕ⊢ 4 ^ quarterClock (z + 1) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 ^ (quarterClock (z + 1) + 1)
rw [quarterClock z:ℕ⊢ 4 ^ (1 + quarterClock (z / 4)) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 ^ (1 + quarterClock (z / 4) + 1)] z:ℕ⊢ 4 ^ (1 + quarterClock (z / 4)) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 ^ (1 + quarterClock (z / 4) + 1)
obtain ⟨hlo, hhi⟩ := quarterClock_bounds_aux (z / 4) z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)⊢ 4 ^ (1 + quarterClock (z / 4)) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 ^ (1 + quarterClock (z / 4) + 1)
have hdiv1 : 4 * (z / 4) ≤ z := Nat.mul_div_le z 4 z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ z⊢ 4 ^ (1 + quarterClock (z / 4)) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 ^ (1 + quarterClock (z / 4) + 1)
have hdiv2 : z < 4 * (z / 4) + 4 := by z:ℕ⊢ 4 ^ quarterClock (z + 1) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 ^ (quarterClock (z + 1) + 1)
have h1 := Nat.div_add_mod z 4 z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zh1:4 * (z / 4) + z % 4 = z⊢ z < 4 * (z / 4) + 4
have h2 := Nat.mod_lt z (by z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zh1:4 * (z / 4) + z % 4 = z⊢ 0 < 4 omega All goals completed! 🐙 : 0 < 4) z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zh1:4 * (z / 4) + z % 4 = zh2:z % 4 < 4⊢ z < 4 * (z / 4) + 4
omega z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zhdiv2:z < 4 * (z / 4) + 4⊢ 4 ^ (1 + quarterClock (z / 4)) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 ^ (1 + quarterClock (z / 4) + 1)
have hpow1 : 4 ^ (1 + quarterClock (z / 4)) = 4 * 4 ^ quarterClock (z / 4) := by z:ℕ⊢ 4 ^ quarterClock (z + 1) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 ^ (quarterClock (z + 1) + 1)
rw [Nat.add_comm 1, z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zhdiv2:z < 4 * (z / 4) + 4⊢ 4 ^ (quarterClock (z / 4) + 1) = 4 * 4 ^ quarterClock (z / 4) pow_succ' z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zhdiv2:z < 4 * (z / 4) + 4⊢ 4 * 4 ^ quarterClock (z / 4) = 4 * 4 ^ quarterClock (z / 4)] z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zhdiv2:z < 4 * (z / 4) + 4hpow1:4 ^ (1 + quarterClock (z / 4)) = 4 * 4 ^ quarterClock (z / 4)⊢ 4 ^ (1 + quarterClock (z / 4)) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 ^ (1 + quarterClock (z / 4) + 1)
have hpow2 : 4 ^ (1 + quarterClock (z / 4) + 1) =
4 * 4 ^ (quarterClock (z / 4) + 1) := by z:ℕ⊢ 4 ^ quarterClock (z + 1) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 ^ (quarterClock (z + 1) + 1)
rw [show 1 + quarterClock (z / 4) + 1 = (quarterClock (z / 4) + 1) + 1 by z:ℕ⊢ 4 ^ quarterClock (z + 1) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 ^ (quarterClock (z + 1) + 1) omega All goals completed! 🐙,
pow_succ' z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zhdiv2:z < 4 * (z / 4) + 4hpow1:4 ^ (1 + quarterClock (z / 4)) = 4 * 4 ^ quarterClock (z / 4)⊢ 4 * 4 ^ (quarterClock (z / 4) + 1) = 4 * 4 ^ (quarterClock (z / 4) + 1)] z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zhdiv2:z < 4 * (z / 4) + 4hpow1:4 ^ (1 + quarterClock (z / 4)) = 4 * 4 ^ quarterClock (z / 4)hpow2:4 ^ (1 + quarterClock (z / 4) + 1) = 4 * 4 ^ (quarterClock (z / 4) + 1)⊢ 4 ^ (1 + quarterClock (z / 4)) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 ^ (1 + quarterClock (z / 4) + 1)
rw [hpow1, z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zhdiv2:z < 4 * (z / 4) + 4hpow1:4 ^ (1 + quarterClock (z / 4)) = 4 * 4 ^ quarterClock (z / 4)hpow2:4 ^ (1 + quarterClock (z / 4) + 1) = 4 * 4 ^ (quarterClock (z / 4) + 1)⊢ 4 * 4 ^ quarterClock (z / 4) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 ^ (1 + quarterClock (z / 4) + 1) hpow2 z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zhdiv2:z < 4 * (z / 4) + 4hpow1:4 ^ (1 + quarterClock (z / 4)) = 4 * 4 ^ quarterClock (z / 4)hpow2:4 ^ (1 + quarterClock (z / 4) + 1) = 4 * 4 ^ (quarterClock (z / 4) + 1)⊢ 4 * 4 ^ quarterClock (z / 4) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 * 4 ^ (quarterClock (z / 4) + 1)] z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zhdiv2:z < 4 * (z / 4) + 4hpow1:4 ^ (1 + quarterClock (z / 4)) = 4 * 4 ^ quarterClock (z / 4)hpow2:4 ^ (1 + quarterClock (z / 4) + 1) = 4 * 4 ^ (quarterClock (z / 4) + 1)⊢ 4 * 4 ^ quarterClock (z / 4) ≤ 3 * (z + 1) + 1 ∧ 3 * (z + 1) + 3 < 4 * 4 ^ (quarterClock (z / 4) + 1)
constructor left z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zhdiv2:z < 4 * (z / 4) + 4hpow1:4 ^ (1 + quarterClock (z / 4)) = 4 * 4 ^ quarterClock (z / 4)hpow2:4 ^ (1 + quarterClock (z / 4) + 1) = 4 * 4 ^ (quarterClock (z / 4) + 1)⊢ 4 * 4 ^ quarterClock (z / 4) ≤ 3 * (z + 1) + 1right z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zhdiv2:z < 4 * (z / 4) + 4hpow1:4 ^ (1 + quarterClock (z / 4)) = 4 * 4 ^ quarterClock (z / 4)hpow2:4 ^ (1 + quarterClock (z / 4) + 1) = 4 * 4 ^ (quarterClock (z / 4) + 1)⊢ 3 * (z + 1) + 3 < 4 * 4 ^ (quarterClock (z / 4) + 1) <;> left z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zhdiv2:z < 4 * (z / 4) + 4hpow1:4 ^ (1 + quarterClock (z / 4)) = 4 * 4 ^ quarterClock (z / 4)hpow2:4 ^ (1 + quarterClock (z / 4) + 1) = 4 * 4 ^ (quarterClock (z / 4) + 1)⊢ 4 * 4 ^ quarterClock (z / 4) ≤ 3 * (z + 1) + 1right z:ℕhlo:4 ^ quarterClock (z / 4) ≤ 3 * (z / 4) + 1hhi:3 * (z / 4) + 3 < 4 ^ (quarterClock (z / 4) + 1)hdiv1:4 * (z / 4) ≤ zhdiv2:z < 4 * (z / 4) + 4hpow1:4 ^ (1 + quarterClock (z / 4)) = 4 * 4 ^ quarterClock (z / 4)hpow2:4 ^ (1 + quarterClock (z / 4) + 1) = 4 * 4 ^ (quarterClock (z / 4) + 1)⊢ 3 * (z + 1) + 3 < 4 * 4 ^ (quarterClock (z / 4) + 1) omega All goals completed! 🐙
Specification of the quartering clock:
4 ^ quarterClock (n - 1) ≤ 3 * n < 4 ^ (quarterClock (n - 1) + 1) for all n ≥ 1.
theorem quarterClock_spec (n : ℕ) (hn : 1 ≤ n) :
4 ^ quarterClock (n - 1) ≤ 3 * n ∧ 3 * n < 4 ^ (quarterClock (n - 1) + 1) := by n:ℕhn:1 ≤ n⊢ 4 ^ quarterClock (n - 1) ≤ 3 * n ∧ 3 * n < 4 ^ (quarterClock (n - 1) + 1)
obtain ⟨hlo, hhi⟩ := quarterClock_bounds_aux (n - 1) n:ℕhn:1 ≤ nhlo:4 ^ quarterClock (n - 1) ≤ 3 * (n - 1) + 1hhi:3 * (n - 1) + 3 < 4 ^ (quarterClock (n - 1) + 1)⊢ 4 ^ quarterClock (n - 1) ≤ 3 * n ∧ 3 * n < 4 ^ (quarterClock (n - 1) + 1)
exact ⟨by n:ℕhn:1 ≤ nhlo:4 ^ quarterClock (n - 1) ≤ 3 * (n - 1) + 1hhi:3 * (n - 1) + 3 < 4 ^ (quarterClock (n - 1) + 1)⊢ 4 ^ quarterClock (n - 1) ≤ 3 * n omega All goals completed! 🐙, by n:ℕhn:1 ≤ nhlo:4 ^ quarterClock (n - 1) ≤ 3 * (n - 1) + 1hhi:3 * (n - 1) + 3 < 4 ^ (quarterClock (n - 1) + 1)⊢ 3 * n < 4 ^ (quarterClock (n - 1) + 1) omega All goals completed! 🐙⟩
Uniqueness of quarterClock (n - 1) from the 4 ^ q ≤ 3 * n < 4 ^ (q + 1) sandwich.
theorem quarterClock_eq_of_bounds {n q : ℕ} (hn : 1 ≤ n)
(hlo : 4 ^ q ≤ 3 * n) (hhi : 3 * n < 4 ^ (q + 1)) :
quarterClock (n - 1) = q := by n:ℕq:ℕhn:1 ≤ nhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)⊢ quarterClock (n - 1) = q
obtain ⟨hlo', hhi'⟩ := quarterClock_spec n hn n:ℕq:ℕhn:1 ≤ nhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hlo':4 ^ quarterClock (n - 1) ≤ 3 * nhhi':3 * n < 4 ^ (quarterClock (n - 1) + 1)⊢ quarterClock (n - 1) = q
by_contra hne n:ℕq:ℕhn:1 ≤ nhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hlo':4 ^ quarterClock (n - 1) ≤ 3 * nhhi':3 * n < 4 ^ (quarterClock (n - 1) + 1)hne:¬quarterClock (n - 1) = q⊢ False
rcases lt_or_gt_of_ne hne with hlt | hgt inl n:ℕq:ℕhn:1 ≤ nhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hlo':4 ^ quarterClock (n - 1) ≤ 3 * nhhi':3 * n < 4 ^ (quarterClock (n - 1) + 1)hne:¬quarterClock (n - 1) = qhlt:quarterClock (n - 1) < q⊢ Falseinr n:ℕq:ℕhn:1 ≤ nhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hlo':4 ^ quarterClock (n - 1) ≤ 3 * nhhi':3 * n < 4 ^ (quarterClock (n - 1) + 1)hne:¬quarterClock (n - 1) = qhgt:q < quarterClock (n - 1)⊢ False
· inl n:ℕq:ℕhn:1 ≤ nhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hlo':4 ^ quarterClock (n - 1) ≤ 3 * nhhi':3 * n < 4 ^ (quarterClock (n - 1) + 1)hne:¬quarterClock (n - 1) = qhlt:quarterClock (n - 1) < q⊢ False have hpow : 4 ^ (quarterClock (n - 1) + 1) ≤ 4 ^ q :=
Nat.pow_le_pow_right (by n:ℕq:ℕhn:1 ≤ nhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hlo':4 ^ quarterClock (n - 1) ≤ 3 * nhhi':3 * n < 4 ^ (quarterClock (n - 1) + 1)hne:¬quarterClock (n - 1) = qhlt:quarterClock (n - 1) < q⊢ 4 > 0 omega All goals completed! 🐙) hlt inl n:ℕq:ℕhn:1 ≤ nhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hlo':4 ^ quarterClock (n - 1) ≤ 3 * nhhi':3 * n < 4 ^ (quarterClock (n - 1) + 1)hne:¬quarterClock (n - 1) = qhlt:quarterClock (n - 1) < qhpow:4 ^ (quarterClock (n - 1) + 1) ≤ 4 ^ q⊢ False
omega All goals completed! 🐙
· inr n:ℕq:ℕhn:1 ≤ nhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hlo':4 ^ quarterClock (n - 1) ≤ 3 * nhhi':3 * n < 4 ^ (quarterClock (n - 1) + 1)hne:¬quarterClock (n - 1) = qhgt:q < quarterClock (n - 1)⊢ False have hpow : 4 ^ (q + 1) ≤ 4 ^ quarterClock (n - 1) :=
Nat.pow_le_pow_right (by n:ℕq:ℕhn:1 ≤ nhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hlo':4 ^ quarterClock (n - 1) ≤ 3 * nhhi':3 * n < 4 ^ (quarterClock (n - 1) + 1)hne:¬quarterClock (n - 1) = qhgt:q < quarterClock (n - 1)⊢ 4 > 0 omega All goals completed! 🐙) hgt inr n:ℕq:ℕhn:1 ≤ nhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hlo':4 ^ quarterClock (n - 1) ≤ 3 * nhhi':3 * n < 4 ^ (quarterClock (n - 1) + 1)hne:¬quarterClock (n - 1) = qhgt:q < quarterClock (n - 1)hpow:4 ^ (q + 1) ≤ 4 ^ quarterClock (n - 1)⊢ False
omega All goals completed! 🐙
General dyadic helper for 2 ≤ n ≤ 1365:
if a ≤ n ≤ b, 4 ^ q ≤ 3 * n < 4 ^ (q + 1), 2 ^ m ≤ a ^ p (p ≥ 1), and
p * (b - 1) < (q + 1) * 2 ^ q * m * (693147 / 1000000), then ¬ ShuniaCounterexample n.
lemma not_shuniaCounterexample_of_dyadic_small {n a b q m p : ℕ}
(hn2 : 2 ≤ n) (ha : a ≤ n) (hb : n ≤ b) (hp : 1 ≤ p)
(hlo : 4 ^ q ≤ 3 * n) (hhi : 3 * n < 4 ^ (q + 1))
(hpow : 2 ^ m ≤ a ^ p)
(hineq : (p : ℝ) * (b - 1 : ℝ) <
((q + 1) * 2 ^ q * m : ℝ) * (693147 / 1000000 : ℝ)) :
¬ ShuniaCounterexample n := by n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n
unfold ShuniaCounterexample n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)⊢ ¬(quarterClock (n - 1) + 1) * 2 ^ quarterClock (n - 1) ≤ shuniaDeficit n
rw [quarterClock_eq_of_bounds (by n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)⊢ 1 ≤ n omega All goals completed! 🐙) hlo hhi] n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)⊢ ¬(q + 1) * 2 ^ q ≤ shuniaDeficit n
intro hce n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit n⊢ False
have hlog_pos : 0 < Real.log n := Real.log_pos (by n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit n⊢ 1 < ↑n exact_mod_cast hn2 All goals completed! 🐙) n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑n⊢ False
have hpow_n : (2 : ℝ) ^ m ≤ (n : ℝ) ^ p := by n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n
have h1 : (a ^ p : ℕ) ≤ n ^ p := Nat.pow_le_pow_left ha p n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nh1:a ^ p ≤ n ^ p⊢ 2 ^ m ≤ ↑n ^ p
exact_mod_cast hpow.trans h1 n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ p⊢ False
have hlog_m : (m : ℝ) * (693147 / 1000000 : ℝ) ≤ (p : ℝ) * Real.log n := by n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n
have h1 := Real.log_le_log (by n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ p⊢ 0 < 2 ^ m positivity All goals completed! 🐙) hpow_n n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ ph1:Real.log (2 ^ m) ≤ Real.log (↑n ^ p)⊢ ↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑n
rw [Real.log_pow, n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ ph1:↑m * Real.log 2 ≤ Real.log (↑n ^ p)⊢ ↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑n Real.log_pow n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ ph1:↑m * Real.log 2 ≤ ↑p * Real.log ↑n⊢ ↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑n] at h1 n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ ph1:↑m * Real.log 2 ≤ ↑p * Real.log ↑n⊢ ↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑n
have hlog2 := Real.log_two_gt_d9 n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ ph1:↑m * Real.log 2 ≤ ↑p * Real.log ↑nhlog2:0.6931471803 < Real.log 2⊢ ↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑n
nlinarith n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑n⊢ False
have hdef := shuniaDeficit_mul_log_le hn2 (by n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑n⊢ 1 ≤ shuniaDeficit n have := Nat.two_pow_pos q n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nthis:0 < 2 ^ q⊢ 1 ≤ shuniaDeficit n; nlinarith All goals completed! 🐙) n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1⊢ False
have htheta : 0 ≤ Chebyshev.theta n := Chebyshev.theta_nonneg n n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1htheta:0 ≤ Chebyshev.theta ↑n⊢ False
have hce_r : (((q + 1) * 2 ^ q : ℕ) : ℝ) * Real.log n ≤ (n : ℝ) - 1 := by n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n
have h1 : (((q + 1) * 2 ^ q : ℕ) : ℝ) * Real.log n ≤
(shuniaDeficit n : ℝ) * Real.log n :=
mul_le_mul_of_nonneg_right (by n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1htheta:0 ≤ Chebyshev.theta ↑n⊢ ↑((q + 1) * 2 ^ q) ≤ ↑(shuniaDeficit n) exact_mod_cast hce All goals completed! 🐙) hlog_pos.le n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1htheta:0 ≤ Chebyshev.theta ↑nh1:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑(shuniaDeficit n) * Real.log ↑n⊢ ↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑n - 1
linarith n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1htheta:0 ≤ Chebyshev.theta ↑nhce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑n - 1⊢ False
have hmul1 : (((q + 1) * 2 ^ q : ℕ) : ℝ) * ((m : ℝ) * (693147 / 1000000 : ℝ)) ≤
(((q + 1) * 2 ^ q : ℕ) : ℝ) * ((p : ℝ) * Real.log n) :=
mul_le_mul_of_nonneg_left hlog_m (by n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1htheta:0 ≤ Chebyshev.theta ↑nhce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑n - 1⊢ 0 ≤ ↑((q + 1) * 2 ^ q) positivity All goals completed! 🐙) n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1htheta:0 ≤ Chebyshev.theta ↑nhce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑n - 1hmul1:↑((q + 1) * 2 ^ q) * (↑m * (693147 / 1000000)) ≤ ↑((q + 1) * 2 ^ q) * (↑p * Real.log ↑n)⊢ False
have hmul2 : (p : ℝ) * ((((q + 1) * 2 ^ q : ℕ) : ℝ) * Real.log n) ≤ (p : ℝ) * ((n : ℝ) - 1) :=
mul_le_mul_of_nonneg_left hce_r (by n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1htheta:0 ≤ Chebyshev.theta ↑nhce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑n - 1hmul1:↑((q + 1) * 2 ^ q) * (↑m * (693147 / 1000000)) ≤ ↑((q + 1) * 2 ^ q) * (↑p * Real.log ↑n)⊢ 0 ≤ ↑p positivity All goals completed! 🐙) n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1htheta:0 ≤ Chebyshev.theta ↑nhce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑n - 1hmul1:↑((q + 1) * 2 ^ q) * (↑m * (693147 / 1000000)) ≤ ↑((q + 1) * 2 ^ q) * (↑p * Real.log ↑n)hmul2:↑p * (↑((q + 1) * 2 ^ q) * Real.log ↑n) ≤ ↑p * (↑n - 1)⊢ False
have hn_le_b : (n : ℝ) - 1 ≤ (b : ℝ) - 1 := by n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n
have : (n : ℝ) ≤ b := by n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n exact_mod_cast hb n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1htheta:0 ≤ Chebyshev.theta ↑nhce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑n - 1hmul1:↑((q + 1) * 2 ^ q) * (↑m * (693147 / 1000000)) ≤ ↑((q + 1) * 2 ^ q) * (↑p * Real.log ↑n)hmul2:↑p * (↑((q + 1) * 2 ^ q) * Real.log ↑n) ≤ ↑p * (↑n - 1)this:↑n ≤ ↑b⊢ ↑n - 1 ≤ ↑b - 1
linarith n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1htheta:0 ≤ Chebyshev.theta ↑nhce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑n - 1hmul1:↑((q + 1) * 2 ^ q) * (↑m * (693147 / 1000000)) ≤ ↑((q + 1) * 2 ^ q) * (↑p * Real.log ↑n)hmul2:↑p * (↑((q + 1) * 2 ^ q) * Real.log ↑n) ≤ ↑p * (↑n - 1)hn_le_b:↑n - 1 ≤ ↑b - 1⊢ False
have hmul3 : (p : ℝ) * ((n : ℝ) - 1) ≤ (p : ℝ) * ((b : ℝ) - 1) :=
mul_le_mul_of_nonneg_left hn_le_b (by n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1htheta:0 ≤ Chebyshev.theta ↑nhce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑n - 1hmul1:↑((q + 1) * 2 ^ q) * (↑m * (693147 / 1000000)) ≤ ↑((q + 1) * 2 ^ q) * (↑p * Real.log ↑n)hmul2:↑p * (↑((q + 1) * 2 ^ q) * Real.log ↑n) ≤ ↑p * (↑n - 1)hn_le_b:↑n - 1 ≤ ↑b - 1⊢ 0 ≤ ↑p positivity All goals completed! 🐙) n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1htheta:0 ≤ Chebyshev.theta ↑nhce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑n - 1hmul1:↑((q + 1) * 2 ^ q) * (↑m * (693147 / 1000000)) ≤ ↑((q + 1) * 2 ^ q) * (↑p * Real.log ↑n)hmul2:↑p * (↑((q + 1) * 2 ^ q) * Real.log ↑n) ≤ ↑p * (↑n - 1)hn_le_b:↑n - 1 ≤ ↑b - 1hmul3:↑p * (↑n - 1) ≤ ↑p * (↑b - 1)⊢ False
push_cast at hmul1 hmul2 n:ℕa:ℕb:ℕq:ℕm:ℕp:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhp:1 ≤ phlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ a ^ phineq:↑p * (↑b - 1) < (↑q + 1) * 2 ^ q * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n ^ phlog_m:↑m * (693147 / 1000000) ≤ ↑p * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1htheta:0 ≤ Chebyshev.theta ↑nhce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑n - 1hn_le_b:↑n - 1 ≤ ↑b - 1hmul3:↑p * (↑n - 1) ≤ ↑p * (↑b - 1)hmul1:(↑q + 1) * 2 ^ q * (↑m * (693147 / 1000000)) ≤ (↑q + 1) * 2 ^ q * (↑p * Real.log ↑n)hmul2:↑p * ((↑q + 1) * 2 ^ q * Real.log ↑n) ≤ ↑p * (↑n - 1)⊢ False
linarith All goals completed! 🐙
Unconditional verification for 2 ≤ n ≤ 1365 using only factorial centering.
theorem not_shuniaCounterexample_of_le_1365 {n : ℕ} (hn2 : 2 ≤ n) (hn : n ≤ 1365) :
¬ ShuniaCounterexample n := by n:ℕhn2:2 ≤ nhn:n ≤ 1365⊢ ¬ShuniaCounterexample n
by_cases h3 : n ≤ 3 pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:n ≤ 3⊢ ¬ShuniaCounterexample nneg n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3⊢ ¬ShuniaCounterexample n
· pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:n ≤ 3⊢ ¬ShuniaCounterexample n exact not_shuniaCounterexample_of_dyadic_small hn2 (a := 2) (b := 3) (q := 1)
(m := 1) (p := 1) hn2 h3 (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:n ≤ 3⊢ 1 ≤ 1 omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:n ≤ 3⊢ 4 ^ 1 ≤ 3 * n omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:n ≤ 3⊢ 3 * n < 4 ^ (1 + 1) omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:n ≤ 3⊢ 2 ^ 1 ≤ 2 ^ 1 norm_num All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:n ≤ 3⊢ ↑1 * (↑3 - 1) < (↑1 + 1) * 2 ^ 1 * ↑1 * (693147 / 1000000) norm_num All goals completed! 🐙)
by_cases h5 : n ≤ 5 pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:n ≤ 5⊢ ¬ShuniaCounterexample nneg n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5⊢ ¬ShuniaCounterexample n
· pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:n ≤ 5⊢ ¬ShuniaCounterexample n exact not_shuniaCounterexample_of_dyadic_small hn2 (a := 4) (b := 5) (q := 1)
(m := 2) (p := 1) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:n ≤ 5⊢ 4 ≤ n omega All goals completed! 🐙) h5 (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:n ≤ 5⊢ 1 ≤ 1 omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:n ≤ 5⊢ 4 ^ 1 ≤ 3 * n omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:n ≤ 5⊢ 3 * n < 4 ^ (1 + 1) omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:n ≤ 5⊢ 2 ^ 2 ≤ 4 ^ 1 norm_num All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:n ≤ 5⊢ ↑1 * (↑5 - 1) < (↑1 + 1) * 2 ^ 1 * ↑2 * (693147 / 1000000) norm_num All goals completed! 🐙)
by_cases h17 : n ≤ 17 pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:n ≤ 17⊢ ¬ShuniaCounterexample nneg n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17⊢ ¬ShuniaCounterexample n
· pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:n ≤ 17⊢ ¬ShuniaCounterexample n exact not_shuniaCounterexample_of_dyadic_small hn2 (a := 6) (b := 17) (q := 2)
(m := 2) (p := 1) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:n ≤ 17⊢ 6 ≤ n omega All goals completed! 🐙) h17 (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:n ≤ 17⊢ 1 ≤ 1 omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:n ≤ 17⊢ 4 ^ 2 ≤ 3 * n omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:n ≤ 17⊢ 3 * n < 4 ^ (2 + 1) omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:n ≤ 17⊢ 2 ^ 2 ≤ 6 ^ 1 norm_num All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:n ≤ 17⊢ ↑1 * (↑17 - 1) < (↑2 + 1) * 2 ^ 2 * ↑2 * (693147 / 1000000) norm_num All goals completed! 🐙)
by_cases h21 : n ≤ 21 pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:n ≤ 21⊢ ¬ShuniaCounterexample nneg n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21⊢ ¬ShuniaCounterexample n
· pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:n ≤ 21⊢ ¬ShuniaCounterexample n exact not_shuniaCounterexample_of_dyadic_small hn2 (a := 18) (b := 21) (q := 2)
(m := 4) (p := 1) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:n ≤ 21⊢ 18 ≤ n omega All goals completed! 🐙) h21 (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:n ≤ 21⊢ 1 ≤ 1 omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:n ≤ 21⊢ 4 ^ 2 ≤ 3 * n omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:n ≤ 21⊢ 3 * n < 4 ^ (2 + 1) omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:n ≤ 21⊢ 2 ^ 4 ≤ 18 ^ 1 norm_num All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:n ≤ 21⊢ ↑1 * (↑21 - 1) < (↑2 + 1) * 2 ^ 2 * ↑4 * (693147 / 1000000) norm_num All goals completed! 🐙)
by_cases h85 : n ≤ 85 pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:n ≤ 85⊢ ¬ShuniaCounterexample nneg n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85⊢ ¬ShuniaCounterexample n
· pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:n ≤ 85⊢ ¬ShuniaCounterexample n exact not_shuniaCounterexample_of_dyadic_small hn2 (a := 22) (b := 85) (q := 3)
(m := 4) (p := 1) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:n ≤ 85⊢ 22 ≤ n omega All goals completed! 🐙) h85 (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:n ≤ 85⊢ 1 ≤ 1 omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:n ≤ 85⊢ 4 ^ 3 ≤ 3 * n omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:n ≤ 85⊢ 3 * n < 4 ^ (3 + 1) omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:n ≤ 85⊢ 2 ^ 4 ≤ 22 ^ 1 norm_num All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:n ≤ 85⊢ ↑1 * (↑85 - 1) < (↑3 + 1) * 2 ^ 3 * ↑4 * (693147 / 1000000) norm_num All goals completed! 🐙)
by_cases h332 : n ≤ 332 pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:n ≤ 332⊢ ¬ShuniaCounterexample nneg n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332⊢ ¬ShuniaCounterexample n
· pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:n ≤ 332⊢ ¬ShuniaCounterexample n exact not_shuniaCounterexample_of_dyadic_small hn2 (a := 86) (b := 332) (q := 4)
(m := 6) (p := 1) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:n ≤ 332⊢ 86 ≤ n omega All goals completed! 🐙) h332 (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:n ≤ 332⊢ 1 ≤ 1 omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:n ≤ 332⊢ 4 ^ 4 ≤ 3 * n omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:n ≤ 332⊢ 3 * n < 4 ^ (4 + 1) omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:n ≤ 332⊢ 2 ^ 6 ≤ 86 ^ 1 norm_num All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:n ≤ 332⊢ ↑1 * (↑332 - 1) < (↑4 + 1) * 2 ^ 4 * ↑6 * (693147 / 1000000) norm_num All goals completed! 🐙)
by_cases h341 : n ≤ 341 pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:n ≤ 341⊢ ¬ShuniaCounterexample nneg n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341⊢ ¬ShuniaCounterexample n
· pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:n ≤ 341⊢ ¬ShuniaCounterexample n exact not_shuniaCounterexample_of_dyadic_small hn2 (a := 333) (b := 341) (q := 4)
(m := 8) (p := 1) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:n ≤ 341⊢ 333 ≤ n omega All goals completed! 🐙) h341 (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:n ≤ 341⊢ 1 ≤ 1 omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:n ≤ 341⊢ 4 ^ 4 ≤ 3 * n omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:n ≤ 341⊢ 3 * n < 4 ^ (4 + 1) omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:n ≤ 341⊢ 2 ^ 8 ≤ 333 ^ 1 norm_num All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:n ≤ 341⊢ ↑1 * (↑341 - 1) < (↑4 + 1) * 2 ^ 4 * ↑8 * (693147 / 1000000) norm_num All goals completed! 🐙)
by_cases h1023 : n ≤ 1023 pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:n ≤ 1023⊢ ¬ShuniaCounterexample nneg n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023⊢ ¬ShuniaCounterexample n
· pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:n ≤ 1023⊢ ¬ShuniaCounterexample n exact not_shuniaCounterexample_of_dyadic_small hn2 (a := 342) (b := 1023) (q := 5)
(m := 8) (p := 1) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:n ≤ 1023⊢ 342 ≤ n omega All goals completed! 🐙) h1023 (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:n ≤ 1023⊢ 1 ≤ 1 omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:n ≤ 1023⊢ 4 ^ 5 ≤ 3 * n omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:n ≤ 1023⊢ 3 * n < 4 ^ (5 + 1) omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:n ≤ 1023⊢ 2 ^ 8 ≤ 342 ^ 1 norm_num All goals completed! 🐙)
(by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:n ≤ 1023⊢ ↑1 * (↑1023 - 1) < (↑5 + 1) * 2 ^ 5 * ↑8 * (693147 / 1000000) norm_num All goals completed! 🐙)
by_cases h1330 : n ≤ 1330 pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:n ≤ 1330⊢ ¬ShuniaCounterexample nneg n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:¬n ≤ 1330⊢ ¬ShuniaCounterexample n
· pos n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:n ≤ 1330⊢ ¬ShuniaCounterexample n exact not_shuniaCounterexample_of_dyadic_small hn2 (a := 1024) (b := 1330) (q := 5)
(m := 10) (p := 1) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:n ≤ 1330⊢ 1024 ≤ n omega All goals completed! 🐙) h1330 (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:n ≤ 1330⊢ 1 ≤ 1 omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:n ≤ 1330⊢ 4 ^ 5 ≤ 3 * n omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:n ≤ 1330⊢ 3 * n < 4 ^ (5 + 1) omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:n ≤ 1330⊢ 2 ^ 10 ≤ 1024 ^ 1 norm_num All goals completed! 🐙)
(by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:n ≤ 1330⊢ ↑1 * (↑1330 - 1) < (↑5 + 1) * 2 ^ 5 * ↑10 * (693147 / 1000000) norm_num All goals completed! 🐙)
· neg n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:¬n ≤ 1330⊢ ¬ShuniaCounterexample n exact not_shuniaCounterexample_of_dyadic_small hn2 (a := 1331) (b := 1365) (q := 5)
(m := 31) (p := 3) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:¬n ≤ 1330⊢ 1331 ≤ n omega All goals completed! 🐙) hn (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:¬n ≤ 1330⊢ 1 ≤ 3 omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:¬n ≤ 1330⊢ 4 ^ 5 ≤ 3 * n omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:¬n ≤ 1330⊢ 3 * n < 4 ^ (5 + 1) omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:¬n ≤ 1330⊢ 2 ^ 31 ≤ 1331 ^ 3 norm_num All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 1365h3:¬n ≤ 3h5:¬n ≤ 5h17:¬n ≤ 17h21:¬n ≤ 21h85:¬n ≤ 85h332:¬n ≤ 332h341:¬n ≤ 341h1023:¬n ≤ 1023h1330:¬n ≤ 1330⊢ ↑3 * (↑1365 - 1) < (↑5 + 1) * 2 ^ 5 * ↑31 * (693147 / 1000000) norm_num All goals completed! 🐙)
General dyadic helper for 1366 ≤ n ≤ 21845 using Chebyshev.theta_ge:
if a ≤ n ≤ b, 4 ^ q ≤ 3 * n < 4 ^ (q + 1), 2 ^ m ≤ a, b ≤ S_hi ^ 2, and
(1 - 693147/1000000) * b < ((q + 1) * 2 ^ q - 2 * S_hi - 2) * m * 693147/1000000,
then ¬ ShuniaCounterexample n.
lemma not_shuniaCounterexample_of_chebyshev_dyadic {n a b q m S_hi : ℕ}
(hn2 : 2 ≤ n) (ha : a ≤ n) (hb : n ≤ b)
(hlo : 4 ^ q ≤ 3 * n) (hhi : 3 * n < 4 ^ (q + 1))
(hpow : 2 ^ m ≤ a) (hsqrt : b ≤ S_hi ^ 2)
(hW_pos : 2 * S_hi + 2 ≤ (q + 1) * 2 ^ q)
(hineq : (1 - 693147 / 1000000 : ℝ) * (b : ℝ) <
(((q + 1) * 2 ^ q : ℝ) - 2 * (S_hi : ℝ) - 2) * (m : ℝ) * (693147 / 1000000 : ℝ)) :
¬ ShuniaCounterexample n := by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n
unfold ShuniaCounterexample n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)⊢ ¬(quarterClock (n - 1) + 1) * 2 ^ quarterClock (n - 1) ≤ shuniaDeficit n
rw [quarterClock_eq_of_bounds (by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)⊢ 1 ≤ n omega All goals completed! 🐙) hlo hhi] n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)⊢ ¬(q + 1) * 2 ^ q ≤ shuniaDeficit n
intro hce n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit n⊢ False
have hlog_pos : 0 < Real.log n := Real.log_pos (by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit n⊢ 1 < ↑n exact_mod_cast hn2 All goals completed! 🐙) n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑n⊢ False
have hpow_n : (2 : ℝ) ^ m ≤ (n : ℝ) := by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n
exact_mod_cast hpow.trans ha n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n⊢ False
have hlog_m : (m : ℝ) * (693147 / 1000000 : ℝ) ≤ Real.log n := by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n
have h1 := Real.log_le_log (by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑n⊢ 0 < 2 ^ m positivity All goals completed! 🐙) hpow_n n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nh1:Real.log (2 ^ m) ≤ Real.log ↑n⊢ ↑m * (693147 / 1000000) ≤ Real.log ↑n
rw [Real.log_pow n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nh1:↑m * Real.log 2 ≤ Real.log ↑n⊢ ↑m * (693147 / 1000000) ≤ Real.log ↑n] at h1 n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nh1:↑m * Real.log 2 ≤ Real.log ↑n⊢ ↑m * (693147 / 1000000) ≤ Real.log ↑n
have hlog2 := Real.log_two_gt_d9 n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nh1:↑m * Real.log 2 ≤ Real.log ↑nhlog2:0.6931471803 < Real.log 2⊢ ↑m * (693147 / 1000000) ≤ Real.log ↑n
nlinarith n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑n⊢ False
have hsqrt_le : Real.sqrt n ≤ (S_hi : ℝ) := by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n
rw [Real.sqrt_le_left (by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑n⊢ 0 ≤ ↑S_hi positivity All goals completed! 🐙)] n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑n⊢ ↑n ≤ ↑S_hi ^ 2
exact_mod_cast hb.trans hsqrt n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hi⊢ False
have hlog_succ : Real.log ((n : ℝ) + 1) ≤ 2 * Real.log n := by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n
have hsq : (n : ℝ) + 1 ≤ (n : ℝ) ^ 2 := by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n
have hn_r : (2 : ℝ) ≤ n := by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n exact_mod_cast hn2 n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihn_r:2 ≤ ↑n⊢ ↑n + 1 ≤ ↑n ^ 2
nlinarith n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihsq:↑n + 1 ≤ ↑n ^ 2⊢ Real.log (↑n + 1) ≤ 2 * Real.log ↑n
have h1 := Real.log_le_log (by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihsq:↑n + 1 ≤ ↑n ^ 2⊢ 0 < ↑n + 1 positivity All goals completed! 🐙) hsq n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihsq:↑n + 1 ≤ ↑n ^ 2h1:Real.log (↑n + 1) ≤ Real.log (↑n ^ 2)⊢ Real.log (↑n + 1) ≤ 2 * Real.log ↑n
rwa [Real.log_pow, Nat.cast_ofNat] at h1 n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihlog_succ:Real.log (↑n + 1) ≤ 2 * Real.log ↑n⊢ False
have htheta := Chebyshev.theta_ge n n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihlog_succ:Real.log (↑n + 1) ≤ 2 * Real.log ↑nhtheta:↑n * Real.log 2 - Real.log (↑n + 1) - 2 * √↑n * Real.log ↑n ≤ Chebyshev.theta ↑n⊢ False
have hlog2 := Real.log_two_gt_d9 n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihlog_succ:Real.log (↑n + 1) ≤ 2 * Real.log ↑nhtheta:↑n * Real.log 2 - Real.log (↑n + 1) - 2 * √↑n * Real.log ↑n ≤ Chebyshev.theta ↑nhlog2:0.6931471803 < Real.log 2⊢ False
have hdef := shuniaDeficit_mul_log_le hn2 (by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihlog_succ:Real.log (↑n + 1) ≤ 2 * Real.log ↑nhtheta:↑n * Real.log 2 - Real.log (↑n + 1) - 2 * √↑n * Real.log ↑n ≤ Chebyshev.theta ↑nhlog2:0.6931471803 < Real.log 2⊢ 1 ≤ shuniaDeficit n have := Nat.two_pow_pos q n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihlog_succ:Real.log (↑n + 1) ≤ 2 * Real.log ↑nhtheta:↑n * Real.log 2 - Real.log (↑n + 1) - 2 * √↑n * Real.log ↑n ≤ Chebyshev.theta ↑nhlog2:0.6931471803 < Real.log 2this:0 < 2 ^ q⊢ 1 ≤ shuniaDeficit n; nlinarith All goals completed! 🐙) n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihlog_succ:Real.log (↑n + 1) ≤ 2 * Real.log ↑nhtheta:↑n * Real.log 2 - Real.log (↑n + 1) - 2 * √↑n * Real.log ↑n ≤ Chebyshev.theta ↑nhlog2:0.6931471803 < Real.log 2hdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1⊢ False
have hce_r : (((q + 1) * 2 ^ q : ℕ) : ℝ) * Real.log n ≤
(shuniaDeficit n : ℝ) * Real.log n :=
mul_le_mul_of_nonneg_right (by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihlog_succ:Real.log (↑n + 1) ≤ 2 * Real.log ↑nhtheta:↑n * Real.log 2 - Real.log (↑n + 1) - 2 * √↑n * Real.log ↑n ≤ Chebyshev.theta ↑nhlog2:0.6931471803 < Real.log 2hdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1⊢ ↑((q + 1) * 2 ^ q) ≤ ↑(shuniaDeficit n) exact_mod_cast hce All goals completed! 🐙) hlog_pos.le n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihlog_succ:Real.log (↑n + 1) ≤ 2 * Real.log ↑nhtheta:↑n * Real.log 2 - Real.log (↑n + 1) - 2 * √↑n * Real.log ↑n ≤ Chebyshev.theta ↑nhlog2:0.6931471803 < Real.log 2hdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1hce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑(shuniaDeficit n) * Real.log ↑n⊢ False
have hn_le : (n : ℝ) ≤ b := by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n exact_mod_cast hb n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihlog_succ:Real.log (↑n + 1) ≤ 2 * Real.log ↑nhtheta:↑n * Real.log 2 - Real.log (↑n + 1) - 2 * √↑n * Real.log ↑n ≤ Chebyshev.theta ↑nhlog2:0.6931471803 < Real.log 2hdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1hce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑(shuniaDeficit n) * Real.log ↑nhn_le:↑n ≤ ↑b⊢ False
have hW_r : (0 : ℝ) ≤ ((q + 1) * 2 ^ q : ℝ) - 2 * (S_hi : ℝ) - 2 := by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n
have : (2 * S_hi + 2 : ℝ) ≤ ((q + 1) * 2 ^ q : ℕ) := by n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)⊢ ¬ShuniaCounterexample n exact_mod_cast hW_pos n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihlog_succ:Real.log (↑n + 1) ≤ 2 * Real.log ↑nhtheta:↑n * Real.log 2 - Real.log (↑n + 1) - 2 * √↑n * Real.log ↑n ≤ Chebyshev.theta ↑nhlog2:0.6931471803 < Real.log 2hdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1hce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑(shuniaDeficit n) * Real.log ↑nhn_le:↑n ≤ ↑bthis:2 * ↑S_hi + 2 ≤ ↑((q + 1) * 2 ^ q)⊢ 0 ≤ (↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2
push_cast at this n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihlog_succ:Real.log (↑n + 1) ≤ 2 * Real.log ↑nhtheta:↑n * Real.log 2 - Real.log (↑n + 1) - 2 * √↑n * Real.log ↑n ≤ Chebyshev.theta ↑nhlog2:0.6931471803 < Real.log 2hdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1hce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑(shuniaDeficit n) * Real.log ↑nhn_le:↑n ≤ ↑bthis:2 * ↑S_hi + 2 ≤ (↑q + 1) * 2 ^ q⊢ 0 ≤ (↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2
linarith n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihlog_succ:Real.log (↑n + 1) ≤ 2 * Real.log ↑nhtheta:↑n * Real.log 2 - Real.log (↑n + 1) - 2 * √↑n * Real.log ↑n ≤ Chebyshev.theta ↑nhlog2:0.6931471803 < Real.log 2hdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1hce_r:↑((q + 1) * 2 ^ q) * Real.log ↑n ≤ ↑(shuniaDeficit n) * Real.log ↑nhn_le:↑n ≤ ↑bhW_r:0 ≤ (↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2⊢ False
push_cast at hce_r n:ℕa:ℕb:ℕq:ℕm:ℕS_hi:ℕhn2:2 ≤ nha:a ≤ nhb:n ≤ bhlo:4 ^ q ≤ 3 * nhhi:3 * n < 4 ^ (q + 1)hpow:2 ^ m ≤ ahsqrt:b ≤ S_hi ^ 2hW_pos:2 * S_hi + 2 ≤ (q + 1) * 2 ^ qhineq:(1 - 693147 / 1000000) * ↑b < ((↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2) * ↑m * (693147 / 1000000)hce:(q + 1) * 2 ^ q ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhpow_n:2 ^ m ≤ ↑nhlog_m:↑m * (693147 / 1000000) ≤ Real.log ↑nhsqrt_le:√↑n ≤ ↑S_hihlog_succ:Real.log (↑n + 1) ≤ 2 * Real.log ↑nhtheta:↑n * Real.log 2 - Real.log (↑n + 1) - 2 * √↑n * Real.log ↑n ≤ Chebyshev.theta ↑nhlog2:0.6931471803 < Real.log 2hdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1hn_le:↑n ≤ ↑bhW_r:0 ≤ (↑q + 1) * 2 ^ q - 2 * ↑S_hi - 2hce_r:(↑q + 1) * 2 ^ q * Real.log ↑n ≤ ↑(shuniaDeficit n) * Real.log ↑n⊢ False
nlinarith All goals completed! 🐙
Unconditional Small-n Verification (2 ≤ n ≤ 21845):
No integer n in [2, 21845] satisfies ShuniaCounterexample n (0 hypotheses).
theorem not_shuniaCounterexample_of_le_21845 {n : ℕ} (hn2 : 2 ≤ n) (hn : n ≤ 21845) :
¬ ShuniaCounterexample n := by n:ℕhn2:2 ≤ nhn:n ≤ 21845⊢ ¬ShuniaCounterexample n
by_cases h1365 : n ≤ 1365 pos n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:n ≤ 1365⊢ ¬ShuniaCounterexample nneg n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365⊢ ¬ShuniaCounterexample n
· pos n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:n ≤ 1365⊢ ¬ShuniaCounterexample n exact not_shuniaCounterexample_of_le_1365 hn2 h1365 All goals completed! 🐙
by_cases h5461 : n ≤ 5461 pos n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:n ≤ 5461⊢ ¬ShuniaCounterexample nneg n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461⊢ ¬ShuniaCounterexample n
· pos n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:n ≤ 5461⊢ ¬ShuniaCounterexample n exact not_shuniaCounterexample_of_chebyshev_dyadic hn2 (a := 1366) (b := 5461) (q := 6)
(m := 10) (S_hi := 74) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:n ≤ 5461⊢ 1366 ≤ n omega All goals completed! 🐙) h5461 (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:n ≤ 5461⊢ 4 ^ 6 ≤ 3 * n omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:n ≤ 5461⊢ 3 * n < 4 ^ (6 + 1) omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:n ≤ 5461⊢ 2 ^ 10 ≤ 1366 norm_num All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:n ≤ 5461⊢ 5461 ≤ 74 ^ 2 norm_num All goals completed! 🐙)
(by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:n ≤ 5461⊢ 2 * 74 + 2 ≤ (6 + 1) * 2 ^ 6 norm_num All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:n ≤ 5461⊢ (1 - 693147 / 1000000) * ↑5461 < ((↑6 + 1) * 2 ^ 6 - 2 * ↑74 - 2) * ↑10 * (693147 / 1000000) norm_num All goals completed! 🐙)
by_cases h16383 : n ≤ 16383 pos n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:n ≤ 16383⊢ ¬ShuniaCounterexample nneg n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:¬n ≤ 16383⊢ ¬ShuniaCounterexample n
· pos n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:n ≤ 16383⊢ ¬ShuniaCounterexample n exact not_shuniaCounterexample_of_chebyshev_dyadic hn2 (a := 5462) (b := 16383) (q := 7)
(m := 12) (S_hi := 128) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:n ≤ 16383⊢ 5462 ≤ n omega All goals completed! 🐙) h16383 (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:n ≤ 16383⊢ 4 ^ 7 ≤ 3 * n omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:n ≤ 16383⊢ 3 * n < 4 ^ (7 + 1) omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:n ≤ 16383⊢ 2 ^ 12 ≤ 5462 norm_num All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:n ≤ 16383⊢ 16383 ≤ 128 ^ 2 norm_num All goals completed! 🐙)
(by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:n ≤ 16383⊢ 2 * 128 + 2 ≤ (7 + 1) * 2 ^ 7 norm_num All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:n ≤ 16383⊢ (1 - 693147 / 1000000) * ↑16383 < ((↑7 + 1) * 2 ^ 7 - 2 * ↑128 - 2) * ↑12 * (693147 / 1000000) norm_num All goals completed! 🐙)
· neg n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:¬n ≤ 16383⊢ ¬ShuniaCounterexample n exact not_shuniaCounterexample_of_chebyshev_dyadic hn2 (a := 16384) (b := 21845) (q := 7)
(m := 14) (S_hi := 148) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:¬n ≤ 16383⊢ 16384 ≤ n omega All goals completed! 🐙) hn (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:¬n ≤ 16383⊢ 4 ^ 7 ≤ 3 * n omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:¬n ≤ 16383⊢ 3 * n < 4 ^ (7 + 1) omega All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:¬n ≤ 16383⊢ 2 ^ 14 ≤ 16384 norm_num All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:¬n ≤ 16383⊢ 21845 ≤ 148 ^ 2 norm_num All goals completed! 🐙)
(by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:¬n ≤ 16383⊢ 2 * 148 + 2 ≤ (7 + 1) * 2 ^ 7 norm_num All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhn:n ≤ 21845h1365:¬n ≤ 1365h5461:¬n ≤ 5461h16383:¬n ≤ 16383⊢ (1 - 693147 / 1000000) * ↑21845 < ((↑7 + 1) * 2 ^ 7 - 2 * ↑148 - 2) * ↑14 * (693147 / 1000000) norm_num All goals completed! 🐙)
4. One-Sided Landau Converse (¬ RiemannHypothesis → ∃ n ≥ 2, ShuniaCounterexample n)
The one-sided Chebyshev defect g(t) = C * t ^ α + ψ(t) - t.
noncomputable def psiNegDefect (C α : ℝ) (t : ℝ) : ℝ :=
C * t ^ α + Chebyshev.psi t - ttheorem integrableOn_const_rpow_add_psi_sub_self_mul_cpow {s : ℂ} {C α : ℝ}
(hα : α < s.re) (hs : 1 < s.re) :
IntegrableOn (fun t : ℝ ↦
((C * t ^ α + Chebyshev.psi t - t : ℝ) : ℂ) * (t : ℂ) ^ (-(s + 1))) (Set.Ioi 1) := by s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.re⊢ IntegrableOn (fun t ↦ ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volume
have hint_rpow :
IntegrableOn (fun t : ℝ ↦ ((C * t ^ α : ℝ) : ℂ) * (t : ℂ) ^ (-(s + 1))) (Set.Ioi 1) := by
refine IntegrableOn.congr_fun ((integrableOn_rpow_mul_cpow hα).const_mul (C : ℂ))
(fun t _ ↦ ?_) measurableSet_Ioi s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.ret:ℝx✝:t ∈ Set.Ioi 1⊢ ↑C * (↑(t ^ α) * ↑t ^ (-(s + 1))) = ↑(C * t ^ α) * ↑t ^ (-(s + 1))
push_cast s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.ret:ℝx✝:t ∈ Set.Ioi 1⊢ ↑C * (↑(t ^ α) * ↑t ^ (-(s + 1))) = ↑C * ↑(t ^ α) * ↑t ^ (-(s + 1))
ring s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volume⊢ IntegrableOn (fun t ↦ ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volume
refine IntegrableOn.congr_fun
((hint_rpow.add (integrableOn_psi_mul_cpow hs)).sub (integrableOn_self_mul_cpow hs))
(fun t _ ↦ ?_) measurableSet_Ioi s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumet:ℝx✝:t ∈ Set.Ioi 1⊢ (((fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) + fun t ↦ ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))) - fun t ↦
↑t * ↑t ^ (-(s + 1)))
t =
↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
simp only [Pi.sub_apply, Pi.add_apply] s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumet:ℝx✝:t ∈ Set.Ioi 1⊢ ↑(C * t ^ α) * ↑t ^ (-(s + 1)) + ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1)) - ↑t * ↑t ^ (-(s + 1)) =
↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
push_cast s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumet:ℝx✝:t ∈ Set.Ioi 1⊢ ↑C * ↑(t ^ α) * ↑t ^ (-(s + 1)) + ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1)) - ↑t * ↑t ^ (-(s + 1)) =
(↑C * ↑(t ^ α) + ↑(Chebyshev.psi t) - ↑t) * ↑t ^ (-(s + 1))
ring All goals completed! 🐙theorem mellin_const_rpow_add_psi_sub_self {s : ℂ} {C α : ℝ} (hα : α < s.re) (hs : 1 < s.re) :
(C : ℂ) / (s - α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
∫ t in Set.Ioi (1 : ℝ),
((C * t ^ α + Chebyshev.psi t - t : ℝ) : ℂ) * (t : ℂ) ^ (-(s + 1)) := by s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.re⊢ ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
have hs0 : s ≠ 0 := ne_zero_of_one_lt_re hs s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0⊢ ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
have hpsi := neg_deriv_riemannZeta_div_eq_mul_integral_psi hs s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))⊢ ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
have hpsi_div :
-deriv riemannZeta s / (s * riemannZeta s) =
∫ t in Set.Ioi (1 : ℝ), (Chebyshev.psi t : ℂ) * (t : ℂ) ^ (-(s + 1)) := by
calc
-deriv riemannZeta s / (s * riemannZeta s)
= (-deriv riemannZeta s / riemannZeta s) / s := by s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))⊢ -deriv riemannZeta s / (s * riemannZeta s) = -deriv riemannZeta s / riemannZeta s / s ring All goals completed! 🐙
_ = (s * ∫ t in Set.Ioi (1 : ℝ), (Chebyshev.psi t : ℂ) * (t : ℂ) ^ (-(s + 1))) / s := by s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))⊢ -deriv riemannZeta s / riemannZeta s / s = (s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))) / s
rw [hpsi s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))⊢ (s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))) / s =
(s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))) / s] All goals completed! 🐙
_ = ∫ t in Set.Ioi (1 : ℝ), (Chebyshev.psi t : ℂ) * (t : ℂ) ^ (-(s + 1)) :=
mul_div_cancel_left₀ _ hs0 s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))⊢ ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
have hrpow :
(C : ℂ) / (s - α) =
∫ t in Set.Ioi (1 : ℝ), ((C * t ^ α : ℝ) : ℂ) * (t : ℂ) ^ (-(s + 1)) := by
calc
(C : ℂ) / (s - α)
= (C : ℂ) * ∫ t in Set.Ioi (1 : ℝ), ((t ^ α : ℝ) : ℂ) * (t : ℂ) ^ (-(s + 1)) := by s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))⊢ ↑C / (s - ↑α) = ↑C * ∫ (t : ℝ) in Set.Ioi 1, ↑(t ^ α) * ↑t ^ (-(s + 1))
rw [integral_Ioi_rpow_mul_cpow hα, s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))⊢ ↑C / (s - ↑α) = ↑C * (1 / (s - ↑α)) mul_one_div s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))⊢ ↑C / (s - ↑α) = ↑C / (s - ↑α)] All goals completed! 🐙
_ = ∫ t in Set.Ioi (1 : ℝ), (C : ℂ) * (((t ^ α : ℝ) : ℂ) * (t : ℂ) ^ (-(s + 1))) :=
(integral_const_mul _ _).symm
_ = ∫ t in Set.Ioi (1 : ℝ), ((C * t ^ α : ℝ) : ℂ) * (t : ℂ) ^ (-(s + 1)) := by s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))⊢ ∫ (t : ℝ) in Set.Ioi 1, ↑C * (↑(t ^ α) * ↑t ^ (-(s + 1))) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))
refine setIntegral_congr_fun measurableSet_Ioi fun t _ ↦ ?_ s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))t:ℝx✝:t ∈ Set.Ioi 1⊢ ↑C * (↑(t ^ α) * ↑t ^ (-(s + 1))) = ↑(C * t ^ α) * ↑t ^ (-(s + 1))
push_cast s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))t:ℝx✝:t ∈ Set.Ioi 1⊢ ↑C * (↑(t ^ α) * ↑t ^ (-(s + 1))) = ↑C * ↑(t ^ α) * ↑t ^ (-(s + 1))
ring s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))⊢ ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
have hself := (integral_Ioi_self_mul_cpow hs).symm s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))⊢ ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
have hint_rpow :
IntegrableOn (fun t : ℝ ↦ ((C * t ^ α : ℝ) : ℂ) * (t : ℂ) ^ (-(s + 1))) (Set.Ioi 1) := by
refine IntegrableOn.congr_fun ((integrableOn_rpow_mul_cpow hα).const_mul (C : ℂ))
(fun t _ ↦ ?_) measurableSet_Ioi s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))t:ℝx✝:t ∈ Set.Ioi 1⊢ ↑C * (↑(t ^ α) * ↑t ^ (-(s + 1))) = ↑(C * t ^ α) * ↑t ^ (-(s + 1))
push_cast s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))t:ℝx✝:t ∈ Set.Ioi 1⊢ ↑C * (↑(t ^ α) * ↑t ^ (-(s + 1))) = ↑C * ↑(t ^ α) * ↑t ^ (-(s + 1))
ring s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))hint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volume⊢ ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
have hsub :
(C : ℂ) / (s - α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
(C : ℂ) / (s - α) + (-deriv riemannZeta s / (s * riemannZeta s)) - 1 / (s - 1) := by
ring s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))hint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumehsub:↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) + -deriv riemannZeta s / (s * riemannZeta s) - 1 / (s - 1)⊢ ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
rw [hsub, s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))hint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumehsub:↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) + -deriv riemannZeta s / (s * riemannZeta s) - 1 / (s - 1)⊢ ↑C / (s - ↑α) + -deriv riemannZeta s / (s * riemannZeta s) - 1 / (s - 1) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1)) hrpow, s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))hint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumehsub:↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) + -deriv riemannZeta s / (s * riemannZeta s) - 1 / (s - 1)⊢ (∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))) + -deriv riemannZeta s / (s * riemannZeta s) - 1 / (s - 1) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1)) hself, s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))hint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumehsub:↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) + -deriv riemannZeta s / (s * riemannZeta s) - 1 / (s - 1)⊢ (∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))) + -deriv riemannZeta s / (s * riemannZeta s) -
∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1)) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1)) hpsi_div, s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))hint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumehsub:↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) + -deriv riemannZeta s / (s * riemannZeta s) - 1 / (s - 1)⊢ ((∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))) +
∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))) -
∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1)) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1)) ← integral_add hint_rpow (integrableOn_psi_mul_cpow hs) s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))hint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumehsub:↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) + -deriv riemannZeta s / (s * riemannZeta s) - 1 / (s - 1)⊢ (∫ (a : ℝ) in Set.Ioi 1, ↑(C * a ^ α) * ↑a ^ (-(s + 1)) + ↑(Chebyshev.psi a) * ↑a ^ (-(s + 1))) -
∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1)) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))] s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))hint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumehsub:↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) + -deriv riemannZeta s / (s * riemannZeta s) - 1 / (s - 1)⊢ (∫ (a : ℝ) in Set.Ioi 1, ↑(C * a ^ α) * ↑a ^ (-(s + 1)) + ↑(Chebyshev.psi a) * ↑a ^ (-(s + 1))) -
∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1)) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
have hint_add :
IntegrableOn (fun a : ℝ ↦ ((C * a ^ α : ℝ) : ℂ) * (a : ℂ) ^ (-(s + 1)) +
(Chebyshev.psi a : ℂ) * (a : ℂ) ^ (-(s + 1))) (Set.Ioi 1) :=
hint_rpow.add (integrableOn_psi_mul_cpow hs) s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))hint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumehsub:↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) + -deriv riemannZeta s / (s * riemannZeta s) - 1 / (s - 1)hint_add:IntegrableOn (fun a ↦ ↑(C * a ^ α) * ↑a ^ (-(s + 1)) + ↑(Chebyshev.psi a) * ↑a ^ (-(s + 1))) (Set.Ioi 1) volume⊢ (∫ (a : ℝ) in Set.Ioi 1, ↑(C * a ^ α) * ↑a ^ (-(s + 1)) + ↑(Chebyshev.psi a) * ↑a ^ (-(s + 1))) -
∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1)) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
rw [← integral_sub hint_add (integrableOn_self_mul_cpow hs) s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))hint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumehsub:↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) + -deriv riemannZeta s / (s * riemannZeta s) - 1 / (s - 1)hint_add:IntegrableOn (fun a ↦ ↑(C * a ^ α) * ↑a ^ (-(s + 1)) + ↑(Chebyshev.psi a) * ↑a ^ (-(s + 1))) (Set.Ioi 1) volume⊢ ∫ (a : ℝ) in Set.Ioi 1, ↑(C * a ^ α) * ↑a ^ (-(s + 1)) + ↑(Chebyshev.psi a) * ↑a ^ (-(s + 1)) - ↑a * ↑a ^ (-(s + 1)) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))] s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))hint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumehsub:↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) + -deriv riemannZeta s / (s * riemannZeta s) - 1 / (s - 1)hint_add:IntegrableOn (fun a ↦ ↑(C * a ^ α) * ↑a ^ (-(s + 1)) + ↑(Chebyshev.psi a) * ↑a ^ (-(s + 1))) (Set.Ioi 1) volume⊢ ∫ (a : ℝ) in Set.Ioi 1, ↑(C * a ^ α) * ↑a ^ (-(s + 1)) + ↑(Chebyshev.psi a) * ↑a ^ (-(s + 1)) - ↑a * ↑a ^ (-(s + 1)) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
refine setIntegral_congr_fun measurableSet_Ioi fun t _ ↦ ?_ s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))hint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumehsub:↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) + -deriv riemannZeta s / (s * riemannZeta s) - 1 / (s - 1)hint_add:IntegrableOn (fun a ↦ ↑(C * a ^ α) * ↑a ^ (-(s + 1)) + ↑(Chebyshev.psi a) * ↑a ^ (-(s + 1))) (Set.Ioi 1) volumet:ℝx✝:t ∈ Set.Ioi 1⊢ ↑(C * t ^ α) * ↑t ^ (-(s + 1)) + ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1)) - ↑t * ↑t ^ (-(s + 1)) =
↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
push_cast s:ℂC:ℝα:ℝhα:α < s.rehs:1 < s.rehs0:s ≠ 0hpsi:-deriv riemannZeta s / riemannZeta s = s * ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hpsi_div:-deriv riemannZeta s / (s * riemannZeta s) = ∫ (t : ℝ) in Set.Ioi 1, ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1))hrpow:↑C / (s - ↑α) = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α) * ↑t ^ (-(s + 1))hself:1 / (s - 1) = ∫ (t : ℝ) in Set.Ioi 1, ↑t * ↑t ^ (-(s + 1))hint_rpow:IntegrableOn (fun t ↦ ↑(C * t ^ α) * ↑t ^ (-(s + 1))) (Set.Ioi 1) volumehsub:↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) + -deriv riemannZeta s / (s * riemannZeta s) - 1 / (s - 1)hint_add:IntegrableOn (fun a ↦ ↑(C * a ^ α) * ↑a ^ (-(s + 1)) + ↑(Chebyshev.psi a) * ↑a ^ (-(s + 1))) (Set.Ioi 1) volumet:ℝx✝:t ∈ Set.Ioi 1⊢ ↑C * ↑(t ^ α) * ↑t ^ (-(s + 1)) + ↑(Chebyshev.psi t) * ↑t ^ (-(s + 1)) - ↑t * ↑t ^ (-(s + 1)) =
(↑C * ↑(t ^ α) + ↑(Chebyshev.psi t) - ↑t) * ↑t ^ (-(s + 1))
ring All goals completed! 🐙theorem mellin_neg_lhs_eq_completedPoleZeta {s : ℂ} {C α : ℝ}
(hs0 : s ≠ 0) (hs1 : s ≠ 1) (hz : riemannZeta s ≠ 0) :
(C : ℂ) / (s - α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
(C : ℂ) / (s - α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s) := by s:ℂC:ℝα:ℝhs0:s ≠ 0hs1:s ≠ 1hz:riemannZeta s ≠ 0⊢ ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s)
have h1 : deriv completedPoleZeta s / (s * completedPoleZeta s) =
(deriv completedPoleZeta s / completedPoleZeta s) / s := by ring s:ℂC:ℝα:ℝhs0:s ≠ 0hs1:s ≠ 1hz:riemannZeta s ≠ 0h1:deriv completedPoleZeta s / (s * completedPoleZeta s) = deriv completedPoleZeta s / completedPoleZeta s / s⊢ ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s)
rw [h1, s:ℂC:ℝα:ℝhs0:s ≠ 0hs1:s ≠ 1hz:riemannZeta s ≠ 0h1:deriv completedPoleZeta s / (s * completedPoleZeta s) = deriv completedPoleZeta s / completedPoleZeta s / s⊢ ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) - 1 / s - deriv completedPoleZeta s / completedPoleZeta s / s deriv_completedPoleZeta_div_eq hs1 hz s:ℂC:ℝα:ℝhs0:s ≠ 0hs1:s ≠ 1hz:riemannZeta s ≠ 0h1:deriv completedPoleZeta s / (s * completedPoleZeta s) = deriv completedPoleZeta s / completedPoleZeta s / s⊢ ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) - 1 / s - (1 / (s - 1) + deriv riemannZeta s / riemannZeta s) / s] s:ℂC:ℝα:ℝhs0:s ≠ 0hs1:s ≠ 1hz:riemannZeta s ≠ 0h1:deriv completedPoleZeta s / (s * completedPoleZeta s) = deriv completedPoleZeta s / completedPoleZeta s / s⊢ ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) - 1 / s - (1 / (s - 1) + deriv riemannZeta s / riemannZeta s) / s
have hs1' : s - 1 ≠ 0 := sub_ne_zero.mpr hs1 s:ℂC:ℝα:ℝhs0:s ≠ 0hs1:s ≠ 1hz:riemannZeta s ≠ 0h1:deriv completedPoleZeta s / (s * completedPoleZeta s) = deriv completedPoleZeta s / completedPoleZeta s / shs1':s - 1 ≠ 0⊢ ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) =
↑C / (s - ↑α) - 1 / s - (1 / (s - 1) + deriv riemannZeta s / riemannZeta s) / s
field_simp s:ℂC:ℝα:ℝhs0:s ≠ 0hs1:s ≠ 1hz:riemannZeta s ≠ 0h1:deriv completedPoleZeta s / (s * completedPoleZeta s) = deriv completedPoleZeta s / completedPoleZeta s / shs1':s - 1 ≠ 0⊢ s * (↑C * (s - 1) / (s - ↑α) - 1) * riemannZeta s - (s - 1) * deriv riemannZeta s =
(s - 1) * riemannZeta s * (↑C * s / (s - ↑α) - 1) - (riemannZeta s + (s - 1) * deriv riemannZeta s)
ring All goals completed! 🐙theorem integrableOn_psiNegDefect_rpow_of_one_lt {C α σ : ℝ} (hα : α < σ) (hσ : 1 < σ) :
IntegrableOn (fun t : ℝ ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) := by C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σ⊢ IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
have hα_c : α < (σ : ℂ).re := by simpa using hα C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σhα_c:α < (↑σ).re⊢ IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
have hσ_c : 1 < (σ : ℂ).re := by simpa using hσ C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σhα_c:α < (↑σ).rehσ_c:1 < (↑σ).re⊢ IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
have h_cpow := integrableOn_const_rpow_add_psi_sub_self_mul_cpow (C := C) hα_c hσ_c C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σhα_c:α < (↑σ).rehσ_c:1 < (↑σ).reh_cpow:IntegrableOn (fun t ↦ ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))) (Set.Ioi 1) volume⊢ IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
have h_re : IntegrableOn
(fun t : ℝ ↦ (((C * t ^ α + Chebyshev.psi t - t : ℝ) : ℂ) *
(t : ℂ) ^ (-((σ : ℂ) + 1))).re) (Set.Ioi 1) :=
Complex.reCLM.integrable_comp h_cpow C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σhα_c:α < (↑σ).rehσ_c:1 < (↑σ).reh_cpow:IntegrableOn (fun t ↦ ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))) (Set.Ioi 1) volumeh_re:IntegrableOn (fun t ↦ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))).re) (Set.Ioi 1) volume⊢ IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
refine h_re.congr_fun (fun t ht ↦ ?_) measurableSet_Ioi C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σhα_c:α < (↑σ).rehσ_c:1 < (↑σ).reh_cpow:IntegrableOn (fun t ↦ ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))) (Set.Ioi 1) volumeh_re:IntegrableOn (fun t ↦ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))).re) (Set.Ioi 1) volumet:ℝht:t ∈ Set.Ioi 1⊢ (fun t ↦ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))).re) t = psiNegDefect C α t * t ^ (-(σ + 1))
have ht_pos : 0 < t := zero_lt_one.trans ht C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σhα_c:α < (↑σ).rehσ_c:1 < (↑σ).reh_cpow:IntegrableOn (fun t ↦ ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))) (Set.Ioi 1) volumeh_re:IntegrableOn (fun t ↦ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))).re) (Set.Ioi 1) volumet:ℝht:t ∈ Set.Ioi 1ht_pos:0 < t⊢ (fun t ↦ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))).re) t = psiNegDefect C α t * t ^ (-(σ + 1))
have h_exp : -((σ : ℂ) + 1) = ((-(σ + 1) : ℝ) : ℂ) := by C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σ⊢ IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume push_cast C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σhα_c:α < (↑σ).rehσ_c:1 < (↑σ).reh_cpow:IntegrableOn (fun t ↦ ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))) (Set.Ioi 1) volumeh_re:IntegrableOn (fun t ↦ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))).re) (Set.Ioi 1) volumet:ℝht:t ∈ Set.Ioi 1ht_pos:0 < t⊢ -(↑σ + 1) = -(↑σ + 1); ring C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σhα_c:α < (↑σ).rehσ_c:1 < (↑σ).reh_cpow:IntegrableOn (fun t ↦ ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))) (Set.Ioi 1) volumeh_re:IntegrableOn (fun t ↦ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))).re) (Set.Ioi 1) volumet:ℝht:t ∈ Set.Ioi 1ht_pos:0 < th_exp:-(↑σ + 1) = ↑(-(σ + 1))⊢ (fun t ↦ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))).re) t = psiNegDefect C α t * t ^ (-(σ + 1))
dsimp [psiNegDefect] C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σhα_c:α < (↑σ).rehσ_c:1 < (↑σ).reh_cpow:IntegrableOn (fun t ↦ ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))) (Set.Ioi 1) volumeh_re:IntegrableOn (fun t ↦ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))).re) (Set.Ioi 1) volumet:ℝht:t ∈ Set.Ioi 1ht_pos:0 < th_exp:-(↑σ + 1) = ↑(-(σ + 1))⊢ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))).re = (C * t ^ α + Chebyshev.psi t - t) * t ^ (-(σ + 1))
rw [h_exp, C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σhα_c:α < (↑σ).rehσ_c:1 < (↑σ).reh_cpow:IntegrableOn (fun t ↦ ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))) (Set.Ioi 1) volumeh_re:IntegrableOn (fun t ↦ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))).re) (Set.Ioi 1) volumet:ℝht:t ∈ Set.Ioi 1ht_pos:0 < th_exp:-(↑σ + 1) = ↑(-(σ + 1))⊢ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ ↑(-(σ + 1))).re = (C * t ^ α + Chebyshev.psi t - t) * t ^ (-(σ + 1)) ← Complex.ofReal_cpow ht_pos.le, C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σhα_c:α < (↑σ).rehσ_c:1 < (↑σ).reh_cpow:IntegrableOn (fun t ↦ ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))) (Set.Ioi 1) volumeh_re:IntegrableOn (fun t ↦ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))).re) (Set.Ioi 1) volumet:ℝht:t ∈ Set.Ioi 1ht_pos:0 < th_exp:-(↑σ + 1) = ↑(-(σ + 1))⊢ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑(t ^ (-(σ + 1)))).re = (C * t ^ α + Chebyshev.psi t - t) * t ^ (-(σ + 1)) ← Complex.ofReal_mul, C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σhα_c:α < (↑σ).rehσ_c:1 < (↑σ).reh_cpow:IntegrableOn (fun t ↦ ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))) (Set.Ioi 1) volumeh_re:IntegrableOn (fun t ↦ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))).re) (Set.Ioi 1) volumet:ℝht:t ∈ Set.Ioi 1ht_pos:0 < th_exp:-(↑σ + 1) = ↑(-(σ + 1))⊢ (↑((C * t ^ α + Chebyshev.psi t - t) * t ^ (-(σ + 1)))).re = (C * t ^ α + Chebyshev.psi t - t) * t ^ (-(σ + 1)) Complex.ofReal_re C:ℝα:ℝσ:ℝhα:α < σhσ:1 < σhα_c:α < (↑σ).rehσ_c:1 < (↑σ).reh_cpow:IntegrableOn (fun t ↦ ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))) (Set.Ioi 1) volumeh_re:IntegrableOn (fun t ↦ (↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(↑σ + 1))).re) (Set.Ioi 1) volumet:ℝht:t ∈ Set.Ioi 1ht_pos:0 < th_exp:-(↑σ + 1) = ↑(-(σ + 1))⊢ (C * t ^ α + Chebyshev.psi t - t) * t ^ (-(σ + 1)) = (C * t ^ α + Chebyshev.psi t - t) * t ^ (-(σ + 1))] All goals completed! 🐙theorem mellinLogDeriv_zero_psiNegDefect_eq_of_one_lt_re {C α : ℝ} {s : ℂ}
(hα : α < s.re) (hs : 1 < s.re) :
mellinLogDeriv (psiNegDefect C α) 0 s =
(C : ℂ) / (s - α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s) := by C:ℝα:ℝs:ℂhα:α < s.rehs:1 < s.re⊢ mellinLogDeriv (psiNegDefect C α) 0 s = ↑C / (s - ↑α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s)
have hs0 : s ≠ 0 := ne_zero_of_one_lt_re hs C:ℝα:ℝs:ℂhα:α < s.rehs:1 < s.rehs0:s ≠ 0⊢ mellinLogDeriv (psiNegDefect C α) 0 s = ↑C / (s - ↑α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s)
have hs1 : s ≠ 1 := by
intro h C:ℝα:ℝs:ℂhα:α < s.rehs:1 < s.rehs0:s ≠ 0h:s = 1⊢ False
subst h C:ℝα:ℝhα:α < re 1hs:1 < re 1hs0:1 ≠ 0⊢ False
simp at hs C:ℝα:ℝs:ℂhα:α < s.rehs:1 < s.rehs0:s ≠ 0hs1:s ≠ 1⊢ mellinLogDeriv (psiNegDefect C α) 0 s = ↑C / (s - ↑α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s)
have hz : riemannZeta s ≠ 0 := riemannZeta_ne_zero_of_one_le_re hs.le C:ℝα:ℝs:ℂhα:α < s.rehs:1 < s.rehs0:s ≠ 0hs1:s ≠ 1hz:riemannZeta s ≠ 0⊢ mellinLogDeriv (psiNegDefect C α) 0 s = ↑C / (s - ↑α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s)
rw [← mellin_neg_lhs_eq_completedPoleZeta hs0 hs1 hz, C:ℝα:ℝs:ℂhα:α < s.rehs:1 < s.rehs0:s ≠ 0hs1:s ≠ 1hz:riemannZeta s ≠ 0⊢ mellinLogDeriv (psiNegDefect C α) 0 s = ↑C / (s - ↑α) - 1 / (s - 1) - deriv riemannZeta s / (s * riemannZeta s) mellin_const_rpow_add_psi_sub_self hα hs, C:ℝα:ℝs:ℂhα:α < s.rehs:1 < s.rehs0:s ≠ 0hs1:s ≠ 1hz:riemannZeta s ≠ 0⊢ mellinLogDeriv (psiNegDefect C α) 0 s = ∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
mellinLogDeriv C:ℝα:ℝs:ℂhα:α < s.rehs:1 < s.rehs0:s ≠ 0hs1:s ≠ 1hz:riemannZeta s ≠ 0⊢ ∫ (t : ℝ) in Set.Ioi 1, (-1) ^ 0 * ↑(psiNegDefect C α t * Real.log t ^ 0) * ↑t ^ (-(s + 1)) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))] C:ℝα:ℝs:ℂhα:α < s.rehs:1 < s.rehs0:s ≠ 0hs1:s ≠ 1hz:riemannZeta s ≠ 0⊢ ∫ (t : ℝ) in Set.Ioi 1, (-1) ^ 0 * ↑(psiNegDefect C α t * Real.log t ^ 0) * ↑t ^ (-(s + 1)) =
∫ (t : ℝ) in Set.Ioi 1, ↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
refine setIntegral_congr_fun measurableSet_Ioi fun t _ ↦ ?_ C:ℝα:ℝs:ℂhα:α < s.rehs:1 < s.rehs0:s ≠ 0hs1:s ≠ 1hz:riemannZeta s ≠ 0t:ℝx✝:t ∈ Set.Ioi 1⊢ (-1) ^ 0 * ↑(psiNegDefect C α t * Real.log t ^ 0) * ↑t ^ (-(s + 1)) =
↑(C * t ^ α + Chebyshev.psi t - t) * ↑t ^ (-(s + 1))
simp [psiNegDefect] All goals completed! 🐙theorem completedPoleZeta_mul_mellinLogDeriv_zero_psiNegDefect_eq {C α σ₀ : ℝ}
(hα0 : 0 < α) (hασ₀ : α ≤ σ₀) (hσ₀1 : σ₀ ≤ 1)
(hg_nonneg : ∀ t : ℝ, 1 ≤ t → 0 ≤ psiNegDefect C α t)
(hInt : ∀ σ : ℝ, σ₀ < σ →
IntegrableOn (fun t : ℝ ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1))
{s : ℂ} (hs : σ₀ < s.re) :
completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
((C : ℂ) / (s - α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s := by C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.re⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s
let U : Set ℂ := {z : ℂ | σ₀ < z.re} C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s
have hOpen : IsOpen U := isOpen_lt continuous_const Complex.continuous_re C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen U⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s
have hPre : IsPreconnected U := (convex_halfPlane_re_gt σ₀).isPreconnected C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected U⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s
let G_lhs : ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 z C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 z⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s
let G_rhs : ℂ → ℂ := fun z ↦
((C : ℂ) / (z - α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / z C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / z⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s
have hAn_lhs : AnalyticOnNhd ℂ G_lhs U := by
refine DifferentiableOn.analyticOnNhd (fun z hz ↦ ?_) hOpen C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zz:ℂhz:z ∈ U⊢ DifferentiableWithinAt ℂ G_lhs U z
exact (differentiable_completedPoleZeta z).differentiableWithinAt.mul
(hasDerivAt_mellinLogDeriv hg_nonneg hInt 0 hz).differentiableAt.differentiableWithinAt C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs U⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s
have hAn_rhs : AnalyticOnNhd ℂ G_rhs U := by
refine DifferentiableOn.analyticOnNhd (fun z hz ↦ ?_) hOpen C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs Uz:ℂhz:z ∈ U⊢ DifferentiableWithinAt ℂ G_rhs U z
have hz_re : σ₀ < z.re := hz C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs Uz:ℂhz:z ∈ Uhz_re:σ₀ < z.re⊢ DifferentiableWithinAt ℂ G_rhs U z
have hz_sub_ne : z - (α : ℂ) ≠ 0 := by C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.re⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s
intro hsub C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs Uz:ℂhz:z ∈ Uhz_re:σ₀ < z.rehsub:z - ↑α = 0⊢ False
have hre := congrArg Complex.re (sub_eq_zero.mp hsub) C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs Uz:ℂhz:z ∈ Uhz_re:σ₀ < z.rehsub:z - ↑α = 0hre:z.re = (↑α).re⊢ False
simp only [ofReal_re] at hre C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs Uz:ℂhz:z ∈ Uhz_re:σ₀ < z.rehsub:z - ↑α = 0hre:z.re = α⊢ False
linarith C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs Uz:ℂhz:z ∈ Uhz_re:σ₀ < z.rehz_sub_ne:z - ↑α ≠ 0⊢ DifferentiableWithinAt ℂ G_rhs U z
have hz_ne : z ≠ 0 := by C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.re⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s
intro hz0 C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs Uz:ℂhz:z ∈ Uhz_re:σ₀ < z.rehz_sub_ne:z - ↑α ≠ 0hz0:z = 0⊢ False
have hre := congrArg Complex.re hz0 C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs Uz:ℂhz:z ∈ Uhz_re:σ₀ < z.rehz_sub_ne:z - ↑α ≠ 0hz0:z = 0hre:z.re = re 0⊢ False
simp only [zero_re] at hre C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs Uz:ℂhz:z ∈ Uhz_re:σ₀ < z.rehz_sub_ne:z - ↑α ≠ 0hz0:z = 0hre:z.re = 0⊢ False
linarith C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs Uz:ℂhz:z ∈ Uhz_re:σ₀ < z.rehz_sub_ne:z - ↑α ≠ 0hz_ne:z ≠ 0⊢ DifferentiableWithinAt ℂ G_rhs U z
have hd1 : DifferentiableAt ℂ (fun w : ℂ ↦ (C : ℂ) / (w - α) - 1 / w) z :=
((differentiableAt_const (C : ℂ)).div
(differentiableAt_id.sub (differentiableAt_const (α : ℂ))) hz_sub_ne).sub
((differentiableAt_const (1 : ℂ)).div differentiableAt_id hz_ne) C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs Uz:ℂhz:z ∈ Uhz_re:σ₀ < z.rehz_sub_ne:z - ↑α ≠ 0hz_ne:z ≠ 0hd1:DifferentiableAt ℂ (fun w ↦ ↑C / (w - ↑α) - 1 / w) z⊢ DifferentiableWithinAt ℂ G_rhs U z
have hd2 : DifferentiableAt ℂ (fun w : ℂ ↦ deriv completedPoleZeta w / w) z :=
(differentiable_completedPoleZeta.deriv z).div differentiableAt_id hz_ne C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs Uz:ℂhz:z ∈ Uhz_re:σ₀ < z.rehz_sub_ne:z - ↑α ≠ 0hz_ne:z ≠ 0hd1:DifferentiableAt ℂ (fun w ↦ ↑C / (w - ↑α) - 1 / w) zhd2:DifferentiableAt ℂ (fun w ↦ deriv completedPoleZeta w / w) z⊢ DifferentiableWithinAt ℂ G_rhs U z
exact ((hd1.mul (differentiable_completedPoleZeta z)).sub hd2).differentiableWithinAt C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs U⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s
have h2_mem : (2 : ℂ) ∈ U := by
simp only [U, Set.mem_ofPred_eq] C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs U⊢ σ₀ < re 2
have : (2 : ℂ).re = 2 := by C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.re⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s norm_num C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uthis:re 2 = 2⊢ σ₀ < re 2
linarith C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ U⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s
have hEv : G_lhs =ᶠ[𝓝 (2 : ℂ)] G_rhs := by
filter_upwards [(isOpen_lt continuous_const Complex.continuous_re).mem_nhds
(by C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ U⊢ 1 < re 2 norm_num All goals completed! 🐙 : (1 : ℝ) < (2 : ℂ).re)] with z hz C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ Uz:ℂhz:1 < z.re⊢ G_lhs z = G_rhs z
have hz_re : 1 < z.re := hz C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ Uz:ℂhz:1 < z.rehz_re:1 < z.re⊢ G_lhs z = G_rhs z
have hα_z : α < z.re := by C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.re⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s linarith C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ Uz:ℂhz:1 < z.rehz_re:1 < z.rehα_z:α < z.re⊢ G_lhs z = G_rhs z
have hz0 : z ≠ 0 := ne_zero_of_one_lt_re hz_re C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ Uz:ℂhz:1 < z.rehz_re:1 < z.rehα_z:α < z.rehz0:z ≠ 0⊢ G_lhs z = G_rhs z
have hz1 : z ≠ 1 := by C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.re⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s
intro h C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ Uz:ℂhz:1 < z.rehz_re:1 < z.rehα_z:α < z.rehz0:z ≠ 0h:z = 1⊢ False
subst h C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ Uhz:1 < re 1hz_re:1 < re 1hα_z:α < re 1hz0:1 ≠ 0⊢ False
simp at hz_re C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ Uz:ℂhz:1 < z.rehz_re:1 < z.rehα_z:α < z.rehz0:z ≠ 0hz1:z ≠ 1⊢ G_lhs z = G_rhs z
have hG_ne : completedPoleZeta z ≠ 0 := by C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.re⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s
rw [completedPoleZeta_of_ne_one hz1 C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ Uz:ℂhz:1 < z.rehz_re:1 < z.rehα_z:α < z.rehz0:z ≠ 0hz1:z ≠ 1⊢ (z - 1) * riemannZeta z ≠ 0] C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ Uz:ℂhz:1 < z.rehz_re:1 < z.rehα_z:α < z.rehz0:z ≠ 0hz1:z ≠ 1⊢ (z - 1) * riemannZeta z ≠ 0
exact mul_ne_zero (sub_ne_zero.mpr hz1) (riemannZeta_ne_zero_of_one_le_re hz_re.le) C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ Uz:ℂhz:1 < z.rehz_re:1 < z.rehα_z:α < z.rehz0:z ≠ 0hz1:z ≠ 1hG_ne:completedPoleZeta z ≠ 0⊢ G_lhs z = G_rhs z
dsimp [G_lhs, G_rhs] C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ Uz:ℂhz:1 < z.rehz_re:1 < z.rehα_z:α < z.rehz0:z ≠ 0hz1:z ≠ 1hG_ne:completedPoleZeta z ≠ 0⊢ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 z =
(↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / z
rw [mellinLogDeriv_zero_psiNegDefect_eq_of_one_lt_re hα_z hz_re C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ Uz:ℂhz:1 < z.rehz_re:1 < z.rehα_z:α < z.rehz0:z ≠ 0hz1:z ≠ 1hG_ne:completedPoleZeta z ≠ 0⊢ completedPoleZeta z * (↑C / (z - ↑α) - 1 / z - deriv completedPoleZeta z / (z * completedPoleZeta z)) =
(↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / z] C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ Uz:ℂhz:1 < z.rehz_re:1 < z.rehα_z:α < z.rehz0:z ≠ 0hz1:z ≠ 1hG_ne:completedPoleZeta z ≠ 0⊢ completedPoleZeta z * (↑C / (z - ↑α) - 1 / z - deriv completedPoleZeta z / (z * completedPoleZeta z)) =
(↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / z
field_simp C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.reU:Set ℂ := {z | σ₀ < z.re}hOpen:IsOpen UhPre:IsPreconnected UG_lhs:ℂ → ℂ := fun z ↦ completedPoleZeta z * mellinLogDeriv (psiNegDefect C α) 0 zG_rhs:ℂ → ℂ := fun z ↦ (↑C / (z - ↑α) - 1 / z) * completedPoleZeta z - deriv completedPoleZeta z / zhAn_lhs:AnalyticOnNhd ℂ G_lhs UhAn_rhs:AnalyticOnNhd ℂ G_rhs Uh2_mem:2 ∈ UhEv:G_lhs =ᶠ[𝓝 2] G_rhs⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s
exact hAn_lhs.eqOn_of_preconnected_of_eventuallyEq hAn_rhs hPre h2_mem hEv hs All goals completed! 🐙theorem mellinLogDeriv_zero_psiNegDefect_eq_of_completedPoleZeta_ne_zero {C α σ₀ : ℝ}
(hα0 : 0 < α) (hασ₀ : α ≤ σ₀) (hσ₀1 : σ₀ ≤ 1)
(hg_nonneg : ∀ t : ℝ, 1 ≤ t → 0 ≤ psiNegDefect C α t)
(hInt : ∀ σ : ℝ, σ₀ < σ →
IntegrableOn (fun t : ℝ ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1))
{s : ℂ} (hs : σ₀ < s.re) (hG : completedPoleZeta s ≠ 0) :
mellinLogDeriv (psiNegDefect C α) 0 s =
(C : ℂ) / (s - α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s) := by C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.rehG:completedPoleZeta s ≠ 0⊢ mellinLogDeriv (psiNegDefect C α) 0 s = ↑C / (s - ↑α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s)
have h_cleared :=
completedPoleZeta_mul_mellinLogDeriv_zero_psiNegDefect_eq hα0 hασ₀ hσ₀1 hg_nonneg hInt hs C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.rehG:completedPoleZeta s ≠ 0h_cleared:completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s⊢ mellinLogDeriv (psiNegDefect C α) 0 s = ↑C / (s - ↑α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s)
have hs0 : s ≠ 0 := by
intro h0 C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.rehG:completedPoleZeta s ≠ 0h_cleared:completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / sh0:s = 0⊢ False
have hre := congrArg Complex.re h0 C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.rehG:completedPoleZeta s ≠ 0h_cleared:completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / sh0:s = 0hre:s.re = re 0⊢ False
simp only [zero_re] at hre C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.rehG:completedPoleZeta s ≠ 0h_cleared:completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / sh0:s = 0hre:s.re = 0⊢ False
linarith C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.rehG:completedPoleZeta s ≠ 0h_cleared:completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / shs0:s ≠ 0⊢ mellinLogDeriv (psiNegDefect C α) 0 s = ↑C / (s - ↑α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s)
calc
mellinLogDeriv (psiNegDefect C α) 0 s
= (completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s) / completedPoleZeta s := by C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.rehG:completedPoleZeta s ≠ 0h_cleared:completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / shs0:s ≠ 0⊢ mellinLogDeriv (psiNegDefect C α) 0 s =
completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s / completedPoleZeta s
rw [mul_div_cancel_left₀ _ hG C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.rehG:completedPoleZeta s ≠ 0h_cleared:completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / shs0:s ≠ 0⊢ mellinLogDeriv (psiNegDefect C α) 0 s = mellinLogDeriv (psiNegDefect C α) 0 s] All goals completed! 🐙
_ = (((C : ℂ) / (s - α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s) /
completedPoleZeta s := by C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.rehG:completedPoleZeta s ≠ 0h_cleared:completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / shs0:s ≠ 0⊢ completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s / completedPoleZeta s =
((↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s) / completedPoleZeta s
rw [h_cleared C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.rehG:completedPoleZeta s ≠ 0h_cleared:completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / shs0:s ≠ 0⊢ ((↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s) / completedPoleZeta s =
((↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s) / completedPoleZeta s] All goals completed! 🐙
_ = (C : ℂ) / (s - α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s) := by C:ℝα:ℝσ₀:ℝhα0:0 < αhασ₀:α ≤ σ₀hσ₀1:σ₀ ≤ 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thInt:∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumes:ℂhs:σ₀ < s.rehG:completedPoleZeta s ≠ 0h_cleared:completedPoleZeta s * mellinLogDeriv (psiNegDefect C α) 0 s =
(↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / shs0:s ≠ 0⊢ ((↑C / (s - ↑α) - 1 / s) * completedPoleZeta s - deriv completedPoleZeta s / s) / completedPoleZeta s =
↑C / (s - ↑α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s)
field_simp All goals completed! 🐙
Pole-free analytic RHS (C : ℂ) / (s - α) - 1 / s - deriv completedPoleZeta s / (s * G s).
noncomputable def poleFreeNegRHS (C α : ℝ) (s : ℂ) : ℂ :=
(C : ℂ) / (s - α) - 1 / s - deriv completedPoleZeta s / (s * completedPoleZeta s)
Domain of holomorphy {s : ℂ | s - α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0} is open and
poleFreeNegRHS C α is differentiable on it.
lemma isOpen_and_differentiableOn_poleFreeNegRHS (C α : ℝ) :
let W : Set ℂ := {s : ℂ | s - (α : ℂ) ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}
IsOpen W ∧ DifferentiableOn ℂ (poleFreeNegRHS C α) W := by C:ℝα:ℝ⊢ let W := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0};
IsOpen W ∧ DifferentiableOn ℂ (poleFreeNegRHS C α) W
intro W C:ℝα:ℝW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}⊢ IsOpen W ∧ DifferentiableOn ℂ (poleFreeNegRHS C α) W
refine ⟨?_, ?_⟩ refine_1 C:ℝα:ℝW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}⊢ IsOpen Wrefine_2 C:ℝα:ℝW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}⊢ DifferentiableOn ℂ (poleFreeNegRHS C α) W
· refine_1 C:ℝα:ℝW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}⊢ IsOpen W refine IsOpen.inter (IsOpen.preimage (continuous_id.sub continuous_const) isOpen_ne) ?_ refine_1 C:ℝα:ℝW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}⊢ IsOpen fun s ↦ s ≠ 0 ∧ completedPoleZeta s ≠ 0
exact IsOpen.inter isOpen_ne (isOpen_ne.preimage differentiable_completedPoleZeta.continuous) All goals completed! 🐙
· refine_2 C:ℝα:ℝW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}⊢ DifferentiableOn ℂ (poleFreeNegRHS C α) W intro s hs refine_2 C:ℝα:ℝW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}s:ℂhs:s ∈ W⊢ DifferentiableWithinAt ℂ (poleFreeNegRHS C α) W s
obtain ⟨hs_α, hs_0, hs_G⟩ := hs refine_2 C:ℝα:ℝW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}s:ℂhs_α:s - ↑α ≠ 0hs_0:s ≠ 0hs_G:completedPoleZeta s ≠ 0⊢ DifferentiableWithinAt ℂ (poleFreeNegRHS C α) W s
have hd1 : DifferentiableAt ℂ (fun w : ℂ ↦ (C : ℂ) / (w - α) - 1 / w) s :=
((differentiableAt_const (C : ℂ)).div
(differentiableAt_id.sub (differentiableAt_const (α : ℂ))) hs_α).sub
((differentiableAt_const (1 : ℂ)).div differentiableAt_id hs_0) refine_2 C:ℝα:ℝW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}s:ℂhs_α:s - ↑α ≠ 0hs_0:s ≠ 0hs_G:completedPoleZeta s ≠ 0hd1:DifferentiableAt ℂ (fun w ↦ ↑C / (w - ↑α) - 1 / w) s⊢ DifferentiableWithinAt ℂ (poleFreeNegRHS C α) W s
have hd2 : DifferentiableAt ℂ
(fun w : ℂ ↦ deriv completedPoleZeta w / (w * completedPoleZeta w)) s :=
(differentiable_completedPoleZeta.deriv s).div
(differentiableAt_id.mul (differentiable_completedPoleZeta s))
(mul_ne_zero hs_0 hs_G) refine_2 C:ℝα:ℝW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}s:ℂhs_α:s - ↑α ≠ 0hs_0:s ≠ 0hs_G:completedPoleZeta s ≠ 0hd1:DifferentiableAt ℂ (fun w ↦ ↑C / (w - ↑α) - 1 / w) shd2:DifferentiableAt ℂ (fun w ↦ deriv completedPoleZeta w / (w * completedPoleZeta w)) s⊢ DifferentiableWithinAt ℂ (poleFreeNegRHS C α) W s
exact (hd1.sub hd2).differentiableWithinAt All goals completed! 🐙
Landau Continuation for psiNegDefect:
If 0 ≤ C * t ^ α + ψ(t) - t for all t ≥ 1, then its Mellin integral converges down to α.
theorem integrableOn_psiNegDefect_rpow_of_gt_alpha {C α : ℝ}
(hα0 : 0 < α) (hα1 : α < 1)
(hg_nonneg : ∀ t : ℝ, 1 ≤ t → 0 ≤ psiNegDefect C α t) :
∀ σ : ℝ, α < σ →
IntegrableOn (fun t : ℝ ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) := by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
let S : Set ℝ := {σ₀ : ℝ | α ≤ σ₀ ∧
∀ σ : ℝ, σ₀ < σ →
IntegrableOn (fun t : ℝ ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1)} C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
have h1_mem : 1 ∈ S :=
⟨hα1.le, fun σ hσ ↦ integrableOn_psiNegDefect_rpow_of_one_lt (hα1.trans hσ) hσ⟩ C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ S⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
have hS_nonempty : S.Nonempty := ⟨1, h1_mem⟩ C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.Nonempty⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
have hS_bdd : BddBelow S := ⟨α, fun _ h ↦ h.1⟩ C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow S⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
let σ_star : ℝ := sInf S C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf S⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
have hσ_star_ge : α ≤ σ_star := le_csInf hS_nonempty (fun _ h ↦ h.1) C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_star⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
have hσ_star_le : σ_star ≤ 1 := csInf_le hS_bdd h1_mem C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
have hσ_star_mem : σ_star ∈ S := by
refine ⟨hσ_star_ge, fun σ hσ ↦ ?_⟩ C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1σ:ℝhσ:σ_star < σ⊢ IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
obtain ⟨σ₀, hσ₀_mem, hσ₀_lt⟩ := (csInf_lt_iff hS_bdd hS_nonempty).mp hσ C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1σ:ℝhσ:σ_star < σσ₀:ℝhσ₀_mem:σ₀ ∈ Shσ₀_lt:σ₀ < σ⊢ IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
exact hσ₀_mem.2 σ hσ₀_lt C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ S⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
suffices h_eq : σ_star = α by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_eq:σ_star = α⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
intro σ hσ C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_eq:σ_star = ασ:ℝhσ:α < σ⊢ IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
exact hσ_star_mem.2 σ (h_eq.symm ▸ hσ) C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ S⊢ σ_star = α
by_contra h_ne C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = α⊢ False
have h_gt : α < σ_star := lt_of_le_of_ne hσ_star_ge (Ne.symm h_ne) C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_star⊢ False
have hσ_star_pos : 0 < σ_star := hα0.trans h_gt C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_star⊢ False
let W : Set ℂ := {s : ℂ | s - (α : ℂ) ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0} C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}⊢ False
obtain ⟨hW_open, hF_diff_W⟩ := isOpen_and_differentiableOn_poleFreeNegRHS C α C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}⊢ False
have hz₀_mem : (σ_star : ℂ) ∈ W := by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
refine ⟨?_, Complex.ofReal_ne_zero.mpr hσ_star_pos.ne',
completedPoleZeta_ofReal_ne_zero_of_pos hσ_star_pos⟩ C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}⊢ ↑σ_star - ↑α ≠ 0
intro hsub C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hsub:↑σ_star - ↑α = 0⊢ False
have hre := congrArg Complex.re (sub_eq_zero.mp hsub) C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hsub:↑σ_star - ↑α = 0hre:(↑σ_star).re = (↑α).re⊢ False
simp only [ofReal_re] at hre C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hsub:↑σ_star - ↑α = 0hre:σ_star = α⊢ False
linarith C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ W⊢ False
obtain ⟨r₀, hr₀_pos, hr₀_sub⟩ := Metric.isOpen_iff.mp hW_open (σ_star : ℂ) hz₀_mem C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}⊢ False
let r : ℝ := min (r₀ / 3) ((σ_star - α) / 2) C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)⊢ False
have hr_pos : 0 < r := lt_min (by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)⊢ 0 < r₀ / 3 linarith All goals completed! 🐙) (by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)⊢ 0 < (σ_star - α) / 2 linarith All goals completed! 🐙) C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < r⊢ False
have hr_lt_r₀ : r ≤ r₀ / 3 := min_le_left _ _ C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3⊢ False
have hr_le_sub : r ≤ (σ_star - α) / 2 := min_le_right _ _ C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2⊢ False
let c : ℝ := σ_star + r / 2 C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2⊢ False
have hc_gt : σ_star < c := by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume dsimp [c] C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2⊢ σ_star < σ_star + r / 2; linarith C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < c⊢ False
have hball_sub : Metric.ball (c : ℂ) r ⊆ W := by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
intro z hz C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < cz:ℂhz:z ∈ Metric.ball (↑c) r⊢ z ∈ W
apply hr₀_sub C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < cz:ℂhz:z ∈ Metric.ball (↑c) r⊢ z ∈ Metric.ball (↑σ_star) r₀
rw [Metric.mem_ball C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < cz:ℂhz:dist z ↑c < r⊢ dist z ↑σ_star < r₀] at hz ⊢ C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < cz:ℂhz:dist z ↑c < r⊢ dist z ↑σ_star < r₀
have hdist_c : dist (c : ℂ) (σ_star : ℂ) = r / 2 := by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
rw [Complex.dist_eq, C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < cz:ℂhz:dist z ↑c < r⊢ ‖↑c - ↑σ_star‖ = r / 2 ← Complex.ofReal_sub, C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < cz:ℂhz:dist z ↑c < r⊢ ‖↑(c - σ_star)‖ = r / 2 Complex.norm_real, C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < cz:ℂhz:dist z ↑c < r⊢ ‖c - σ_star‖ = r / 2 Real.norm_eq_abs, C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < cz:ℂhz:dist z ↑c < r⊢ |c - σ_star| = r / 2
show c - σ_star = r / 2 by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume dsimp [c] C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < cz:ℂhz:dist z ↑c < r⊢ σ_star + r / 2 - σ_star = r / 2; ring All goals completed! 🐙, abs_of_pos (by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < cz:ℂhz:dist z ↑c < r⊢ 0 < r / 2 linarith All goals completed! 🐙)] C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < cz:ℂhz:dist z ↑c < rhdist_c:dist ↑c ↑σ_star = r / 2⊢ dist z ↑σ_star < r₀
linarith [dist_triangle z (c : ℂ) (σ_star : ℂ)] C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < chball_sub:Metric.ball (↑c) r ⊆ W⊢ False
have hc_mem_W : (c : ℂ) ∈ W := hball_sub (Metric.mem_ball_self hr_pos) C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < chball_sub:Metric.ball (↑c) r ⊆ Whc_mem_W:↑c ∈ W⊢ False
have hEq : poleFreeNegRHS C α =ᶠ[𝓝 (c : ℂ)] mellinLogDeriv (psiNegDefect C α) 0 := by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
have h_nhds : W ∩ {z : ℂ | σ_star < z.re} ∈ 𝓝 (c : ℂ) :=
Filter.inter_mem (hW_open.mem_nhds hc_mem_W)
((isOpen_lt continuous_const Complex.continuous_re).mem_nhds (by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < chball_sub:Metric.ball (↑c) r ⊆ Whc_mem_W:↑c ∈ W⊢ ↑c ∈ {b | σ_star < b.re} simpa using hc_gt All goals completed! 🐙)) C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < chball_sub:Metric.ball (↑c) r ⊆ Whc_mem_W:↑c ∈ Wh_nhds:W ∩ {z | σ_star < z.re} ∈ 𝓝 ↑c⊢ poleFreeNegRHS C α =ᶠ[𝓝 ↑c] mellinLogDeriv (psiNegDefect C α) 0
filter_upwards [h_nhds] with z ⟨hzW, hz_re⟩ C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < chball_sub:Metric.ball (↑c) r ⊆ Whc_mem_W:↑c ∈ Wh_nhds:W ∩ {z | σ_star < z.re} ∈ 𝓝 ↑cz:ℂhzW:z ∈ Whz_re:z ∈ {z | σ_star < z.re}⊢ poleFreeNegRHS C α z = mellinLogDeriv (psiNegDefect C α) 0 z
exact (mellinLogDeriv_zero_psiNegDefect_eq_of_completedPoleZeta_ne_zero
hα0 hσ_star_ge hσ_star_le hg_nonneg hσ_star_mem.2 hz_re hzW.2.2).symm C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < chball_sub:Metric.ball (↑c) r ⊆ Whc_mem_W:↑c ∈ WhEq:poleFreeNegRHS C α =ᶠ[𝓝 ↑c] mellinLogDeriv (psiNegDefect C α) 0⊢ False
have h_ext_mem : σ_star - r / 2 ∈ S := by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ ∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume
refine ⟨by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < chball_sub:Metric.ball (↑c) r ⊆ Whc_mem_W:↑c ∈ WhEq:poleFreeNegRHS C α =ᶠ[𝓝 ↑c] mellinLogDeriv (psiNegDefect C α) 0⊢ α ≤ σ_star - r / 2 linarith All goals completed! 🐙, fun σ hσ ↦ ?_⟩
exact integrableOn_of_analyticAt_real_of_gt hg_nonneg hσ_star_mem.2 hc_gt hr_pos
(hF_diff_W.mono hball_sub) hEq (by C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < chball_sub:Metric.ball (↑c) r ⊆ Whc_mem_W:↑c ∈ WhEq:poleFreeNegRHS C α =ᶠ[𝓝 ↑c] mellinLogDeriv (psiNegDefect C α) 0σ:ℝhσ:σ_star - r / 2 < σ⊢ c - r < σ dsimp [c] C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < chball_sub:Metric.ball (↑c) r ⊆ Whc_mem_W:↑c ∈ WhEq:poleFreeNegRHS C α =ᶠ[𝓝 ↑c] mellinLogDeriv (psiNegDefect C α) 0σ:ℝhσ:σ_star - r / 2 < σ⊢ σ_star + r / 2 - r < σ; linarith All goals completed! 🐙) C:ℝα:ℝhα0:0 < αhα1:α < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α tS:Set ℝ := {σ₀ | α ≤ σ₀ ∧ ∀ (σ : ℝ), σ₀ < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume}h1_mem:1 ∈ ShS_nonempty:S.NonemptyhS_bdd:BddBelow Sσ_star:ℝ := sInf Shσ_star_ge:α ≤ σ_starhσ_star_le:σ_star ≤ 1hσ_star_mem:σ_star ∈ Sh_ne:¬σ_star = αh_gt:α < σ_starhσ_star_pos:0 < σ_starW:Set ℂ := {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hW_open:IsOpen {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hF_diff_W:DifferentiableOn ℂ (poleFreeNegRHS C α) {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}hz₀_mem:↑σ_star ∈ Wr₀:ℝhr₀_pos:r₀ > 0hr₀_sub:Metric.ball (↑σ_star) r₀ ⊆ {s | s - ↑α ≠ 0 ∧ s ≠ 0 ∧ completedPoleZeta s ≠ 0}r:ℝ := min (r₀ / 3) ((σ_star - α) / 2)hr_pos:0 < rhr_lt_r₀:r ≤ r₀ / 3hr_le_sub:r ≤ (σ_star - α) / 2c:ℝ := σ_star + r / 2hc_gt:σ_star < chball_sub:Metric.ball (↑c) r ⊆ Whc_mem_W:↑c ∈ WhEq:poleFreeNegRHS C α =ᶠ[𝓝 ↑c] mellinLogDeriv (psiNegDefect C α) 0h_ext_mem:σ_star - r / 2 ∈ S⊢ False
linarith [csInf_le hS_bdd h_ext_mem] All goals completed! 🐙lemma self_sub_psi_le_const_mul_rpow_of_forall_nat {K : ℝ} (hK : 0 < K)
(h : ∀ x : ℕ, 253 < x → (x : ℝ) - Chebyshev.psi x ≤ K * Real.sqrt x * (Real.log x) ^ 2)
{α : ℝ} (hα : 1 / 2 < α) :
∃ C : ℝ, 0 < C ∧ ∀ t : ℝ, 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < α⊢ ∃ C, 0 < C ∧ ∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α
set ε := (α - 1 / 2) / 2 K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2⊢ ∃ C, 0 < C ∧ ∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α
have hε : 0 < ε := by positivity K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < ε⊢ ∃ C, 0 < C ∧ ∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α
refine ⟨K * (1 / ε) ^ 2 + 255, by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < ε⊢ 0 < K * (1 / ε) ^ 2 + 255 positivity All goals completed! 🐙, fun t ht ↦ ?_⟩
have ht0 : 0 ≤ t := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < α⊢ ∃ C, 0 < C ∧ ∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α linarith K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ t⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have ht_pos : 0 < t := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < α⊢ ∃ C, 0 < C ∧ ∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α linarith K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < t⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hlog_le : Real.log t ≤ t ^ ε / ε := Real.log_le_rpow_div ht0 hε K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / ε⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hlog_nonneg : 0 ≤ Real.log t := Real.log_nonneg ht K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log t⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hsq : (Real.log t) ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2) := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < α⊢ ∃ C, 0 < C ∧ ∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α
calc
(Real.log t) ^ 2 ≤ (t ^ ε / ε) ^ 2 := pow_le_pow_left₀ hlog_nonneg hlog_le 2
_ = (1 / ε) ^ 2 * (t ^ ε) ^ (2 : ℕ) := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log t⊢ (t ^ ε / ε) ^ 2 = (1 / ε) ^ 2 * (t ^ ε) ^ 2 ring All goals completed! 🐙
_ = (1 / ε) ^ 2 * t ^ (ε * 2) := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log t⊢ (1 / ε) ^ 2 * (t ^ ε) ^ 2 = (1 / ε) ^ 2 * t ^ (ε * 2)
rw [← Real.rpow_natCast (t ^ ε) 2, K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log t⊢ (1 / ε) ^ 2 * (t ^ ε) ^ ↑2 = (1 / ε) ^ 2 * t ^ (ε * 2) ← Real.rpow_mul ht0 K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log t⊢ (1 / ε) ^ 2 * t ^ (ε * ↑2) = (1 / ε) ^ 2 * t ^ (ε * 2)] K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log t⊢ (1 / ε) ^ 2 * t ^ (ε * ↑2) = (1 / ε) ^ 2 * t ^ (ε * 2)
norm_num All goals completed! 🐙
_ = (1 / ε) ^ 2 * t ^ (α - 1 / 2) := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log t⊢ (1 / ε) ^ 2 * t ^ (ε * 2) = (1 / ε) ^ 2 * t ^ (α - 1 / 2) congr 2 e_a.e_a K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log t⊢ ε * 2 = α - 1 / 2; ring K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hrpow_ge_one : 1 ≤ t ^ α := Real.one_le_rpow ht (by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)⊢ 0 ≤ α linarith All goals completed! 🐙) K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ α⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
by_cases hfloor : 253 < ⌊t⌋₊ pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ αneg K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:¬253 < ⌊t⌋₊⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
· pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α have h_nat := h ⌊t⌋₊ hfloor pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hfl_le : (⌊t⌋₊ : ℝ) ≤ t := Nat.floor_le ht0 pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ t⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hfl_pos : (0 : ℝ) < ⌊t⌋₊ := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < α⊢ ∃ C, 0 < C ∧ ∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α exact_mod_cast (by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ t⊢ 0 < ⌊t⌋₊ omega All goals completed! 🐙 : 0 < ⌊t⌋₊) pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hlog_mono : Real.log ⌊t⌋₊ ≤ Real.log t := Real.log_le_log hfl_pos hfl_le pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log t⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hlog_fl_nonneg : 0 ≤ Real.log ⌊t⌋₊ :=
Real.log_nonneg (by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log t⊢ 1 ≤ ↑⌊t⌋₊ exact_mod_cast (by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log t⊢ 1 ≤ ⌊t⌋₊ omega All goals completed! 🐙 : 1 ≤ ⌊t⌋₊)) pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hsq_mono : (Real.log ⌊t⌋₊) ^ 2 ≤ (Real.log t) ^ 2 :=
pow_le_pow_left₀ hlog_fl_nonneg hlog_mono 2 pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hsqrt_mono : Real.sqrt ⌊t⌋₊ ≤ Real.sqrt t := Real.sqrt_le_sqrt hfl_le pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √t⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hlt_add1 : t < (⌊t⌋₊ : ℝ) + 1 := Nat.lt_floor_add_one t pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hmul_mono :
K * Real.sqrt ⌊t⌋₊ * (Real.log ⌊t⌋₊) ^ 2 ≤ K * Real.sqrt t * (Real.log t) ^ 2 := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < α⊢ ∃ C, 0 < C ∧ ∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α
have h1 := mul_le_mul hsqrt_mono hsq_mono (by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1⊢ 0 ≤ Real.log ↑⌊t⌋₊ ^ 2 positivity All goals completed! 🐙) (by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1⊢ 0 ≤ √t positivity All goals completed! 🐙) K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1h1:√↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ √t * Real.log t ^ 2⊢ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ K * √t * Real.log t ^ 2
nlinarith pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1hmul_mono:K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ K * √t * Real.log t ^ 2⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hrpow_prod : Real.sqrt t * t ^ (α - 1 / 2) = t ^ α := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < α⊢ ∃ C, 0 < C ∧ ∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α
rw [Real.sqrt_eq_rpow, K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1hmul_mono:K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ K * √t * Real.log t ^ 2⊢ t ^ (1 / 2) * t ^ (α - 1 / 2) = t ^ α ← Real.rpow_add ht_pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1hmul_mono:K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ K * √t * Real.log t ^ 2⊢ t ^ (1 / 2 + (α - 1 / 2)) = t ^ α] K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1hmul_mono:K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ K * √t * Real.log t ^ 2⊢ t ^ (1 / 2 + (α - 1 / 2)) = t ^ α
congr 1 e_a K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1hmul_mono:K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ K * √t * Real.log t ^ 2⊢ 1 / 2 + (α - 1 / 2) = α; ring pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1hmul_mono:K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ K * √t * Real.log t ^ 2hrpow_prod:√t * t ^ (α - 1 / 2) = t ^ α⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hmain : K * Real.sqrt t * (Real.log t) ^ 2 ≤ K * (1 / ε) ^ 2 * t ^ α := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < α⊢ ∃ C, 0 < C ∧ ∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α
have h1 := mul_le_mul_of_nonneg_left hsq (by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1hmul_mono:K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ K * √t * Real.log t ^ 2hrpow_prod:√t * t ^ (α - 1 / 2) = t ^ α⊢ 0 ≤ K * √t positivity All goals completed! 🐙 : 0 ≤ K * Real.sqrt t) K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1hmul_mono:K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ K * √t * Real.log t ^ 2hrpow_prod:√t * t ^ (α - 1 / 2) = t ^ αh1:K * √t * Real.log t ^ 2 ≤ K * √t * ((1 / ε) ^ 2 * t ^ (α - 1 / 2))⊢ K * √t * Real.log t ^ 2 ≤ K * (1 / ε) ^ 2 * t ^ α
calc K * Real.sqrt t * (Real.log t) ^ 2
_ ≤ K * Real.sqrt t * ((1 / ε) ^ 2 * t ^ (α - 1 / 2)) := h1
_ = K * (1 / ε) ^ 2 * (Real.sqrt t * t ^ (α - 1 / 2)) := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1hmul_mono:K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ K * √t * Real.log t ^ 2hrpow_prod:√t * t ^ (α - 1 / 2) = t ^ αh1:K * √t * Real.log t ^ 2 ≤ K * √t * ((1 / ε) ^ 2 * t ^ (α - 1 / 2))⊢ K * √t * ((1 / ε) ^ 2 * t ^ (α - 1 / 2)) = K * (1 / ε) ^ 2 * (√t * t ^ (α - 1 / 2)) ring All goals completed! 🐙
_ = K * (1 / ε) ^ 2 * t ^ α := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1hmul_mono:K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ K * √t * Real.log t ^ 2hrpow_prod:√t * t ^ (α - 1 / 2) = t ^ αh1:K * √t * Real.log t ^ 2 ≤ K * √t * ((1 / ε) ^ 2 * t ^ (α - 1 / 2))⊢ K * (1 / ε) ^ 2 * (√t * t ^ (α - 1 / 2)) = K * (1 / ε) ^ 2 * t ^ α rw [hrpow_prod K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1hmul_mono:K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ K * √t * Real.log t ^ 2hrpow_prod:√t * t ^ (α - 1 / 2) = t ^ αh1:K * √t * Real.log t ^ 2 ≤ K * √t * ((1 / ε) ^ 2 * t ^ (α - 1 / 2))⊢ K * (1 / ε) ^ 2 * t ^ α = K * (1 / ε) ^ 2 * t ^ α] pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1hmul_mono:K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ K * √t * Real.log t ^ 2hrpow_prod:√t * t ^ (α - 1 / 2) = t ^ αhmain:K * √t * Real.log t ^ 2 ≤ K * (1 / ε) ^ 2 * t ^ α⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hpsi_eq : Chebyshev.psi t = Chebyshev.psi ⌊t⌋₊ := Chebyshev.psi_eq_psi_coe_floor t pos K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:253 < ⌊t⌋₊h_nat:↑⌊t⌋₊ - Chebyshev.psi ↑⌊t⌋₊ ≤ K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2hfl_le:↑⌊t⌋₊ ≤ thfl_pos:0 < ↑⌊t⌋₊hlog_mono:Real.log ↑⌊t⌋₊ ≤ Real.log thlog_fl_nonneg:0 ≤ Real.log ↑⌊t⌋₊hsq_mono:Real.log ↑⌊t⌋₊ ^ 2 ≤ Real.log t ^ 2hsqrt_mono:√↑⌊t⌋₊ ≤ √thlt_add1:t < ↑⌊t⌋₊ + 1hmul_mono:K * √↑⌊t⌋₊ * Real.log ↑⌊t⌋₊ ^ 2 ≤ K * √t * Real.log t ^ 2hrpow_prod:√t * t ^ (α - 1 / 2) = t ^ αhmain:K * √t * Real.log t ^ 2 ≤ K * (1 / ε) ^ 2 * t ^ αhpsi_eq:Chebyshev.psi t = Chebyshev.psi ↑⌊t⌋₊⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
nlinarith All goals completed! 🐙
· neg K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:¬253 < ⌊t⌋₊⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α push Not at hfloor neg K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:⌊t⌋₊ ≤ 253⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hfl_le : (⌊t⌋₊ : ℝ) ≤ 253 := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < α⊢ ∃ C, 0 < C ∧ ∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α exact_mod_cast hfloor neg K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:⌊t⌋₊ ≤ 253hfl_le:↑⌊t⌋₊ ≤ 253⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hlt_254 : t < 254 := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < α⊢ ∃ C, 0 < C ∧ ∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α linarith [Nat.lt_floor_add_one t] neg K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:⌊t⌋₊ ≤ 253hfl_le:↑⌊t⌋₊ ≤ 253hlt_254:t < 254⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hpsi_nonneg : 0 ≤ Chebyshev.psi t := Chebyshev.psi_nonneg t neg K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:⌊t⌋₊ ≤ 253hfl_le:↑⌊t⌋₊ ≤ 253hlt_254:t < 254hpsi_nonneg:0 ≤ Chebyshev.psi t⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
have hpos_term : 0 ≤ K * (1 / ε) ^ 2 * t ^ α := by K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < α⊢ ∃ C, 0 < C ∧ ∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α positivity neg K:ℝhK:0 < Kh:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2α:ℝhα:1 / 2 < αε:ℝ := (α - 1 / 2) / 2hε:0 < εt:ℝht:1 ≤ tht0:0 ≤ tht_pos:0 < thlog_le:Real.log t ≤ t ^ ε / εhlog_nonneg:0 ≤ Real.log thsq:Real.log t ^ 2 ≤ (1 / ε) ^ 2 * t ^ (α - 1 / 2)hrpow_ge_one:1 ≤ t ^ αhfloor:⌊t⌋₊ ≤ 253hfl_le:↑⌊t⌋₊ ≤ 253hlt_254:t < 254hpsi_nonneg:0 ≤ Chebyshev.psi thpos_term:0 ≤ K * (1 / ε) ^ 2 * t ^ α⊢ t - Chebyshev.psi t ≤ (K * (1 / ε) ^ 2 + 255) * t ^ α
nlinarith All goals completed! 🐙
Residue contradiction at any zero ρ (α < ρ.re < 1) when psiNegDefect C α ≥ 0.
lemma not_riemannZeta_eq_zero_of_psiNegDefect_nonneg {C α : ℝ} {ρ : ℂ}
(hα_pos : 0 < α) (hα_lt_ρ : α < ρ.re) (hρ_lt : ρ.re < 1)
(hg_nonneg : ∀ t : ℝ, 1 ≤ t → 0 ≤ psiNegDefect C α t) :
riemannZeta ρ ≠ 0 := by C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ riemannZeta ρ ≠ 0
intro hρ_zero C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0⊢ False
have hα_lt_one : α < 1 := hα_lt_ρ.trans hρ_lt C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1⊢ False
have hInt_α := integrableOn_psiNegDefect_rpow_of_gt_alpha hα_pos hα_lt_one hg_nonneg C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volume⊢ False
have h_cont_mellin : ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρ :=
(hasDerivAt_mellinLogDeriv hg_nonneg hInt_α 0 hα_lt_ρ).continuousAt C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρ⊢ False
have h_lhs_tendsto :
Tendsto (fun z : ℂ ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0) := by C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ riemannZeta ρ ≠ 0
have h0 :=
(continuousAt_id.tendsto.sub (tendsto_const_nhds (x := ρ))).mul h_cont_mellin.tendsto C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh0:Tendsto (fun x ↦ (id x - ρ) * mellinLogDeriv (psiNegDefect C α) 0 x) (𝓝 ρ)
(𝓝 ((id ρ - ρ) * mellinLogDeriv (psiNegDefect C α) 0 ρ))⊢ Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)
simpa using h0.mono_left nhdsWithin_le_nhds C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)⊢ False
have hρ1 : ρ ≠ 1 := fun h1 ↦ by simp [h1] at hρ_lt C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1⊢ False
have hρ0 : ρ ≠ 0 := fun h0 ↦ by rw [h0, C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < re 0hρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1h0:ρ = 0⊢ False zero_re C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < 0hρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1h0:ρ = 0⊢ False] at hα_lt_ρ C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < 0hρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1h0:ρ = 0⊢ False; linarith C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0⊢ False
set m := analyticOrderNatAt riemannZeta ρ C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρ⊢ False
have hm_ge_one : 1 ≤ m := one_le_analyticOrderNatAt_of_riemannZeta_eq_zero hρ1 hρ_zero C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ m⊢ False
have hm_ne_zero : (m : ℂ) ≠ 0 := Nat.cast_ne_zero.mpr (by C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ m⊢ m ≠ 0 omega All goals completed! 🐙) C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0⊢ False
have h_res := tendsto_sub_mul_deriv_riemannZeta_div_of_eq_zero hρ1 hρ_zero C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))⊢ False
have h_zeta_ne : ∀ᶠ z in 𝓝[≠] ρ, riemannZeta z ≠ 0 := by C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ riemannZeta ρ ≠ 0
filter_upwards [h_res.eventually_ne hm_ne_zero] with z hz C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))z:ℂhz:(z - ρ) * (deriv riemannZeta z / riemannZeta z) ≠ 0⊢ riemannZeta z ≠ 0 h_zero C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))z:ℂhz:(z - ρ) * (deriv riemannZeta z / riemannZeta z) ≠ 0h_zero:riemannZeta z = 0⊢ False
exact hz (by C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))z:ℂhz:(z - ρ) * (deriv riemannZeta z / riemannZeta z) ≠ 0h_zero:riemannZeta z = 0⊢ (z - ρ) * (deriv riemannZeta z / riemannZeta z) = 0 simp [h_zero] All goals completed! 🐙) C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0⊢ False
have h_open_nhds : ∀ᶠ z in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0 :=
eventually_nhdsWithin_of_eventually_nhds <|
Filter.Eventually.and
((isOpen_lt continuous_const Complex.continuous_re).mem_nhds hα_lt_ρ)
(Filter.Eventually.and (eventually_ne_nhds hρ1) (eventually_ne_nhds hρ0)) C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0⊢ False
have h_congr :
(fun z : ℂ ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) =ᶠ[𝓝[≠] ρ]
fun z : ℂ ↦ (z - ρ) * ((C : ℂ) / (z - α) - 1 / (z - 1)) -
((z - ρ) * (deriv riemannZeta z / riemannZeta z)) / z := by C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ riemannZeta ρ ≠ 0
filter_upwards [h_zeta_ne, h_open_nhds] with z hz_zeta C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0z:ℂhz_zeta:riemannZeta z ≠ 0⊢ α < z.re ∧ z ≠ 1 ∧ z ≠ 0 →
(z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z =
(z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / z ⟨hz_α, hz_1, hz_0⟩ C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0z:ℂhz_zeta:riemannZeta z ≠ 0hz_α:α < z.rehz_1:z ≠ 1hz_0:z ≠ 0⊢ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z =
(z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / z
have hG_ne : completedPoleZeta z ≠ 0 := by C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ riemannZeta ρ ≠ 0
rw [completedPoleZeta_of_ne_one hz_1 C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0z:ℂhz_zeta:riemannZeta z ≠ 0hz_α:α < z.rehz_1:z ≠ 1hz_0:z ≠ 0⊢ (z - 1) * riemannZeta z ≠ 0] C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0z:ℂhz_zeta:riemannZeta z ≠ 0hz_α:α < z.rehz_1:z ≠ 1hz_0:z ≠ 0⊢ (z - 1) * riemannZeta z ≠ 0
exact mul_ne_zero (sub_ne_zero.mpr hz_1) hz_zeta C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0z:ℂhz_zeta:riemannZeta z ≠ 0hz_α:α < z.rehz_1:z ≠ 1hz_0:z ≠ 0hG_ne:completedPoleZeta z ≠ 0⊢ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z =
(z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / z
rw [mellinLogDeriv_zero_psiNegDefect_eq_of_completedPoleZeta_ne_zero
hα_pos le_rfl hα_lt_one.le hg_nonneg hInt_α hz_α hG_ne, C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0z:ℂhz_zeta:riemannZeta z ≠ 0hz_α:α < z.rehz_1:z ≠ 1hz_0:z ≠ 0hG_ne:completedPoleZeta z ≠ 0⊢ (z - ρ) * (↑C / (z - ↑α) - 1 / z - deriv completedPoleZeta z / (z * completedPoleZeta z)) =
(z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / z
← mellin_neg_lhs_eq_completedPoleZeta hz_0 hz_1 hz_zeta C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0z:ℂhz_zeta:riemannZeta z ≠ 0hz_α:α < z.rehz_1:z ≠ 1hz_0:z ≠ 0hG_ne:completedPoleZeta z ≠ 0⊢ (z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1) - deriv riemannZeta z / (z * riemannZeta z)) =
(z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / z] C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0z:ℂhz_zeta:riemannZeta z ≠ 0hz_α:α < z.rehz_1:z ≠ 1hz_0:z ≠ 0hG_ne:completedPoleZeta z ≠ 0⊢ (z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1) - deriv riemannZeta z / (z * riemannZeta z)) =
(z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / z
ring C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0h_congr:(fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) =ᶠ[𝓝[≠] ρ] fun z ↦
(z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / z⊢ False
have h_ρ_sub_α : ρ - (α : ℂ) ≠ 0 := fun hsub ↦ by
have hre := congrArg Complex.re (sub_eq_zero.mp hsub) C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0h_congr:(fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) =ᶠ[𝓝[≠] ρ] fun z ↦
(z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / zhsub:ρ - ↑α = 0hre:ρ.re = (↑α).re⊢ False; simp only [ofReal_re] at hre C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0h_congr:(fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) =ᶠ[𝓝[≠] ρ] fun z ↦
(z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / zhsub:ρ - ↑α = 0hre:ρ.re = α⊢ False; linarith C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0h_congr:(fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) =ᶠ[𝓝[≠] ρ] fun z ↦
(z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / zh_ρ_sub_α:ρ - ↑α ≠ 0⊢ False
have h_first_tendsto :
Tendsto (fun z : ℂ ↦ (z - ρ) * ((C : ℂ) / (z - α) - 1 / (z - 1))) (𝓝[≠] ρ) (𝓝 0) := by C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ riemannZeta ρ ≠ 0
have h_inner :
Tendsto (fun z : ℂ ↦ (C : ℂ) / (z - α) - 1 / (z - 1)) (𝓝 ρ)
(𝓝 ((C : ℂ) / (ρ - α) - 1 / (ρ - 1))) :=
(tendsto_const_nhds.div (continuousAt_id.tendsto.sub tendsto_const_nhds) h_ρ_sub_α).sub
(tendsto_const_nhds.div (continuousAt_id.tendsto.sub tendsto_const_nhds)
(sub_ne_zero.mpr hρ1)) C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0h_congr:(fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) =ᶠ[𝓝[≠] ρ] fun z ↦
(z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / zh_ρ_sub_α:ρ - ↑α ≠ 0h_inner:Tendsto (fun z ↦ ↑C / (z - ↑α) - 1 / (z - 1)) (𝓝 ρ) (𝓝 (↑C / (ρ - ↑α) - 1 / (ρ - 1)))⊢ Tendsto (fun z ↦ (z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1))) (𝓝[≠] ρ) (𝓝 0)
simpa using
((continuousAt_id.tendsto.sub (tendsto_const_nhds (x := ρ))).mul h_inner).mono_left
nhdsWithin_le_nhds C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0h_congr:(fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) =ᶠ[𝓝[≠] ρ] fun z ↦
(z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / zh_ρ_sub_α:ρ - ↑α ≠ 0h_first_tendsto:Tendsto (fun z ↦ (z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1))) (𝓝[≠] ρ) (𝓝 0)⊢ False
have h_rhs_tendsto :
Tendsto (fun z : ℂ ↦ (z - ρ) * ((C : ℂ) / (z - α) - 1 / (z - 1)) -
((z - ρ) * (deriv riemannZeta z / riemannZeta z)) / z)
(𝓝[≠] ρ) (𝓝 (-(m : ℂ) / ρ)) := by C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α t⊢ riemannZeta ρ ≠ 0
simpa [neg_div] using h_first_tendsto.sub
(h_res.div (continuousAt_id.tendsto.mono_left nhdsWithin_le_nhds) hρ0) C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0h_congr:(fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) =ᶠ[𝓝[≠] ρ] fun z ↦
(z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / zh_ρ_sub_α:ρ - ↑α ≠ 0h_first_tendsto:Tendsto (fun z ↦ (z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1))) (𝓝[≠] ρ) (𝓝 0)h_rhs_tendsto:Tendsto (fun z ↦ (z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / z) (𝓝[≠] ρ)
(𝓝 (-↑m / ρ))⊢ False
have h_eq_lim : (0 : ℂ) = -(m : ℂ) / ρ :=
tendsto_nhds_unique h_lhs_tendsto (h_rhs_tendsto.congr' h_congr.symm) C:ℝα:ℝρ:ℂhα_pos:0 < αhα_lt_ρ:α < ρ.rehρ_lt:ρ.re < 1hg_nonneg:∀ (t : ℝ), 1 ≤ t → 0 ≤ psiNegDefect C α thρ_zero:riemannZeta ρ = 0hα_lt_one:α < 1hInt_α:∀ (σ : ℝ), α < σ → IntegrableOn (fun t ↦ psiNegDefect C α t * t ^ (-(σ + 1))) (Set.Ioi 1) volumeh_cont_mellin:ContinuousAt (mellinLogDeriv (psiNegDefect C α) 0) ρh_lhs_tendsto:Tendsto (fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) (𝓝[≠] ρ) (𝓝 0)hρ1:ρ ≠ 1hρ0:ρ ≠ 0m:ℕ := analyticOrderNatAt riemannZeta ρhm_ge_one:1 ≤ mhm_ne_zero:↑m ≠ 0h_res:Tendsto (fun z ↦ (z - ρ) * (deriv riemannZeta z / riemannZeta z)) (𝓝[≠] ρ) (𝓝 ↑(analyticOrderNatAt riemannZeta ρ))h_zeta_ne:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, riemannZeta z ≠ 0h_open_nhds:∀ᶠ (z : ℂ) in 𝓝[≠] ρ, α < z.re ∧ z ≠ 1 ∧ z ≠ 0h_congr:(fun z ↦ (z - ρ) * mellinLogDeriv (psiNegDefect C α) 0 z) =ᶠ[𝓝[≠] ρ] fun z ↦
(z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / zh_ρ_sub_α:ρ - ↑α ≠ 0h_first_tendsto:Tendsto (fun z ↦ (z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1))) (𝓝[≠] ρ) (𝓝 0)h_rhs_tendsto:Tendsto (fun z ↦ (z - ρ) * (↑C / (z - ↑α) - 1 / (z - 1)) - (z - ρ) * (deriv riemannZeta z / riemannZeta z) / z) (𝓝[≠] ρ)
(𝓝 (-↑m / ρ))h_eq_lim:0 = -↑m / ρ⊢ False
exact div_ne_zero (neg_ne_zero.mpr hm_ne_zero) hρ0 h_eq_lim.symm All goals completed! 🐙
One-Sided Landau Oscillation Theorem (t - ψ(t)):
If ¬ RiemannHypothesis, then for every constant K > 0, there exists x : ℕ with 253 < x
and K * Real.sqrt x * (Real.log x) ^ 2 < (x : ℝ) - Chebyshev.psi x.
theorem not_riemannHypothesis_imp_exists_self_sub_psi_gt
(hNotRH : ¬ RiemannHypothesis) {K : ℝ} (hK : 0 < K) :
∃ x : ℕ, 253 < x ∧ K * Real.sqrt x * (Real.log x) ^ 2 < (x : ℝ) - Chebyshev.psi x := by hNotRH:¬RiemannHypothesisK:ℝhK:0 < K⊢ ∃ x, 253 < x ∧ K * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x
by_contra! h_no hNotRH:¬RiemannHypothesisK:ℝhK:0 < Kh_no:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2⊢ False
obtain ⟨ρ, hρ_zero, hρ_gt, hρ_lt⟩ :=
exists_zero_in_right_critical_strip_of_not_riemannHypothesis hNotRH hNotRH:¬RiemannHypothesisK:ℝhK:0 < Kh_no:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2ρ:ℂhρ_zero:riemannZeta ρ = 0hρ_gt:1 / 2 < ρ.rehρ_lt:ρ.re < 1⊢ False
set α : ℝ := (1 / 2 + ρ.re) / 2 with hα hNotRH:¬RiemannHypothesisK:ℝhK:0 < Kh_no:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2ρ:ℂhρ_zero:riemannZeta ρ = 0hρ_gt:1 / 2 < ρ.rehρ_lt:ρ.re < 1α:ℝ := (1 / 2 + ρ.re) / 2hα:α = (1 / 2 + ρ.re) / 2⊢ False
obtain ⟨C, _hC_pos, h_bound⟩ :=
self_sub_psi_le_const_mul_rpow_of_forall_nat (α := α) hK h_no (by hNotRH:¬RiemannHypothesisK:ℝhK:0 < Kh_no:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2ρ:ℂhρ_zero:riemannZeta ρ = 0hρ_gt:1 / 2 < ρ.rehρ_lt:ρ.re < 1α:ℝ := (1 / 2 + ρ.re) / 2hα:α = (1 / 2 + ρ.re) / 2⊢ 1 / 2 < α linarith [hα] All goals completed! 🐙) hNotRH:¬RiemannHypothesisK:ℝhK:0 < Kh_no:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2ρ:ℂhρ_zero:riemannZeta ρ = 0hρ_gt:1 / 2 < ρ.rehρ_lt:ρ.re < 1α:ℝ := (1 / 2 + ρ.re) / 2hα:α = (1 / 2 + ρ.re) / 2C:ℝ_hC_pos:0 < Ch_bound:∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α⊢ False
exact not_riemannZeta_eq_zero_of_psiNegDefect_nonneg (C := C) (α := α)
(by hNotRH:¬RiemannHypothesisK:ℝhK:0 < Kh_no:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2ρ:ℂhρ_zero:riemannZeta ρ = 0hρ_gt:1 / 2 < ρ.rehρ_lt:ρ.re < 1α:ℝ := (1 / 2 + ρ.re) / 2hα:α = (1 / 2 + ρ.re) / 2C:ℝ_hC_pos:0 < Ch_bound:∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α⊢ 0 < α linarith [hα] All goals completed! 🐙) (by hNotRH:¬RiemannHypothesisK:ℝhK:0 < Kh_no:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2ρ:ℂhρ_zero:riemannZeta ρ = 0hρ_gt:1 / 2 < ρ.rehρ_lt:ρ.re < 1α:ℝ := (1 / 2 + ρ.re) / 2hα:α = (1 / 2 + ρ.re) / 2C:ℝ_hC_pos:0 < Ch_bound:∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ α⊢ α < ρ.re linarith [hα] All goals completed! 🐙) hρ_lt
(fun t ht ↦ by hNotRH:¬RiemannHypothesisK:ℝhK:0 < Kh_no:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2ρ:ℂhρ_zero:riemannZeta ρ = 0hρ_gt:1 / 2 < ρ.rehρ_lt:ρ.re < 1α:ℝ := (1 / 2 + ρ.re) / 2hα:α = (1 / 2 + ρ.re) / 2C:ℝ_hC_pos:0 < Ch_bound:∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ αt:ℝht:1 ≤ t⊢ 0 ≤ psiNegDefect C α t dsimp [psiNegDefect] hNotRH:¬RiemannHypothesisK:ℝhK:0 < Kh_no:∀ (x : ℕ), 253 < x → ↑x - Chebyshev.psi ↑x ≤ K * √↑x * Real.log ↑x ^ 2ρ:ℂhρ_zero:riemannZeta ρ = 0hρ_gt:1 / 2 < ρ.rehρ_lt:ρ.re < 1α:ℝ := (1 / 2 + ρ.re) / 2hα:α = (1 / 2 + ρ.re) / 2C:ℝ_hC_pos:0 < Ch_bound:∀ (t : ℝ), 1 ≤ t → t - Chebyshev.psi t ≤ C * t ^ αt:ℝht:1 ≤ t⊢ 0 ≤ C * t ^ α + Chebyshev.psi t - t; linarith [h_bound t ht] All goals completed! 🐙) hρ_zero
If x > 253 satisfies 10 * √x * (log x)^2 < x - ψ(x), then ShuniaCounterexample x holds.
theorem shuniaCounterexample_of_self_sub_psi_gt {x : ℕ} (hx : 253 < x)
(hpsi : 10 * Real.sqrt x * (Real.log x) ^ 2 < (x : ℝ) - Chebyshev.psi x) :
ShuniaCounterexample x := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x
by_contra hno x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xhno:¬ShuniaCounterexample x⊢ False
unfold ShuniaCounterexample at hno x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xhno:¬(quarterClock (x - 1) + 1) * 2 ^ quarterClock (x - 1) ≤ shuniaDeficit x⊢ False
push Not at hno x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xhno:shuniaDeficit x < (quarterClock (x - 1) + 1) * 2 ^ quarterClock (x - 1)⊢ False
set q := quarterClock (x - 1) x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ q⊢ False
have hx2 : 2 ≤ x := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x omega x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ x⊢ False
obtain ⟨hlo, _⟩ := quarterClock_spec x (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ x⊢ 1 ≤ x omega All goals completed! 🐙) x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)⊢ False
have h2q_sq : ((2 ^ q : ℕ) : ℝ) ^ 2 ≤ 3 * (x : ℝ) := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x
have h4 : (2 ^ q) ^ 2 = 4 ^ q := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x
calc (2 ^ q) ^ 2 = (2 ^ 2) ^ q := (pow_right_comm 2 q 2)
_ = 4 ^ q := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)⊢ (2 ^ 2) ^ q = 4 ^ q norm_num x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h4:(2 ^ q) ^ 2 = 4 ^ q⊢ ↑(2 ^ q) ^ 2 ≤ 3 * ↑x
exact_mod_cast h4.le.trans hlo x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑x⊢ False
have h2q_le : ((2 ^ q : ℕ) : ℝ) ≤ 2 * Real.sqrt x := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x
have hsq_x : (2 * Real.sqrt x) ^ 2 = 4 * (x : ℝ) := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x
rw [mul_pow, x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑x⊢ 2 ^ 2 * √↑x ^ 2 = 4 * ↑x Real.sq_sqrt (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑x⊢ 0 ≤ ↑x positivity All goals completed! 🐙)] x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑x⊢ 2 ^ 2 * ↑x = 4 * ↑x
norm_num x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xhsq_x:(2 * √↑x) ^ 2 = 4 * ↑x⊢ ↑(2 ^ q) ≤ 2 * √↑x
have hle4 : ((2 ^ q : ℕ) : ℝ) ^ 2 ≤ (2 * Real.sqrt x) ^ 2 := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x linarith x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xhsq_x:(2 * √↑x) ^ 2 = 4 * ↑xhle4:↑(2 ^ q) ^ 2 ≤ (2 * √↑x) ^ 2⊢ ↑(2 ^ q) ≤ 2 * √↑x
exact le_of_sq_le_sq hle4 (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xhsq_x:(2 * √↑x) ^ 2 = 4 * ↑xhle4:↑(2 ^ q) ^ 2 ≤ (2 * √↑x) ^ 2⊢ 0 ≤ 2 * √↑x positivity All goals completed! 🐙) x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑x⊢ False
have hq_log : (q : ℝ) ≤ 3 * Real.log x := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x
have hpow_le : (2 : ℝ) ^ q ≤ (x : ℝ) ^ 2 := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x
have h3x : (3 * x : ℝ) ≤ (x : ℝ) ^ 2 := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x
have hx_r : (4 : ℝ) ≤ x := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x exact_mod_cast (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑x⊢ 4 ≤ x omega All goals completed! 🐙 : 4 ≤ x) x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhx_r:4 ≤ ↑x⊢ 3 * ↑x ≤ ↑x ^ 2
nlinarith x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xh3x:3 * ↑x ≤ ↑x ^ 2⊢ 2 ^ q ≤ ↑x ^ 2
have h2_le_4 : (2 : ℝ) ^ q ≤ (4 : ℝ) ^ q :=
pow_le_pow_left₀ (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xh3x:3 * ↑x ≤ ↑x ^ 2⊢ 0 ≤ 2 positivity All goals completed! 🐙) (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xh3x:3 * ↑x ≤ ↑x ^ 2⊢ 2 ≤ 4 norm_num All goals completed! 🐙) q x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xh3x:3 * ↑x ≤ ↑x ^ 2h2_le_4:2 ^ q ≤ 4 ^ q⊢ 2 ^ q ≤ ↑x ^ 2
have h4_le : (4 : ℝ) ^ q ≤ 3 * (x : ℝ) := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x exact_mod_cast hlo x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xh3x:3 * ↑x ≤ ↑x ^ 2h2_le_4:2 ^ q ≤ 4 ^ qh4_le:4 ^ q ≤ 3 * ↑x⊢ 2 ^ q ≤ ↑x ^ 2
linarith x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhpow_le:2 ^ q ≤ ↑x ^ 2⊢ ↑q ≤ 3 * Real.log ↑x
have hlog_ineq := Real.log_le_log (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhpow_le:2 ^ q ≤ ↑x ^ 2⊢ 0 < 2 ^ q positivity All goals completed! 🐙) hpow_le x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhpow_le:2 ^ q ≤ ↑x ^ 2hlog_ineq:Real.log (2 ^ q) ≤ Real.log (↑x ^ 2)⊢ ↑q ≤ 3 * Real.log ↑x
rw [Real.log_pow, x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhpow_le:2 ^ q ≤ ↑x ^ 2hlog_ineq:↑q * Real.log 2 ≤ Real.log (↑x ^ 2)⊢ ↑q ≤ 3 * Real.log ↑x Real.log_pow, x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhpow_le:2 ^ q ≤ ↑x ^ 2hlog_ineq:↑q * Real.log 2 ≤ ↑2 * Real.log ↑x⊢ ↑q ≤ 3 * Real.log ↑x Nat.cast_ofNat x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhpow_le:2 ^ q ≤ ↑x ^ 2hlog_ineq:↑q * Real.log 2 ≤ 2 * Real.log ↑x⊢ ↑q ≤ 3 * Real.log ↑x] at hlog_ineq x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhpow_le:2 ^ q ≤ ↑x ^ 2hlog_ineq:↑q * Real.log 2 ≤ 2 * Real.log ↑x⊢ ↑q ≤ 3 * Real.log ↑x
have hlog2 := Real.log_two_gt_d9 x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhpow_le:2 ^ q ≤ ↑x ^ 2hlog_ineq:↑q * Real.log 2 ≤ 2 * Real.log ↑xhlog2:0.6931471803 < Real.log 2⊢ ↑q ≤ 3 * Real.log ↑x
nlinarith x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑x⊢ False
have hlog_pos : 0 < Real.log x := Real.log_pos (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑x⊢ 1 < ↑x exact_mod_cast hx2 All goals completed! 🐙) x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑x⊢ False
have hlog_ge5 : (5 : ℝ) ≤ Real.log x := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x
have hpow : (2 : ℝ) ^ 15 ≤ (x : ℝ) ^ 2 := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x
have hx_r : (254 : ℝ) ≤ x := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x exact_mod_cast (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑x⊢ 254 ≤ x omega All goals completed! 🐙 : 254 ≤ x) x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhx_r:254 ≤ ↑x⊢ 2 ^ 15 ≤ ↑x ^ 2
nlinarith x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhpow:2 ^ 15 ≤ ↑x ^ 2⊢ 5 ≤ Real.log ↑x
have h1 := Real.log_le_log (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhpow:2 ^ 15 ≤ ↑x ^ 2⊢ 0 < 2 ^ 15 positivity All goals completed! 🐙) hpow x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhpow:2 ^ 15 ≤ ↑x ^ 2h1:Real.log (2 ^ 15) ≤ Real.log (↑x ^ 2)⊢ 5 ≤ Real.log ↑x
rw [Real.log_pow, x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhpow:2 ^ 15 ≤ ↑x ^ 2h1:↑15 * Real.log 2 ≤ Real.log (↑x ^ 2)⊢ 5 ≤ Real.log ↑x Real.log_pow, x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhpow:2 ^ 15 ≤ ↑x ^ 2h1:↑15 * Real.log 2 ≤ ↑2 * Real.log ↑x⊢ 5 ≤ Real.log ↑x Nat.cast_ofNat, x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhpow:2 ^ 15 ≤ ↑x ^ 2h1:15 * Real.log 2 ≤ ↑2 * Real.log ↑x⊢ 5 ≤ Real.log ↑x Nat.cast_ofNat x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhpow:2 ^ 15 ≤ ↑x ^ 2h1:15 * Real.log 2 ≤ 2 * Real.log ↑x⊢ 5 ≤ Real.log ↑x] at h1 x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhpow:2 ^ 15 ≤ ↑x ^ 2h1:15 * Real.log 2 ≤ 2 * Real.log ↑x⊢ 5 ≤ Real.log ↑x
have hlog2 := Real.log_two_gt_d9 x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhpow:2 ^ 15 ≤ ↑x ^ 2h1:15 * Real.log 2 ≤ 2 * Real.log ↑xhlog2:0.6931471803 < Real.log 2⊢ 5 ≤ Real.log ↑x
linarith x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑x⊢ False
have hsqrt_ge15 : (15 : ℝ) ≤ Real.sqrt x := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x
rw [Real.le_sqrt (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑x⊢ 0 ≤ 15 norm_num All goals completed! 🐙) (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑x⊢ 0 ≤ ↑x positivity All goals completed! 🐙)] x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑x⊢ 15 ^ 2 ≤ ↑x
have hx_r : (254 : ℝ) ≤ x := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x exact_mod_cast (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑x⊢ 254 ≤ x omega All goals completed! 🐙 : 254 ≤ x) x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑xhx_r:254 ≤ ↑x⊢ 15 ^ 2 ≤ ↑x
nlinarith x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑xhsqrt_ge15:15 ≤ √↑x⊢ False
have hdef_le : (shuniaDeficit x : ℝ) ≤ 8 * Real.sqrt x * Real.log x := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x
have h1 : (shuniaDeficit x : ℝ) ≤ ((q + 1) * 2 ^ q : ℕ) := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x exact_mod_cast hno.le x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑xhsqrt_ge15:15 ≤ √↑xh1:↑(shuniaDeficit x) ≤ ↑((q + 1) * 2 ^ q)⊢ ↑(shuniaDeficit x) ≤ 8 * √↑x * Real.log ↑x
have hq1 : ((q + 1 : ℕ) : ℝ) ≤ 4 * Real.log x := by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ShuniaCounterexample x push_cast x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑xhsqrt_ge15:15 ≤ √↑xh1:↑(shuniaDeficit x) ≤ ↑((q + 1) * 2 ^ q)⊢ ↑q + 1 ≤ 4 * Real.log ↑x; linarith x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑xhsqrt_ge15:15 ≤ √↑xh1:↑(shuniaDeficit x) ≤ ↑((q + 1) * 2 ^ q)hq1:↑(q + 1) ≤ 4 * Real.log ↑x⊢ ↑(shuniaDeficit x) ≤ 8 * √↑x * Real.log ↑x
have hprod : ((q + 1 : ℕ) : ℝ) * ((2 ^ q : ℕ) : ℝ) ≤
(4 * Real.log x) * (2 * Real.sqrt x) :=
mul_le_mul hq1 h2q_le (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑xhsqrt_ge15:15 ≤ √↑xh1:↑(shuniaDeficit x) ≤ ↑((q + 1) * 2 ^ q)hq1:↑(q + 1) ≤ 4 * Real.log ↑x⊢ 0 ≤ ↑(2 ^ q) positivity All goals completed! 🐙) (by x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑xhsqrt_ge15:15 ≤ √↑xh1:↑(shuniaDeficit x) ≤ ↑((q + 1) * 2 ^ q)hq1:↑(q + 1) ≤ 4 * Real.log ↑x⊢ 0 ≤ 4 * Real.log ↑x positivity All goals completed! 🐙) x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑xhsqrt_ge15:15 ≤ √↑xh1:↑(shuniaDeficit x) ≤ ↑((q + 1) * 2 ^ q)hq1:↑(q + 1) ≤ 4 * Real.log ↑xhprod:↑(q + 1) * ↑(2 ^ q) ≤ 4 * Real.log ↑x * (2 * √↑x)⊢ ↑(shuniaDeficit x) ≤ 8 * √↑x * Real.log ↑x
push_cast at h1 hprod ⊢ x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑xhsqrt_ge15:15 ≤ √↑xhq1:↑(q + 1) ≤ 4 * Real.log ↑xh1:↑(shuniaDeficit x) ≤ (↑q + 1) * 2 ^ qhprod:(↑q + 1) * 2 ^ q ≤ 4 * Real.log ↑x * (2 * √↑x)⊢ ↑(shuniaDeficit x) ≤ 8 * √↑x * Real.log ↑x
linarith x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑xhsqrt_ge15:15 ≤ √↑xhdef_le:↑(shuniaDeficit x) ≤ 8 * √↑x * Real.log ↑x⊢ False
have htheta_le := self_sub_theta_le_shuniaDeficit_mul_log hx2 x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑xhsqrt_ge15:15 ≤ √↑xhdef_le:↑(shuniaDeficit x) ≤ 8 * √↑x * Real.log ↑xhtheta_le:↑x - Chebyshev.theta ↑x ≤ (↑(shuniaDeficit x) + 3) * Real.log ↑x + 1⊢ False
have hpsi_ge_theta : Chebyshev.theta x ≤ Chebyshev.psi x := Chebyshev.theta_le_psi x x:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑xq:ℕ := quarterClock (x - 1)hno:shuniaDeficit x < (q + 1) * 2 ^ qhx2:2 ≤ xhlo:4 ^ quarterClock (x - 1) ≤ 3 * xright✝:3 * x < 4 ^ (quarterClock (x - 1) + 1)h2q_sq:↑(2 ^ q) ^ 2 ≤ 3 * ↑xh2q_le:↑(2 ^ q) ≤ 2 * √↑xhq_log:↑q ≤ 3 * Real.log ↑xhlog_pos:0 < Real.log ↑xhlog_ge5:5 ≤ Real.log ↑xhsqrt_ge15:15 ≤ √↑xhdef_le:↑(shuniaDeficit x) ≤ 8 * √↑x * Real.log ↑xhtheta_le:↑x - Chebyshev.theta ↑x ≤ (↑(shuniaDeficit x) + 3) * Real.log ↑x + 1hpsi_ge_theta:Chebyshev.theta ↑x ≤ Chebyshev.psi ↑x⊢ False
nlinarith All goals completed! 🐙
One-Sided Landau Converse (¬ RiemannHypothesis → ∃ n ≥ 2, ShuniaCounterexample n):
If RiemannHypothesis is false, there exists n ≥ 2 satisfying ShuniaCounterexample n.
theorem not_riemannHypothesis_imp_exists_shuniaCounterexample
(hNotRH : ¬ RiemannHypothesis) :
∃ n ≥ 2, ShuniaCounterexample n := by hNotRH:¬RiemannHypothesis⊢ ∃ n ≥ 2, ShuniaCounterexample n
obtain ⟨x, hx, hpsi⟩ :=
not_riemannHypothesis_imp_exists_self_sub_psi_gt hNotRH (K := 10) (by hNotRH:¬RiemannHypothesis⊢ 0 < 10 norm_num All goals completed! 🐙) hNotRH:¬RiemannHypothesisx:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ ∃ n ≥ 2, ShuniaCounterexample n
exact ⟨x, by hNotRH:¬RiemannHypothesisx:ℕhx:253 < xhpsi:10 * √↑x * Real.log ↑x ^ 2 < ↑x - Chebyshev.psi ↑x⊢ x ≥ 2 omega All goals completed! 🐙, shuniaCounterexample_of_self_sub_psi_gt hx hpsi⟩5. Final Equivalence Bridge
If (n : ℝ) - θ(n) < (q_n + 1) * 2 ^ q_n * log n for n ≥ 2, then
¬ ShuniaCounterexample n.
theorem not_shuniaCounterexample_of_theta_bound {n : ℕ} (hn2 : 2 ≤ n)
(hbound : (n : ℝ) - Chebyshev.theta n <
((quarterClock (n - 1) + 1) * 2 ^ quarterClock (n - 1) : ℝ) * Real.log n) :
¬ ShuniaCounterexample n := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n⊢ ¬ShuniaCounterexample n
intro hce n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nhce:ShuniaCounterexample n⊢ False
have hlog_pos : 0 < Real.log n := Real.log_pos (by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nhce:ShuniaCounterexample n⊢ 1 < ↑n exact_mod_cast hn2 All goals completed! 🐙) n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nhce:ShuniaCounterexample nhlog_pos:0 < Real.log ↑n⊢ False
have hce_r :
(((quarterClock (n - 1) + 1) * 2 ^ quarterClock (n - 1) : ℕ) : ℝ) * Real.log n ≤
(shuniaDeficit n : ℝ) * Real.log n :=
mul_le_mul_of_nonneg_right (by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nhce:ShuniaCounterexample nhlog_pos:0 < Real.log ↑n⊢ ↑((quarterClock (n - 1) + 1) * 2 ^ quarterClock (n - 1)) ≤ ↑(shuniaDeficit n) exact_mod_cast hce All goals completed! 🐙) hlog_pos.le n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nhce:ShuniaCounterexample nhlog_pos:0 < Real.log ↑nhce_r:↑((quarterClock (n - 1) + 1) * 2 ^ quarterClock (n - 1)) * Real.log ↑n ≤ ↑(shuniaDeficit n) * Real.log ↑n⊢ False
have hdef := shuniaDeficit_mul_log_le hn2 (by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nhce:ShuniaCounterexample nhlog_pos:0 < Real.log ↑nhce_r:↑((quarterClock (n - 1) + 1) * 2 ^ quarterClock (n - 1)) * Real.log ↑n ≤ ↑(shuniaDeficit n) * Real.log ↑n⊢ 1 ≤ shuniaDeficit n
have := Nat.two_pow_pos (quarterClock (n - 1)) n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nhce:ShuniaCounterexample nhlog_pos:0 < Real.log ↑nhce_r:↑((quarterClock (n - 1) + 1) * 2 ^ quarterClock (n - 1)) * Real.log ↑n ≤ ↑(shuniaDeficit n) * Real.log ↑nthis:0 < 2 ^ quarterClock (n - 1)⊢ 1 ≤ shuniaDeficit n
unfold ShuniaCounterexample at hce n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nhce:(quarterClock (n - 1) + 1) * 2 ^ quarterClock (n - 1) ≤ shuniaDeficit nhlog_pos:0 < Real.log ↑nhce_r:↑((quarterClock (n - 1) + 1) * 2 ^ quarterClock (n - 1)) * Real.log ↑n ≤ ↑(shuniaDeficit n) * Real.log ↑nthis:0 < 2 ^ quarterClock (n - 1)⊢ 1 ≤ shuniaDeficit n
nlinarith All goals completed! 🐙) n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nhce:ShuniaCounterexample nhlog_pos:0 < Real.log ↑nhce_r:↑((quarterClock (n - 1) + 1) * 2 ^ quarterClock (n - 1)) * Real.log ↑n ≤ ↑(shuniaDeficit n) * Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1⊢ False
push_cast at hce_r n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nhce:ShuniaCounterexample nhlog_pos:0 < Real.log ↑nhdef:↑(shuniaDeficit n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1hce_r:(↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n ≤ ↑(shuniaDeficit n) * Real.log ↑n⊢ False
linarith All goals completed! 🐙
Schoenfeld's explicit bound (n : ℝ) - θ(n) < √n * (log n)^2 / (8 * π) (or even
≤ (1 / 2) * √n * (log n)^2) implies the large-n quartering threshold for all n ≥ 2.
theorem large_theta_bound_of_half_sqrt_log_sq {n : ℕ} (hn2 : 2 ≤ n)
(hbound : (n : ℝ) - Chebyshev.theta n ≤ (1 / 2 : ℝ) * Real.sqrt n * (Real.log n) ^ 2) :
(n : ℝ) - Chebyshev.theta n <
((quarterClock (n - 1) + 1) * 2 ^ quarterClock (n - 1) : ℝ) * Real.log n := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
set q := quarterClock (n - 1) n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)⊢ ↑n - Chebyshev.theta ↑n < (↑q + 1) * 2 ^ q * Real.log ↑n
obtain ⟨_, hhi⟩ := quarterClock_spec n (by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)⊢ 1 ≤ n omega All goals completed! 🐙) n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)⊢ ↑n - Chebyshev.theta ↑n < (↑q + 1) * 2 ^ q * Real.log ↑n
have hlog_pos : 0 < Real.log n := Real.log_pos (by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)⊢ 1 < ↑n exact_mod_cast hn2 All goals completed! 🐙) n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑n⊢ ↑n - Chebyshev.theta ↑n < (↑q + 1) * 2 ^ q * Real.log ↑n
have hsqrt_lt : Real.sqrt n < ((2 ^ (q + 1) : ℕ) : ℝ) / Real.sqrt 3 := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
rw [lt_div_iff₀ (Real.sqrt_pos.mpr (by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑n⊢ 0 < 3 norm_num All goals completed! 🐙))] n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑n⊢ √↑n * √3 < ↑(2 ^ (q + 1))
have hsq_lhs : (Real.sqrt n * Real.sqrt 3) ^ 2 = 3 * (n : ℝ) := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
rw [mul_pow, n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑n⊢ √↑n ^ 2 * √3 ^ 2 = 3 * ↑n Real.sq_sqrt (by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑n⊢ 0 ≤ ↑n positivity All goals completed! 🐙), Real.sq_sqrt (by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑n⊢ 0 ≤ 3 norm_num All goals completed! 🐙)] n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑n⊢ ↑n * 3 = 3 * ↑n
ring n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsq_lhs:(√↑n * √3) ^ 2 = 3 * ↑n⊢ √↑n * √3 < ↑(2 ^ (q + 1))
have hsq_rhs : ((2 ^ (q + 1) : ℕ) : ℝ) ^ 2 = ((4 ^ (q + 1) : ℕ) : ℝ) := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
have h4 : (2 ^ (q + 1)) ^ 2 = 4 ^ (q + 1) := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
calc (2 ^ (q + 1)) ^ 2 = (2 ^ 2) ^ (q + 1) := pow_right_comm 2 (q + 1) 2
_ = 4 ^ (q + 1) := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsq_lhs:(√↑n * √3) ^ 2 = 3 * ↑n⊢ (2 ^ 2) ^ (q + 1) = 4 ^ (q + 1) norm_num n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsq_lhs:(√↑n * √3) ^ 2 = 3 * ↑nh4:(2 ^ (q + 1)) ^ 2 = 4 ^ (q + 1)⊢ ↑(2 ^ (q + 1)) ^ 2 = ↑(4 ^ (q + 1))
exact_mod_cast h4 n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsq_lhs:(√↑n * √3) ^ 2 = 3 * ↑nhsq_rhs:↑(2 ^ (q + 1)) ^ 2 = ↑(4 ^ (q + 1))⊢ √↑n * √3 < ↑(2 ^ (q + 1))
have hlt_sq : (Real.sqrt n * Real.sqrt 3) ^ 2 < ((2 ^ (q + 1) : ℕ) : ℝ) ^ 2 := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
rw [hsq_lhs, n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsq_lhs:(√↑n * √3) ^ 2 = 3 * ↑nhsq_rhs:↑(2 ^ (q + 1)) ^ 2 = ↑(4 ^ (q + 1))⊢ 3 * ↑n < ↑(2 ^ (q + 1)) ^ 2 hsq_rhs n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsq_lhs:(√↑n * √3) ^ 2 = 3 * ↑nhsq_rhs:↑(2 ^ (q + 1)) ^ 2 = ↑(4 ^ (q + 1))⊢ 3 * ↑n < ↑(4 ^ (q + 1))] n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsq_lhs:(√↑n * √3) ^ 2 = 3 * ↑nhsq_rhs:↑(2 ^ (q + 1)) ^ 2 = ↑(4 ^ (q + 1))⊢ 3 * ↑n < ↑(4 ^ (q + 1))
exact_mod_cast hhi n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsq_lhs:(√↑n * √3) ^ 2 = 3 * ↑nhsq_rhs:↑(2 ^ (q + 1)) ^ 2 = ↑(4 ^ (q + 1))hlt_sq:(√↑n * √3) ^ 2 < ↑(2 ^ (q + 1)) ^ 2⊢ √↑n * √3 < ↑(2 ^ (q + 1))
exact lt_of_pow_lt_pow_left₀ 2 (by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsq_lhs:(√↑n * √3) ^ 2 = 3 * ↑nhsq_rhs:↑(2 ^ (q + 1)) ^ 2 = ↑(4 ^ (q + 1))hlt_sq:(√↑n * √3) ^ 2 < ↑(2 ^ (q + 1)) ^ 2⊢ 0 ≤ ↑(2 ^ (q + 1)) positivity All goals completed! 🐙) hlt_sq n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3⊢ ↑n - Chebyshev.theta ↑n < (↑q + 1) * 2 ^ q * Real.log ↑n
have hsqrt3_gt : (17 / 10 : ℝ) < Real.sqrt 3 := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
rw [Real.lt_sqrt (by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3⊢ 0 ≤ 17 / 10 norm_num All goals completed! 🐙)] n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3⊢ (17 / 10) ^ 2 < 3
norm_num n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3⊢ ↑n - Chebyshev.theta ↑n < (↑q + 1) * 2 ^ q * Real.log ↑n
have hsqrt_le : Real.sqrt n ≤ (20 / 17 : ℝ) * ((2 ^ q : ℕ) : ℝ) := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
have h2 : ((2 ^ (q + 1) : ℕ) : ℝ) / (17 / 10 : ℝ) =
(20 / 17 : ℝ) * ((2 ^ q : ℕ) : ℝ) := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
rw [pow_succ' n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3⊢ ↑(2 * 2 ^ q) / (17 / 10) = 20 / 17 * ↑(2 ^ q)] n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3⊢ ↑(2 * 2 ^ q) / (17 / 10) = 20 / 17 * ↑(2 ^ q)
push_cast n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3⊢ 2 * 2 ^ q / (17 / 10) = 20 / 17 * 2 ^ q
ring n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3h2:↑(2 ^ (q + 1)) / (17 / 10) = 20 / 17 * ↑(2 ^ q)⊢ √↑n ≤ 20 / 17 * ↑(2 ^ q)
have hdiv : ((2 ^ (q + 1) : ℕ) : ℝ) / Real.sqrt 3 ≤
((2 ^ (q + 1) : ℕ) : ℝ) / (17 / 10 : ℝ) :=
div_le_div_of_nonneg_left (by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3h2:↑(2 ^ (q + 1)) / (17 / 10) = 20 / 17 * ↑(2 ^ q)⊢ 0 ≤ ↑(2 ^ (q + 1)) positivity All goals completed! 🐙) (by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3h2:↑(2 ^ (q + 1)) / (17 / 10) = 20 / 17 * ↑(2 ^ q)⊢ 0 < 17 / 10 norm_num All goals completed! 🐙) hsqrt3_gt.le n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3h2:↑(2 ^ (q + 1)) / (17 / 10) = 20 / 17 * ↑(2 ^ q)hdiv:↑(2 ^ (q + 1)) / √3 ≤ ↑(2 ^ (q + 1)) / (17 / 10)⊢ √↑n ≤ 20 / 17 * ↑(2 ^ q)
linarith n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)⊢ ↑n - Chebyshev.theta ↑n < (↑q + 1) * 2 ^ q * Real.log ↑n
have hlog_lt : Real.log n < ((q + 1 : ℕ) : ℝ) * (7 / 5 : ℝ) := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
have h_lt4 : (n : ℝ) < ((4 ^ (q + 1) : ℕ) : ℝ) := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
have h3 : (3 * n : ℝ) < ((4 ^ (q + 1) : ℕ) : ℝ) := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n exact_mod_cast hhi n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h3:3 * ↑n < ↑(4 ^ (q + 1))⊢ ↑n < ↑(4 ^ (q + 1))
linarith n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h_lt4:↑n < ↑(4 ^ (q + 1))⊢ Real.log ↑n < ↑(q + 1) * (7 / 5)
have h1 := Real.log_lt_log (by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h_lt4:↑n < ↑(4 ^ (q + 1))⊢ 0 < ↑n positivity All goals completed! 🐙) h_lt4 n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h_lt4:↑n < ↑(4 ^ (q + 1))h1:Real.log ↑n < Real.log ↑(4 ^ (q + 1))⊢ Real.log ↑n < ↑(q + 1) * (7 / 5)
rw [Nat.cast_pow, n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h_lt4:↑n < ↑(4 ^ (q + 1))h1:Real.log ↑n < Real.log (↑4 ^ (q + 1))⊢ Real.log ↑n < ↑(q + 1) * (7 / 5) Real.log_pow, n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h_lt4:↑n < ↑(4 ^ (q + 1))h1:Real.log ↑n < ↑(q + 1) * Real.log ↑4⊢ Real.log ↑n < ↑(q + 1) * (7 / 5) Nat.cast_ofNat n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h_lt4:↑n < ↑(4 ^ (q + 1))h1:Real.log ↑n < ↑(q + 1) * Real.log 4⊢ Real.log ↑n < ↑(q + 1) * (7 / 5)] at h1 n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h_lt4:↑n < ↑(4 ^ (q + 1))h1:Real.log ↑n < ↑(q + 1) * Real.log 4⊢ Real.log ↑n < ↑(q + 1) * (7 / 5)
have hlog4 : Real.log 4 < 7 / 5 := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
have h4 : (4 : ℝ) = 2 ^ 2 := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n norm_num n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h_lt4:↑n < ↑(4 ^ (q + 1))h1:Real.log ↑n < ↑(q + 1) * Real.log 4h4:4 = 2 ^ 2⊢ Real.log 4 < 7 / 5
rw [h4, n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h_lt4:↑n < ↑(4 ^ (q + 1))h1:Real.log ↑n < ↑(q + 1) * Real.log 4h4:4 = 2 ^ 2⊢ Real.log (2 ^ 2) < 7 / 5 Real.log_pow, n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h_lt4:↑n < ↑(4 ^ (q + 1))h1:Real.log ↑n < ↑(q + 1) * Real.log 4h4:4 = 2 ^ 2⊢ ↑2 * Real.log 2 < 7 / 5 Nat.cast_ofNat n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h_lt4:↑n < ↑(4 ^ (q + 1))h1:Real.log ↑n < ↑(q + 1) * Real.log 4h4:4 = 2 ^ 2⊢ 2 * Real.log 2 < 7 / 5] n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h_lt4:↑n < ↑(4 ^ (q + 1))h1:Real.log ↑n < ↑(q + 1) * Real.log 4h4:4 = 2 ^ 2⊢ 2 * Real.log 2 < 7 / 5
linarith [Real.log_two_lt_d9] n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h_lt4:↑n < ↑(4 ^ (q + 1))h1:Real.log ↑n < ↑(q + 1) * Real.log 4hlog4:Real.log 4 < 7 / 5⊢ Real.log ↑n < ↑(q + 1) * (7 / 5)
have hq1_pos : (0 : ℝ) < (q + 1 : ℕ) := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n positivity n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)h_lt4:↑n < ↑(4 ^ (q + 1))h1:Real.log ↑n < ↑(q + 1) * Real.log 4hlog4:Real.log 4 < 7 / 5hq1_pos:0 < ↑(q + 1)⊢ Real.log ↑n < ↑(q + 1) * (7 / 5)
nlinarith n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)hlog_lt:Real.log ↑n < ↑(q + 1) * (7 / 5)⊢ ↑n - Chebyshev.theta ↑n < (↑q + 1) * 2 ^ q * Real.log ↑n
have hprod :
(1 / 2 : ℝ) * Real.sqrt n * Real.log n <
(1 / 2 : ℝ) * ((20 / 17 : ℝ) * ((2 ^ q : ℕ) : ℝ)) * (((q + 1 : ℕ) : ℝ) * (7 / 5 : ℝ)) := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
have h1 : Real.sqrt n * Real.log n <
((20 / 17 : ℝ) * ((2 ^ q : ℕ) : ℝ)) * (((q + 1 : ℕ) : ℝ) * (7 / 5 : ℝ)) :=
mul_lt_mul' hsqrt_le hlog_lt hlog_pos.le (by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)hlog_lt:Real.log ↑n < ↑(q + 1) * (7 / 5)⊢ 0 < 20 / 17 * ↑(2 ^ q) positivity All goals completed! 🐙) n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)hlog_lt:Real.log ↑n < ↑(q + 1) * (7 / 5)h1:√↑n * Real.log ↑n < 20 / 17 * ↑(2 ^ q) * (↑(q + 1) * (7 / 5))⊢ 1 / 2 * √↑n * Real.log ↑n < 1 / 2 * (20 / 17 * ↑(2 ^ q)) * (↑(q + 1) * (7 / 5))
nlinarith n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)hlog_lt:Real.log ↑n < ↑(q + 1) * (7 / 5)hprod:1 / 2 * √↑n * Real.log ↑n < 1 / 2 * (20 / 17 * ↑(2 ^ q)) * (↑(q + 1) * (7 / 5))⊢ ↑n - Chebyshev.theta ↑n < (↑q + 1) * 2 ^ q * Real.log ↑n
have hcoeff :
(1 / 2 : ℝ) * ((20 / 17 : ℝ) * ((2 ^ q : ℕ) : ℝ)) * (((q + 1 : ℕ) : ℝ) * (7 / 5 : ℝ)) =
(14 / 17 : ℝ) * ((q + 1) * 2 ^ q : ℝ) := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
push_cast n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)hlog_lt:Real.log ↑n < ↑(q + 1) * (7 / 5)hprod:1 / 2 * √↑n * Real.log ↑n < 1 / 2 * (20 / 17 * ↑(2 ^ q)) * (↑(q + 1) * (7 / 5))⊢ 1 / 2 * (20 / 17 * 2 ^ q) * ((↑q + 1) * (7 / 5)) = 14 / 17 * ((↑q + 1) * 2 ^ q)
ring n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)hlog_lt:Real.log ↑n < ↑(q + 1) * (7 / 5)hprod:1 / 2 * √↑n * Real.log ↑n < 1 / 2 * (20 / 17 * ↑(2 ^ q)) * (↑(q + 1) * (7 / 5))hcoeff:1 / 2 * (20 / 17 * ↑(2 ^ q)) * (↑(q + 1) * (7 / 5)) = 14 / 17 * ((↑q + 1) * 2 ^ q)⊢ ↑n - Chebyshev.theta ↑n < (↑q + 1) * 2 ^ q * Real.log ↑n
have hpos_rhs : (0 : ℝ) < ((q + 1) * 2 ^ q : ℝ) := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n
have h2 : (0 : ℝ) < ((2 ^ q : ℕ) : ℝ) := by n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2⊢ ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n positivity n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)hlog_lt:Real.log ↑n < ↑(q + 1) * (7 / 5)hprod:1 / 2 * √↑n * Real.log ↑n < 1 / 2 * (20 / 17 * ↑(2 ^ q)) * (↑(q + 1) * (7 / 5))hcoeff:1 / 2 * (20 / 17 * ↑(2 ^ q)) * (↑(q + 1) * (7 / 5)) = 14 / 17 * ((↑q + 1) * 2 ^ q)h2:0 < ↑(2 ^ q)⊢ 0 < (↑q + 1) * 2 ^ q
push_cast at h2 ⊢ n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)hlog_lt:Real.log ↑n < ↑(q + 1) * (7 / 5)hprod:1 / 2 * √↑n * Real.log ↑n < 1 / 2 * (20 / 17 * ↑(2 ^ q)) * (↑(q + 1) * (7 / 5))hcoeff:1 / 2 * (20 / 17 * ↑(2 ^ q)) * (↑(q + 1) * (7 / 5)) = 14 / 17 * ((↑q + 1) * 2 ^ q)h2:0 < 2 ^ q⊢ 0 < (↑q + 1) * 2 ^ q
nlinarith n:ℕhn2:2 ≤ nhbound:↑n - Chebyshev.theta ↑n ≤ 1 / 2 * √↑n * Real.log ↑n ^ 2q:ℕ := quarterClock (n - 1)left✝:4 ^ quarterClock (n - 1) ≤ 3 * nhhi:3 * n < 4 ^ (quarterClock (n - 1) + 1)hlog_pos:0 < Real.log ↑nhsqrt_lt:√↑n < ↑(2 ^ (q + 1)) / √3hsqrt3_gt:17 / 10 < √3hsqrt_le:√↑n ≤ 20 / 17 * ↑(2 ^ q)hlog_lt:Real.log ↑n < ↑(q + 1) * (7 / 5)hprod:1 / 2 * √↑n * Real.log ↑n < 1 / 2 * (20 / 17 * ↑(2 ^ q)) * (↑(q + 1) * (7 / 5))hcoeff:1 / 2 * (20 / 17 * ↑(2 ^ q)) * (↑(q + 1) * (7 / 5)) = 14 / 17 * ((↑q + 1) * 2 ^ q)hpos_rhs:0 < (↑q + 1) * 2 ^ q⊢ ↑n - Chebyshev.theta ↑n < (↑q + 1) * 2 ^ q * Real.log ↑n
nlinarith All goals completed! 🐙
Main Bridge Theorem (ShuniaCounterexample ↔ ¬ RiemannHypothesis):
Given the large-n RH bound (n ≥ 21846), there exists n ≥ 2 satisfying
ShuniaCounterexample n if and only if ¬ RiemannHypothesis.
theorem exists_shuniaCounterexample_iff_not_riemannHypothesis_of_large
(hLarge : RiemannHypothesis → ∀ n : ℕ, 21846 ≤ n →
(n : ℝ) - Chebyshev.theta n <
((quarterClock (n - 1) + 1) * 2 ^ quarterClock (n - 1) : ℝ) * Real.log n) :
(∃ n ≥ 2, ShuniaCounterexample n) ↔ ¬ RiemannHypothesis := by hLarge:RiemannHypothesis →
∀ (n : ℕ),
21846 ≤ n → ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n⊢ (∃ n ≥ 2, ShuniaCounterexample n) ↔ ¬RiemannHypothesis
constructor mp hLarge:RiemannHypothesis →
∀ (n : ℕ),
21846 ≤ n → ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n⊢ (∃ n ≥ 2, ShuniaCounterexample n) → ¬RiemannHypothesismpr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21846 ≤ n → ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n⊢ ¬RiemannHypothesis → ∃ n ≥ 2, ShuniaCounterexample n
· mp hLarge:RiemannHypothesis →
∀ (n : ℕ),
21846 ≤ n → ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n⊢ (∃ n ≥ 2, ShuniaCounterexample n) → ¬RiemannHypothesis rintro ⟨n, hn2, hce⟩ hRH mp hLarge:RiemannHypothesis →
∀ (n : ℕ),
21846 ≤ n → ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nn:ℕhn2:n ≥ 2hce:ShuniaCounterexample nhRH:RiemannHypothesis⊢ False
rcases le_or_gt n 21845 with hsmall | hlarge mp.inl hLarge:RiemannHypothesis →
∀ (n : ℕ),
21846 ≤ n → ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nn:ℕhn2:n ≥ 2hce:ShuniaCounterexample nhRH:RiemannHypothesishsmall:n ≤ 21845⊢ Falsemp.inr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21846 ≤ n → ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nn:ℕhn2:n ≥ 2hce:ShuniaCounterexample nhRH:RiemannHypothesishlarge:21845 < n⊢ False
· mp.inl hLarge:RiemannHypothesis →
∀ (n : ℕ),
21846 ≤ n → ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nn:ℕhn2:n ≥ 2hce:ShuniaCounterexample nhRH:RiemannHypothesishsmall:n ≤ 21845⊢ False exact not_shuniaCounterexample_of_le_21845 hn2 hsmall hce All goals completed! 🐙
· mp.inr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21846 ≤ n → ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nn:ℕhn2:n ≥ 2hce:ShuniaCounterexample nhRH:RiemannHypothesishlarge:21845 < n⊢ False exact not_shuniaCounterexample_of_theta_bound hn2 (hLarge hRH n (by hLarge:RiemannHypothesis →
∀ (n : ℕ),
21846 ≤ n → ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑nn:ℕhn2:n ≥ 2hce:ShuniaCounterexample nhRH:RiemannHypothesishlarge:21845 < n⊢ 21846 ≤ n omega All goals completed! 🐙)) hce
· mpr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21846 ≤ n → ↑n - Chebyshev.theta ↑n < (↑(quarterClock (n - 1)) + 1) * 2 ^ quarterClock (n - 1) * Real.log ↑n⊢ ¬RiemannHypothesis → ∃ n ≥ 2, ShuniaCounterexample n exact not_riemannHypothesis_imp_exists_shuniaCounterexample All goals completed! 🐙5. Exact 5-Register Machine Alignment Exports
Exact prime-product register value P(n) = ∏_{1 ≤ p ≤ n, p prime} p.
def shuniaPrimorial (n : ℕ) : ℕ :=
((Finset.Icc 1 n).filter Nat.Prime).prod id
Exact base-n offset-digit deficit Δ_n = n - 1 - offsetDigits n (n! * P(n) - 1).
def shuniaDeficitExact (n : ℕ) : ℕ :=
n - 1 - offsetDigits n (shuniaProd n - 1)
Exact recursive quartering clock step quarterClockStep z = quarterClock z.
def quarterClockStep : ℕ → ℕ
| 0 => 0
| z + 1 => 1 + quarterClockStep (z / 4)
Exact machine counterexample predicate 2 ≤ n ∧ (q_n + 1) * 2 ^ q_n ≤ Δ_n.
def ShuniaCounterexampleExact (n : ℕ) : Prop :=
2 ≤ n ∧
(quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1) ≤
shuniaDeficitExact ntheorem quarterClockStep_eq_quarterClock : ∀ z : ℕ, quarterClockStep z = quarterClock z
| 0 => ⊢ quarterClockStep 0 = quarterClock 0 by ⊢ quarterClockStep 0 = quarterClock 0 simp [quarterClockStep, quarterClock] All goals completed! 🐙
| z + 1 => z:ℕ⊢ quarterClockStep (z + 1) = quarterClock (z + 1) by z:ℕ⊢ quarterClockStep (z + 1) = quarterClock (z + 1)
rw [quarterClockStep, z:ℕ⊢ 1 + quarterClockStep (z / 4) = quarterClock (z + 1) quarterClock z:ℕ⊢ 1 + quarterClockStep (z / 4) = 1 + quarterClock (z / 4)] z:ℕ⊢ 1 + quarterClockStep (z / 4) = 1 + quarterClock (z / 4)
exact congrArg (1 + ·) (quarterClockStep_eq_quarterClock (z / 4)) All goals completed! 🐙theorem shuniaCounterexampleExact_iff {n : ℕ} :
ShuniaCounterexampleExact n ↔ 2 ≤ n ∧ ShuniaCounterexample n := by n:ℕ⊢ ShuniaCounterexampleExact n ↔ 2 ≤ n ∧ ShuniaCounterexample n
simp only [ShuniaCounterexampleExact, ShuniaCounterexample, quarterClockStep_eq_quarterClock,
shuniaDeficitExact, shuniaDeficit] All goals completed! 🐙theorem shuniaDeficitExact_mul_log_le {n : ℕ} (hn : 2 ≤ n) (hd : 1 ≤ shuniaDeficitExact n) :
(shuniaDeficitExact n : ℝ) * Real.log n ≤ (n : ℝ) - Chebyshev.theta n - 1 :=
shuniaDeficit_mul_log_le hn hdtheorem not_shuniaCounterexampleExact_of_le_21845 {n : ℕ} (hn : n ≤ 21845) :
¬ ShuniaCounterexampleExact n := by n:ℕhn:n ≤ 21845⊢ ¬ShuniaCounterexampleExact n
rw [shuniaCounterexampleExact_iff n:ℕhn:n ≤ 21845⊢ ¬(2 ≤ n ∧ ShuniaCounterexample n)] n:ℕhn:n ≤ 21845⊢ ¬(2 ≤ n ∧ ShuniaCounterexample n)
exact fun ⟨hn2, hce⟩ ↦ not_shuniaCounterexample_of_le_21845 hn2 hn hce All goals completed! 🐙theorem exists_shuniaCounterexampleExact_iff_not_riemannHypothesis_of_large
(hLarge : RiemannHypothesis → ∀ n : ℕ, 21845 < n →
(n : ℝ) - Chebyshev.theta n ≤
((quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1) : ℝ) * Real.log n) :
(∃ n : ℕ, ShuniaCounterexampleExact n) ↔ ¬ RiemannHypothesis := by hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑n⊢ (∃ n, ShuniaCounterexampleExact n) ↔ ¬RiemannHypothesis
constructor mp hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑n⊢ (∃ n, ShuniaCounterexampleExact n) → ¬RiemannHypothesismpr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑n⊢ ¬RiemannHypothesis → ∃ n, ShuniaCounterexampleExact n
· mp hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑n⊢ (∃ n, ShuniaCounterexampleExact n) → ¬RiemannHypothesis rintro ⟨n, hce⟩ hRH mp hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhce:ShuniaCounterexampleExact nhRH:RiemannHypothesis⊢ False
rcases le_or_gt n 21845 with hsmall | hlarge mp.inl hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhce:ShuniaCounterexampleExact nhRH:RiemannHypothesishsmall:n ≤ 21845⊢ Falsemp.inr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhce:ShuniaCounterexampleExact nhRH:RiemannHypothesishlarge:21845 < n⊢ False
· mp.inl hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhce:ShuniaCounterexampleExact nhRH:RiemannHypothesishsmall:n ≤ 21845⊢ False exact not_shuniaCounterexampleExact_of_le_21845 hsmall hce All goals completed! 🐙
· mp.inr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhce:ShuniaCounterexampleExact nhRH:RiemannHypothesishlarge:21845 < n⊢ False obtain ⟨hn2, hdef⟩ := hce mp.inr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhRH:RiemannHypothesishlarge:21845 < nhn2:2 ≤ nhdef:(quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1) ≤ shuniaDeficitExact n⊢ False
have hpos : 1 ≤ shuniaDeficitExact n := by hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑n⊢ (∃ n, ShuniaCounterexampleExact n) ↔ ¬RiemannHypothesis
have hpow : 1 ≤ 2 ^ quarterClockStep (n - 1) := Nat.one_le_two_pow hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhRH:RiemannHypothesishlarge:21845 < nhn2:2 ≤ nhdef:(quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1) ≤ shuniaDeficitExact nhpow:1 ≤ 2 ^ quarterClockStep (n - 1)⊢ 1 ≤ shuniaDeficitExact n
have lhs_ge : 1 ≤ (quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1) := by hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑n⊢ (∃ n, ShuniaCounterexampleExact n) ↔ ¬RiemannHypothesis
nlinarith hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhRH:RiemannHypothesishlarge:21845 < nhn2:2 ≤ nhdef:(quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1) ≤ shuniaDeficitExact nhpow:1 ≤ 2 ^ quarterClockStep (n - 1)lhs_ge:1 ≤ (quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1)⊢ 1 ≤ shuniaDeficitExact n
exact lhs_ge.trans hdef mp.inr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhRH:RiemannHypothesishlarge:21845 < nhn2:2 ≤ nhdef:(quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1) ≤ shuniaDeficitExact nhpos:1 ≤ shuniaDeficitExact n⊢ False
have hlog_pos : 0 < Real.log n := Real.log_pos (by hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhRH:RiemannHypothesishlarge:21845 < nhn2:2 ≤ nhdef:(quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1) ≤ shuniaDeficitExact nhpos:1 ≤ shuniaDeficitExact n⊢ 1 < ↑n exact_mod_cast hn2 All goals completed! 🐙) mp.inr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhRH:RiemannHypothesishlarge:21845 < nhn2:2 ≤ nhdef:(quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1) ≤ shuniaDeficitExact nhpos:1 ≤ shuniaDeficitExact nhlog_pos:0 < Real.log ↑n⊢ False
have hmul :
((quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1) : ℝ) * Real.log n ≤
(shuniaDeficitExact n : ℝ) * Real.log n :=
mul_le_mul_of_nonneg_right (by hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhRH:RiemannHypothesishlarge:21845 < nhn2:2 ≤ nhdef:(quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1) ≤ shuniaDeficitExact nhpos:1 ≤ shuniaDeficitExact nhlog_pos:0 < Real.log ↑n⊢ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) ≤ ↑(shuniaDeficitExact n) exact_mod_cast hdef All goals completed! 🐙) hlog_pos.le mp.inr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhRH:RiemannHypothesishlarge:21845 < nhn2:2 ≤ nhdef:(quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1) ≤ shuniaDeficitExact nhpos:1 ≤ shuniaDeficitExact nhlog_pos:0 < Real.log ↑nhmul:(↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑n ≤ ↑(shuniaDeficitExact n) * Real.log ↑n⊢ False
have h_upper := shuniaDeficitExact_mul_log_le hn2 hpos mp.inr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhRH:RiemannHypothesishlarge:21845 < nhn2:2 ≤ nhdef:(quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1) ≤ shuniaDeficitExact nhpos:1 ≤ shuniaDeficitExact nhlog_pos:0 < Real.log ↑nhmul:(↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑n ≤ ↑(shuniaDeficitExact n) * Real.log ↑nh_upper:↑(shuniaDeficitExact n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1⊢ False
have h_rh := hLarge hRH n hlarge mp.inr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nn:ℕhRH:RiemannHypothesishlarge:21845 < nhn2:2 ≤ nhdef:(quarterClockStep (n - 1) + 1) * 2 ^ quarterClockStep (n - 1) ≤ shuniaDeficitExact nhpos:1 ≤ shuniaDeficitExact nhlog_pos:0 < Real.log ↑nhmul:(↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑n ≤ ↑(shuniaDeficitExact n) * Real.log ↑nh_upper:↑(shuniaDeficitExact n) * Real.log ↑n ≤ ↑n - Chebyshev.theta ↑n - 1h_rh:↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑n⊢ False
linarith All goals completed! 🐙
· mpr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑n⊢ ¬RiemannHypothesis → ∃ n, ShuniaCounterexampleExact n intro hNotRH mpr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nhNotRH:¬RiemannHypothesis⊢ ∃ n, ShuniaCounterexampleExact n
obtain ⟨n, hn2, hce⟩ := not_riemannHypothesis_imp_exists_shuniaCounterexample hNotRH mpr hLarge:RiemannHypothesis →
∀ (n : ℕ),
21845 < n → ↑n - Chebyshev.theta ↑n ≤ (↑(quarterClockStep (n - 1)) + 1) * 2 ^ quarterClockStep (n - 1) * Real.log ↑nhNotRH:¬RiemannHypothesisn:ℕhn2:n ≥ 2hce:ShuniaCounterexample n⊢ ∃ n, ShuniaCounterexampleExact n
exact ⟨n, shuniaCounterexampleExact_iff.mpr ⟨hn2, hce⟩⟩ All goals completed! 🐙end Riemann120Analyticend