pith. machine review for the scientific record. sign in

IndisputableMonolith.Physics.QCDRGE.AlphaRunning

IndisputableMonolith/Physics/QCDRGE/AlphaRunning.lean · 82 lines · 13 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2import IndisputableMonolith.Constants
   3import IndisputableMonolith.Physics.StrongForce
   4
   5/-!
   6# Running of α_s from RS
   7
   8α_s = 2/17 at M_Z. The one-loop beta function gives the running to nuclear scales.
   9b₀ = (11N_c - 2N_f) / (12π) > 0 for N_f < 17 (asymptotic freedom, from N_c = 3).
  10
  11## Status
  12
  13All theorems machine-verified (zero sorry, zero axiom).
  14-/
  15
  16namespace IndisputableMonolith
  17namespace Physics
  18namespace QCDRGE
  19namespace AlphaRunning
  20
  21open Constants Physics.StrongForce
  22
  23noncomputable section
  24
  25def N_c : ℕ := 3
  26def N_f_Z : ℕ := 5
  27
  28/-- One-loop beta function coefficient. -/
  29def beta0 (N_f : ℕ) : ℝ := (11 * (N_c : ℝ) - 2 * (N_f : ℝ)) / (12 * Real.pi)
  30
  31/-- b₀ > 0 for N_f ≤ 16 (asymptotic freedom). -/
  32theorem beta0_pos (N_f : ℕ) (hNf : N_f ≤ 16) : 0 < beta0 N_f := by
  33  unfold beta0 N_c
  34  apply div_pos _ (mul_pos (by norm_num : (0:ℝ) < 12) Real.pi_pos)
  35  have h : (N_f : ℝ) ≤ 16 := by exact_mod_cast hNf
  36  simp only [N_c, Nat.cast_ofNat]
  37  nlinarith
  38
  39/-- At N_f = 5: b₀ = 23/(12π). -/
  40theorem beta0_at_Z : beta0 N_f_Z = 23 / (12 * Real.pi) := by
  41  unfold beta0 N_c N_f_Z; ring
  42
  43/-- α_s at M_Z from RS. -/
  44def alpha_s_MZ : ℝ := alpha_s_geom
  45
  46theorem alpha_s_MZ_pos : 0 < alpha_s_MZ := by unfold alpha_s_MZ alpha_s_geom; norm_num
  47
  48/-- α_s(M_Z) is between 0.11 and 0.12. -/
  49theorem alpha_s_MZ_bounds : 0.11 < alpha_s_MZ ∧ alpha_s_MZ < 0.12 := by
  50  unfold alpha_s_MZ alpha_s_geom; constructor <;> norm_num
  51
  52/-- Z boson mass in GeV. -/
  53def M_Z_GeV : ℝ := 91.1876
  54
  55/-- Running α_s at scale Q (one-loop). -/
  56def alpha_s_running (Q_GeV : ℝ) : ℝ :=
  57  alpha_s_MZ / (1 + beta0 N_f_Z * alpha_s_MZ * Real.log (Q_GeV ^ 2 / M_Z_GeV ^ 2) / (2 * Real.pi))
  58
  59/-- For Q < M_Z, ln(Q²/M_Z²) < 0, so α_s increases (asymptotic freedom in reverse). -/
  60theorem low_Q_log_negative (Q : ℝ) (hQ : 0 < Q) (h : Q < M_Z_GeV) :
  61    Real.log (Q ^ 2 / M_Z_GeV ^ 2) < 0 := by
  62  apply Real.log_neg
  63  · apply div_pos (sq_pos_of_pos hQ)
  64    exact sq_pos_of_pos (by unfold M_Z_GeV; norm_num)
  65  · rw [div_lt_one (by unfold M_Z_GeV; positivity)]
  66    nlinarith [sq_nonneg Q, sq_nonneg M_Z_GeV, sq_abs (Q - M_Z_GeV)]
  67
  68/-- At Q = M_Z the log vanishes so α_s = α_s(M_Z). -/
  69theorem log_at_MZ : Real.log (M_Z_GeV ^ 2 / M_Z_GeV ^ 2) = 0 := by
  70  rw [div_self (by unfold M_Z_GeV; positivity)]; exact Real.log_one
  71
  72/-- Asymptotic freedom: α_s gets STRONGER at lower energies. -/
  73theorem asymptotic_freedom :
  74    0 < beta0 N_f_Z := beta0_pos N_f_Z (by unfold N_f_Z; norm_num)
  75
  76end
  77
  78end AlphaRunning
  79end QCDRGE
  80end Physics
  81end IndisputableMonolith
  82

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