pith. machine review for the scientific record. sign in

IndisputableMonolith.Geology.EarthquakeScalingFromJCost

IndisputableMonolith/Geology/EarthquakeScalingFromJCost.lean · 49 lines · 5 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: ready · generated 2026-05-16 09:10:18.194503+00:00

   1import Mathlib
   2import IndisputableMonolith.Constants
   3
   4/-!
   5# Earthquake Magnitude Scaling from Phi-Ladder — Tier F Geology
   6
   7The Gutenberg-Richter frequency-magnitude law: log10(N) = a - b*M
   8with b ≈ 1 empirically. In RS terms, each magnitude step releases
   9phi^2 ≈ 2.618 times more energy (Richter magnitude increment = phi
  10in log10 energy space, calibrated so phi^2 ≈ 10^0.6 × log10 energy).
  11
  12Adjacent magnitude classes differ in event frequency by phi^(-2):
  13each unit of magnitude corresponds to a two-rung phi-ladder descent
  14in event rate. This is the RS re-derivation of the b = 1 exponent.
  15
  16Lean status: 0 sorry, 0 axiom.
  17-/
  18
  19namespace IndisputableMonolith.Geology.EarthquakeScalingFromJCost
  20open Constants
  21
  22noncomputable def eventRateAtMagnitude (M : ℕ) : ℝ := phi ^ (-(2 * (M : ℤ)))
  23
  24theorem eventRate_pos (M : ℕ) : 0 < eventRateAtMagnitude M :=
  25  zpow_pos phi_pos _
  26
  27theorem eventRate_ratio (M : ℕ) :
  28    eventRateAtMagnitude (M + 1) / eventRateAtMagnitude M = phi ^ (-(2 : ℤ)) := by
  29  unfold eventRateAtMagnitude
  30  have hphi_ne := phi_ne_zero
  31  have hpos : 0 < phi ^ (-(2 * (M : ℤ))) := zpow_pos phi_pos _
  32  -- phi^(-(2*(M+1))) / phi^(-(2*M)) = phi^(-2)
  33  have heq : phi ^ (-(2 * ((M : ℤ) + 1))) = phi ^ (-(2 * (M : ℤ))) * phi ^ (-(2 : ℤ)) := by
  34    rw [show -(2 * ((M : ℤ) + 1)) = -(2 * (M : ℤ)) + (-2 : ℤ) from by ring]
  35    exact zpow_add₀ hphi_ne _ _
  36  rw [show ((M + 1 : ℕ) : ℤ) = (M : ℤ) + 1 from by push_cast; ring]
  37  rw [heq]
  38  field_simp [hpos.ne']
  39
  40structure EarthquakeScalingCert where
  41  rate_pos : ∀ M, 0 < eventRateAtMagnitude M
  42  phi_sq_ratio : ∀ M, eventRateAtMagnitude (M + 1) / eventRateAtMagnitude M = phi ^ (-(2 : ℤ))
  43
  44noncomputable def earthquakeScalingCert : EarthquakeScalingCert where
  45  rate_pos := eventRate_pos
  46  phi_sq_ratio := eventRate_ratio
  47
  48end IndisputableMonolith.Geology.EarthquakeScalingFromJCost
  49

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