pith. machine review for the scientific record. sign in

IndisputableMonolith.Gravity.BHEchoPerEventCatalog

IndisputableMonolith/Gravity/BHEchoPerEventCatalog.lean · 118 lines · 12 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2import IndisputableMonolith.Gravity.BHEchoesLIGOCatalog
   3
   4/-!
   5# Per-Event BH Echo Prediction Catalog
   6
   7The structural BH-echo cert (`Gravity/BHEchoesLIGOCatalog`) gives the
   8generic bounce-radius and echo-delay scaling. This module records the
   9per-event prediction tables for the four canonical headline LIGO/Virgo
  10events. For each event we name the source mass `M`, the recognition
  11rung `N`, the predicted echo delay `Δt(N)` in RS-native units, and
  12the predicted echo frequency `f_echo(N) = 1 / Δt(N)`.
  13
  14Per-event predictions (RS-native, dimensionless):
  15
  16| Event     | M (M☉)  | N | Δt(N)   | f_echo(N) |
  17|-----------|---------|---|---------|-----------|
  18| GW150914  | ~65     | 8 | 47·log φ | 1/(47 logφ) |
  19| GW170817  | ~2.7    | 1 | φ ·log φ | 1/(φ logφ)  |
  20| GW190521  | ~150    | 10| φ¹⁰·log φ| 1/(φ¹⁰ logφ)|
  21| GW230529  | ~4.4    | 2 | φ² ·log φ| 1/(φ² logφ) |
  22
  23Each prediction is `Δt > 0` and `f_echo > 0` strictly. Adjacent-rung
  24echo frequencies ratio by `1/φ`; the per-event ladder admits
  25falsification by any single high-SNR event whose echo signature does
  26not appear at the predicted rung.
  27
  28Lean status: 0 sorry, 0 axiom.
  29-/
  30
  31namespace IndisputableMonolith
  32namespace Gravity
  33namespace BHEchoPerEventCatalog
  34
  35open Constants
  36open Gravity.BHEchoesLIGOCatalog
  37
  38noncomputable section
  39
  40/-- The four canonical LIGO/Virgo headline events. -/
  41inductive HeadlineEvent where
  42  | GW150914
  43  | GW170817
  44  | GW190521
  45  | GW230529
  46  deriving DecidableEq, Repr, BEq, Fintype
  47
  48/-- Predicted recognition rung for each headline event (chosen from
  49log-mass scaling: rung N ≈ ⌊log_φ(M / M_ref)⌋). -/
  50def predictedRung : HeadlineEvent → ℕ
  51  | .GW150914 => 8
  52  | .GW170817 => 1
  53  | .GW190521 => 10
  54  | .GW230529 => 2
  55
  56/-- Predicted bounce radius per event. -/
  57def predictedBounceRadius (e : HeadlineEvent) : ℝ :=
  58  bounceRadius (predictedRung e)
  59
  60/-- Predicted echo delay per event. -/
  61def predictedEchoDelay (e : HeadlineEvent) : ℝ :=
  62  echoDelay (predictedRung e)
  63
  64/-- Bounce radius per event is strictly positive. -/
  65theorem predictedBounceRadius_pos (e : HeadlineEvent) :
  66    0 < predictedBounceRadius e :=
  67  bounceRadius_pos _
  68
  69/-- Echo delay per event is strictly positive (every predicted rung is
  70N ≥ 1; verified by `decide` on the inductive cases). -/
  71theorem predictedEchoDelay_pos (e : HeadlineEvent) :
  72    0 < predictedEchoDelay e := by
  73  unfold predictedEchoDelay predictedRung
  74  cases e <;> exact echoDelay_pos _ (by decide)
  75
  76/-- Predicted echo frequency per event is `1 / Δt(N)`. -/
  77def predictedEchoFrequency (e : HeadlineEvent) : ℝ :=
  78  1 / predictedEchoDelay e
  79
  80theorem predictedEchoFrequency_pos (e : HeadlineEvent) :
  81    0 < predictedEchoFrequency e := by
  82  unfold predictedEchoFrequency
  83  exact div_pos one_pos (predictedEchoDelay_pos e)
  84
  85/-- Catalog count = 4. -/
  86theorem event_count : Fintype.card HeadlineEvent = 4 := by decide
  87
  88/-- The two largest events (GW190521 and GW150914) sit at higher rungs
  89than the two smaller (GW170817, GW230529). -/
  90theorem rung_ordering :
  91    predictedRung .GW170817 < predictedRung .GW230529 ∧
  92    predictedRung .GW230529 < predictedRung .GW150914 ∧
  93    predictedRung .GW150914 < predictedRung .GW190521 := by
  94  refine ⟨?_, ?_, ?_⟩ <;> decide
  95
  96structure BHEchoCatalogCert where
  97  event_count : Fintype.card HeadlineEvent = 4
  98  bounce_pos : ∀ e, 0 < predictedBounceRadius e
  99  delay_pos : ∀ e, 0 < predictedEchoDelay e
 100  freq_pos : ∀ e, 0 < predictedEchoFrequency e
 101  rung_ordering :
 102    predictedRung .GW170817 < predictedRung .GW230529 ∧
 103    predictedRung .GW230529 < predictedRung .GW150914 ∧
 104    predictedRung .GW150914 < predictedRung .GW190521
 105
 106/-- Per-event BH-echo catalog certificate. -/
 107def bhEchoCatalogCert : BHEchoCatalogCert where
 108  event_count := event_count
 109  bounce_pos := predictedBounceRadius_pos
 110  delay_pos := predictedEchoDelay_pos
 111  freq_pos := predictedEchoFrequency_pos
 112  rung_ordering := rung_ordering
 113
 114end
 115end BHEchoPerEventCatalog
 116end Gravity
 117end IndisputableMonolith
 118

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