Skip to main content
AlexKontorovich/PrimeNumberTheoremAnd
Source indexedtheorem · leanprover/lean4:v4.32.0

li.sub_Li

PrimeNumberTheoremAnd.IEANTN.SecondaryDefinitions · PrimeNumberTheoremAnd/IEANTN/SecondaryDefinitions.lean:167 to 200

Mathematical statement

Exact Lean statement

@[blueprint
  "li_minus_Li"
  (title := "li minus Li")
  (statement := /-- $\li(x) - \Li(x) = \li(2)$. -/)
  (proof := /--
    This follows from the previous estimate. -/)
  (latexEnv := "remark")
  (discussion := 758)]
theorem li.sub_Li (x : ℝ) (h2x : 2 ≤ x) : li x - Li x = li 2

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
@[blueprint  "li_minus_Li"  (title := "li minus Li")  (statement := /-- $\li(x) - \Li(x) = \li(2)$. -/)  (proof := /--    This follows from the previous estimate. -/)  (latexEnv := "remark")  (discussion := 758)]theorem li.sub_Li (x : ) (h2x : 2  x) : li x - Li x = li 2 := by  have : Filter.Tendsto (fun ε => ∫ t in Set.Ioc 0 x \ Set.Ioo (1 - ε) (1 + ε), 1 / log t)      (𝓝[>] 0) (nhds (Li2Bounds.li2_symmetric + Li x)) := by    apply Filter.Tendsto.congr' (f₁ := fun ε       (∫ t in (0:)..(1 - ε), 1 / log t) + (∫ t in (1 + ε)..2, 1 / log t) + Li x)    · filter_upwards [Ioo_mem_nhdsGT (by linarith : (0 : ) < 1)] with ε hε      rw [Li2Bounds.setDiff_integral_eq_split ε x hε.1 hε.2 h2x]      unfold Li      rw [add_assoc, intervalIntegral.integral_add_adjacent_intervals]      all_goals        apply ContinuousOn.intervalIntegrable fun t ht           ContinuousAt.continuousWithinAt ?_        rw [Set.uIcc_of_le (by grind)] at ht        have : log t  0 := by          simp only [ne_eq, log_eq_zero]          grind        fun_prop (disch := grind)    · apply Filter.Tendsto.add_const      apply Li2Bounds.pv_tendsto_li2_symmetric.congr'      filter_upwards [Ioo_mem_nhdsGT (by linarith : (0 : ) < 1)] with ε hε using        Li2Bounds.setDiff_integral_eq_split ε 2 hε.1 hε.2 (by rfl)  have : li x = Li2Bounds.li2_symmetric + Li x :=    this.limUnder_eq  rw [this, Li2Bounds.li2_symmetric_eq_li2]  simp only [add_sub_cancel_right]  rfl