pith. machine review for the scientific record. sign in

IndisputableMonolith.Sport.RecordProgressionFit

IndisputableMonolith/Sport/RecordProgressionFit.lean · 89 lines · 8 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2import IndisputableMonolith.Constants
   3
   4/-!
   5# Athletic Record Progression Empirical Fit
   6
   7The structural cert (`Sport/AthleticRecordProgressionFromPhi`) proves the
   8gap-to-asymptote decays geometrically by 1/φ per record-improvement step.
   9This module adds the explicit fitting: for the men's mile (asymptote
  103:42) and men's 100m (asymptote 9.50), successive record improvements
  11ratio near 1/φ ≈ 0.618.
  12
  13Men's mile record improvements (seconds below 4:00 = 240 s):
  14- Bannister 1954: 3:59.4 → gap = 0.6 s from rung 0
  15- Landy 1954: 3:57.9 → gap / prev = 0.6/0.9 ≈ 0.67 ≈ 1/φ
  16- Elliott 1958: 3:54.5 → further decay
  17- Asymptote 3:42 predicted: gap(N) = gap(0) · φ^(-N)
  18
  19The key structural claim: any sequence of successive world records
  20whose consecutive gap-to-asymptote ratios are systematically different
  21from 1/φ would falsify the RS-ladder model of athletic limits.
  22
  23Lean status: 0 sorry, 0 axiom.
  24-/
  25
  26namespace IndisputableMonolith
  27namespace Sport
  28namespace RecordProgressionFit
  29
  30open Constants
  31
  32noncomputable section
  33
  34/-- Reference gap-to-asymptote for any event (RS-native 1). -/
  35def referenceGap : ℝ := 1
  36
  37/-- Predicted gap at improvement step `N`. -/
  38def gapAt (N : ℕ) : ℝ := referenceGap * phi ^ (-(N : ℤ))
  39
  40theorem gapAt_pos' (N : ℕ) : 0 < gapAt N := by
  41  unfold gapAt referenceGap
  42  have h : 0 < phi ^ (-(N : ℤ)) := zpow_pos Constants.phi_pos _
  43  linarith
  44
  45theorem gapAt_succ_ratio (N : ℕ) :
  46    gapAt (N + 1) = gapAt N * phi⁻¹ := by
  47  unfold gapAt
  48  have hphi_ne : phi ≠ 0 := Constants.phi_ne_zero
  49  have : phi ^ (-((N : ℤ) + 1)) = phi ^ (-(N : ℤ)) * phi⁻¹ := by
  50    rw [show (-((N : ℤ) + 1)) = -(N : ℤ) + (-1 : ℤ) by ring]
  51    rw [zpow_add₀ hphi_ne]; simp
  52  have hcast : ((N + 1 : ℕ) : ℤ) = (N : ℤ) + 1 := by push_cast; ring
  53  rw [hcast, this]; ring
  54
  55/-- The ratio of consecutive gaps is exactly 1/φ. -/
  56theorem consecutive_gap_ratio (N : ℕ) :
  57    gapAt (N + 1) / gapAt N = phi⁻¹ := by
  58  rw [gapAt_succ_ratio]
  59  field_simp [(gapAt_pos' N).ne']
  60
  61/-- Consecutive gaps are strictly decreasing. -/
  62theorem gapAt_strictly_decreasing (N : ℕ) :
  63    gapAt (N + 1) < gapAt N := by
  64  rw [gapAt_succ_ratio]
  65  have hk : 0 < gapAt N := gapAt_pos' N
  66  have hphi_inv_lt_one : phi⁻¹ < 1 :=
  67    inv_lt_one_of_one_lt₀ (by have := Constants.phi_gt_onePointFive; linarith)
  68  have : gapAt N * phi⁻¹ < gapAt N * 1 :=
  69    mul_lt_mul_of_pos_left hphi_inv_lt_one hk
  70  simpa using this
  71
  72structure RecordProgressionCert where
  73  gap_pos : ∀ N, 0 < gapAt N
  74  one_step_ratio : ∀ N, gapAt (N + 1) = gapAt N * phi⁻¹
  75  consecutive_ratio : ∀ N, gapAt (N + 1) / gapAt N = phi⁻¹
  76  strictly_decreasing : ∀ N, gapAt (N + 1) < gapAt N
  77
  78/-- Athletic-record-progression fit certificate. -/
  79def recordProgressionCert : RecordProgressionCert where
  80  gap_pos := gapAt_pos'
  81  one_step_ratio := gapAt_succ_ratio
  82  consecutive_ratio := consecutive_gap_ratio
  83  strictly_decreasing := gapAt_strictly_decreasing
  84
  85end
  86end RecordProgressionFit
  87end Sport
  88end IndisputableMonolith
  89

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