pith. machine review for the scientific record. sign in

IndisputableMonolith.Physics.ElectronMass.Necessity

IndisputableMonolith/Physics/ElectronMass/Necessity.lean · 562 lines · 45 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: ready · generated 2026-05-13 14:19:50.886343+00:00

   1import Mathlib
   2import IndisputableMonolith.Constants
   3import IndisputableMonolith.Constants.AlphaDerivation
   4import IndisputableMonolith.Constants.Alpha
   5import IndisputableMonolith.Physics.MassTopology
   6import IndisputableMonolith.Physics.ElectronMass.Defs
   7import IndisputableMonolith.RSBridge.Anchor
   8import IndisputableMonolith.Numerics.Interval.PhiBounds
   9import IndisputableMonolith.Numerics.Interval.AlphaBounds
  10import IndisputableMonolith.Numerics.Interval.Pow
  11import IndisputableMonolith.RSBridge.GapProperties
  12
  13/-!
  14# T9 Necessity: Electron Mass is Forced
  15
  16This module proves that the electron mass formula is **forced** from T8 (ledger
  17quantization) and the geometric constants derived in earlier theorems.
  18-/
  19
  20namespace IndisputableMonolith
  21namespace Physics
  22namespace ElectronMass
  23namespace Necessity
  24
  25open Real Constants AlphaDerivation MassTopology RSBridge
  26
  27/-! ## Part 1: Bounds on Constituent Constants -/
  28
  29/-- φ is bounded. We prove this directly using √5 bounds. -/
  30lemma phi_bounds : (1.618033 : ℝ) < phi ∧ phi < (1.618034 : ℝ) := by
  31  -- φ = (1 + √5)/2
  32  -- We need: 2.236066 < √5 < 2.236068
  33  have sqrt5_lower : (2.236066 : ℝ) < Real.sqrt 5 := by
  34    have h : (2.236066 : ℝ)^2 < 5 := by norm_num
  35    have h_pos : (0 : ℝ) ≤ 2.236066 := by norm_num
  36    rw [← Real.sqrt_sq h_pos]
  37    exact Real.sqrt_lt_sqrt (by norm_num) h
  38  have sqrt5_upper : Real.sqrt 5 < (2.236068 : ℝ) := by
  39    have h : (5 : ℝ) < 2.236068^2 := by norm_num
  40    have h5_pos : (0 : ℝ) ≤ 5 := by norm_num
  41    have h_pos : (0 : ℝ) ≤ 2.236068 := by norm_num
  42    rw [← Real.sqrt_sq h_pos]
  43    exact Real.sqrt_lt_sqrt h5_pos h
  44  unfold phi
  45  constructor
  46  · -- Lower bound
  47    have h : (1.618033 : ℝ) = (1 + 2.236066) / 2 := by norm_num
  48    rw [h]
  49    apply div_lt_div_of_pos_right _ (by norm_num : (0 : ℝ) < 2)
  50    linarith
  51  · -- Upper bound
  52    have h : (1.618034 : ℝ) = (1 + 2.236068) / 2 := by norm_num
  53    rw [h]
  54    apply div_lt_div_of_pos_right _ (by norm_num : (0 : ℝ) < 2)
  55    linarith
  56
  57/-- Helper: Taylor sum for exp at x = 481211/1000000 (rational computation). -/
  58private def exp_taylor_10_at_481211 : ℚ :=
  59  let x : ℚ := 481211 / 1000000
  60  1 + x + x^2/2 + x^3/6 + x^4/24 + x^5/120 + x^6/720 + x^7/5040 + x^8/40320 + x^9/362880
  61
  62/-- Helper: Error bound for 10-term Taylor at x = 481211/1000000. -/
  63private def exp_error_10_at_481211 : ℚ :=
  64  let x : ℚ := 481211 / 1000000
  65  x^10 * 11 / (Nat.factorial 10 * 10)
  66
  67/-- Combined: Taylor sum + error < 1.618033 -/
  68private lemma exp_combined_lt_target : exp_taylor_10_at_481211 + exp_error_10_at_481211 < 1618033 / 1000000 := by
  69  native_decide
  70
  71/-- The real Taylor sum equals the rational one -/
  72private lemma taylor_sum_eq_rational :
  73    1 + (0.481211 : ℝ) + 0.481211^2/2 + 0.481211^3/6 + 0.481211^4/24 +
  74    0.481211^5/120 + 0.481211^6/720 + 0.481211^7/5040 +
  75    0.481211^8/40320 + 0.481211^9/362880 = (exp_taylor_10_at_481211 : ℝ) := by
  76  simp only [exp_taylor_10_at_481211]
  77  norm_num
  78
  79/-- The real error term equals the rational one -/
  80private lemma error_term_eq_rational :
  81    (0.481211 : ℝ)^10 * (10 + 1) / (3628800 * 10) = (exp_error_10_at_481211 : ℝ) := by
  82  simp only [exp_error_10_at_481211, Nat.factorial]
  83  norm_num
  84
  85/-- The Taylor sum at 0.481211 is less than 1.618033 -/
  86private lemma taylor_sum_lt_target :
  87    1 + (0.481211 : ℝ) + 0.481211^2/2 + 0.481211^3/6 + 0.481211^4/24 +
  88    0.481211^5/120 + 0.481211^6/720 + 0.481211^7/5040 +
  89    0.481211^8/40320 + 0.481211^9/362880 +
  90    0.481211^10 * (10 + 1) / (3628800 * 10) < 1.618033 := by
  91  rw [taylor_sum_eq_rational, error_term_eq_rational]
  92  have h := exp_combined_lt_target
  93  have h_cast : (exp_taylor_10_at_481211 : ℝ) + (exp_error_10_at_481211 : ℝ) <
  94                ((1618033 : ℚ) / 1000000 : ℝ) := by exact_mod_cast h
  95  calc (exp_taylor_10_at_481211 : ℝ) + (exp_error_10_at_481211 : ℝ)
  96      < ((1618033 : ℚ) / 1000000 : ℝ) := h_cast
  97    _ = (1.618033 : ℝ) := by norm_num
  98
  99/-- log(1.618033) > 0.481211 -/
 100theorem log_lower_numerical : (0.481211 : ℝ) < Real.log (1.618033 : ℝ) := by
 101  rw [Real.lt_log_iff_exp_lt (by norm_num : (0 : ℝ) < 1.618033)]
 102  have hx_pos : (0 : ℝ) ≤ (0.481211 : ℝ) := by norm_num
 103  have hx_le1 : (0.481211 : ℝ) ≤ 1 := by norm_num
 104  have h_bound := Real.exp_bound' hx_pos hx_le1 (n := 10) (by norm_num : 0 < 10)
 105  calc Real.exp (0.481211 : ℝ)
 106      ≤ (1 + 0.481211 + 0.481211^2/2 + 0.481211^3/6 + 0.481211^4/24 +
 107         0.481211^5/120 + 0.481211^6/720 + 0.481211^7/5040 +
 108         0.481211^8/40320 + 0.481211^9/362880) +
 109        0.481211^10 * (10 + 1) / (Nat.factorial 10 * 10) := by
 110          simpa [Finset.sum_range_succ, Finset.sum_range_zero, Nat.factorial] using h_bound
 111    _ = 1 + 0.481211 + 0.481211^2/2 + 0.481211^3/6 + 0.481211^4/24 +
 112        0.481211^5/120 + 0.481211^6/720 + 0.481211^7/5040 +
 113        0.481211^8/40320 + 0.481211^9/362880 +
 114        0.481211^10 * (10 + 1) / (3628800 * 10) := by
 115          simp only [Nat.factorial]; norm_num
 116    _ < 1.618033 := taylor_sum_lt_target
 117
 118/-- Taylor sum for exp at x = 481212/1000000 -/
 119private def exp_taylor_10_at_481212 : ℚ :=
 120  let x : ℚ := 481212 / 1000000
 121  1 + x + x^2/2 + x^3/6 + x^4/24 + x^5/120 + x^6/720 + x^7/5040 + x^8/40320 + x^9/362880
 122
 123/-- Error bound for 10-term Taylor at x = 481212/1000000 -/
 124private def exp_error_10_at_481212 : ℚ :=
 125  let x : ℚ := 481212 / 1000000
 126  x^10 * 11 / (Nat.factorial 10 * 10)
 127
 128/-- The Taylor sum at 0.481212 is greater than 1.618034 + error -/
 129private lemma exp_taylor_481212_gt_target :
 130    1618034 / 1000000 + exp_error_10_at_481212 < exp_taylor_10_at_481212 := by
 131  native_decide
 132
 133/-- log(1.618034) < 0.481212 -/
 134theorem log_upper_numerical : Real.log (1.618034 : ℝ) < (0.481212 : ℝ) := by
 135  rw [Real.log_lt_iff_lt_exp (by norm_num : (0 : ℝ) < 1.618034)]
 136  have hx_abs : |(0.481212 : ℝ)| ≤ 1 := by norm_num
 137  have h_bound := Real.exp_bound hx_abs (n := 10) (by norm_num : 0 < 10)
 138  have h_abs := abs_sub_le_iff.mp h_bound
 139  have h_taylor_gt := exp_taylor_481212_gt_target
 140  have h_cast : ((1618034 : ℚ) / 1000000 : ℝ) + (exp_error_10_at_481212 : ℝ) <
 141                (exp_taylor_10_at_481212 : ℝ) := by exact_mod_cast h_taylor_gt
 142  have h_sum_eq : (∑ m ∈ Finset.range 10, (0.481212 : ℝ)^m / m.factorial) =
 143      (exp_taylor_10_at_481212 : ℝ) := by
 144    simp only [exp_taylor_10_at_481212, Finset.sum_range_succ, Finset.sum_range_zero, Nat.factorial]
 145    norm_num
 146  have h_err_eq : |(0.481212 : ℝ)|^10 * ((Nat.succ 10 : ℕ) / ((Nat.factorial 10 : ℕ) * 10)) =
 147      (exp_error_10_at_481212 : ℝ) := by
 148    simp only [abs_of_nonneg (by norm_num : (0 : ℝ) ≤ 0.481212), exp_error_10_at_481212,
 149               Nat.factorial, Nat.succ_eq_add_one]
 150    norm_num
 151  have h_lower : (exp_taylor_10_at_481212 : ℝ) - (exp_error_10_at_481212 : ℝ) ≤
 152                 Real.exp (0.481212 : ℝ) := by
 153    have h2 := h_abs.2
 154    simp only [h_sum_eq, h_err_eq] at h2
 155    linarith
 156  calc (1.618034 : ℝ)
 157      = ((1618034 : ℚ) / 1000000 : ℝ) := by norm_num
 158    _ < (exp_taylor_10_at_481212 : ℝ) - (exp_error_10_at_481212 : ℝ) := by linarith [h_cast]
 159    _ ≤ Real.exp (0.481212 : ℝ) := h_lower
 160
 161/-- log(φ) is bounded. -/
 162lemma log_phi_bounds : (0.481211 : ℝ) < Real.log phi ∧ Real.log phi < (0.481212 : ℝ) := by
 163  have hphi := phi_bounds
 164  have h_phi_pos : 0 < phi := phi_pos
 165  have h_low_pos : (0 : ℝ) < 1.618033 := by norm_num
 166  have h_log_lower : Real.log (1.618033 : ℝ) < Real.log phi :=
 167    Real.log_lt_log h_low_pos hphi.1
 168  have h_log_upper : Real.log phi < Real.log (1.618034 : ℝ) :=
 169    Real.log_lt_log h_phi_pos hphi.2
 170  constructor
 171  · exact lt_trans log_lower_numerical h_log_lower
 172  · exact lt_trans h_log_upper log_upper_numerical
 173
 174/-- α is bounded. -/
 175lemma alpha_bounds : (0.007297 : ℝ) < alpha ∧ alpha < (0.0072977 : ℝ) := by
 176  have h_lower := IndisputableMonolith.Numerics.alphaInv_gt
 177  have h_upper := IndisputableMonolith.Numerics.alphaInv_lt
 178  have h_pos : 0 < alphaInv := lt_trans (by norm_num : (0 : ℝ) < 137.030) h_lower
 179  simp only [alpha]
 180  constructor
 181  · have h1 : alphaInv < 1 / 0.007297 := calc
 182      alphaInv < 137.039 := h_upper
 183      _ < 1 / 0.007297 := by norm_num
 184    have h_inv_bound : 1 / (1 / 0.007297) < 1 / alphaInv := by
 185      apply one_div_lt_one_div_of_lt h_pos h1
 186    simp only [one_div_one_div] at h_inv_bound
 187    exact h_inv_bound
 188  · have h2 : 1 / 0.0072977 < alphaInv := calc
 189      1 / 0.0072977 < 137.030 := by norm_num
 190      _ < alphaInv := h_lower
 191    have h_denom_pos : (0 : ℝ) < 1 / 0.0072977 := by norm_num
 192    have h_inv_bound : 1 / alphaInv < 1 / (1 / 0.0072977) := by
 193      apply one_div_lt_one_div_of_lt h_denom_pos h2
 194    simp only [one_div_one_div] at h_inv_bound
 195    exact h_inv_bound
 196
 197/-- α² is bounded. -/
 198lemma alpha_sq_bounds : (0.0000532 : ℝ) < alpha^2 ∧ alpha^2 < (0.0000533 : ℝ) := by
 199  have h := alpha_bounds
 200  constructor
 201  · have h1 : (0.007297 : ℝ)^2 < alpha^2 := sq_lt_sq' (by linarith) h.1
 202    calc (0.0000532 : ℝ) < 0.007297^2 := by norm_num
 203      _ < alpha^2 := h1
 204  · have h2 : alpha^2 < (0.0072977 : ℝ)^2 := sq_lt_sq' (by linarith) h.2
 205    calc alpha^2 < 0.0072977^2 := h2
 206      _ < (0.0000533 : ℝ) := by norm_num
 207
 208/-- α³ is bounded. -/
 209lemma alpha_cube_bounds : (0.000000388 : ℝ) < alpha^3 ∧ alpha^3 < (0.000000389 : ℝ) := by
 210  have h := alpha_bounds
 211  constructor
 212  · have h1 : (0.007297 : ℝ)^3 < alpha^3 := by
 213      have : (0.007297 : ℝ) < alpha := h.1
 214      nlinarith [sq_nonneg alpha, sq_nonneg (0.007297 : ℝ)]
 215    calc (0.000000388 : ℝ) < 0.007297^3 := by norm_num
 216      _ < alpha^3 := h1
 217  · have h2 : alpha^3 < (0.0072977 : ℝ)^3 := by
 218      have : alpha < (0.0072977 : ℝ) := h.2
 219      nlinarith [sq_nonneg alpha, sq_nonneg (0.0072977 : ℝ)]
 220    calc alpha^3 < 0.0072977^3 := h2
 221      _ < (0.000000389 : ℝ) := by norm_num
 222
 223/-! ## Part 2: Bounds on Derived Quantities -/
 224
 225lemma ledger_fraction_exact : (ledger_fraction : ℝ) = 29 / 44 := by
 226  simp only [ledger_fraction, W, E_total, E_passive, wallpaper_groups, cube_edges, passive_field_edges, active_edges_per_tick]
 227  norm_num
 228
 229lemma base_shift_bounds : (34.6590 : ℝ) < base_shift ∧ base_shift < (34.6592 : ℝ) := by
 230  simp only [base_shift, W, wallpaper_groups]
 231  rw [ledger_fraction_exact]
 232  norm_num
 233
 234lemma radiative_correction_bounds :
 235    (0.0000578 : ℝ) < radiative_correction ∧ radiative_correction < (0.0000580 : ℝ) := by
 236  simp only [radiative_correction, correction_order_2, correction_order_3, E_total, cube_edges]
 237  have h2 := alpha_sq_bounds
 238  have h3 := alpha_cube_bounds
 239  constructor <;> linarith
 240
 241lemma refined_shift_bounds :
 242    (34.6590 : ℝ) < refined_shift ∧ refined_shift < (34.6593 : ℝ) := by
 243  simp only [refined_shift]
 244  have hb := base_shift_bounds
 245  have hr := radiative_correction_bounds
 246  constructor <;> linarith
 247
 248/-! ## Part 3: Bounds on Gap Function -/
 249
 250/-- Z value for the electron: 1332. -/
 251lemma electron_Z_value : ZOf Fermion.e = 1332 := by
 252  simp only [ZOf, tildeQ, sectorOf]
 253  norm_num
 254
 255/-- Hypothesis: exp(6.7144) < 824.2 -/
 256def exp_67144_lt_824_hypothesis : Prop := Real.exp (6.7144 : ℝ) < (824.2 : ℝ)
 257
 258/-- Hypothesis: 824.2218 < exp(6.7145) -/
 259def val_824_lt_exp_67145_hypothesis : Prop := (824.2218 : ℝ) < Real.exp (6.7145 : ℝ)
 260
 261/-!
 262Rigorous closure of the two exp endpoint hypotheses:
 263
 264- `exp(6.7144) < 824.2`
 265- `824.2218 < exp(6.7145)`
 266
 267Proof strategy:
 2681. Split `exp(6 + x) = exp(6) * exp(x)`.
 2692. Bound `exp(6)` via `exp(1)` bounds (`Real.exp_one_gt_d9`, `Real.exp_one_lt_d9`) and `Real.exp_nat_mul`.
 2703. Bound `exp(0.7144)`/`exp(0.7145)` via 10-term Taylor bounds (`Real.exp_bound'` / `Real.exp_bound`) with exact rational checks (`native_decide`).
 271-/
 272
 273private lemma exp_six_upper : Real.exp (6 : ℝ) < (403.428794 : ℝ) := by
 274  have hpow : (Real.exp (1 : ℝ)) ^ (6 : ℕ) ≤ (2.7182818286 : ℝ) ^ (6 : ℕ) := by
 275    exact pow_le_pow_left₀ (Real.exp_pos (1 : ℝ)).le (Real.exp_one_lt_d9).le 6
 276  have hnum : (2.7182818286 : ℝ) ^ (6 : ℕ) < (403.428794 : ℝ) := by norm_num
 277  have hEq : Real.exp (6 : ℝ) = (Real.exp (1 : ℝ)) ^ (6 : ℕ) := by
 278    calc
 279      Real.exp (6 : ℝ) = Real.exp ((6 : ℕ) * (1 : ℝ)) := by norm_num
 280      _ = (Real.exp (1 : ℝ)) ^ (6 : ℕ) := by simpa using (Real.exp_nat_mul (1 : ℝ) 6)
 281  rw [hEq]
 282  exact lt_of_le_of_lt hpow hnum
 283
 284private lemma exp_six_lower : (403.428793 : ℝ) < Real.exp (6 : ℝ) := by
 285  have hpow : (2.7182818283 : ℝ) ^ (6 : ℕ) < (Real.exp (1 : ℝ)) ^ (6 : ℕ) := by
 286    exact pow_lt_pow_left₀ Real.exp_one_gt_d9 (by norm_num) (by norm_num : (6 : ℕ) ≠ 0)
 287  have hnum : (403.428793 : ℝ) < (2.7182818283 : ℝ) ^ (6 : ℕ) := by norm_num
 288  have hEq : Real.exp (6 : ℝ) = (Real.exp (1 : ℝ)) ^ (6 : ℕ) := by
 289    calc
 290      Real.exp (6 : ℝ) = Real.exp ((6 : ℕ) * (1 : ℝ)) := by norm_num
 291      _ = (Real.exp (1 : ℝ)) ^ (6 : ℕ) := by simpa using (Real.exp_nat_mul (1 : ℝ) 6)
 292  have hpow' : (2.7182818283 : ℝ) ^ (6 : ℕ) < Real.exp (6 : ℝ) := by
 293    rw [hEq]
 294    exact hpow
 295  exact lt_trans hnum hpow'
 296
 297/-- Taylor sum for exp at x = 7144/10000. -/
 298private def exp_taylor_10_at_7144 : ℚ :=
 299  let x : ℚ := 7144 / 10000
 300  1 + x + x^2/2 + x^3/6 + x^4/24 + x^5/120 + x^6/720 + x^7/5040 + x^8/40320 + x^9/362880
 301
 302/-- Error bound for 10-term Taylor at x = 7144/10000. -/
 303private def exp_error_10_at_7144 : ℚ :=
 304  let x : ℚ := 7144 / 10000
 305  x^10 * 11 / (Nat.factorial 10 * 10)
 306
 307private lemma exp_07144_upper_q :
 308    exp_taylor_10_at_7144 + exp_error_10_at_7144 < 2042961 / 1000000 := by
 309  native_decide
 310
 311private lemma exp_07144_upper : Real.exp (0.7144 : ℝ) < (2.042961 : ℝ) := by
 312  have hx_pos : (0 : ℝ) ≤ (0.7144 : ℝ) := by norm_num
 313  have hx_le1 : (0.7144 : ℝ) ≤ 1 := by norm_num
 314  have h_bound := Real.exp_bound' hx_pos hx_le1 (n := 10) (by norm_num : 0 < 10)
 315  have h_taylor_eq : (∑ m ∈ Finset.range 10, (0.7144 : ℝ)^m / m.factorial) =
 316      (exp_taylor_10_at_7144 : ℝ) := by
 317    simp only [exp_taylor_10_at_7144, Finset.sum_range_succ, Finset.sum_range_zero, Nat.factorial]
 318    norm_num
 319  have h_err_eq : (0.7144 : ℝ)^10 * (10 + 1) / (Nat.factorial 10 * 10) =
 320      (exp_error_10_at_7144 : ℝ) := by
 321    simp only [exp_error_10_at_7144, Nat.factorial]
 322    norm_num
 323  have h_cast : (exp_taylor_10_at_7144 : ℝ) + (exp_error_10_at_7144 : ℝ) <
 324      ((2042961 : ℚ) / 1000000 : ℝ) := by
 325    exact_mod_cast exp_07144_upper_q
 326  calc Real.exp (0.7144 : ℝ)
 327      ≤ (∑ m ∈ Finset.range 10, (0.7144 : ℝ)^m / m.factorial) +
 328        (0.7144 : ℝ)^10 * (10 + 1) / (Nat.factorial 10 * 10) := h_bound
 329    _ = (exp_taylor_10_at_7144 : ℝ) + (exp_error_10_at_7144 : ℝ) := by rw [h_taylor_eq, h_err_eq]
 330    _ < ((2042961 : ℚ) / 1000000 : ℝ) := h_cast
 331    _ = (2.042961 : ℝ) := by norm_num
 332
 333/-- Taylor sum for exp at x = 7145/10000. -/
 334private def exp_taylor_10_at_7145 : ℚ :=
 335  let x : ℚ := 7145 / 10000
 336  1 + x + x^2/2 + x^3/6 + x^4/24 + x^5/120 + x^6/720 + x^7/5040 + x^8/40320 + x^9/362880
 337
 338/-- Error bound for 10-term Taylor at x = 7145/10000. -/
 339private def exp_error_10_at_7145 : ℚ :=
 340  let x : ℚ := 7145 / 10000
 341  x^10 * 11 / (Nat.factorial 10 * 10)
 342
 343private lemma exp_07145_lower_q :
 344    20431648 / 10000000 + exp_error_10_at_7145 < exp_taylor_10_at_7145 := by
 345  native_decide
 346
 347private lemma exp_07145_lower : (2.0431648 : ℝ) < Real.exp (0.7145 : ℝ) := by
 348  have hx_abs : |(0.7145 : ℝ)| ≤ 1 := by norm_num
 349  have h_bound := Real.exp_bound hx_abs (n := 10) (by norm_num : 0 < 10)
 350  have h_abs := abs_sub_le_iff.mp h_bound
 351  have h_taylor_eq : (∑ m ∈ Finset.range 10, (0.7145 : ℝ)^m / m.factorial) =
 352      (exp_taylor_10_at_7145 : ℝ) := by
 353    simp only [exp_taylor_10_at_7145, Finset.sum_range_succ, Finset.sum_range_zero, Nat.factorial]
 354    norm_num
 355  have h_err_eq : |(0.7145 : ℝ)|^10 * ((Nat.succ 10 : ℕ) / ((Nat.factorial 10 : ℕ) * 10)) =
 356      (exp_error_10_at_7145 : ℝ) := by
 357    simp only [abs_of_nonneg (by norm_num : (0 : ℝ) ≤ 0.7145), exp_error_10_at_7145,
 358      Nat.factorial, Nat.succ_eq_add_one]
 359    norm_num
 360  have h_cast : ((20431648 : ℚ) / 10000000 : ℝ) + (exp_error_10_at_7145 : ℝ) <
 361      (exp_taylor_10_at_7145 : ℝ) := by
 362    exact_mod_cast exp_07145_lower_q
 363  have h_lower : (exp_taylor_10_at_7145 : ℝ) - (exp_error_10_at_7145 : ℝ) ≤
 364      Real.exp (0.7145 : ℝ) := by
 365    have h2 := h_abs.2
 366    simp only [h_taylor_eq, h_err_eq] at h2
 367    linarith
 368  calc (2.0431648 : ℝ) = ((20431648 : ℚ) / 10000000 : ℝ) := by norm_num
 369    _ < (exp_taylor_10_at_7145 : ℝ) - (exp_error_10_at_7145 : ℝ) := by linarith [h_cast]
 370    _ ≤ Real.exp (0.7145 : ℝ) := h_lower
 371
 372theorem exp_67144_lt_824 : exp_67144_lt_824_hypothesis := by
 373  unfold exp_67144_lt_824_hypothesis
 374  have hsplit : Real.exp (6.7144 : ℝ) = Real.exp (6 : ℝ) * Real.exp (0.7144 : ℝ) := by
 375    have h : (6.7144 : ℝ) = (6 : ℝ) + 0.7144 := by norm_num
 376    rw [h, Real.exp_add]
 377  rw [hsplit]
 378  have h6 := exp_six_upper
 379  have hfrac := exp_07144_upper
 380  have hprod : Real.exp (6 : ℝ) * Real.exp (0.7144 : ℝ) < (403.428794 : ℝ) * (2.042961 : ℝ) := by
 381    nlinarith [h6, hfrac, Real.exp_pos (6 : ℝ), Real.exp_pos (0.7144 : ℝ)]
 382  have hnum : (403.428794 : ℝ) * (2.042961 : ℝ) < (824.2 : ℝ) := by norm_num
 383  exact lt_trans hprod hnum
 384
 385theorem val_824_lt_exp_67145 : val_824_lt_exp_67145_hypothesis := by
 386  unfold val_824_lt_exp_67145_hypothesis
 387  have hsplit : Real.exp (6.7145 : ℝ) = Real.exp (6 : ℝ) * Real.exp (0.7145 : ℝ) := by
 388    have h : (6.7145 : ℝ) = (6 : ℝ) + 0.7145 := by norm_num
 389    rw [h, Real.exp_add]
 390  rw [hsplit]
 391  have h6 := exp_six_lower
 392  have hfrac := exp_07145_lower
 393  have hprod : (403.428793 : ℝ) * (2.0431648 : ℝ) < Real.exp (6 : ℝ) * Real.exp (0.7145 : ℝ) := by
 394    nlinarith [h6, hfrac, Real.exp_pos (6 : ℝ), Real.exp_pos (0.7145 : ℝ)]
 395  have hnum : (824.2218 : ℝ) < (403.428793 : ℝ) * (2.0431648 : ℝ) := by norm_num
 396  exact lt_trans hnum hprod
 397
 398theorem one_plus_1332_div_phi_lower : (824.2 : ℝ) < 1 + 1332 / (1.618034 : ℝ) := by
 399  have h_pos : (0 : ℝ) < 1.618034 := by norm_num
 400  have h_key : (1.618034 : ℝ) * 823.2 < 1332 := by nlinarith
 401  have h_ineq : (823.2 : ℝ) < 1332 / 1.618034 := by
 402    rw [lt_div_iff₀' h_pos]
 403    exact h_key
 404  linarith
 405
 406theorem log_824_lower :
 407    (6.7144 : ℝ) < Real.log (1 + 1332 / (1.618034 : ℝ)) := by
 408  have h_pos : (0 : ℝ) < 1 + 1332 / 1.618034 := by positivity
 409  rw [Real.lt_log_iff_exp_lt h_pos]
 410  calc Real.exp 6.7144 < 824.2 := exp_67144_lt_824
 411    _ < 1 + 1332 / 1.618034 := one_plus_1332_div_phi_lower
 412
 413theorem one_plus_1332_div_phi_upper : 1 + 1332 / (1.618033 : ℝ) < (824.2218 : ℝ) := by
 414  have h_pos : (0 : ℝ) < 1.618033 := by norm_num
 415  have h_key : (1332 : ℝ) < 823.2218 * 1.618033 := by nlinarith
 416  have h_ineq : 1332 / (1.618033 : ℝ) < 823.2218 := by
 417    rw [div_lt_iff₀ h_pos]
 418    exact h_key
 419  linarith
 420
 421theorem log_824_upper :
 422    Real.log (1 + 1332 / (1.618033 : ℝ)) < (6.7145 : ℝ) := by
 423  have h_pos : (0 : ℝ) < 1 + 1332 / 1.618033 := by positivity
 424  rw [Real.log_lt_iff_lt_exp h_pos]
 425  calc 1 + 1332 / 1.618033 < 824.2218 := one_plus_1332_div_phi_upper
 426    _ < Real.exp 6.7145 := val_824_lt_exp_67145
 427
 428lemma gap_1332_bounds :
 429    (13.953 : ℝ) < gap 1332 ∧ gap 1332 < (13.954 : ℝ) := by
 430  simp only [gap]
 431  have hphi := phi_bounds
 432  have h_phi_pos : (0 : ℝ) < phi := by linarith [hphi.1]
 433  -- Use the local, proven `log_phi_bounds` in this module (no external hypotheses needed).
 434  have hlog := log_phi_bounds
 435  have h_log_pos : 0 < Real.log phi := Real.log_pos (by linarith [hphi.1])
 436  have h_log_lower : (6.7144 : ℝ) < Real.log (1 + 1332 / phi) := by
 437    have h_arg : 1 + 1332 / (1.618034 : ℝ) < 1 + 1332 / phi := by
 438      have ha : (0 : ℝ) < (1332 : ℝ) := by norm_num
 439      exact add_lt_add_right (div_lt_div_of_pos_left ha h_phi_pos hphi.2) 1
 440    exact lt_trans log_824_lower (Real.log_lt_log (by norm_num) h_arg)
 441  have h_log_upper : Real.log (1 + 1332 / phi) < (6.7145 : ℝ) := by
 442    have h_arg : 1 + 1332 / phi < 1 + 1332 / (1.618033 : ℝ) := by
 443      have ha : (0 : ℝ) < (1332 : ℝ) := by norm_num
 444      have hc : (0 : ℝ) < (1.618033 : ℝ) := by norm_num
 445      exact add_lt_add_right (div_lt_div_of_pos_left ha hc hphi.1) 1
 446    have h_pos : (0 : ℝ) < 1 + 1332 / phi := by
 447      have h_div_pos : (0 : ℝ) < (1332 : ℝ) / phi := div_pos (by norm_num) h_phi_pos
 448      linarith
 449    exact lt_trans (Real.log_lt_log h_pos h_arg) log_824_upper
 450  constructor
 451  · have h_chain : 13.953 * Real.log phi < Real.log (1 + 1332 / phi) := by
 452      have h1 : 13.953 * Real.log phi < 13.953 * 0.481212 := by nlinarith [hlog.2]
 453      linarith
 454    exact (lt_div_iff₀ h_log_pos).mpr h_chain
 455  · have h_chain : Real.log (1 + 1332 / phi) < 13.954 * Real.log phi := by
 456      have h1 : 13.954 * 0.481211 < 13.954 * Real.log phi := by nlinarith [hlog.1]
 457      linarith
 458    exact (div_lt_iff₀ h_log_pos).mpr h_chain
 459
 460/-! ## Part 4: The Main Bounds -/
 461
 462/-- **PROVEN**: Tight bounds on the structural mass scale.
 463
 464This is a purely geometric constant:
 465`electron_structural_mass = 2^(-22) * φ^51`.
 466
 467We bound `φ^51` using Fibonacci identities and tight rational bounds from
 468`Numerics/Interval/PhiBounds.lean`, then divide by `2^22 = 4194304`.
 469
 470This lemma is used downstream in the neutrino and quark mass checks. -/
 471theorem structural_mass_bounds :
 472    (10856 : ℝ) < IndisputableMonolith.Physics.ElectronMass.electron_structural_mass ∧
 473      IndisputableMonolith.Physics.ElectronMass.electron_structural_mass < (10858 : ℝ) := by
 474  -- Rewrite to the closed form `2^(-22) * φ^51`.
 475  have h_forced := IndisputableMonolith.Physics.ElectronMass.electron_structural_mass_forced
 476  -- `Constants.phi` is definitionally `Real.goldenRatio` in this project.
 477  have hphi : (phi : ℝ) = Real.goldenRatio := rfl
 478  -- Evaluate `2^22`.
 479  have h2pow : (2 : ℝ) ^ (22 : ℕ) = (4194304 : ℝ) := by norm_num
 480  -- Convert `2^(-22 : ℤ)` to `1 / 4194304`.
 481  have h2neg : (2 : ℝ) ^ (-22 : ℤ) = (1 : ℝ) / (4194304 : ℝ) := by
 482    -- `2 ^ (-22) = (2 ^ 22)⁻¹ = 1 / (2 ^ 22)`.
 483    have h2_ne : (2 : ℝ) ≠ 0 := by norm_num
 484    calc
 485      (2 : ℝ) ^ (-22 : ℤ)
 486          = ((2 : ℝ) ^ (22 : ℤ))⁻¹ := by
 487              -- `a^(-n) = (a^n)⁻¹`
 488              simpa using (zpow_neg (2 : ℝ) (22 : ℤ))
 489      _   = ((2 : ℝ) ^ (22 : ℕ))⁻¹ := by
 490              -- coerce positive exponent back to Nat power
 491              simp [zpow_ofNat]
 492      _   = ((4194304 : ℝ))⁻¹ := by
 493              simpa [h2pow]
 494      _   = (1 : ℝ) / (4194304 : ℝ) := by
 495              -- avoid simp looping between `inv_eq_one_div` and `one_div`
 496              exact (inv_eq_one_div (4194304 : ℝ))
 497  -- Convert `φ^(51 : ℤ)` to `φ^51` and rewrite `φ` to `goldenRatio`.
 498  have hphi51 : (phi : ℝ) ^ (51 : ℤ) = Real.goldenRatio ^ (51 : ℕ) := by
 499    -- `zpow_ofNat` + definitional `phi = goldenRatio`
 500    simpa [hphi, zpow_ofNat]
 501  -- Now bound using the proven interval for `goldenRatio^51`.
 502  have h51_lo := IndisputableMonolith.Numerics.phi_pow51_gt
 503  have h51_hi := IndisputableMonolith.Numerics.phi_pow51_lt
 504  -- Assemble the value.
 505  -- electron_structural_mass = (1/4194304) * goldenRatio^51
 506  have hm :
 507      IndisputableMonolith.Physics.ElectronMass.electron_structural_mass
 508        = (1 : ℝ) / (4194304 : ℝ) * (Real.goldenRatio ^ (51 : ℕ)) := by
 509    -- Start from the forced form.
 510    rw [h_forced]
 511    -- Replace `2^(-22)` and `φ^(51:ℤ)`.
 512    simp [h2neg, hphi51]
 513  -- Divide the `φ^51` interval by 2^22 to get the desired numeric bounds.
 514  have hden_pos : (0 : ℝ) < (4194304 : ℝ) := by norm_num
 515  constructor
 516  · -- lower bound
 517    -- Use a coarse numerical inequality: 10856 < (45537548334 / 4194304)
 518    have h_coarse : (10856 : ℝ) < (45537548334 : ℝ) / (4194304 : ℝ) := by
 519      norm_num
 520    -- From h51_lo: 45537548334 < φ^51, so dividing by positive denom preserves inequality.
 521    have h_div : (45537548334 : ℝ) / (4194304 : ℝ) < (Real.goldenRatio ^ (51 : ℕ)) / (4194304 : ℝ) :=
 522      (div_lt_div_of_pos_right h51_lo hden_pos)
 523    -- Convert to the exact form in `hm`.
 524    -- Note: (1/den) * x = x/den
 525    have h_form : (1 : ℝ) / (4194304 : ℝ) * (Real.goldenRatio ^ (51 : ℕ))
 526        = (Real.goldenRatio ^ (51 : ℕ)) / (4194304 : ℝ) := by
 527      have hne : (4194304 : ℝ) ≠ 0 := by norm_num
 528      field_simp [hne]
 529    -- Chain inequalities.
 530    rw [hm, h_form]
 531    exact lt_trans h_coarse h_div
 532  · -- upper bound
 533    -- Use a coarse numerical inequality: (45537549354 / 4194304) < 10858
 534    have h_coarse : (45537549354 : ℝ) / (4194304 : ℝ) < (10858 : ℝ) := by
 535      norm_num
 536    -- From h51_hi: φ^51 < 45537549354, divide by positive denom.
 537    have h_div : (Real.goldenRatio ^ (51 : ℕ)) / (4194304 : ℝ) < (45537549354 : ℝ) / (4194304 : ℝ) :=
 538      (div_lt_div_of_pos_right h51_hi hden_pos)
 539    have h_form : (1 : ℝ) / (4194304 : ℝ) * (Real.goldenRatio ^ (51 : ℕ))
 540        = (Real.goldenRatio ^ (51 : ℕ)) / (4194304 : ℝ) := by
 541      have hne : (4194304 : ℝ) ≠ 0 := by norm_num
 542      field_simp [hne]
 543    rw [hm, h_form]
 544    exact lt_trans h_div h_coarse
 545
 546/-- Hypothesis: electron_residue > -20.7063 -/
 547def electron_residue_lower_hypothesis : Prop := (-20.7063 : ℝ) < IndisputableMonolith.Physics.ElectronMass.electron_residue
 548
 549/-- Hypothesis: electron_residue < -20.7057 -/
 550def electron_residue_upper_hypothesis : Prop := IndisputableMonolith.Physics.ElectronMass.electron_residue < (-20.7057 : ℝ)
 551
 552/-- Hypothesis: φ^(-20.7063) > 4.705e-5 -/
 553def phi_pow_neg207063_lower_hypothesis : Prop := (4.705e-5 : ℝ) < phi ^ (-20.7063 : ℝ)
 554
 555/-- Hypothesis: φ^(-20.705) < 4.709e-5 -/
 556def phi_pow_neg20705_upper_hypothesis : Prop := phi ^ (-20.705 : ℝ) < (4709 / 100000000 : ℝ)
 557
 558end Necessity
 559end ElectronMass
 560end Physics
 561end IndisputableMonolith
 562

source mirrored from github.com/jonwashburn/shape-of-logic