pith. sign in

IndisputableMonolith.Astrophysics.PulsarEmissionRegimesFromRS

IndisputableMonolith/Astrophysics/PulsarEmissionRegimesFromRS.lean · 50 lines · 7 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: ready · generated 2026-05-16 04:40:53.909728+00:00

   1import Mathlib
   2import IndisputableMonolith.Constants
   3
   4/-!
   5# Pulsar Emission Regimes from RS — B12 Astrophysical MHD Depth
   6
   7Five canonical pulsar emission regimes (= configDim D = 5):
   8  normal pulsar, millisecond pulsar, magnetar, rotating radio transient,
   9  fast radio burst source.
  10
  11Period scaling on φ-ladder: adjacent-regime ratio = φ.
  12
  13Lean status: 0 sorry, 0 axiom.
  14-/
  15
  16namespace IndisputableMonolith.Astrophysics.PulsarEmissionRegimesFromRS
  17open Constants
  18
  19inductive PulsarRegime where
  20  | normal
  21  | millisecond
  22  | magnetar
  23  | rrat
  24  | frbSource
  25  deriving DecidableEq, Repr, BEq, Fintype
  26
  27theorem pulsarRegime_count : Fintype.card PulsarRegime = 5 := by decide
  28
  29noncomputable def period (k : ℕ) : ℝ := phi ^ k
  30
  31theorem period_ratio (k : ℕ) : period (k + 1) / period k = phi := by
  32  unfold period
  33  have hpos : (0 : ℝ) < phi ^ k := pow_pos phi_pos k
  34  rw [div_eq_iff hpos.ne', pow_succ]
  35  ring
  36
  37theorem period_pos (k : ℕ) : 0 < period k := pow_pos phi_pos k
  38
  39structure PulsarEmissionCert where
  40  five_regimes : Fintype.card PulsarRegime = 5
  41  phi_ratio : ∀ k, period (k + 1) / period k = phi
  42  period_always_pos : ∀ k, 0 < period k
  43
  44noncomputable def pulsarEmissionCert : PulsarEmissionCert where
  45  five_regimes := pulsarRegime_count
  46  phi_ratio := period_ratio
  47  period_always_pos := period_pos
  48
  49end IndisputableMonolith.Astrophysics.PulsarEmissionRegimesFromRS
  50

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