Pith. sign in

IndisputableMonolith.Verification.GWTC3PosteriorManifest

IndisputableMonolith/Verification/GWTC3PosteriorManifest.lean · 167 lines · 21 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2
   3/-!
   4# GWTC-3 Posterior Manifest
   5
   6## Status: STRUCTURAL THEOREM (0 sorry, 0 RS-internal axiom; closure 2026-05-22).
   7
   8This module records the exact public Zenodo posterior-file manifest
   9needed to upgrade `GWTC3RingdownStatus` from a status record to a real
  10posterior likelihood artifact.
  11
  12Zenodo record:
  13
  14* `7007370`
  15* Title: `Data release for Tests of General Relativity with GWTC-3`
  16
  17Required files:
  18
  19* `IGWN-GWTC3-TGR-v1-rin.zip` — ringdown test posterior files.
  20* `IGWN-GWTC3-TGR-v1-imr.zip` — inspiral-merger-ringdown consistency.
  21* `IGWN-GWTC3-TGR-v1-par.zip` — parameterized GR tests.
  22* `IGWN-GWTC3-TGR-v1-liv.zip` — Lorentz-invariance violation.
  23* `IGWN-GWTC3-TGR-v1-sim.zip` — spin-induced quadrupole moment.
  24
  25The Lean content is the manifest completeness and positivity theorem:
  26the five expected posterior files are named, have positive byte sizes,
  27and are tied to a single Zenodo record id. The companion reproducibility
  28script `papers/reproducibility/gwtc3_posterior_manifest.py` fetches the
  29same metadata live from the Zenodo API and writes JSON/CSV outputs.
  30
  31This is **posterior-ingestion preparation**, not posterior likelihood.
  32Zero `sorry`. Zero new RS-specific axioms.
  33-/
  34
  35namespace IndisputableMonolith
  36namespace Verification
  37namespace GWTC3PosteriorManifest
  38
  39/-! ## §1. Manifest records -/
  40
  41/-- A posterior-file manifest entry. -/
  42structure PosteriorFile where
  43  key : String
  44  sizeBytes : Nat
  45  checksum : String
  46
  47def zenodoRecordId : Nat := 7007370
  48
  49def imrFile : PosteriorFile where
  50  key := "IGWN-GWTC3-TGR-v1-imr.zip"
  51  sizeBytes := 4120399443
  52  checksum := "md5:0a89b6c3d7f43496a4a1b57bb2ac4e32"
  53
  54def ringdownFile : PosteriorFile where
  55  key := "IGWN-GWTC3-TGR-v1-rin.zip"
  56  sizeBytes := 1444203951
  57  checksum := "md5:131d4d5e057f5e1c58787ca2920796a4"
  58
  59def simFile : PosteriorFile where
  60  key := "IGWN-GWTC3-TGR-v1-sim.zip"
  61  sizeBytes := 1317455705
  62  checksum := "md5:fb4ed440b11caf2e0d5b2b4c8c4da707"
  63
  64def livFile : PosteriorFile where
  65  key := "IGWN-GWTC3-TGR-v1-liv.zip"
  66  sizeBytes := 7404733110
  67  checksum := "md5:71575f4a17a5f967fa5903a1f0fbe1b1"
  68
  69def parFile : PosteriorFile where
  70  key := "IGWN-GWTC3-TGR-v1-par.zip"
  71  sizeBytes := 2523809848
  72  checksum := "md5:9a5a1d332e7d47813a7d443e28f27396"
  73
  74def allPosteriorFiles : List PosteriorFile :=
  75  [imrFile, ringdownFile, simFile, livFile, parFile]
  76
  77/-! ## §2. Completeness and positivity -/
  78
  79def HasPositiveSize (f : PosteriorFile) : Prop :=
  80  0 < f.sizeBytes
  81
  82theorem imr_size_pos : HasPositiveSize imrFile := by
  83  unfold HasPositiveSize imrFile
  84  decide
  85
  86theorem ringdown_size_pos : HasPositiveSize ringdownFile := by
  87  unfold HasPositiveSize ringdownFile
  88  decide
  89
  90theorem sim_size_pos : HasPositiveSize simFile := by
  91  unfold HasPositiveSize simFile
  92  decide
  93
  94theorem liv_size_pos : HasPositiveSize livFile := by
  95  unfold HasPositiveSize livFile
  96  decide
  97
  98theorem par_size_pos : HasPositiveSize parFile := by
  99  unfold HasPositiveSize parFile
 100  decide
 101
 102theorem posterior_manifest_has_five_files :
 103    allPosteriorFiles.length = 5 := by
 104  unfold allPosteriorFiles
 105  decide
 106
 107theorem posterior_manifest_record_id_pos : 0 < zenodoRecordId := by
 108  unfold zenodoRecordId
 109  decide
 110
 111/-- Ringdown posterior file is explicitly named in the manifest. -/
 112theorem ringdown_file_key :
 113    ringdownFile.key = "IGWN-GWTC3-TGR-v1-rin.zip" := rfl
 114
 115/-! ## §3. Master cert -/
 116
 117structure GWTC3PosteriorManifestCert where
 118  record_id_pos : 0 < zenodoRecordId
 119  five_files : allPosteriorFiles.length = 5
 120  imr_positive : HasPositiveSize imrFile
 121  ringdown_positive : HasPositiveSize ringdownFile
 122  sim_positive : HasPositiveSize simFile
 123  liv_positive : HasPositiveSize livFile
 124  par_positive : HasPositiveSize parFile
 125  ringdown_named : ringdownFile.key = "IGWN-GWTC3-TGR-v1-rin.zip"
 126
 127def gwtc3PosteriorManifestCert : GWTC3PosteriorManifestCert where
 128  record_id_pos := posterior_manifest_record_id_pos
 129  five_files := posterior_manifest_has_five_files
 130  imr_positive := imr_size_pos
 131  ringdown_positive := ringdown_size_pos
 132  sim_positive := sim_size_pos
 133  liv_positive := liv_size_pos
 134  par_positive := par_size_pos
 135  ringdown_named := ringdown_file_key
 136
 137theorem gwtc3PosteriorManifestCert_inhabited :
 138    Nonempty GWTC3PosteriorManifestCert :=
 139  ⟨gwtc3PosteriorManifestCert⟩
 140
 141/-- One-statement manifest theorem: the GWTC-3 posterior manifest names
 142all five expected tests-of-GR zip files, including the ringdown file
 143required for RS echo/QNM posterior likelihood work. -/
 144theorem gwtc3_posterior_manifest_one_statement :
 145    (zenodoRecordId = 7007370) ∧
 146    (allPosteriorFiles.length = 5) ∧
 147    (ringdownFile.key = "IGWN-GWTC3-TGR-v1-rin.zip") ∧
 148    (HasPositiveSize imrFile) ∧
 149    (HasPositiveSize ringdownFile) ∧
 150    (HasPositiveSize simFile) ∧
 151    (HasPositiveSize livFile) ∧
 152    (HasPositiveSize parFile) ∧
 153    Nonempty GWTC3PosteriorManifestCert :=
 154  ⟨rfl,
 155   posterior_manifest_has_five_files,
 156   ringdown_file_key,
 157   imr_size_pos,
 158   ringdown_size_pos,
 159   sim_size_pos,
 160   liv_size_pos,
 161   par_size_pos,
 162   gwtc3PosteriorManifestCert_inhabited⟩
 163
 164end GWTC3PosteriorManifest
 165end Verification
 166end IndisputableMonolith
 167

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