Skip to main content
All packages

AlexKontorovich/PrimeNumberTheoremAnd

PrimeNumberTheoremAnd

Blueprint for the PNT+ Project

Therefore indexed 1,644 complete source declarations from the exact package revision. Individual authorship and independent verification remain unset.

Research project325 GitHub starsApache-2.09 indexed versionsRepositoryFull history on Reservoir

Head version

a93551347dce

a93551347dce924b1db75d40218841bf085a465f

Toolchain
leanprover/lean4:v4.32.0
Revision date
22 Jul 2026
Dependencies
13
Versions
9

External build observation

Exact head commit and toolchain

No Reservoir build observation was found for this exact commit and toolchain. This is not evidence of failure.

Pin this source in lakefile.lean

require PrimeNumberTheoremAnd from git "https://github.com/AlexKontorovich/PrimeNumberTheoremAnd.git" @ "a93551347dce924b1db75d40218841bf085a465f"

Source declarations

1,644 indexed proofs

Package history

Showing 701 to 720 of 1,644 declarations.

lemma

LiSeries.FubiniLogExpNeg.ibp_Ioi_one

γ = -Γ'(1) = -∫₀^∞ log(t) exp(-t) dt. -/ theorem eulerMascheroni_eq_neg_integral : eulerMascheroniConstant = -(∫ t in Ioi (0 : ℝ), log t * exp (-t)) := by -- Step 1: Get the complex derivative of GammaIntegral at s = 1 have hpos : (0 : ℝ) < (1 : ℂ).re := by simp have hderiv_integral := Complex.hasDerivAt_GammaIntegral hpos -- Step 2: Gamma = GammaIntegral on {s | 0 < s.re}, which is a nhd of 1 have heq : Complex.Gamma =ᶠ[𝓝 1] Complex.GammaIntegral := by have : {s : ℂ | 0 < s.re} ∈ 𝓝 (1 : ℂ) := by apply IsOpen.mem_nhds · exact isOpen_lt continuous_const Complex.continuous_re · simp exact Filter.eventuallyEq_iff_exists_mem.mpr ⟨{s : ℂ | 0 < s.re}, this, fun s hs => Complex.Gamma_eq_integral hs⟩ -- Step 3: So Gamma has the same derivative as GammaIntegral at 1 have hderiv_Gamma := hderiv_integral.congr_of_eventuallyEq heq -- Step 4: But we also know the derivative of complex Gamma at 1 have hderiv_known := Complex.hasDerivAt_Gamma_one -- Step 5: By uniqueness of derivatives have key := hderiv_Gamma.unique hderiv_known -- Step 6: Simplify the integral in key -- The integrand is ↑t ^ (1 - 1) * (↑(log t) * ↑(rexp (-t))) -- Simplify to ↑(log t * exp(-t)) using t^0 = 1 have simp_integral : (∫ t : ℝ in Ioi 0, (t : ℂ) ^ ((1 : ℂ) - 1) * (↑(log t) * ↑(rexp (-t)))) = ↑(∫ t : ℝ in Ioi 0, log t * rexp (-t)) := by rw [show (1 : ℂ) - 1 = 0 from sub_self 1] simp_rw [Complex.cpow_zero, one_mul, ← Complex.ofReal_mul] exact integral_ofReal rw [simp_integral] at key -- key : ↑(∫ t in Ioi 0, log t * rexp (-t)) = -↑eulerMascheroniConstant rw [← Complex.ofReal_neg] at key have := Complex.ofReal_injective key.symm linarith

namespace FubiniLogExpNeg

/-! ## Integrability lemmas -/

