pith. machine review for the scientific record. sign in

IndisputableMonolith.Constants.HartreeRydbergScoreCard

IndisputableMonolith/Constants/HartreeRydbergScoreCard.lean · 155 lines · 16 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2import IndisputableMonolith.Constants.Alpha
   3import IndisputableMonolith.Numerics.Interval.AlphaBounds
   4
   5/-!
   6# Hartree, Rydberg, and Bohr Dimensionless Score Card
   7
   8Phase 1 rows **P1-C04** (Hartree energy) and **P1-C02** (Rydberg
   9constant / hydrogen ground binding scale), plus **P1-C03** (Bohr radius)
  10in
  11`planning/PHYSICAL_DERIVATION_PLAN.md`.
  12
  13## Statement
  14
  15The theorem-grade, unit-free content is:
  16
  17* `E_h / (m_e c^2) = α^2`
  18* `E_R / (m_e c^2) = α^2 / 2`
  19* `a_0 / λbar_C = 1/α`
  20
  21using the certified RS inverse fine-structure constant `alphaInv`.
  22
  23## Measurement target
  24
  25CODATA / NIST Hartree, Rydberg, and Bohr-radius constants in SI units.
  26This module does not claim a Joule or meter value, because that requires
  27the electron-mass, `h`, `c`, and SI display bridge. It records the
  28dimensionless ratios and their tight interval bounds.
  29
  30Falsifier: CODATA `α^-1` outside `(137.030, 137.039)` or an SI bridge that
  31does not map the dimensionless `α²` / `α²/2` ratios to Hartree/Rydberg
  32measurements.
  33
  34## Lean status: 0 sorry, 0 axiom
  35-/
  36
  37namespace IndisputableMonolith.Constants.HartreeRydbergScoreCard
  38
  39open IndisputableMonolith.Constants
  40open IndisputableMonolith.Numerics
  41
  42noncomputable section
  43
  44/-! ## Re-exported row aliases -/
  45
  46/-- P1-C04 dimensionless Hartree/rest-energy ratio. -/
  47noncomputable def row_hartree_over_rest : ℝ := alpha ^ 2
  48
  49/-- P1-C02 dimensionless Rydberg/rest-energy ratio. -/
  50noncomputable def row_rydberg_over_rest : ℝ := alpha ^ 2 / 2
  51
  52/-- P1-C03 dimensionless Bohr/reduced-Compton radius ratio. -/
  53noncomputable def row_bohr_over_reduced_compton : ℝ := alphaInv
  54
  55private theorem alphaInv_pos : 0 < alphaInv := by
  56  linarith [alphaInv_gt]
  57
  58theorem row_hartree_over_rest_eq : row_hartree_over_rest = 1 / alphaInv ^ 2 := by
  59  unfold row_hartree_over_rest alpha
  60  field_simp [ne_of_gt alphaInv_pos]
  61
  62theorem row_rydberg_over_rest_eq :
  63    row_rydberg_over_rest = 1 / (2 * alphaInv ^ 2) := by
  64  unfold row_rydberg_over_rest alpha
  65  field_simp [ne_of_gt alphaInv_pos]
  66
  67/-! ## Certified interval bounds -/
  68
  69theorem row_hartree_over_rest_lower :
  70    (5.32e-5 : ℝ) < row_hartree_over_rest := by
  71  rw [row_hartree_over_rest_eq]
  72  have hpos : 0 < alphaInv ^ 2 := sq_pos_of_ne_zero (ne_of_gt alphaInv_pos)
  73  rw [lt_div_iff₀ hpos]
  74  have hsq : alphaInv ^ 2 < (137.039 : ℝ) ^ 2 := by
  75    nlinarith [alphaInv_lt, alphaInv_gt]
  76  have hnum : (5.32e-5 : ℝ) * (137.039 : ℝ) ^ 2 < 1 := by norm_num
  77  nlinarith
  78
  79theorem row_hartree_over_rest_upper :
  80    row_hartree_over_rest < (5.33e-5 : ℝ) := by
  81  rw [row_hartree_over_rest_eq]
  82  have hpos : 0 < alphaInv ^ 2 := sq_pos_of_ne_zero (ne_of_gt alphaInv_pos)
  83  rw [div_lt_iff₀ hpos]
  84  have hsq : (137.030 : ℝ) ^ 2 < alphaInv ^ 2 := by
  85    nlinarith [alphaInv_gt, alphaInv_lt]
  86  have hnum : 1 < (5.33e-5 : ℝ) * (137.030 : ℝ) ^ 2 := by norm_num
  87  nlinarith
  88
  89theorem row_hartree_over_rest_bracket :
  90    (5.32e-5 : ℝ) < row_hartree_over_rest ∧
  91      row_hartree_over_rest < (5.33e-5 : ℝ) :=
  92  ⟨row_hartree_over_rest_lower, row_hartree_over_rest_upper⟩
  93
  94theorem row_rydberg_over_rest_lower :
  95    (2.66e-5 : ℝ) < row_rydberg_over_rest := by
  96  rw [row_rydberg_over_rest_eq]
  97  have hsqpos : 0 < alphaInv ^ 2 := sq_pos_of_ne_zero (ne_of_gt alphaInv_pos)
  98  have hpos : 0 < 2 * alphaInv ^ 2 := by nlinarith
  99  rw [lt_div_iff₀ hpos]
 100  have hsq : alphaInv ^ 2 < (137.039 : ℝ) ^ 2 := by
 101    nlinarith [alphaInv_lt, alphaInv_gt]
 102  have hnum : (2.66e-5 : ℝ) * (2 * (137.039 : ℝ) ^ 2) < 1 := by norm_num
 103  nlinarith
 104
 105theorem row_rydberg_over_rest_upper :
 106    row_rydberg_over_rest < (2.665e-5 : ℝ) := by
 107  rw [row_rydberg_over_rest_eq]
 108  have hsqpos : 0 < alphaInv ^ 2 := sq_pos_of_ne_zero (ne_of_gt alphaInv_pos)
 109  have hpos : 0 < 2 * alphaInv ^ 2 := by nlinarith
 110  rw [div_lt_iff₀ hpos]
 111  have hsq : (137.030 : ℝ) ^ 2 < alphaInv ^ 2 := by
 112    nlinarith [alphaInv_gt, alphaInv_lt]
 113  have hnum : 1 < (2.665e-5 : ℝ) * (2 * (137.030 : ℝ) ^ 2) := by norm_num
 114  nlinarith
 115
 116theorem row_rydberg_over_rest_bracket :
 117    (2.66e-5 : ℝ) < row_rydberg_over_rest ∧
 118      row_rydberg_over_rest < (2.665e-5 : ℝ) :=
 119  ⟨row_rydberg_over_rest_lower, row_rydberg_over_rest_upper⟩
 120
 121theorem row_bohr_over_reduced_compton_eq :
 122    row_bohr_over_reduced_compton = alphaInv := rfl
 123
 124theorem row_bohr_over_reduced_compton_bracket :
 125    (137.030 : ℝ) < row_bohr_over_reduced_compton ∧
 126      row_bohr_over_reduced_compton < (137.039 : ℝ) :=
 127  ⟨alphaInv_gt, alphaInv_lt⟩
 128
 129structure HartreeRydbergScoreCardCert where
 130  hartree_closed : row_hartree_over_rest = 1 / alphaInv ^ 2
 131  rydberg_closed : row_rydberg_over_rest = 1 / (2 * alphaInv ^ 2)
 132  bohr_closed : row_bohr_over_reduced_compton = alphaInv
 133  hartree_bracket :
 134    (5.32e-5 : ℝ) < row_hartree_over_rest ∧
 135      row_hartree_over_rest < (5.33e-5 : ℝ)
 136  rydberg_bracket :
 137    (2.66e-5 : ℝ) < row_rydberg_over_rest ∧
 138      row_rydberg_over_rest < (2.665e-5 : ℝ)
 139  bohr_bracket :
 140    (137.030 : ℝ) < row_bohr_over_reduced_compton ∧
 141      row_bohr_over_reduced_compton < (137.039 : ℝ)
 142
 143theorem hartreeRydbergScoreCardCert_holds :
 144    Nonempty HartreeRydbergScoreCardCert :=
 145  ⟨{ hartree_closed := row_hartree_over_rest_eq
 146     rydberg_closed := row_rydberg_over_rest_eq
 147     bohr_closed := row_bohr_over_reduced_compton_eq
 148     hartree_bracket := row_hartree_over_rest_bracket
 149     rydberg_bracket := row_rydberg_over_rest_bracket
 150     bohr_bracket := row_bohr_over_reduced_compton_bracket }⟩
 151
 152end
 153
 154end IndisputableMonolith.Constants.HartreeRydbergScoreCard
 155

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