Documentation

LeanCert.Examples.Li2Bounds

Li(2) Bounds - Lightweight Interface #

This file provides the lightweight interface for li(2) bounds. It contains:

Purpose #

This module is designed to be fast to compile (~seconds) and is what downstream projects like PNT+ should import. The heavy numerical verification that proves the bounds is in Li2Verified.lean, which takes ~20 minutes but is only needed for LeanCert's CI, not for users of the bounds.

Main Results #

Verification Status #

The bounds li2_lower and li2_upper are marked with sorry in this file. They are fully verified via interval arithmetic in Li2Verified.lean. This separation allows downstream projects to use the bounds without incurring the ~20 minute compilation cost of numerical verification.

Core Definitions #

noncomputable def Li2.g (t : ) :

The symmetric log combination g(t) = 1/log(1+t) + 1/log(1-t). This is the integrand for computing li(2).

Equations
Instances For
    noncomputable def Li2.li2 :

    li(2) defined as the integral of the symmetric combination on [0, 1]. This is equivalent to the principal value integral ∫₀² dt/log(t).

    Equations
    Instances For

      Basic Properties #

      theorem Li2.g_eq (t : ) :
      g t = 1 / Real.log (1 + t) + 1 / Real.log (1 - t)

      The integrand g(t) equals 1/log(1+t) + 1/log(1-t)

      theorem Li2.g_alt (t : ) (ht_pos : 0 < t) (ht_lt : t < 1) :
      g t = Real.log (1 - t ^ 2) / (Real.log (1 + t) * Real.log (1 - t))

      g(t) has an alternative form: log(1-t²)/(log(1+t)·log(1-t))

      g(t) → 1 as t → 0⁺ (the removable singularity)

      theorem Li2.g_bounded (t : ) (ht_pos : 0 < t) (ht_le : t < 1 / 2) :
      |g t| 2

      |g(t)| ≤ 2 for t ∈ (0, 1/2]

      Positivity and Global Upper Bound #

      theorem Li2.g_pos (t : ) (ht_pos : 0 < t) (ht_lt : t < 1) :
      0 < g t

      g(t) > 0 for t ∈ (0, 1).

      theorem Li2.g_le_two (t : ) (ht_pos : 0 < t) (ht_lt : t < 1) :
      g t 2

      g(t) ≤ 2 for t ∈ (0, 1).

      Integrability #

      theorem Li2.g_intervalIntegrable (a b : ) (ha_pos : 0 < a) (hb_lt : b < 1) (hab : a b) :

      g is integrable on any closed subinterval of (0, 1).

      Crude Bounds (Analytic) #

      Crude upper bound: li(2) ≤ 2. This follows from g(t) ≤ 2 on (0, 1).

      theorem Li2.li2_pos :
      0 < li2

      li(2) > 0.

      Certified Bounds #

      The following bounds are proven via interval arithmetic in Li2Verified.lean. They are stated here with sorry to allow downstream projects to use them without incurring the ~20 minute compilation cost of numerical verification.

      The actual verification uses:

      Sum of verified lower bounds: 1.03951 > 1.039 Sum of verified upper bounds: 1.0524 < 1.06

      theorem Li2.li2_lower :
      1039 / 1000 li2

      Certified lower bound: li(2) ≥ 1.039. Proven via interval arithmetic in Li2Verified.lean.

      theorem Li2.li2_upper :
      li2 106 / 100

      Certified upper bound: li(2) ≤ 1.06. Proven via interval arithmetic in Li2Verified.lean.

      theorem Li2.li2_bounds :
      1039 / 1000 li2 li2 106 / 100

      Combined bounds: li(2) ∈ [1.039, 1.06].

      theorem Li2.li2_approx_1045 :
      |li2 - 1045 / 1000| 15 / 1000

      li(2) is approximately 1.045 (the Ramanujan-Soldner constant). Our bounds show: |li(2) - 1.045| ≤ 0.015