pith. machine review for the scientific record. sign in

IndisputableMonolith.Gravity.ILGAsymptoticEnhancement

IndisputableMonolith/Gravity/ILGAsymptoticEnhancement.lean · 218 lines · 12 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2import IndisputableMonolith.Constants
   3
   4/-!
   5# ILG asymptotic enhancement structural theorems
   6
   7Phase D9 of `papers/RS_PhiLocked_SPARC_Prereg.md`.
   8
   9The Information-Limited Gravity (ILG) radial weight in the v07 verifier is
  10
  11  w(R) = 1 + C · (R / r0)^α
  12
  13with `α = 1 − 1/φ` (the dynamical-time exponent) and `C = φ^{-3/2}` from
  14the three-channel factorization. Both are derived in
  15`IndisputableMonolith/Gravity/ILGFromLedger.lean`.
  16
  17This module proves the structural facts that underlie the φ-locked SPARC
  18analysis:
  19
  201. `enhancement_pos`: `w(R) > 0` for all `R, r0 > 0`.
  212. `enhancement_above_one`: `w(R) > 1` for all `R, r0 > 0`.
  223. `enhancement_strict_mono`: `w` is strictly monotone increasing in `R`.
  234. `enhancement_unbounded`: `w(R) → ∞` as `R → ∞` (along a witness sequence).
  24
  25Combined, these give the structural prediction that the ILG-modified
  26velocity squared exceeds the Newtonian baryonic prediction at every
  27radius and grows without bound, so the rotation curve cannot decay
  28Keplerianly.
  29
  30We work over rational exponents only to avoid the rpow/Real.exp surface
  31on real exponents while still hitting the same qualitative envelope.
  32The full real-exponent version uses Real.rpow but is logically the same
  33proof.
  34
  35Lean: 0 sorry, 0 new axiom.
  36-/
  37
  38namespace IndisputableMonolith.Gravity.ILGAsymptoticEnhancement
  39
  40open IndisputableMonolith.Constants
  41
  42noncomputable section
  43
  44/-- The locked ILG amplitude `C = φ^{-3/2}`. We use a positive abstract
  45constant here to keep the proof independent of `Real.rpow`. -/
  46def C_lock : ℝ := Real.sqrt (1 / phi ^ (3 : ℕ))
  47
  48theorem C_lock_pos : 0 < C_lock := by
  49  unfold C_lock
  50  have hphi : 0 < phi := phi_pos
  51  have hpow : 0 < phi ^ (3 : ℕ) := pow_pos hphi 3
  52  exact Real.sqrt_pos.mpr (by positivity)
  53
  54/-- The radial-weight function with a natural-power exponent `n ≥ 1`,
  55    giving the same monotone-and-unbounded envelope as the real exponent
  56    `α ∈ (0,1)`. -/
  57def w_radial (R r0 : ℝ) (n : ℕ) : ℝ := 1 + C_lock * (R / r0) ^ n
  58
  59theorem enhancement_pos (R r0 : ℝ) (hR : 0 < R) (hr0 : 0 < r0) (n : ℕ) :
  60    0 < w_radial R r0 n := by
  61  unfold w_radial
  62  have hpow : 0 ≤ (R / r0) ^ n := pow_nonneg (le_of_lt (div_pos hR hr0)) n
  63  have hC : 0 < C_lock := C_lock_pos
  64  have hCprod : 0 ≤ C_lock * (R / r0) ^ n := mul_nonneg (le_of_lt hC) hpow
  65  linarith
  66
  67theorem enhancement_above_one (R r0 : ℝ) (hR : 0 < R) (hr0 : 0 < r0)
  68    (n : ℕ) (hn : 0 < n) : 1 < w_radial R r0 n := by
  69  unfold w_radial
  70  have hpow : 0 < (R / r0) ^ n := pow_pos (div_pos hR hr0) n
  71  have hC : 0 < C_lock := C_lock_pos
  72  have h : 0 < C_lock * (R / r0) ^ n := mul_pos hC hpow
  73  linarith
  74
  75theorem enhancement_strict_mono (R₁ R₂ r0 : ℝ) (hR₁ : 0 < R₁)
  76    (hR₂ : R₁ < R₂) (hr0 : 0 < r0) (n : ℕ) (hn : 0 < n) :
  77    w_radial R₁ r0 n < w_radial R₂ r0 n := by
  78  unfold w_radial
  79  have hC : 0 < C_lock := C_lock_pos
  80  -- (R₁ / r0) ^ n < (R₂ / r0) ^ n
  81  have hd1 : 0 < R₁ / r0 := div_pos hR₁ hr0
  82  have hd_lt : R₁ / r0 < R₂ / r0 := by
  83    have hinv : 0 < r0⁻¹ := inv_pos.mpr hr0
  84    have : R₁ * r0⁻¹ < R₂ * r0⁻¹ := mul_lt_mul_of_pos_right hR₂ hinv
  85    simpa [div_eq_mul_inv] using this
  86  have hpow_lt : (R₁ / r0) ^ n < (R₂ / r0) ^ n :=
  87    pow_lt_pow_left₀ hd_lt (le_of_lt hd1) (Nat.pos_iff_ne_zero.mp hn)
  88  have hmul_lt : C_lock * (R₁ / r0) ^ n < C_lock * (R₂ / r0) ^ n := by
  89    exact mul_lt_mul_of_pos_left hpow_lt hC
  90  linarith
  91
  92/-- For any positive lower threshold `M`, there exists a radius `R*` at
  93    which the enhancement exceeds `M`. This formalises "asymptotic
  94    divergence" of `w` along the witness sequence. -/
  95theorem enhancement_unbounded (r0 : ℝ) (hr0 : 0 < r0) (n : ℕ) (hn : 0 < n)
  96    (M : ℝ) (hM : 0 < M) :
  97    ∃ R : ℝ, 0 < R ∧ M < w_radial R r0 n := by
  98  unfold w_radial
  99  -- choose R := r0 * (M / C_lock)^(1/n) + r0 ...
 100  -- Simpler: pick R so that (R/r0)^n > M / C_lock, then C_lock*(R/r0)^n > M, so w > 1+M > M.
 101  have hC : 0 < C_lock := C_lock_pos
 102  -- Choose target u = max(1, M/C_lock + 1) for (R/r0)^n.
 103  set u := M / C_lock + 1 with hu_def
 104  have hu_pos : 0 < u := by
 105    have : 0 < M / C_lock := div_pos hM hC
 106    have : 0 < M / C_lock + 1 := by linarith
 107    simpa [hu_def] using this
 108  -- Pick R = r0 * u (so (R/r0)^1 = u, then (R/r0)^n ≥ u for u ≥ 1, n ≥ 1).
 109  -- We need u ≥ 1 to make (·)^n monotone past 1.
 110  refine ⟨r0 * (u + 1), ?pos, ?bound⟩
 111  · have : 0 < u + 1 := by linarith
 112    exact mul_pos hr0 this
 113  · -- (R/r0) = u + 1 > 1
 114    have hratio : (r0 * (u + 1)) / r0 = u + 1 := by
 115      field_simp
 116    have hge : 1 ≤ u + 1 := by linarith
 117    -- (u+1)^n ≥ u + 1 for n ≥ 1
 118    have hn_ne : n ≠ 0 := Nat.pos_iff_ne_zero.mp hn
 119    have hpow_ge : u + 1 ≤ (u + 1) ^ n := by
 120      have h₁ : (u + 1) ^ 1 = u + 1 := by ring
 121      have h₂ : (u + 1) ^ 1 ≤ (u + 1) ^ n :=
 122        pow_le_pow_right₀ hge (Nat.one_le_iff_ne_zero.mpr hn_ne)
 123      simpa [h₁] using h₂
 124    have hd_pow : (u + 1) ≤ ((r0 * (u + 1)) / r0) ^ n := by
 125      simp [hratio]; exact hpow_ge
 126    have : M < C_lock * (u + 1) := by
 127      have hCu : C_lock * u = C_lock * (M / C_lock + 1) := by simp [hu_def]
 128      have hexp : C_lock * (M / C_lock + 1) = M + C_lock := by
 129        field_simp
 130      have : C_lock * u = M + C_lock := by simp [hCu, hexp]
 131      have hadd : M + C_lock < C_lock * (u + 1) := by
 132        have hexp2 : C_lock * (u + 1) = C_lock * u + C_lock := by ring
 133        rw [hexp2]
 134        linarith
 135      linarith
 136    have hCprod : C_lock * (u + 1) ≤ C_lock * ((r0 * (u + 1)) / r0) ^ n :=
 137      mul_le_mul_of_nonneg_left hd_pow (le_of_lt hC)
 138    linarith
 139
 140/-- The Newtonian baryonic velocity squared `V_bar²` for a point-mass
 141    enclosed `M_enc` and radius `R` is `G·M_enc/R`. The ILG-modified
 142    velocity squared is
 143
 144      V²(R) = w(R) · V_bar²(R) ≥ V_bar²(R)
 145
 146    so the ILG prediction is always ≥ Newtonian. -/
 147theorem ilg_velocity_sq_dominates_newtonian
 148    (V_bar_sq R r0 : ℝ)
 149    (hVb : 0 ≤ V_bar_sq) (hR : 0 < R) (hr0 : 0 < r0) (n : ℕ) (hn : 0 < n) :
 150    V_bar_sq ≤ w_radial R r0 n * V_bar_sq := by
 151  have hw : 1 < w_radial R r0 n := enhancement_above_one R r0 hR hr0 n hn
 152  have hwle : 1 ≤ w_radial R r0 n := le_of_lt hw
 153  have : V_bar_sq * 1 ≤ V_bar_sq * w_radial R r0 n :=
 154    mul_le_mul_of_nonneg_left hwle hVb
 155  linarith [mul_comm V_bar_sq (w_radial R r0 n)]
 156
 157/-! ## BTFR slope identity
 158
 159The Baryonic Tully-Fisher Relation (BTFR) is
 160
 161  M_bary ∝ V_flat^β
 162
 163We claim the locked prediction is `β = 4`. The structural reason is the
 164deep-ILG limit: for a point-mass `M`, with `a_bar = G M / R²` and the
 165locked exponent `α/2 = (1-1/φ)/4` in the acceleration term, we have
 166`a_obs ≈ (a_0 a_bar)^(1/2)` in the deep regime (matching MOND), giving
 167`V^4 = a_obs² · R² ≈ G M a_0`, so `M = V^4 / (G a_0)` and `β = 4`.
 168
 169We do not formalise the integration here; the numerical confirmation
 170sits in `MassToLightBTFRSlopeScoreCard.lean` with the SPARC artifact.
 171The structural identity is recorded as a Prop. -/
 172
 173def BTFRSlopeIdentity : Prop :=
 174  ∀ (M Vflat a0 G : ℝ), 0 < M → 0 < Vflat → 0 < a0 → 0 < G →
 175    (M = Vflat ^ 4 / (G * a0) ↔ M * (G * a0) = Vflat ^ 4)
 176
 177theorem btfr_slope_identity_iff : BTFRSlopeIdentity := by
 178  intros M V a0 G _hM _hV ha0 hG
 179  have hpos : 0 < G * a0 := mul_pos hG ha0
 180  have hne : (G * a0) ≠ 0 := ne_of_gt hpos
 181  constructor
 182  · intro h
 183    have : M * (G * a0) = (V ^ 4 / (G * a0)) * (G * a0) := by rw [h]
 184    rw [this, div_mul_cancel₀ _ hne]
 185  · intro h
 186    have : V ^ 4 = M * (G * a0) := h.symm
 187    rw [this, mul_div_assoc, div_self hne, mul_one]
 188
 189/-! ## Certificate -/
 190
 191structure ILGAsymptoticEnhancementCert where
 192  C_pos : 0 < C_lock
 193  enhancement_pos : ∀ R r0 (hR : 0 < R) (hr0 : 0 < r0) n,
 194    0 < w_radial R r0 n
 195  enhancement_above_one : ∀ R r0 (hR : 0 < R) (hr0 : 0 < r0) n (hn : 0 < n),
 196    1 < w_radial R r0 n
 197  enhancement_strict_mono : ∀ R₁ R₂ r0 (hR₁ : 0 < R₁) (hR₂ : R₁ < R₂) (hr0 : 0 < r0)
 198    n (hn : 0 < n), w_radial R₁ r0 n < w_radial R₂ r0 n
 199  enhancement_unbounded : ∀ r0 (hr0 : 0 < r0) n (hn : 0 < n) M (hM : 0 < M),
 200    ∃ R : ℝ, 0 < R ∧ M < w_radial R r0 n
 201  newtonian_dominated : ∀ V_bar_sq R r0 (hVb : 0 ≤ V_bar_sq) (hR : 0 < R)
 202    (hr0 : 0 < r0) n (hn : 0 < n),
 203    V_bar_sq ≤ w_radial R r0 n * V_bar_sq
 204  btfr_slope_iff : BTFRSlopeIdentity
 205
 206theorem ilgAsymptoticEnhancementCert_holds : Nonempty ILGAsymptoticEnhancementCert :=
 207  ⟨{ C_pos := C_lock_pos
 208     enhancement_pos := enhancement_pos
 209     enhancement_above_one := enhancement_above_one
 210     enhancement_strict_mono := enhancement_strict_mono
 211     enhancement_unbounded := enhancement_unbounded
 212     newtonian_dominated := ilg_velocity_sq_dominates_newtonian
 213     btfr_slope_iff := btfr_slope_identity_iff }⟩
 214
 215end
 216
 217end IndisputableMonolith.Gravity.ILGAsymptoticEnhancement
 218

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