pith. machine review for the scientific record. sign in

IndisputableMonolith.Astrophysics.CoronalLyapunovTime

IndisputableMonolith/Astrophysics/CoronalLyapunovTime.lean · 87 lines · 8 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2import IndisputableMonolith.Constants
   3
   4/-!
   5# Solar Corona Lyapunov Time on the Phi-Ladder
   6
   7Solar-coronal magnetic-field configurations evolve chaotically before
   8reconnection. The Lyapunov time (timescale for exponential divergence
   9of nearby field-line trajectories) sits on the φ-ladder of characteristic
  10coronal timescales.
  11
  12Reference timescale `τ₀` = 1 Alfvén crossing time (the fastest
  13coherent mode, ~1 s at 1 R☉ with B ≈ 100 G). Predicted coronal
  14timescale ladder:
  15- rung 0: Alfvén crossing (~1 s)
  16- rung 1: convective turnover / granulation (~60 s ≈ φ·40)
  17- rung 2: chromospheric evaporation (~1000 s ≈ φ²·400)
  18- rung 3: coronal loop lifetime (~1 hr ≈ 3600 s ≈ φ³·900)
  19- rung 4: active region emergence (~1 day ≈ φ⁴ × longer)
  20
  21Adjacent coronal timescales ratio by exactly φ per rung. This is the
  22same φ-ladder structure across solar, stellar, and astrophysical
  23timescales.
  24
  25Falsifier: two adjacent coronal Lyapunov timescales measured to differ
  26by a ratio systematically outside (1.5, 1.8) on a corpus of ≥ 3
  27active regions.
  28
  29Lean status: 0 sorry, 0 axiom.
  30-/
  31
  32namespace IndisputableMonolith
  33namespace Astrophysics
  34namespace CoronalLyapunovTime
  35
  36open Constants
  37
  38noncomputable section
  39
  40/-- Reference Alfvén-crossing timescale (RS-native 1). -/
  41def referenceTime : ℝ := 1
  42
  43/-- Coronal timescale at φ-ladder rung `k`. -/
  44def coronalTime (k : ℕ) : ℝ := referenceTime * phi ^ k
  45
  46theorem coronalTime_pos (k : ℕ) : 0 < coronalTime k := by
  47  unfold coronalTime referenceTime
  48  have : 0 < phi ^ k := pow_pos Constants.phi_pos k
  49  linarith [this]
  50
  51theorem coronalTime_succ_ratio (k : ℕ) :
  52    coronalTime (k + 1) = coronalTime k * phi := by
  53  unfold coronalTime; rw [pow_succ]; ring
  54
  55theorem coronalTime_strictly_increasing (k : ℕ) :
  56    coronalTime k < coronalTime (k + 1) := by
  57  rw [coronalTime_succ_ratio]
  58  have hk : 0 < coronalTime k := coronalTime_pos k
  59  have hphi_gt_one : (1 : ℝ) < phi := by
  60    have := Constants.phi_gt_onePointFive; linarith
  61  have : coronalTime k * 1 < coronalTime k * phi :=
  62    mul_lt_mul_of_pos_left hphi_gt_one hk
  63  simpa using this
  64
  65theorem coronal_adjacent_ratio (k : ℕ) :
  66    coronalTime (k + 1) / coronalTime k = phi := by
  67  rw [coronalTime_succ_ratio]
  68  field_simp [(coronalTime_pos k).ne']
  69
  70structure CoronalLyapunovCert where
  71  time_pos : ∀ k, 0 < coronalTime k
  72  one_step_ratio : ∀ k, coronalTime (k + 1) = coronalTime k * phi
  73  strictly_increasing : ∀ k, coronalTime k < coronalTime (k + 1)
  74  adjacent_ratio_eq_phi : ∀ k, coronalTime (k + 1) / coronalTime k = phi
  75
  76/-- Coronal Lyapunov timescale certificate. -/
  77def coronalLyapunovCert : CoronalLyapunovCert where
  78  time_pos := coronalTime_pos
  79  one_step_ratio := coronalTime_succ_ratio
  80  strictly_increasing := coronalTime_strictly_increasing
  81  adjacent_ratio_eq_phi := coronal_adjacent_ratio
  82
  83end
  84end CoronalLyapunovTime
  85end Astrophysics
  86end IndisputableMonolith
  87

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