IndisputableMonolith.Physics.MesonSpectrumFromPhiLadder
IndisputableMonolith/Physics/MesonSpectrumFromPhiLadder.lean · 50 lines · 7 declarations
show as:
view math explainer →
1import Mathlib
2import IndisputableMonolith.Constants
3
4/-!
5# Meson Spectrum from φ-ladder — S2 Depth
6
7Five canonical meson families (= configDim D = 5):
8 pseudoscalar (π, K, η), vector (ρ, ω, K*, φ), scalar (a₀, f₀),
9 axial vector (a₁, b₁), tensor (a₂, f₂).
10
11Adjacent-family mass ratio on the φ-ladder.
12
13Lean status: 0 sorry, 0 axiom.
14-/
15
16namespace IndisputableMonolith.Physics.MesonSpectrumFromPhiLadder
17open Constants
18
19inductive MesonFamily where
20 | pseudoscalar
21 | vector
22 | scalar
23 | axialVector
24 | tensor
25 deriving DecidableEq, Repr, BEq, Fintype
26
27theorem mesonFamily_count : Fintype.card MesonFamily = 5 := by decide
28
29noncomputable def mesonMass (k : ℕ) : ℝ := phi ^ k
30
31theorem mass_ratio (k : ℕ) : mesonMass (k + 1) / mesonMass k = phi := by
32 unfold mesonMass
33 have hpos : (0 : ℝ) < phi ^ k := pow_pos phi_pos k
34 rw [div_eq_iff hpos.ne', pow_succ]
35 ring
36
37theorem mass_pos (k : ℕ) : 0 < mesonMass k := pow_pos phi_pos k
38
39structure MesonSpectrumCert where
40 five_families : Fintype.card MesonFamily = 5
41 phi_ratio : ∀ k, mesonMass (k + 1) / mesonMass k = phi
42 mass_always_pos : ∀ k, 0 < mesonMass k
43
44noncomputable def mesonSpectrumCert : MesonSpectrumCert where
45 five_families := mesonFamily_count
46 phi_ratio := mass_ratio
47 mass_always_pos := mass_pos
48
49end IndisputableMonolith.Physics.MesonSpectrumFromPhiLadder
50