lemma integrableOn_log_Ioc : IntegrableOn log (Set.Ioc 0 1) := (intervalIntegral.intervalIntegrable_log' (a := 0) (b := 1)).1

lemma integrableOn_log_mul_exp_neg_Ioc : IntegrableOn (fun t => log t * exp (-t)) (Set.Ioc 0 1) := integrableOn_log_Ioc.mul_continuousOn_of_subset (continuous_exp.comp continuous_neg).continuousOn measurableSet_Ioc isCompact_Icc Ioc_subset_Icc_self

lemma integrableOn_log_mul_exp_neg_Ioi_one : IntegrableOn (fun t => log t * exp (-t)) (Set.Ioi 1) := by have hg : IntegrableOn (fun t => t * exp (-t)) (Set.Ioi 1) := by have := (GammaIntegral_convergent (s := 2) (by norm_num : (0 : ℝ) < 2)).mono_set (Set.Ioi_subset_Ioi zero_le_one) apply this.congr filter_upwards [self_mem_ae_restrict measurableSet_Ioi] with t ht simp only [Set.mem_Ioi] at ht rw [show (2 : ℝ) - 1 = 1 from by norm_num, rpow_one t, mul_comm] rw [IntegrableOn] at hg ⊢ exact hg.mono ((measurable_log.mul (continuous_exp.comp continuous_neg).measurable).aestronglyMeasurable.restrict) (by filter_upwards [self_mem_ae_restrict measurableSet_Ioi] with t ht simp only [Set.mem_Ioi] at ht have ht0 : (0 : ℝ) < t := lt_trans zero_lt_one ht rw [norm_mul, norm_mul, Real.norm_eq_abs (log t), Real.norm_eq_abs t, abs_of_nonneg (log_nonneg ht.le), abs_of_pos ht0] exact mul_le_mul_of_nonneg_right (log_le_self ht0.le) (norm_nonneg _))

lemma integrableOn_exp_neg_div_Ioi_one : IntegrableOn (fun t => exp (-t) / t) (Set.Ioi 1) := by have hg : IntegrableOn (fun t => exp (-t)) (Set.Ioi 1) := by have := (GammaIntegral_convergent (s := 1) (by norm_num : (0 : ℝ) < 1)).mono_set (Set.Ioi_subset_Ioi zero_le_one) apply this.congr filter_upwards [self_mem_ae_restrict measurableSet_Ioi] with t ht simp only [Set.mem_Ioi] at ht rw [show (1 : ℝ) - 1 = 0 from by norm_num, rpow_zero, mul_one] rw [IntegrableOn] at hg ⊢ exact hg.mono ((continuous_exp.comp continuous_neg).measurable.div measurable_id).aestronglyMeasurable.restrict (by filter_upwards [self_mem_ae_restrict measurableSet_Ioi] with t ht simp only [Set.mem_Ioi] at ht have ht0 : (0 : ℝ) < t := lt_trans zero_lt_one ht rw [norm_div, Real.norm_eq_abs, Real.norm_eq_abs, abs_of_pos (exp_pos _), abs_of_pos ht0] exact div_le_self (le_of_lt (exp_pos _)) (le_of_lt ht))

/-! ## IBP on (1, ∞): ∫₁^∞ log(t) exp(-t) dt = ∫₁^∞ exp(-t)/t dt

PrimeNumberTheoremAnd.IEANTN.LiSeries · PrimeNumberTheoremAnd/IEANTN/LiSeries.lean:234

theorem

LiSeries.fubini_log_exp_neg

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.LiSeries · PrimeNumberTheoremAnd/IEANTN/LiSeries.lean:378

theorem

LiSeries.integral_log_inv_eq_integral_exp_div

For a > 1, the substitution t = eᵘ transforms ∫ₐᵇ dt/log(t) into ∫_{log a}^{log b} eᵘ/u du.

PrimeNumberTheoremAnd.IEANTN.LiSeries · PrimeNumberTheoremAnd/IEANTN/LiSeries.lean:407

lemma

hs_lo

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.LnFactorialSeries · PrimeNumberTheoremAnd/IEANTN/LnFactorialSeries.lean:50

theorem

Mertens.sum_log_eq

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:314

theorem

Mertens.sum_log_le

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:342

theorem

Mertens.sum_log_ge

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:377

theorem

Mertens.E₁Λ.ge

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:473

theorem

Mertens.E₁Λ.le

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:501

theorem

Mertens.E₁.summable

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:622

theorem

Mertens.E₁.le

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:736

theorem

Mertens.E₁Λ.le_E₁p_add_E₁

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:772

lemma

Mertens.integral_one_div_mul_log

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:983

theorem

Mertens.E₂Λ.eq

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:1011

theorem

Mertens.E₂Λ.abs_le

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:1061

theorem

Mertens.log_zeta_eq_sum

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:1117

theorem

Mertens.deriv_gamma_add_γ_eq_zero

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:1898

theorem

Mertens.sum_mangoldt_div_log_eq_log_log

Open the record for the exact Lean statement and complete source.

PrimeNumberTheoremAnd.IEANTN.Mertens · PrimeNumberTheoremAnd/IEANTN/Mertens.lean:1933

Static source extraction only. Package code was not executed. Every result keeps its complete declaration, exact file and line range, commit, toolchain, license file, and content hash.